【问题标题】:writing an improved version of the Chaos Help编写 Chaos 帮助的改进版本
【发布时间】:2011-03-29 23:45:21
【问题描述】:

这里是文中提出的问题。

编写第 1 章中 Chaos 程序的改进版本,允许用户输入两个初始值和迭代次数,然后打印一个格式良好的表格,显示这些值如何随时间变化。例如,如果初始值为 0.25 和 .26,迭代 10 次,则表格如下所示:

下面是一个以索引 0.25 0.26 作为标题的表,然后是两列中的 10 次迭代。

这是我最初的 Chaos 程序。

# File: chaos.py

def main ():
    print ("This program illustrates a chaotic function")
    x=eval (input("enter a number between 0 and 1: "))
    for i in range (10):
        x = 3.9 * x * (1-x)
        print (x)

main()

我的问题是如何改变它来满足上述问题..

如果回答,请记住这是我的第一堂编程课。

【问题讨论】:

  • 不要做eval(input())。请改用float(input())
  • 好的,运行程序时确实没有改变结果,也不允许我使用两个初始值。

标签: python programming-languages python-3.x


【解决方案1】:

你真的只需要复制你已经拥有的功能。不仅要求用户提供 x 值,还要求用户提供 y 值。

x= float(input("enter a number between 0 and 1: "))
y= float(input("enter another number between 0 and 1: "))

然后在您的循环中,您需要对 x 值执行与 y 值相同的操作。打印时,请记住您可以一次打印两个值(x 和 y),用逗号分隔它们。

另外,正如 PiotrLegnica 所说,您应该使用 float(input(...)) 而不是 eval(input(...))。由于您知道用户应该输入一个浮点数(介于 0 和 1 之间),因此您不必调用 eval。调用 eval 可能很危险,因为它会执行给它的任何指令。现在这可能无关紧要,但最好不要养成使用它的习惯。

【讨论】:

  • 这非常有帮助,谢谢,但是你知道我怎样才能将它们分开一点,以便在我运行程序时更容易阅读吗?
  • @kris Singer:您可以使用print(x, " | ", y) 或类似的简单方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-08-19
  • 1970-01-01
  • 2016-06-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多