2013-04-26 3 views
-4

Хорошо. Ну, им новое для питона (и кодирование)Использовать функцию в другой функции, определенной функцией?

Я пытаюсь сделать программу, оказывающей рандомизированные ответы на мой вход:

siR = {1:" ",2:"Sir...",4:"Mister..."} 
gdn = {0:"Have a nice sleep",1:"Good night",2:"G'night",3:"Sleep tight",4:"Sweet dreams"} 

def Choose(*x): 
    return choice(*x) 

def sir(): # The program will randomly print one of the siR dictionary's value 
    global siR 
    Choose(siR) 

def gdN(): # The good night function 
    global gdn 
    Choose(gdn)# The program will randomly print one of gdn's value and the function sir() 
    sir() 

def iSayGoodbye(): # If the current time is night time use gdN() 
    if now.hour>=19 and now.hour<=6: 
      gdN() 

b=input() 
if b = "bye": # If i type in "bye" the program us iSayGoodbye(). 
    iSayGoodbye() 

Так что, если я типа в «до свидания» программа ответит: Хорошо ночью сэр или Сладкие сны мистер ... или Спи крепко сэр и т.д ...

это просто не работает: TypeError: «ДИКТ» объект не вызываемая

Как я могу заставить его работать?

Пс: Надеюсь, вы понимаете, мне потребовались годы, чтобы переписать мой вопрос.

+0

Извините, но мой вопрос был закрыт, я думаю ... Не использовать для этого веб-сайта. – user2325445

+0

Как вы думаете, он должен печатать что-либо, если в коде нет ни одной инструкции 'print'? Причина, по которой вы получаете свою ошибку, - это то, что где-то у вас есть 'gdn()' или 'siR()' –

+0

Где я должен это поставить? В любом случае ошибка остается ... – user2325445

ответ

-1

Вам не нужен диктофон, потому что вы его не используете, как один.

Во-первых, узнать, что такое «вызываемая» в Python: What is a "callable" in Python?

Тогда посмотрите на питона документы (http://docs.python.org/3/) и, возможно, забрать некоторые учебники с примерами на нем. У вас много мелких ошибок из-за того, что они новые (например, «a = b» не сравнивается, он присваивает).

Есть также тонна онлайн-классы для этого:

https://www.coursera.org/course/interactivepython

https://developers.google.com/edu/python/

Тогда узнаете, что делает функция «выбрать», он не печатает.

попробовать что-то вроде

title = ("", "Sir", "Mister") 
salutation = ("Have a nice sleep", "Good night", "G'night", "Sleep tight", "Sweet dreams") 

def goodnight(): 
    print(choose(title), choose(salutation)) 

def goodbye(): 
    is_night = (now.hour >= 19) or (now.hour <= 6) 
    if is_night: 
     goodnight() 

if b == "bye": 
    goodbye()