uiiaunou 发表于 2022-3-30 21:58:16

我觉得应该是pycharm上的问题大佬们来帮我看看吧

有问题~!005-是时候***代码了课后题中,最后一道题动动手找bug这个为啥三种解决方式在pychram里面都会报错呢{:10_266:}
num1 = input("请输入第一个整数:")
num2 = input("请输入第二个整数:")

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

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

if num1 == num2:
    print("第一个数和第二个数一样大!")
'''
上一题的代码其实存在一个致命的 BUG,请找到它并修正。

小甲鱼给到的答案是:
1.

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

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

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

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

2.

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

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

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

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

3.

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

num1 = int(num1)
num2 = int(num2)

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

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

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

isdkz 发表于 2022-3-30 21:59:26

报错信息呢?

uiiaunou 发表于 2022-3-30 23:47:26

isdkz 发表于 2022-3-30 21:59
报错信息呢?

第一个
"D:\cheer up\python\python.exe" "D:/cheer up/pycharm/练习/小甲鱼课堂开冲!/005-是时候讲讲代码了课后题.py"
请输入第一个整数:3.5
Traceback (most recent call last):
File "D:/cheer up/pycharm/练习/小甲鱼课堂开冲!/005-是时候讲讲代码了课后题.py", line 120, in <module>
    num1 = int(input("请输入第一个整数:"))
ValueError: invalid literal for int() with base 10: '3.5'

Process finished with exit code 1


第二个
"D:\cheer up\python\python.exe" "D:/cheer up/pycharm/练习/小甲鱼课堂开冲!/005-是时候讲讲代码了课后题.py"
请输入第一个整数:3.6
请输入第二个整数:4.6
Traceback (most recent call last):
File "D:/cheer up/pycharm/练习/小甲鱼课堂开冲!/005-是时候讲讲代码了课后题.py", line 136, in <module>
    if int(num1) < int(num2):
ValueError: invalid literal for int() with base 10: '3.6'

Process finished with exit code 1

第三个
"D:\cheer up\python\python.exe" "D:/cheer up/pycharm/练习/小甲鱼课堂开冲!/005-是时候讲讲代码了课后题.py"
请输入第一个整数:8.9
请输入第二个整数:3.8
Traceback (most recent call last):
File "D:/cheer up/pycharm/练习/小甲鱼课堂开冲!/005-是时候讲讲代码了课后题.py", line 123, in <module>
    num1 = int(num1)
ValueError: invalid literal for int() with base 10: '8.9'

Process finished with exit code 1

isdkz 发表于 2022-3-30 23:50:02

uiiaunou 发表于 2022-3-30 23:47
第一个
"D:\cheer up\python\python.exe" "D:/cheer up/pycharm/练习/小甲鱼课堂开冲!/005-是时候讲讲 ...

int() 不能将一个整数字符串转成整数,你应该输入一个整数,

或者把 int() 改成 int(eval())

uiiaunou 发表于 2022-3-31 22:20:53

isdkz 发表于 2022-3-30 23:50
int() 不能将一个整数字符串转成整数,你应该输入一个整数,

或者把 int() 改成 int(eval())

现在的确是能正常运行了,谢谢,但是还是不能理解为啥int不能将一个证书字符串转成整数,因为小甲鱼的答案的确是没有加eval()函数的嘛,真就是pychram的问题么

isdkz 发表于 2022-3-31 22:28:44

uiiaunou 发表于 2022-3-31 22:20
现在的确是能正常运行了,谢谢,但是还是不能理解为啥int不能将一个证书字符串转成整数,因为小甲鱼的答 ...

不是 pychram 的问题,有可能是因为他输入的就是一个整数,或者他不是通过输入的,

int() 也可以将一个小数转成整数,但是不能是字符串类型的小数,字符串类型的只能是整数

uiiaunou 发表于 2022-4-1 00:08:26

isdkz 发表于 2022-3-31 22:28
不是 pychram 的问题,有可能是因为他输入的就是一个整数,或者他不是通过输入的,

int() 也可以将一 ...

1. 上一题的代码其实存在一个致命的 BUG,请找到它并修正
答案:我们这个程序的目的是比较两个数字的大小,但 input() 函数获取的是字符串类型,所以我们应该先将其转换为整数,再进行对比。

你看吧 ,他就是这样说的,字符串直接变整数了。关键是IDLE还不会报错,pycharm报错了{:10_266:}

uiiaunou 发表于 2022-4-1 00:09:06

isdkz 发表于 2022-3-31 22:28
不是 pychram 的问题,有可能是因为他输入的就是一个整数,或者他不是通过输入的,

int() 也可以将一 ...

我应该是输入小数点 他输入的整数这样
页: [1]
查看完整版本: 我觉得应该是pycharm上的问题大佬们来帮我看看吧