str сан жолын int санына түрлендіру, Python тілінде float

Іскерлік

Python тілінде сандар жолын сандық мәндерге түрлендіргіңіз келсе, бүтін сандарға түрлендіру үшін int() және өзгермелі нүктелі сандарға түрлендіру үшін float() пайдаланыңыз.

Төменде үлгі кодымен бірге мұнда түсіндіріледі.

  • Негізгі қолдану
    • Сандық жолдарды бүтін сандарға түрлендіру:int()
    • Сандар тізбегін жылжымалы нүктелі сандарға түрлендіру:float()
  • Арнайы пайдалану
    • Екілік, сегіздік және он алтылық санау жүйесіндегі жолдарды сандарға түрлендіреді
    • Көрсеткіштік белгілердегі жолдарды сандық мәндерге түрлендіреді
    • Толық енді араб цифрларының жолдарын сандарға түрлендіру
    • Қытай таңбаларының жолын сандарға түрлендіру

Сандық мәнді жолға түрлендіру үшін str() пайдаланыңыз.

Сандарды немесе жолдарды әртүрлі пішімдерге түрлендіру қажет болса, format() функциясын немесе str.format() жол әдісін пайдаланыңыз. Содан кейін 0-толтыру, екілік, сегіздік, он алтылық, көрсеткіштік белгілерге және т.б. түрлендіруге болады. Толық ақпаратты келесі мақаладан қараңыз.

Ол сонымен қатар жолдар тізімін сандар тізіміне түрлендіре алады. Мәліметтер алу үшін келесі мақаланы қараңыз.

Сандық жолдарды бүтін сандарға түрлендіру:int()

Сандар жолын бүтін түрдегі сандарға түрлендіру үшін int() функциясын пайдалануға болады.

print(int('100'))
print(type(int('100')))
# 100
# <class 'int'>

Ондық бөлшектер, соның ішінде ондық нүктелер және үтірмен бөлінген жолдар ValueError нәтижесіне әкеледі.

# 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'

Үтірмен бөлінген жолдарды ауыстыру() әдісі арқылы үтірді алып тастау (оны бос жолға ауыстыру) арқылы түрлендіруге болады.

print(int('10,000'.replace(',', '')))
# 10000

Сандар тізбегін жылжымалы нүктелі сандарға түрлендіру:float()

float() функциясын сандар жолын жылжымалы нүктелі сан түріне түрлендіру үшін пайдалануға болады.

print(float('1.23'))
print(type(float('1.23')))
# 1.23
# <class 'float'>

Бүтін бөлігі түсірілген жолдар бүтін бөлікті 0-мен толықтыру арқылы түрлендіріледі.

print(float('.23'))
# 0.23

Бүтін сандар да өзгермелі нүктелі сандарға түрлендіріледі.

print(float('100'))
print(type(float('100')))
# 100.0
# <class 'float'>

Екілік, сегіздік және он алтылық санау жүйесіндегі жолдарды сандарға түрлендіреді

Егер радикс int() функциясының екінші аргументі ретінде көрсетілсе, жолды екілік, сегіздік, он алтылық және т.б. ретінде қарастыру арқылы бүтін int санына түрлендіруге болады.

print(int('100', 2))
print(int('100', 8))
print(int('100', 16))
# 4
# 64
# 256

Алдыңғы мысалдардағыдай, түсірілсе, сан ондық сан болып есептеледі.

print(int('100', 10))
print(int('100'))
# 100
# 100

Егер радикс 0 мәніне орнатылса, түрлендіру жол префиксіне негізделеді. Жол префикстерін төменде қараңыз.

  • 0b
    • 0B
  • 0o
    • 0O
  • 0x
    • 0X
print(int('0b100', 0))
print(int('0o100', 0))
print(int('0x100', 0))
# 4
# 64
# 256

Префикстер мен он алтылық алфавиттер бас әріптер немесе кіші әріптер болуы мүмкін.

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

Екілік, сегіздік және он алтылық сандар мен жолдарды өзара түрлендіру туралы ақпаратты келесі мақаладан қараңыз.

Көрсеткіштік белгілердегі жолдарды сандық мәндерге түрлендіреді

Экспоненциалды белгілеудегі жолдарды float() арқылы тікелей float түріне түрлендіруге болады.

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'>

Кіші e әріптері бас әріптермен де жазылуы мүмкін.

print(float('1.23E-4'))
# 0.000123

Толық енді араб цифрларының жолдарын сандарға түрлендіру

Толық ені бар араб сандарын тікелей сандарға int() немесе float() арқылы түрлендіруге болады.

print(int('100'))
print(type(int('100')))
# 100
# <class 'int'>

print(float('100'))
print(type(float('100')))
# 100.0
# <class 'float'>

Дегенмен, минус және ондық нүктелер сияқты таңбалар толық ен таңбалары болса, ValueError жасалады.

# print(float('ー1.23'))
# ValueError: could not convert string to float: '1.23'

Сандарды еш қиындықсыз түрлендіруге болады, егер олар толық ен таңбалары болса, бірақ минус және ондық нүктелер жарты ен таңбалар болып табылады. толық енді таңбаларды ауыстыру() әдісі арқылы жарты ен таңбалармен ауыстыру арқылы түрлендіру мүмкін болады.

print(float('-1.23'))
# -1.23

print(float('ー1.23'.replace('ー', '-').replace('.', '.')))
# -1.23

Қытай таңбаларының жолын сандарға түрлендіру

Unicodedata модуліндегі unicodedata.numeric() функциясын жалғыз Юникод қытай таңбасын өзгермелі нүктелі сан түріндегі санға түрлендіру үшін пайдалануға болады.

Егер бұл бір әріп болмаса, қате пайда болады. Сондай-ақ, сандық емес таңбалар қатені тудырады.

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
Copied title and URL