【Python新手求助】关于判断给定年份是否闰年
temp = input('请输入一个年份:')while not temp.isdigit():
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 + ' 不是闰年!')
关于这段代码的判断,除了这种方法还有没有别的简单方法可以用来判断?这种方法有点理解不来,像是if year/400 == int(year/400)这种的感觉找不到切入点去理解,虽然我知道是因为如果不是整数两边结果就会不一样就会输出False。有没有其他的简单方法?能不能用isinstance()?如果可以,要怎么用? 用这种方法感觉就像是在背一样,没有真正理解 本帖最后由 一个账号 于 2020-2-5 15:05 编辑
用取运算符符"%",更简单:
year = input('请输入一个年份:')
while not year.isdigit():
year = input("抱歉,您的输入有误,请输入一个整数:")
year = int(year)
if year % 4 == 0 and year % 100 != 0 or year % 400 == 0:
print(year, '年是闰年!')
else:
print(year, '年不是闰年!') 这样不太好理解,可以按照 3 楼的方法用取余运算符。 temp = input("请输入一个年份:")
while not temp.isdigit():
temp = ("您的输入有误,请重新输入一个整数:")
year = int(temp)
if (year/4) == int(year/4) and (year/100) == float(year/100):
print(temp +"年是普通闰年.")
if (year/100) == int(year):
print(temp +"年是世纪闰年.")
为什么在拼接字符串的时候用temp可以正常拼接,而用year却不行?
temp = input("请输入一个年份:")
while not temp.isdigit():
temp = ("您的输入有误,请重新输入一个整数:")
year = int(temp)
if (year/4) == int(year/4) and (year/100) == float(year/100):
print(year +"年是普通闰年.")
if (year/100) == int(year):
print(year +"年是世纪闰年.")
lzymm1 发表于 2020-2-5 14:52
为什么在拼接字符串的时候用temp可以正常拼接,而用year却不行?
。。。。。不好意思刚才没有刷新过来,没看见已经解决了就没发在另外的帖子 一个账号 发表于 2020-2-5 14:35
用取余操作符"%",更简单:
取余运算符是怎么用的? lzymm1 发表于 2020-2-5 14:52
为什么在拼接字符串的时候用temp可以正常拼接,而用year却不行?
因为字符串拼接是字符串与字符串,而 year 是整形,不能拼接 lzymm1 发表于 2020-2-5 15:02
取余运算符是怎么用的?
就是取余数,比如:
>>> 1 % 2 # 1 不能整除 2,余 1
1
>>> 5 % 2 # 5 除以 2 等于 2,余 1
1 一个账号 发表于 2020-2-5 15:07
就是取余数,比如:
懂了,谢谢 一个账号 发表于 2020-2-5 15:07
就是取余数,比如:
在除数大于被除数的时候,就不会进行运算而保留被除数? lzymm1 发表于 2020-2-5 15:19
在除数大于被除数的时候,就不会进行运算而保留被除数?
不是,也是按照正常的除法运算。
1 除以 2,商 0 余 1。
页:
[1]