Главная страница

цикл. 3 дәріс - Циклдер және Функциялар (1). Python тілінде программалар ру


Скачать 5.93 Mb.
НазваниеPython тілінде программалар ру
Дата25.03.2023
Размер5.93 Mb.
Формат файлаpptx
Имя файла3 дәріс - Циклдер және Функциялар (1).pptx
ТипПрограмма
#1013407

Python тілінде программалар құру


3.1 – дәріс Циклдер мен Функциялар

Бөрібаев Бақыт Бөрібайұлы

b.buribaev@gmail.com

Мехмат ғимараты, 229 бөлме

Сұрақтар

  • Қарапайым циклдер және қабаттасқан циклдер
    • For
    • While
  • Try-Except
  • Глобальді немесе ауқымды айнымалылар
  • Кейбір ерекшеліктер
    • Continue және break
    • Raise in try-except
  • Программа мысалдары

Күтілетін нәтижелер

  • Бұл дәрістен соң, мыналарды пайдалана алатын боласыздар:
    • For циклі
    • While циклі
    • Циклдердегі Break және Continue нұсқаулары
    • Try something және “catch” something Попробуйте что-то и "поймайте"

    • что-то
    • Глобальді айнымалылар жасау

For циклі

  • Python тіліндегі for операторының оның C# (Паскаль) тіліндегі нұсқа- сынан аздаған өзгешеліктері бар. Паскальтіліндегі арифметикалық прогрессия тәсілімен қайталанатын немесе С# ортасындағы итерация қадамдарын қолданатын циклдерге қарағанда, Python тілінің for опе- раторы кез келген тізбектегі элементтерді (тізім немесе тіркестер) қайталай алады.
  • <тізбек> ішіндегі i үшін
    • белгілі бір әрекеттер орындау
  • https://docs.python.org/3.6/tutorial/controlflow.html

for циклі

  • for циклінің жалпы форматы:

  • for айнымалы in [1-мән, 2-мән, ... ] оператор

    оператор

    ...

    оператор

    мұндағы 1-жол - for өрнегі , онда үтірлермен бөлінген мәндер беріледі, солардың әрқайсысы үшін шегініспен жазылған келесі операторлар қайталанып орындалады. Тік жақша ([…]) ішіндегі үтірмен бөлінген мәндер тізім деп аталады.

for циклі


# бұл for циклі программасы сандар тізімін қолданады

print('1..5 арасындағы сандарды көрсету: ')

for num in [ 1, 2, 3, 4, 5]: print (num)

Нәтижесі:

1..5 арасындағы сандарды көрсету: 1

2

3

4

5

for циклі


# Келесі for циклі тақ сандарды шығарады.

print ('1 мен 10 арасындағы тақ сандар:')

for i in range(10):

if i%2==1:

print(i)
  • for циклінің тізімі ретінде range(аралық, диапазон) функциясы жиі жазылады.

  • Ол мәндер тізімін өз ретімен

алып отырады. Мысалы, range(10) деп алсақ, ол 0, 1, ..., 9 мәндерін біртіндеп алып, циклді 10 рет қайталап орындайды.

Нәтижесі:

1 мен 9 арасындағы тақ сандар:

1

3

5

7

9

for циклі

  • range функциясына тағы бір мысал.

  • # Бұл цикл сөздерді 5 рет қайталайды.

    for x in range(5):

    print('Сіздерге сәлем жолдаймын!')
  • range(a,b) функциясында екі аргумент болса, ол осы сандар аралығындағы мәндерді қамтиды. Мысалы:

  • for n in range(3,7): print('n=',n)

Нәтижесі:

Сіздерге сәлем жолдаймын! Сіздерге сәлем жолдаймын! Сіздерге сәлем жолдаймын! Сіздерге сәлем жолдаймын! Сіздерге сәлем жолдаймын!

Нәтижесі:

n = 3

n = 4

n = 5

n = 6

for циклі

  • Егер range(a,b,c) функциясында үш аргумент болса, ол тізімді a-дан b-ға дейін d қадаммен өзгертетін болады. Мысалы:

for num in range(1,10,3): print('num=',num)
  • Жалпы range() функциясында

айнымалыны да қолдана аламыз.

Мысалы, бүтін сандардың квадраттарын шығарайық:

print('Сан \tСанның квадраты') print('--------------------')

for number in range(1,4):

square = number **2 print(number,'\t\t',square)

Нәтижесі:

num = 1

num = 4

num = 7

Нәтижесі:

Сан Санның квадраты

----------------------------------

1

1

2

4

3

9

for циклі

  • Кейде циклдің ең соңғы мәнін көрсетіп қою керек болып жатады. Мысалы:

  • # Цикл айнымалысының соңғы мәнін көрсету

    end = int(input('Hешеге дейін есептейік?'))

print('Сан Санның квадраты')

print('---------------------')

for number in range(1, end + 1):

square = number**2 print(number, '\t', square)

Нәтижесі:

Hешеге дейін есептейік? 5

Сан Санның квадраты

--------------------- 1 1

2

4

3

9

4

16

5

25

for циклі

  • range функциясын кері бағытта да, максимум мәннен минимум мәнге қарай қолдана аламыз. Мысалы, range(10,0, -1)

for num in range(5, 0, -1):

print(num)

Нәтижесі:

5

4

3

2

1

for циклінің мысалдары

  • Қарапайым for циклі:
    • for i in range(10):

    • print(i)

      а)
  • Қабаттасқан for циклі:
    • for i in range(5):

    • for j in range(3):

      print("i is {} and j is {}". format(i, j))

      б)

0

1

2

3

4

5

6

7

8

9

i is 0 and j is 0 i is 0 and j is 1 i is 0 and j is 2 i is 1 and j is 0 i is 1 and j is 1 i is 1 and j is 2 i is 2 and j is 0 i is 2 and j is 1 i is 2 and j is 2 i is 3 and j is 0 i is 3 and j is 1 i is 3 and j is 2 i is 4 and j is 0 i is 4 and j is 1 i is 4 and j is 2

Нәтижелері:

а)

б)

for циклінің мысалдары


2-мысал: Сандар тізімі (жиым элементтері тәрізді) берілген. Сол тізімдегі сандардың әрқайсысын 2-ге арттыру керек.

for циклі арқылы тізім элементтерін толық қарастыра отырып, олардың әрқайсысын 2-ге арттырамыз.

tizim = [0,10,20,30,40,50,60,70,80,90]

i =

0

for

element

in

tizim:

tizim[i]

=

element + 2

i += 1

print(tizim)

Нәтижесі:

[2, 12, 22, 32, 42, 52, 62, 72, 82, 92]

for циклінің мысалдары


3-мысал: Тіркес символдарын біртіндеп өңдеу және араларына басқа

символдар кірістіру

str = 'Сәлем'

for әріп in str:

print(әріп)

for әріп in str:

print(әріп, end = '')

print()

for әріп in str:

print(әріп, end = '!')

print()

for әріп in str:

print(әріп, end = '?!')

Нәтижесі:

С

ә л е м

Сәлем

С!ә!л!е!м!

С?!ә?!л?!е?!м?!

while циклі (бұл да қабаттасып жазыла береді)

  • while операторы қасындағы өрнегі ақиқат болып тұрса, келесі блоктағы операторларды қайталап орындай береді:

# өрнек ақиқат болса # әрекеттер орындау
  • while :
    • do something
  • 1- мысал:

  • while i < 5:

    print("i is %i" % i)

    i += 1

https://docs.python.org/3/reference/compound_stmts.html#the-for- statement

while циклі

  • 2- мысал:

  • a)

    str1 = "+"

    i = 0

    while i < 10:

    print (str1) i += 2

б)

str1 = "+"

i = 0

while i < 10:

print (str1, end='')

i += 2

Нәтижесі:

+

+

+

+

+

Нәтижесі:

+ + + + +

а)

б)

while циклі

  • 3- мысал: Фибоначчи сандарын шығару:

0, 1, 1, 2, 3, 5, 8, …

fib1 = 0; fib2 = 1

print (fib1); print (fib2)

i = 0; n = 7

while i < n:

fib_sum = fib1 + fib2 print (fib_sum)

fib1

fib2

=

=

fib2

fib_sum

i

+=

1

Нәтижесі:

0

1

1

2

3

5

8

13

21

while циклі


b = {}".format(a, b))

4- мысал:

a = 10; b = 1

while a < 15: b = b * 2

print("a = {} a += 1

a

Нәтижесі:

= 10 b = 2

a

=

11

b

=

4

a

=

12

b

=

8

a

=

13

b

=

16

a

=

14

b

=

32

Практикалық жұмыс

  • Фибоначчи сандарын шығаратын программа жазып, оны сандар тізбегінің бесінші мен жиырмасыншы нөмірлері арасындағыларын экранға шығаратын етіп өзгертіңіз.
  • 0 мен 20 арасындағы жұп сандар тізбегін экранға шығаратын цикл жазыңыз. Сонан кейін -1 мен -21 арасындағы үшке бөлінетін сандар тізбегін шағаратын цикл құрыңыз.
  • Программаға екі бүтін сан (a,b) солардың арасындағы 5-ке бөлі- нетін, бірақ 3-ке бөлінбейтін сандар тізбегін экранға шығарыңыз.
  • for және while циклдерін пайдаланатын үш циклдік программа құрыңыз.

Глобальдік айнымалылар

  • Глобальдік айнымалылар - функциялар, кластар ішіндегі опера- цияларда қолдануға болатын айнымалылар. Бұлар C# және Java тіліндегі осындай айнымалылар аналогы болып табылады

  • global a a = []

    for i in ["red", "green", "blue", "black", "orange", "yellow", "white"]: a.append(i)

Break операторы

  • break операторы цикл жұмысын аяқтатады
    • for i in range(10):
      • if i is 6:
        • print("Now i is %d and we stop this loop" % i)
        • break
      • else:
        • print("I is not 6 yet")

Циклдегі continue операторы

  • Continue операторы циклдің келесі қадамына көшуді орындайды

  • while True: # infinite loop # True: шексіз цикл

    user_input = input(" Сәлем деп жаз, оны істемесең қайталай беремін! \t") print("Сөз енгіз: ", user_input)

    if user_input.lower() != "сәлем": continue

    else:

    print("Жақсы ұл/қыз екенсің! Сәлем деп жазарыңды білгенмін!")

    break

Try – Except нұсқаулары

  • Аластамалар (exception) қате кеткені жайлы мәлімет береді. Программадағы try нұсқауы аластамаларды көрсетеді немесе операторлар тобын өшіреді. Except нұсқауы бір немесе бірнеше аластамаларды өңдеу ісін атқарады.
  • Егер try нұсқауында аластама болмаса, онда аластаманы өңдеу де жүзеге асырылмайды. Ал егер try нұсқауында аластама көрсетілетін болса, онда аластама өңдеуішін іздеу іске қосылады.

  • a = input("Бірдеңе енгізіңіз: ")

    try:

    a = int(a)

    except ValueError: # ValueError – аластама аты

    print("Бүтін санға түрлендірілмейтін мән енгізілді!")
  • https://docs.python.org/3/reference/compound_stmts.html#the-for-statement

try except арқылы қатені анықтау

  • raise операторы программалаушыға көрсетілген аластаманы мәжбүрлі түрде орындау мүмкіндігін береді. Мысалы:

  • try:

    raise NameError('Сәлем дейік')

    except NameError: ('Aластама жоғалды!') raise
  • Негізінде сіз қатені кез келген сәтте кез келген орыннан алып тексере аласыз
  • https://docs.python.org/3/tutorial/errors.html

Циклдердегі Else нұсқауы (бұл әзіл емес)

  • Цикл нұсқауларында да else операторын қолдануға болады.

  • a=10

    while a is not 0: print("a is %i" % a) a -=1

    else:

    print("a has become %d :(" % a)

    for n in range(2, 10):

    for x in range(2, n): if n % x == 0:

    print(n, 'equals', x, '*', n//x)

    break

    else:

    # loop fell through without finding a factor

    print(n, 'is a prime number')
  • https://docs.python.org/3/tutorial/controlflow.html

Қорытынды

  • Енді сіздер мыналарды:
    • Циклдерді
    • Try және Except операторлары жайлы
    • Қателер жасауды, оларды анықтауды, жоюды
    • Глобальді айнымалылар құруды

    • білетін болдыңыздар.

Yes, yes, you are

3.2-дәріс. Функциялар


Сұрақтар
  • Функциялар
    • Кейбір құрамдас функциялар
    • return арқылы нәтиже қайтару ( бұрынғы print() орнына )
    • Аргументтер
    • Параметрлер
  • Рекурсия
  • Шағын тосынсый ( менің пікірім бойынша)
  • Кодтар мысалдары

Функциялар

  • Функцияларды анықтау def түйінді сөзінен басталады да, сонан кейін функция аты мен жақшалар ішінде параметрлер тізімі көрсетіледі. Функцияның ішкі операторлары (оның де- несі) келесі жолда шегініс арқылы жазылады.
    • def функция_aты(параметр(лер)/аргумент (тер)):
      • Операторлар (нұсқаулар)
  • Мұның кемшілігі - функцияның қателері тек оны шақырған- нан кейін ғана анықталады. Өз функцияларыңызды тексеруді ұмытпаңыздар! https://docs.python.org/3.6/tutorial/controlflow.html#defining- functions
  • Python функциясын жалпы анықтау форматы def функция_аты():
    • оператор
    • оператор

    • ...

      n-оператор
  • Бірінші жол – функция тақырыбы, ол функцияны анықтаудың басы. Функция тақырыбы def түйінді сөзінен басталады, одан кейін функция_аты мен жай жақшалар, соңында қос нүкте жазылады.
  • Келесі жолдар функцияның ішкі операторлары, яғни оның денесі. Олар блок

  • болып саналады. Блок функция шақырылған сайын орындалады. Блок

    шегініспен (3-5 орын) жазылады. Олардағы шегіністер бірдей болуы тиіс.
  • Мысал келтірейік.

  • def message(): # функцияны анықтау print('Мен - студентпін,') print('болашақта маман болып шығамын.' )

    print(message()) # функцияны шақырып орындау
  • Бұл код message атты функцияны анықтайды. Оның екі операторы бар. Функцияны орындағанда, осы екеуі қатар орындалады.

Нәтижесі:

Мен - студентпін,

болашақта маман болып шығамын.
  • Программада функциялар қабаттасып келе береді. Бұған мысал.

  • def main(): # main функциясын анықтау

    print('Мен Сізге мынаны айтайын деп едім.') message() # message функциясын шақырып орындау print('Қош болыңыз!')

    def message(): # message функциясын анықтау print('Мен - студентпін,') print('болашақта маман болып шығамын.' )

    main() # main функциясын шақырып орындау
  • Мұнда main функциясы ішінде message функциясы орындалады.

Нәтижесі:

Мен Сізге мынаны айтайын деп едім.

Мен - студентпін,

болашақта маман болып шығамын.

Қош болыңыз!

Программа блок-схемасы

  • Блок-схемаларда функция екі жаны қоссызық болып келген төртбұрышпен белгіленеді. Функция аты тіктөртбұрыш

  • ішінде жазылады да, соңында ‘Кері қайту’ сөзі жазылады.
  • Осылайша әр функцияға жеке-жеке блок-схема сызылады.
  • Программаларда локальді және глобальді айнымалылар қолданылады. Локальді ай- нымалылар бір функция ішінде ғана пай- даланылады.
  • Ал глобальді айнымалылар функцияларға дейін олардың сыртында анықталады.

main()

‘Мен

айтайын..’

message()

‘Қош

болыңыз’

Кері қайту

message()

‘Мен студентпін’

‘болашақта

маман...’

Кері қайту
  • Бір функция ішінде анықталған локальді айнымалыны екінші функция пайдалана алмай-

  • ды. Егер бір функциядағы код екінші бір функциядағы айнымалыны пайдаланатын болса,

қате туындайды. Мысал қарастырайық.

def main () : # Басты функцияны анықтау

get_name ()

рrint('Сәлем, ', name)

def get name():

# Бұл қате туындатады

# get_name функциясын анықтау

name = input ( 'Атыңыз кім: ' )

main() # Басты функцияны шақыру
  • Бұл программада екі функция: main және get_name бар.

5-жолда name айнымалысына ат енгізіледі. Бұл оператор

get_name функциясында, сондықтан ол name бұл функция үшін локальді болып табылады. Осыған орай name айнымалысын get_name функциясынан тыс орналасқан оператор қол- дана алмайды.
  • main функциясы 3-жолда get_name функциясын шақырады. Сонан кейін 4-жолдағы

  • оператор name айнымалысын қолдануға тырысады. Мұндай әрекет қате туындатады, себебі name айнымалысы get_name функциясы үшін локальді болып табылады.

Нәтижесі:

Атыңыз кім: Азат

Traceback (most recent call last):

File "C:/Users/.../funct.py", line 6, in

main () # Басты функцияны шақыру.

File "C:/Users/.../funct.py", line 3, in main

рrint('Сәлем, ', name) # Бұл қате туындатады

NameError: name 'рrint' is not defined
  • Локальді айнымалылар басқа функциялар үшін жабық болғандықтан, басқа

функцияларда да дәл осындай аттағы айнымалылар қолданыла береді.

Мысал қарастырайық.

# Бұл программа екі функцияда аттары бірдей екі

# локальді айнымалыны (birds) пайдаланады.

def main():

turgen()

qarqaraly()

# turgen функциясын шақыру

# qarqaraly функциясын шақыру

def turgen():

birds = 5000

# мұнда birds айнымалысы бар

# birds айнымалысын анықтау

print('Тurgen-де ', birds, 'құс бар.')

def qarqaraly():

birds = 8000

# qarqaraly функциясында да birds айнымалысы бар # birds локальді айнымалысын анықтау

main()

print('Qarqaraly-да ', birds,'құс бар.')

# басты функцияны шақыру

Нәтижесі: C:\Users\...\Scripts\python.exe C:/Users/.../functions.py

Тurgen-де 5000 құс бар. Qarqaraly-да 8000 құс бар.
  • Функцияға берілетін мәліметтер тізбегі аргументтер деп аталады. Функция өз

  • аргументтерін есептеулерде немесе басқа да операцияларда пайдалана алады.
  • Функцияны шақыру кезінде оған бір немесе бірнеше аргументтер, яғни

  • параметрлер түріндегі айнымалылар берілуі мүмкін.
  • Параметр – бұл функцияны шақыру кезінде оған берілетін арнайы айнымалы, параметрге айнымалы мәні меншіктеледі. Төменде параметр түріндегі айны- малысы бар функция мысалы көрсетілген:

  • def show_double(number): result = number * 2 print(result)
  • Бұл функция аты – show_double. Ол number саны мәнін қабылдап алып, оның

  • екі еселенген мәнін қайтарады.

# Бұл программа функцияға аргумент беруді көрсетеді

def main(): value = 5

show_double(value)

# show_double функциясы аргумент

# қабылдап, оны екі еселейді

def show_double(number): result = number * 2 print(result)

main () # басты функцияны шақыру

Нәтижесі: 10

Келесі алгоритмге сәйкес программа құрайық:
  • Енгізу экраны программаның не істейтінін көрсетеді.
  • Кеселер санын тағайындаймыз
  • Кеселердегі шәйдің көлемін граммға айналдырамыз да, нәтижесін

көрсетеміз.
  • Бұл алгоритмді схема түрінде былай көрсетуге болады:

intro – программаның не істейтінін көрсетеді.

cups_to_gram – кеселер санын қабылдап алып,

олардағы шәйдің неше грамм екендігі анықтайды.

main – кеселер санын енгізеді, ол кейін функцияға беріледі.

Осы алгоритм программасын құрайық.

main

intro

cups_to_gram

def main ():

# Бұл программа кеселердегі шәйдің көлемін

(грамм)

табады.

intro ()

# Енгізу терезесін көрсету.

cups = int(input('Кеселер саны: '))

cups_to_gram(cups_needed) # Граммға түрлендіру.

def intro(): # intro функциясы енгізу терезесін көрсетеді.

print('Өлшемдерді түрлендіру')

print ('1 кесе = 150 грамм')

def cups_to_gram(cups): # Бұл функция кесе санын алып,

gram = cups * 150 # оны граммға айналдырады

print('Бұл кеселерде', gram, ' грамм шәй бар. ') main()

Нәтижесі:

Өлшемдерді түрлендіру 1 кесе = 150 грамм

Кеселер саны: 5

Бұл кеселерде 750

грамм шәй бар.

Жолдарды шегініспен жазу

  • Жолдарды шегініспен жазу кезінде олардың алдындағы босорындар саны бірдей болуы тиіс, әйтпесе қате шығады. Мысалы, келесі жолдардағы функцияны анықтау дұрыс емес, олардағы шегіністер саны әртүрлі болып жазылған:

  • def my_function():

    print('Ал ендігілері')

    print ('басқаша тәртіппен') print ('құрастырылған.')
  • Программа терілетін редакторда шегініс жасаудың екі түрі бар:

  • жол алдында <Таb> пернесін басу немесе <босорын> пернесін бірнеше рет басу. Бірақ шегініс жасау кезінде осы екі тәсілдің тек біреуін пайдалану керек, екеуін араластыра отырып қолдансаңыз, Python интерпретаторы шатасып қате беріп жатады.

Жолдарды шегініспен жазу

  • IDLE ортасында және жалпы Python редакторларында функция анықталатын жолдағы қоснүктеден кейін шегініс автоматты түрде жасалады.
  • Автоматты шегініс жасау режимінен шығу үшін функцияның ішкі бло- гының ең соңғы жолынан кейін пернесін басу керек.
  • Функция блогы жолдарын шегініс арқылы белгілеу үшін программа- лаушылар көбінесе төрт босорын таңбасын қолданады.
  • Жалпы, Сіз өз таңдауыңыз бойынша, босорындардың кез келген санын пайдалана аласыз, тек олардың барлығы бірдей болуы тиіс.

Бақылау сұрақтары

  • Функцияның анықталуы қандай екі бөліктен тұрады?
  • "Функцияны шақыру" термині нені білдіреді?
  • Функцияны орындау кезінде оның блогының ең соңына жеткенде не болады?
  • Функция блоктарын неге шегініс арқылы ерекшелеу керпек?
  • Практикада бірнеше аргументтері бар функцияларды қолдану жиі орын алып жатады. Келесі программада екі аргументі бар show_sum функциясы көрсетілген, ол осы 2 аргументтің қосындысын табады.

  • def main(): # Мұнда 2 аргументі бар функция көрсетіледі print('12 және 45 сандарының қосындысы = ',end='') show_sum(12, 45) # Бұл функция 2 аргументті қосады

def show_sum(num1,num2): result = num1 + num2 print(result)

main()

Нәтижесі:

12 және 45 сандарының қосындысы = 57
  • Келесі программада тағы бір мысал көрсетілген, ондағы

  • функцияға аргумент ретінде екі сөз тіркесі (2 тіркес) беріледі.

    def main (): # Бұл функцияға 2 аргумент - 2 тіркес беріледі

    first_name = input('Атыңызды енгізіңіз: ') last_name = input ('Тегіңізді енгізіңіз: ') print('Сіздің аты-жөніңіздің ауысып жазылуы:') reverse_name(first_name, last_name)

def reverse_name(first, last): print(last, first)

main() # Басты функцияны шақыру

Нәтижесі:

Атыңызды енгізіңіз: Азат

Тегіңізді енгізіңіз: Байжанұлы

Сіздің аты-жөніңіздің ауысып жазылуы:

Байжанұлы Азат
  • Функцияға параметрлерді беретін стандартты формаға қосымша аргументтің қай параметрге сәйкес келетінін тағайындайтын төмендегідей формат та қолданылады:

  • параметр_аты = мәні

    мұндағы параметр_аты - бұл параметр түріндегі айнымалы аты, ал мәні - сол параметрге берілетін мән. Осы синтаксиске сәйкес берілген аргумент атаулы аргумент деп аталады. Келесі программа атаулы аргумент жұмы- сын көрсетеді.
  • Мұнда банктің белгілі бір уақыт кезеңінде (мерзімде) жинақтаған қарапайым пайыздық кірістерін көрсететін show_interest функциясы қолданылады. Функ- ция principal (шоттағы негізгі қаржы мөлшері), rate (көрсетілген мерзімдегі пайыз мөлшері) және periods (мерзімдер саны) аргументтерін қабылдайды. Программада функция шақырылғанда, аргументтер атаулы аргументтер ретінде беріледі.

def main(): # Бұл программа атаулы аргументтерді қолданады

# 1 мерзімдегі пайыз мөлшерін - 0.01, мерзімдер санын – 10,

# шоттағы қаржы көлемін - $10 000 қолдана отырып,

# пайыздық кірістер көлемін анықтау show_interest(rate=0.01, periods=10, principal=10000.0) # show_interest функциясы пайыздық кірістерді анықтайды.

def show_interest(principal, rate, periods): interest = principal * rate * periods print('Қарапайым пайыздық кіріс көлемі$',

format (interest, '.2f'), sep=' ')

main () # Басты функцияны шақыру

Нәтижесі:

Қарапайым пайыздық кіріс көлемі$ 1000.00

Мұнда principal параметрінің функцияда 1-ші болып тұрғанымен, оны шақыруда 3- ші орында тұрғанына назар салыңыздар
  • Алғашқы қарастырылатын randint функциясы, ол нүкте арқылы random.randint түрінде жазылады. 1 мен 100 арасындағы бүтін сандар алу функциясын шақыру жолы:

  • number = random.randint(1, 100)
  • Программа қарастырайық.

  • import random

    def main():

    number = random.randint(1, 10) # Кездейсоқ сан алу

print

('Сан

=

',number)

# Санды көрсету

main ()

# Басты

функцияны шақыру

Нәтижесі:

Сан = 5
  • Енді цикл арқылы бірнеше сандар алайық:

  • import random

    def main():

    for count in range(5): print(random.randint(1,100)) # Санды көрсету

    main () # Басты функцияны шақыру
    • Осы программаны түрлендірейік

Нәтижесі: 98

50

39

95

42
  • Енді кездейсоқ сандарды интерактивті режимде алуды қарастырайық:

  • >>> import random Enter

    >>> random.randint(1,10) Enter 7

    >>> random.randint(1,100) Enter 91

    >>> random.randint(100,200) Enter 185

    >>>
  • randrange функциясы range функциясы тәрізді істейді. Мұнда тек кездейсоқ сандар тізімі шығарылады. Мысалы, келесі жол 0 … 9 арасындағы сандарды береді:

  • number = random.randrange(10)
  • Келесі жол көрсетілген сандар аралығын қамтиды:

  • number = random.randrange(5,10)
  • Ал келесі жол сандардың бастапқы, соңғы мәндерін және өзгеру қадамдарын тағайындайды:

  • number = random.randrange(0, 101, 10)

    Бұл нұсқау нәтижесі: [0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
  • Келесі жол 0.0 және 1.0 аралығындағы бөлшек сандарды береді:

  • number = random.random()
  • uniform функциясы да кездейсоқ бөлшек сандарды береді, бірақ бұл сандардың мәндері алынатын диапазонын да көрсетеді:

  • number = random.uniform(1.0, 10.0)
  • Кейде қайталағанда өзгермейтін тұрақты сандар тізбегі керек болып жатады, ондайда компьютер сағатымен байланыспаған random.seed функциясын оның бастапқы мәнін көрсете отырып, қолдана аламыз, мысалы:

  • random.seed(10)
  • Осы функцияны интерактивті режимде қолданып көрейік:

import random Enter random.seed(10) Enter random.randint(1,100) Enter 74

random.randint(1,100) Enter

5

random.randint(1,100) Enter

55

random.randint(1,100) Enter

62

random.randint(1,100) Enter

74

Енді осы әрекеттерді қайталасақ, 74, 5, 55, 62 тізбегі қайталана береді.

Бақылау сұрақтары

  • Кітапханалық функция деген не?
  • Кітапханалық функциялар неге "қара жәшік" деп аталады?
  • Келесі нұсқау не істейді?
  • Келесі нұсқау не істейді?
  • Келесі нұсқау не істейді?
  • Келесі нұсқау не істейді?
  • Келесі нұсқау не істейді?

х = random.randint(1, 100) print(random.randint(1, 20))

print(random.random(10, 20)) print(random.random())

print(random.uniform(0.1, 0.5))
  • Кездейсоқ сандар беретін random модулінің бастапқы мәні не үшін керек?
  • Егер кездейсоқ сандар алу кезінде бастапқы мәндер бірдей болатын болса,

  • ол неге әсер етеді?
  • Кездейсоқ сандар алу кезінде тұрақты сандар тізбегін алу үшін не істеу

  • керек?
  • Мән қайтаратын функция жай функциялар тәрізді жазылады, тек оның бір

  • ерекшелігі: функция жұмысын аяқтар шақта, return нұсқауы көрсетіледі:

    def функция_аты():

    нұсқау нұсқау

    ...

    return өрнек
  • Сонымен, функцияның бір нұсқауы return болуы тиіс, оның жазылуы:

  • return өрнек
  • return сөзінен кейінгі өрнек мәні программаның функцияны шақырған бөлігіне жіберіледі. Ол кез келген мән, айнымалы немесе мәні бар өрнек (математикалық өрнек) болуы мүмкін, мысалы:

  • def sum(num1, num2): result = num1 + num2 return result
  • Программаның толық мәтіні:

  • def main(): # Бұл программа функция мәнін қайтарады

    first_age = int(input('Жасыңызды енгізіңіз: ')) # Жас енгізу

    # Қолданушының жақын досының жасын енгізу

    second_age = int(input("Досыңыздың жасын енгізіңіз: ")) total = sum(first_age, second_age) # Екі жас қосындысын табу print('Екеуін қосқанда, ', total, 'жас.') # Жастар қосындысы # sum функциясы 2 аргументтің қосындысын табады

def sum(num1, num2):

return num1 + num2 main()

Нәтижесі:

Жасыңызды енгізіңіз: 18 Досыңыздың жасын енгізіңіз: 20 Екеуін қосқанда, 38 жас.

Функциядан тіркестік мәндер қайтару

  • Бұған дейін тек сандық мәндер қайтаратын функцияларды қарастырдық. Бұлардан бөлек сөз тіркестерін де қайтаратын

  • функцияларды жазуға болады. Мысалы, келесі функция қолдану- шыдан оның атын енгізуді сұрайды да, сонан кейін сол енгізілген тіркесті қайтарады:

    def get_name(): # Қолданушының енгізілген атын алу

    name = input('Атыңызды енгізіңіз: ')

    return name # Атты қайтару

    a=get_name()

    print('Сіздің атыңыз - ' + a)

Нәтижесі:

Атыңызды енгізіңіз: Азат Сіздің атыңыз - Азат
  • Python тілінде ақиқат (тrue) немесе жалған (False) мәндерін бере- тін бульдік функцияларды да жазуға болады. Оларды шарттарды тексеріп, True не False мәндерін алу үшін қолданады. Бульдік фун- кциялар күрделі шарттарды қарапайым етіп, соларды тексеру

  • кезінде пайдаланылады.
  • Мысалы, программаға сан енгізіп, оның тақ немесе жұп екендігін анықтайтын функция құрайық. Келесі код осы әрекеттерді орын- дауды жүзеге асырады.

def is_even(number): # Сан жұп болса, status=True, әйтпесе status= False

if (number % 2) == 0:

status = True else:

status = False

return status # status айнымалысы мәнін қайтару

number = int(input('Сан енгізіңіз: '))


if is_even(number):

print ('Бұл жұп сан. ')

else:

print ('Бұл тақ сан. ')

Нәтижесі:

Сан енгізіңіз: 15

Бұл тақ сан.

Сан енгізіңіз: 1256 Бұл жұп сан.

Бірнеше мәндерді қайтару

  • Функциядан тек бір емес, бірнеше мәндер қайтаруға болады. Ол үшін return нұсқауында, төменде көрсетілген форматта, үтірлер- мен бөлінген бірнеше өрнектер жазу керек:

  • return 1-өрнек, 2-өрнек, ...
  • Мысал ретінде келесі get_name функциясын келтірейік. Онда қол- данушы локальді first және last айнымалыларында сақталатын өз аты мен тегін енгізіп, return нұсқауы арқылы соларды функциядан кері қайтарады.

Бірнеше мәндерді қайтару


def get_name(): # Қолданушының аты мен тегін енгізу.

first = input ('Атыңызды енгізіңіз: ') last = input ('Тегіңізді енгізіңіз: ')

return first, last # Екі мәнді де қайтару.

first_name, last_name = get_name()

print('Сіздің аты-жөніңіз -',first_name,last_name)
  • Бұл функцияны шақыру кезінде меншіктеу операторының сол жағында екі айнымалы да жазылатынына назар аударыңыз:

  • first_name, last name = get_name()

Нәтижесі:

Атыңызды енгізіңіз: Азат

Тегіңізді енгізіңіз: Ғаниұлы

Сіздің аты-жөніңіз - Азат Ғаниұлы

Бақылау сұрақтары

  • Функциядағы return нұсқауы не істейді?
  • Төмендегі функцияның анықталуына назар салыңыз:

  • def do_something(number): return number * 2

    а) Бұл функция қалай аталады? ә) Функция не істейді?

    б) Жоғарыдағы функцияның анықталуына байланысты келесі нұсқау нені көрсетеді?

    print(do_something(10))
  • Бульдік функция деген не?

Тыңдағандарыңызға размет!

Қымбатты Ada Lovelace! Сіздің циклдер жайлы идеяңыз үшін үлкен рахмет!


Ada Lovelace
  • "Ада Лавлейс 1800-ж. шамасында алғашқы компьютер үшін програм- ма жазған талантты математик болып саналады".
  • "Ол кісі алғашқы ұсынылған механикалық компьютер үшін нұсқаулар тобын қайталап орындауды, яғни қазіргі программаларда пайдала- нылатын циклдер құруды ұсынды. Ада өз мақаласында басқа да пер- спективалық тұжырымдарды жасаған болатын".

  • Biography.com Editors, (2014) Ada Lovelace Biography. Сайт: [https://www.biography.com/people/ada-lovelace-20825323]


написать администратору сайта