[Çözüldü] and komutu ile yaşadığım bir sorun

Başlatan tek_boynuzlu_ayı, 29 Eylül 2018 - 19:25:02

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

tek_boynuzlu_ayı

Herkesin günü güzel geçiyordur umarım

Python 2x sürümü ile çalıştırıldığında uyarı verecek bir şeyin nasıl yapıldığını öğrenmeye çalışıyorum

# -*- coding: utf-8 -*-
import sys

py2metni = """
Python'ın 2.x sürümlerinde düzgün çalışmamaktadır
Çalıştırabilmek için 3.x sürümünü kurun"""
py3metni = "OK"

if sys.version_info.major < 3:
    print(py2metni)

else:
    print(py3metni)


Programı böyle yazdığımda herhangi bir sorun çıkmıyor ama if e and ile bir şey eklediğimde 2 programda da OK çıktısını veriyor

Normal şekli:

if sys.version_info.major < 3:

Değiştirilmiş Hali:

if sys.version_info.major == 3 and sys.version_info.minor == 2:

sizce nerede hata yapıyor olabilirim ?

cosmicowl

#1
Bu komut python'ın sürüm numarısını verir(2 veya 3)sys.version_info.major Bu ise alt sürüm numarasını verir (yani 3.5 de 5, 2.7 de 7 gibi)sys.version_info.minor
Sizin değiştirdiğiniz kod sürümün 3.2 olup olmadığını kontrol ediyor. Yani and ile alakası yok. Konuyu daha iyi anlamak için matematikteki mantık konusuna bakabilirsiniz.

tek_boynuzlu_ayı

Alıntı yapılan: cosmicowl - 29 Eylül 2018 - 19:35:00
Bu komut python'ın sürüm numarısını verir(2 veya 3)sys.version_info.major Bu ise alt sürüm numarasını verir (yani 3.5 de 5, 2.7 de 7 gibi)sys.version_info.minor
Sizin değiştirdiğiniz kod sürümün 3.2 olup olmadığını kontrol ediyor. Yani and ile alakası yok.

Anladım ama kodun tamamı şöyle

# -*- coding: utf-8 -*-
import sys

py2metni = """
Python'ın 2.x sürümlerinden birini kullanıyorsunuz.
Programı çalıştırabilmek için sisteminizde Python'ın
3.x sürümlerinden biri kurulu olmalı."""
py3metni = "OK"

if sys.version_info.major == 3 and sys.version_info.minor == 2:
    print(py2metni)

else:
    print(py3metni)


burda bana 3.2 den başka bir sürüm ile açtığımda uyarı vermesi gerekmiyor mu ?

Not:Kafa karışıklığı olmasın diye ayrı yazayım dedim belirtmediğim için üzgünüm

dev_man

Py2metni ni py3 ile değiştirmen lazım. Sürüm 3.2 olunca uyarı veriyor aksi olursa OK yazıyor.

tek_boynuzlu_ayı