Top.Mail.Ru
Ответы

Ошибка в python: 'builtin_function_or_method' object is not iterable

новичок в python, я хочу написать приложение, которое будет выводить одно из случайных определений из python. Например (While is ...) и т.д. Но я получаю ошибку: Объект 'builtin_function_or_method' не является итерируемым. Я понятия не имею, как это исправить, пожалуйста, помогите!

Вот мой код:

1234567891011121314151617181920212223242526272829303132333435
 import tkinter as tk
import random
root = tk.Tk()
root.title("Питонские определения") 
root.geometry('300x500+750+200')
def get_list(self):
    return
definitions = {
    "While": "Цикл 'while' используется для выполнения блока кода, пока условие истинно.",
    "For": "Цикл 'for' используется для итерации по элементам последовательности (например, списку или строке).",
    "If": "Условие 'if' позволяет выполнить определенный блок кода, если условие истинно.",
    "Function": "Функция - это блок кода, который можно вызывать с определенными аргументами.",
    "List": "Список - это упорядоченная коллекция элементов, которая может содержать разные типы данных."
}
def show_random_definition():
    for definitions in Ent:
        print(definitions)
Ent = tk.Entry(root)
lbl = tk.Label(root, text='Значение')
Ent[random.choice(list(definitions.keys))]
user_word = input('что такое ' + definitions + '? ')
if user_word == [definitions]:
    print(definitions)
else:
    print(f'Я вас не понял')
def add():
    global count
    count = random
    lbl['Сгенерировать определение'] = str(count)
btn = tk.Button(root, text='Показать определение', padx=60, pady=20, command=add)
btn.pack()
lbl.pack()
Ent.pack()
root.mainloop()
 



Только авторизированные пользователи могут оставлять свои ответы
Дата
Популярность
Аватар пользователя
Оракул
12345678910111213141516171819202122232425262728293031
 import tkinter as tk 
import random 
 
root = tk.Tk() 
root.title("Питонские определения")  
root.geometry('300x500+750+200') 
 
definitions = { 
    "While": "Цикл 'while' используется для выполнения блока кода, пока условие истинно.", 
    "For": "Цикл 'for' используется для итерации по элементам последовательности (например, списку или строке).", 
    "If": "Условие 'if' позволяет выполнить определенный блок кода, если условие истинно.", 
    "Function": "Функция - это блок кода, который можно вызывать с определенными аргументами.", 
    "List": "Список - это упорядоченная коллекция элементов, которая может содержать разные типы данных." 
} 
 
Ent = tk.Entry(root) 
lbl = tk.Label(root, text='Значение') 
 
def show_random_definition(): 
    key = random.choice(list(definitions.keys())) 
    value = definitions[key] 
    Ent.delete(0, tk.END) 
    Ent.insert(0, value) 
 
btn = tk.Button(root, text='Показать определение', padx=60, pady=20, command=show_random_definition) 
btn.pack() 
lbl.pack() 
Ent.pack() 
 
root.mainloop() 
 
Аватар пользователя
Гуру

У тебя ошибок тьма. Конкретно та ошибка, про которую ты спрашиваешь, то в 18 строчке ошибка, там

1
 definitions.keys() так надо, а не definitions.keys 

Почаще запускай программу, не пиши всю сразу, а проверяй, иначе искать и исправлять всё заколеблешься