Lekcja 12. Streamlit
Formularz danych osobowych
import streamlit as st
import json
st.title("Witaj w naszej firmie. Potrzebujemy kilku Twoich danych")
with open("dane_pracownikow.json", "r") as plik:
dane = json.load(plik)
czy_blad = False
with st.form("formularz", clear_on_submit = True):
nazwisko = st.text_input("Imię i nazwisko")
dzial = st.selectbox("Dział", ["Ksiegowosc", "IT", "Produkcja", "Administracja"])
plec = st.radio("Płeć", ["kobieta", "mezczyzna", "inne basniowe stwory"])
pesel = st.text_input("PESEL")
adres = st.text_input("Adres")
czy_przeslano = st.form_submit_button("Prześlij dane")
if czy_przeslano:
if len(pesel) != 11:
st.write("Nieprawidlowy PESEL. Uzupełnij poprawnie dane")
else:
try:
int(pesel)
czy_blad = False
except:
czy_blad = True
st.write("Nieprawidlowy PESEL. Uzupełnij poprawnie dane")
if not czy_blad:
st.write("Dziękujemy za przesłanie danych")
dane[pesel] = [nazwisko, dzial, plec, adres]
with open("dane_pracownikow.json", "w") as plik1:
json.dump(dane, plik1, indent=2)
#st.write(dane)
Zgadnij liczbę
import streamlit as st
import random
class ZgadnijLiczbe:
def __init__(self) -> None:
self.pozostale_proby = 7
self.proba_gracza = -1 #cokolwiek spoza zakresu
self.wylosowana_liczba = random.randint(1,100)
self.czy_wygrano = False
self.czy_uruchomiona = True
def zmniejsz_ilosc_prob(self):
self.pozostale_proby -= 1
def porownanie(self):
if self.proba_gracza == self.wylosowana_liczba:
st.write("Wygrana!")
st.balloons()
self.czy_wygrano = True
self.pozostale_proby = 0
if self.proba_gracza > self.wylosowana_liczba:
st.write("Wybierz mniejszą liczbę")
st.write(f"Pozostało prób: {self.pozostale_proby}")
if self.proba_gracza < self.wylosowana_liczba:
st.write("Wybierz większą liczbę")
st.write(f"Pozostało prób: {self.pozostale_proby}")
def nowa_gra():
st.session_state.gra = ZgadnijLiczbe()
if "gra" not in st.session_state:
nowa_gra()
st.title("Zgadnij liczbę!")
st.write("Gra polega na zgadnięciu liczby z zakresu 1-100")
if st.button(label="Nowa gra"):
nowa_gra()
if st.session_state.gra.czy_uruchomiona:
if st.session_state.gra.pozostale_proby > 0:
st.write(f"Do zgadnięcia: {st.session_state.gra.wylosowana_liczba}")
st.session_state.gra.proba_gracza = st.slider(label="Jaka to liczba?", max_value=1, min_value=100)
if st.button(label="Prześlij"):
st.session_state.gra.zmniejsz_ilosc_prob()
st.session_state.gra.porownanie()
# if st.session_state.gra.proba_gracza == st.session_state.gra.wylosowana_liczba:
# st.write("Wygrana!")
# st.balloons()
# st.session_state.gra.czy_wygrano = True
# st.session_state.gra.pozostale_proby = 0
# if st.session_state.gra.proba_gracza > st.session_state.gra.wylosowana_liczba:
# st.write("Wybierz mniejszą liczbę")
# st.write(f"Pozostało prób: {st.session_state.gra.pozostale_proby}")
# if st.session_state.gra.proba_gracza < st.session_state.gra.wylosowana_liczba:
# st.write("Wybierz większą liczbę")
# st.write(f"Pozostało prób: {st.session_state.gra.pozostale_proby}")
if st.session_state.gra.pozostale_proby == 0 and st.session_state.gra.czy_wygrano == False:
st.write("Nie udało się zgadnąć. Brakło prób")
else:
st.write("Zacznij nowa gre")
#streamlit run zgadnijliczbe.py