将伪代码步骤转换为 Python 算法
Posted
技术标签:
【中文标题】将伪代码步骤转换为 Python 算法【英文标题】:Translating Pseudocode steps into Python algorithm 【发布时间】:2017-11-27 17:33:59 【问题描述】:我对编程完全陌生,我应该将伪代码转换为 Python 算法以进行类分配。我已经多次测试了我的算法(如果你甚至可以这样称呼它)并且不断出现错误消息。任何可能有帮助的建议或资源将不胜感激!
伪代码顺序:
-
声明真实半径
声明真实区域
显示“输入半径值:”
输入半径
设置面积 = 3.14 * 半径 * 半径
显示区域
尝试的代码:
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: 不能将序列乘以“float”类型的非整数
【问题讨论】:
Michelle,Attempt 看起来不错,你能把真实的代码和错误也加进去吗?会有很大帮助 当然。这是我在 Python 编辑器 5.2.0 IDE 中写的: Radius = 1.0 Area = 1.0 print(" Enter value for radius : ") Radius = input(" Enter value for radius : ") Area = 3.14 * radius * radius print (区域)当我运行它时,这是出现的错误消息: ParseError: bad token on line 3 有没有办法显示我的实际代码/格式? 这是你目前得到的吗? Input() 将打印给它的消息。无需再次运行打印。你可以向medium.freecodecamp.com/tagged/python?gi=7717415099ad等网站学习 【参考方案1】:input()
返回一个字符串,因此您的 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
【讨论】:
Yeeeees,对刚开始的人来说很好的解释,这对我来说是一个加分项:)【参考方案2】:最好的方法是:
import math
radius = input("Enter a radius: ")
area = math.pi * radius ** 2
print("The area is: " + str(area) + "cm squared.")
这里发生了一些事情:
-
在第一行,我们导入数学模块,其中包含一堆值(如 π)和许多方法(如 tan)。有关模块的更多信息,请查看here。
在第二行,我们询问半径。请注意,与较低级别的编程语言不同,我们不必初始化它。 Python 发现它本身就是一个浮点数(十进制)。编辑:如果您使用的是 python 2,您 确实 必须使用
radius = float(input("Enter an area: ))
进行投射,正如 Damien 指出的那样
在第三行,我们设置面积等于 πr^2。我们调用 math.pi 值,这个值非常精确,然后我们将它乘以 r ^ 2(在 python 中,如果我们想要 a 的 b 次方,我们写 a ** b
)
在第 4 行,我们将区域打印为字符串。请注意,我们必须使用 str()
函数将浮动区域转换为字符串。这基本上是 Java 将不是字符串的任何内容打印为字符串(字符集合)的简单方法。
希望有帮助!
【讨论】:
不错,有很多新信息可以吸收,我真的很喜欢。是加一宝贝! 另一条评论,你忘记添加类型,输入后不告诉代码不起作用进行输入,看看我的答案你会看到,或者检查你的代码在这里repl.it/languages/python3 感谢@DamianLattenero 的反馈!我已经调整了答案,使其与 Python 2 和 3 一致。我在 Python 3 中编码,所以在我自己的机器上运行时没有注意到错误:)【参考方案3】:好吧,我将对此添加一些解释:
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)
【讨论】:
是的。这就是我输入的内容,然后在第 3 行弹出错误消息。 啊,这完全有道理。所以我完全忘记了输入。谢谢! :) @MichelleMcGuire 欢迎您!如果有用,请不要忘记将答案视为已接受:) @DamianLattenero 会的!以上是关于将伪代码步骤转换为 Python 算法的主要内容,如果未能解决你的问题,请参考以下文章