鱼C论坛

 找回密码
 立即注册
查看: 1292|回复: 8

[已解决]零基础第五节求助

[复制链接]
发表于 2018-1-27 19:59:20 | 显示全部楼层 |阅读模式

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

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

x
判断是否为闰年

a=input('请输入你想判断的年份:')
while type(a)!=type(1):
    print('抱歉,您的输入不符合要求!',end='')
    a=input('请重新输入:')
b=int(a)
c=b/4
d=b/100
e=b/400
if ((type(c)==type(1)) and (type(d)!=type(1))) or (type(e)==type(1)):
    print('是闰年')
else:
    print('不是闰年')


哪错了????
最佳答案
2018-1-27 20:07:26
本帖最后由 塔利班 于 2018-1-27 20:16 编辑

最明显的问题,你的循环条件就错了a=input,所以a是字符型,能和整形1一个type吗,
循环都不能停
其他没往下看了
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-1-27 20:02:10 | 显示全部楼层
判断闰年条件没那么简单。

参以下代码
  1. while True:
  2.     temp = input("請輸入一個年份: ")
  3.     if temp == "q": #输入q表示退出
  4.         break
  5.    
  6.     if not temp.isdigit():
  7.         print("       輸入錯誤,請重新輸入!!!")
  8.     else:   
  9.         year = int(temp)

  10.         # 条件1、能整除4且不能整除100  条件2、能整除4, 能整除100, 又能整除400
  11.         if year % 4 == 0: # 1和2: 能整除4
  12.             if year % 100 == 0: # 2: 能整除100
  13.                 if year % 400 == 0: # 2: 能整除400
  14.                     print(str(year) + ("是閏年"))
  15.                 else:
  16.                     print(str(year) + ("不是閏年"))
  17.             else: # 1: 不能整除100
  18.                 print(str(year) + ("是閏年"))
  19.         else:
  20.             print(str(year) + ("不是閏年"))
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-27 20:07:26 | 显示全部楼层    本楼为最佳答案   
本帖最后由 塔利班 于 2018-1-27 20:16 编辑

最明显的问题,你的循环条件就错了a=input,所以a是字符型,能和整形1一个type吗,
循环都不能停
其他没往下看了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-27 20:13:14 | 显示全部楼层
ba21 发表于 2018-1-27 20:02
判断闰年条件没那么简单。

参以下代码

这个码貌似是一直在循环的。?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-27 20:15:02 | 显示全部楼层
塔利班 发表于 2018-1-27 20:07
最明显的问题,你的循环条件就错了a=input,所以a是字符型,能和整形1一个type吗,
循环都不能进行
其他 ...

感谢🙏
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-27 20:19:40 | 显示全部楼层
塔利班 发表于 2018-1-27 20:07
最明显的问题,你的循环条件就错了a=input,所以a是字符型,能和整形1一个type吗,
循环都不能停
其他没 ...

a=input('请输入你想判断的年份:')
b=int(a)
c=b/4
d=b/100
e=b/400
if ((type(c)==type(1)) and (type(d)!=type(1))) or (type(e)==type(1)):
    print('是闰年')
else:
    print('不是闰年')

把前面那段删了为何还是不可以判断??输入2004判断不是闰年??
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-27 20:21:53 | 显示全部楼层
因为你得到的a始终是字符型的(input得到的数据是字符型的),所以你在输入之后程序会陷入循环里面出不来,建议你参考一下这一节的第0个题中小甲鱼提到的几个函数
可以用这个函数
s为字符串
s.isdigit()    所有字符都是数字,为真返回True,否则返回False
我也是这几天才开始看这门课,基本上咱们进度差不多,如果可以的话咱们可以加个好友一起交流啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-27 20:27:47 | 显示全部楼层
16130130321 发表于 2018-1-27 20:21
因为你得到的a始终是字符型的(input得到的数据是字符型的),所以你在输入之后程序会陷入循环里面出不来, ...

感谢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-27 21:32:53 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-6 11:10

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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