6. Kurs Python 3 - mini gra "zgadnij liczbę" (Praktyka)
Вставка
- Опубліковано 9 лют 2025
- Zapraszam do subskrybowania mojego kanału:
www.youtube.co...
Cały kurs Python - • 1. Kurs Python 3 - wst...
Polecane kursy Online:
1. PEŁNA ŚCIEŻKA PROGRAMISTY PYTHON: bit.ly/3PRL6c1
2. Fundamenty programowania w języku Python: bit.ly/3RfcVvX
3. Kurs Python - średniozaawansowany: bit.ly/3RxUWBl
4. Kurs Python - zaawansowany: bit.ly/3pOuw27
Zapraszam również do innych moich kursów:
C# - • Kurs C# 2.0 - Odświeżo...
C++ - • 1. Kurs C++ dla począt...
C - • 1. Kurs języka C - Wst...
Kotlin - • 1. Kurs Kotlin - Wstęp...
Java - • 0. Kurs Java dla począ...
HTML & CSS - • 1. Kurs HTML & CSS - W...
PHP - • 1. Kurs PHP - Wstęp: H...
JavaScript - • 1. Kurs JavaScript - W...
SQL - • 1. Kurs SQL - Łączenie...
Algorytmy - • Algorytmy - Sortowanie...
Arduino - • 1. Kurs Arduino - Diod...
Unity - • 1. Kurs Unity - Wstęp,...
Scratch - • 1. Kurs Scratch - Prog...
Blender - • 1. Kurs Blender - Wstę...
AutoCAD - • 1. Kurs AutoCAD 2020 -...
Dziękuje, świetny poradnik :) Szkoda, że ma tak mało wyświetleń :(
taki gościu zasługuje być rangi Zelenta XD
@@francus1768 Racja. On jest Zelentem Pythona lol xD
Super po pierwszym uruchomieniu zgadłem za 15 razem !!!!! Dzięki za koleiną lekcje👍👍
Jeśli ktoś tak jak ja nie ma w klasie "random" funkcji "randint" to została zmieniona na "randrange". Różnica jest taka, że jak napiszecie zakres od 1 do 10 to 10 nie jest do niego wliczany. Nie za ma co :D
Do której klasy chodzisz? Bo ja do 8, a programowanie python w podstawie programowej mam od 2 lat i póki co to nauczycielka od infy dopiero co nauczyła się w html a w python jeszcze nic nie umieXD
@@ZEUSII07 w szkole podstawowej to nie programowanie
@@ZEUSII07 Ja pythona pierwszy raz miałem dopiero w 1 technikum, a w 8 klasie to miałem tylko wstawienie hiperłącza i zdjęcia w HTML
Dzięki za odcinek, dodałem komentarze przy znalezieniu odpowiednich liczb, np gdy trafi się akurat 7 wyskakuje komentarz, że to szczęśliwa liczba.
Dziękuję
dzięki tobie byłem w stanie zrobić zadanie na informatykę
zrobiłem troche inaczej, ale wyszło tak samo:
from random import randint
x = randint(0, 100)
z = 1
while True:
y = int(input("wprowadź liczbe: "))
if x > y:
print("x jest większy od " + str(y))
z += 1
continue
elif x < y:
print("x jest mniejszy " + str(y))
z += 1
continue
elif x == y:
print("x jest równy: " + str(y) + " zgadłeś za " + str(z) + " razem")
break
Zapraszam do skorzystania z pełnej "ścieżki programisty Python":
strefakursow.pl/sciezki_kariery/python_developer.html?ref=87991
Jesli kupilem sobie na poczatek kurs podstawowy, to mam najpierw ukonczyc ten youtube , czy odrazu tamten ?
@@mateusznowacki7474 Myślę, że zakres będzie podobny, ale zawsze możesz trafić na coś innego. Każdy ma swoje podejście do programowania, więc zależy czy masz czas i chęci ;)
kurs średniozaawansowany jest ponoć na linuxie co przekłada się na gorszy odbiór kursu na windowsie
Naprawdę super kurs, zwyczajnie petarda.
Bardzo fajna powtórka poprzednich lekcji i dodanie czegoś nowego :)
jesteś super("Koks")
Po usłyszeniu tematu zadania spauzowałem i postanowiłem sam napisać kod. I okazuje się, że mój jest aż o 1 linijkę krótszy! :D A wygląda tak:
i = randint(1,10)
b = 1
a = int(input("Zgadnij liczbę z przediału 1 - 10: "))
while a != i:
if a < i:
print("Więcej!")
elif a > i:
print("Mniej!")
a = int(input("Podaj kolejną: "))
b += 1
print("Zgadłeś za ", b, "razem")
To pochwalę się swoją pętlą. Korzystałem z kilku poradników żeby tak wyglądała.
from random import randint
pyt = randint(1, 10)
odp = None
proba = 0
print("ZAGADKA LICZBOWA!!!")
while pyt != odp:
proba += 1
odp = int(input(f"Zgadnij liczbę od 1 do 10!
Podejście numer {proba}" + ":
"))
if pyt < odp:
print("Za dużo!")
elif pyt > odp:
print("Za mało!")
elif pyt == odp:
print(f"Brawo! To właściwa liczba! Zgadłeś za {proba} razem! :)")
coś co kilka miesięcy temu pani nas uczyła robić na scratch to ja się to już nauczyłem na python dzięki tobie ;)
Jedyne co zmieniłem w swojej grze to, że dodałem więcej wariantów odpowiedzi końcowej podczas poprawnej odpowiedzi. Dobry kurs!👍
Dzięki za pomoc identyczne zadanie miałem jako pd
super poradnik, sam zrobiłem tą grę (oczywiście to jak wylosować liczbę to ściągnałem), wyrobiłem się w 30 linijkach, myślę że to nienajgorszy wynik
Super odcinek bardzo był taki praktyczny potrzebny.
from random import randint
#Tutaj ustawiam początkową wartość pętli, która określa wolę urzytkownika do zabawy
W = 'T'
while W == 'T':
#tutaj program losuje liczbę
liczba = randint(1, 10)
#ta zmienna jest zmienną ilości razy jakie użytkownik zgadywał liczbę
k = 1
print('Zgadnij liczbę')
i = input()
#poniższa pętal sprawdza odpowiedź użytkownika i jeśli jest ona nietaka jak wylosowana...
#... liczba to podaje czy liczba w odpowiedzi jest zbyt mała, czy zbyt duża
#Pętala nie wykona się jeśli użytkownik zgadł liczbę za pierwszym razem
while float(i) != liczba:
if float(i) < liczba:
print('Liczba którą podałeś jest zbyt mała')
i = input()
elif float(i) > liczba:
print('Liczba którą podałeś jest zbyt duża')
i = input()
k += 1
print('Zgadłeś dobrą liczbę')
print('Zajęło ci to ' + str(k) + ' prób')
W = input('czy chcesz kontynuować? T/N: ')
Po tym odcinku napisałem 4 ?aplikacje/programy? Do ćwiczenia dodawania, odejmowania, mnożenia i dzielenia w zakresie do 100 (młoda chodzi do 3 klasy). Nie wiem czy to przez to że python jest taki prosty, przejrzysty czy też przez że Ty potrafisz elegancko to wszystko wytłumaczyć (nigdy wcześniej nie pisałem kodu) córka zadowolona póki co z zapałem używa dzieła ojca 😁
Dzięki wielkie!!
Szacuneczek za poradnik i dziękuję :D
mój program wygląda tak, jest dodana opcja dopisywania na początku od której liczby chcemy zaczynać a do której chcemy losować, i dodana też jest opcja by mówiło że dajemy owiele za dużą liczbę z poza naszego przedziału który na początku ustaliliśmy
from random import randint
a = int(input("podaj od jakiej liczby ma się zaczynać program: "))
b = int(input("podaj od jakiej liczby ma się kończyć program: "))
liczba = (randint(a, b))
odpowiedź = int(input("podaj swoją liczbę "))
x = 0
while True:
if odpowiedź == liczba:
print("gratuluje")
print("odpowiedziałeś na pytanie w ", x, " ruchów")
break
elif odpowiedź < liczba and odpowiedź = a:
print("twoja liczba jest mniejsza od wylosowanej
")
x += 1
odpowiedź = int(input("podaj swoją liczbę "))
elif odpowiedź > liczba and odpowiedź = a:
print("twoja liczba jest większa od wylosowanej
")
x += 1
odpowiedź = int(input("podaj swoją liczbę "))
elif b < odpowiedź:
print("nie dawaj o wiele większych liczb ćfoku")
x += 1
odpowiedź = int(input("podaj swoją liczbę "))
else:
print("nie dawaj o wiele mniejszych liczb ćfoku")
x += 1
odpowiedź = int(input("podaj swoją liczbę "))
Uwaga: Lekcja 6, wiersz 10: "odp=int(input....))", po uruchomieniu programu, aby poodać swoją liczbę trzeba wcześnij z klawiatury wcisnąć klawisz ENTER i dopiero wtedy pojawia się komenda z zapytaniem o liczbę (dodatkowa ingerencja operatora w czasie wykonywania programu).💥
Mi coś nie działa ten kod
from random import randint
los = randint(1,10)
odp = -1
i = 0
print("zgadnij liczbe z przedziału od 1 do 10")
while odp != los:
i += 1
odp = int(input("podaj liczbe"))
if odp == los:
print("udało ci sie,liczba prób: " + str(i) )
break
elif odp < los:
print("większa liczba")
continue
else:
print("mniejsza liczba")
continue
tak to zrobiłem
Fajny poradnik , mam tylko problem , gdy wpisuję od razu np.1 , to program nie wyświetla komunikatu że wylosowana liczba jest większa od Twojej tylko Podaj liczbę: . w drugą stronę nie ma problemu.
Gdzie może być błąd. Kod sprawdzałem kilkukrotnie .
ja tak zrobiłem :
from random import randint
los = randint(1,10)
while True:
a = input("Zgadnij Liczbę.. ")
if int(a) == los:
print("Gratulację ")
break
elif int(a) > los:
print("Podpowiedż: Mniej")
elif int(a) < los:
print("Podpowiedż: Więcej")
Proponuję stworzyć odcinek o konwertowaniu pliku projektu na EXE
To i ja się pochwalę, bo moja gra polega na zdobyciu 5 punktów, gdzie za każdą odgadniętą cyfrę zdobywa się po 1 pkt.
print("WITAJ W GRZE!")
print("Grę wygrywasz, gdy zdobędziesz 5 punktów.")
print("")
from random import randint
i = 0
odp = -1
pkt = 0
while int(pkt) != 5:
los = randint(0, 9)
while int(odp) != los:
i += 1
odp = input("Zgadnij, jaką cyfrę od 0 do 9 mam na myśli: ")
print("")
if int(odp) > los:
print("Wylosowana liczba jest mniejsza niż Twoja! Spróbuj jeszcze raz.")
print("")
elif int(odp) < los:
print("Wylosowana liczba jest większa niż Twoja! Spróbuj jeszcze raz.")
print("")
else:
print("Brawo! Zdobywasz 1 punkt.")
pkt += 1
print("Twoja aktualna liczba punktów: ", pkt )
print("Zdobądź kolejne punkty, aby wygrać!")
print("")
print("Gratulacje! Wygrałeś grę!")
print("Liczba prób: ", i )
Pozdrawiam, super się bawię z tymi kursami.
Próbowałem po swojemu przed obejrzeniem filmiku i wyszło mi tak (działa dobrze;) )
import random
while True:
y = int(input('Wybierz liczbę od 1 do 10: '))
x = random.randint(1, 10)
if x > y or x < y:
print("Nie udało się! wylosowana liczba to: ", x)
else:
break
print('Udało się! Wylosowana liczba to: ', x)
Spoko, ale w twoim wypadku chyba niepotrzebne jest robienie z tego pętli :)
fajne!, uczę się z tobą, ale ja to zrobiłem if odp>10 , nie ten przedział , else: print (nie ta liczba, próbuj dalej)
Czy możesz napisać dlaczego u Ciebie Pycham w trakcie pisania kodu wyświetla menu podręczne z alternatywami co można wpisać , a u mnie wyświetla. co trzeba ustawić w edytorze aby mi tez podpowiadał co mogę dalej wpisać ?
From random import randint
For i in range(3):
Print (randint(1,3))
czy opcja w ktorej sa 3 elif 2 pierwsze sprawdzaja czy liczba jest mniejsza i wieksza i zakonczone contuine a 3 elif wykonuje sie w momnecie podanej liczby i zakonczony jest komenda break jest tez prawidlowa (dziala poprowanie) ale czy jest tak samo optymalna ?
Fajny, taki inny ten odcinek, dający kopa do dalszej nauki
U mnie to w ogóle nie działa. "TypeError: '>' not supported between instances of 'tuple' and 'int'".
hej,
jest jakaś różnica jak da się w odp = -1 czy odp = 0?
czy to ma jakiś wpływ na wynik?
nie ma. Wazne, zeby odp nie zawierało sie w przedziale 1-10. Sprobuj sobie ustawic, to moze ci sie uda, ze od razu po kliknieciu shift+f10, bedziesz miał gratulacje za zerowa proba :)
@@piotrbuczek8812 dziękuje
Cześć,
Na wstępie chcę napisać, że stworzyłeś świetny kurs. Sposób w jaki tłumaczysz zagadnienia idealnie do mnie trafiają ☺️.
Postanowiłem pobawić się tą mini gierką i rozszerzyć trochę funkcjonalność. Moim założeniem było obsłużenie sytuacji kiedy użytkownik poda liczbę, która znajduje się poza zakresem 1 - 10 i aby te strzały nie liczyły się do ilości prób.
Założenie udało mi się zrealizować tylko zastanawiam się, czy sama składnia w świecie programistów jest akceptowalna?
from random import randint
wylosowana_liczba = randint(1, 10)
odpowiedź = -1
i = 0
print("Zgadnij liczbę w przedziale 1 - 10")
while odpowiedź != wylosowana_liczba:
odpowiedź = int(input("Podaj liczbę: "))
if odpowiedź < 1:
print("Podana liczba znajduje się poza przedziałem!")
elif odpowiedź > 10:
print("Podana liczba znajduje się poza przedziałem!")
else:
i += 1
if odpowiedź > wylosowana_liczba:
print("Wylosowana liczba jest mniejsza od Twojej")
elif odpowiedź < wylosowana_liczba:
print("Wylosowana liczba większa od Twojej")
print("Gratulacje, odgadłeś za", i, "razem")
Piszę z telefonu więc mam nadzieję, że kod się za bardzo nie rozjedzie 😛. A może istnieje jakiś lepszy sposób na zrealizowanie takiego założenia?
dziękuję mi coś nie działa w moim i pomocy tu szukam dzięki kolego
Tak, da się ten kod minimalnie poprawić, mianowicie ja skorzystałem z operatora „or” tam gdzie program mówi nam czy funkcja jest poza przedziałem, co pozwala na skrócenie kodu.
from random import randint
los = randint(1,10)
odp =-1
i = 0
print("Zgadnij liczbę z przedziału od 1 - 10")
while odp != los:
i += 1
odp = int(input("Podaj liczbę:"))
if odp > 10 or odp los:
print("wylosowana liczba jest mniejsza od twojej")
elif odp < los:
print("Wylosowana liczba jest większa")
else:
print("zgadłeś!!!")
print(i)
Mój kod wygląda tak:
import random
print ("Odgadnij liczbę z zakesu 1; 10")
i = 0
losowa_liczba = random.randint(1, 10)
podana_liczba = int(input("Podaj liczbę:"))
i += 1
while podana_liczba != losowa_liczba:
if (podana_liczba < losowa_liczba):
print("liczba powinna być większa")
i += 1
podana_liczba = int(input("Podaj liczbę:"))
elif (podana_liczba > losowa_liczba):
print("liczba powinna być mniejsza")
i += 1
podana_liczba = int(input("Podaj liczbę"))
print ("Gratulacje!! Zgadłeś po " + str(i) + " próbach!")
Tak na prawdę nie wpadłem tylko na to w jaki sposób zliczyć ilość prób i szukałem jakiejś bardziej skomplikowanej funkcji zliczającej, po chwili się poddałem i olśniło mnie jak to zrobić gdy w filmiku napisałeś " i = 1"
Program napisałem w całości samodzielni korzystając z dodatkowych źródeł informacji odnośnie generowania liczb losowych.
Dzień dobry, zacząłem z zainteresowaniem oglądać Twój kurs. Jestem zielony w tym temacie i póki co przyswajam składnię i zasady pisania. Chciałbym spytać o coś dość głupiego i trywialnego... Mianowicie w jaki sposób skalujesz/powiększasz sobie tekst w okienku RUN programu PyCharm?
Ctrl + rolka. Ale trzeba wyłączyć tą opcję w ustawieniach.
@@KoW No właśnie próbowałem tej kombinacji. Nie wiedziałem że trzeba to włączyć. Poszukam, dziękuję za podpowiedź 👍
zem troche inaczej napiszal ale dziala
from random import randint
num_guess = randint(0, 20)
# print(f"Seceret number: {num_guess}")
lifes = 5
live_game = True
print(f"Let's play a game, guess a number. You've {lifes} lifes to start with.")
while live_game:
user_guess = int(input("Guess a number: "))
if user_guess == num_guess:
print("Congrats, you won!")
live_game = False
elif user_guess > num_guess:
print("Too High!")
lives -= 1
elif user_guess < num_guess:
print("Too Low!")
lives -= 1
if lifes < 1:
live_game = False
print(f"You have {lifes} life's left, Game Over")
else:
print(f"Lifes left: {lifes}")
Mam pytanie mój kod na pewno jest w 100% poprawny a program ma następujący problem. Za każdym razem liczbę wystrzela po za zakres np. Wpisuje 5 program zwraca np. Większa i tak mogę do 100 wpisywać i nic to samo w dół. Czy to może być spowodowane problemem randint? Nie ma żadnego błędu z bibliotekami.
Też mam ten błąd i nie wiem co robie nie tak
mam proste pytanie, jest patent na szybkie ogarnianie wcięć? :D np mam pętle jakąś i chce wokół niej dodać ifa, da sie to zrobić łatwo? bo recznie w każdej linijce dodawać tabulację, to absurdalne troche jest ;D
niewiem jestem teraz mniej więcej na takim samym odc co ty więc no xD
Zaznacz myszką obszar który chcesz przesunąć i naciśnij klawisz "tab" (-:
Po wybraniu liczby wyskakuje mi za każdym razem że odgadłem odpowiedz mimo że program instruuje mnie, że liczba jest większa lub mniejsza, oto mój kod. Gdzie popełniłem bląd? from random import randint
los = randint(1,10)
odp = -1
i = 0
print("Zgadnij liczbe z przedziału 1 - 10")
while odp != los:
i += 1
odp = int(input("Podaj liczbe: "))
if odp > los:
print("Liczba jest mniejsza od twojej")
elif odp < los:
print("Liczba jest większa od twojej")
print("Brawo! Odgadłeś za", i, "razem.")
wiem że data ale ostatnia linijka musi być bez wcięcia bo print("Brawo! Odgadłeś za", i, "razem.") musi być po zakończeniu pętli a nie częścią pętli jeśli dobrze rozumiem
Super poradnik! Mam tylko pytanie skąd bierze się napis odp=-1 i czy wpisanie innej liczby miałoby wpływ na dalsze pisanie kodu?
Nie jeżeli liczba ta nie była by w przedziale 1 - 10 wytłumaczył to nie musi być tylko - 1 co chcesz nawet 1000000
Co w przypadku, gdy pobierając dane od użytkownika, ten uporczywie podawał będzie zamiast wartości int wartość literową, rozwalając innymi słowy cały program ? Jak to kontrolować ? Jaki zawrzeć warunek pętli ?
W dalszych lekcjach będzie coś o tym. Należy wtedy sprawdzić czy wartość jest liczbowa.
@@KoW Będę szukał. Dziękuję. Świetny kanał. Świetnie prowadzony. Gratuluję.
Ja zrobiłem taką samą grę ale w batch.
Wiecie co ja najbardziej lubię ? Jak mi coś nie działa. Wtedy szukam i kombinuje jak mam to naprawić. A tu pyk zabrakło nawiasu i stąd błąd. :D
ja niechcący napisałam "+" zamiast "=" 😅
Czy masz jakiś pomysł, żeby wprowadzić do tej gry życia? Bo męczę się z tym już 2 godzinę :c Proszę o pomoc
Zainspirowany twoim komentarzem spróbowałem, zmienna "życie", która dodaje się przy każdej odpowiedzi += 1, specjalny "elif" który przerywa pętlę przy życie == 3 oraz print("Szukaj wśród mniejszych liczb!", życie, "z trzech".
Pewnie toporne jak nie wiem co, ale działa
Czy można zapisać tę grę w taki sposób aby po udostępnieniu linku ktoś mógł w nią zagrać? np. otwiera się w html lub czymś innym dla osób które nie mają pycharm lub jupyter notebook?
W czystym języku Python niestety nie. Trzeba było by zrobić stronę z tą grą, jest to możliwe w Pythonie ale najlepiej użyć frameworka odpowiedniego do tego.
Jaka jest roznica miedzy (... , i , ....) a ( ... + i + ....) . Przy przecinkach jest ok a jak robie z plusami to wyskakuje błąd
Gdy używasz konstrukcji z + to musisz nazwę zmiennej umieścić wewnątrz str(nazwa), bo przy + łączysz ze sobą łańcuchy znaków.
@@zagadka5471 no i jeszcze jeśli postawisz przecinek to masz uatomatycznie spację pomiędzy wyrażeniami, a jeśli użyjesz '+' to będzie bez spacji
zmieniłem kod na styl lotto z 6 liczbami ale nie jestem pewien czy działa w 100% XD jeżeli ktoś się zna proszę o poprawę kodu XD
from random import randint
los = 6 * randint(1,49)
odp = -1
i = 0
print("Zgradnij sześć liczb 1-49")
while odp != los:
i += 1
odp = int(input("podaj sześć liczb: "))
if odp > los or odp < los:
print("Przykro mi nie trafiłeś!")
print("Brawo! Wygrałeś miliony złotych")
Jest jakaś różnica między range(7) a range(1,7)?
Range 7 chyba dawało liczby od 0 - 7 sprawdź proszę.
Niema zadnej tylko jak wpisujesz range(7) to masz liczby od 1 do 7 a jak wpiszujesz z przecinkiem to mozesz sobie wybrac np. Range(20, 50) czyli tylko od 20 do 50
Mozesz takze miec trzeci warunek czyli np. Range(1, 10, 2) czyli masz liczby od 1 do 10 liczone po 2 . Czyli 1,3,5,7,9
@@mikedobi783 Dziękuję. A czym się różni randint() od random.randint().
@@KS2416 Poczytaj sobie dokumentację pythona docs.python.org/3.8/index.html tam wszystko znajdziesz
Czy to dobrze jak rozumiem wszystko co jest tam napisane, ale nie wiedziałbym jak zacząć pisać tą grę?
Tak, na początek tak to wygląda, że uczysz się z tego korzystać, czyli podstaw. A z czasem przychodzi wykorzystanie tego we własnych pomysłach ;)
@@KoW uff dzięki bo już zaczynałem się martwić, tak w ogóle super kursy robisz. Po tym z Pythonem zabieram się za naukę JavaScript, ale to chyba dopiero w szkole średniej 😄
dziena byq
Ktoś zauważył że Marcin Zelent robił to samo tylko z C++?? nie, nie czepiam się tylko to przykuło moją uwagę, bo kiedyś ogarniałem u niego C++
Marcin?, a on przypadkiem nie Mirek? Nie, wcale się nie czepiam XDDDD
@@mietwin Ja to w sumie już niewiem xDD
tez robilam c++ tam i też mi się to skojarzyło, aż zaczęłąm szukać w komentarzach, czy tylko mi xD
czemu ja mam cały czas wylosowaną liczbę 7
Dzięki Tobie od dzisiaj jestę hakerem
Gratuluję!
@@KoW 😁
Dodałem jeszcze możliwość wygrania rabatu:
...
elif odp == los and i == 1:
print('Brawo udało Ci sie odgadnąć za', i, 'i wygrywasz 100% rabatu :)')
elif odp == los and i == 2:
print('Brawo udało Ci sie odgadnąć za', i, 'i wygrywasz 50% rabatu :)')
else:
print('Brawo udało Ci sie odgadnąć za', i, 'ale nie masz rabtu :(')
nagle z dupy zaczales robic rzeczy ktorych wczesniej nie bylo, nie podoba mi sie to
gdzie zrobił coś czego wczesniej nie bylo?