以下程序里是如何跳出循环的不太理解
这是零基础学Python L005动动手里面的题目不理解的地方在程序里备注了:temp = input('请输入一个年份:')
while not temp.isdigit():
#input()返回值是字符串,所以not temp.isdigit()的结果应该是True(我理解没错吧?);然后我就一直没想通是怎么跳出循环的,哪位能帮忙解答一下吗?
temp = input("抱歉,您的输入有误,请输入一个整数:")
year = int(temp)
if year/400 == int(year/400):
print(temp + ' 是闰年!')
else:
if (year/4 == int(year/4)) and (year/100 != int(year/100)):
print(temp + ' 是闰年!')
else:
print(temp + ' 不是闰年!') isdigit()是字符串的方法,如果内容是数字返回true isdigit是字符串的方法,就是用于判断给的字符串里面是否仅为数字组成 倒戈卸甲 发表于 2020-4-23 11:47
isdigit()是字符串的方法,如果内容是数字返回true
嗯,这个我是理解的,我现在不懂的是while循环是怎么跳出来的,因为要跳出循环不是要不符合循环条件吗,但我现在感觉input()里面输入和整数应该还是符合循环条件的,想知道为什么输入整数就不符合:
not temp.isdigit这个条件了? anjingziji 发表于 2020-4-23 12:04
嗯,这个我是理解的,我现在不懂的是while循环是怎么跳出来的,因为要跳出循环不是要不符合循环条件吗, ...
是整数那就true,那not true就是跳出啊,这难道还有什么玄机吗? isdigit() 是字符串的方法,这里表示如果用户输入的不是数字就继续循环,如果是数字则结束循环。 anjingziji 发表于 2020-4-23 12:04
嗯,这个我是理解的,我现在不懂的是while循环是怎么跳出来的,因为要跳出循环不是要不符合循环条件吗, ...
not 就是取反,如果 temp.isdigit() 为 True 则 not temp.isdigit() 为 False,如果 temp.isdigit() 为 False 则 not temp.isdigit() 为 True 。 isdigit()方法用于检查字符串是否仅由数字组成。
若并非(while not) 仅为数字,则显示“抱歉,您的输入有误,请输入一个整数:”
否则就跳出循环,执行下一行指令了 404-404 发表于 2020-4-23 13:22
isdigit()方法用于检查字符串是否仅由数字组成。
若并非(while not) 仅为数字,则显示“抱歉,您的输入 ...
不好意思,回复晚了,还是有点不懂,因为input('请输入一个年份:')里面不是本来就有文字吗?所以仅为数字的情况是怎么出现的?(因为还是新手,问题可能有点奇怪,请多见谅哈。。。) anjingziji 发表于 2020-4-25 08:49
不好意思,回复晚了,还是有点不懂,因为input('请输入一个年份:')里面不是本来就有文字吗?所以仅为数 ...
input()里面你打的字是输入提示,实际传到temp的内容是程序运行时的输入,而isdigit()判断的是temp里面的内容,所以只需要你输入的全是数字就可以使isdigit()为true pythonboy123 发表于 2020-4-25 11:23
input()里面你打的字是输入提示,实际传到temp的内容是程序运行时的输入,而isdigit()判断的是temp里面的 ...
谢谢!
页:
[1]