File “Test.py”, line 189 while True: ^ SyntaxError: invalid syntax что делать с ней?

import sys
sys.path.append("/home/pi/weather/lib")
import RPi_Iвведите сюда код2C_driver
import time
from time import strftime, sleep
from datetime import datetime

try:
    from smbus2 import SMBus
except ImportError:
    from smbus import SMBus
from bme280 import BME280

lcd = RPi_I2C_driver.lcd()

lcd.lcd_clear()

# Initialise the BME280
bus = SMBus(1)
bme280 = BME280(i2c_dev=bus)

# build big digits
def disp_number(lcd_char, position):

    if lcd_char=="0" :
     lcd.lcd_display_string_pos(unichr(3),1,0)
     lcd.lcd_display_string_pos(unichr(3),2,0)
     lcd.lcd_display_string_pos(unichr(0),1,1)
     lcd.lcd_display_string_pos(unichr(1),2,1)
     lcd.lcd_display_string_pos(unichr(2),1,2)
     lcd.lcd_display_string_pos(unichr(2),2,2)

    elif lcd_char=="1" :
     lcd.lcd_display_string_pos(unichr(4),1,1)
     lcd.lcd_display_string_pos(unichr(2),1,2)
     lcd.lcd_display_string_pos(unichr(2),2,2)

    elif lcd_char=="2" :
     lcd.lcd_display_string_pos(unichr(4),1,0)
     lcd.lcd_display_string_pos(unichr(3),2,0)
     lcd.lcd_display_string_pos(unichr(6),1,1)
     lcd.lcd_display_string_pos(unichr(1),2,1)
     lcd.lcd_display_string_pos(unichr(2),1,2)

    elif lcd_char=="3" :
      lcd.lcd_display_string_pos(unichr(4),1,0)
      lcd.lcd_display_string_pos(unichr(5),2,0)
      lcd.lcd_display_string_pos(unichr(6),1,1)
      lcd.lcd_display_string_pos(unichr(1),2,1)
      lcd.lcd_display_string_pos(unichr(2),1,2)
      lcd.lcd_display_string_pos(unichr(2),2,2)

    elif lcd_char=="4" :
      lcd.lcd_display_string_pos(unichr(3),1,0)
      lcd.lcd_display_string_pos(unichr(1),1,1)
      lcd.lcd_display_string_pos(unichr(2),1,2)
      lcd.lcd_display_string_pos(unichr(2),2,2)

    elif lcd_char=="5" :
      lcd.lcd_display_string_pos(unichr(3),1,0)
      lcd.lcd_display_string_pos(unichr(5),2,0)
      lcd.lcd_display_string_pos(unichr(7),1,1)
      lcd.lcd_display_string_pos(unichr(1),2,1)
      lcd.lcd_display_string_pos(unichr(4),1,2)
      lcd.lcd_display_string_pos(unichr(2),2,2)

    elif lcd_char=="6" :
      lcd.lcd_display_string_pos(unichr(3),1,0)
      lcd.lcd_display_string_pos(unichr(3),2,0)
      lcd.lcd_display_string_pos(unichr(7),1,1)
      lcd.lcd_display_string_pos(unichr(1),2,1)
      lcd.lcd_display_string_pos(unichr(4),1,2)
      lcd.lcd_display_string_pos(unichr(2),2,2)

    elif lcd_char=="7" :
      lcd.lcd_display_string_pos(unichr(4),1,0)
      lcd.lcd_display_string_pos(unichr(0),1,1)
      lcd.lcd_display_string_pos(unichr(2),1,2)
      lcd.lcd_display_string_pos(unichr(2),2,2)


    elif lcd_char=="8" :
      lcd.lcd_display_string_pos(unichr(3),1,0)
      lcd.lcd_display_string_pos(unichr(3),2,0)
      lcd.lcd_display_string_pos(unichr(6),1,1)
      lcd.lcd_display_string_pos(unichr(1),2,1)
      lcd.lcd_display_string_pos(unichr(2),1,2)
      lcd.lcd_display_string_pos(unichr(2),2,2)

    elif lcd_char=="9" :
      lcd.lcd_display_string_pos(unichr(3),1,0)
      lcd.lcd_display_string_pos(unichr(6),1,1)
      lcd.lcd_display_string_pos(unichr(1),2,1)
      lcd.lcd_display_string_pos(unichr(2),1,2)
      lcd.lcd_display_string_pos(unichr(2),2,2)
    else:
      lcd.lcd_display_string_pos(unichr(254),0,0)
      lcd.lcd_display_string_pos(unichr(254),0,0)
      lcd.lcd_display_string_pos(unichr(254),0,0)
      lcd.lcd_display_string_pos(unichr(254),0,1)
      lcd.lcd_display_string_pos(unichr(254),0,1)
      lcd.lcd_display_string_pos(unichr(254),0,1)

    return lcd_char;

# scroll effect
def shift(direction): 
    if direction=="left" :
        for x in range(0, 16):
            lcd.shift_display(-1)
            sleep(0.05)
    else :
        for x in range(0, 16):
            lcd.shift_display(1)
            sleep(0.05)

def clock_date(digits, month, day_name):
    # previous text leaving to left
    shift("left")
    # preparing date buffer
    tens_day = disp_number(digits[4], 0)
    day = disp_number(digits[5], 4)
    lcd.cursor_pos = (0, 8)
    lcd.write_string('        ')
    lcd.cursor_pos = (1, 8)
    lcd.write_string('        ')
    lcd.cursor_pos = (0, 8)
    lcd.write_string(month[:8])
    lcd.cursor_pos = (1, 8)
    lcd.write_string(day_name[:8])
    # date entering from left
    shift("right")
    sleep(2)

def clock_hour(digits):
    # date leaving to left
    shift("left")
    # preparing hour buffer
    lcd.cursor_pos = (0, 0)
    lcd.write_string('                ')
    lcd.cursor_pos = (1, 0)
    lcd.write_string('                ')
    disp_number(digits[0], 0)
    disp_number(digits[1], 4)
    disp_number(digits[2], 9)
    disp_number(digits[3], 13)
    # hour entering from left
    shift("right")


def main():

    try:
        input = raw_input
    except NameError:
        pass

    try:
        unichr = unichr
    except NameError:
        unichr = chr

    old_time = 0
    counter = 0

# Custom chars
    fontdata1 = [
    # Char 0 - Up
    [31,31,0,0,0,0,0,0],
    # Char 1 - Down
    [0,0,0,0,0,0,31,31],
    # Char 2 - Left
    [28,28,28,28,28,28,28,28],
    # Char 3 - Right
    [7,7,7,7,7,7,7,7],
    # Char 4 - Up-Short
    [7,7,0,0,0,0,0,0],
    # Char 5 - Down Short
    [0,0,0,0,0,0,7,7],
    # Char 6 - Short Up Down
    [31,31,0,0,0,0,31,31],
    # Char 7 - Dots
    [0,0,0,0,0,0,6,6],


# Load logo chars (fontdata1)
    lcd.lcd_load_custom_chars(fontdata1)

while True:
        new_time = datetime.now().strftime('%H%M%d')
        month = datetime.now().strftime('%B')
        day_name = datetime.now().strftime('%A')

        # time changed, update LCD buffer
        if new_time!=old_time :
            digits = str(new_time)
            tens_hour = disp_number(digits[0], 0)
            hour = disp_number(digits[1], 4)
            tens_minutes = disp_number(digits[2], 9)
            minutes = disp_number(digits[3], 13)
            old_time = new_time

            cur_hour = int(tens_hour)*10 + int(hour)
            # enable backlight by night
            lcd.set_backlight(cur_hour>=19 or cur_hour<9)


#    temperature = bme280.get_temperature()
#    pressure = bme280.get_pressure()
#    pressure = round(pressure * 0.750061683, 2)
#    humidity = bme280.get_humidity()
#    lcd.lcd_display_string("%s" %time.strftime('%H:%M:%S %d/%m/%Y'), 1)
#    lcd.lcd_display_string('{:04.1f}C {:04.1f}%'.format(temperature,humidity), 2)
#    lcd.lcd_display_string('{:04.1f}Hg'.format(pressure,), 3)
#    time.sleep(1)'''

Ответы (2 шт):

Автор решения: Danis
fontdata1 = [
        # Char 0 - Up
        [31,31,0,0,0,0,0,0],
        # Char 1 - Down
        [0,0,0,0,0,0,31,31],
        # Char 2 - Left
        [28,28,28,28,28,28,28,28],
        # Char 3 - Right
        [7,7,7,7,7,7,7,7],
        # Char 4 - Up-Short
        [7,7,0,0,0,0,0,0],
        # Char 5 - Down Short
        [0,0,0,0,0,0,7,7],
        # Char 6 - Short Up Down
        [31,31,0,0,0,0,31,31],
        # Char 7 - Dots
        [0,0,0,0,0,0,6,6], 

Не хватает закрывающийся скобки должно быть так:

fontdata1 = [
        # Char 0 - Up
        [31,31,0,0,0,0,0,0],
        # Char 1 - Down
        [0,0,0,0,0,0,31,31],
        # Char 2 - Left
        [28,28,28,28,28,28,28,28],
        # Char 3 - Right
        [7,7,7,7,7,7,7,7],
        # Char 4 - Up-Short
        [7,7,0,0,0,0,0,0],
        # Char 5 - Down Short
        [0,0,0,0,0,0,7,7],
        # Char 6 - Short Up Down
        [31,31,0,0,0,0,31,31],
        # Char 7 - Dots
        [0,0,0,0,0,0,6,6]] 
→ Ссылка
Автор решения: Zhihar

код кривой, вот что

# Custom chars
    fontdata1 = [
    # Char 0 - Up
    [31,31,0,0,0,0,0,0],
    # Char 1 - Down
    [0,0,0,0,0,0,31,31],
    # Char 2 - Left
    [28,28,28,28,28,28,28,28],
    # Char 3 - Right
    [7,7,7,7,7,7,7,7],
    # Char 4 - Up-Short
    [7,7,0,0,0,0,0,0],
    # Char 5 - Down Short
    [0,0,0,0,0,0,7,7],
    # Char 6 - Short Up Down
    [31,31,0,0,0,0,31,31],
    # Char 7 - Dots
    [0,0,0,0,0,0,6,6],

кто список закрывать будет то?

вот интерпретатор и офигевает пытаясь туда while встроить

для начала добавьте ] в конце

→ Ссылка