当前位置:  开发笔记 > 编程语言 > 正文

我的python代码在循环结束时不运行print语句

如何解决《我的python代码在循环结束时不运行print语句》经验,为你挑选了1个好方法。

我有这个问题,当我运行程序它一切顺利,但当用户得到正确的答案,代码不打印既不打印("好工作!")或打印("正确").代码有什么问题?

import random

firstNumber = random.randint(1, 50)
secondNumber = random.randint(1, 50)
result = firstNumber + secondNumber
result = int(result)
print("Hello ! What\'s your name ? ")
name = input()
print("Hello !"+" "+ name)
print("Ok !"+" "+ name +" "+ "let\'s start !")
print("What is"+ " " + str(firstNumber) +"+"+ str(secondNumber))
userAnswer = int(input("Your answer : "))
while (userAnswer != result) :
    if (userAnswer > result) :
        print("Wrong")
    else:
        print("Wrong")
    userAnswer = int(input("Your answer : "))
    if (userAnswer == result):
        print("Correct")
        print("Good Job!")
        break
input("\n\n Press to exit")

Marijke Vonk.. 18

问题是只要第一个答案错误,你的while循环才会运行.while (userAnswer != result)如果第一个答案是正确的,Python将忽略缩进的所有内容.因此逻辑上第一个正确的答案永远不会达到print("Correct"),因为这将要求答案是错误的(启动while循环)和右((到达"正确")).

一种选择是摆脱while循环,只使用if.你有两次这样的机会,然后输了.

if (userAnswer == result):
    print("Well done!")
else:
    print("Wrong")
    userAnswer = int(input("Your answer : "))
    if (userAnswer == result):
        print("Correct")
        print("Good Job!")
    else:
        print("Nope all wrong you lose")

另一种选择是使用While进行无限循环.(比如@csharpcoder说)

while (True) :
    userAnswer = int(input("Your answer : "))
    if (userAnswer == result):
        print("Correct")
        print("Good Job!")
        break
    else:
        print ("Wrong answer")

在最后一个选项中,错误的答案会得到"错误的答案",而while循环会再次启动,因为True当然它仍然是True.所以你再试一次,直到你得到正确的答案,这将带你"正确,好工作",然后打破(这会停止循环).

我在while循环中苦苦挣扎,并且有点在我的脑海中,缩进意味着Python将它视为"一件事"并且如果我用一些错误的东西开始它就跳过它.



1> Marijke Vonk..:

问题是只要第一个答案错误,你的while循环才会运行.while (userAnswer != result)如果第一个答案是正确的,Python将忽略缩进的所有内容.因此逻辑上第一个正确的答案永远不会达到print("Correct"),因为这将要求答案是错误的(启动while循环)和右((到达"正确")).

一种选择是摆脱while循环,只使用if.你有两次这样的机会,然后输了.

if (userAnswer == result):
    print("Well done!")
else:
    print("Wrong")
    userAnswer = int(input("Your answer : "))
    if (userAnswer == result):
        print("Correct")
        print("Good Job!")
    else:
        print("Nope all wrong you lose")

另一种选择是使用While进行无限循环.(比如@csharpcoder说)

while (True) :
    userAnswer = int(input("Your answer : "))
    if (userAnswer == result):
        print("Correct")
        print("Good Job!")
        break
    else:
        print ("Wrong answer")

在最后一个选项中,错误的答案会得到"错误的答案",而while循环会再次启动,因为True当然它仍然是True.所以你再试一次,直到你得到正确的答案,这将带你"正确,好工作",然后打破(这会停止循环).

我在while循环中苦苦挣扎,并且有点在我的脑海中,缩进意味着Python将它视为"一件事"并且如果我用一些错误的东西开始它就跳过它.

推荐阅读
小色米虫_524
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有