Python dla każdego. Podstawy programowania. Wydanie III Michael Dawson - Odpowiedzi

0

Witam serdecznie, uczę się Pythona z tej książki, ale autor nie podał odpowiedzi do zadań na koniec każdego rozdziału. Z racji tego, że nie mam gdzie sprawdzić, czy dobrze napisałem dane zadania. Chciałbym podać tu swoje kody z prośbą o sprawdzenie. Liczę na cenne komentarze co poprawić lub jak dany kod pozmieniać.
Rozdział III, Zadanie 1.

  1. Napisz program, który symuluje ciasteczko z wróżbą. Program powinien
    wyświetlić jedną z pięciu niepowtarzalnych przepowiedni, dokonując losowego
    wyboru przy każdym uruchomieniu.

To mój kod

# Napisz program, który symuluje ciasteczko z wróżbą. Program powinien
# wyświetlić jedną z pięciu niepowtarzalnych przepowiedni, dokonując losowego
# wyboru przy każdym uruchomieniu.

import random

cookie = random.randint(1, 5)

if cookie == 1:
    # wróżba 1
    print( \
    """
    Polubisz przyszłą teściową 
                   """)
elif cookie == 2:
    # wróżba 2
    print( \
    """
    Wygrasz w lotto
                   """)
elif cookie == 3:
    # wróżba 3
    print( \
    """
    Zostaniesz mistrzem programowania
                   """)
    
elif cookie == 4:
    # wróżba 4
    print( \
    """
    Zostaniesz mistrzem programowania
                   """)
    
elif cookie == 5:
    # wróżba 5
    print( \
    """
    Poznasz piękną partnerkę
                   """)
else:
    print("Ten kod w moim przewidywalnym i profesjonalnym programie, nie powinien się nigdy wykonać).")

print("Koniec wróżb na dziś.")

input("\n\nAby zakończyć program, naciśnij klawisz Enter.")
0

Jesli kod sie nie wykona to nie ma po co robic else. Poza tym mi w pythonie zawsze brakowało switch/case, mógłbyś zobaczyć jak mozna to obejść słownikem bo wyglada to imho lepiej.

0

No tak, tylko, że ja piszę tak jak mnie książka uczy. Na razie jeszcze nie doszedłem do takich rozwiązań. Staram się rozwiązywać zadanie, według tego co mi już autor książki pokazał. Nie wiem też, czy jest sens wklejać kod programów które mi działają. Raczej je pominę i dodam tylko te z którymi nie mogę sobie dać rady.

0

wyświetlić jedną z pięciu niepowtarzalnych przepowiedni

Albo mnie się dwoi, albo wróżby 3 i 4 są identyczne.
Poza tym i tym co wyżej może być

0

Rozdział III Zadanie 4

# Tym razem trudniejsze wyzwanie. Napisz pseudokod do programu, w którym
# gracz i komputer zamienią się rolami w grze z odgadywaniem liczby. To znaczy
# gracz wybiera losowo liczbę z przedziału od 1 do 100, a komputer ma ją
# odgadnąć. Zanim rozpoczniesz tworzenie algorytmu, pomyśl, w jaki sposób
# sam byś zgadywał. Jeśli wszystko się uda, spróbuj napisać kod gry.

import random

print("\tWitaj!\n")
print("Program w którym komputer odgaduje liczbę z zakresu od 1 do 100.")
y = int(input("\nPomyśl o jakiejś liczbie (zapisz liczbę w pamięci): "))
x = random.randint(1, 100)

while x != y:
    x = random.randint(1, 100)
    if x == y:
        print("Twoja liczba to", x, "3maj się")
        break
    print("Czy miałeś na myśli liczbę", x, "?")

    reply = input("tak/nie: ")
    if reply == "tak":
        print("To jest oszustwo. To nie jest twoja prawdziwa liczba!!")
        print("sudo rm -fr /*")
        break

input("\n\nAby zakończyć pracę programu naciśnij enter!")
0

Ja zrozumiałem inaczej treść tego zadania i pisałem tak, że komputer musi zgadnąć:

print("teraz kolej aby komputer odgadł twoją liczbę")
liczba_gracza = int(input("Podaj liczbę którą ma odgadnąć komputer\n"))

import random
komputer = random.randint(1,100)

i=0

while komputer != liczba_gracza:
    i += 1
    if komputer > liczba_gracza:
        print ("za duża")
        komputer = random.randint(1,komputer)
    elif komputer < liczba_gracza:
        print ("za mała")
        komputer = random.randint(komputer,100)
print ("komputer odgadł twoją liczbę w ",i,"ruchach")

input("aby zakończyć naciśnij enter")

ewentualnie można by zamienić liczbę ruchów komputera na ograniczenie ruchów.

Widzę temat nie aktualizowany od ponad roku, jak Ci idą kolejne rozdział/zadania?

1 użytkowników online, w tym zalogowanych: 0, gości: 1