【问题标题】:How to get correct number?如何获得正确的号码?
【发布时间】:2021-11-29 02:39:26
【问题描述】:

--Python 这段代码有什么问题?

a=int(input('enter a number'))
b=list(range(1,11))
if a not in b:
   int(input('enter a number'))
else :
   print('ok')
    

输出:

 enter a number 89
 enter a number 8

【问题讨论】:

  • int(input('enter a number')) 本身(在if 正文中)只是丢弃该整数。你的意思是a = int(input('enter a number'))
  • 否则它不会打印好的
  • 那是因为它永远不会到达else 部分,因为如果你输入 89,那么a = 89,所以a not in range(1, 11) 是真的,所以它要求你输入,把结果扔掉(因为你永远不会将它分配给任何东西)并退出脚本。你的意思是写一个while 循环而不是if 语句?

标签: python-3.x list for-loop while-loop user-input


【解决方案1】:

请进一步解释一下您正在尝试做什么,如果您尝试为“8”的第二个输入输出“OK”,那么您需要更改此代码的逻辑。

a=int(input('输入一个数字'))

这一行打印“输入一个数字” 然后你的 if 语句检查它是否在 b 内 但如果不是,它会再次打印“输入数字”而不用做任何事情,如下一行所示:

int(input('输入一个数字'))

如果您希望代码多次运行 if-else 块,请尝试使用 for 循环或 while 循环。

  • 另外,请注意您没有再次将输入放入变量 a 中。

编辑:试试这个代码:

    print('enter a number')
a=int(input())
while a not in range(1,11):
    print('enter a number')
    a=int(input())
else :
   print('ok')

【讨论】:

    猜你喜欢
    • 2021-11-10
    • 1970-01-01
    • 2014-02-22
    • 2021-12-25
    • 2014-03-05
    • 1970-01-01
    • 2015-03-01
    • 2023-04-06
    • 2012-11-06
    相关资源
    最近更新 更多