Формат жана F-сап ыкмалары
Конкатенациянын кемчиликтери
- Келгиле, текст менен өзгөрмө түзөлү, анда биз көрсөтүлгөн колдонуучуга анын жеке эсеби бир нече рубль экенин билдиребиз.
- Колдонуучулар аты жана балансы менен айырмаланат. Ошондуктан, биз бул маанилерди өзүнчө өзгөрмөлөргө салышыбыз керек: бирөө аты, экинчиси орто_аам деп аталат.
- Экөө тең сап болот. Бизге ошондой эле баланстык өзгөрмө керек, ал биздин балансты сактайт.
@A@name = 'Самат'
mid_name = 'Саматович'
balance = 32.56
text = """ Урматтуу Самат Саматович сиздин жеке эсебиңиздин балансы 32.56 руб."""
print(text)@A@
@T@Урматтуу Самат Саматович сиздин жеке эсебиңиздин балансы 32.56 руб.@T@
- Көбүнчө башталгычтар төмөнкүдөй ката кетиришет - алар түздөн-түз өзгөрмөнүн атын гана жазышат, башкача айтканда, name , mid_name жана balance. Бул учурда, Python эмнени айткыңыз келгенин түшүнбөйт жана баарын сап катары карайт.
@A@name = 'Самат'
mid_name = 'Саматович'
balance = 32.56
text = """ Урматтуу name mid_name сиздин жеке эсебиңиздин балансы balance руб."""
print(text)@A@
@T@Урматтуу name mid_name сиздин жеке эсебиңиздин балансы balance руб.@T@
Чечим - 1-ыкма
- Биринчи жол, бирок эң оңой эмес жана эң айкын эмес, конкатенация деп аталат. Эске сала кетейин, комбинация сапты бириктирүү же сап кошуу. Башкача айтканда, бир чоң линиянын ордуна, биз сиз менен бир нече кичинекей сызыктарды жасай алабыз. Натыйжада көптөгөн кичинекей саптардан турган өтө татаал код
@A@name = 'Самат'
mid_name = 'Саматович'
balance = 32.56
text = """ Урматтуу""" + 'Самат' + " " + 'Самтович' + """, сиздин жеке эсебиңиздин балансы """ + '32.56' + """ руб."""
print(text)@A@
- Бизге атыбыздын жана фамилиябыздын маанисин алмаштыруу гана калды. Бул жерде биз саптарды чыныгы сандарга кошууга болбойт деген катаны алабыз
@A@name = 'Самат'
mid_name = 'Саматович'
balance = 32.56
text = """ Урматтуу""" + name + " " + mid_name + """, сиздин жеке эсебиңиздин
балансы """ + balance + """ руб."""
print(text)@A@
@E@Traceback (most recent call last):
File "C:/Users/Администратор/AppData/Local/Programs/Python/Python311/555.py", line 5, in <module>
text = """ Урматтуу""" + name + " " + mid_name + """, сиздин жеке эсебиңиздин
TypeError: can only concatenate str (not "float") to str@E@
Чечим - 2 ыкма – Метод Format
- Келгиле, format деп аталган сап ыкмасын колдонуп көрөлү. Биз аны сызыгыбыздан кийин чакырабыз жана ага үч өзгөрмөбүздү, алар биздин сапта пайда болгон тартипте өткөрөбүз. Ошондой эле саптын өзүндө, тармал кашаанын ичинде кашаадагы өзгөрмөлөрдүн иреттик сандарын көрсөтөбүз.
@A@name = 'Самат'
mid_name = 'Саматович'
balance = 32.56
text = """ Урматтуу {0} {1}, сиздин жеке эсебиңиздин
балансы {2} руб.""".format(name ,mid_name ,balance )
print(text)@A@
@T@Урматтуу Самат Саматович, сиздин жеке эсебиңиздин
балансы 32.56 руб.@T@
- Бул формада форматтоону колдонууда, эч ким сизге өзгөрмөлөрдү жерлерге өзгөртүүгө тыюу салбайт жана бул, демек, натыйжага таасирин тийгизет.
@A@name = 'Самат'
mid_name = 'Саматович'
balance = 32.56
text = """ Урматтуу {0} {1}, сиздин жеке эсебиңиздин
балансы {2} руб.""".format(name ,mid_name ,balance )
print(text)@A@
- Форматтын экинчи колдонуу учуру өзгөрмөлөрдүн аталган колдонулушу. Индекстердин ордуна өзгөрмө аттары колдонулат.
@A@name = 'Самат'
mid_name = 'Саматович'
balance = 32.56
text = """ Урматтуу {name} {mid_name}, сиздин жеке эсебиңиздин
балансы {balance} руб.""".format(mid_name=mid_name ,name=name, balance=balance )
print(text)@A@
Дал келүү толугу менен аты боюнча ишке ашат жана эгер сиз биздин калып сапта кандайдыр бир өзгөрмөлөрдү бир нече жолу колдонгуңуз келсе, анда сиз жөн гана калыптын өзүндө колдонгуңуз келген өзгөрмөлөрдү көрсөтүшүңүз керек.
- Калыптын ичиндеги ысымдарды өзүңүз тандап алганыңызга дагы көңүлүңүздөрдү бурам. Сиз аларды n, m жана b, өзгөрмөлөрүнө оңой эле азайтсаңыз болот, бул ар бир маанинин биринчи тамгасына туура келет.
@A@name = 'Самат'
mid_name = 'Саматович'
balance = 32.56
text = """ Урматтуу {n} {m}, сиздин жеке эсебиңиздин
балансы {b} руб.""".format(m=mid_name ,n=name, b=balance )
print(text)@A@
Бул форматтоо ыкмасы бириктирүүгө караганда алда канча популярдуу жана ыңгайлуу, бирок дагы эле format функциясын колдонуу биз кийинки сабакта талкуулай турган жаңы ыкмадан төмөн. Бул F-саптары деп аталат жана ал Python тилинде абдан жаңы. Эми бул форматтоонун күчтүү, түшүнүктүү, функционалдык жана ыңгайлуу жолу. Аны кантип колдонууну кийинки сабакта билебиз.
F- сабы
Бул функция питондо 3.6 версиясынан бери жеткиликтүү. Биз бул функция менен иштөөнүн негизги жолдорун талдайбыз.
Биз жөн гана сапта өзгөрмөлөрүбүздүн атын көрсөтө албайбыз, анткени питон мунун баарын текст катары кабыл алып, бул өзгөрмөлөрдүн тиешелүү аталыштарын көрсөтөт. Бул көйгөйдү чечүү үчүн сиз жана мен саптын башына f белгисин коюп, ар бир өзгөрмөнүн атын тармал кашаанын ичине алышыбыз керек.
@A@name = 'Самат'
mid_name = 'Саматович'
balance = 32.56
text = f""" Урматтуу {name} {mid_name}, сиздин жеке эсебиңиздин
балансы {balance} руб."""
print(text)@A@
@T@Урматтуу Самат Саматович, сиздин жеке эсебиңиздин
балансы 32.56 руб.@T@
- Сапты f менен префикс кылганыңызда, python аны сейрек кездешүүчү сап катары карайт жана ал ар бир тармал кашаанын мазмунун программалоо тилинин туюнтмасы катары карайт.
- Тармал кашаага өз сөзүңүздү жазсаңыз болот жана математикалык операцияларды колдонууга эч ким тыюу салбайт.
@A@name = 'Самат'
mid_name = 'Саматович'
balance = 32.56
text = f""" Урматтуу {name} {mid_name}, сиздин жеке эсебиңиздин
балансы {-balance * 2} руб."""
print(text)@A@
@T@Урматтуу Самат Саматович, сиздин жеке эсебиңиздин
балансы -65.12 руб.@T@
- Сиз объекттериңиздин бардык өзгөчөлүктөрүнөн ырахат ала аласыз. Биздин учурда, аты өзгөрмө сап болуп саналат жана биз ар бир сап төмөнкү ыкмасы бар экенин билебиз. Саптын бардык тамгаларын төмөн кылуу үчүн төмөнкү ыкманы колдонолу.
@A@name = 'Самат'
mid_name = 'Саматович'
balance = 32.56
text = f""" Урматтуу {name.lower()} {mid_name.upper()}, сиздин жеке эсебиңиздин
балансы {-balance * 2} руб."""
print(text)@A@
@T@Урматтуу самат САМАТОВИЧ, сиздин жеке эсебиңиздин
балансы -65.12 руб.@T@
- Кашанын ичинде сиз башка функцияларды да чакырсаңыз болот. Мисалы, терс санда abs() функциясын чакыра алабыз
@A@name = 'Самат'
mid_name = 'Саматович'
balance = 32.56
text = f""" Урматтуу {name} {mid_name}, сиздин жеке эсебиңиздин
балансы {abs(-123)}руб."""
print(text)@A@
@T@Урматтуу Самат Саматович, сиздин жеке эсебиңиздин
балансы 123руб.@T@
Өзгөрмө чыгаруу
Эми биз f-строки жардамы менен өзгөрмөнүн атын жана анын маанисин кантип көрсөтүүнү билебиз. Төмөндө мисалды көрө аласыз:
@A@x = 14
y = 17
print(f"x = {x},y = {y}")@A@
@T@x = 14, y = 17@T@
Бирок Python 3.8Python 3.8ден бери f-строк функциясы өзгөрмөлөрдүн аттарын жана алардын баалуулуктарын көрсөтүүнүн жаңы мүмкүнчүлүгү менен толукталды. Муну кантип кыла аларыңызды көрүңүз:
@A@x = 11
y = 98
print(f"{x}, {y=}")#бош орундар эске алынат
print(f"{x =}, {y= }")@A@
@T@x=11, y=98
x =11, y= 98@T@