咿呀咿呀哟141 发表于 2020-4-17 14:24:24

为什么运行的时候输入数字回车会没反应的,要再次输入才有反应

temp = input('请输入一个数字:')
num = int(temp)
while num % 2 != 0:
    temp = input()
    num = int(temp)
    if (num % 2) == 0:
      print(num ,'是一个偶数')
    else:
      print(num ,'是一个奇数')

永恒的蓝色梦想 发表于 2020-4-17 14:26:55

while num % 2 != 0:
    temp = input('请输入一个数字:')
    num = int(temp)
    if (num % 2) == 0:
      print(num ,'是一个偶数')
    else:
      print(num ,'是一个奇数')

qiuyouzhi 发表于 2020-4-17 14:26:57

你写了两个input,当然没反应

老八秘制 发表于 2020-4-17 14:27:49

第一行去掉

咿呀咿呀哟141 发表于 2020-4-17 14:29:59

老八秘制 发表于 2020-4-17 14:27
第一行去掉

第一行去掉运行不了

咿呀咿呀哟141 发表于 2020-4-17 14:33:01

qiuyouzhi 发表于 2020-4-17 14:26
你写了两个input,当然没反应

那要怎么改呀

qiuyouzhi 发表于 2020-4-17 14:48:25

咿呀咿呀哟141 发表于 2020-4-17 14:33
那要怎么改呀

把第二个input和int去掉

sunrise085 发表于 2020-4-17 15:12:24

本帖最后由 sunrise085 于 2020-4-17 15:14 编辑

while循环外有个input进去之后就先判断然后再input
temp = input('请输入一个数字:')
num = int(temp)
while num % 2 != 0:
    if (num % 2) == 0:
      print(num ,'是一个偶数')
    else:
      print(num ,'是一个奇数')
    temp = input('请输入一个数字:')
    num = int(temp)

kiyn 发表于 2020-4-17 15:15:28

sunrise085 发表于 2020-4-17 15:12
while循环外有个input进去之后就先判断然后再input

你这个。。。不强制停止就不会结束打印了呀,

txxcat 发表于 2020-4-17 15:15:58

while True:
    temp = input('请输入一个数字:')
    if temp.lower()=='q':          #要有退出机制
      break
    num = int(temp)
    if (num % 2) == 0:
      print(num ,'是一个偶数')
    else:
      print(num ,'是一个奇数')

sunrise085 发表于 2020-4-17 15:18:35

kiyn 发表于 2020-4-17 15:15
你这个。。。不强制停止就不会结束打印了呀,

只是帮他解决提出的问题。

另外输入偶数就结束了。

这个程序本来就有问题啊。若只判断一个数的话,需要用if…else…就可以了。
若需要多次输入数据进行判断,while条件也不应该是num%2!=0啊

kiyn 发表于 2020-4-17 15:19:27

while True:
    temp = input('请输入一个数字:')
    if temp.isdigit:
      num = int(temp)
    else:
      print('输入错误,重新输入')
      continue
    if (num % 2) == 0:
      print(num ,'是一个偶数')
    else:
      print(num ,'是一个奇数')

老八秘制 发表于 2020-4-17 15:34:06

咿呀咿呀哟141 发表于 2020-4-17 14:29
第一行去掉运行不了

那你把第四行去掉

咿呀咿呀哟141 发表于 2020-4-17 15:38:16

sunrise085 发表于 2020-4-17 15:12
while循环外有个input进去之后就先判断然后再input

我终于明白了,我纠结这个半天了{:5_104:},谢谢大哥呀

sunrise085 发表于 2020-4-17 15:40:31

咿呀咿呀哟141 发表于 2020-4-17 15:38
我终于明白了,我纠结这个半天了,谢谢大哥呀

明白了,就设置个最佳答案吧。

咿呀咿呀哟141 发表于 2020-4-17 15:40:54

kiyn 发表于 2020-4-17 15:15
你这个。。。不强制停止就不会结束打印了呀,

这样会有什么问题吗?因为我弄这就是打算可以一直判断下去的,不用了就关闭程序,如果不结束打印会有什么影响吗

kiyn 发表于 2020-4-17 15:44:24

本帖最后由 kiyn 于 2020-4-17 15:46 编辑

.

咿呀咿呀哟141 发表于 2020-4-17 15:47:00

sunrise085 发表于 2020-4-17 15:18
只是帮他解决提出的问题。

另外输入偶数就结束了。


我后面改成num%2==0,这样是不是没问题了

咿呀咿呀哟141 发表于 2020-4-17 15:50:25

kiyn 发表于 2020-4-17 15:19


while True:这个条件是不是内容正确就可以一直循环了

sunrise085 发表于 2020-4-17 15:54:01

咿呀咿呀哟141 发表于 2020-4-17 15:47
我后面改成num%2==0,这样是不是没问题了

我不知道你打算要什么结果。
是无限输入,遇到设定字符结束?
是只判断一次,然后结束?
还是遇到奇数/偶数结束?
这决定你的程序怎么写。
第一种是11楼上的程序
第二种是把while循环去掉
第三种就是你写的了
页: [1] 2
查看完整版本: 为什么运行的时候输入数字回车会没反应的,要再次输入才有反应