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

question-closed goto python - przeskakiwanie w programie

Object Storage Arubacloud
0 głosów
1,187 wizyt
pytanie zadane 11 listopada 2020 w Python przez Lite Obywatel (1,030 p.)
zamknięte 12 listopada 2020 przez Lite
Witam.

Jestem początkującym uczniem jeżeli chodzi o pythona. Czy da radę wszelkimi znanymi wam sposobami zrobić przeskoki w kodzie jak na przykład w php goto x. Niestety nie udało mi się znaleźć rozwiązania samemu, które w prosty sposób bym zrozumiał. Mam nadzieję że będziecie wstanie mi pomóc.
komentarz zamknięcia: Rozwiązanie problemu
komentarz 11 listopada 2020 przez adrian17 Ekspert (345,220 p.)

jak na przykład w php goto x

Nawet oficjalna dokumentacja PHP żartobliwie sugeruje, żeby go nie używać:

https://www.php.net/manual/en/control-structures.goto.php

4 odpowiedzi

+3 głosów
odpowiedź 11 listopada 2020 przez Oscar Nałogowiec (29,320 p.)
Oducz się używania goto. Do obsługi błędów itp są wyjątki, a reszta zastosowań goto jest niepotrzebna.
+2 głosów
odpowiedź 11 listopada 2020 przez Tomek Sochacki Ekspert (227,510 p.)
Powiedz w jakim przypadku potrzebowalbys tego użyć, szczerze to nie widzę żadnego sensownego zastosowania, ktorego nie daloby się ograć inaczej, lepiej i bezpieczniej.
+1 głos
odpowiedź 11 listopada 2020 przez mokrowski Mędrzec (156,100 p.)
W języku Python, nie ma słowa kluczowego goto (tak jak switch). W języku tak wysokiego poziomu, goto jest zbędne i nie powinno być używane. Wszelkie pętle, ponowne wywołania lub rozwidlenia kodu, rozwiązujesz instrukcjami decyzji lub pętlami while i for. Jedyna nowość to to że w Python każda z pętli posiada blok else. Wyskoczenie lub kontynuację pętli zapewnia break i continue.
0 głosów
odpowiedź 11 listopada 2020 przez Lite Obywatel (1,030 p.)
W Odpowiedzi do wszystkich którzy byli zainteresowani postem. goto mówiąc szczerze jest czasami wygodniejsze i prostsze w zastosowaniu. Nie ma czasami potrzeby rozbudowywać danego programu, a łatwiejsze będzie zastosowanie goto co i tak jest używane (z tego co czytałem) w pętlach, tylko po prostu tej instrukcji nie można dowolnie wykorzystywać. Dziękuję za wszelkie odpowiedzi.

Ucząc się Pythona od kilku dni tak naprawdę, postawiłem sobie za cel stworzenie programu symulującego wierzę hanoi. Najpewniej będzie okropnie wyglądał i ledwo co działał, ale żeby się nauczyć, myślę że to nie najgorszy pomysł.
komentarz 12 listopada 2020 przez Lite Obywatel (1,030 p.)

To lepiej nie trzymać tego w stringu, tylko w strukturze która odpowiada bliżej temu co chcesz przechować - liczbę i stringa? I dopiero na końcu zamienić to na string, jak faktycznie jest potrzeba go pokazać.

Możesz wytłumaczyć, czy wysłać jakiś link do przykładu?

komentarz 12 listopada 2020 przez adrian17 Ekspert (345,220 p.)

Hm, niezbyt wiem w jakim kontekście używasz "1a", ale dam jakiś podobny przykład... szachy? W szachach masz pozycje f4, a3, h7 etc. Ale nie ma sensu wszędzie w kodzie używać to jaki taki string, bo to tak naprawdę para koordynatów x, y. Więc można to przechowywac b3 jako ['b', 3] albo w ogóle jako koordynaty [2, 3] i tylko przy wyświetlaniu użytkownikowi to zamienić na tekst "b3".

Więc wtedy, w zależności od sposobu, przesunięcie wieży z a3 na b3 mogłaby wyglądać tak:

# 1
coord = [1, 3]
coord[0] += 1
# 2
coord = {'x': 1, 'y': 3}
coord['x'] += 1
# 3
class Coord:
	def __init__(self, x, y):
		self.x = x
		self.y = y

coord = Coord(x, y)
coord.x += 1
# 4, z jakąś fajniejszą klasą
coord = Coord('a3')
coord.x += 1
print(coord) # pisze 'b3'

 

komentarz 12 listopada 2020 przez Lite Obywatel (1,030 p.)
Przyznam szczerze, kod który wypisałeś, nie mówi mi kompletnie nic.

Założenie jest takie, program umożliwiający układanie wierzy hanoi np. https://romek.info/games/hanoi5p.html

Zgodnie wcześniej pisanym kodem, użytkownik sam będzie decydował ile jest klocków. Potrzebuję czegoś co umożliwi mi identyfikację każdego z tych klocków oraz słupków.

Wartość liczbowa będzie niezmienna, ale litera będzie a,b lub c. W przypadku gdy użytkownik wykaże chęć przesunięcia klocka np. 3b na słupek c, program musi:

1. Ustalić czy na słupku c nie znajduje się klocek który ma mniejszą wartość niż 3

2. Zmienić "oznaczenie" klocka 3 z 3b na 3c

3. Wyświetlić 3 wierze z klockami w formie "obrazu" ASCII
komentarz 12 listopada 2020 przez adrian17 Ekspert (345,220 p.)
To teraz ja niezbyt rozumiem, co "oznaczenia" klocków "3b", "3c" mają do wieży hanoi; brzmi jakbyś potrzebował listę wież (lub po prostu trzy wieże, jeśli ich liczba jest stała), a każda wieża to lista klocków (liczb z rozmiarami); przeniesienie klocka to po prostu przeniesienie ostatniego elementu listy do innej listy.
komentarz 12 listopada 2020 przez Lite Obywatel (1,030 p.)
Tak, chyba. Jeżeli coś takiego to najprostszy sposób, to warto spróbować. Mam nadzieję że wreszcie zrozumiałeś na czym mi zależy, bo wiem, że mój tok myślenia może nie obrazować w najprostszy sposób chęci rozwiązania problemu. Jutro stworzę nowy wątek dotyczący mojego zapytania, ten zamykam żeby nie robić w tym niepotrzebnego bałaganu.

Podobne pytania

0 głosów
1 odpowiedź 242 wizyt
pytanie zadane 1 czerwca 2023 w Python przez wojtek_programista Nowicjusz (170 p.)
0 głosów
0 odpowiedzi 295 wizyt
pytanie zadane 29 stycznia 2023 w Python przez Kubas23 Użytkownik (630 p.)
0 głosów
1 odpowiedź 499 wizyt
pytanie zadane 6 listopada 2022 w Python przez Matlane Użytkownik (560 p.)

92,634 zapytań

141,505 odpowiedzi

319,883 komentarzy

62,015 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!

...