Kullanıcıya 4 tane seçenek sunuyorum diyelim, ve kullanıcı bu seçeneklerden 3.sünü seçmiş olsun.
Seçenekler:
1-) Durdur
2-) Önceki
3-) Sonraki
4-) Kapat
Ve bir liste objesi düşünün:
liste= [“A”, “B” , “C”]
Kullanıcının şuan “C” elemanı ile bir etkileşim halinde olduğunu varsayalım. Ve kullanıcı burada C’den sonraki elemana geçmek isterse, 3.seçeneği seçecektir. Ben kullanıcının 3.seçeneği seçtikten sonra listenin başına, yani ‘A’ elemanına dönmesini istiyorum, bunu nasıl yaparım?
Mevcut elemanın listenin sonunda yer alıp almadığına bakabilirsiniz.
Şu tür koşul cümleleri ile yapabilirsiniz:
liste = ["A", "B", "C"]
mevcut_eleman = 0 # indeks olarak
while True:
komut = input("Durdur, Önceki, Sonraki, Kapat: ")
if komut == "Sonraki":
if mevcut_eleman == len(liste)-1:
mevcut_eleman = 0
else:
mevcut_eleman += 1
print(f"Sonrakine Geçildi: {liste[mevcut_eleman]}")
if komut == "Önceki":
if mevcut_eleman == 0:
mevcut_eleman = len(liste)-1
else:
mevcut_eleman -= 1
print(f"Öncekine Geçildi: {liste[mevcut_eleman]}")
if komut == "Kapat":
quit()
Yeni bir komut girildiğinde indeks değerlerini kontrol ederek işlem yapabilirsiniz.
Aslında komut değişkeninin yer aldığı koşul cümleleri python 3.10 ile match-case kullanılarak daha hoş bir şekilde yapılabilir
liste = ["A", "B", "C"]
mevcut_eleman = 0 # indeks olarak
while True:
komut = input("Durdur, Önceki, Sonraki, Kapat: ")
match komut:
case "Sonraki":
if mevcut_eleman == len(liste)-1:
mevcut_eleman = 0
else:
mevcut_eleman += 1
print(f"Sonrakine Geçildi: {liste[mevcut_eleman]}")
case "Önceki":
if mevcut_eleman == 0:
mevcut_eleman = len(liste)-1
else:
mevcut_eleman -= 1
print(f"Öncekine Geçildi: {liste[mevcut_eleman]}")
case "Kapat":
quit()
2 Beğeni
veya mod ile
uzunluk = len(liste)
yon = -1 if inp == "önceki" else +1
indeks = (indeks + yon) % uzunluk
çünkü
The modulo operator always yields a result with the same sign as its second operand (or zero)
; yani hep 0, 1, …, uzunluk-1 aralığında kalıyor indeks.
ilgililerden başlığı daha açıklayıcı bir hale büründürmelerini talep ediyorum :ğ
3 Beğeni