python - 方程中 x 值的迭代
问题描述
我已经设置了一项任务来迭代计算给定公式的 x 值:x 3 - 3x + 4 = 0** 使用反复试验。代码将首先插入 -1.5 作为其第一次猜测,然后从那里向上或向下工作以尝试得到答案 0。每次将数字插入等式时,代码应输出“答案 ## 太大/太小"
我已经启动了代码,但我有点卡住了,因为它只执行了两次然后停止。我使用了一个while循环,但我认为我没有正确使用它,或者它可能是解决这个问题的错误方法。任何建议/代码片段将不胜感激。
import cmath
end = ''
num = 0
guess = -1.5
calculation = (guess**3 - guess * 3 + 4)
print(calculation)
while calculation < 0:
print("Guess is too small")
else:
print("Guess is too large")
while calculation != 0 and calculation < 0:
guess = guess + 0.1
calculation = (guess**3 - guess * 3 + 4)
else:
guess = guess-0.1
calculation = ((guess**3)-3*guess+4)
print(calculation)
解决方案
您混淆了while
和的概念if
。你需要两者......好吧,对于我认为你正在尝试做的事情,请尝试以下大纲。
while calculation != 0:
if calculation < 0:
# Guess is too small; print message and adjust guess
else:
# Guess is too large; print message and adjust guess
我认为您可以为“if”的每个分支填写逻辑。特别注意,只有当您得到准确的答案时,这才会终止。如果你想在一点容忍度下工作,你必须调整退出条件calculation != 0
以获得一点“回旋余地”。
推荐阅读
- javascript - 有没有办法根据用户输入的时间来调用我的函数
- r - 如何使用 image() 函数在 R 中绘制数据
- python - 如何在字典中分别选择第一、第二、第三和第四键
- azure - 结果文件无效。] 'C:\Agents\Build\Agent1\_work\45\s\TestResults24_59.trx' 结果格式匹配 'VSTest' 测试结果格式
- python-3.x - 有没有办法为每个循环使用不同的列表元素?
- dart - 如何获取系统导航栏的高度?
- xaml - 如何在 GridView DataTemplate 中绑定视差视图?
- bash - 将命令输出捕获到局部变量并检查错误
- java - 固定和动态调整工作线程的数量
- javascript - 如何使用 javascript 验证是否选择了 1 个单选按钮