繁宇宙 发表于 2022-8-10 17:14:25

python补充,拉下个问题抱歉


temp = input('请输入一个年份:')
while not temp.isdigit():
    temp = input('你的输入有误,请重新输入一个整数:')
year = int(temp)
if year/400 == int(year/400):
    print(temp + '是闰年。')
else:
    print(temp + '不是闰年。')
while not temp.isdigit():是什么意思纠求解

柿子饼同学 发表于 2022-8-10 17:18:24

temp 是 str 类型 , 有 isdigit 函数判断字符串中是否全是数字 , 是就返回 True , 不是就 False
所以 not temp.isdigit() 就是如果字符串不是纯数字的(输入不合法) 就一直让输入 , 而不会进入判断程序

一点点儿 发表于 2022-8-10 17:18:49

本帖最后由 一点点儿 于 2022-8-10 17:29 编辑

就是当temp不是仅由数字构成时进入循环
                                          

临时号 发表于 2022-8-10 17:23:03

not temp.isdigit()的意思是只要输入不是整数就进入循环

jackz007 发表于 2022-8-10 17:25:47

本帖最后由 jackz007 于 2022-8-10 17:29 编辑

while temp.isdigit()
      这个可以看懂?意思是,如果字符串 temp 的内容完全由数字字符构成,那么,循环条件就成立。

      当字符串 temp 的内容完全由数字字符构成时, temp.isdigit() 的逻辑值就是 True,而 not temp.isdigit() 是逻辑值取反,相同的情况下,表达式的值为 False。
      所以,表达式
while not temp.isdigit()
      代表的意思是,如果字符串 temp 的内容不完全由数字字符构成(包含有非数字字符),那么,循环条件就成立。
页: [1]
查看完整版本: python补充,拉下个问题抱歉