关于int() 和 input()
num1 = input("请输入第一个整数:")num2 = input("请输入第二个整数:")
if num1 < num2:
print("第一个数比第二个数小!")
if num1 > num2:
print("第一个数比第二个数大!")
if num1 == num2:
print("第一个数和第二个数一样大!")
小鱼的答案上写的事要把input()用int()扩起来,这样输出才为整数,但是我运行没有修改版的时候输入数字并没有问题啊,是可以正常得到结果的、
百度了一下没怎么看明白,想问下基本功在哪能学到,int(), input(), choice这类我都基本不晓得,感谢大佬们 你需要理解的一点是:计算机的数据是有类型的,这在课程中有讲解,比如字符 "123" + "456" 得到的只能是字符串 "123455"(拼接),并不是数字的运算。如果你希望得到一个整数(可以运算的),那么需要 int() 函数来进行转换。 input() 的作用是询问用户输入,无论用户输入什么,input() 都会返回一个字符串。而如果我们想要接收一个整数的话,就必须要把 input() 的内容转化为整数。
int() 这个 BIF 的作用是将一个字符串或浮点数(也就是小数)强制转化为整数:
>>> int('1')
1
>>> int('2')
2
>>> int('3')
3
所以 int(input()) 的意思是接收用户输入的整数。 input() 输入的是一个字符串
但是我们要一个整数
所以就要 int() liuzhengyuan 发表于 2020-5-16 08:13
input() 输入的是一个字符串
但是我们要一个整数
所以就要 int()
那他输入的是字符串为什么还能正常比较呢? 魔_慌 发表于 2020-5-16 08:24
那他输入的是字符串为什么还能正常比较呢?
不能正常比较的
>>> '2' > 2
Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
'2' > 2
TypeError: '>' not supported between instances of 'str' and 'int' liuzhengyuan 发表于 2020-5-16 08:26
不能正常比较的
但是楼主的代码我试了,没有报错啊 魔_慌 发表于 2020-5-16 08:30
但是楼主的代码我试了,没有报错啊
两个相同的字符串用第一个字符的 ASCII 码来比较,我是说字符串和数字不能比较 int() 是把字符串类型的数字转化为整数,input()是让用户输入,输出的字符串类型
字符串大小比较是通过 ord() 比较字母的ASCII只来进行比较的,如果字符串的第一个字符的ASCII码值相同,那么就比第二个字符串的ASCII码值,所以你这里字符串可以直接进行比较,但是他们不是比较数字大小,而是比较ASCII码值大小哦!
ASCII码表,百度可以查到
python内置的方法ord()可以把括号内的字符串转为对应的ASCII值,chr()可以把ASCII值转为对应的字符
打个比方:
"1" 对应的ASCII码是等于 49 而 "2" 对应的ASCII值是 50 所以 1<2
还有你说的 choice 应该是值random模块里面的choice方法吧
random.choice()
可以从任何序列,比如list列表中,选取一个随机的元素返回,可以用于字符串、列表、元组等。
liuzhengyuan 发表于 2020-5-16 08:47
两个相同的字符串用第一个字符的 ASCII 码来比较,我是说字符串和数字不能比较
明白了 小甲鱼 发表于 2020-5-16 05:57
你需要理解的一点是:计算机的数据是有类型的,这在课程中有讲解,比如字符 "123" + "456" 得到的只能是字 ...
小甲鱼你错了
“123”+“456”
的结果应该是123456 int得到的结果是一个整数,不会是一个字符串 小甲鱼 发表于 2020-5-16 05:57
你需要理解的一点是:计算机的数据是有类型的,这在课程中有讲解,比如字符 "123" + "456" 得到的只能是字 ...
谢谢!
页:
[1]