编写一个程序,要求用户输入两个值:整数选择和实数x。如果选项为1,则计算并显示半径为x的圆的面积。如果选项为2,则计算并显示边长为x的正方形。如果choice既不是1也不是2,则会显示文本Invalid choice。
所以我猜这是分为两部分?我到目前为止所能想到的是有一个选择(输入)功能并定义pi和区域等等。但我不断收到错误。我做错了什么?
choice = input ('Enter Choice:')
choice_1 = int (choice)
if (choice_1==1): radius = (int)
print('Enter x:',radius)
pi = 3.14159
area = ( radius ** 2 ) * pi
print ( 'The Area is=' , area )
choice_2= (choice)
if (choice_2==2): side= (int)
print('enter X:' side*side)
答案 0 :(得分:3)
虽然您的实际计算是正确的,但是您收到输入的方式存在一些问题。你开始很好:
choice = input ('Enter Choice:')
然后这样做:
choice_1 = int (choice)
那不是错误,但不需要新的变量名称。您也可以choice = int(choice)
。
然后继续:
if (choice_1==1): radius = (int)
if
语句没问题(尽管括号不是必需的),但它的主体有点奇怪。我不知道你想要在那里实现什么,但它几乎肯定不会做你想要的。您可能想要做的是删除if
语句的当前正文并缩进以下代码。
print('Enter x:',radius)
这将打印出Enter x:
后跟radius
,您刚刚设置为int
功能(可能不是您想要的。相反,您可能想要提示用户并接收他们的意见:
radius = input('Enter x: ')
然后将其转换为浮点数:
radius = float(radius)
返回您的代码。 pi = 3.14159
有效且正确,但无需在您自己的代码中指定pi
;只需从math
from math import pi
然后你有这两行:
area = ( radius ** 2 ) * pi
print ( 'The Area is=' , area )
你在那里没有问题;那些应该工作正常。您的代码仍在继续:
choice_2= (choice)
这没用。只需使用choice
;你不需要新的变量。
if (choice_2==2): side= (int)
这里的if
陈述也是正确的,但它的身体也是毫无意义的。同样,您可能希望提示用户输入内容然后将其转换为浮动。
最后,你得到了:
print('enter X:' side*side)
首先,你错过了一个逗号。其次,你在enter X:
之后输出区域,这没有多大意义。也就是说,你确实得到了正确的计算结果。
答案 1 :(得分:2)
代码存在许多问题。以下是我认为您想要完成的工作示例:
#!/usr/bin/python
pi = 3.14159265
choice = input('Enter Choice [1 or 2]:')
choice = int (choice)
if choice == 1:
radius = input('Enter x:')
area = ( radius ** 2 ) * pi
print 'The Area is=', area
if choice == 2:
side = input('Enter x:')
area = side ** 2
print 'The Area is=', area
您提供的代码存在许多问题:缩进,变量,输入和输出。还可以进行许多改进(例如删除重复的语句)。我上面给出的代码将完成你想要做的事情。因此,让我们通过错误来加深理解。
首先,Python程序应该正确缩进。这意味着应该使用条件逻辑(例如if
语句)后面的行。缩进称为“块”语句。如果满足给定条件(例如,用户提供1
或2
作为值),则仅评估(执行)那些缩进的行。
choice_1
和choice_2
变量不是必需的。从逻辑上讲,您希望告诉读者您的源代码,用户的输入应该舍入为整数。额外的变量是多余的 - 您可以重用choice
变量。
input
函数用于将用户键入的值分配给表达式左侧的变量。例子:
choice = input ('Enter choice:')
radius = input( 'Enter x:' )
side = input( 'Enter x:' )
这些input
语句出现在屏幕上。用户输入一个数字,该数字的值放在相应的变量中。
print
语句用于在屏幕上显示值。在您的代码中,您将文本字符串('Enter x'
)与print
语句组合在一起。计算机无法“知道”'Enter x'
表示用户必须键入值。就像计算机不知道'Barney'
是紫色恐龙的名字一样。
答案 2 :(得分:2)
radius =(int)
这似乎是主要问题。
答案 3 :(得分:0)
一些事情。
如果这是你的脚本缩进的方式,它就不会起作用了。缩进是python的核心,你需要先了解它,然后才能让任何实际工作。
如果输入是整数,则将使用input()
自动转换。你只需要输入一次,所以不要同时创建两个变量。
choice = input('Enter choice: ')
如果在这里应该使用if-elif-else
声明。使用控制结构对您有利:
if choice == 1:
radius = input('Enter radius: ')
print('Area of circle is ', (radius ** 2) * 3.14159)
elif choice == 2:
side = input('Enter side length: ')
print('Areas of square is ', side*side)
这简化了,你想要实现的目标。
除此之外,您不应该side= (int)
或radius = (int)
。当您从输入中获取值时,您正在为变量分配类型的int。您会很快发现没有运算符支持type and type
的乘法。