Friday, July 3, 2020

No7: Пайтон хэлний Print командын хэлбэржүүлэлт

"""

String Formatting
    Тэмдэгтийг дараах байдлаар хэлбэржүүлж болно.
    player = 'Болд'
    points = 33
    'Өнгөрсөн тоглолтонд ' + player + ' гэдэг тоглогч ' + str(points) + ' оноо авсан.'  # залгах
            f'Өнгөрсөн тоглолтонд {player} гэдэг тоглогч {points} оноо авсан.'          # string formatting
    Тэмдэгт мөрийг дараах 3 хэлбэрээр хэлбэржүүлнэ.
    Хуучин Python 2 - ийн % ашиглан,
    .format() функцийг ашиглан,
    Шинэ Python 3.6 - ийн f-strings ашиглаж.
"""

"""
Formatting with placeholders
    % оператор ашиглан хэлбэржүүлэх.
"""

print("Тэмдэгт %s орно." % 'энд')
# Тэмдэгт энд орно.
print("Тэмдэгт %s орно. Мөн %s орно" % ('энд', 'тэнд'))
#Тэмдэгт энд орно. Мөн тэнд орно


"""
%s болон %r нь str() болон repr() функцийг тус тус ашиглан дараах байдлаар хэлбэржүүлнэ.
"""
print('Түүний нэрийг %s гэдэг' % 'Батаа')
# Түүний нэрийг Батаа гэдэг
print('Түүний нэрийг %r гэдэг.' % 'Батаа')
# Түүний нэрийг 'Батаа' гэдэг.


"""
\t нь тэмдэгт мөр рүү tab оруулна.
"""
print('Монгол хүн %s' % 'Монголын \t баялаг')
# Монгол хүн Монголын баялаг
print('Монгол хүн %r ' % 'Монголын \t баялаг')
# Монгол хүн 'Монголын \t баялаг'


"""
%s нь шууд тэмдэгт руу хөрвүүлэх бол %d нь бүхэл тоо руу ойролцоолж хөрвүүлнэ
"""
print('Би өнөөдөр %s литр айраг уусан.' %3.75)
# Би өнөөдөр 3.75 литр айраг уусан.
print('Би өнөөдөр %d литр айраг уусан.' %3.75)
# Би өнөөдөр 3 литр айраг уусан.


"""
Бутархай тоог %5.2f форматаар хэлбэржүүлэв. Энд 5 нь хэлбэржиж буй тоо хамгийн багадаа агуулах тэмдэгтийн хэмжээг зааж байгаа бол .2f нь бутархайн оронг илтгэнэ.
"""
print('Бутархай тоо, 5.2f: 13.144: %5.2f' %(13.144))
# Бутархай тоо: 13.14
print('Бутархай тоо, 1.0f: 13.144: %1.0f' %(13.144))
# Бутархай тоо: 13
print('Бутархай тоо, 1.5f: 13.144: %1.5f' %(13.144))
# Бутархай тоо: 13.14400
print('Бутархай тоо, 8.3f: 13.144: %8.3f' %(13.144))
# Бутархай тоо:   13.144

print('Эхнийх: %s, Хоёр дахь: %5.2f, Гурав дахь: %r' % ('hi!', 3.1415, 'bye!'))
# Эхнийх: hi!, Хоёр дахь:  3.14, Гурав дахь: 'bye!'


"""
Formatting with the .format() method
    .format() функц ашиглан хэлбэржүүлэх.
"""
print('Сагсан бөмбөгийн {}'.format('хичээл'))
# Сагсан бөмбөгийн хичээл
print('{} байна уу'.format('Сайн'))
# Сайн байна уу
print('.format() функц {} хэлбэржүүлэх'.format('ашиглан'))
# .format() функц ашиглан хэлбэржүүлэх.

# 1. Байрлалын индекс ашиглан хэлбэржүүлэх:
print('Python {2} {1} {0}'.format('хэл','ашиглан','кодчилох'))
# Python кодчилох ашиглан хэл
print('Сайн, {1} {0} {2}'.format('байна','Сайн','уу'))
# Сайн байна уу

# 2. Түлхүүр үгээр хэлбэржүүлэх:
print('Нэгдүгээрх: {a}, Хоёрдугаарх: {b}, Гуравдугаарх: {c}'.format(a=1, b='Two', c=12.3))
# Нэгдүгээрх: 1, Хоёрдугаарх: Two, Гуравдугаарх: 12.3

# 3. Түлхүүр үгээр дахин ашиглах
print('Батын өндөр %s см, биеийн жин %s кг.' %('190','65'))
#Батын өндөр 190 см, биеийн жин 65 кг.
# vs.
print('Батын өндөр {p} см, биеийн жин {p} кг.'.format(p=190))
#Батын өндөр 190 см, биеийн жин 190 кг.


# print("-----------------Alignment, padding--------------------")
"""
Alignment, padding
{} ашиглан зайн хэмжээ тохируулах, боломжтой.
"""
print('{0:8} | {1:9}'.format('Ногоо', 'Тоо ширхэг'))
print('{0:8} | {1:9}'.format('Лууван', 3))
print('{0:8} | {1:9}'.format('Төмс', 10))
# Ногоо    | Тоо ширхэг
# Лууван   |         3
# Төмс     |        10

# .format() default - оор текстийг зүүн тийш, тоог баруун тийш тэгшилнэ. < - зүүн тийш, ^ - гол дунд, > - баруун тийш.
print('{0:<8} | {1:^8} | {2:>8}'.format('Зүүн','Дунд','Баруун'))
print('{0:<8} | {1:^8} | {2:>8}'.format(11,22,33))
# Зүүн     |   Дунд   |   Баруун
# 11       |    22    |       33

# Padding буюу дүүргэх тэмдэгт оруулж болно.
print('{0:=<8} | {1:-^8} | {2:.>8}'.format('Зүүн','Дунд','Баруун'))
print('{0:=<8} | {1:-^8} | {2:.>8}'.format(11,22,33))
# Зүүн==== | --Дунд-- | ..Баруун
# 11====== | ---22--- | ......33

# Бутархай тоог хэлбэржүүлэх нь % ашиглан хэлбэржүүлэхтэй төстэй.
print('Хамгийн багадаа 10 тэмдэгттэй, 2 оронгийн бутархайтай тоо:%10.2f' % 13.579)
print('Хамгийн багадаа 10 тэмдэгттэй, 2 оронгийн бутархайтай тоо:{0:10.2f}'.format(13.579))
# амгийн багадаа 10 тэмдэгттэй, 2 оронгийн бутархайтай тоо:     13.58
# Хамгийн багадаа 10 тэмдэгттэй, 2 оронгийн бутархайтай тоо:     13.58


"""
Formatting with (f-strings)
"""
# Python 3.6 дээр анх танилцуулагдсан тэмдэгт мөрийг шинээр хэлбэржүүлэх боломж.
name = 'Болдоо'
print(f"Түүний нэрийг {name} гэдэг.")
# Түүний нэрийг Болдоо гэдэг.

#Текст хэлбэрээр гаргахдаа !r ашиглана.
print(f"Түүний нэрийг {name!r} гэдэг")
# Түүний нэрийг 'Болдоо' гэдэг


# Бутархай тоог {утга:{урт}.{оронгийн нарийвчлалтай урт}} байдлаар хэлбэржүүлнэ.
num = 23.45678
print("10 тэмдэгтийн урттай 4 орны нарийвчлалтай бутархай тоо:{0:10.4f}".format(num))
# 10 тэмдэгтийн урттай 4 орны нарийвчлалтай бутархай тоо:   23.4568
print(f"10 тэмдэгтийн урттай 4 орны нарийвчлалтай бутархай тоо:{num:{10}.{6}}")
# 10 тэмдэгтийн урттай 4 орны нарийвчлалтай бутархай тоо:   23.4568

# Оронгийн нарийвчлалтай урт нь бутархай тооны бүх уртыг илтгэнэ.
num = 23.45
print("10 тэмдэгтийн урттай 4 орны нарийвчлалтай бутархай тоо:{0:10.4f}".format(num))
# 10 тэмдэгтийн урттай 4 орны нарийвчлалтай бутархай тоо:   23.4500
print(f"10 тэмдэгтийн урттай 4 орны нарийвчлалтай бутархай тоо:{num:{10}.{6}}")
# 10 тэмдэгтийн урттай 4 орны нарийвчлалтай бутархай тоо:     23.45

# Бутархайн нарийвчлалыг тусдаа тодорхойлохыг хүсвэл дараах байдлаар ашиглана.
num = 23.45
print("10 тэмдэгтийн урттай 4 орны нарийвчлалтай бутархай тоо:{0:10.4f}".format(num))
# 10 тэмдэгтийн урттай 4 орны нарийвчлалтай бутархай тоо:   23.4500
print(f"10 тэмдэгтийн урттай 4 орны нарийвчлалтай бутархай тоо:{num:10.4f}")

# 10 тэмдэгтийн урттай 4 орны нарийвчлалтай бутархай тоо:   23.4500

No comments:

Post a Comment