Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

input() + TypeError: 'dict' object is not callable [duplicate]

Recently i starded learning python, this would be my first "useful" script (simple word learning script). But for some reason it drives me crazy. If i put a simple 'input()' inside start_lesson, i got a "TypeError: 'dict' object is not callable", but it's unrelevant in this case(alteast for me).

Thanks!

# -*- coding: utf-8 -*-

import sys
import random

szavak = {"meddle" : "beleavatkozik", "perilous" : "veszedelmes", "wail" : "jajgat", "sill" : "párkány", "hale" : "egészséges", "dawdle" : "cselleng", "stubbornly" : "makacsul", "waylay" : "kirabol", "fervor" : "buzgalom", "sorrow" : "bánat", "behest" : "parancs", "precipice" : "szakadék", "belatedly" : "késve", "hindsighth" : "Hindsighth", "dove" : "galamb", "guffaw" : "röhögés", "jouster" : "lovag", "repented" : "megbánta", "solemnly" : "ünnepélyesen", "concubine" : "ágyastárs", "fodder" : "takarmány", "treacherous" : "áruló", "anticipated" : "várható", "chivalrous" : "lovagias", "amidst" : "között", "antler" : "agancs", "notion" : "fogalom", "sow" : "koca", "surefooted" : "magabiztos", "adamant" : "hajthatatlan", "rout" : "csődület", "shrieks" : "sikoly", "parapet" : "korlát", "crutch" : "mankó", "clutched" : "szorította", "squint" : "kancsalság", "deceit" : "csalás", "whether" : "vajon", "crenel" : "lőrés", "grotto" : "barlang", "diligence" : "szorgalom", "glimmers" : "szemek", "turmoil" : "felfordulás", "comprehend" : "megért", "awry" : "fonák", "entourage" : "diplomáciai kíséret", "appease" : "kielégít", "seething" : "forrongó", "brusque" : "rideg", "sulky" : "duzzogó", "sullen" : "mogorva", "jest" : "tréfa", "brisk" : "élénk", "mutton" : "ürühús", "beckoned" : "intett", "suffice" : "Elég", "pease" : "borsó", "darted" : "ugrott", "trot" : "ügetés", "sprouted" : "csírázott", "quarrel" : "veszekedés", "staggeredtls" : "Staggeredtls", "minnow" : "fürge cselle", "weaned" : "elválasztott", "betwixt" : "közöttem", "niggardly" : "zsugori", "hippocras" : "fűszeres", "forager" : "ellenséges területen rekviráló", "stir" : "kavar", "inexorably" : "kérlelhetetlenül", "lintel" : "szemöldökfa", "groggy" : "tántorgó", "lull" : "szünet", "hovel" : "kunyhó", "quaff" : "nagy kortyokban iszik", "amiss" : "rosszul", "heir" : "örökös", "sepulcher" : "síremlék", "lid" : "fedél", "wry" : "félrecsavart", "somber" : "komor", "comely" : "bájos", "apparition" : "jelenés", "abashed" : "elképedt", "gall" : "epe", "teetering" : "hintázni", "haggle" : "alkudozik", "fastidious" : "finnyás", "investiture" : "felavatás", "swarthy" : "napbarnított", "sot" : "iszákos", "prowess" : "bátorság", "endeavorh" : "Endeavorh", "conciliation" : "békéltetés", "haddock" : "foltos tőkehal", "expansively" : "terjedelmesen", "geld" : "herél", "unison" : "összhang", "bray" : "szamárbőgés", "dandelions" : "pitypang", "flamboyant" : "rikító", "aplenty" : "bőségesen", "slanting" : "dőlt", "excruciating" : "kínzó", "whilst" : "míg", "stench" : "bűz", "blunder" : "baklövés", "causeway" : "móló", "forage" : "takarmány", "pox" : "himlő", "dwell" : "lakik", "infant" : "csecsemő", "enormous" : "óriási", "enormity" : "szörnyűség", "paramour" : "szerető", "amiable" : "kedves", "lithe" : "karcsú", "noose" : "hurok", "prunes" : "aszalt szilva", "ludicrous" : "nevetséges", "grudgingly" : "kelletlenül", "despair" : "kétségbeesés", "recklessness" : "vakmerőség", "neither" : "sem", "feeble" : "gyenge", "nonetheless" : "mindazonáltal", "amends" : "módosítja", "amend" : "módosítandó", "scarcely" : "alig", "insists" : "ragaszkodik", "espoused" : "osztott", "gaze" : "bámul", "adjourn" : "elnapol", "suspicious" : "gyanús", "dread" : "rettegés", "sought" : "keresett", "scarce" : "szűkös", "enmity" : "ellenségeskedés", "eyrie" : "Sasfészek", "fealty" : "hűség", "envious" : "irigy", "peevish" : "szeszélyes", "prow" : "hajóorr", "trout" : "pisztráng", "clutching" : "kapaszkodva", "craven" : "gyáva", "manacle" : "bilincs", "teat" : "csöcs", "lickspittle" : "tányérnyaló", "wench" : "szajha", "scowled" : "összeráncolta a homlokát", "snoring" : "horkolás", "reluctantly" : "vonakodva", "expulsion" : "kiutasítás", "gossip" : "pletyka", "dais" : "emelvény", "merlon" : "párkázat", "plume" : "toll", "shallow" : "sekély", "ought" : "kellene", "oar" : "evezőlapát", "gaped" : "tátongott", "aisle" : "folyosó", "anxious" : "aggódó", "pouty" : "mogorva", "heedless" : "figyelmetlen", "gloom" : "homály", "niter" : "salétrom", "seldom" : "ritkán", "revulsion" : "ellenérzés", "defy" : "dacol", "furtive" : "titkos", "gaoler" : "börtönőr", "bitter" : "keserű", "grief" : "bánat", "sour" : "savanyú", "flustered" : "ideges", "obey" : "engedelmeskedik", "discipline" : "fegyelem", "weep" : "sír", "flay" : "megnyúz", "fugitive" : "szökevény", "treacherous" : "áruló", "indistinguishable" : "megkülönböztethetetlen", "moat" : "várárok", "entrail" : "belekből", "timbre" : "csengés", "draught" : "Csapolt", "palanquin" : "gyaloghintó", "splendid" : "pompás"}



def start_lesson(input):
    for a in input:
        kerdes = get_questioned_word(a,input[a])

        kerdes_key = kerdes[0]
        kerdes_value = kerdes[1]


        #if this line is here, i got "TypeError: 'dict' object is not callable", and i can't understand why. Unfortunetly i need this for the rest of the app. 
        input("jlkfjdslkfj: ")

        # and so on....



def get_questioned_word(input1, input2):
    szo = []
    mod = random.randrange(0,2)
    if mod == 0:
        szo = [input1, input2]
    else:
        szo = [input2, input1]
    return szo




def get_lesson(input):
    index = 0
    lecke_szavak = {}

    for a in szavak:
        if (index >= input[0] and index <= input[1]):
            lecke_szavak[a] = szavak[a]

        index += 1
    return lecke_szavak


def which_lesson():
    lecke = int(input("Melyik lecke?: "))
    lesson = {}
    lesson1 = [1,38]
    lesson2 = [39,76]
    lesson3 = [77,114]
    lesson4 = [115,152]
    lesson5 = [153,190]


    if (lecke == 1):
        lesson = get_lesson(lesson1)

    elif (lecke == 2):
        lesson = get_lesson(lesson2)

    elif (lecke == 3):
        lesson = get_lesson(lesson3)

    elif (lecke == 4):
        lesson = get_lesson(lesson4)

    elif (lecke == 5):
        lesson = get_lesson(lesson5)


    start_lesson(lesson)


which_lesson()
like image 774
S0und Avatar asked Dec 16 '25 23:12

S0und


1 Answers

The problem is in your function definition:

def start_lesson(input):
                 ^^^^^

Here, you're over-riding the default input, so when you try to use it, you're trying to call the dict you're passing...

Change the name to not shadow the builtin

like image 130
Jon Clements Avatar answered Dec 19 '25 14:12

Jon Clements