Sys ile ilgili bir soru


#1

import sys

if sys.version_info[0] < 3:
    print("Kullandiginiz python surumu 3.x.x olmali.")
else:
    print("hosgeldiniz")

bu programı python’un 2.x.x versiyonlarında çalıştırdığım zaman ilk hata metnini vermekti amacım. Bunun için sys.version_info[0] kullandım. Yaptığım şey doğru mu yoksa tesadüfen mi oldu?


#2

Burada sıkıntı yok. Nedenini bu değerin tanımlandığı sınıfı inceleyerek bulabilirsiniz. Ancak bu yöntem yerine şu daha okunaklı:

sys.version_info.major

#3

assert deyimini kullanmanız sizin açınızdan daha güzel olacaktır örnek kod

import sys
assert sys.version_info[0] > 2
print("Hello")

Eğer bunu python2 de çalıştırırsanız AssertionError alacaksınız python3 de çalıştırırsanız çıktı
hello olacaktır :slight_smile:

Bu assert’in çalışma mantığı şöyle farzedelim ki biz burada python 3 girdik 3 > 2 buradaki değer true olacaktır ve false olmadığı için sorun olmadan devam edeceğiz ama 2 girersek 2 > 2 olmadığı için false döndürecek ve hata verecektir :slight_smile:


#4

Bu 3.1’de gelmis. [20karakter]


#5

Teşekkürler herkese

@aib hocam Attribute error ile diğer versiyonlara uygulayabiliyormuşuz bu arada. Dökümanda değinmişler bu konuya da.