Kaj so Python f-nizi?
S Python f-nizi lahko v niz vstavite zapletene izraze in spremenljivke, ne da bi morali izvajati dodatne pretvorbe ali oblikovanje.
Kaj lahko naredijo Python f-nizi?
Python f-nizi so Pythonov format nizov, ki je bil uveden s Python 3.6. Poznani so tudi kot oblikovani nizovni literali. Znotraj f-niza lahko izračunate izračune z uporabo oklepajev. F-nizi omogočajo bolj kompaktno notacijo kot drugi formati nizov, kot sta str.format() in povezovanje z +. To vam na koncu omogoča jasnejšo in bolj jedrnato kodo.
F-nizi so zelo prilagodljivi in omogočajo vstavljanje različnih tipov podatkov, kot so cela števila, plavajoča števila, seznami, izrazi in funkcije, brez pretvarjanja ali dodajanja posebnega oblikovanja. F-nizi v Pythonu so ponavadi hitrejši od drugih metod oblikovanja nizov v Pythonu.
Kakšna je sintaksa Pythonovih f-nizov?
Osnovna struktura Pythonovega f-niza je sestavljena iz predpone f ali F, ki ji sledi niz v narekovajih („ ali ’). Znotraj niza lahko uporabite oklepaje {} za vstavljanje spremenljivk in izrazov.
name = "Peter"
age = 25
formatted_string = f"My name is {name} and I am {age} years old."
print(formatted_string) # Output: My name is Peter and I am 25 years old.pythonV tem primeru smo spremenljivki name in age vstavili v oklepajih v niz f-string{name} in {age}.
Kako se uporabljajo Python f-nizi?
F-strune se lahko uporabljajo na različne načine.
Izvedba izračunov znotraj niza
Python f-nizi so še posebej praktični, če želite izvajati aritmetične izračune znotraj niza. Omogočajo vam, da v eni vrstici kode opredelite zapleten izraz.
num1 = 10
num2 = 5
result = f"The sum of {num1} and {num2} is {num1 + num2}"
print(result) # Output: The sum of 10 and 5 is 15pythonV tem primeru sta num1 in num2 dodana znotraj f-niza. Rezultat je prikazan v končnem izhodnem nizu.
Python f-nize in surove nize
Kombinacija r za surove nize in f za f-nize ustvari posebno vrsto niza v Pythonu, znano kot rf-niz. Z rf-nizi lahko združite funkcionalnost surovih nizov s fleksibilnostjo f-nizov. R-nizi **dobesedno interpretirajo escape sekvence,**f-nizi pa lahko neposredno vstavijo spremenljivke in izraze v niz.
name = "User"
path = rf'C:\Users\Username\Documents\{name}\file.txt'
print(path) # Output: C:\Users\Username\Documents\User\file.txtpythonV zgornji kodi smo za opredelitev poti uporabili rf-niz. V rf-nizu smo uporabili {name}, da smo neposredno vstavili spremenljivko name. Medtem pa r pred nizom zagotavlja, da se poševnica \ obravnava kot dobeseden znak in ne kot del zaporedja za pobeg.
Natančnost plavajočih številk
Za določitev števila decimalnih mest v plavajočem številu v nizu f lahko uporabite posebne izjave za oblikovanje.
value = 3.14159265359
formatted_value = f"Rounded value = {value:.3f}"
print(formatted_value) # Output: Rounded value = 3.142pythonV zgornji kodi izjava za oblikovanje :.3f kaže, da je treba spremenljivko value zaokrožiti na tri decimalna mesta in jo vstaviti v oblikovani niz.
Širina in poravnava
V Python f-nizih lahko s specifikacijami širine in poravnave nadzorujete, kako se vrednosti prikazujejo znotraj polja. To je koristno za umestitev besedila in številk na določeno mesto ter njihovo poravnavo levo, desno ali na sredino.
Recimo, da imamo ime __Alice__ in ga želimo poravnati desno v polju, ki je široko 10 znakov.
name = "Alice"
formatted_name = f"Hello, {name:>10}"
print(formatted_name) # Output: Hello, AlicepythonKer je vrednost krajša od 10 znakov, jo bo {name:>10} poravnalo desno.
Polnjenje z ničlami ali drugimi znaki
Polnjenje z ničlami ali drugimi znaki vpliva na poravnavo številk v polju. To je koristno, če želite številke v fiksnem formatu, na primer pri prikazovanju časa ali številčnih vrednosti.
number = 42
formatted_number = f"Number: {number:06}"
print(formatted_number) # Output: Number: 000042pythonV tem primeru :06 pomeni, da bo številka number vnesena v šestmestno polje, manjkajoče številke pa bodo dopolnjene z ničlami na začetku.
Za izpolnjevanje niza lahko uporabite tudi druge znake, ne le ničle:
word = "Python"
formatted_word = f"Word: {word:_<10}"
print(formatted_word) # Output: Word: Python____python