鱼C论坛

 找回密码
 立即注册
查看: 2852|回复: 7

[已解决]代码运行问题

[复制链接]
发表于 2022-3-22 10:20:01 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
times = 3
temp = input('请输入一个年份')
while not temp.isdigit():
    print('抱歉输入错误')
if times > 1:
        print('请输入整数')
        
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('不是闰年')
    if times > 1:
         print('请再输入一遍',end='')
    else:
         print('抱歉机会用光了')
            
times = times - 1

请大佬看看这个自己改的代码,想弄成次数,但是运行起来,一次就结束了,不知道哪里出啦问题
写的可能太粗糙,各位不要嫌弃,给指正一下
最佳答案
2023-5-3 12:59:22
您好!从您的描述来看,您希望建立一个具有重试次数的程序,用于判断输入的年份是否为闰年。根据您提供的代码,我发现了一些问题,并对其进行了相应的修改。请参考以下代码:
times = 3

while times > 0:
    temp = input('请输入一个年份:')

    if not temp.isdigit():
        print('抱歉,输入错误,请输入整数。')
    else:
        year = int(temp)

        if (year % 400) == 0 or (year % 4 == 0 and year % 100 != 0):
            print(temp + '是闰年')
        else:
            print(temp + '不是闰年')

    times -= 1
    if times > 0:
        print('您还有{}次尝试机会。'.format(times))
    else:
        print('抱歉,机会已用光。')

在这个修改后的代码中,我将主要逻辑放入了一个 while 循环中,以便于实现重试次数的功能。在每次循环中,都会提示用户输入年份并进行判断,循环结束后,会根据剩余次数给出相应提示。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-3-22 10:56:26 | 显示全部楼层
你这算法都有问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-22 10:59:44 | 显示全部楼层
times = 3

while times > 0:
    temp = input('请输入一个年份:')
    while not temp.isdigit():
        temp = input("请重新输入:")
                
    years = int(temp)
    if (years % 4 == 0 and years % 100 != 0) or (years % 400 == 0):
        print(temp + '是闰年')
    else:
        print('不是闰年')
                
    times = times - 1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-22 16:42:44 | 显示全部楼层

十分感谢给出的代码
大佬,但是我的代码倘若去掉关于times的代码运行,他是可以准确的运行的呀,并且他的算法没有问题啊,得出的结果跟你的一样啊。
有一地方不懂的是这个times该怎么个用法啊,我用了几次都没用对过
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-22 16:55:03 | 显示全部楼层

大佬,你这个代码,倘若输的不是整数,一直输入的是小数的话,就不受次数的限制了,可以一直输入
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-22 17:06:39 | 显示全部楼层
神奇的二哈 发表于 2022-3-22 16:55
大佬,你这个代码,倘若输的不是整数,一直输入的是小数的话,就不受次数的限制了,可以一直输入

你的判断是判断是否为字符串吧......
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-3 12:22:13 | 显示全部楼层
根据你提供的代码,我看到以下几点需要修改:

1. 如果想要实现多次输入,那么应该将整个代码逻辑放在一个 `while` 循环内部。

2. 计数器变量 `times` 在 `while` 循环中应该初始化,并且在每次循环末尾更新计数器。

3. 输入判断的部分可以封装成一个函数,避免代码冗余。

4. 判断输入值是否是整数的部分可以使用 Python 内置函数 `isdigit()` 更加简洁地实现。

综上所述,修改后的代码如下:
times = 3

while times > 0:
    temp = input('请输入一个年份:')
    if not temp.isdigit():
        print('抱歉输入错误,请输入整数')
        times -= 1
        continue
        
    year = int(temp)
    if (year % 400 == 0) or (year % 4 == 0 and year % 100 != 0):
        print(f'{temp} 是闰年')
    else:
        print(f'{temp} 不是闰年')
    times -= 1

print('抱歉机会用光了')

修改后的代码实现了多次输入年份的功能。每次输入年份时先检查输入是否合法(即是否为整数),如果不是,则计数器减一并开始新一轮循环;如果是,则进行闰年判断并输出结果。当计数器 `times` 减至零时,输出结束信息。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-3 12:59:22 | 显示全部楼层    本楼为最佳答案   
您好!从您的描述来看,您希望建立一个具有重试次数的程序,用于判断输入的年份是否为闰年。根据您提供的代码,我发现了一些问题,并对其进行了相应的修改。请参考以下代码:
times = 3

while times > 0:
    temp = input('请输入一个年份:')

    if not temp.isdigit():
        print('抱歉,输入错误,请输入整数。')
    else:
        year = int(temp)

        if (year % 400) == 0 or (year % 4 == 0 and year % 100 != 0):
            print(temp + '是闰年')
        else:
            print(temp + '不是闰年')

    times -= 1
    if times > 0:
        print('您还有{}次尝试机会。'.format(times))
    else:
        print('抱歉,机会已用光。')

在这个修改后的代码中,我将主要逻辑放入了一个 while 循环中,以便于实现重试次数的功能。在每次循环中,都会提示用户输入年份并进行判断,循环结束后,会根据剩余次数给出相应提示。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-28 03:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表