编写一个名为guess_number的函数,它接收1个数字参数。它询问用户1到10之间的数字,直到用户猜出参数中的数字。它返回用户猜到的次数。
到目前为止,这是我的代码,但我似乎无法弄清楚我错过了什么。它在输入阶段停止。
def guess_number(x):
count = 0
a = input('Guess my number between 1 and 10')
while a!= x:
count += 1
else:
count += 1
return count
答案 0 :(得分:0)
您只需要用户输入一次。
进入while循环后,系统不会提示用户输入新猜测。这意味着a
的值永远不会改变,所以你永远陷入了循环。
尝试添加其他input
声明:
def guess_number(x):
count = 0
a = input('Guess my number between 1 and 10')
while a != x:
count += 1
a = input('Guess again!')
else:
count += 1
return count
答案 1 :(得分:0)
以下是工作代码:
def guess_number(x):
count = 1
a = input('Guess my number between 1 and 10')
while a != x:
count += 1
a = input('Guess my number between 1 and 10')
return count
答案 2 :(得分:0)
你的程序在这一点上陷入困境:
while a!= x:
count += 1
假设x为5,a为3。 在这种情况下,!= x将计算为True,您将进入循环,并且计数将递增,但您将永远不会离开while循环,因为a将始终与x不同。
此代码应该这样做:
def guess_number(x):
count = 1
while True:
a = input('Guess my number between 1 and 10')
if a != x:
count += 1
else:
return count
答案 3 :(得分:0)
除了在input
循环中移动while
之外,除非您打算将x
作为字符串传递,否则您还需要转换a
in在进行比较之前到int
。
def guess_number(x):
count = 0
while int(input('Guess a number.')) != x:
count += 1
return count
在样式注释中,除非函数实际限制可以从中拾取的数字范围,否则不应在提示中烘焙范围(1到10); x
可以是任何东西。我知道这个问题给出了具体的要求,但你应该质疑那些具有不良设计含义的要求。
答案 4 :(得分:0)
def guess_number(x):
count = 0
while True:
a = input('Guess my number between 1 and 10')
if a!= x:
count += 1
else:
count += 1
return count
答案 5 :(得分:0)
你有几个问题。首先,你的input
需要在循环中,否则只会被问到一次。所以你想要这个:
def guess_number(x):
count = 0
while int(raw_input('Guess my number between 1 and 10')) != x:
count += 1
else:
count += 1
return count
请注意(非常重要!)使用int(raw_input(...))
代替input
!允许你的用户在你的函数中执行任意代码是一个可怕的坏主意,这就是为什么他们改变了{3}在Python 3中的行为来做input
在Python 2中做的事情。