Python脚本问题,可能非常简单,但我对这段代码几乎没有经验

2024-09-30 14:27:35 发布

您现在位置:Python中文网/ 问答频道 /正文

x = 1000
while x <= data['a2goodthousands'] * 1000:
    data['MyA2Good'] = x + data['a2goodhundreds']
    x = x + 1000

if 1 > data['a2goodthousands']:
    data['MyA2Good'] = data['a2goodhundreds']
        

上面是我写的代码。它是有效的,但我想确切地理解它为什么有效。最初,我写了它,它成功了,我继续前进。然后我开始思考为什么它会不断更新?有关更多说明,数据来自只能存储签名16位的旧PLC。因此,最大数量为32676。由于计数器将很快超过这个值,每次它达到1000,我们在“千”计数器中加1,并重置“百”。这就把我想要查看的实际数字用两个不同的词表示。我在Ignition中编写了这段代码,将两个数字合并为一个点

也就是说,“千”标记当然是从0开始的,因此底部的if语句一直存在,直到第一个1000被计数,它只查看百分之一百的值

我理解它的方式是,一旦我的“千”标记计数为一,在那一刻,我的while语句条件由相等运算符(x=1000和我的标记*1000=1000)满足,我添加1000+我的“百”计数器,并将其存储在新的数据标记“MyA2Good”中,然后将x乘以1000计数为2000。话虽如此,while语句在我的计数器上达到2000之前不应该再次求值,对吗?但是,当监控存储在我的标记“MyA2Good”中的值时,随着百位计数器一次递增1,标记会不断更新,就好像在不断计算while语句一样,即使要计算的条件不再为真

代码正在做我希望它做的事情,我只是想确切地理解为什么


Tags: 数据代码标记dataif计数器数字语句
1条回答
网友
1楼 · 发布于 2024-09-30 14:27:35

x变量小于或等于data['a2goodthousands'] * 1000:时,while循环正在运行。每次运行data['MyA2Good']变量的值都会更改为x + ['a2goodhundreds'],在该赋值之后,x是x + 1000。当x大于或等于data['a2goodthousands'] * 1000时,while循环结束并执行if语句。如果1大于data['a2goodthousands']data['MyA2Good']变量等于data['a2goodhundreds']

相关问题 更多 >