如何使我的while循环在Python中工作?
这是我的代码:如何使我的while循环在Python中工作?,python,loops,while-loop,Python,Loops,While Loop,这是我的代码: import random Random = random.randint(1, 10) print("Number:" + str(Random)) Number = int(input("Guess the number I am thinking of from 1-10")) while int(Random) != Number: if(Random > Number): Number = input("Too low. Guess again!")
import random
Random = random.randint(1, 10)
print("Number:" + str(Random))
Number = int(input("Guess the number I am thinking of from 1-10"))
while int(Random) != Number:
if(Random > Number):
Number = input("Too low. Guess again!")
elif(Number > Random):
Number = input("Too high. Guess again!")
print("You guessed it!")
当猜到正确的数字时,就会发生这种情况,这是应该发生的
编号:8
猜猜我想的数字是1-10 8
你猜对了!
但是,如果没有正确猜测数字,它只会循环执行elif语句
编号:10
猜猜我想的数字是1-106
太低了。再猜猜!7.
太高了。再猜猜!6.
太高了。再猜猜!5.
太高了。再猜猜!4.
太高了。再猜猜!3.
太高了。再猜猜!2.
太高了。再猜猜!1.
太高了。再猜猜!10
太高了。再猜猜!9
太高了。再猜猜!8.
您是否尝试过在while循环的两个输入行中对输入强制转换int?这似乎对我有用,就像:
if(Random > Number):
Number = int(input("Too low. Guess again!"))
elif(Number > Random):
Number = int(input("Too high. Guess again!"))
您是否尝试过在while循环的两个输入行中对输入强制转换int?这似乎对我有用,就像:
if(Random > Number):
Number = int(input("Too low. Guess again!"))
elif(Number > Random):
Number = int(input("Too high. Guess again!"))
随机导入
number=random.randint(1,10)
guess=int(输入(“从1-10猜我想的数字”)
而猜!=数字:
如果猜测<数字:
打印(“您的答案太低…”)
其他:
打印(“您的号码太高…”)
guess=int(输入(“请重试…”)
打印(“恭喜!回答正确!”)
您可以将此作为参考。谢谢您…import random
number=random.randint(1,10)
guess=int(输入(“从1-10猜我想的数字”)
而猜!=数字:
如果猜测<数字:
打印(“您的答案太低…”)
其他:
打印(“您的号码太高…”)
guess=int(输入(“请重试…”)
打印(“恭喜!回答正确!”)
您可以将此作为参考。谢谢…这是您代码的改进版本:
import random
answer = random.randint(1, 10)
print("Number:" + str(answer))
guess = int(input("Guess the number I am thinking of from 1-10"))
while answer != guess:
if guess < answer:
guess = int(input("Too low. Guess again!"))
elif guess > answer:
guess = int(input("Too high. Guess again!"))
print("You guessed it!")
随机导入
答案=random.randint(1,10)
打印(“编号:+str(答案))
guess=int(输入(“从1-10猜我想的数字”))
而答案!=猜测:
如果猜测<答案:
guess=int(输入(“太低了,再猜一次!”)
elif guess>答案:
guess=int(输入(“太高了,再猜一次!”)
打印(“你猜对了!”)
关于这些变化的一些评论:
- 主要是
围绕int()
的input()
将值作为字符串获取,但您希望比较数字的值,而不是字符串。例如int()
但是'12'
12>2
- 变量的名称中有大写字母,这在Python中是个坏主意,因为这会向编辑器和其他程序员表明它们是类而不是变量
- 您的变量
与您正在使用的模块名称相同,因此很容易混淆,Random
似乎是一个更好的选择answer
- 您的代码缩进了2个空格,但大多数编辑器默认为4,这也符合标准Python风格的准则
- 与其改变变量的顺序,通常最好让代码读起来尽可能接近它的意思;例如,
正是您所说的:“太低”if guess
import random
answer = random.randint(1, 10)
print("Number:" + str(answer))
guess = int(input("Guess the number I am thinking of from 1-10"))
while answer != guess:
if guess < answer:
guess = int(input("Too low. Guess again!"))
elif guess > answer:
guess = int(input("Too high. Guess again!"))
print("You guessed it!")
随机导入
答案=random.randint(1,10)
打印(“编号:+str(答案))
guess=int(输入(“从1-10猜我想的数字”))
而答案!=猜测:
如果猜测<答案:
guess=int(输入(“太低了,再猜一次!”)
elif guess>答案:
guess=int(输入(“太高了,再猜一次!”)
打印(“你猜对了!”)
关于这些变化的一些评论:
- 主要是
围绕int()
的input()
将值作为字符串获取,但您希望比较数字的值,而不是字符串。例如int()
但是'12'
12>2
- 变量的名称中有大写字母,这在Python中是个坏主意,因为这会向编辑器和其他程序员表明它们是类而不是变量
- 您的变量
与您正在使用的模块名称相同,因此很容易混淆,Random
似乎是一个更好的选择answer
- 您的代码缩进了2个空格,但大多数编辑器默认为4,这也符合标准Python风格的准则
- 与其改变变量的顺序,通常最好让代码读起来尽可能接近它的意思;例如,
正是您所说的:“太低”if guess
int()
s围绕您的input()
s@StephenRauch我以为你的意思是int(int(int(int(input())))
暂时:P@OP顺便说一句,不要大写你的变量。@wjandrea取决于你使用的是Python 2还是Python 3。@CS哦,你是对的。我想现在每个人都在使用Python 3,因为Python 2是EOL。你需要更多的int()
s围绕input()s@StephenRauch我以为你的意思是int(int(int(int(input())))
暂时:P@OP顺便说一句,不要大写你的变量。@wjandrea取决于你使用的是Python 2还是Python 3。@CS哦,你是对的。我假设现在每个人都在使用Python 3,因为Python 2是EOL。如果你能解释一下问题代码中的问题以及你在回答中如何解决这些问题,那将更有帮助。这将是非常重要的如果你能解释问题代码中的问题以及你在回答中如何解决这些问题,那将更有帮助。