Хэрэв та Python-д тоонуудын мөрийг тоон утга руу хөрвүүлэхийг хүсвэл бүхэл тоо руу хөрвүүлэхийн тулд int(), хөвөгч цэгт хөрвүүлэхийн тулд float()-ыг ашиглана уу.
Дараахыг жишээ кодын хамт энд тайлбарлав.
- Үндсэн хэрэглээ
- Тоон мөрийг бүхэл тоо болгон хөрвүүлэх:
int()
- Тоонуудын мөрийг хөвөгч цэгт хөрвүүлэх:
float()
- Тоон мөрийг бүхэл тоо болгон хөрвүүлэх:
- Тусгай хэрэглээ
- Хоёртын, наймтын, арван зургаатын тооллын тэмдэгтийн мөрүүдийг тоо болгон хувиргана
- Экспоненциал тэмдэглэгээний мөрүүдийг тоон утга руу хөрвүүлнэ
- Бүрэн өргөнтэй араб тоон мөрүүдийг тоо болгон хөрвүүлэх
- Хятад үсгийн мөрийг тоо болгон хөрвүүлэх
Тоон утгыг мөр болгон хөрвүүлэхийн тулд str()-г ашиглана уу.
Хэрэв та тоо эсвэл мөрийг янз бүрийн формат руу хөрвүүлэхийг хүсвэл format() функц эсвэл str.format() мөрийн аргыг ашиглана уу. Дараа нь та 0 дүүргэлт, хоёртын, наймтын, арван арвантын тоо, экспоненциал тэмдэглэгээ гэх мэт хэлбэрт хөрвүүлэх боломжтой. Дэлгэрэнгүйг дараах нийтлэлээс үзнэ үү.
Мөн мөрүүдийн жагсаалтыг тоонуудын жагсаалт болгон хувиргаж болно. Дэлгэрэнгүйг дараах нийтлэлээс үзнэ үү.
- Тоон мөрийг бүхэл тоо болгон хөрвүүлэх:int()
- Тоонуудын мөрийг хөвөгч цэгт хөрвүүлэх:float()
- Хоёртын, наймтын, арван зургаатын тооллын тэмдэгтийн мөрүүдийг тоо болгон хувиргана
- Экспоненциал тэмдэглэгээний мөрүүдийг тоон утга руу хөрвүүлнэ
- Бүрэн өргөнтэй араб тоон мөрүүдийг тоо болгон хөрвүүлэх
- Хятад үсгийн мөрийг тоо болгон хөрвүүлэх
Тоон мөрийг бүхэл тоо болгон хөрвүүлэх: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'
Таслалаар тусгаарлагдсан мөрүүдийг replace() аргыг ашиглан таслалыг арилгах (хоосон тэмдэгт мөрөөр солих) замаар хөрвүүлж болно.
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() ашиглан хөвөгч төрөл рүү шууд хөрвүүлж болно.
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