嘿伙计们我仍然是Python和编码的新手,我想知道为什么我的代码不起作用。我一直得到2个错误。我变得非常沮丧,我已经在这里待了几个小时。谢谢
这些是我一直收到的错误。 Typeerror:**或pow()不支持的操作数类型:'str'和'float' Typeerror:不能将序列乘以'str'
类型的非int我只列出了userChoice1和2,因为那就是我的问题所在。
1) Area (Square)
2) Area (Rectangle)
3) Area (Circle)
4) Perimeter (Square)
5) Perimeter (Rectangle)
6) Perimeter (Circle)
7) Exit Program
""")
usersChoice = input (" 1,2,3,4,5,6 OR 7? ")
while usersChoice!="7":
if usersChoice == "1":
print ("You have chosen area (Square)")
length = input("input Length?")
print ("Area is:") , length**2.0
elif usersChoice == "2":
print ("You have chosen area (Rectangle)")
length = input("input length?")
width = input("input width?")
print ("Area is:") , length*width
答案 0 :(得分:0)
您的代码存在一些问题。首先,所有输入都是字符串;你必须将ii转换为数字。所以,你会想写一些像:
length = float(input("Input length?"))
其次,您要打印的所有内容都必须在print函数的参数中。您需要更改打印报表。
修复后,您可能需要添加一些错误处理,以防suer输入无效的数字。
答案 1 :(得分:-1)
你可能正在使用python 3.x.您的问题是输入返回一个字符串而不是字符串表示的字符串。您还需要在您的参数周围加上括号来打印。它不再是关于yield或return的关键字,它现在只是一个常规的内置函数。你需要的是(注意float
):
if usersChoice == "1":
print ("You have chosen area (Square)")
length = float(input("input Length?"))
print ("Area is:", length**2.0)