鱼C论坛

 找回密码
 立即注册
查看: 2049|回复: 6

[已解决]不懂判断文本还是数字

[复制链接]
发表于 2020-2-16 13:40:37 | 显示全部楼层 |阅读模式

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

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

x
  1. print('请输入一个年份:',end="")

  2. while True:
  3.     year = input()
  4.     if not year.isdigit():
  5.         print('错啦,这不是数字')
  6.         print("请输入数字:",end="")
  7.     else:
  8.         year = int()      
  9.         if year/400 == int(year/400):
  10.             print(year + ' 1是闰年!')
  11.         else:
  12.             if (year/4 == int(year/4)) and (year/100 != int(year/100)):
  13.                
  14.                 print(year + ' 2是闰年!')
  15.             else:
  16.                
  17.                 print(year + ' 不是闰年!')
复制代码


这段代码我输入字母其他符号就提示不是数字,我输入数字就提示变量不是整值????
最佳答案
2020-2-16 13:43:09
  1. print('请输入一个年份:', end="")

  2. while True:
  3.     year = input()
  4.     if not year.isdigit():
  5.         print('错啦,这不是数字')
  6.         print("请输入数字:", end="")
  7.     else:
  8.         year = int(year)    # 这里应是 int(year)
  9.         if year / 400 == int(year / 400):
  10.             print(str(year) + ' 1是闰年!')
  11.         else:
  12.             if (year / 4 == int(year / 4)) and (year / 100 != int(year / 100)):

  13.                 print(str(year) + ' 2是闰年!')
  14.             else:

  15.                 print(str(year) + ' 不是闰年!')    # 将 year 转化为字符串
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-2-16 13:43:09 | 显示全部楼层    本楼为最佳答案   
  1. print('请输入一个年份:', end="")

  2. while True:
  3.     year = input()
  4.     if not year.isdigit():
  5.         print('错啦,这不是数字')
  6.         print("请输入数字:", end="")
  7.     else:
  8.         year = int(year)    # 这里应是 int(year)
  9.         if year / 400 == int(year / 400):
  10.             print(str(year) + ' 1是闰年!')
  11.         else:
  12.             if (year / 4 == int(year / 4)) and (year / 100 != int(year / 100)):

  13.                 print(str(year) + ' 2是闰年!')
  14.             else:

  15.                 print(str(year) + ' 不是闰年!')    # 将 year 转化为字符串
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-16 13:48:36 | 显示全部楼层
第 11 15 17 三行,
数字和字符串不能直接相加
应该先把 year变量改成字符串,或者通过格式化的方式整进去
以及第 9 行应该改成:
  1. year = int(year)
复制代码

否则你会发现你的 year 都是0
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-16 15:06:37 | 显示全部楼层
Suud 发表于 2020-2-16 13:48
第 11 15 17 三行,
数字和字符串不能直接相加
应该先把 year变量改成字符串,或者通过格式化的方式整进 ...

谢谢,你的回答也是正确的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-16 15:07:55 | 显示全部楼层
  1. temp = input('请输入一个年份:')
  2. while not temp.isdigit():
  3.     temp = input("抱歉,您的输入有误,请输入一个整数:")

  4. year = int(temp)
  5. if year/400 == int(year/400):
  6.     print(temp + ' 是闰年!')
  7. else:
  8.     if (year/4 == int(year/4)) and (year/100 != int(year/100)):
  9.         


  10.         print(temp + ' 是闰年!')
  11.     else:
  12.         print(temp + ' 不是闰年!')

复制代码



你好,请问这另段代码为什么不用将temp转化为字符串呢??
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-16 15:29:04 | 显示全部楼层
数学小子 发表于 2020-2-16 15:07
你好,请问这另段代码为什么不用将temp转化为字符串呢??

temp 本来就是字符串
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-16 15:52:08 | 显示全部楼层
zltzlt 发表于 2020-2-16 15:29
temp 本来就是字符串

谢谢版主大大,我理解了

temp = input('请输入一个年份:'),
这是要求用户返回一个文本

year = int(temp)
这是将int内的转化为数值

temp是文本也是字符串,可以拼接字符串

但是刚才的year不是字符串str(),因为被我转化成int()数值了

这些都是基础,单独写笔记我还记得,但是一运用就不记得了,这思路,谢谢你
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-3 02:08

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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