飞鱼python 发表于 2021-3-8 13:00:18

请求大神解答

temp = input('请输入一个年份:')
while not temp . isdigit():
    temp = input('抱歉,你输入有误:')
year = int(temp)
if (year/4 == int(year/4)) and (year/100 != int(year/100)):
    print('是闰年')
else:
    if year/400 == int(year/400):
      print('是闰年')
    else:
      print('不是闰年')
为什么   while not temp . isdigit():   改为while temp != int():无论输入什么数后面都不运行,只弹出 “抱歉,你输入有误”
int() 不是表示整数吗? 而且 while not temp . isdigit(): 有没有其他简单的表达形式,新手上路,感谢各位大神,百忙之中帮忙解答

jackz007 发表于 2021-3-8 13:10:55

本帖最后由 jackz007 于 2021-3-8 13:14 编辑

      你的障碍来自理解这一句
while not temp . isdigit():
      首先,你得明白
temp = input('请输入一个年份:')
      那么 , temp 是一个字符串
temp . isdigit()
      这一句是在用字符串对象的方法 isdigit() 判定字符串 temp 是否由纯数字字符构成,如果是,那么方法返回 True,否则,返回 False
not temp . isdigit()
      这一句的意思是反转 temp . isdigit() 的逻辑值,就是说,如果temp . isdigit() 的值是 True,那么 not temp . isdigit() 的值便是 False。
      那么,语句
while not temp . isdigit():
      的意思就是,如果 temp 不是由纯数字字符构成,循环条件就成立

      对于初学者来说,遇到不懂的地方,要去理解它,不要总是试图绕过去,即便是绕,也得在完全理解过后再绕也不迟。

yuedong 发表于 2021-3-8 13:38:06

第一个问题:
由于输入的temp是字符串,int()后是整数
例如:

temp = '123'
temp == int(temp)
# 就是判断
’123' == 123      # 这里肯定是返回False的
#那么你哪里的
while temp != int():# 就一直是成立的状态,一直循环

飞鱼python 发表于 2021-3-8 18:27:12

jackz007 发表于 2021-3-8 13:10
你的障碍来自理解这一句

      首先,你得明白


感谢大佬

飞鱼python 发表于 2021-3-8 18:43:01

yuedong 发表于 2021-3-8 13:38
第一个问题:
由于输入的temp是字符串,int()后是整数
例如:

感谢大佬
页: [1]
查看完整版本: 请求大神解答