我有一个用python语言制作的软件。 行为:
它会输出一个消息:
问题出在4.2节中,用户的所有输入的打印都是这样显示的
Vos essais: 33 44556677798082848687887079747271
而不是
Vos essais: 33 44 55 66 77 79 80 82 84 86 87 88 70 79 74 72 71
我已经尝试了一切使它工作,但我尝试添加的所有空间只是分开打印的每个字符。 (我加入join()。分裂())似乎没什么用。
我知道完整的代码不是专业的,但我是初学者。
liste = tentative
for i in str(liste):
total = total + i
message = total
print("Bravo vous avez devinez mon choix après", "\x1b[0;33;40m" + str(compteur) + "\x1b[0m",\
"\x1b[0;33;40m"+ "essais!" + "\x1b[0m", "\nVos essais:", str(premieressaie), str(message))
答案 0 :(得分:1)
您的问题出在代码的这一部分:
liste = tentative
for i in str(liste):
total = total + i
message = total
您正在迭代最后一个猜测的每个字母,只是添加每个数字。你也应该添加一个空格。相反,你可以这样做:
message += str(tentative) + ' '
然而,这不是解决这个问题的最蟒蛇方式。跟踪你所有的猜测会更好。然后,当您将其打印出来时,您可以将它们作为字符串连接起来。像这样:
guesses.append(str(tentative))
然后当您想打印出列表时,请执行以下操作:
print ' '.join(guesses)
答案 1 :(得分:1)
我已经使它成为最简单的方法并删除了只是使用这条线,如
所提到的那样message += str(tentative) + " "
对于我必须做的事情,它的工作非常精细和简单。
感谢大家的快速回答
答案 2 :(得分:0)
考虑到你有一个包含所有数字的巨型字符串。
container=[]
yourstring="your string here"
for i in range(len(yourstring)):
try:
container.append(yourstring [i:(i+2)])
except:
break
答案 3 :(得分:0)
tentative = int(input("Votre essai svp: "))
,所以暂定是用户表示的任意数字的str代表。
当你这样做时
liste = tentative
for i in str(liste):
total = total + i
message = total
你正在循环遍历每个liste的角色。
如果用户输入的第二个数字是44,那么在第一个循环i
上是4,总数=" 4"和消息=" 4"。在第二个循环中,i
再次为4,总数变为" 44"和消息=" 44"
如果第三个数字是55,那么在第一个循环i
=" 5"和= =#34; 445",并且在第二个循环total =" 4455"。当你添加'你不在它们之间添加空格的字符。
要解决此问题,您可以在for循环total += " "
之外添加一个空格。
此外,message
变量多余为total
答案 4 :(得分:0)
如果您想要播放器猜到的数字列表,请使用列表。这是我用代码替换 total 的代码,并删除了一个或两个额外的变量:
def devinettes():
nombre = random.randint(1, 100)
compteur = 1
total = []
premieressaie = ""
message = ""
print("J'ai choisi un nombre aléatoire de 1 à 100 inclusivement \n\
et je vous invite à deviner de quel nombre il s'agit.")
while True:
try:
tentative = int(input("Votre essai svp: "))
total.append(tentative)
break
except ValueError:
print("Ceci n'est pas un nombre entier.")
while tentative != nombre:
if tentative < 0:
print("Bon, vous en avez assez, ça se voit...")
sys.exit()
elif tentative > nombre:
print("Trop grand! ")
elif tentative < nombre:
print("Trop petit! ")
while True:
try:
tentative = int(input("Votre essai svp: "))
break
except ValueError:
print("Ceci n'est pas un nombre entier.")
compteur += 1
liste = tentative
total.append(tentative)
message = ' '.join([str(essai) for essai in total])
print("Bravo vous avez devinez mon choix après", "\x1b[0;33;40m" + str(compteur) + "\x1b[0m",\
"\x1b[0;33;40m"+ "essais!" + "\x1b[0m", "\nVos essais:", message)
reessaie = recommence()
return reessaie
我玩了两场比赛,它运作正常。例如:
J'ai choisi un nombre aléatoire de 1 à 100 inclusivement
et je vous invite à deviner de quel nombre il s'agit.
Votre essai svp: 50
Trop petit!
Votre essai svp: 75
Trop petit!
Votre essai svp: 88
Trop grand!
Votre essai svp: 81
Trop grand!
Votre essai svp: 78
Trop petit!
Votre essai svp: 79
Trop petit!
Votre essai svp: 80
Bravo vous avez devinez mon choix après 7 essais!
Vos essais: 50 75 88 81 78 79 80
Rejouer (o/n) ?