鱼C论坛

 找回密码
 立即注册
查看: 2965|回复: 19

[已解决]为什么这个代码我自己打程序不会报错

[复制链接]
发表于 2022-7-26 22:20:27 | 显示全部楼层 |阅读模式

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

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

x
但是小甲鱼出的作业说这个代码是错的,但是我自己打出来没有问题啊,这是为什么,求大佬的帮助谢谢!!!
最佳答案
2022-7-26 22:31:49
PKR 发表于 2022-7-26 22:27
可以理解为input() 函数获取的只能说是字符串类型,而因为字符串之间不能进行比较所以是错的,所以要先用 ...

字符串比较大小也是可以的,不会报错,但字符串之间的大小比较 就是 比较字符的 Unicode 编码

这当然不符合需求,所以要int转型,比较数字大小
QQ图片20220726221815.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-7-26 22:23:30 | 显示全部楼层
num1和num2是字符串,后面却拿字符串进行比较,这是一个bug
解决:
1、2行改成
num1 = int(input("请输入第一个整数: "))
num2 = int(input("请输入第二个整数: "))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-7-26 22:26:53 | 显示全部楼层
你会发现10比9小
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-7-26 22:27:52 | 显示全部楼层
临时号 发表于 2022-7-26 22:23
num1和num2是字符串,后面却拿字符串进行比较,这是一个bug
解决:
1、2行改成

可以理解为input() 函数获取的只能说是字符串类型,而因为字符串之间不能进行比较所以是错的,所以要先用int函数转换吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-7-26 22:30:48 | 显示全部楼层
ZhKQYu 发表于 2022-7-26 22:26
你会发现10比9小

还不懂原理 为什么字符串之间比较起来就会运行成这样……能解释解释吗  小白一个
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-7-26 22:31:49 | 显示全部楼层    本楼为最佳答案   
PKR 发表于 2022-7-26 22:27
可以理解为input() 函数获取的只能说是字符串类型,而因为字符串之间不能进行比较所以是错的,所以要先用 ...

字符串比较大小也是可以的,不会报错,但字符串之间的大小比较 就是 比较字符的 Unicode 编码

这当然不符合需求,所以要int转型,比较数字大小
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-7-26 22:31:51 | 显示全部楼层
PKR 发表于 2022-7-26 22:27
可以理解为input() 函数获取的只能说是字符串类型,而因为字符串之间不能进行比较所以是错的,所以要先用 ...

字符串能比较,但你会发现9比10大,因为字符串之间的比较与整数之间的比较是不一样的,所以我们需要将字符串转换为整数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-7-26 22:35:51 | 显示全部楼层
青出于蓝 发表于 2022-7-26 22:31
字符串比较大小也是可以的,不会报错,但字符串之间的大小比较 就是 比较字符的 Unicode 编码

这当然 ...

但是怎么看出number1是字符串的,不是要带双引号吗,为什么就能知道他是字符串了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-7-26 22:38:48 | 显示全部楼层
临时号 发表于 2022-7-26 22:31
字符串能比较,但你会发现9比10大,因为字符串之间的比较与整数之间的比较是不一样的,所以我们需要将字符串 ...

怎么看出来number是字符串的  区分不了啊啊啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-7-26 22:40:44 | 显示全部楼层
PKR 发表于 2022-7-26 22:35
但是怎么看出number1是字符串的,不是要带双引号吗,为什么就能知道他是字符串了

input函数返回值默认为str类型(即字符串)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-7-26 22:41:07 | 显示全部楼层
PKR 发表于 2022-7-26 22:38
怎么看出来number是字符串的  区分不了啊啊啊

input函数接受的输入都是字符串类型的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-7-26 22:45:05 | 显示全部楼层
字符串之间的比较是比较编码的大小,你可以用ord()和chr()这两个内置方法来查看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-7-26 22:46:03 | 显示全部楼层
ZhKQYu 发表于 2022-7-26 22:45
字符串之间的比较是比较编码的大小,你可以用ord()和chr()这两个内置方法来查看

而且是逐位比较,一旦发现一个比另一个大,就会又返回值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-7-27 12:12:30 | 显示全部楼层
青出于蓝 发表于 2022-7-26 22:40
input函数返回值默认为str类型(即字符串)

input函数括号里面的不是才叫字符串吗,就是那个“请输入一个数字”,我是想说是怎么知道num1是字符串的,麻烦说的通俗点,新手不太懂😂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-7-27 12:18:35 | 显示全部楼层
青出于蓝 发表于 2022-7-26 22:40
input函数返回值默认为str类型(即字符串)

不是要被引号引起来的才叫字符串吗???
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-7-27 12:27:51 | 显示全部楼层
PKR 发表于 2022-7-27 12:18
不是要被引号引起来的才叫字符串吗???

不是的~
举个例子 str(1) 也是字符串~
input同理
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-7-27 15:06:09 | 显示全部楼层
青出于蓝 发表于 2022-7-27 12:27
不是的~
举个例子 str(1) 也是字符串~
input同理

所以总之就是 num1=input( )中  num为字符串,input函数括号里的也是字符串是吗,所以要先用int函数将括号的转化成数字形式是吗,这种理解可以吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-7-27 15:09:25 | 显示全部楼层
PKR 发表于 2022-7-27 15:06
所以总之就是 num1=input( )中  num为字符串,input函数括号里的也是字符串是吗,所以要先用int函数将括 ...

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

使用道具 举报

 楼主| 发表于 2022-7-27 15:14:27 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-7-27 15:22:39 | 显示全部楼层

问题已解决别忘了设置最佳哈~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-17 09:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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