Потрібна допомога в пошуку помилки в коді в Рython.
Видає else: invalid syntax
ТАВ після else не допомагає
Як виправити код?
Код:
from tkinter import *
def calculate():
start_num = int(start_entry.get())
end_num = scale.get()
if end_num < start_num:
result_entry.delete(0, END)
result_entry.insert(0, "Помилка: кінцеве число має бути більше початкового")
else:
count = 0
for i in range(start_num, end_num + 1):
if i % 3 == 0:
count += 1
result_entry.delete(0, END)
result_entry.insert(0, f"Кількість чисел: {count}")
window = Tk()
window.title("Кількість чисел, кратних 3")
# Текстове поле
start_label = Label(text="Початкове число:")
start_label.pack()
start_entry = Entry(width=10)
start_entry.pack()
# Шкала
scale = Scale(orient=HORIZONTAL, from_=1, to=100, length=200)
scale.pack()
# Кнопка
calculate_button = Button(text="Обчислити", command=calculate)
calculate_button.pack()
# Поле для виведення результату
result_label = Label(text="Результат:")
result_label.pack()
result_entry = Entry(width=10)
result_entry.pack()
window.mainloop()
Ответы на вопрос
Помилка else: invalid syntax у вашому коді виникає через неправильні відступи (indentation).
У Python відступи мають дуже важливе значення. Вони визначають, які команди належать до функції, умови if, else або циклу for.
У вашому коді після оголошення функції def calculate(): усі її команди повинні мати відступ (зазвичай 4 пробіли). Так само потрібно правильно розставити відступи всередині умов і циклів.
Виправлений код
Спробуйте замінити свій код на цей:
Що саме було виправлено?
Відступи після
def calculate():— усі команди функції отримали відступ у 4 пробіли.Відступи після
ifтаelse— команди, які належать до цих блоків, розташовані на відповідному рівні.Відступи в циклі
for— перевіркаif i % 3 == 0знаходиться всередині циклу.Виведення результату — команди
result_entry.delete()таresult_entry.insert()розташовані після циклу, але всерединіelse.Ширина поля результату — збільшена до 40 символів, щоб повідомлення про помилку повністю відображалося.
Чому виникла помилка саме на else?
У Python конструкція else повинна відповідати попередньому if і мати такий самий відступ.
Правильно:
Неправильно:
Зверніть увагу: else не повинен мати додаткового відступу порівняно з if.
Важливо: використовуйте однакові відступи по всьому коду — найкраще 4 пробіли замість табуляції. Також перевірте, чи не змішані Tab і пробіли.
Після цих виправлень програма повинна запускатися без помилки else: invalid syntax і правильно рахувати кількість чисел, кратних 3, у заданому діапазоні.
Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili

