【发布时间】:2018-05-15 04:30:03
【问题描述】:
以下 While 循环获取一个随机生成的数字并将其与用户生成的数字进行比较。如果第一个猜测是正确的,tit 允许用户使用他们在另一个模块中输入的名称。但是,如果第一个猜测不正确,而第二个猜测不正确,则应该输出一个硬编码的名称。如果第二次猜测不正确,它应该通知用户所有猜测都不正确并且他们没有超能力。问题是我可以让程序为 if 和 else 语句而不是 elif 工作。请帮忙。
def getUserName():
print('Welcome to the Superhero Name Game v 2.0')
print('Copyright \N{COPYRIGHT SIGN}2018. Alex Fraser')
userName=input('Please enter the superhero name you wish to use. ')
return userName
def getUserGuess():
import random
x = random.randint(1,10)
userGuess = int(input('Please enter a number between 1 and 10. '))
return x, userGuess
def superName(n, r, g):
guessCount = 1
while guessCount < 3:
if g == r and guessCount == 1:
#hooray
print(f'Congrats! You can use your chosen name. Your superhero name is {n}')
return
elif g == r and guessCount == 2:
#meh good effort
print('Your superhero name is Captain Marvel.')
return
else:
getUserGuess()
print(r,g)
guessCount += 1
print('All your guesses were incorrect. Sorry you do not have super powers')
print(f'The number you were looking for was {r}')
n = getUserName()
r, g = getUserGuess()
print(r,g)
superName(n,r,g)
【问题讨论】:
-
编辑,对 getUserGuess 的调用返回 2 个值。因为我没有使用这些值,所以我可以删除调用,但是它会中断循环。
-
请修正缩进
-
您显示的代码没有任何意义,因为在
if/elif/else的每个分支中都有一个break,因此循环永远不会重复。恐怕我不知道您实际上希望这段代码从问题中做什么,所以我真的无法帮助您解决问题。 -
黑。我正在尝试重新设计 while 循环,以便如果第二次猜测正确,则硬代码名称会打印到屏幕上。与下面获得的输出不同。版权所有 ©2018。 Alex Fraser 请输入您希望使用的超级英雄名称。随机 请输入一个介于 1 和 10 之间的数字。 4 请输入一个介于 1 和 10 之间的数字。 5 您所有的猜测都是错误的。对不起,你没有超能力你要找的数字是 5
-
你肯定要发布你是怎么称呼这个的以及
getUserGuess做什么
标签: python python-3.x while-loop