不加int取整会怎样
我感觉int加不加都一样啊,为啥说是一个很严重的BUG{:5_99:}(还有大佬们,咱这个代码发帖子怎么发好看一点)
num1 = int (input("请输入第一个整数:"))
num2 = int (input("请输入第二个整数:"))
if num1 < num2:
print("第一个数比第二个数小!")
if num1 > num2:
print("第一个数比第二个数大!")
if num1 == num2:
print("第一个数和第二个数一样大!")
哈哈,看来你对整数转化的事情产生了疑问!让我们来用幽默的方式解开这个“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 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 然后再比较才能保证结果的正确性。 jackz007 发表于 2024-8-11 22:38
不加 int,num1 和 num2 就是字符串,当 num1 = '59',num2 = '81' 的时候,按照字符串比较的规则 ...
int取整只是在数字上用哈? 不一样,不加 int(),比较的是字符串,字符串比较的是其背后对应的 Unicode 编码 int()将字符串型转化成了整数类型
你比较的是两个整数,所以必须要加int()
还有代码发帖子有专门的代码格式,就是两个尖括号的那个
从左往右数第六个
本帖最后由 sfqxx 于 2024-8-12 21:16 编辑
代码这么发:代码
注意是不是,方便发也就这样了。
static/image/hrline/1.gif
因为该代码比较的是数字,数字比较用int()(整数),小数可用float();
输入的是字符串,字符串比较会出现问题,如3#说法。
有用给个最佳答案谢谢啦
本帖最后由 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”的作用了,它是用来定义或者说限定你输入的“东西”的,你只能输入整数,否则就报错。
input 返回的是字符串格式的数据类型,但是对字符串进行大小比较时,是依次比较从左到右字符的 Unicode 编码数值
例如字符串 "12" 就会 小于 字符串 "9", 因为 "1" 字符的 Unicode 值小于 "9" 字符
再例如: "195" 和 "1685" 他们都是先比较第一个字符, "1" 和 "1" 因为相同,继续比较下一个: "9" 和 "6" 因为 "9" 的 unicode 大于 "6" 所以比较结束, "195" 字符大于 "1685"
但是 int 型 12 肯定就是大于 9 的。1685 也肯定是大于 195 的哈~~~ William01 发表于 2024-8-12 22:46
第一个问题,代码发帖子怎么发好看一些,请参考下图:
num1 = int (input("请输入第一个整数:"))
num2 = int (input("请输入第二个整数:"))
if num1 < num2:
print("第一个数比第二个数小!")
if num1 > num2:
print("第一个数比第二个数大!")
if num1 == num2:
print("第一个数和第二个数一样大!") William01 发表于 2024-8-12 22:46
第一个问题,代码发帖子怎么发好看一些,请参考下图:
你的看得懂,他们的看不太懂,还没接触到{:10_260:} 水卉 发表于 2024-8-13 15:42
你的看得懂,他们的看不太懂,还没接触到
多谢赞赏,大概是因为我们都是初学者的原因{:5_91:} William01 发表于 2024-8-13 16:20
多谢赞赏,大概是因为我们都是初学者的原因
int(3.44)
3
这样取整就没问题呢咋{:10_277:} 刚学,这个是不是用if elif else更好
水卉 发表于 2024-8-15 22:55
这样取整就没问题呢咋
这两行代码在我看来本身就没问题。你的问题是什么?
页:
[1]