關於[第005讲:闲聊之Python的数据类型 | 课后测试题]
1. 写一个程序,判断给定年份是否为闰年。(注意:请使用已学过的 BIF 进行灵活运用)这样定义闰年的:能被4整除但不能被100整除,或者能被400整除都是闰年。
問題如下:
year=input("請輸入今年年份: ")
while year.isdigit() == False:
print("輸入不合法!")
year=input("請重新輸入:")
year=int(year)
data=year/400
data1=year/4
data2=year/100
if type(data)==type(1) :
print("該年為閏年")
elif type(data1)==type(1) and type(data2)==type(1.1):
print("該年為閏年")
else:
print("該年不是閏年")
或是
if isinstance(data, int)==True :
print("該年為閏年")
elif isinstance(data1, int)==True and isinstance(data2, int)==False:
print("該年為閏年")
else:
print("該年不是閏年")
為什麼這樣是行不通的? 本帖最后由 Twilight6 于 2020-6-15 09:30 编辑
Python 中除法返回的都是 float 浮点型,而不是整型,你如果想要判断是否被整除应该使用Python 的求余运算符 %
所以你不管是第一种方法 还是 第二种方法 条件永远不会满足
帮你更改了下:
year=input("請輸入今年年份: ")
while year.isdigit() == False:
print("輸入不合法!")
year=input("請重新輸入:")
year=int(year)
data=year%400
data1=year%4
data2=year%100
if data == 0:
print("該年為閏年")
elif data1 == 0 and data2 != 0:
print("該年為閏年")
else:
print("該年不是閏年")
Twilight6 发表于 2020-6-15 09:27
Python 中除法返回的都是 float 浮点型,而不是整型,你如果想要判断是否被整除应该使用Python 的求余 ...
原來 Python 中除法返回的都是 float 浮点型,不會有整型啊!
我疑惑了好久呢,感謝回覆^^ 一隻太平洋睡鯊 发表于 2020-6-15 09:55
原來 Python 中除法返回的都是 float 浮点型,不會有整型啊!
我疑惑了好久呢,感謝回覆^^
加油 ! ^-^~
页:
[1]