鱼C论坛

 找回密码
 立即注册
查看: 1065|回复: 13

[已解决]咸鱼的自学编程之求助日记02

[复制链接]
发表于 2019-6-25 20:50:59 | 显示全部楼层 |阅读模式

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

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

x
>>> G=int(input('请输入分数:'))
请输入分数:92.2
Traceback (most recent call last):
  File "<pyshell#11>", line 1, in <module>
    G=int(input('请输入分数:'))
ValueError: invalid literal for int() with base 10: '92.2'
>>>


如上,对G赋值经int转型整数的小数,出现错误
萌新绞尽脑汁都想不懂为什么,求大神讲解。



另我想加入一个while循环以检测纠正用户输入错误,如下


print('07-09练习 分数区间确认')
G=input('请输入分数:'))
while type(G) == type(1) or type(0.1):
    print("输入错误,请重新输入")
    G=input('请输入分数:')
G=int(G)
if  90 <= G <= 100:
    print("A")
elif  80 <= G < 90:
    print("B")
elif  70 <= G < 80:
    print("C")
elif  60 <= G < 70:
    print("D")
elif  G < 60:
    print("E")


程序无法跑起来,求解错在哪里?
最佳答案
2019-6-25 21:07:25

想输入一个任意类型数据可以这样,但是建议不要用在写服务器程序中,会有安全风险

a = eval(input())
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-6-25 20:51:59 | 显示全部楼层
顶顶顶
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-6-25 20:53:30 From FishC Mobile | 显示全部楼层
Lices 发表于 2019-6-25 20:51
顶顶顶

int只能转整,转不了小数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-6-25 20:56:04 | 显示全部楼层
1.如果需要输入小数,用float转换。
2.input得到的都是字符串type得到的是<class 'str'>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-6-25 20:57:05 | 显示全部楼层
wp231957 发表于 2019-6-25 20:53
int只能转整,转不了小数

int()函数不是把其余他类型的数据转成整形吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-6-25 20:59:29 | 显示全部楼层
Lices 发表于 2019-6-25 20:57
int()函数不是把其余他类型的数据转成整形吗?

不是的,只能是看起来是整数的字符串 如 "123"  "345" 这样
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-6-25 21:00:40 | 显示全部楼层
Lices 发表于 2019-6-25 20:57
int()函数不是把其余他类型的数据转成整形吗?
  1. >>> int('66')
  2. 66
  3. >>> int('66.66')
  4. Traceback (most recent call last):
  5.   File "<stdin>", line 1, in <module>
  6. ValueError: invalid literal for int() with base 10: '66.66'
  7. >>> float('66.66')
  8. 66.66
  9. >>> int(float('66.66'))
  10. 66
  11. >>>
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-6-25 21:02:31 | 显示全部楼层
冬雪雪冬 发表于 2019-6-25 20:56
1.如果需要输入小数,用float转换。
2.input得到的都是字符串type得到的是

感谢版主大大,我的理解是三大转型函数int、float、str,是把其他类型的数据转成需要的数据类型,如
int(92.2)=92
float(92)=92.0
str(92)='92'
那题中意思应该就是把input函数收集到的数转成整数,应该没问题才对。
是我理解错误了吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-6-25 21:05:10 | 显示全部楼层

意思是如果用int处理input收集到的字符串,必须要非浮点型才能转义吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-6-25 21:06:02 | 显示全部楼层
Lices 发表于 2019-6-25 21:05
意思是如果用int处理input收集到的字符串,必须要非浮点型才能转义吗?

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

使用道具 举报

发表于 2019-6-25 21:07:25 | 显示全部楼层    本楼为最佳答案   

想输入一个任意类型数据可以这样,但是建议不要用在写服务器程序中,会有安全风险

a = eval(input())
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-6-25 21:08:07 | 显示全部楼层
Lices 发表于 2019-6-25 21:02
感谢版主大大,我的理解是三大转型函数int、float、str,是把其他类型的数据转成需要的数据类型,如
int( ...

input(92.2)可以
input('92')可以
input('92.2')不可以
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-6-25 21:09:01 | 显示全部楼层
newu 发表于 2019-6-25 21:07
想输入一个任意类型数据可以这样,但是建议不要用在写服务器程序中,会有安全风险

a = eval(input())

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

使用道具 举报

 楼主| 发表于 2019-6-25 21:11:58 | 显示全部楼层
冬雪雪冬 发表于 2019-6-25 21:08
input(92.2)可以
input('92')可以
input('92.2')不可以

懂了,int、float函数在处理字符串时是相近处理,感谢版主大大
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-18 04:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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