input()+ TypeError:'dict'对象不可调用

时间:2012-11-12 12:17:11

标签: python dictionary python-3.x typeerror

最近我主演了学习python,这将是我的第一个“有用”脚本(简单的单词学习脚本)。但由于某种原因,它让我发疯。如果我在start_lesson中放入一个简单的'input()',我得到一个“TypeError:'dict'对象不可调用”,但在这种情况下它是无关紧要的(改为对我而言)。

谢谢!

# -*- 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()

2 个答案:

答案 0 :(得分:8)

问题在于你的函数定义:

def start_lesson(input):
                 ^^^^^

在这里,你超越了默认的input,所以当你尝试使用它时,你试图调用你正在传递的dict ......

将名称更改为不影响内置

答案 1 :(得分:2)

除了Jon Clements指出的阴影问题,您可能需要raw_input()而不是input() ...并且您希望将结果分配给某些内容。