两个问题。想问下老师

两个问题。想问下老师

# 定义变量reason
reason = [[3, 4, 5], [6, 7, 8], [9, 10, 11], [12, 1, 2]]
# 变量month接收input函数‘请输入1-12之间的月份’,并将输入的数值转化为int()类型
month = int(input("请输入您要查询季节的月份:"))
while True:
   if not month.isdigit():
       month = input("请输入数字1-12,重新输入:")
   if not month.isdigit():
       continue
   # if判断month在嵌套的第一个列表里
   month = int(month)
   if month in reason[0]:
       print('{0}月是春季'.format(month))
       break
   # elif判断month在嵌套的第二个列表里,并像控制台输出时夏季
   elif month in reason[1]:
       print('{0}月是夏季'.format(month))
       break
   # elif判断month在嵌套的第三个列表里,并像控制台输出时秋季
   elif month in reason[2]:
       print('{0}月是秋季'.format(month))
       break
   # elif判断month在嵌套的第四个列表里,并像控制台输出时冬季
   elif month in reason[3]:
       print('{0}月是冬季'.format(month))
       break


1、在慕课运行会死循环,在pycharm上运行就没问题

2、输入非1-12内的数字会报错,怎么解决?

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学,你好。

问题1:经测试,代码在Pycharm和在线编辑器中都会报错,如下图:

http://img1.sycdn.imooc.com//climg/5dc3c9ae0929163610150753.jpg错误原因是:对输入的值提前进行了类型转换,致使isdigit()方法的调用者是int类型,而isdigit()是属于字符串类型的方法,你可按照如下图所示的方法进行修改,如下图:

http://img1.sycdn.imooc.com//climg/5dc3cad209cad60610430738.jpg问题2:对于问题2的判断逻辑是这样的,首先判断输入是否为数字,若是数字,且值大于12或者小于1,则提示“你输入的数字区间有误,请输入数字1-12,重新输入:”;若不是数字,则提示“请输入数字1-12,重新输入:”,具体参照如下代码:http://img1.sycdn.imooc.com//climg/5dc3ce320928348810510781.jpg

如果我的回答解决了您的疑惑,请采纳!祝~学习愉快~

  • qq__8359 提问者 #1
    问题1:复制的时候忘了删除int()了,然后在慕课编辑器上会死循环 问题2看懂了,谢谢
    2019-11-07 23:09:15
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
1.Python零基础入门
  • 参与学习           人
  • 提交作业       2727    份
  • 解答问题       8160    个

想要进入Python Web、爬虫、人工智能等高薪领域,你需要掌握本阶段的Python基础知识,课程安排带你高效学习轻松入门,学完你也能听得懂Python工程师的行业梗。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师