鱼C论坛

 找回密码
 立即注册
查看: 4058|回复: 19

[已解决]求助:改进 失败 用while循环直到用户 输入停止为止。

[复制链接]
发表于 2018-11-14 21:03:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x

请问大佬们一个关于python的问题。超级感谢!

这个判断用户输入的一个数是奇数还是偶数的问题

我想改进我的程序 想用while循环让程序在用户愿意时不断地运行,知道他不想判断奇数还是偶数时输入 “停止”结束。

我定义了一个退出值只要用户输入的不是“停止”这个值,程序就能接着运行。

但是事情好像没有我想象的那么简单。

While True 打头的循环,只要一遇到break就停止运行了。

但是如果不加break ,程序就会一直循环               请问应该这么改进  才能一直循环这个判断程序,一直判断奇偶数,直到用户输入“停止”为止?




这是刚刚的代码,谢谢大佬 好人一生平安!!!!

name="\n请告诉我一个整数:"
name +="\n只要是整数 就可以啦 让我来帮你判断它是奇数 还是偶数。如果想要结束请输入“停止”"
name=input(name)
name=int(name)
print("\n您输入的数字是: "+str(name)+".")
while True:
     name !="停止"
     if name =="停止":
          print("判断停止了。")
          False
     elif name %2 !=0:
          print(str(name)+"是奇数。")
          break
     else:
          print(str(name)+"是偶数。")
          break
最佳答案
2018-11-14 21:20:24
  1. while True:
  2.     num = input('请输入一个数字,来判断是否是偶数:')
  3.     if num == '停止':
  4.         break
  5.     elif num.isdigit() and int(num)%2:
  6.         print('是奇数')
  7.     elif num.isdigit() and not int(num)%2:
  8.         print('是偶数')
  9.     else:
  10.         continue
复制代码


是这个意思么?
2684A13A4A7751F789B3C7C98D4A45AC.jpg
BDBBA9D61814DE693DE3A36BC1B25D2A.jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-11-14 21:14:53 | 显示全部楼层
  1. while True:
  2.      name =input("请告诉我一个整数:\n只要是整数 就可以啦 让我来帮你判断它是奇数 还是偶数\n如果想要结束请输入“停止”:")
  3.      if name =="停止":
  4.           print("判断停止了。")
  5.           break
  6.      else:
  7.          print("您输入的数字是: "+name+".")
  8.          name=int(name)
  9.      if name %2:
  10.           print(str(name)+"是奇数。")
  11.      else:
  12.           print(str(name)+"是偶数。")
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2018-11-14 21:20:24 | 显示全部楼层    本楼为最佳答案   
  1. while True:
  2.     num = input('请输入一个数字,来判断是否是偶数:')
  3.     if num == '停止':
  4.         break
  5.     elif num.isdigit() and int(num)%2:
  6.         print('是奇数')
  7.     elif num.isdigit() and not int(num)%2:
  8.         print('是偶数')
  9.     else:
  10.         continue
复制代码


是这个意思么?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2018-11-14 21:33:43 | 显示全部楼层
  1. while True:
  2.      name = input("请告诉我一个整数:\n只要是整数 就可以啦 让我来帮你判断它是奇数 还是偶数\n如果想要结束请输入“停止”:")
  3.      if name == "停止":
  4.           print("判断停止了。")
  5.           break
  6.      else:
  7.          print("您输入的数是:"+name+".")
  8.          name=int(name)
  9.      if name % 2:
  10.           print(str(name)+"是奇数。")
  11.      else:
  12.           print(str(name)+"是偶数。")
  13. input()   #这是命令行模式时用的
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2018-11-15 12:00:26 | 显示全部楼层
  1. while 1:
  2.         name = input("请告诉我一个整数:\n只要是整数 就可以啦 让我来帮你判断它是奇数 还是偶数\n如果想要结束请输入“停止”:")
  3.         if name == "停止":
  4.             print("判断停止了。")
  5.             break
  6.         print("您输入的数是:"+name+".")
  7.         print(['偶数','奇数'][int(name) %2])
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2018-11-15 13:27:42 From FishC Mobile | 显示全部楼层
name =input("请告诉我一个整数:\n只要是整数 就可以啦 让我来帮你判断它是奇数 还是偶数\n如果想要结束请输入“停止”:")
while True:
if name =="停止":
    print("判断停止了。")
    break
else:
   print("您输入的数字是: "+name+".")
   name=int(name)
if name %2:
    print(str(name)+"是奇数。")
          name =input("请告诉我一个整数:\n只要是整数 就可以啦 让我来帮你判断它是奇数 还是偶数\n如果想要结束请输入“停止”:")
else:
    print(str(name)+"是偶数。")
          name =input("请告诉我一个整数:\n只要是整数 就可以啦 让我来帮你判断它是奇数 还是偶数\n如果想要结束请输入“停止”:")


你是不是这个意思呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2018-11-15 15:31:57 | 显示全部楼层
while语句既然遇到break了,后面就不要else了,如果条件不满足中断自然会运行,如果条件满足跳出循环,自然不会运行break后的语句了,这是基本的循环逻辑。
所以用了else,elif的语句都是多余的了。
大家说是这样吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2018-11-15 16:16:37 | 显示全部楼层
  1. while True:
  2.     number = input("请输入一个数字,我可以来判断是奇数还是偶数(如果不想继续可以输入'停止'): ")
  3.     if number == "停止":
  4.         break;
  5.     else:
  6.         number = int(number)
  7.         if number % 2 == 0:
  8.             print("这是偶数")
  9.         else:
  10.             print("这是奇数")
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2018-11-15 16:18:44 | 显示全部楼层
喜欢吃菠菜 发表于 2018-11-15 15:31
while语句既然遇到break了,后面就不要else了,如果条件不满足中断自然会运行,如果条件满足跳出循环,自然 ...

这不一定,如果break条件不满足,自然就会运行后面的程序,我楼上的代码就是这样。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2018-11-15 16:22:39 | 显示全部楼层
本帖最后由 喜欢吃菠菜 于 2018-11-15 16:25 编辑
Hunter_Hunry 发表于 2018-11-15 16:18
这不一定,如果break条件不满足,自然就会运行后面的程序,我楼上的代码就是这样。


你条件都满足跳出循环了,break了后面的怎么会运行?
我意思是,可以不用else,逻辑也一样,显得更简洁了。当然如果喜欢用else,是个人喜好
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2018-11-15 16:24:47 | 显示全部楼层
喜欢吃菠菜 发表于 2018-11-15 16:22
你条件都满足跳出循环了,break了后面的怎么会运行?

break条件满足了当然会跳出循环咯,我说得是break后面可以加else,你说的break后面的else是多余的这一点并不准确。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2018-11-15 16:26:11 | 显示全部楼层
喜欢吃菠菜 发表于 2018-11-15 16:22
你条件都满足跳出循环了,break了后面的怎么会运行?
我意思是,可以不用else,逻辑也一样,显得更简洁 ...

啊,你指的是同一个缩进内的else嘛?那的确是多余的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-15 16:28:06 | 显示全部楼层
Hunter_Hunry 发表于 2018-11-15 16:26
啊,你指的是同一个缩进内的else嘛?那的确是多余的。

是的啊。😄
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-11-15 18:17:43 | 显示全部楼层
jack77 发表于 2018-11-15 13:27
name =input("请告诉我一个整数:\n只要是整数 就可以啦 让我来帮你判断它是奇数 还是偶数\n如果想要结束请 ...

炒鸡感谢!!!谢谢你好心人!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-11-15 18:25:51 | 显示全部楼层

谢谢!好人一生平安!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-11-15 18:27:17 | 显示全部楼层

是的!谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-20 20:22:08 | 显示全部楼层

兄弟,第 7 行 代码 能简单说明一下吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-20 20:56:57 | 显示全部楼层
13572044595 发表于 2018-11-20 20:22
兄弟,第 7 行 代码 能简单说明一下吗?

print(['偶数','奇数'][int(name) %2])这句吗?
['偶数','奇数']这个是个列表
[int(name) %2]这个是索引
因为int(name) %2不外乎两种结果0或者1,结果就是
['偶数','奇数'][0],偶数
['偶数','奇数'][1],奇数

明白?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-20 21:06:38 | 显示全部楼层
喜欢吃菠菜 发表于 2018-11-20 20:56
print(['偶数','奇数'])这句吗?
['偶数','奇数']这个是个列表
这个是索引

哦~,厉害了~,
就是说嘛,你这print里面明明两个元素
中间没有逗号,竟然没报错~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-20 21:20:04 | 显示全部楼层
13572044595 发表于 2018-11-20 21:06
哦~,厉害了~,
就是说嘛,你这print里面明明两个元素
中间没有逗号,竟然没报错~

这样才pythonic,如果还是很多逻辑语句,就不学python了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-24 12:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表