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

问题描述 投票:0回答:1

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

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 syntax-error
1个回答
0
投票

您应该将大括号更改为括号

()
以将它们定义为元组,之后您可以使用索引访问各个元素(
sisi_terpanjang[0]
sisi_pertama[0]
sisi_kedua[0]
)并使用
 将它们转换为整数int()
功能!

看看这个:

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[0])**2 == int(sisi_pertama[0])**2 + int(sisi_kedua[0])**2:
  print("segitiga siku-siku")
if int(sisi_terpanjang[0])**2 < int(sisi_pertama[0])**2 + int(sisi_kedua[0])**2:
  print("segitiga lancip")
if int(sisi_terpanjang[0])**2 > int(sisi_pertama[0])**2 + int(sisi_kedua[0])**2:
  print("segitiga tumpul")
© www.soinside.com 2019 - 2024. All rights reserved.