鱼C论坛

 找回密码
 立即注册
查看: 1251|回复: 5

[已解决]新手一个小问题

[复制链接]
发表于 2018-1-17 10:51:47 | 显示全部楼层 |阅读模式

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

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

x
新手一个小问题,如图描述
最佳答案
2018-1-17 11:05:43
本帖最后由 sky 于 2018-1-17 11:07 编辑


这个还挺有意思的
首先 你运行文件的时候 input自动会返回字符串 你输入不用带引号
所以此时你输入'5' input返回的就是"'5'"
传给int的就是"'5'"了
然后就是int的事情
int如果接受字符串则只能接受整数字面量的字符串 你的"'5'"的字面量是'5' 所以异常了
同理 你可以看 int("1.0")也会错误 但是 int(1.0)就不会
今天看微博还见到很多人说python是弱类型 我都默默点赞 笑而不语

如图,我在IDEL把字符串赋值给temp,temp可以用int()转换成整型再输出。但是先写好再运行就不行,为啥?? ...

如图,我在IDEL把字符串赋值给temp,temp可以用int()转换成整型再输出。但是先写好再运行就不行,为啥?? ...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-1-17 10:58:55 | 显示全部楼层
不必加引号,input捕捉键盘输入赋值给temp就是str类型,也就是输入5会变成'5',输入'5'就是"'5'"
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-17 11:03:18 | 显示全部楼层
直接输入5就行了
你加了引号就无法用int将它转化为5了,因为加了以后,int相当于要转换
int("'5'"),里面有引号,不是数字,所以报错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-17 11:05:43 | 显示全部楼层    本楼为最佳答案   
本帖最后由 sky 于 2018-1-17 11:07 编辑


这个还挺有意思的
首先 你运行文件的时候 input自动会返回字符串 你输入不用带引号
所以此时你输入'5' input返回的就是"'5'"
传给int的就是"'5'"了
然后就是int的事情
int如果接受字符串则只能接受整数字面量的字符串 你的"'5'"的字面量是'5' 所以异常了
同理 你可以看 int("1.0")也会错误 但是 int(1.0)就不会
今天看微博还见到很多人说python是弱类型 我都默默点赞 笑而不语

评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +3 收起 理由
ssqde + 5 + 5 + 3 多谢告知

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

发表于 2018-1-17 11:24:26 | 显示全部楼层
出错主要原因在于你的强行转换!如果你输入5就可以没有问题,但是你输入带'5'就不行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-17 11:48:09 | 显示全部楼层
谢谢各位的回答  我已经知道了  非常感谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-25 07:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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