一个可能是特别low的问题 卑微初学者,请求解答
在小甲鱼的第三节课的课后习题中有一个编程的练习题是让输入1-100的数字 程序会判断对错
最开始的三句是:
temp = input (“请输入1到100之间的数字”)
num = int(temp)
if 1<=num<=100:
print........
我比较好奇为什么一定要加上“num = int(temp)”这句
为什么不是直接把temp代入判定中 比如:
temp = input (“请输入1到100之间的数字”)
if 1<=temp<=100:
print........
我一个真.初学者,才学两天,可能用词不太专业 准确,请大家不要在意细节{:10_282:}
希望有朋友可以帮忙回答一下这个问题 谢谢!!! 本帖最后由 ouyunfu 于 2020-3-10 01:12 编辑
# -*- coding: utf-8 -*-
temp = input('请输入1到100之间的数字')
print(type(temp))因为temp = input (“请输入1到100之间的数字”)temp的数据类型是str,你需要转化为整型 首先,要整明白啥是字符串(str)啥时整型(int)。
“我”,“a”,“¥”,“1”这些都可以是字符,试着在IDLE中输入:type(“我”)检查它的类型,在试试type(“1”)和type(1),比较下它们的区别。
在IDLE中,尝试输入print(1)和print(‘1’),得到的结果是不一样的,print(1)的输出结果是1(int),print(‘1’)的输出结果是'1'(str)。意思是引号内的内容,输出时是属于str的类型。所以,temp = input (“请输入1到100之间的数字”)这个结果得到的是str的输出结果。
其次,条件里面所说的:请输入1到100之间的数字。 这个1-100是属于int的类型,所以如果不把 【temp = input (“请输入1到100之间的数字”)】这个的结果改成int类型,那么你最终在测试的时候输入的数值得到的结果也会是str类型。str类型你可以看成是个符号,符号是没有大小区别的,就不具备比较大小的条件。 可以去学习一下数据类型相关知识
验证一个东西最简单的方法就是亲手试一试,你可以自己尝试if 1<=temp<=100:
然后运行,解释器会告诉你什么地方出错的
这里的问题是input()获得的数据类型是string(字符串),而你之后做比较的1和100是int(整形)
不同的数据类型是无法直接比较的,它们属于不同的概念
你可以说两个字是不是一样的,也可以说两个数字谁大谁小,但你不能说一个字符比一个数字大 学习了,不同数据类型无法比较
页:
[1]