hushaorongygsa 发表于 2021-2-6 11:34:51

错在哪里?


temp = input("请输入一个新的数字:")
numer=int(temp)
while isinstance(number,int):
            if (number%4==0 and number%100==0) or number%400==0:
                            print(temp+"是闰年!")
            else:
                            print(temp+"是平年!")
else:
            print("请重新输入一个新的数字:")

Ⅲ只小猪 发表于 2021-2-6 11:37:23

底下else缩进

°蓝鲤歌蓝 发表于 2021-2-6 11:39:05

错是什么?

sunrise085 发表于 2021-2-6 11:51:43

不知道你所说的错是指的什么。是程序运行错误,还是没有得到预期的结果
if (number%4==0 and number%100==0) or number%400==0:
#改为
if (number%4==0 and number%100!=0) or number%400==0:

另外你好像对 while…else…结构 理解的不对吧?
while…else…结构 是当while循环正常结束(不是通过break跳出循环)的时候,执行else,这是while巡检已经结束了,不会再回到循环内。你这个在else中打印让再次输入是不是不对啊?

Twilight6 发表于 2021-2-6 14:03:14


1. 变量名拼写错误,你前面的 number 拼成了 numer

2. 第四行的 if 语句的冒号使用的是中文的符号,而且 number%100==0 条件应改为 number%100!=0

3. 代码缩进有些不规范,不需要空这么多,一个缩进(即四个空格)即可

4. 你的 number 将 temp 通过 int 函数转为整型了,在通过 isinstance 判断会导致永远成立

5. while 循环过程没有 break 也没有改变循环条件的语句,导致死循环

参考代码:

print("请输入一个新的数字:", end='')
while True:
    temp = input()
    number = int(temp)
    if (number % 4 == 0 and number % 100 != 0) or number % 400 == 0:
      print(temp + "是闰年!")
    else:
      print(temp + "是平年!")
    print("请继续输入一个新的数字:", end='')

HuYue_Andy 发表于 2021-2-7 20:18:14

第2行应该是   number=int(temp)
页: [1]
查看完整版本: 错在哪里?