python - 如果一个字母出现多次,Hangman 会多次打印单词
问题描述
我正在构建一个刽子手游戏。如果一个字母出现多次,我编写的代码会多次打印“更新的目标词”。
示例:目标词是“庆祝”。如果我猜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:")
.
不需要在
else:
continue
即使没有它,它也会继续。不要使用global
s,只需将您的count
移入main_function()
.
不要做if count == 10
,你已经在做while count <= 9
。
至于你的问题 - 移动块
print(random_pick_list_b)
if random_pick_list_b == random_pick:
print("done")
exit()
出for循环。所以整个事情看起来像这样:
def main_function():
count = 0
while count <= 4:
user_input = 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:
if user_input.casefold() not in random_pick:
count = count+1
print(count)
print("sorry")
推荐阅读
- pytorch - PyTorch 中torch.embedding 的定义在哪里?
- laravel - 使用邮件陷阱向用户发送验证电子邮件后将用户重定向到登录页面
- android - onDataChange() 累积运行,每次数据更改都需要运行一次
- kubernetes - Kubernetes 是否等待就绪探测通过以在 DNS 中添加 POD 条目
- python - 如何在Python中使用索引获取dict中的键名和值
- jquery - 使用 Web 方法绑定下拉列表(如何在 C# 中调用 Web 服务)
- r - .csv 字符中的错误
- tableau-api - 如何避免参数在 Tableau 中将单引号包裹在变量周围?
- swift - 如何快速删除字符串中特定字符的重复项?
- python - 在线程或进程中使用 pygame 是否安全?