Əgər siz Python-da ədədlər sətirini ədədi dəyərlərə çevirmək istəyirsinizsə, tam ədədlərə çevirmək üçün int() və üzən nöqtəli ədədlərə çevirmək üçün float() istifadə edin.
Aşağıdakılar nümunə kodla birlikdə burada izah olunur.
- Əsas istifadə
- Rəqəm sətirlərini tam ədədlərə çevirin:
int()
- Rəqəmlər silsiləsi üzən nöqtəli ədədlərə çevirin:
float()
- Rəqəm sətirlərini tam ədədlərə çevirin:
- Xüsusi İstifadə
- İkilik, səkkizlik və onaltılıq sistemlərdəki sətirləri ədədlərə çevirir
- Eksponensial notasiyadakı sətirləri ədədi qiymətlərə çevirir
- Tam enli ərəb rəqəmləri sətirlərini rəqəmlərə çevirin
- Çin simvollarını rəqəmlərə çevirin
Rəqəmsal dəyəri sətirə çevirmək üçün str() funksiyasından istifadə edin.
Əgər rəqəmləri və ya sətirləri müxtəlif formatlara çevirmək istəyirsinizsə, format() funksiyasından və ya str.format() sətir metodundan istifadə edin. Sonra siz 0-doldurma, ikilik, səkkizlik, onaltılıq, eksponensial notasiya və s.-yə çevirə bilərsiniz. Ətraflı məlumat üçün aşağıdakı məqaləyə baxın.
O, həmçinin sətirlərin siyahısını nömrələr siyahısına çevirə bilər. Təfərrüatlar üçün aşağıdakı məqaləyə baxın.
- Rəqəm sətirlərini tam ədədlərə çevirin:int()
- Rəqəmlər silsiləsi üzən nöqtəli ədədlərə çevirin:float()
- İkilik, səkkizlik və onaltılıq sistemlərdəki sətirləri ədədlərə çevirir
- Eksponensial notasiyadakı sətirləri ədədi qiymətlərə çevirir
- Tam enli ərəb rəqəmləri sətirlərini rəqəmlərə çevirin
- Çin simvollarını rəqəmlərə çevirin
Rəqəm sətirlərini tam ədədlərə çevirin:int()
Ədədlər sətirini tam tipli ədədlərə çevirmək üçün int() funksiyasından istifadə edə bilərsiniz.
print(int('100'))
print(type(int('100')))
# 100
# <class 'int'>
Onluq nöqtələr və vergüllə ayrılmış sətirlər daxil olmaqla, ondalıq ədədlər ValueError ilə nəticələnəcək.
# print(int('1.23'))
# ValueError: invalid literal for int() with base 10: '1.23'
# print(int('10,000'))
# ValueError: invalid literal for int() with base 10: '10,000'
Vergüllə ayrılmış sətirləri əvəz () metodundan istifadə edərək vergülü silməklə (boş sətirlə əvəz etməklə) çevirmək olar.
print(int('10,000'.replace(',', '')))
# 10000
Rəqəmlər silsiləsi üzən nöqtəli ədədlərə çevirin:float()
Bir float() nömrələr sətirini üzən nöqtəli nömrə növünə çevirmək üçün istifadə edilə bilər.
print(float('1.23'))
print(type(float('1.23')))
# 1.23
# <class 'float'>
Tam hissəsi buraxılmış sətirlər tam hissəni 0 ilə tamamlamaqla çevrilir.
print(float('.23'))
# 0.23
Tam sətirlər də üzən nöqtəli ədədlərə çevrilir.
print(float('100'))
print(type(float('100')))
# 100.0
# <class 'float'>
İkilik, səkkizlik və onaltılıq sistemlərdəki sətirləri ədədlərə çevirir
Əgər radiks int() funksiyasının ikinci arqumenti kimi göstərilibsə, sətir onu ikilik, səkkizlik, onaltılıq və s. kimi nəzərə alaraq tam ədədə çevrilə bilər.
print(int('100', 2))
print(int('100', 8))
print(int('100', 16))
# 4
# 64
# 256
Əvvəlki nümunələrdə olduğu kimi, buraxılmışsa, ədəd onluq ədəd hesab olunur.
print(int('100', 10))
print(int('100'))
# 100
# 100
Əgər radiks 0-a təyin edilibsə, çevrilmə sətir prefiksinə əsaslanır. Simli prefikslər üçün aşağıya baxın.
0b
0B
0o
0O
0x
0X
print(int('0b100', 0))
print(int('0o100', 0))
print(int('0x100', 0))
# 4
# 64
# 256
Prefikslər və altıbucaqlı əlifbalar böyük və ya kiçik hərf ola bilər.
print(int('FF', 16))
print(int('ff', 16))
# 255
# 255
print(int('0xFF', 0))
print(int('0XFF', 0))
print(int('0xff', 0))
print(int('0Xff', 0))
# 255
# 255
# 255
# 255
İkilik, səkkizlik və onaltılıq ədədlərin və sətirlərin qarşılıqlı çevrilməsi haqqında məlumat üçün aşağıdakı məqaləyə baxın.
Eksponensial notasiyadakı sətirləri ədədi qiymətlərə çevirir
Eksponensial notasiyadakı sətirlər float() ilə birbaşa float tipinə çevrilə bilər.
print(float('1.23e-4'))
print(type(float('1.23e-4')))
# 0.000123
# <class 'float'>
print(float('1.23e4'))
print(type(float('1.23e4')))
# 12300.0
# <class 'float'>
Kiçik e hərfi də böyük hərflə yazıla bilər E.
print(float('1.23E-4'))
# 0.000123
Tam enli ərəb rəqəmləri sətirlərini rəqəmlərə çevirin
Tam enli ərəb rəqəmləri int() və ya float() vasitəsilə birbaşa rəqəmlərə çevrilə bilər.
print(int('100'))
print(type(int('100')))
# 100
# <class 'int'>
print(float('100'))
print(type(float('100')))
# 100.0
# <class 'float'>
Bununla belə, mənfi və onluq nöqtələr kimi simvollar tam enli simvollardırsa, ValueError yaradılacaq.
# print(float('ー1.23'))
# ValueError: could not convert string to float: '1.23'
Nömrələr tam genişlikli simvollar olduqda problemsiz çevrilə bilər, lakin mənfi və onluq nöqtələr yarım enli simvollardır. çevirmə tam enli simvolları yarım enli simvollarla əvəz etməklə, replace() metodundan istifadə etməklə mümkündür.
print(float('-1.23'))
# -1.23
print(float('ー1.23'.replace('ー', '-').replace('.', '.')))
# -1.23
Çin simvollarını rəqəmlərə çevirin
Unicodedata modulunda unicodedata.numeric() funksiyası tək Unicode Çin simvolunu üzən nöqtəli nömrə tipli nömrəyə çevirmək üçün istifadə edilə bilər.
Tək hərf deyilsə, xəta baş verəcək. Həmçinin, qeyri-rəqəm simvolları xətaya səbəb olacaq.
import unicodedata
print(unicodedata.numeric('五'))
print(type(unicodedata.numeric('五')))
# 5.0
# <class 'float'>
print(unicodedata.numeric('十'))
# 10.0
print(unicodedata.numeric('参'))
# 3.0
print(unicodedata.numeric('億'))
# 100000000.0
# print(unicodedata.numeric('五十'))
# TypeError: numeric() argument 1 must be a unicode character, not str
# print(unicodedata.numeric('漢'))
# ValueError: not a numeric character