在Python中,我正在尝试构建一个函数,它将在一行上打印一个字母和一系列随机数。打印的行数将在1-10之间,具体取决于用户输入。最终结果应如下所示:
A 10 11 15 20 40 (actual numbers will vary, between 1-69)
B 12 15 19 30 45
etc..
我的问题是要打印第一个字符。我似乎无法找到增加角色的方法,以便下一行是B,下一行是C,等等。
这就是我所拥有的:
def generateLetter():
value = 'A'
newVar = (chr(ord(value[0])+1))
value = newVar
print(value)
def main():
howMany = input('print how many lines?')
count = 0
while howMany > 10:
if count == 3:
break;
count +=1
if howMany <=10:
print ('now printing ', howMany, 'lines')
for each in range (howMany):
generateLetter(),
#another function to generate random string of numbers
目前,上述结果如下:
B
5 6 7 8 9
B
10 11 12 13 14
etc...
我做错了什么?
答案 0 :(得分:1)
如果您允许使用全局变量,则可以将值隐藏在那里。此外,请不要增加它,直到您使用&#34; A&#34;在第一次通话中。通常,这是通过Class变量而不是全局变量来完成的,但是你没有围绕它的类。
value = 'A'
def generateLetter():
global value
print(value)
value = (chr(ord(value[0])+1))
答案 1 :(得分:0)
您在函数generateLetter
中的代码始终打印B
。您需要将指示当前步骤的参数传递给函数。
试试这个:
def generateLetter(i):
print(chr(ord('A') + i))
def main():
...
for each in range(howMany):
generateLetter(each)
...