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

Skrócenie kodu

Object Storage Arubacloud
0 głosów
269 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 (253,340 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 310 wizyt
pytanie zadane 16 stycznia 2017 w HTML i CSS przez agit45 Obywatel (1,110 p.)
0 głosów
0 odpowiedzi 176 wizyt
pytanie zadane 6 listopada 2016 w JavaScript przez blackvten Nowicjusz (180 p.)
0 głosów
2 odpowiedzi 323 wizyt

92,570 zapytań

141,422 odpowiedzi

319,643 komentarzy

61,958 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...