Дараах контентууд нь жишээ кодын хамт Python хэл дээр мөр (str) болон тоонуудын жагсаалт (int, float)-ыг хооронд нь хэрхэн хөрвүүлэхийг тайлбарласан болно.
- Тоонуудын жагсаалтыг мөрийн жагсаалт болгон хөрвүүлнэ
- Тоог аравтын бутархай руу хөрвүүлэх
- Тоон утгыг хоёртын, наймтын, арван зургаатын тоон мөр болгон хувиргадаг
- Тоон утгыг экспоненциал тэмдэглэгээнд мөр болгон хөрвүүлнэ
- Мөрний жагсаалтыг тоонуудын жагсаалт болгон хөрвүүлнэ
- Аравтын мөрийг тоон руу хөрвүүлэх
- Хоёртын, наймтын, арван зургаатын тоон мөрүүдийг тоо болгон хувиргадаг
- Экспоненциал тэмдэглэгээний мөрүүдийг тоон утга руу хөрвүүлнэ
- Зөвхөн тоо руу хөрвүүлэх боломжтой мөрүүдийг хөрвүүл
Жагсаалтаас шинэ жагсаалт үүсгэх үед жагсаалтын ойлголтууд нь гогцооноос илүү бичихэд хялбар байдаг. Энэ нийтлэл дэх жишээ код нь мөн жагсаалтын ойлголтыг ашигладаг. Жагсаалтын талаарх дэлгэрэнгүй мэдээллийг дараах нийтлэлээс үзнэ үү.
Жагсаалт нь өөр өөр төрлийн өгөгдлийг хадгалах боломжтой бөгөөд массиваас эрс ялгаатай гэдгийг анхаарна уу. Дараах тохиолдолд массив (стандарт номын сан) эсвэл NumPy ашиглана уу.
- Би санах ойн хэмжээ, санах ойн хаяг шаарддаг процессуудыг зохицуулахыг хүсч байна.
- Том өгөгдлийн багцыг тоон боловсруулалтад зориулсан массивуудыг зохицуулахыг хүсч байна гэх мэт.
Тоонуудын жагсаалтыг мөрийн жагсаалт болгон хөрвүүлнэ
Тоог аравтын бутархай руу хөрвүүлэх
str()-ийг ашиглан тооноос мөр рүү хөрвүүлнэ.
Python хэл дээр тоо нь экспоненциал, арван зургаатын тоо, хоёртын тоо (16-тын болон хоёртын тэмдэглэгээ) зэрэг янз бүрийн форматаар илэрхийлэгдэж болно. str() хөрвүүлснээр ердийн аравтын тэмдэглэгээнд мөр гарч ирдэг.
Цифрүүдийн тооноос хамааран экспоненциал тэмдэглэгээг автоматаар ашиглаж болно.
l_n = [-0.5, 0, 1.0, 100, 1.2e-2, 0xff, 0b11]
l_n_str = [str(n) for n in l_n]
print(l_n_str)
# ['-0.5', '0', '1.0', '100', '0.012', '255', '3']
Тоон утгыг хоёртын, наймтын, арван зургаатын тоон мөр болгон хувиргадаг
Хоёртын, наймтын эсвэл арван зургаатын тооллын (хоёртын тоолол, наймтын тэмдэглэгээ эсвэл арван зургаатын тэмдэглэгээ) мөр болгон хөрвүүлэхийн тулд дараах аргуудыг ашиглах боломжтой.
bin()
oct()
hex()
format()
str.format()
Format() функцийн тусламжтайгаар тэгийг бөглөж, цифрүүдийг тохируулах боломжтой.
l_i = [0, 64, 128, 192, 256]
l_i_hex1 = [hex(i) for i in l_i]
print(l_i_hex1)
# ['0x0', '0x40', '0x80', '0xc0', '0x100']
l_i_hex2 = [format(i, '04x') for i in l_i]
print(l_i_hex2)
# ['0000', '0040', '0080', '00c0', '0100']
l_i_hex3 = [format(i, '#06x') for i in l_i]
print(l_i_hex3)
# ['0x0000', '0x0040', '0x0080', '0x00c0', '0x0100']
Тоон утгыг экспоненциал тэмдэглэгээнд мөр болгон хөрвүүлнэ
Дээр дурдсанчлан зарим тохиолдлууд цифрүүдийн тооноос хамааран автоматаар экспоненциал тэмдэглэгээнд байж болно. Гэсэн хэдий ч экспоненциал тэмдэглэгээнд үргэлж мөр болгон хөрвүүлэхийн тулд дараах зүйлсийн аль нэгийг ашиглана уу
format()
str.format()
Format() функц болон стр.format() мөрийн аргын талаарх дэлгэрэнгүй мэдээллийг дараах нийтлэлээс үзнэ үү.
Mantissa хэсгийн цифрүүдийн тоог зааж өгч болно. Хэрэв аргумент болгон том Е үсгийг ашигласан бол гаралтын мөр нь мөн том Е үсэг болно.
l_f = [0.0001, 123.456, 123400000]
l_f_e1 = [format(f, 'e') for f in l_f]
print(l_f_e1)
# ['1.000000e-04', '1.234560e+02', '1.234000e+08']
l_f_e2 = [format(f, '.3E') for f in l_f]
print(l_f_e2)
# ['1.000E-04', '1.235E+02', '1.234E+08']
Мөрний жагсаалтыг тоонуудын жагсаалт болгон хөрвүүлнэ
Аравтын мөрийг тоон руу хөрвүүлэх
Мөрөөс тоо руу хөрвүүлэхийн тулд int() эсвэл float() ашиглана уу.
int() нь бүхэл тоо руу хөрвүүлэх, float() нь хөвөгч цэгт хөрвүүлэх явдал юм.
float()-д бүхэл хэсгийг орхисон мөрүүдийг бүхэл хэсэгт 0-ээр нөхдөг.
l_si = ['-10', '0', '100']
l_si_i = [int(s) for s in l_si]
print(l_si_i)
# [-10, 0, 100]
l_sf = ['.123', '1.23', '123']
l_sf_f = [float(s) for s in l_sf]
print(l_sf_f)
# [0.123, 1.23, 123.0]
Хоёртын, наймтын, арван зургаатын тоон мөрүүдийг тоо болгон хувиргадаг
int()-ийн хоёрдахь аргумент нь радикс байж болно: хоёртын хувьд 2, наймтын хувьд 8, арван зургаатын хувьд 16 нь мөрийг тоо болгон хувиргадаг.
Хэрэв 0 гэж заасан бол дараах угтвар тэмдэгт мөр бүрийг бүхэл тоо болгон хувиргана.
0b
- хоёртын цифрүүд
0o
- наймт
0x
- арван зургаатын тоо
l_sb = ['0011', '0101', '1111']
l_sb_i = [int(s, 2) for s in l_sb]
print(l_sb_i)
# [3, 5, 15]
l_sbox = ['100', '0b100', '0o77', '0xff']
l_sbox_i = [int(s, 0) for s in l_sbox]
print(l_sbox_i)
# [100, 4, 63, 255]
Экспоненциал тэмдэглэгээний мөрүүдийг тоон утга руу хөрвүүлнэ
Экспоненциал тэмдэглэгээнд байгаа мөрүүдийг тусгай тодорхойлолт шаардлагагүйгээр шууд float() ашиглан хөрвүүлж болно.
l_se = ['1.23e3', '0.123e-1', '123']
l_se_f = [float(s) for s in l_se]
print(l_se_f)
# [1230.0, 0.0123, 123.0]
Зөвхөн тоо руу хөрвүүлэх боломжтой мөрүүдийг хөрвүүл
Тоо руу хөрвүүлэх боломжгүй мөрийг int() эсвэл float() руу дамжуулснаар ValueError гарч ирнэ.
Хэрэв алдаа гарсан тохиолдолд худал буцаах шинэ функц тодорхойлогдсон бол зөвхөн хөрвүүлэх боломжтой элементүүдийг тоо болгон хувиргаж, жагсаалтын элемент болно.
def is_int(s):
try:
int(s)
except ValueError:
return False
else:
return True
def is_float(s):
try:
float(s)
except ValueError:
return False
else:
return True
l_multi = ['-100', '100', '1.23', '1.23e2', 'one']
l_multi_i = [int(s) for s in l_multi if is_int(s)]
print(l_multi_i)
# [-100, 100]
l_multi_f = [float(s) for s in l_multi if is_float(s)]
print(l_multi_f)
# [-100.0, 100.0, 1.23, 123.0]