我之前已经研究过Visual Basic for Applications,并且本周我正在慢慢开始使用python。由于我是新的程序员,请耐心等待。我理解到目前为止我遇到的大多数概念,但目前处于一堵砖墙。
我写了一些函数来帮助我编写一个数字猜谜游戏。用户输入一个4位数字。如果它与生成的程序匹配(我已将其编码),则Y将附加到输出列表中。如果没有,那就是N.
EG。我输入4567,数字是4568.从列表中打印的输出是YYYN。
import random
def A():
digit = random.randint(0, 9)
return digit
def B():
numList = list()
for counter in range(0,4):
numList.append(A())
return numList
def X():
output = []
number = input("Please enter the first 4 digit number: ")
number2= B()
for i in range(0, len(number)):
if number[i] == number2[i]:
results.append("Y")
else:
results.append("N")
print(output)
X()
我已将所有这些编码,但缺少一些东西:
一个循环。我不知道如何循环它所以我可以让它再次询问。我只希望这个人能够猜测5次。我正在设想某种类似for循环的计数器,如“从计数器1-5,当我达到5我结束”但不确定如何编程。
我编写了一个独立的验证代码段,但不知道如何在循环中集成它,所以例如如果有人输入444a,它应该说这不是一个有效的条目并让他们尝试再次。我在下面尝试了这个。
while myNumber.isnumeric() == True and len(myNumber) == 4:
for i in range(0, 4)):
if myNumber[i] == progsNumber[i]:
outputList.append("Y")
else:
outputList.append("N")
尝试解决这个问题做了一些很好的尝试,但努力将它们拼凑起来。是否有人能够向我展示一些方向,让我们共同组成一个工作计划?我希望我编写的这些核心元素可以帮助你帮助我!
答案 0 :(得分:1)
回答你的两个问题:
幸运的是,循环很容易。要循环一些代码五次,您可以设置tries = 5
,然后执行while tries > 0:
并在循环内的某处执行tries -= 1
。
如果您想提前退出循环(当用户正确回答时),您可以简单地使用break
关键字" break"跳出循环。您也可以,如果您愿意,可以设置tries = 0
,以便循环不会继续迭代。
您可能希望将验证放在if
的循环中(与您尝试的while循环语句相同)。只检查输入是否有效,否则continue
停止循环的当前迭代并继续下一个(重新开始)。
所以在代码中:
answer = [random.randint(0, 9) for i in range(4)]
tries = 5
while tries > 0:
number = input("Please enter the first 4 digit number: ")
if not number.isnumeric() or not len(number) == len(answer):
print('Invalid input!')
continue
out = ''
for i in range(len(answer)):
out += 'Y' if int(number[i]) == answer[i] else 'N'
if out == 'Y' * len(answer):
print('Good job!')
break
tries -= 1
print(out)
else:
print('Aww, you failed')
我还在else
达到零之后添加tries
以查看失败(请参阅Python docs或this SO answer)