13092024: streamlit - Eliza J.

13092024: streamlit - Eliza J.
Photo by David Clode / Unsplash

Skrypt z użyciem biblioteki streamlit uruchamiamy nie poprzez przycisk play, a poprzez zintegrowany terminal: twoj_skrypt.py -> prawy przycisk myszki -> Otwórz w zintegrowanym terminalu.

Następnie, w otwartym terminalu wpisujemy komendę streamlit run twoj_skrypt.py -> Enter.

streamlit API reference:

API Reference - Streamlit Docs

#Rzut wirtualną monetą

import streamlit as st
import random

# Tytuł aplikacji
st.title("Orzeł czy reszka?")

# Ścieżki do obrazków
obrazki = ["orzel.jpg", "reszka.jpg"]

# Funkcja losująca obrazek
losowanie=random.choice(obrazki)

if st.button("Sprawdzaj"):
    st.image(losowanie)

#Wirtualna kostka

import streamlit as st
import random

# Tytuł aplikacji
st.title("Rzuć wirtualną kostką")

# Określenie "boków" kostki
kostka = [1, 2, 3, 4, 5, 6]

# Funkcja "rzucająca" kostką
rzut=random.choice(kostka)

if st.button("Rzucaj"):
    st.write("Twój wynik to: ")
    st.write(rzut)

# Gra "Zgadnij liczbę"

import streamlit as st
import random

# Tytuł aplikacji
st.title("Zgadnij liczbę!")

# Podtytuł
st.write("Gra polega na zgadnięciu liczby z zakresu 1-10.")

# Funkcja do generowania randomowej liczby do zgadnięcia
def nowa_gra():
    return random.randint(1, 10)

# Inicjalizacja stanu gry, jeśli nie istnieje
if 'liczba' not in st.session_state:
    st.session_state.liczba = nowa_gra()
    st.session_state.moj_input = 0
    st.session_state.liczba_prob = 5
    st.session_state.game_over = False

# Przycisk "Nowa gra"
if st.button("Nowa gra"):
    st.session_state.liczba = nowa_gra()
    st.session_state.moj_input = 0
    st.session_state.liczba_prob = 5
    st.session_state.game_over = False
    st.write("Nowa gra rozpoczęta! Masz 5 prób.")

# Zgadywanie poprzez użycie slidera
if not st.session_state.game_over:
    moj_input = st.slider("Jaka to liczba?", min_value=1, max_value=10, value=st.session_state.moj_input, step=1)
else:
    moj_input = st.session_state.moj_input

# Przycisk "Sprawdź"
if st.button("Sprawdź"):
    if st.session_state.game_over:
        st.write("Zacznij nową grę, aby spróbować ponownie.")
    else:
        st.session_state.moj_input = moj_input  # Aktualizacja wartości w session state
        if st.session_state.moj_input == st.session_state.liczba:
            st.write("Brawo, zgadłeś!")
            st.session_state.game_over = True
            st.session_state.liczba_prob = 5  # Reset liczby prób po wygranej
            st.balloons()  # Wyświetlanie balonów, gdy zgadniesz
        else:
            st.session_state.liczba_prob -= 1
            if st.session_state.liczba_prob > 0:
                if st.session_state.moj_input < st.session_state.liczba:
                    st.write("Źle! Szukana liczba jest większa.")
                else:
                    st.write("Źle! Szukana liczba jest mniejsza.")
                st.write(f"Spróbuj ponownie! Pozostałe próby: {st.session_state.liczba_prob}")
            else:
                st.write(f"Koniec gry! Prawidłowa liczba to: {st.session_state.liczba}")
                st.session_state.game_over = True  # Ustawienie flagi końca gry

#QR Code generator z użyciem streamlit

import qrcode
from PIL import Image
import streamlit as st
from qrcode.image.pure import PyPNGImage
import io

def generuj_qr(dane):
    global qkod, obrazek
    qrkod = qrcode.make(dane, image_factory=PyPNGImage)
    img_buffer = io.BytesIO()
    qrcode.save(img_buffer)
    return img_buffer

st.title("Generuj kod QR")

link = st.text_input(label="Wprowadź url:")

if st.button ("Wciśnij mnie!"):
    st.image(image=generuj_qr(link))