• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Skrócenie kodu

Mały hosting, OGROMNE możliwości
0 głosów
577 wizyt
pytanie zadane 16 kwietnia 2022 w Python przez niezalogowany

Jak skrócić ten kod?

import random
import os
def gra():
    my_number = random.randint(0, 100)
    guess = -1
    
    print("Guess my nmebr")
 
 
    while guess != my_number:
       guess = int(input("Wprowadż liczbę od 0 do 100"))
       typ = type(guess)
       if guess != my_number:
            os.system('cls')
            o = input("Podałeś nieprawidłową liiczbę poddajes się? napisz Tak, Nie lub Podpowiedź")
            o.lower()
            
       if guess == my_number:
           print("Gratulacje!!!!!")
       if o == 'tak':
           os.system('cls')
           print("Wylosowana liczba to", my_number)     
           break
       if o == 'nie':
           os.system('cls')
           print("okej")

           
       return

gra()
ok = input("Chcesz grać dalej?")
ok.lower()
while ok == 'tak':

    gra()

if ok == 'nie':

    print("Okej")

 

1 odpowiedź

0 głosów
odpowiedź 17 kwietnia 2022 przez niezalogowany
Przede wszystkim możesz od razu po inpucie użyć lower(). Niżej chyba nie musi być pętli while i wystarczy zastosować ify.

W funkcji gra możesz użyć switchy i nie widzę gdzie używasz zmiennej typ. I musisz zmienić nazwy zmiennych na te które bardziej oddają ich zastosowanie. Poza tym ogarnij te błedy ortograficzne i poczytaj o PEP8.

I jeżeli chcesz, żeby gra była ciekawsza to napisz czy podana liczba jest za duża czy za mała oraz zliczaj próby.
komentarz 17 kwietnia 2022 przez niezalogowany
from random import randint
from os import system

def game():
    rand_number = randint(0,100)
    attempt = 0
    while True:
        try:
            guess_number = int(input('Wpisz liczbę:'))
        except:
            print('Błąd, podaj liczbę jeszcze raz')
            continue
        system('clear')
        attempt += 1
        print('Próby:', attempt)
        match guess_number:
            case guess_number if guess_number > rand_number:
                print('Liczba jest za duża')
            case guess_number if guess_number  < rand_number:
                print('Liczba jest za mała')
            case rand_number:
                print('Wygrana!\nLiczba to', rand_number)
                break

answer = input('Zamierzasz grać? (tak/nie) ').lower()
match answer:
    case 'tak':
        game()
    case 'nie':
        print('Koniec\nNaciśnij ENTER aby wyjść')
        input()
    case _:
        print('Niepoprawna odpowiedź\nNaciśnij ENTER aby wyjść')
        input()

Ta sama gra z użyciem match case, zliczaniem prób, wyjątków i w mniejszej ilości linijek :)

komentarz 19 kwietnia 2022 przez VBService Ekspert (256,580 p.)

wink

from random import randint
import os, time

clearConsole = lambda: os.system('cls' if os.name in ('nt', 'dos') else 'clear') 
 
def game():
    rand_number = randint(0,100)
    attempt = 0
    while True:
        clearConsole()
        try:
            guess_number = int(input('Wpisz liczbę: '))
        except:
            print('Błąd, podaj liczbę jeszcze raz')
            continue        
        
        attempt += 1
        print(f"Próby: {attempt}")
        match guess_number:
            case guess_number if guess_number > rand_number:
                print('Liczba jest za duża')
            case guess_number if guess_number < rand_number:
                print('Liczba jest za mała')
            case rand_number:
                print('Wygrana!\nLiczba to', rand_number)
                break
            
        time.sleep(3)    

    while True:
        match input('Zamierzasz grać? (tak/nie) ').lower():
            case ('tak'|'t'): game()
            case ('nie'|'n'): exit()
            case _: print('Niepoprawna odpowiedź\n')

game()

 

Podobne pytania

0 głosów
2 odpowiedzi 652 wizyt
pytanie zadane 16 stycznia 2017 w HTML i CSS przez agit45 Obywatel (1,110 p.)
0 głosów
0 odpowiedzi 344 wizyt
pytanie zadane 6 listopada 2016 w JavaScript przez blackvten Nowicjusz (180 p.)
0 głosów
2 odpowiedzi 895 wizyt

93,718 zapytań

142,629 odpowiedzi

323,261 komentarzy

63,265 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...