• 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ą

VPS Starter Arubacloud
0 głosów
269 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ź 283 wizyt
0 głosów
2 odpowiedzi 267 wizyt
–1 głos
1 odpowiedź 1,111 wizyt
pytanie zadane 20 maja 2017 w Python przez Eryk Chojnacki Obywatel (1,420 p.)

92,454 zapytań

141,263 odpowiedzi

319,099 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...