Слабая попытка использования очень низкого уровня Python для простого скрипта - PullRequest
0 голосов
/ 10 июля 2020

Кажется, я не могу понять, почему этот фрагмент кода не работает, я новичок в Python и программировании в целом. Ошибка, которую он возвращает, связана с неправильным синтаксисом, любая помощь будет принята с благодарностью.

Вот мой код:

heightDescription = ["short", "average", "tall", "very tall"]

height = 0

if int(height) <= 188:
    print(heightDescription[-1])

if int(height) in range(176, 187)
    print(heightDescription[2])

if int(height) in range(161, 175)
    print(heightDescription[1])

if int(height) in range(1, 174)
    print(heightDescription[0])

Ответы [ 4 ]

3 голосов
/ 10 июля 2020

Вы забыли двоеточия после операторов if:

heightDescription = ["short", "average", "tall", "very tall"]

height = 0

if int(height) <= 188: 
    print(heightDescription[-1])

if int(height) in range(176, 187):  # <-- Added colon
    print(heightDescription[2])

if int(height) in range(161, 175):  # <-- Added colon
    print(heightDescription[1])

if int(height) in range(1, 174):  # <-- Added colon
    print(heightDescription[0])
2 голосов
/ 10 июля 2020

В дополнение к ответу @Unisigned Arduino я исправил вашу программу. Ваш диапазон перекрывается, поэтому иногда вы получаете два описания.

Итак, я исправил диапазон, и вот полный код:

heightDescription = ["short", "average", "tall", "very tall"]

height = 1000

if int(height) <= 188:
    print(heightDescription[0])

if int(height) in range(188, 198):
    print(heightDescription[1])

if int(height) in range(198, 208):
    print(heightDescription[2])

if int(height) in range(208, 228):
    print(heightDescription[3])
else:
    print(heightDescription[3])

Надеюсь, это поможет!

2 голосов
/ 10 июля 2020

убедитесь, что все ваши if условия имеют двоеточие (:) в конце

if abcdef:
    #

Вот несколько примеров , которые очень близки к тому, что вы ' повторная попытка.

0 голосов
/ 10 июля 2020

Таким образом, синтаксическая ошибка, которую вы получаете, связана с отсутствием двоеточия после логического оператора в условном выражении if.

Кроме того, ваш logi c требует доработки, потому что в конечном итоге вы получите несколько распечаток для некоторые значения.

Вот более логичная формулировка вашего кода:

heightDescription = ["short", "average", "tall", "very tall"]

height = 0

if int(height) >= 187:
    print(heightDescription[-1])

elif int(height) in range(175, 187):
    print(heightDescription[2])

elif int(height) in range(161, 175):
    print(heightDescription[1])

elif int(height) in range(1, 161):
    print(heightDescription[0])
else: 
    print('no height')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...