python - 如何检查 while 循环中的 if 语句是否已满足?
问题描述
我正在尝试制作一个程序,当给定一个序列的项时,打印一个可以得到这些项的多项式方程。我向它添加了另一个功能,它反映了第一部分,因为它在输入等式后为您提供了序列的项。
到目前为止,一切进展顺利,但我在尝试实现另一个功能时遇到了一个问题。如果用户已经得到了一个序列的方程,并且他们可能想检查该序列的更多项,我希望他们能够复制该方程,如果他们愿意,而无需手动进行,如果这是有道理的。
我的尝试如下:
def func(var):
if str(var) == "solve":
terms = input("terms: ").split()
...
coefs = []
# code that defines the list coefs
...
coefs = [a,b,c...]
print(", ".join(coefs))
copyeq = 1
elif str(var) == "check":
try:
if copyeq == 1:
if input("use coefficients as above?: ") == "yes":
checklist = coefs
else:
return
elif copyeq == 0:
checklist = input("input coefficients: ").split()
...
terms = []
# code that defines the list terms
...
terms = [p, q, r...]
print(", ".join(term))
copyeq = 0
while 1:
var = input("solve or check: ")
func(var)
当我尝试对此进行测试时,它会立即跳转到elif copyeq == 0:
语句,这意味着我在if var == "solve":
语句中分配给它的值 0。有没有人有任何解决方法或解决方案?
编辑:我打算让用户能够为它的方程求解一个序列,或者检查一个方程的序列。如果他们选择先解决一个序列,我希望他们能够检查他们刚刚得到的方程式作为答案。我认为指针可能会解决我的问题,但快速搜索告诉我 Python 没有指针。
解决方案
我认为您应该检查程序的逻辑,它将直接进入 elif copyeq==0,因为您将此变量设置为该值,因此,每次用户选择检查时,程序都会进入 elif。也许你可以更好地解释一下程序应该如何表现?
推荐阅读
- c - 为什么这个小 shellcode 在 C 程序中工作,但不是单独的?
- javascript - event.stopPropagation() 不适用于表单
- c# - 为 sharedDrive 中的用户插入权限
- ruby-on-rails - Ruby on Rails 应用程序在一段时间后返回 504 错误
- python - pd.merge :尝试合并具有相同列名的数据框
- javascript - JavaScript - 如何从 li 元素中移动 href 并覆盖 h2 标签中的 href
- c# - 如何返回列表
在 c++ dll 中到 C# 程序 MarshallDirectiveException - java - 如何为“加入”真实类创建伪接口或类
- javascript - 异步函数内的异步函数返回未定义的值
- react-native - 滚动视图中的反应原生页脚