我正在制作一个刽子手游戏。如果一个字母出现多次,我编写的代码会多次打印“更新的目标单词”
目标词是“庆祝”。如果我猜是e
,那么它会打印出来
*e******
*e*e****
*e*e***e
我希望避免打印前两个打印输出,只打印第三个也是最新版本
import random
import re
word_list = ["fireboard", "identical", "chocolate", "christmas", "beautiful", "happiness", "wednesday", "challenge", "celebrate"]
random_pick = random.choice(word_list)
random_pick_a = re.sub("[a-z]","*", random_pick)
random_pick_list_a = list(random_pick_a)
print(random_pick)
count = 0
def main_function():
global count
while count <= 9:
user_input = str(input("type a letter:"))
for i, c in enumerate(random_pick):
if c == user_input.casefold():
random_pick_list_a[i] = user_input.casefold()
random_pick_list_b = ''.join(random_pick_list_a)
print(random_pick_list_b)
if random_pick_list_b == random_pick:
print("done")
exit()
else:
continue
else:
if user_input.casefold() not in random_pick:
count = count+1
print(count)
if count == 10:
print("sorry")
exit()
main_function()
免责声明:我在我的第一周的编码
不需要
str()
这个input()
,它已经是一个字符串了。因此,将str(input("type a letter:"))
剥离到input("type a letter:")
不需要
即使没有它,它也会继续。不要使用
global
,只需将count
移动到main_function()
不要做
if count == 10
,你已经在while count <= 9
中做了至于你的问题,移动方块
跳出for循环。所以整个事情看起来是这样的:
你有:
在检查所选字母的每个字符的
for
循环内。因此,每次找到匹配项时,它都会打印出random_pick_list_b
如果要在检查完成后执行一次,请将其移动到
for
循环的右侧我会在
for
循环之前进行一次检查相关问题 更多 >
编程相关推荐