Python中文
首页
教程
问答
标签
搜索
登录
注册
动态递增/递减变量的值?
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>{{cd1>有时,其他变量的值是由一个负的变量来计算的。我的代码是:</p> <pre><code>def delta_value(direction): diff=value2-value1 if diff > 0: ascend="+"; descend="-" elif diff < 0: ascend="-"; descend="+" if direction == "increase": return ascend elif direction == "decrease": return descend def calc_max_order(): global max_order if num < max_num: while num < max_num: exec("max_order%s=1" % delta_value("decrease")) elif num > max_num: while num > max_num: exec("max_order%s=1" % delta_value("increase")) </code></pre> <p>此代码似乎不起作用(也就是说,它不会更改max_order的值),但没有返回错误。它停留在while循环中。当<code>calc_max_order</code>不是函数,而是在主块中时,代码确实可以工作。但是,我想让它成为一个清理代码的函数。在</p> <p>我知道大多数人都说使用exec是不明智的,但我才刚刚开始学习python,我不知道还有什么办法。我想我可以使用一堆if语句,但我想有一种更干净的方法来实现它。在</p> <p>所以,说清楚,我的问题是:</p> <p>有没有一种方法可以使<code>exec("max_order%s=1" % delta_order_value("decrease"))</code>在函数内工作,或者有没有其他方法根据<code>delta_value</code>的输出动态地增加/减少{<cd1>}?在</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>使用<code>exec()</code>是一个巨大的危险信号。您可以使用一个固定的<code>+=</code>和一个可变的delta来实现这一点。在</p> <pre><code>delta = (+1 if ascending else -1) max_order += delta </code></pre> <p>如果你需要颠倒<code>delta</code>的意思,就否定它:</p> ^{pr2}$
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何根据与其他行比较的列表筛选序列?
2 回答
如何根据与前一行的差异对行进行分组?
4 回答
如何根据与另一个图像匹配的图像特征来变换图像?
3 回答
如何根据与另一个模型的关系在模板视图中查询另一个Django模型
1 回答
如何根据与已知参考轨迹的距离过滤出位置数据?
9 回答
如何根据与现有值比较的下限和上限创建新的pandas系列
1 回答
如何根据与输入字符串共享的特征从数据集中获取值
7 回答
如何根据与长生不老药的多对多关系排序?
8 回答
如何根据世代显示,x'攻击'和y'防御'
7 回答
如何根据两个CSV文件中的公共信息用Python合并两个CSV文件?
5 回答
如何根据两个CSV文件的相似性比较它们的行?
7 回答
如何根据两个不同列的值在一列中填充NaN
7 回答
如何根据两个不同列的日期获取交叉联接表的唯一记录?
2 回答
如何根据两个不同列表中的相应值创建if语句?
9 回答
如何根据两个不同栏目的分数组成三个不同的班级,有人能指导我吗,请参考我的代码
2 回答
如何根据两个不同的字符串检查变量?9行examp
8 回答
如何根据两个值对词典进行分组?
3 回答
如何根据两个列表获得自定义元组的计数
6 回答
如何根据两个变量的条件打印特定输出
6 回答
如何根据两个变量重新采样以均匀地派生类?
8 回答