Herkese merhabalar. Bu kodlar içinde “else” altında “continue” ifadesi programı başa sarmıyor. Try except kullanmadan programı başa almak mümkün değil mi? Aynı şekilde “elif” altında da “continue” kullansam istediğim şartlarda programı başa nasıl sararım. Programla alakalı olmayan kodları deneme amaçlı yazıyorum takılmayın. Ancak başkaca hata görürseniz söyleyin. Teşekkürler.
import time
import datetime
print("_"*30," HOŞGELDİNİZ ", "_"*30,"\n" )
saattarih = datetime.datetime.now()
datetime.datetime.ctime(saattarih)
print(saattarih)
print(time.asctime(),"\n")
say = input("Çıkmak için q -> Bir sayı giriniz...: ")
global isaret
isaret = "-"
def mutlak(say):
while (True):
if say == "q":
print("3 sn içinde çıkış yapılacak...\n")
time.sleep(1)
print("3...\n")
time.sleep(1)
print("2...\n")
time.sleep(1)
print("1...\n")
time.sleep(1)
print("...İyi Günler...")
break
elif say[0]=="-" and say[1:].isdigit() or say.isdigit():
print(abs(int(say)))
break(veya continue kullanılabilir)
else:
print("Yanlış giriş yaptınız. Tekrar deneyiniz.")
continue
return say
mutlak(say)
Merhaba, topluluğumuza hoş geldin. Öğrenme sürecinde yaptığın bu tür denemeler önemli, gayretini tebrik ediyorum. Soruna gelince;
continue ifadesini kullanım amacına uygun kullanmamışsınız. Genelde bu ifade bir döngü içerisinde bir koşula bağlı olarak kendisinden sonra gelecek kodların çalıştırılmadan döngünün baştan başlatılması için kullanılır. Sizin kodlarınızda continue ifadesi zaten en sonda olduğu için, continue olmasa da bir şey değişmez. Oraya kadar geldikten sonra zaten başa döner. Basit bir örnek;
while True:
sayi = input("Bir sayı girin (çıkış için q'ya' basın): ")
if (sayi=='q'): break
if (int(sayi)%2==0): continue
print(sayi, ": tek sayıdır.")
Örneği çalıştırdığınızda;
- ‘q’ girişi yapılırsa
break
sayesinde döngüden çıkılır.
- Çift sayı girilmişse
continue
sayesinde sonraki satıra hiç bakılmadan program başa döner ve yine sayı girilmesini ister.
- Tek sayı girilmişse ekrana bastırılır.
Sizin kodlarınızda continue ifadesinden sonra zaten birşey kalmadığı için o olmasa da başa dönecektir. Silip deneyebilirsiniz.
diye belirttiğiniz yerde break’ın etkisini denemişsinizdir. continue kullansanız da kullanmasanız da elif:
bloğu içindeki ifadeler çalıştırıldığında else
’ye yine bakılmayacağından continue orası için anlamsızdır. Zaten tüm senaryolara göre if-elif-...-elif-else
yapılarını oluşturmuşsanız bunlardan sadece ve sadece 1 tanesi çalıştırılacaktır. Dolayısıyla if-elif-…-elif-else bloklarından birinde son satırda continue kullanmak gereksiz olacaktır.
Programı başa almaktan kastınız say = input("Çıkmak için q -> Bir sayı giriniz...: ")
kodundan itibaren tekrar çalıştırılması ise bu satırı mutlak()
fonksiyonundaki while
döngüsü içine koymanız lazım. Mesela aşağıdaki gibi;
import time
import datetime
print("_"*30," HOŞGELDİNİZ ", "_"*30,"\n" )
saattarih = datetime.datetime.now()
datetime.datetime.ctime(saattarih)
print(saattarih)
print(time.asctime(),"\n")
#say = input("Çıkmak için q -> Bir sayı giriniz...: ")
#global isaret
#isaret = "-"
def mutlak():
while (True):
say = input("Çıkmak için q -> Bir sayı giriniz...: ")
if say == "q":
print("3 sn içinde çıkış yapılacak...\n")
time.sleep(1)
print("3...\n")
time.sleep(1)
print("2...\n")
time.sleep(1)
print("1...\n")
time.sleep(1)
print("...İyi Günler...")
break
elif say[0]=="-" and say[1:].isdigit() or say.isdigit():
print(abs(int(say)))
#continue
else:
print("Yanlış giriş yaptınız. Tekrar deneyiniz.")
#continue
return say
mutlak()
Tekrardan bakmanızda fayda gördüğüm konular için aşağıya link bırakıyorum;
İyi çalışmalar
Teşekkürler. Ne demek istediginizi anladım.
1 Beğeni