Python while循环保持总运行

时间:2018-08-22 16:12:01

标签: python while-loop

我正在研究一个项目,该项目将累加分配给按钮的数字,一旦达到或超过该值,它将停止并显示另一条消息。现在,我遇到了一个障碍,那就是如何弄清总体上的运行情况。以下是我到目前为止所获得的任何指导。当我选择10时,我注意到一个问题,它也不会停止循环。

import time
from time import sleep
import Adafruit_CharLCD as LCD

lcd = LCD.Adafruit_CharLCDPlate()

while True:
    x= 1
    y= 10
    z= 5
    a= 0

    lcd.message("Today's Lunch\n only $10 ") #This displays beginning message
    lcd.set_color(0.0, 0.0, 1.0)

    while a<=10:

        if lcd.is_pressed(LCD.RIGHT):
            lcd.clear()
            lcd.set_color(1.0, 0.0, 0.0)
            lcd.message('  Total: $')
            lcd.message("%02d" % (a+y))
            sleep(1)

        elif lcd.is_pressed(LCD.LEFT):
            lcd.clear()
            lcd.set_color(1.0, 0.0, 0.0)
            lcd.message('  Total: $')
            lcd.message("%02d" % (a+x))
            sleep(1)
        elif lcd.is_pressed(LCD.DOWN):
            lcd.clear()
            lcd.set_color(1.0, 0.0, 0.0)
            lcd.message('  Total: $')
            lcd.message("%02d" % (a+z))
            sleep(1)
    else:
        lcd.clear()
        lcd.set_color(1.0, 1.0, 0.0)
        lcd.message('Enjoy \n Your Paper')
        sleep(4)

2 个答案:

答案 0 :(得分:3)

您的问题是您永远不会更新a。您可能希望这样做的语句:

lcd.message("%02d" % (a+y))

只计算a+y的值。它不会更改ay的值。实际上,除了以a开头的值之外,您再也不会给它分配其他任何值。

解决方案:在上面一行之后,只需添加以下内容:

a = a + y

或者,如果您想更加简洁,

a += y

并对与xz有关的块执行相同的操作。

答案 1 :(得分:0)

您需要在循环内更改{ "_index": "members", "_type": "doc", "_id": "1234567", "_score": 2, "_source": { "mailOpens": [ { "created": "04/26/2017", "mailingId": 1 }, { "created": "07/14/2017", "mailingId": 2 }, { "created": "07/14/2017", "mailingId": 3 }, { "created": "07/14/2017", "mailingId": 4 } ] } } ,例如在按键时将ayx添加到z

a