• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Problem z pętlą i definicją

Object Storage Arubacloud
0 głosów
287 wizyt
pytanie zadane 15 września 2017 w Python przez fipooo Bywalec (2,880 p.)

Mam kod(poniżej) i mam problem z definicją a. A mianowicie muszę zdefiniować a tak aby a się zmieniało tak jak jest jest w kodzie (w 1 ifie a ustawia się na 0, w 1 else też na 0 w 2 ifie na 1 i w 2 else też na 1). Jak to zrobić? Jak w pythonie zdefiniować inta tak abym mógł go odczytać w funkcji?

Bo jak dam przed funkcją po prostu a = 0 to dalej jest unresolved reference "a" a nie mogę tego wrzucić do funkcji bo za każdym razem na początku będzie mi ustawiać a na 0.

def costa(x,y,z):
    if s<0.72:
        if e>30:
		
            a=0
			
        else:
		
            a=0
    else:
        if a == 1:
		
            a = 1
			
        if a == 0:
		    cos jeszcze
            a=1
while True:
costam

 

1 odpowiedź

0 głosów
odpowiedź 15 września 2017 przez Giovacho Użytkownik (960 p.)
Niech ta funkcja zwraca wartość a. Czyli return a
komentarz 16 września 2017 przez fipooo Bywalec (2,880 p.)
Ale to i tak będzie wywalać to samo. Jeżeli muszę zdefiniować a aby zrobić 3 ifa to przy 2 wykonaniu pętli while a bedzie znowu równe 0. W javie mogę stworzyć "globalnego" inta który będzie pusty i przypiszę mu wartość dopiero później da się to zrobić w pythonie?
komentarz 16 września 2017 przez Giovacho Użytkownik (960 p.)
Czekaj, czekaj chyba czegoś nie rozumiem. Opisz dokładniej co chcesz osiągnąć i z czym masz problem.
komentarz 16 września 2017 przez fipooo Bywalec (2,880 p.)
Mam kod taki jak wyżej ale muszę zdefiniować zmienną a poza pętlą while. I pytanie jest takie jak utworzyć globalną zmienną a? Wiem jak zrobić pustą zmienna ale musi być globalna inaczej 3 if nie działa.
komentarz 16 września 2017 przez Giovacho Użytkownik (960 p.)
Nie możesz po prostu zdefiniować zmienną a poza funkcją? Wtedy będzie to globalna zmienna, której będziesz mógł użyć w funkcji
komentarz 16 września 2017 przez fipooo Bywalec (2,880 p.)
Zrobiłem tak i wyskakuje błąd przy 3 ifie. "unresolved reference 'a'".
komentarz 16 września 2017 przez Giovacho Użytkownik (960 p.)
Wyślij mi cały kod
komentarz 16 września 2017 przez fipooo Bywalec (2,880 p.)
Już rozwiązane. Do funkcji

def costa(x,y,z):

dodałem a=None

czyli wszystko wygląda tak  def costa(x,y,z, a=None): i działa :)
komentarz 16 września 2017 przez fipooo Bywalec (2,880 p.)

Albo i nie działa.

Kod jest taki

def costa(x,y,z):
    if s<0.72:
        if e>30:
         
            a=0
             
        else:
         
            a=0
    else:
        if a == 1:
         
            a = 1
             
        if a == 0:
            cos jeszcze
            a=1
while True:
costam

 

komentarz 16 września 2017 przez Giovacho Użytkownik (960 p.)
Wyślij mi cały kod, a nie tylko ten kawałek
komentarz 16 września 2017 przez fipooo Bywalec (2,880 p.)

Jednak dodanie w górnej części definicji a czyli def costa(x,y,z, a=0): jest zdefiniowaniem globalnym. Jednak przy kolejnych wykonaniach funkcji while ciągle wykonuje się ostatnia część czyli ostatni else a powinno przeskoczyć do a==1.

def abcd(x,y,z, a=0):
if s<0.72:
    if e>30:
        a=0
        return a

    else:
        a=0
        return a
else:
    if a == 1:
        a = 1
        return a
    else:
        a=1
        return a
while True:
abcd

 

Podobne pytania

0 głosów
1 odpowiedź 284 wizyt
0 głosów
2 odpowiedzi 285 wizyt
–1 głos
1 odpowiedź 1,139 wizyt
pytanie zadane 20 maja 2017 w Python przez Eryk Chojnacki Obywatel (1,420 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...