如何编写圆形和方形区域的程序

时间:2012-09-15 02:41:00

标签: python

编写一个程序,要求用户输入两个值:整数选择和实数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)

4 个答案:

答案 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语句)后面的行。缩进称为“块”语句。如果满足给定条件(例如,用户提供12作为值),则仅评估(执行)那些缩进的行。

变量

choice_1choice_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的乘法。