【问题标题】:Apply Iteration on the each element in the vector with a time delay以时间延迟对向量中的每个元素应用迭代
【发布时间】:2019-09-14 10:30:11
【问题描述】:

我有一个包含 8 个元素的向量,我希望每个元素不从初始状态“30.9”迭代,并且每 1 秒后它从 0 更改为 10,然后逐步直到 100,然后达到 100迭代移动到第二个元素 “30.9”使其为 0,然后每秒增加 10 值达到最高到 100,然后回到初始状态。

hb =  [30.9, 30.9, 33.9, 41.6, 46.6, 54.4, 59.2, 65.6]
counter = 1
multiplier = 1
for i in range(1,9):
  Application.Variables['P():///Constant'+str(i)+'/Value'].ValueConverted = hb[counter]
  multiplier = multiplier + 1
  counter = counter + 1

【问题讨论】:

    标签: python loops for-loop time iteration


    【解决方案1】:

    我尝试使用时间模块和嵌套的 for 循环。 time module 允许您使用 time.sleep(),它将等待指定的秒数。我还从 1,11 更改了范围,因为这将允许 10 次迭代,因为范围从起始元素迭代到结束元素 1。

    import time
    hb =  [30.9, 30.9, 33.9, 41.6, 46.6, 54.4, 59.2, 65.6]
    counter = 1
    multiplier = 1
    for element in hb:
        print("Currently processing element: ", element)
        #Reset counter and multiplier after each loop
        counter = 1
        multiplier =1
        for i in range(1,11):
            #Do processing here
            multiplier = multiplier + 1
            counter = counter + 1
            time.sleep(1)
    

    这是正在运行的程序的屏幕截图:

    【讨论】:

    • 但是要求元素从 0 到 100 分 10 步开始,然后回到 ints 初始位置。然后应用第二个元素相同的迭代。
    • 一个循环后计数器和乘数会是什么 - 它们在第一个循环后保留值吗?你是什​​么意思它从 0 到 100 分 10 步开始 - 你是否希望计数器/乘数在每一步中增加 10 以达到 100?如果您在一个循环后有示例输出,我可以更好地理解。
    • 您的解决方案效果很好,谢谢,我该如何提高您的评分?
    • 很高兴我能帮上忙!由于您是新手,因此您还不能投票,所以接受答案是唯一的事情——您已经这样做了。
    • 谢谢你能评价一下吗?
    猜你喜欢
    • 1970-01-01
    • 2017-01-05
    • 2018-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多