-2

编写一个程序,要求用户输入两个值:一个整数选择和一个实数 x。如果选择为 1,则计算并显示半径为 x 的圆的面积。如果选项为 2,计算并显示边长为 x 的正方形的面积。如果选择既不是 1 也不是 2,将显示文本无效选择。

所以我猜这被分成两部分?到目前为止,我所能想到的只是拥有一个选择(输入)函数并定义 pi 和 area 等是什么。但我不断收到错误。我究竟做错了什么?

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

4 回答 4

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:,这没有多大意义。也就是说,您确实计算正确。

于 2012-09-15T02:56:44.647 回答
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_1choice_2变量不是必需的。从逻辑上讲,您想告诉源代码的读者用户的输入应该四舍五入为整数。额外的变量是多余的——您可以重用该choice变量。

输入

input函数用于将用户键入的任何值分配给表达式左侧的变量。例子:

choice = input ('Enter choice:')
radius = input( 'Enter x:' )
side = input( 'Enter x:' )

这些input语句出现在屏幕上。用户输入一个数字,该数字的值被放入相应的变量中。

输出

print语句用于在屏幕上显示一个值。在您的代码中,您将文本字符串 ( 'Enter x') 与print语句组合在一起。计算机无法“知道”这'Enter x'意味着用户必须输入一个值。就像电脑不知道那'Barney'是紫色恐龙的名字一样。

于 2012-09-15T02:46:26.257 回答
2

半径 = (int)

这似乎是主要问题。

于 2012-09-15T02:49:16.720 回答
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)or radius = (int)。当您应该从输入中获取值时,您正在为变量分配一种int类型。您会很快发现没有支持乘法的运算符type and type

于 2012-09-15T02:53:07.187 回答