Wpis z mikrobloga

Kilka dni temu zacząłem się uczyć programować (dosłownie 3 dni temu) w Pythonie.

Postanowiłem napisać program który pozwala "graczowi" wybrać z listy jedną z figur geometrycznych a potem poprosić o jego wymiary aby obliczyć jej pole. Następnie gra powinna zapytać czy chcesz obliczyć kolejną figurę. Po wybraniu Y powinno wszystko zacząć się od nowa a po wybraniu N zakończyć działanie programu.

Na początku zdefiniowałem kilka funkcji w których dzieją się obliczenia i pojawiają się pytanie o wymiary figur. Następnie zdefiniowałem funkcje w której dzieje się "Gra".

Tutaj pojawia się mój problem. Nie potrafię napisać tego tak, aby po wybraniu z y/n litery n Gra() się zakończyła. Przypuszczam, że muszę zrobić to jakoś w pętlach, ale niestety nie wychodzi mi to. Podpowie mi ktoś jak to dobrze spiąć aby gra działała tak jak zakładałem na początku?

Proszę o wyrozumiałość. Zdaje sobie sprawę że jest to prawdopodobnie bardzo prosta sprawa, ale prawdopodobnie nie znam jeszcze odpowiednich narzędzi do rozwiązania mojego problemu.

btw. Jeśli można tutaj jakoś wrzucić kod taki do skopiowania aby można było na nim pracować to dajcie proszę znać jak.

#programowanie #python
JorgNovartis - Kilka dni temu zacząłem się uczyć programować (dosłownie 3 dni temu) w...

źródło: comment_1649528907bc9bKiPsB8wSuu1DlarSLk.jpg

Pobierz
  • 18
@JorgNovartis: tam gdzie masz "if x == 'y' or 'Y':" w else dodajesz return. Tylko zrobiles blad w warunku if, "or 'Y'" zawsze będzie spełnione bo musi tam być "if x == 'y' or x == 'Y'" żeby to działało tak jak chcesz
@xulek:
if x == 'y' or x == 'Y':
Gra()
else:
print("Koniec")
return
Takie coś masz na myśli? Niestety nadal jest do samo. Pojawia się jedynie napis
Koniec
None / tego nie było wcześniej
I tutaj zaczyna się od początku tj.
1. Trojkat
2. kwadrat
etc.
@JorgNovartis: tak zgadza się, a gra się zaczyna od nowa bo tutaj za funkcją, którą wykonujesz, odpalasz grę od nowa

elif figura == "4":
trapez()
Gra()

Wystarczy wywalić tam "Gra()" w każdym elif
@JorgNovartis: while True: więc pętla leci bez końca, aż nie padnie break albo exit(). Potem po prostu co przejście pytasz usera o input, wywołujesz odpowiednią funkcję i pytasz czy chce grać dalej. ¯\_(ツ)_/¯
@croppz: Hmm. Z jednej strony rozumiem, ale nie do końca.
po pierwsze if _name == 'main_': to do czego służy?
a dwa dlaczego po exit() się nie zakończyło tylko potem jeszcze działa input i kolejny if i dopiero break kończy działanie programu?
@JorgNovartis: tak na start to jest w necie fajny kurs od MIT, introduction to computer science and programming in python. Polecam. Potem pewnie jakieś codewarsy albo inne zadanka, słyszałem że ostatnio wyszło też drugie wydanie fluent python. Czytałem kiedyś pierwsze, dobra książka.

A potem to już zależy co konkretnie chcesz robić, coś sobie znajdziesz.