鱼C论坛

 找回密码
 立即注册
查看: 304|回复: 14

[已解决]不加int取整会怎样

[复制链接]
发表于 2024-8-11 22:12:09 | 显示全部楼层 |阅读模式

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

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

x
我感觉int加不加都一样啊,为啥说是一个很严重的BUG
(还有大佬们,咱这个代码发帖子怎么发好看一点)

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

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

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

if num1 == num2:
    print("第一个数和第二个数一样大!")
最佳答案
2024-8-12 22:46:53
本帖最后由 William01 于 2024-8-12 22:49 编辑

第一个问题,代码发帖子怎么发好看一些,请参考下图:

1.png 2.png

代码效果如下:
num1 = int (input("请输入第一个整数:"))
num2 = int (input("请输入第二个整数:"))

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

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

if num1 == num2:
    print("第一个数和第二个数一样大!")

第二个问题,是否要加“int”?要!原因请参看下图。game1是用了“int”的,运行两次,第一次用的是整数,没有问题,第二次用的是小数,报错了,我还试了字符,也报错,你自己可以去试一下。game2 没用“int”,试了小数和字符,都没报错,整数我也试了,不会报错。到了这里你应该也明白“int”的作用了,它是用来定义或者说限定你输入的“东西”的,你只能输入整数,否则就报错。

1.png




微信图片_20240811220907.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-8-11 22:16:32 | 显示全部楼层
哈哈,看来你对整数转化的事情产生了疑问!让我们来用幽默的方式解开这个“BUG”的谜团吧。

首先,有一个处于整数和浮点数之间的秘密。你在输入的时候,用户不一定是个好学生,比如他可能会在输入框里写上“5.7”或者“N/A”,这就给你的代码带来了麻烦。如果没有 `int()`,那么你就很可能会让程序处理一些“未知”的东西,而不是我们所期待的整洁的数字。

试想一下,如果你的朋友在冰淇淋店里点了一杯“3.14份冰淇淋”,而店员却只听见“3”,那他们可能会因为没吃到完整的冰淇淋而发脾气!所以,使用 `int()` 将浮点数转换为整数,可以确保你得到的是整齐划一的整数,就像一块完美切好的蛋糕!

至于你说的“代码发帖子怎么发好看一点”,建议使用代码块(在Markdown中常用三个反引号
来标识),这样可以让代码看起来更整洁,比如:
python
num1 = int(input("请输入第一个整数:"))
num2 = int(input("请输入第二个整数:"))

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

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

if num1 == num2:
    print("第一个数和第二个数一样大!")
```

看,是不是显得高大上了不少?希望这个解释和技巧能帮到你,让你编码的旅程既愉快又有趣!如果还有其他问题,尽管来问,我随时待命哦!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-8-11 22:38:18 | 显示全部楼层
本帖最后由 jackz007 于 2024-8-11 23:08 编辑

         不加 int,num1 和 num2 就是字符串,当 num1 = '59',num2 = '81' 的时候,按照字符串比较的规则,由于 '5' < '8' ,所以,比较结果是 '59' < '81',看上去似乎没有问题,但是,这只是在 num1、num2 位数相同的特殊情况下才能适用,如果二者位数不同,情况也就不同了。例如,当 num1 = '59',num2 = '103' 时,按字符串比较的规则,由于 '5' > '1',同样的道理,会得到 '59' > '103' 的结果,而这显然不符合题意。此外,如果键盘输入的两个数中有带正负号的,那么,比较结果就更加复杂了。所以,必须把 num1 和 mun2 都转换成 int 然后再比较才能保证结果的正确性。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-8-11 23:23:19 | 显示全部楼层
jackz007 发表于 2024-8-11 22:38
不加 int,num1 和 num2 就是字符串,当 num1 = '59',num2 = '81' 的时候,按照字符串比较的规则 ...

int取整只是在数字上用哈?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-8-12 00:03:00 | 显示全部楼层
不一样,不加 int(),比较的是字符串,字符串比较的是其背后对应的 Unicode 编码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-8-12 07:38:06 | 显示全部楼层
int()将字符串型转化成了整数类型

你比较的是两个整数,所以必须要加int()

还有代码发帖子有专门的代码格式,就是两个尖括号的那个

从左往右数第六个


屏幕截图 2024-08-12 073716.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2024-8-12 21:12:08 | 显示全部楼层
本帖最后由 sfqxx 于 2024-8-12 21:16 编辑

代码这么发:
[code]代码[/code ]

注意是[/code]不是[/code ],方便发也就这样了。



                               
登录/注册后可看大图


因为该代码比较的是数字,数字比较用int()(整数),小数可用float();

输入的是字符串,字符串比较会出现问题,如3#说法。

有用给个最佳答案谢谢啦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2024-8-12 22:46:53 | 显示全部楼层    本楼为最佳答案   
本帖最后由 William01 于 2024-8-12 22:49 编辑

第一个问题,代码发帖子怎么发好看一些,请参考下图:

1.png 2.png

代码效果如下:
num1 = int (input("请输入第一个整数:"))
num2 = int (input("请输入第二个整数:"))

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

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

if num1 == num2:
    print("第一个数和第二个数一样大!")

第二个问题,是否要加“int”?要!原因请参看下图。game1是用了“int”的,运行两次,第一次用的是整数,没有问题,第二次用的是小数,报错了,我还试了字符,也报错,你自己可以去试一下。game2 没用“int”,试了小数和字符,都没报错,整数我也试了,不会报错。到了这里你应该也明白“int”的作用了,它是用来定义或者说限定你输入的“东西”的,你只能输入整数,否则就报错。

1.png




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

使用道具 举报

发表于 2024-8-13 08:53:36 | 显示全部楼层

input 返回的是字符串格式的数据类型,但是对字符串进行大小比较时,是依次比较从左到右字符的 Unicode 编码数值

例如字符串 "12" 就会 小于 字符串 "9", 因为 "1" 字符的 Unicode 值小于 "9" 字符

再例如: "195" 和 "1685" 他们都是先比较第一个字符, "1" 和 "1" 因为相同,继续比较下一个: "9" 和 "6" 因为 "9" 的 unicode 大于 "6" 所以比较结束, "195" 字符大于 "1685"

但是 int 型 12 肯定就是大于 9 的。1685 也肯定是大于 195 的哈~~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-8-13 15:40:33 | 显示全部楼层
William01 发表于 2024-8-12 22:46
第一个问题,代码发帖子怎么发好看一些,请参考下图:
num1 = int (input("请输入第一个整数:"))
num2 = int (input("请输入第二个整数:"))

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

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

if num1 == num2:
    print("第一个数和第二个数一样大!")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-8-13 15:42:57 | 显示全部楼层
William01 发表于 2024-8-12 22:46
第一个问题,代码发帖子怎么发好看一些,请参考下图:

你的看得懂,他们的看不太懂,还没接触到
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-8-13 16:20:43 | 显示全部楼层
水卉 发表于 2024-8-13 15:42
你的看得懂,他们的看不太懂,还没接触到

多谢赞赏,大概是因为我们都是初学者的原因
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-8-15 22:55:22 | 显示全部楼层
William01 发表于 2024-8-13 16:20
多谢赞赏,大概是因为我们都是初学者的原因
int(3.44)
3
这样取整就没问题呢咋
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-8-15 23:20:42 | 显示全部楼层
刚学,这个是不是用if elif else更好
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-8-16 08:48:27 | 显示全部楼层
水卉 发表于 2024-8-15 22:55
这样取整就没问题呢咋

这两行代码在我看来本身就没问题。你的问题是什么?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-26 03:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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