课后题第六讲
temp = input('请输入一个年份:')while not temp.isdigit(): 1、用whille not isinstance(temp,int)代替,为什么会一直循环这条语句啊?
temp = input('格式输入有误,请重新输入吧')
year = int(temp)
if year/400 == int(year/400):
print(temp +'是闰年') 2、 这里面的temp +是什么意思??,前面也没有定义temp +啊,
else:
if (year/4 == int(year/4)) and (year/100 == int(year/100)):
print(temp +'是闰年')
else:
print(temp +'不是闰年') 1、用whille not isinstance(temp,int)代替,为什么会一直循环这条语句啊?
因为input是接受用户输入并将其转为字符串类型 你这是判断是否为int 所以条件永远不会成立
2、 这里面的temp +是什么意思??,前面也没有定义temp +啊,
是字符串的拼接就是把temp 字符串拼接上 后面的字符串 1.不论输入的是什么,temp都为字符串
2.temp就是input的返回值 本帖最后由 heidern0612 于 2020-6-3 21:08 编辑
1、 isinstance 你的temp是个字符串,不属于int类型,所以会返回FALSE,not False就是TRUE,所以实际上你while 后面那一坨坨的结果就是个True,所以会一直运行。
2、temp是个啥? temp就是个字符串,字符串+后面的字符串,就是简单的字符串拼接而已。 1. input接受到的玩意儿永远都是字符串
所以每次instance的结果都是str,所以不与int匹配
建议使用字符串的isdigit方法,可以判断字符串内的数据是否是整数
2.因为temp是字符串,所以可以和另一个字符串相加
例如:
"5" + "是闰年" 结果是'5是闰年' _荟桐_ 发表于 2020-6-3 21:20
1. input接受到的玩意儿永远都是字符串
所以每次instance的结果都是str,所以不与int匹配
建议使用字符串 ...
懂了懂了,,果然是大佬 懂了懂了,,各位大佬 残酷月光 发表于 2020-6-4 20:30
懂了懂了,,果然是大佬
跪求最佳{:10_281:}
页:
[1]