鱼C论坛

 找回密码
 立即注册
查看: 2376|回复: 8

[已解决]零基础学习python

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

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

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

x
零基础学习python

002课后作业动动手第一题:
编写程序:calc.py 要求用户输入1到100之间数字并判断,输入符合要求打印“你妹好漂亮”,不符合要求则打印“你大爷好丑”

代码如下:
number=input("请输入1到100之间的数字:")
number1=int(number)
if 1<=number1<=100:
    print("你妹好漂亮")
else:
    print("你大爷好丑")

输入答案为整数时,代码运行没有问题,但是输入数字为小数就会报错。
想知道如何才能修正?即便输入小数代码也可以正常运行
最佳答案
2020-10-11 23:03:43
因为input() 接收到的都是字符串也就是str
如果是整数的话就是
'1'  '2'  '12456'  这样的字符串.请注意是字符串
这样的字符串转换成int当然没问题.
但是当输入小数的时候就是
'1.5'   类似的是不能直接转换成int的

可以改成
number=input("请输入1到100之间的数字:")
number1=int(float(number))
if 1<=number1<=100:
    print("你妹好漂亮")
else:
    print("你大爷好丑")

既然小数的字符串不能直接转成int,那么就把字符串小数直接转成小数,然后再把小数转成整数就行了.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-10-11 22:38:12 | 显示全部楼层
number=input("请输入1到100之间的数字:")
number1=float(number)#改成float型就好了
if 1<=number1<=100:
    print("你妹好漂亮")
else:
    print("你大爷好丑")

评分

参与人数 1荣誉 +1 鱼币 +2 收起 理由
xubuhao123 + 1 + 2

查看全部评分

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

使用道具 举报

发表于 2020-10-11 23:03:43 | 显示全部楼层    本楼为最佳答案   
因为input() 接收到的都是字符串也就是str
如果是整数的话就是
'1'  '2'  '12456'  这样的字符串.请注意是字符串
这样的字符串转换成int当然没问题.
但是当输入小数的时候就是
'1.5'   类似的是不能直接转换成int的

可以改成
number=input("请输入1到100之间的数字:")
number1=int(float(number))
if 1<=number1<=100:
    print("你妹好漂亮")
else:
    print("你大爷好丑")

既然小数的字符串不能直接转成int,那么就把字符串小数直接转成小数,然后再把小数转成整数就行了.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-10-11 23:34:43 | 显示全部楼层
linke.zhanghu 发表于 2020-10-11 23:03
因为input() 接收到的都是字符串也就是str
如果是整数的话就是
'1'  '2'  '12456'  这样的字符串.请注意 ...

没必要转成int了吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-12 09:53:59 | 显示全部楼层
之所以出错,是因为你对int和input这两个方法可能有误解
input方法返回值是字符串str类型。
int只能将其他类型数字(float等)或者纯数字字符串(只含有0~9,第一位可以是正/负号)转为int类型数字
你输入小数的话,得到的字符串中有小数点,所以不能用int转为整形int类型数字
int(3.5)  #  将folat类型数字转为int类型数字,得到3
int("30")  #  将纯数字字符串转为int类型数字,得到30
int("3.1")  #  将含有其他字符(.)的字符串转为int类型数字,出错

评分

参与人数 1荣誉 +1 鱼币 +1 收起 理由
xubuhao123 + 1 + 1

查看全部评分

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

使用道具 举报

发表于 2020-10-12 10:05:27 From FishC Mobile | 显示全部楼层
linke.zhanghu 发表于 2020-10-11 23:03
因为input() 接收到的都是字符串也就是str
如果是整数的话就是
'1'  '2'  '12456'  这样的字符串.请注意 ...

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

使用道具 举报

发表于 2020-10-12 11:40:57 From FishC Mobile | 显示全部楼层
xubuhao123 发表于 2020-10-12 10:05
输入100.x?

一百点几强制取整就会出现范围错误
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-12 14:22:50 | 显示全部楼层
int()为整型数据
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-12 22:16:05 | 显示全部楼层
可以试着用%d强制转化?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-18 09:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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