Pythoni stringi tei­sen­da­mine uju­ko­ma­ar­vuks aitab vältida vigu, mis tekivad mitte-numb­ri­liste stringide ka­su­ta­misel arit­mee­ti­lis­tes ope­rat­sioo­ni­des.

Millised Python-stringid saab tei­sen­dada uju­ko­ma­ar­vu­deks?

Kui soovite tei­sen­dada Python-stringi uju­ko­ma­ar­vuks, peab stringil olema kehtiv numb­ri­line esitus uju­ko­ma­ar­vuna. See tähendab, et see võib sisaldada küm­nend­vor­min­gus numbreid, seal­hul­gas küm­nend­kohti ja tea­dus­likku mär­ki­mis­viisi (nt "3.14" või "2.7e-3"). Siiski ei tohi see sisaldada täien­da­vaid märke, tühikuid ega märke, mis ei esinda numb­rilisi väärtusi. Kui see nii on, ei õnnestu teisendus.

String–float kon­ver­tee­ri­mine on põhiline funkt­sioon ja kuulub iga Python versiooni juurde. Siiski võivad mõned meetodid ja funkt­sioo­nid eri­ne­va­tes ver­sioo­ni­des töötada veidi erinevalt. Pöörake tä­he­le­panu vigadele, mis võivad tei­sen­da­mise käigus tekkida. Näiteks tekitab kehtiva numbri mit­te­si­sal­dava stringi si­ses­ta­mine vea. Erilisi väärtusi, nagu NaN (ei ole number) ja Infinity, ei saa tei­sen­dada float-tüüpi väär­tus­teks. See tähendab, et tei­sen­da­mi­sega tegelevad arendajad peavad oskama vigu as­ja­ko­ha­selt käsitleda. Üks viis selleks on kasutada try/except-blokke vigade tu­vas­ta­miseks ja nendele rea­gee­ri­miseks.

Kuidas tei­sen­dada Python-i stringe float() abil

Funkt­sioon float() on sis­se­ehi­ta­tud Python-meetod, mis teisendab stringid uju­ko­ma­deks. Seda ka­su­ta­takse sageli kasutaja sisestuse tei­sen­da­miseks strin­gi­dest numb­ri­lis­teks for­maa­ti­deks, et sisestust saaks kasutada ar­vu­tus­tes või numb­ri­lis­tes ope­rat­sioo­ni­des. Mit­me­su­guste andmetega töö­ta­va­tes prog­rammi­des ka­su­ta­takse float(), et tagada andmete jär­je­pi­de­vus, tei­sen­da­des väärtused numb­ri­lisse formaati.

Pythoni stringide tei­sen­da­miseks uju­ko­ma­ar­vu­deks kasutage float() ja sisestage ar­gu­men­tina kehtiv string:

str1 = "3.1416"
float_value = float(str1)
print(float_value) # Output: 3.1416
python

Võite tei­sen­dada ka muid numb­rilisi tüüpe, nagu int ja complex, uju­ko­ma­ar­vuks, kasutades neid float() kaudu.

Try/except-blokke saab kasutada kehtetute kasutaja si­ses­tuste tu­vas­ta­miseks, kui tei­sen­da­takse stringe uju­ko­ma­ar­vu­deks:

while True:
    user_input = input("Enter a number: ")
    try:
        float_value = float(user_input)
        print("Entered number as float:", float_value)
        break # Exit the loop if the conversion was successful
    except ValueError:
        print("Invalid input! Please enter a numeric value.")
        # The loop continues to prompt for valid input
python

Eespool toodud kood on tsükkel, mis palub kasutajal sisestada number. Seejärel üritab see väärtus tei­sen­dada uju­ko­ma­ar­vuks. Try-plokis on float(user_input) mõeldud kasutaja si­ses­ta­tud stringi tei­sen­da­miseks uju­ko­ma­ar­vuks. Kui teisendus õnnestus, sal­ves­ta­takse number float_value alla ja ta­gas­ta­takse. Seejärel lõpetab break tsükli ja programm jätkub.

Kui stringi tei­sen­da­misel float-tüüpi muutujaks tekib Va­lueEr­ror, täi­de­takse except-ploki kood. See võib juhtuda, kui kasutaja sisestab väärtuse, mida ei saa tei­sen­dada float-tüüpi muutujaks, näiteks tähe. Sel juhul kuvatakse sõnum, et sisestus on kehtetu, ja tsükkel küsib uuesti kehtivat sisestust.

Kuidas tei­sen­dada Python-i stringid uju­ko­ma­deks NumPy abil

Kui soovite Python-stringi NumPy abil uju­ko­ma­ar­vuks tei­sen­dada, võite kasutada funkt­siooni numpy.float64(). See annab teile 64-bitise uju­ko­ma­arvu.

import numpy as np
string_value = "3.1416"
float_value = np.float64(string_value)
print(float_value) # Output: 3.1416
python

Esmalt peate oma skripti importima NumPy, kui see pole veel ins­tal­li­tud. Seejärel saate NumPy abil rakendada funkt­siooni numpy.float64() stringile string_value, et tei­sen­dada see 64-bitiseks uju­ko­ma­ar­vuks.

Kuidas kasutada str()

Kui aga soovite tei­sen­dada uju­ko­ma­arvu stringiks, võite kasutada funkt­siooni str(). See funkt­sioon teisendab muud väärtused strin­gi­deks.

float_number = 3.1416
string_number = str(float_number)
print(string_number) # Output: "3.1416"
python

Eespool toodud näites tei­sen­da­takse uju­ko­maarv 3.1416 stringiks "3.1416", kasutades str().

str() on kasulik ka mitme uju­ko­ma­ar­vuga väärtuse ühen­da­miseks f-strin­gi­dega ( Pythoni stringi formaat).

float_value1 = 3.1416
float_value2 = 2.7182
float_value3 = 1.6180
string_concatenation = f"Concatenation of: {str(float_value1)}, {str(float_value2)}, and {str(float_value3)}"
print(string_concatenation) # Concatenation of: 3.1416, 2.7182, and 1.6180
python

Pange tähele, et kui tei­sen­date uju­ko­ma­ar­vud strin­gi­deks str() abil, esi­ta­takse tu­le­mu­seks saadud string tekstina ja seda ei saa enam kasutada numb­ri­lis­tes ar­vu­tus­tes ega ma­te­maa­ti­lis­tes ope­rat­sioo­ni­des. Selle ka­su­ta­miseks ar­vu­tus­tes peate selle tagasi tei­sen­dama numb­ri­li­seks vormiks (nagu uju­ko­maarv).

Tip

Loe meie di­gi­taal­sest juhendist teiste tei­sen­duste kohta. Selgitame, kuidas tei­sen­dada Pythoni stringid ni­me­kir­ja­deks ja Pythoni stringid datetime-ob­jek­ti­deks.

Go to Main Menu