"or" deyimi hakkında


Arkadaşlar random.randint kullanarak belli aralıkta 5 sayı üretip bu sayıların aynı olmaması için fotodaki şekilde karşılaştırma yaptım. Sorunsuz çalıştı. Benim merak ettiğim aralarda “or”
kullanmam doğru mu? Başka türlü yapılabilir mi?

Aşağıdaki gibi bir şey yapabilirsiniz.

>>> import random
>>> 
>>> def random_num(n, range=(0, 100)):
...     nums = []
...     
...     while len(nums) != n:
...         while True:
...             num = random.randint(*range)
...             if num not in nums:
...                 nums.append(num)
...                 break
...                 
...     return nums
... 
>>> 
>>> random_num(10, (0, 100))
[7, 91, 100, 72, 51, 96, 65, 31, 68, 93]
>>> 
1 Beğeni

Çok teşekkür ederim buradaki yazılanlar üzerine biraz araştırma yapayım.

if ve elif de or doğru ancak fonksiyonların arasında yanlış.

Peki fonksiyonlar arasında kullandığım “or” neden hata vermiyor?

Çünkü yanlış bir kullanım değil. or operatörü tıpkı + gibi bir operatördür ve iki tane operanda ihtiyaç duyar. Sizin kullanımınızda ilk fonksiyonun sonucu boolean’a çevrilir, sonuç True ise ikinci fonksiyon çalıştırılmaz, sonuç döndürülür. Eğer sonuç False ise, ikinci fonksiyon çalıştırılır; sonuç, ilk sonuç ile or işlemine tabi tutulur ve sonuç döndürülür.

2 Beğeni