Python_notatki Z5

Python_notatki Z5
Photo by Siora Photography / Unsplash

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.