Merhabalar aşağıdaki fonksiyonda döngünün durması için hem kullanıcı adının hem de parolanın doğru girilmesi koşulunu sağlamaya çalıştım. AND operatörü ile bu işin yapabileceğini düşündüm ama sanki OR operatörü kullanışım gibi koşullardan biri bile TRUE dönse döngü sonlanıyor. AND operatöründe 2 koşulunda sağlanması gerekiyor sonucun TRUE dönmesi için ama benim fonksiyonda bu işe yaramadı bir yerde hata yapıyorum. While döngüsünün durması hem kullanıcı adı hemde parolanın aynı zamanda doğru yazılması koşuluna nasıl bağlanabilir. Yardımlarınız için teşekkür ederim.
Buradaki != leri == yaparsan program amacına uygun çalışır gibi.
Ek yorum:
Şifre kontrol mekanizmanı pek beğenmedim. Şu mekanizma da takip edilebilir idi belki (ben oluşturdum.)
def control ():
if (username and password is correct):
print("username and password correct")
else:
print ("invalid login")
exit(0)
while (1):
control ()
#some process
Şifre kontrol mekanizması ile ilgilenmiyorum onun için baştan savma oldu biraz burda amacım while döngüsünü 2 koşula bağlamaktı. Dediğiniz gibi yaptığımda zaten hiç çalışmıyor kod.
Ben böyle bir şey yaptım uygun olur mu? while da or kullanmak daha mantıklı. Çünkü biz anladığım kadarıyla hem şifre hem de kullanıcı adı doğru olursa while dan çıkmaya çalışıyoruz. Mantık dersi aldıysanız De Morgan amcayı da anımsatayım
değil (şifre doğru ve kullanıcı doğru) <=> sifre yanlış veya kullanıcı yanlış
OR kullanımında koşullardan herhangi biri doğru olduğunda True dönüyor bu kullanım amacına uygun değil. Burda kullanım için dediğiniz gibi sadece her iki koşulunda TRUE dönmesi durumunda döngüden çıkılması gerekiyor. Password ve username doğru olduğunda döngüden çıkmak diğer hertürlü koşulda döngünün sürmesini sağlamaya çalışıyorum.
Allah allah OR ile denememiştim hiç çünkü dediğim gibi ben 2 koşulunda sağlanması gerekliliği durumundan dolayı AND kullanıyordum. OR nasıl oluyor da burda doğru koşul operatörü oluyor hiç anlamadım.