Zlicz wyrazy. Papier, nożyce..

Zlicz wyrazy. Papier, nożyce..
Photo by Matt Artz / Unsplash

2 proste aplikacje, które robiliśmy na zajęciach. Kod uzupełniłem komentarzami

Pierwsza służy do "naiwnego" zliczenia słów w ciągu znaków. Sugeruję rozbudować ją tak, aby to użytkownik mógł wprowadzić swój tekst i wyraz do podliczenia (później np. możemy dodać wczytanie tekstu z pliku).

# Naiwnie liczy wystąpienie słowa
# tzn. potraktuje np. myślniki jako słowo

moje_zdanie = "Ala ma kota."

# zamieniamy ciąg znaków na listę
# rozdzielamy tam gdzie są spacje
# - jeśli do metody .split nie podamy
# parametru przyjmnie, że tniemy na spacji

lista_wyrazow = moje_zdanie.split()

# uzywamy funkcji len, żeby sprawdzic ilosc elementow w liscie

print(len(lista_wyrazow))

Druga to "papier, nożyce, kamień". Rozważcie proszę wariant o którym wspominam na końcu.

Kolejność operacji w tym podejściu jest nieprzypadkowa - zobaczcie, że sprawdzam najpierw czy to co wpisał użytkownik ma sens. Dopiero wtedy robię cokolwiek.

# zaladuj modul umożliwiający losowe operacje

import random

# Krotka mozliwych wariantów
# - bo ilość wariantów stała

mozliwosci = ("papier", "nożyce", "kamień")

# Komunikat z instrukcją
print("""
    Wprowadź swój wybór w postaci liczbowej:
      0 - papier
      1 - nożyce
      2 - kamień
      """)

# Umożlwiam graczowi wykorzystanie liczby
# bedacej indeksem w liscie mozliwosci
# - latwiej wpisac cyfre, niz slowo

wybor_gracza_indeks = (input())

# w pierwszym kroku sprawdzam czy to co wpisal gracz ma sens
# jak nie - mozna od razu zakonczyc
if wybor_gracza_indeks not in ("0", "1", "2"):
    print("Wpisano nieprawidłową liczbę.")

# jesli wybor gracza mial sens moge wykonac wlasciwe porownania
else:
    # wykorzystuje indeks zeby pobrac wybor gracza z listy
    # pamietajac zeby zamienic string na int
    wybor_gracza = mozliwosci[int(wybor_gracza_indeks)]
    print(f"Twój wybór: {wybor_gracza}") 

    # losuje to co wybierze komputer
    wybor_komputera = random.choice(mozliwosci)
    print(f"Komputer wybrał: {wybor_komputera}")

    if wybor_gracza == wybor_komputera:
        print("Remis")
    elif wybor_gracza == "nożyce" and wybor_komputera=="papier":
        print("Wygrana!")
    elif wybor_gracza == "papier" and wybor_komputera=="kamień":
        print("Wygrana!")
    elif wybor_gracza == "kamień" and wybor_komputera== "nożyce":
        print("Wygrana!")
    else:
        print("Przegrana :(")

# ciekawym wariantem byloby wogole wykorzystac liczby i indeksy do porownan
# - wtedy jednak warto by bylo skorzystac z random.randint(0:2) jako 
# wybor komputera

Spróbujcie zrobić ten program wykorzystując słownik do przechowania ASCII art z kamieniem, nożycami i papierem:

kamien = """
    _______
---'   ____)
      (_____)
      (_____)
      (____)
---.__(___)

kamień
"""

papier = """
    _______
---'   ____)____
          ______)
          _______)
         _______)
---.__________)

papier
"""

nozyce = """
    _______
---'   ____)____
          ______)
       __________)
      (____)
---.__(___)

nożyce
"""