鱼C论坛

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

[已解决]零基础033讲,输入浮点型数据却不报错!

[复制链接]
发表于 2018-4-2 00:54:52 | 显示全部楼层 |阅读模式

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

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

x
题目要求输入整数时正常运行,否则报错!但是输入浮点型数据,这段代码却不报错,怎么改呢?

  1. def int_input(prompt=''):
  2.     while True:
  3.         try:
  4.             int(input(prompt))
  5.             break
  6.         except ValueError:
  7.             print('出错,您输入的不是整数!')

  8. int_input('请输入一个整数:')
复制代码


最佳答案
2018-4-2 16:31:56
直接判断可以用第一个,想引发错误可以用第二个

  1. def int_input(prompt=''):
  2.     print('-----函数1-----')
  3.     while True:
  4.         if input(prompt).isdigit():
  5.             print('输入是整数')
  6.             break
  7.         else:
  8.             print('输入不是整数')


  9. int_input('请输入一个整数:')




  10. def int_input(prompt=''):
  11.     print('-----函数2-----')
  12.     while True:
  13.         if input(prompt).isdigit():
  14.             print('输入是整数')
  15.             break
  16.         else:
  17.             raise ValueError('输入不是整数')

  18.             
  19. int_input('请输入一个整数:')
复制代码


QQ截图20180402163128.png
屏幕快照 2018-04-02 上午12.54.27.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-4-2 08:40:37 | 显示全部楼层
因为浮点数可以被int啊,如果要单独排除浮点数的话方法很多啊,例如判断'.'是否在输入字符串中
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-2 09:03:30 | 显示全部楼层
实测你的代码会抛出异常啊:
  1. 请输入一个整数:1.25
  2. 出错,您输入的不是整数!
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-2 09:50:32 | 显示全部楼层
大头目 发表于 2018-4-2 08:40
因为浮点数可以被int啊,如果要单独排除浮点数的话方法很多啊,例如判断'.'是否在输入字符串中

是这样改吗?但是这样当我输入整型数据与浮点型数据是,系统会报错啊:TypeError: argument of type 'int' is not iterable 或者是TypeError: argument of type 'float' is not iterable。
屏幕快照 2018-04-02 上午9.47.12.png
屏幕快照 2018-04-02 上午9.47.04.png
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-2 11:15:24 | 显示全部楼层
def的方法名和其中的变量名重复了吧,都是a
  1. a = input()
  2. if '.' not in a:
  3.         b = int(a)
  4.         print(b)
  5. else:
  6.         print('输入错误')
复制代码

没毛病啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-2 11:17:29 | 显示全部楼层
下次别截图了,没人会手动帮你输入代码,只能大致看看
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-2 16:31:56 | 显示全部楼层    本楼为最佳答案   
直接判断可以用第一个,想引发错误可以用第二个

  1. def int_input(prompt=''):
  2.     print('-----函数1-----')
  3.     while True:
  4.         if input(prompt).isdigit():
  5.             print('输入是整数')
  6.             break
  7.         else:
  8.             print('输入不是整数')


  9. int_input('请输入一个整数:')




  10. def int_input(prompt=''):
  11.     print('-----函数2-----')
  12.     while True:
  13.         if input(prompt).isdigit():
  14.             print('输入是整数')
  15.             break
  16.         else:
  17.             raise ValueError('输入不是整数')

  18.             
  19. int_input('请输入一个整数:')
复制代码


QQ截图20180402163128.png
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-5-1 18:11:37 | 显示全部楼层
  1. def int_input(mes):
  2.     while 1:
  3.         try:
  4.             in_mes = input(mes)
  5.             num_mes = int(in_mes)
  6.             return num_mes
  7.         except (SyntaxError,ValueError) as e:
  8.             print('出错了,你输入的不是整数')



  9. mes = int_input('请输入一个整数:')
  10. print(mes)
复制代码

刚做的,字母错误跟小数输入错误类型不一样,可以两种错误写入
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-10 02:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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