Zlicz wyrazy. Papier, nożyce..
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
"""