- linia 11 - brak na końcu nawiasu (wskazówka @Velta)
n.append(str(random.randint(1,10)))
- linia 14 - podwójny nawias - wystarczy jedna para
a = input(("Wygenerowałe dcla ciebie 4 ... 1 cyfrę tej liczby"))
- linia 15 - niepotrzebny dwukropek na końcu
n = n(int(i) for i in n):
co tu w ogóle chcesz uzyskać n jest listą (linia 8)
- linia 23 - chyba chodziło o: if a == int(n[l+1]):
- linia 34 - brakuje jednego znaku równości
elif a in n and r == True:
- linia 40 - negację w python-ie zapisz słowem kluczowym not
while a not in n:
- linia 43 - if cow i co dalej
- no i pełno literówek (w string-ach)
dla
Wygenerowałe dcla ciebie 4 cufrową liczbę
zamiast
num = random.randint(1,10**5)
nums = str(num)
n = list(nums)
print(n)
if len(n) < 4:
n.append(str(random.randint(1,10)))
elif len(n) > 4:
t = n.pop(-1)
po prostu
# od 1111 do 9999
n = [str(random.randint(1,9)) for _ in range(4)]
print(n, "".join(n))
można nieco skrócić kod, np. (krowy i byki - dodaj sam )
[ on-line ]
import random
def game():
pozycja_liczby_slownie = [ 'pierwszą', 'drugą', 'trzecią', 'ostatnią']
n = [str(random.randint(1,9)) for _ in range(4)]
print(n, "".join(n))
print("Wygenerowałem dla Ciebie 4 cyfrową liczbę")
licznik = 0
while True:
a = input(f"Podaj proszę {pozycja_liczby_slownie[licznik]} cyfrę tej liczby: ")
try:
if licznik == n.index(a, licznik):
print(f"Gratulacje! Odgadłeś {pozycja_liczby_slownie[licznik]} cyfrę")
licznik += 1
elif a in n:
print(f"Odgadłeś cyfrę, ale nie jest ona na pozycji {licznik+1}")
except ValueError:
print("Nie odgadłeś cyfry! Spróbuj ponownie")
if licznik > 3:
break
game()
[ Python List index() ]
P.S. można "pokolorować" teksty, np.
[ on-line ]
...
def color(code):
return f"\33[{code}m"
...
print(color(31) + "Nie odgadłeś cyfry! Spróbuj ponownie" + color(0))
...
[ How to add colour to text Python? ]