【问题标题】:Loop function yet break if certain code put into raw_input如果将某些代码放入 raw_input,则循环函数仍会中断
【发布时间】:2017-04-06 17:12:26
【问题描述】:

我一直在这里查找,但 Google 找不到我正在寻找的解决方案。 “虽然”功能一直让我失望,因为我不知道我需要把它放在这里。我是一个新手,所以如果你能解释一下解决方案,谢谢:

number = raw_input("Number: ")
if int(number) % 2 == 0:
  print "Even number"
else:
  print "Odd number"

我想做的就是保持函数循环,允许用户输入尽可能多的数字。只有当用户输入“停止”作为值时,它才会中断。

【问题讨论】:

    标签: python loops while-loop


    【解决方案1】:

    如果用户输入停止,程序就会停止。所以我们需要在创建 while 循环时检查这一点:

    number_from_user = raw_input("Number: ")
    while number_from_user != "stop":
        try:
            if int(number_from_user)% 2 == 0:
                print "Even number"
            else:
                print "Odd number"
            number_from_user = raw_input("Number:")
        except ValueError:
             print("Enter a number please")
             number_from_user = raw_input("Number:")
    

    我建议你熟悉一下 while loops,我找到了一个视频来解释并使用 python 制作一个“猜数字游戏”示例。它应该对有足够的帮助,让您能够使用 while 循环解决您自己的问题。

    https://www.youtube.com/watch?v=tu0zlBFRa_c

    或:

    https://www.youtube.com/watch?v=PoPxclbw6uc

    我想你使用的是 python 2.7,在他们使用 python 3+ 的视频中,你应该在他们输入的地方输入 raw_input。

    已编辑:添加了 try 和 except。

    【讨论】:

    • 请注意,如果用户输入“asjdıajsdıajs”或其他内容,这将创建一个奇怪的情况,python int() 内置函数无法转换字符串,因此如果您输入字符串而不是数字,它将引发错误, 并退出程序
    • 谢谢你——我以前见过这个,我们怎么能克服这个?我们是否可以编写一个 if 语句来说明如果不是 int/number,则打印“对不起,仅限数字”等如果有意义的话。谢谢。
    • 你实际上可以尝试一下,除了,比如 try: number_from_user = int(number_from_user) except ValueError: print "give me a number pls" number_from_user = raw_input("Number: ") 好吧,因为我我不在电脑上,不能打字很抱歉
    • 好的,找到了解决方案:我们可以使用 if 函数来查看它是否是数字/alpha 并从那里处理它。 if number_from_user.isdigit():
    猜你喜欢
    • 2018-09-24
    • 1970-01-01
    • 2023-01-08
    • 2016-11-25
    • 2020-09-18
    • 1970-01-01
    • 2015-07-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多