Python_notatki Z5

Cwiczenie 1 - gra papier, nożyce, kamień.
import random
gra = ("papier", "nożyce", "kamień")
# print(random.choice(gra))
print("""Wprowadź swój wybór w postaci liczbowej:
0 - papier
1 - nożyce
2- kamień""")
wybor_gracza = int(input("Twój wybór: "))
wybor_komputera = random.choice(gra)
print(wybor_komputera)
if (wybor_gracza == 0 and wybor_komputera == "papier") or (wybor_gracza == 1 and wybor_komputera == "nożyce") or (wybor_gracza == 2 and wybor_komputera == "kamień"):
print("Remis")
elif (wybor_gracza == 0 and wybor_komputera == "kamień") or (wybor_gracza == 1 and wybor_komputera == "papier") or (wybor_gracza == 2 and wybor_komputera == "nożyce"):
print("Wygrana!")
else:
print("Przegrana")
Odpowiedź od Przemka:



Rozwiązanie do zadania domowego (kwestionariusz, struktura danych):



Gotowce / praktyki programowania:

pip narzędzie do instalowania bibliotek w pythonie:

Trzeba wpisywać pip i nazwę dla instalacji na komputerze nie w kodzie, tylko w TERMINALU!!!!!!! w windows terminalu lub vs code terminalu.

Do wstawienia biblioteki do kodu robimy: import nazwa_biblioteki
Uważaj na podpowiedzi Usage, bo komendy i nazwy do importu mogą być inne niż do pip instalacji.

Jeżeli nazwa biblioteki jest długa i niewygodna do wpisywania można ją roboczo podmienić na inną:


można wyciągnąć tylko 1 funkcję z biblioteki:

Pozostałe/inne warianty importowania bibliotek i funkcji istnieją, ale mogą powodować problemy.
Jeśli importuje bibliotekę o nazwie random, to w folderze nie może być pliku o takiej nazwie jak biblioteka, bo wtedy wciągnie plik zamiast biblioteki.

Jeżeli coś jest trywialne do zakodowania i wymaga tylko krótkiego kodu, lepiej nie używać do tego bibliotek, ponieważ biblioteki mogą być updatowane, zmieniane i usuwane przez ich twórcę, i wtedy kod może przestać działać.

Żeby zobaczyć co jest w środku biblioteki, trzeba najechać na nazwę biblioteki i poczekać na podpowiedź, potem Ctrl+L mouse button - wyświetli zawartość/kod biblioteki.

DRY - don't repeat yourself 😄
LOOPS:


for loop — skończona ilość razy wykonania pętli.
while loop — python nie wie, ile razy wykona pętle, dlatego ona jest wolniejsza od for loop
litera (lub inna zmienna) - pod tym podstawia się elementy z listy lub krotki, lub słowika i td. To różni się od (for i in range(number):).



W słowniku wyświetli/zaciągnie tylko klucz:

jeżeli chce wartości to:

Jeżeli nie korzystamy ze zmiennej element wewnątrz pętli, to lepiej to nazwać "_".

Counter (for i in range(number):):

Domyślnie range startuje od 0, można to zmienić na inne znaczenie.




Można naraz wyciągać kilka elementów z listy lub krotki, jeżeli podam kilka zmiennych, ale ilość zmiennych i ilość elementów na liście (w krotce) powinna być taka sama.

MUSI SIĘ ZGADZAC ILOSC WYWOLYWANYCH ZMIENNYCH I ILOSC ELEMENTOW!
Dalej lecimy:




Nowa klasa, nowy typ obiektu — nazwa zaczyna się z dużej litery!

Używamy żółwika do rysowania kształtów:
Podstawowa część kodu:
import turtle
zolwik = turtle.Turtle()
zolwik.speed(5)
zolwik.shape("turtle")
# coś co ma wykonać żółwik
turtle.exitonclick()
Teraz kwadrat:

for _ in range(4):
zolwik.forward(100)
zolwik.right(90)
Teraz wielokąt:

ilosc_katow = 10
kat_skretu = 360 / ilosc_katow
for _ in range(ilosc_katow):
zolwik.forward(100)
zolwik.right(kat_skretu)
Teraz penup i pendown:

zolwik.circle(50)
zolwik.penup()
zolwik.forward(100)
zolwik.pendown()
ilosc_katow = 4
kat_skretu = 360 / ilosc_katow
for _ in range(ilosc_katow):
zolwik.forward(100)
zolwik.left(kat_skretu)
Teraz Audi:

promien = 50
nalozenie = 20
przesuniecie = (promien*2)-nalozenie
for i in range(4):
zolwik.circle(promien)
zolwik.penup()
zolwik.forward(przesuniecie)
zolwik.pendown()
Teraz wzór centryczny:

promien = 50
ilosc_elementow=10
kat_obrotu = 360/ilosc_elementow
for i in range(ilosc_elementow):
zolwik.circle(promien)
zolwik.left(kat_obrotu)
Teraz krzyrz:

for _ in range(4):
zolwik.forward(100)
zolwik.right(90)
zolwik.forward(100)
zolwik.right(90)
zolwik.forward(100)
zolwik.left(90)
Teraz wzór centryczny z kwadratów:

ilosc_elementow = 15
kat_obrotu = 360/ilosc_elementow
for _ in range(ilosc_elementow):
for j in range(4):
zolwik.forward(100)
zolwik.right(90)
zolwik.left(kat_obrotu)
Teraz powiększające się kwadraty:

strona_kwadratu = 50
powiekszenie = 20
for i in range(5):
for j in range(4):
zolwik.forward((strona_kwadratu + (i*powiekszenie)))
zolwik.right(90)
To be continued...
p.s.
