2468246301 发表于 2020-5-16 04:24:51

关于int() 和 input()

num1 = input("请输入第一个整数:")
num2 = input("请输入第二个整数:")

if num1 < num2:
    print("第一个数比第二个数小!")

if num1 > num2:
    print("第一个数比第二个数大!")

if num1 == num2:
    print("第一个数和第二个数一样大!")
小鱼的答案上写的事要把input()用int()扩起来,这样输出才为整数,但是我运行没有修改版的时候输入数字并没有问题啊,是可以正常得到结果的、
百度了一下没怎么看明白,想问下基本功在哪能学到,int(), input(), choice这类我都基本不晓得,感谢大佬们

小甲鱼 发表于 2020-5-16 05:57:23

你需要理解的一点是:计算机的数据是有类型的,这在课程中有讲解,比如字符 "123" + "456" 得到的只能是字符串 "123455"(拼接),并不是数字的运算。如果你希望得到一个整数(可以运算的),那么需要 int() 函数来进行转换。

zltzlt 发表于 2020-5-16 06:55:04

input() 的作用是询问用户输入,无论用户输入什么,input() 都会返回一个字符串。而如果我们想要接收一个整数的话,就必须要把 input() 的内容转化为整数。

int() 这个 BIF 的作用是将一个字符串或浮点数(也就是小数)强制转化为整数:

>>> int('1')
1
>>> int('2')
2
>>> int('3')
3

所以 int(input()) 的意思是接收用户输入的整数。

liuzhengyuan 发表于 2020-5-16 08:13:09

input() 输入的是一个字符串
但是我们要一个整数
所以就要 int()

魔_慌 发表于 2020-5-16 08:24:39

liuzhengyuan 发表于 2020-5-16 08:13
input() 输入的是一个字符串
但是我们要一个整数
所以就要 int()

那他输入的是字符串为什么还能正常比较呢?

liuzhengyuan 发表于 2020-5-16 08:26:57

魔_慌 发表于 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'

魔_慌 发表于 2020-5-16 08:30:27

liuzhengyuan 发表于 2020-5-16 08:26
不能正常比较的

但是楼主的代码我试了,没有报错啊

liuzhengyuan 发表于 2020-5-16 08:47:14

魔_慌 发表于 2020-5-16 08:30
但是楼主的代码我试了,没有报错啊

两个相同的字符串用第一个字符的 ASCII 码来比较,我是说字符串和数字不能比较

Twilight6 发表于 2020-5-16 08:48:57

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列表中,选取一个随机的元素返回,可以用于字符串、列表、元组等。

魔_慌 发表于 2020-5-16 09:03:35

liuzhengyuan 发表于 2020-5-16 08:47
两个相同的字符串用第一个字符的 ASCII 码来比较,我是说字符串和数字不能比较

明白了

nizitao 发表于 2020-5-16 15:30:31

小甲鱼 发表于 2020-5-16 05:57
你需要理解的一点是:计算机的数据是有类型的,这在课程中有讲解,比如字符 "123" + "456" 得到的只能是字 ...

小甲鱼你错了
“123”+“456”
的结果应该是123456

pyrhon萌新# 发表于 2020-5-16 17:40:58

int得到的结果是一个整数,不会是一个字符串

2468246301 发表于 2020-5-17 00:34:01

小甲鱼 发表于 2020-5-16 05:57
你需要理解的一点是:计算机的数据是有类型的,这在课程中有讲解,比如字符 "123" + "456" 得到的只能是字 ...

谢谢!
页: [1]
查看完整版本: 关于int() 和 input()