鱼C论坛

 找回密码
 立即注册
查看: 2538|回复: 12

[已解决]关于int() 和 input()

[复制链接]
发表于 2020-5-16 04:24:51 | 显示全部楼层 |阅读模式

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

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

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

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

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

if num1 == num2:
    print("第一个数和第二个数一样大!")
小鱼的答案上写的事要把input()用int()扩起来,这样输出才为整数,但是我运行没有修改版的时候输入数字并没有问题啊,是可以正常得到结果的、
百度了一下没怎么看明白,想问下基本功在哪能学到,int(), input(), choice这类我都基本不晓得,感谢大佬们
最佳答案
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列表中,选取一个随机的元素返回,可以用于字符串、列表、元组等。

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

使用道具 举报

发表于 2020-5-16 05:57:23 | 显示全部楼层
你需要理解的一点是:计算机的数据是有类型的,这在课程中有讲解,比如字符 "123" + "456" 得到的只能是字符串 "123455"(拼接),并不是数字的运算。如果你希望得到一个整数(可以运算的),那么需要 int() 函数来进行转换。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-5-16 06:55:04 | 显示全部楼层
input() 的作用是询问用户输入,无论用户输入什么,input() 都会返回一个字符串。而如果我们想要接收一个整数的话,就必须要把 input() 的内容转化为整数。

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

所以 int(input()) 的意思是接收用户输入的整数。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-16 08:13:09 | 显示全部楼层
input() 输入的是一个字符串
但是我们要一个整数
所以就要 int()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-16 08:24:39 | 显示全部楼层
liuzhengyuan 发表于 2020-5-16 08:13
input() 输入的是一个字符串
但是我们要一个整数
所以就要 int()

那他输入的是字符串为什么还能正常比较呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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'
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-16 08:30:27 | 显示全部楼层

但是楼主的代码我试了,没有报错啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-16 08:47:14 | 显示全部楼层
魔_慌 发表于 2020-5-16 08:30
但是楼主的代码我试了,没有报错啊

两个相同的字符串用第一个字符的 ASCII 码来比较,我是说字符串和数字不能比较
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

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

使用道具 举报

发表于 2020-5-16 09:03:35 | 显示全部楼层
liuzhengyuan 发表于 2020-5-16 08:47
两个相同的字符串用第一个字符的 ASCII 码来比较,我是说字符串和数字不能比较

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

使用道具 举报

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


小甲鱼你错了
“123”+“456”
的结果应该是123456
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 0 反对 1

使用道具 举报

发表于 2020-5-16 17:40:58 | 显示全部楼层
int得到的结果是一个整数,不会是一个字符串
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-11 14:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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