Modül dersleri (4/4)
Dönüşümleri yazın
Python kesinlikle yazılmıştır: siz belirtmediğiniz sürece asla bir sayıya dize eklemez
öyle söyle. Bir türden diğerine geçmek için yapıcı işlevlerini kullanırsınız:
int(), float(), str(), bool(), list(), tuple(), set().
int("42") # 42
float("3.14") # 3.14
str(42) # '42'
list("abc") # ['a', 'b', 'c']
tuple([1, 2]) # (1, 2)
set([1, 1, 2]) # {1, 2}int() dizelerle
int("42") çalışıyor; int("42.5"), ValueError değerini yükseltir. Ondalık dizeler için,
önce float üzerinden geçin: int(float("42.5")) → 42 (keser, kesmez)
yuvarlak).
int("42") # 42
int(" 42 ") # 42 (strip automatico degli spazi)
int("42.5") # ValueError
int(float("42.5")) # 42
int("ff", 16) # 255 (base esplicita)float() dizelerle
Ondalık ve bilimsel gösterimi kabul eder.
float("3.14") # 3.14
float("1e3") # 1000.0
float("inf") # inf
float("nan") # nanstr(): "dost canlısı" dönüşüm
str(x) "insan" temsilini almak için dahili olarak x.__str__() öğesini çağırır.
Ayrıca "hata ayıklayıcı" gösterimi için repr(x) vardır, genellikle daha fazlası
açık (dizeler için tırnak işaretleri vb. ile).
str(3.14) # '3.14'
str([1, 2]) # '[1, 2]'
str(True) # 'True'bool() ve doğruluk
bool(x), yalnızca Python'un falsy değerleri için False değerini döndürür:
False,None- sıfır sayılar:
0,0.0 - boş kaplar:
"",[],(),{},set()
Geriye kalan her şey gerçektir.
bool(0) # False
bool("") # False
bool([]) # False
bool("0") # True ! (stringa non vuota)
bool([0]) # True ! (lista non vuota, anche se contiene 0)Desen: güvenli giriş ayrıştırma
testo = input("età: ")
try:
eta = int(testo)
except ValueError:
print(f"non è un numero: {testo!r}")
eta = NoneBoole değerlendirmesi (Doğruluk)
Python'da her nesnenin örtülü bir doğruluk değeri vardır. bool(...) işlevini kullanarak herhangi bir nesnenin boolean değerini kontrol edebilirsiniz. Boş koleksiyonlar (ör. "", [], {}, set()) ve sıfır değerler (0, 0.0) her zaman False olarak değerlendirilir. Diğer tüm nesneler True olarak değerlendirilir.
Deneyin
`a = '10'` ve `b = '32'` (dizeler) verildiğinde, `toplam'ı bunların TAM SAYISI toplamı olarak hesaplayın. 'Toplam'ı değerlendirin.
İpucu göster
int(a) + int(b), aksi takdirde dizeleri birleştirirsiniz.
3 denemeden sonra çözüm mevcut
Alıştırmayı gözden geçirin
`values = ['', 'x', 0, Yok, 1, []]` listesi göz önüne alındığında, bool() kullanarak YALNIZCA doğruluk öğeleriyle `gerçek'i oluşturun. 'Gerçeği' değerlendirin.
İpucu göster
bool(v) (veya sadece 'if v') filtresiyle liste anlama.
3 denemeden sonra çözüm mevcut
Ek zorluk
\`string_numbers = ["1", "2", "3"]\` dizelerinin listesi verildiğinde, \`int()\` kullanarak her öğeyi bir tam sayıya dönüştürün ve \`6\` değerini elde etmek için bunları toplayın. Toplamı \`sum_val\`'de saklayın ve değerlendirin.
İpucu göster
Öğelere dizine göre erişin, ör. int(string_numbers[0]) ve bunları toplayın.
3 denemeden sonra çözüm mevcut