Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Input między funkcjami?


Rekomendowane odpowiedzi

Opublikowano

Siema

Jest jakaś możliwość stworzenia inputa tak aby działał między funkcjami?

Generalnie potrzebuje żeby input , który mam w jednym defie mógł też działać w innym. Przykład:

def ch():
    if polecenie == "wlacz":
     print "wlaczono"
   else:
       print "nic z tego"
def skladnia():
    polecenie = raw_input()
    if polecenie == "cos":
        print ch()
    else:
        print "lipa"
w tym przypadku wyskoczy NameError: global name 'polecenie' is not defined :(

Ale czy da się to jakoś zrobić żeby działało?

Z góry dzięki za pomoc :)

Opublikowano

Dzieje się tak dlatego, że zmienna "polecenie" to zmienna lokalna, czyli musiałbyś to zrobić np. tak:

polecenie = ''

def ch():
    global polecenie
    if polecenie == "wlacz":
        print "wlaczono"
    else:
        print "nic z tego"

def skladnia():
    global polecenie
    polecenie = raw_input()
    if polecenie == "cos":
        print ch()
    else:
        print "lipa"

 

Albo przekazywać zmienną polecenie jako argument funkcji:

def ch(polecenie):
    if polecenie == "wlacz":
        print "wlaczono"
    else:
        print "nic z tego"

def skladnia():
    polecenie = raw_input()
    if polecenie == "cos":
        print ch(polecenie)
    else:
        print "lipa"

 

Przy czym w Twoim wypadku jeśli wpiszesz "cos" (polecenie = "cos") :

1. Wypisze "nic z tego"

2. Wypisze None - ponieważ twoja funkcja "ch" nic nie zwraca

 

Ja bym zrobił to tak:

def enable():
    print 'Cos tam zostalo wlaczone.'

def disable():
    print 'Wylaczone zostalo cos tam.'

def info():
    print 'Wypisuje informacje o czyms tam.'

    
def skladnia():
    command_dict = {
    'wlacz':enable,
    'wylacz':disable,
    'info':info
    }
    
    command = raw_input('Podaj komende:')
    if command.lower() in command_dict:
        command_dict[command.lower()]()
    else:
        print 'Nie ma takiej komendy.\nDostepne komendy to:'
        for i in command_dict:
            print ' - %s'%i

Wiadro Bluba Rura Blant

 

(̅__(̲̲̲̲̲̅̅̅̅̅̅(̅_̅_̲̅м̲̅a̲̅я̲̅i̲̅h̲̅u̲̅a̲̅n̲̅ a̲̅ ̅_̅_̅((()ڪ

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...