Problem z listami

Problem z listami
MA
  • Rejestracja:ponad 7 lat
  • Ostatnio:ponad 7 lat
  • Postów:3
0

Cześć wszystkim,
uczę się Pythona i próbuje sobie coś tam eksperymentować. Trafiłem jednak na przeszkodę, będę ogromnie wdzięczny jeśli ktoś mi pomoże lub powie, ze to co próbuje stworzyć jest bezsensu.
Chciałbym, żeby program oddawał mi zawsze po wpisaniu "ola" - " man" .
W tym kodzie próbuje z modułem random i dostaje randomowe odpowiedzi.

Kopiuj
import random 
random.seed()
slowa=["ola","lisek","stopa"]
odpowiedzi = ["man","dsa", "brudna"]
while True:
    x  = input("Podaj dowolny wyraz: ")
    x  = x.lower()
    sindex = random.randint(0,len(slowa)-1)
    if x in slowa:
       print(odpowiedzi[sindex])
    elif x.isdigit():
        print("Podaj wyraz")
    else:
        print("Nie jestem słównikiem!")
        
SI
  • Rejestracja:prawie 14 lat
  • Ostatnio:około 7 godzin
1
Kopiuj
import random

slow = {"ola": "man", "lisek": "dsa", "stopa": "brudna"}
pyt, odp = random.choice(list(slow.items()))
print(pyt, odp)
enedil
Konwersja na listę niepotrzebna.
SI
w Pythonie 3 bez niej wyrzuca mi TypeError: 'dict_items' object does not support indexing
SE
  • Rejestracja:prawie 8 lat
  • Ostatnio:ponad 3 lata
  • Postów:318
2

Chciałbym, żeby program oddawał mi zawsze po wpisaniu "ola" - " man" .
W tym kodzie próbuje z modułem random i dostaje randomowe odpowiedzi.

Skoro chcesz by program w tej wersji wypisywał konkretną odpowiedź, to nie bardzo tu widzę zastosowanie dla random. A jak używasz random, to się nie dziw, że odpowiada losowo.
Jeśli koniecznie musi być na listach i są one w takim stanie jak w pierwszym poście - wpisujesz słowo, sprawdzasz jego indeks, wypisujesz z drugiej listy słowo o tej samej pozycji.
Nie jestem też pewien czy ta pętla tam potrzebna, bo nie mogę dociec jak ją zakończyć.

1
Spine
  • Rejestracja:około 22 lata
  • Ostatnio:18 minut
  • Postów:6685
2
Kopiuj
slowa=["ola","lisek","stopa"]
odpowiedzi = ["man","dsa", "brudna"]
while True:
	x  = input("Podaj dowolny wyraz: ")
	x  = x.lower()
	
	try:
		sindex = slowa.index(x)
	except:
		if x.isdigit():
			print("Podaj wyraz")
		elif x == "":
			print("koniec")
			break
		else:
			print("Nie jestem slownikiem!")
			
		continue
		
	print(odpowiedzi[sindex])

Po co Ci randomowe odpowiedzi, skoro chcesz dla konkretnego pytania dostać konkretną odpowiedź?


🕹️⌨️🖥️🖱️🎮
edytowany 1x, ostatnio: Spine
MA
  • Rejestracja:ponad 7 lat
  • Ostatnio:ponad 7 lat
  • Postów:3
1
Spine napisał(a):
Kopiuj
slowa=["ola","lisek","stopa"]
odpowiedzi = ["man","dsa", "brudna"]
while True:
	x  = input("Podaj dowolny wyraz: ")
	x  = x.lower()
	
	try:
		sindex = slowa.index(x)
	except:
		if x.isdigit():
			print("Podaj wyraz")
		elif x == "":
			print("koniec")
			break
		else:
			print("Nie jestem slownikiem!")
			
		continue
		
	print(odpowiedzi[sindex])

Po co Ci randomowe odpowiedzi, skoro chcesz dla konkretnego pytania dostać konkretną odpowiedź?

To jest to o czym marzyłem :D Dzięki wielkie wszystkim za pomoc. Mój błąd, że wstawiłem tu kod z random, (wiem jak ten moduł działa) jednak chciałem jakiś zarys mojego pomysłu tym uwidocznić.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.