单独的函数用于周边和方形区域,矩形和圆形

时间:2015-07-25 02:27:53

标签: python

嘿伙计们我仍然是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

2 个答案:

答案 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)