python - 为什么这个 for 循环在每个循环上附加相同的值?
问题描述
我正在创建一个程序,通过微分,可以返回给定方程的任何静止点的坐标和性质。
到目前为止,我的整个程序是:
equation = input("y=")
expression_list = []
for i in equation:
expression_list.append(i)
def derive(expression):
global derivation
derivation = []
for i in expression:
if i == "x" and int(expression[expression.index(i)+2]) != 0:
derivation.append(int(expression[expression.index(i)-1]) * int(expression[expression.index(i)+2]))
derivation.append("x")
derivation.append("^")
derivation.append(int(expression[expression.index(i)+2]) - 1)
derive(expression_list)
expression_list_1st_derivative = derivation
print(expression_list_1st_derivative)
我遇到问题的程序领域是:
def derive(expression):
global derivation
derivation = []
for i in expression:
if i == "x" and int(expression[expression.index(i)+2]) != 0:
derivation.append(int(expression[expression.index(i)-1]) * int(expression[expression.index(i)+2]))
derivation.append("x")
derivation.append("^")
derivation.append(int(expression[expression.index(i)+2]) - 1)
derive(expression_list)
expression_list_1st_derivative = derivation
print(expression_list_1st_derivative)
y=4x^5+3x^4
举个例子,我创建了这个 for 循环,希望能给出它["20","x","^","4","12","x","^","3"]
,如果你学过微积分,你会知道它是 x/dx。我还没有包括运营商;这是我在清除这个障碍后会做的事情。目前这些代码行改为给出["20","x","^","4","20","x","^","4"]
. 我必须进行哪些更改才能获得正确的结果?
解决方案
您expression.index(i)
正在查找 的第一个位置i
,而不是您当前正在处理的位置。
相反,您可以使用enumerate
,然后您就可以使用当前的索引号。
如果你的函数返回一个值(这里是一个列表)而不是设置一个全局变量,那也会更好:
def derive(expression):
derivation = []
for index, i in enumerate(expression): # <== note use of "enumerate"
if i == "x" and int(expression[index+2]) != 0:
derivation.append(int(expression[index-1]) * int(expression[index+2]))
derivation.append("x")
derivation.append("^")
derivation.append(int(expression[index+2]) - 1)
return derivation # <== note return value
expression_list = ["20","x","^","4","12","x","^","3"]
expression_list_1st_derivative = derive(expression_list)
print(expression_list_1st_derivative)
推荐阅读
- apache-kafka-connect - 如何配置 Confluent Kafka Connect 本地 S3 接收器
- angular - PWA 不适用于构建版本,仅适用于本地主机上的 prod 构建版本
- python - 有什么方法可以在 Django 中的模型内部进行过滤?
- sql - 从 MS Access DB 表中提取带有条件和分组的数据
- python - Python Flask 应该只执行一次
- list - NoSuchMethodError:将值添加到列表 Flutter 时,在 null 上调用了方法“add”
- python - 如何让我的 Discord 机器人在每周日 0:00 运行一个功能?
- typescript - 在打字稿中声明函数类型的不同方法?
- python - 通过AJAX请求在python中抓取动态数据表
- javascript - 无法更新 NodeJS 版本