鱼C论坛

 找回密码
 立即注册
查看: 2391|回复: 20

[已解决]求助:请问这里的程序为什么要这么写?

[复制链接]
发表于 2017-5-2 19:44:29 | 显示全部楼层 |阅读模式

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

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

x
第一张图是正确答案,第二道题是自己写的。
请问这里后面要有num = int(temp)
最佳答案
2017-5-3 06:32:23
你的错误只是把数值类型和字符串类型的变量进行比较所以报错了,只要2个变量的类型一致(都是数值或者都是字符串)就可以放一起。

字符串转数值的用int()函数,上面已经说了,不再重复了。

如果是2个字符串,其实也可以比较,这样写:
  1. num = input('Input a number:')
  2. if eval('1 <=' + num + '<= 100'):
  3.     print ('True')
  4. else:
  5.     print ('False')
复制代码

不过其本质上也是数值的比较,只不过eval()函数比较强大,可以自动转换字符串到它可以识别的任何类型。
捕获.PNG
捕获1.PNG
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-5-2 19:47:24 | 显示全部楼层
因为 input 返回值类型是 string
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-2 19:56:03 | 显示全部楼层
hldh214 发表于 2017-5-2 19:47
因为 input 返回值类型是 string

额(⊙o⊙)…,扶额,string是什么类型?······
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-2 20:05:21 | 显示全部楼层
第一行:input把用户返回的值赋值给了num
第二行:如果1小于或等于num,num小于或等于100,则:
              打印“good”
第三行:如果不是,则:
              打印“terrible”


本人也是新手,请多多指教!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-2 20:06:51 | 显示全部楼层
我说的是题2,题1跟题2道理一样。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-2 20:20:59 | 显示全部楼层
AndyZhou 发表于 2017-5-2 20:05
第一行:input把用户返回的值赋值给了num
第二行:如果1小于或等于num,num小于或等于100,则:
          ...

不好意思,我问的是num = int(temp)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-2 20:26:33 | 显示全部楼层
因为数字的形式是str(str是什么可自行百度),而str不能直接赋值给num(变量名),必须把str变成整形,所以要用int来把str变成整形(int是什么可自行百度)。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-2 20:33:12 | 显示全部楼层
AndyZhou 发表于 2017-5-2 20:26
因为数字的形式是str(str是什么可自行百度),而str不能直接赋值给num(变量名),必须把str变成整形,所 ...

追问一下,请问给变量赋值的数据类型只能是整型吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-2 20:37:22 | 显示全部楼层
应该是吧......我接触的也少,我学到的目前还没有除整形外能给变量赋值的东东......
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-2 20:37:49 | 显示全部楼层
string是字符串,好像无法与数字类型比较;
num=int(temp)中int将类型强制转换为整数型,再将temp赋值给num;
用num与1,100比较
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-2 20:39:30 | 显示全部楼层
AndyZhou 发表于 2017-5-2 20:37
应该是吧......我接触的也少,我学到的目前还没有除整形外能给变量赋值的东东......

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

使用道具 举报

发表于 2017-5-2 20:40:21 | 显示全部楼层
榴芒小姐 发表于 2017-5-2 20:39
好的,谢谢你的回答。

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

使用道具 举报

发表于 2017-5-2 20:47:38 | 显示全部楼层
榴芒小姐 发表于 2017-5-2 20:33
追问一下,请问给变量赋值的数据类型只能是整型吗?

没有这种限制。
input()函数返回的结果是str形式的,
temp = input('请输入1到100之间的数字'),那么temp的形式是str,
num = int(temp),那么num的形式是整形。
之所以要用整形赋值给num,是因为你下面写了if 1 <= num <=100,那么num不是整形的话当然就报错了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2017-5-2 20:52:25 | 显示全部楼层
776667 发表于 2017-5-2 20:47
没有这种限制。
input()函数返回的结果是str形式的,
temp = input('请输入1到100之间的数字'),那么te ...

哦,整型只能与整型比较,是么
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-2 23:26:05 | 显示全部楼层
榴芒小姐 发表于 2017-5-2 20:52
哦,整型只能与整型比较,是么

当然了,不要想得太复杂,你能拿一串汉字去和阿拉伯数字比大小么
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-3 06:32:23 | 显示全部楼层    本楼为最佳答案   
你的错误只是把数值类型和字符串类型的变量进行比较所以报错了,只要2个变量的类型一致(都是数值或者都是字符串)就可以放一起。

字符串转数值的用int()函数,上面已经说了,不再重复了。

如果是2个字符串,其实也可以比较,这样写:
  1. num = input('Input a number:')
  2. if eval('1 <=' + num + '<= 100'):
  3.     print ('True')
  4. else:
  5.     print ('False')
复制代码

不过其本质上也是数值的比较,只不过eval()函数比较强大,可以自动转换字符串到它可以识别的任何类型。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-3 07:55:11 | 显示全部楼层
因为input函数返回的是字符串类型的数据,字符串是没法跟整型的数据进行比较的,所以要使用int函数将其转换为整型数据
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-3 14:30:02 | 显示全部楼层
10楼说的很对
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-3 17:02:30 | 显示全部楼层
姑娘要坚持哦,加油。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-3 17:18:05 | 显示全部楼层
imput函数返回字符串,num是整型,类型不匹配。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-19 23:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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