Python 'высота' не определена

Python говорит, что имя 'height' не определено, и я понятия не имею, почему это так, поскольку, согласно моей логике, я возвращаю переменную height, чтобы я мог получить к ней доступ в цикле for?

Может ли кто-нибудь указать мне правильное направление? Благодарю. Редактировать: get_int() - это функция внутри библиотеки cs50.

import cs50

def main():

    print("Enter a number between 0 and 26: ", end="")

    i = get_height("Enter height: ", end="")

def get_height():
    while True:
        height = get_int()
        if height <= 0 or height >= 23:
            break
    return height


for i in range(height):
    print(" " * (height - i), end="")
    print("#" * (i + 2), end="")
    print("")


if __name__ == "__main__":
    main()

2 ответа

Решение
def get_int():
    tx = input("Enter height: ")
    if tx.isdigit():
        return int(tx)
    return None

def get_height():
    while True:
        height = get_int()
        if height and height > 0 and height < 26:
            return height


if __name__ == "__main__":
    print("Enter a number between 0 and 26: ")

    height = get_height()
    for i in range(height):
        print(" " * (height - i), end='')
        print("#" * (i + 2), end='')
        print("")
  1. get_int не существует
  2. высота была вне области
  3. высота в то время как петля не была видна из области видимости
  4. get_height получить без параметров
  5. for in range был вне основной сферы

Во-первых, вы должны использовать hight = raw_input("What is your hight") чтобы получить свой рост. Вы можете использовать int(height) использовать его как целое число. Во-вторых, вы должны иметь нисходящую обработку.

Другие вопросы по тегам