鱼C论坛

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

[已解决]Python入门 33讲 动动手第2题

[复制链接]
发表于 2017-11-22 10:18:13 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 shizhou 于 2017-11-22 10:58 编辑
  1. def int_input(prompt=''):
  2.     while True:
  3.         try:
  4.             int(input(prompt))
  5.             break
  6.         except ValueError:
  7.             print('出错,您输入的不是整数!')

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


int(input(prompt)) 如果输入的是纯数字的字符串,应该不会报错呀!如下:
  1. >>> int("123")
  2. 123
复制代码


但是运行这个程序,如果输入"123",应该是正常返回吧?为什么会打印:出错,您输入的不是整数!要求重新输入一个整数呢?
最佳答案
2017-11-22 10:55:13
shizhou 发表于 2017-11-22 10:48
不好意思!不知道你怎么就觉得我火气大了!
123这种纯数字是没有出错,我知道呀!我问的是纯数 ...

那麻烦你好好看看我给你的第一条回复,解释过了

当你用这种方式"123",返回的结果相当于
result = '"123"'
注意上面多了一层引号
那么再进行是否是纯数字判断的时候,因为有引号存在,所以报错
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-11-22 10:27:38 | 显示全部楼层
我用你的代码,输入123这样的纯数字并没有报错
你是不是输入了"123"这种形式?input本身就会将所有的输入都作为返回值
所以如果是这样"123",那就不属于纯数字,因为还有引号
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2017-11-22 10:39:20 | 显示全部楼层
本帖最后由 shizhou 于 2017-11-22 11:21 编辑
BngThea 发表于 2017-11-22 10:27
我用你的代码,输入123这样的纯数字并没有报错
你是不是输入了"123"这种形式?input本身就会将所有的输入 ...


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

使用道具 举报

发表于 2017-11-22 10:43:20 | 显示全部楼层
shizhou 发表于 2017-11-22 10:39
请看清楚我的问题描述!

火气很大啊
我都说了,我输入了类似123这种纯数字并没有报错
既然你发现了问题,你可以举个例子来说明,以免让读者取猜测你的本意
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-22 10:45:18 | 显示全部楼层
目测你的代码没问题,是不是操作失误?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-11-22 10:48:18 | 显示全部楼层
BngThea 发表于 2017-11-22 10:43
火气很大啊
我都说了,我输入了类似123这种纯数字并没有报错
既然你发现了问题,你可以举个例子来说明 ...

不好意思!不知道你怎么就觉得我火气大了!
123这种纯数字是没有出错,我知道呀!我问的是纯数字字符串,例如:'123',"234"
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-22 10:55:13 | 显示全部楼层    本楼为最佳答案   
shizhou 发表于 2017-11-22 10:48
不好意思!不知道你怎么就觉得我火气大了!
123这种纯数字是没有出错,我知道呀!我问的是纯数 ...

那麻烦你好好看看我给你的第一条回复,解释过了

当你用这种方式"123",返回的结果相当于
result = '"123"'
注意上面多了一层引号
那么再进行是否是纯数字判断的时候,因为有引号存在,所以报错
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-11-22 11:25:01 | 显示全部楼层
BngThea 发表于 2017-11-22 10:55
那麻烦你好好看看我给你的第一条回复,解释过了

当你用这种方式"123",返回的结果相当于

已经明白,谢谢指导!你的第一条回答已经说明白了,当时没看懂,一时转不过!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-4 04:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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