xy爱学习 发表于 2021-9-15 00:20:07

python 课后题5 动手1

a = input("请输入年份")
r = int(a)
if (r % 400) :
    print("该年份是闰年")
else :
    if(r % 100) and not (r % 4):
      print("该年份是闰年")
    else :
      print("该年份不是闰年")
这样为什么不能判断是否为闰年,我想用余数表示真假。python课后题5里动手1

白two 发表于 2021-9-15 01:25:36

本帖最后由 白two 于 2021-9-15 01:29 编辑

下面都知道加 not ,上面就不知道……
a = input("请输入年份")
r = int(a)
if (r % 400):
    print("该年份是闰年")
else:
    if (r % 100) and not (r % 4):
      print("该年份是闰年")
    else:
      print("该年份不是闰年")

小庄晚睡了吗 发表于 2021-9-15 01:57:40

应该是不能被100整除 但能被4整除吧 你的not是不是错了位置啊

冬雪雪冬 发表于 2021-9-15 08:51:51

判断反了
比如能被400整除是
if r % 400 == 0:
而不是
if r % 400:   (这个相对应 if r % 400 != 0:)

洛阳城 发表于 2021-9-15 08:54:43

if(r % 100) and not (r % 4):
能被100整除的都能被4整除呀,所以这里逻辑有问题哦

Twilight6 发表于 2021-9-16 12:12:44


第一个 if 加上 not 即可,参考代码:

a = input("请输入年份")
r = int(a)
if not (r % 400):
    print("该年份是闰年")
else:
    if (r % 100) and not (r % 4):
      print("该年份是闰年")
    else:
      print("该年份不是闰年")

傻眼貓咪 发表于 2021-9-16 12:50:00

year = int(input("请输入年份:")) # 输入数字同时转换为整型 (integer)
if not (year%4) and ((year%100) or (not (year%400))): # 只要符合2个条件,就是闰年
    print(f"{year} 是闰年")
else:
    print(f"{year} 不是闰年")
页: [1]
查看完整版本: python 课后题5 动手1