将伪代码步骤翻译成 Python 算法

Translating Pseudocode steps into Python algorithm

我完全不熟悉编程,我应该将伪代码转换为 Python 算法以用于 class 作业。我已经多次测试我的算法(如果你可以这样称呼它的话)并且不断出现错误消息。任何可能有帮助的建议或资源将不胜感激!

伪代码顺序:

  1. 声明实际半径
  2. 申报实际面积
  3. 显示“输入半径值:”
  4. 输入半径
  5. 设置面积=3.14*半径*半径
  6. 展示区

尝试的代码:

radius = 1.0 
Area = 1.0 
print(" Enter value for radius : ") 
radius = input(" Enter value for radius : ") 
Area = 3.14 * radius * radius 
print(Area) 

和错误:

TypeError: can't multiply sequence by non-int of type 'float'

好吧,我将对此进行一些解释:

radius = 1.0 #this is not mandatory, you can create the variable and assign the value in the same moment
area = 1.0 
radius = float(input(" Enter value for radius : ")) #here is so important to convert the input into a float, that's the other error you had
area = 3.14 * radius * radius t isn't working
print(area)

input() returns 一个字符串,因此是您的 TypeError。您尝试将字符串乘以浮点数。

此处更新代码:

radius = 1.0 
print("Enter value for radius : ") 
radius = input()
print(type(radius))
Area = 3.14 * (float(radius) * float(radius)) 
print(Area)

输出:

Enter value for radius : 
5
<class 'str'>
78.5

最好的方法是:

import math
radius = input("Enter a radius: ")
area = math.pi * radius ** 2
print("The area is: " + str(area) + "cm squared.")

这里发生了一些事情:

  1. 在第一行我们导入了数学模块,它包含一堆值(比如 π)和很多方法(比如 tan)。有关模块的更多信息,请查看 here.
  2. 在第二行,我们要求半径。请注意,与低级编程语言不同,我们不必初始化它。 Python 计算出它本身就是一个浮点数(小数)。编辑:如果你使用 python 2,你 do 必须投射,正如 Damien 指出的那样,使用 radius = float(input("Enter an area: ))
  3. 在第三行,我们将面积设置为 πr^2。我们调用非常精确的 math.pi 值,然后我们将其乘以 r ^ 2 (在 python 中,如果我们想要 a 的 b 次方,我们写 a ** b
  4. 在第 4 行,我们将区域打印为字符串。请注意,我们必须使用 str() 函数将浮动区域转换为字符串。这基本上是 Java 将任何非字符串打印为字符串(字符集合)的简单方法。

希望对您有所帮助!