我收到这个错误 int() 参数必须是一个字符串、一个类似字节的对象或一个实数,而不是“set”

I am getting this error int() argument must be a string, a bytes-like object or a real number, not 'set'

提问人:Centing 提问时间:9/24/2023 更新时间:9/25/2023 访问量:58

问:

为什么我收到这个错误我正在创建一个三角形

int() argument must be a string, a bytes-like object or a real number, not 'set'

代码片段:

a, b, c = input().split()
print(f'A : {a}, B : {b}, C : {c}')
sisi_terpanjang = {a}
sisi_pertama = {b}
sisi_kedua = {c}
if int(sisi_terpanjang)**2 == int(sisi_pertama)**2 + int(sisi_kedua)**2:
  print("segitiga siku-siku")
if int(sisi_terpanjang)**2 < int(sisi_pertama)**2 + int(sisi_kedua)**2:
  print("segitiga lancip")
if int(sisi_terpanjang)**2 > int(sisi_pertama)**2 + int(sisi_kedua)**2:
  print("segitiga tumpul")

和单元格中的错误:

if int(sisi_terpanjang)**2 == int(sisi_pertama)**2 + int(sisi_kedua)**2:
python if-statement 语法错误

评论

0赞 John Gordon 9/25/2023
sisi_pertama = {b}是的,这是一套。你为什么要打电话给一个场景?int()

答:

2赞 Soner from The Ottoman Empire 9/24/2023 #1

{}定义一个列表。只需删除它们并使用例如

sisi_terpanjang = a
sisi_pertama = b
sisi_kedua = c

评论

0赞 Tim Roberts 9/25/2023
更好的是,请避免一遍又一遍地进行转换。sisi_terpanjang = int(a)
0赞 Soner from The Ottoman Empire 9/25/2023
@TimRoberts,是的,但我不知道他是如何编写代码的。
1赞 User12345 9/24/2023 #2

您遇到的错误是因为您尝试使用 将 sets/list 转换为整数,这是无效的。你可以像这样简单地设置为 int。以下是修改后的代码:{}int()sisi_xxx

a, b, c = input().split()
print(f'A : {a}, B : {b}, C : {c}')
sisi_terpanjang = int(a)
sisi_pertama = int(b)
sisi_kedua = int(c)
if sisi_terpanjang**2 == sisi_pertama**2 + sisi_kedua**2:
    print("segitiga siku-siku")
if sisi_terpanjang**2 < sisi_pertama**2 + sisi_kedua**2:
    print("segitiga lancip")
if sisi_terpanjang**2 > sisi_pertama**2 + sisi_kedua**2:
    print("segitiga tumpul")

你可以检查我的kaggle

评论

0赞 Centing 9/24/2023
啊,终于成功了,谢谢你的回答