МОДУЛЬДЕР
Модуль құруда .py кеңейтілімі бар файл керек, сол арқылы модульдің пайда болғанын біле аламыз. Файлдың атауы модульдің атауы болады. Осы файлдың ішінде бір немесе бірнеше функцияны анықтау керек.
Программаны құрып, атауын STEM.py деп, сырқы модульдермен қосамыз. Ол үшін STEM.py файлының қасына bilim.py жаңа файлын құрамыз.
Әдетте, Python интерпретаторы модульдерді белгілі бір стандартты жолдар бойынша іздейді, олардың бірі — негізгі орындалатын скрипт орналасқан бума. Сондықтан, интерпретатор bilim.py модулін дұрыс анықтауы үшін екі файлды да бір жоба ішінде орналастырады.
Тиісінше, модуль bilim деп аталады. Онда келесі кодты анықтайық:
hello = «Salem alem»
def print_bilim(text):
print(f»Bilim: {text}»)
Мұнда hello айнымалысы және print_bilim функциясы анықталған, ол параметр ретінде кейбір мәтінді алады және оны консольге шығарады.
Программаның негізгі файлында — STEM.py біз бұл модульді қолданамыз:
import bilim # bilim модулін қосамыз
# salem айнымалысын шығарамыз
print(bilim.hello) # salem
# print_bilim функциясын шақыртамыз
bilim.print_bilim(«Zhumysty bastaiyk») #Bilim: Zhumysty bastaiyk
Модульді пайдалану үшін оны import операторы арқылы импорттау қажет, содан кейін модульдің атауы көрсетіледі: bilim.функция(). Модульдің функционалын пайдалану үшін оның атау кеңістігін алуымыз қажет. Әдепкі бойынша, ол модульдің атауымен бірдей болады, яғни біздің жағдайда bilim деп аталады.
Мысалы, bilim модулінен print_bilim () функциясына жүгіну:
bilim.print_bilim(«Zhumysty bastaiyk»)
Осыдан кейін біз негізгі сценарийді STEM.py іске қоса аламыз, және ол bilim.py модулін пайдаланады.
Модуль атауы
Жоғарыдағы мысалда негізгі STEM.py модулі bilim.py модулін пайдаланады. STEM.py модулі іске қосылған кезде, программа барлық қажетті әрекеттерді орындайды. Алайда, егер біз bilim.py модулін жеке өздігінен іске қосатын болсақ, консольде ешқандай нәтиже көрмейміз. Себебі bilim модулі тек функция мен айнымалыны анықтайды және басқа ешқандай әрекет орындамайды. Бірақ біз bilim.py модулін әрі өздігінен пайдалануға, әрі басқа модульдерге қосуға мүмкіндік бере аламыз.
Модуль орындалған кезде, орындау ортасы оның атын анықтап, оны __name__ деген ғаламдық айнымалыға тағайындайды (екі жағында екі астыңғы сызық бар). Егер модуль тікелей іске қосылса, онда оның аты __main__ болады (сондай-ақ екі жағында екі астыңғы сызық бар). Егер модуль басқа модульде пайдаланылса, онда орындалу сәтінде оның аты файлдың кеңейтімсіз атауына тең болады. Біз бұл мүмкіндікті пайдалана аламыз. Енді bilim.py файлының мазмұнын өзгертейік:
hello = «salem»
def print_bilim(text):
print(f»Bilim: {text}»)
def main():
print_bilim(hello)
if __name__ == «__main__»:
main()
Бұл жағдайда bilim.py модуліне оның функционалдығын тестілеу үшін main функциясы қосылды. Енді біз bilim.py файлын жеке өз алдына іске қосып, кодты тексере аламыз.
Ескерту! main функциясының шақырылуы:
if __name__ == «__main__»:
main()
__name__ айнымалысы модульдің атын көрсетеді. Тікелей іске қосылатын негізгі модуль үшін бұл айнымалының мәні әрқашан __main__ болады, файлдың атауына қарамастан.
Сондықтан, егер біз bilim.py скриптін жеке өз алдына іске қосатын болсақ, Python __name__ айнымалысына __main__ мәнін тағайындайды. Одан кейін, if шартында бұл мән тексеріліп, bilim.py файлының ішіндегі main функциясы шақырылады.
Random модулі кездейсоқ сандардың генерациясын басқарады. Оның негізгі функциялары:
- random (): 0.0-ден 1.0-ге дейінгі кездейсоқ санды жасайды
- randint (): белгілі бір ауқымнан кездейсоқ санды қайтарады
- randrange (): белгілі бір сандар жиынтығынан кездейсоқ санды қайтарады
Мысалы, random() функциясы 0.0-ден 1.0-ге дейінгі аралықта кездейсоқ (floating-point) сан қайтарады. Егер бізге үлкенірек диапазонда, мысалы, 0-ден 50-ге дейінгі кездейсоқ сан қажет болса, онда random() функциясының нәтижесін 50-ге көбейтуге болады.
import random
number = random.random() # 0.0 ден 1.0 дейін
print(number)
number = random.random() * 50 # 0.0 ден 50.0 дейін
print(number)
Python-ның кіріктірілген math модулі математикалық, тригонометриялық және логарифмдік операцияларды орындауға арналған бірқатар функцияларды ұсынады.
Модульдің негізгі функциялары:
pow(num, power): | num санын power дәрежесіне көтеру |
sqrt(num): | num санының квадрат түбірі |
ceil(num): | санды ең жақын бүтінге дейін дөңгелектеу |
floor(num): | санды ең кіші бүтінге дейін дөңгелектеу |
factorial(num): | сан факториалы |
cos(rad): | радиандағы бұрыштың косинусы |
sin(rad): | радиандағы бұрыштың синусы |
tan(rad): | радиандағы бұрыштың тангенсі |
acos(rad): | радиандағы бұрыштың арккосинусы |
asin(rad): | радиандағы бұрыштың арксинусы |
atan(rad): | радиандағы бұрыштың арктангенсі |
log(n, base): | base негізі бойынша N санының логарифмі |
log10(n): | N санының ондық логарифмі |
Тапсырмалар
- Кездейсоқ сандарды қалай анықтауға болады?
Шарт: Бұл тапсырмада кездейсоқ сандарды құру үшін random модулін пайдалану қажет. Кездейсоқ сандар статистикада, модельдеуде, программалауды тестілеуде және шифрлауда кеңінен қолданылады.
Программа пайдаланушыдан диапазон шекараларын минималды (min) және максималды (max) мәндер сұрап, содан кейін осы диапазондағы кездейсоқ санды шығаруы керек.
STEM: математика, статистика
Енгізу мәліметтері | Шығару мәліметтері |
min=56 max=127 | Кез келген сан: |
- Санның факториалын қалай табуға болады?
Шарт: Қолданушы санды сұрайтын және кіріктірілген math модулін пайдаланып оның факториалын есептейтін бағдарлама жазу керек. Бұл факториалды алгоритмді қолмен енгізбестен есептеуді тиімді орындауға мүмкіндік береді.
Факториал — бірден бастап n натурал санына дейінгі барлық натурал сандардың көбейтіндісі, яғни 1·2·3·…·n. Ол n! деп белгіленеді. n-нің үлкен мәндерінде Факториалдың жуық шамасы Стирлинг формуласы арқылы беріледі.
n~
STEM: математика, программирование
Енгізу мәліметтері | Шығару мәліметтері |
n=12! | 479001600 |
n=14! | 87178291200 |
- Ұшақ қанатының көтерілуін қалай есептеуге болады?
Шарт: Ұшақтың қанатын көтеруді есептеу үшін numpy модулін пайдаланыңыз. Қанатты көтеру келесі формула бойынша есептеледі:
Мұндағы:
L – Ньютонның көтеру механизмі,
p – ауаның тығыздығы ,
υ – ауаның жылдамдығы ,
S – қанаттың ауданы ,
— көтеру коэффициенті.
STEM: математика, физика
№ | Енгізу мәліметтері | Шығару мәліметтері |
p=1.225 υ=100 S=20 =1.2 | L=122500 |
- pН және химиялық құрамы бойынша судың ластануын қалай талдауға болады?
Шарт: Программа pandas модулін пайдаланып, судың сапасы туралы деректерді файлдан жүктейді text.txt. Негізгі параметрлер, мысалы, pH деңгейі, ластаушы заттардың концентрациясы талданып, стандарттарға сүйене отырып, судың таза, орташа ластанған немесе қауіпті екенін анықтайтын программа жазыңыз.
pH (қышқылдары) | |
<6.4 | Қышқыл су (қышқылдармен, шахта ағындарымен ластануы мүмкін) |
6.5 – 8.5 | Қалыпты РН (таза су) |
8.6> | Сілтілі су (өнеркәсіптік ағындарды, артық тұздарды көрсетуі мүмкін) |
STEM: химия, программирование
Енгізу мәліметтері | Шығару мәліметтері |
5.3 | Қышқыл су |
7.7 | Қалыпты РН |
- Радиоактивті ыдырау заңын қолдана отырып, артефактінің жасын қалай есептеуге болады?
Шарт: Радиокөміртекті талдау арқылы артефакт жасын есептеу үшін math модулін пайдаланыңыз.
Радиокөміртекті талдау – 14С радиоактивті изотоптың материал құрамын өлшеу арқылы биологиялық шыққан заттардың, қалдықтардың және материалдардың абсолютті жасын анықтау үшін қолданылатын радиоизотоптық танысу түрі.
Формула үлгідегі қарбоң-14 мөлшерінің бастапқы мөлшеріне қатысты қаншалықты қалғанын ескере отырып, жартылай ыдырау кезеңін қолданып, жасын есептейді.
Мұндағы:
t — артефакт жасы,
– (қарбоң-14) изотопының жартылай ыдырау кезеңі, ол 5730 жылға тең.
— Артефактағы қалған (қарбоң-14) мөлшерінің бастапқы мөлшеріне қатысты,
In – натуралды логарифм
STEM: тарих, математика
Енгізу мәліметтері | Шығару мәліметтері |
=5730 — =0.75 | t=2378 жас |
🎓 STEM тұрғысынан бұл жоба не үйретеді?
STEM құрамдасы | Қолдану мысалы |
S – Science | Радиокөміртекті талдау арқылы артефактінің жасын есептеу (тарих, физика), pH деңгейін талдау арқылы судың сапасын бағалау (экология, химия). |
T – Technology | Python тілінде модуль құру дың конструкцияларын қолдану, кіріктірілген math, random, pandas, numpy модульдерін пайдалану арқылы бағдарламалық архитектураны дамыту. |
E – Engineering | Модульдерді пайдаланып күрделі есептеу жүйелерін ұйымдастыру, бірлескен код жазу арқылы программаларды тестілеу мен басқаруды тиімді ұйымдастыру. |
M – Math | Кездейсоқ сандар генерациясы мен статистикалық модельдеу, формулалар бойынша нақты мәндер есептеу. |
Бақылау сұрақтары:
- Python- да модульді құрудың алгоритмі қандай?
- Модульді пайдалану шарттары қандай?
- Тікелей іске қосылған және басқа модульден пайдаланылған модулдердің айырмашылығы қандай?
- random() модулінің негізгі функциялары қандай?