水卉 发表于 2024-8-11 22:12:09

不加int取整会怎样

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

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

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

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

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

FishC 发表于 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 小助理,如未能正确解答您的问题,请继续追问。

jackz007 发表于 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 然后再比较才能保证结果的正确性。

水卉 发表于 2024-8-11 23:23:19

jackz007 发表于 2024-8-11 22:38
不加 int,num1 和 num2 就是字符串,当 num1 = '59',num2 = '81' 的时候,按照字符串比较的规则 ...

int取整只是在数字上用哈?

小甲鱼的二师兄 发表于 2024-8-12 00:03:00

不一样,不加 int(),比较的是字符串,字符串比较的是其背后对应的 Unicode 编码

三体人的智子 发表于 2024-8-12 07:38:06

int()将字符串型转化成了整数类型

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

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

从左往右数第六个

sfqxx 发表于 2024-8-12 21:12:08

本帖最后由 sfqxx 于 2024-8-12 21:16 编辑

代码这么发:代码

注意是不是,方便发也就这样了。


static/image/hrline/1.gif

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

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

有用给个最佳答案谢谢啦

William01 发表于 2024-8-12 22:46:53

本帖最后由 William01 于 2024-8-12 22:49 编辑

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



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

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

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

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

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






Twilight6 发表于 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 的哈~~~

水卉 发表于 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("第一个数和第二个数一样大!")

水卉 发表于 2024-8-13 15:42:57

William01 发表于 2024-8-12 22:46
第一个问题,代码发帖子怎么发好看一些,请参考下图:




你的看得懂,他们的看不太懂,还没接触到{:10_260:}

William01 发表于 2024-8-13 16:20:43

水卉 发表于 2024-8-13 15:42
你的看得懂,他们的看不太懂,还没接触到

多谢赞赏,大概是因为我们都是初学者的原因{:5_91:}

水卉 发表于 2024-8-15 22:55:22

William01 发表于 2024-8-13 16:20
多谢赞赏,大概是因为我们都是初学者的原因

int(3.44)
3
这样取整就没问题呢咋{:10_277:}

wangchoujuan 发表于 2024-8-15 23:20:42

刚学,这个是不是用if elif else更好

William01 发表于 2024-8-16 08:48:27

水卉 发表于 2024-8-15 22:55
这样取整就没问题呢咋

这两行代码在我看来本身就没问题。你的问题是什么?
页: [1]
查看完整版本: 不加int取整会怎样