课后练习第31讲第2题
标准答案如下:def int_input(prompt=''):
while True:
try:
int(input(prompt))
break
except ValueError:
print('出错,您输入的不是整数!')
int_input('请输入一个整数:')
请教大佬,int(input(prompt))是什么意思?此处不是类型转换吗?
谢谢{:9_227:} 本帖最后由 xiaosi4081 于 2020-8-4 21:42 编辑
没错,就是把输入的数据转换为整型
因为input函数返回的是字符串类型,所以要把它转换成整型才能进行计算
求最佳{:10_254:} 本帖最后由 sunrise085 于 2020-8-4 21:47 编辑
int(input(prompt))是类型转换。
prompt是传入的字符串,
input(prompt)就是获取输入,得到一个字符串,prompt为提示语,相当于input("请输入一个整数:")
int(input(prompt))将输入的内容转为int类型数据
当输入的字符串无法转为int类型时,该转换则会抛出ValueError异常
sunrise085 发表于 2020-8-4 21:42
int(input(prompt))是类型转换。
prompt是传入的字符串,
但是为什么浮点数也会出现异常而不是下取整呢 老牛第一名 发表于 2020-8-4 21:53
但是为什么浮点数也会出现异常而不是下取整呢
input的返回值没有浮点数,全都是字符串。
真正的浮点数能被转为int,是向下取整
int(3.2)#这个可以转换,得到3
int('3.2')#这个不能转换,因为字符串中有其他字符 '.'
你可以去看看int函数的文档。
字符串转为int,只有第一个符号可以是'+'或'-',或者没有这个正负号,后面只能是0~9,出现这个以外的情况,都会报ValueError异常 老牛第一名 发表于 2020-8-4 21:53
但是为什么浮点数也会出现异常而不是下取整呢
那你不如改成:def int_input(prompt=''):
while True:
try:
float(input(prompt))
break
except ValueError:
print('出错,您输入的不是整数!') sunrise085 发表于 2020-8-4 22:00
input的返回值没有浮点数,全都是字符串。
真正的浮点数能被转为int,是向下取整
可以先 float('3.2') 一下 _2_ 发表于 2020-8-5 08:31
可以先 float('3.2') 一下
嗯嗯,是的,是可以这么写。
但是楼主写的这个函数本身就是为了保证输入的是一个整数,若那样写,就偏离目的了。
现在只是就事论事,帮助他理解问题的原因。 sunrise085 发表于 2020-8-5 08:34
嗯嗯,是的,是可以这么写。
但是楼主写的这个函数本身就是为了保证输入的是一个整数,若那样写,就偏离 ...
好的,
因为看到各位大佬都已经解答了,
我也不再赘述了 我再解答一遍吧,还能刷个贴{:10_250:}
这个是在try的代码块里的,这个代码的意思就是检测用户输入的是不是整数,不是的话那就没法进行int数据转换,然后就会报错。报错就输入:“出错,您输入的不是整数!”然后重新循环,一直到输入整数,就不会报错,但这个数值也没用被存起来,等于就是一个测试语句。然后执行break退出循环。
所以,这是个测试语句!
如果你心情好,可以设置我为最佳哦{:10_254:} 好的,谢谢诸位大佬!
页:
[1]