大家好,这是我的第一篇文章!
我正在尝试使用罗马数字编写一个简单的生成器。我的目标是只从列表中打印多达 8 个的随机选择,并在我的列表中添加一些品质。这是我到目前为止所拥有的。
import time
import sys
import random
def print_slow(str):
for char in str:
time.sleep(0.03)
sys.stdout.write(char)
sys.stdout.flush()
# Welcome to the Chord Generator.
print_slow("Welcome to the Chord Generator.\n")
print_slow("Randomizing chords\n")
print_slow("....................\n")
chords = ["I","i","II","ii","III","iii","IV","iv","V","v","VI","vi","VII","vii"]
random_chord = random.choice(chords)
for chord in chords[0:7]:
random_chord += chord + " "
random_chord.append("M" or "m" or "M7" or "m7" or "7" or "m7b5" or "dim")
print(random_chord)
我现在的两个问题是:
我一遍又一遍地运行代码,有时不会有任何间距,像这样
IVI I II II III III IV
我得到这个错误试图追加列表:
str 'object 没有属性' append '
我知道我做错了什么,只是不知道是什么,我希望的质量只是随机附加到它选择的任何罗马数字。
这里要考虑的几件事:
您总是将列表中相同的前八个在之后添加一个空格。因此,例如,如果随机选择了iii
,结果将是iiiI i II ...
。唯一的随机部分是这里的第一个。
("M" or "m" ...)
语句将始终计算为“M”。要选择随机值,请使用列表和随机选择函数(当然还有+=
运算符),就像上面的一样。
你可能想要的是选择一个随机的,然后将另一个随机值从质量列表附加到这个,最后将这个加上一个空格字符附加到输出行(都在for
循环)。
本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处
评论列表(29条)