Главная страница
Навигация по странице:

  • Range функциясы Range функциясы келесі формаларға ие: range ( stop )

  • Циклден шығу. break және continue

  • Параметрлердің анықталмаған саны

  • ГЛАВА 2, 3, 4, 5. 2 тарау. Python Негіздері Бадарламаларды жазуа кіріспе


    Скачать 242.51 Kb.
    Название2 тарау. Python Негіздері Бадарламаларды жазуа кіріспе
    Дата07.02.2022
    Размер242.51 Kb.
    Формат файлаdocx
    Имя файлаГЛАВА 2, 3, 4, 5.docx
    ТипДокументы
    #354527
    страница3 из 10
    1   2   3   4   5   6   7   8   9   10

    Консольді шығару:

    Нөмірді енгізіңіз: 6

    6 санының факториалы 720-ға тең

    Цикл for

    Басқа түрі циклдар ұсынады конструкциясы for. For циклі белгілі бір сандар жиынтығындағы әр Сан үшін шақырылады. Сандар жиынтығы range () функциясы арқылы жасалады. Ресми цикл анықтамасы:

    1

    2

    for int_var in функция_range:

        инструкции


    For кілт сөзінен кейін бүтін сандарды сақтайтын int_var айнымалысы келеді (айнымалы атауы кез келген болуы мүмкін), содан кейін in кілт сөзі, range() функциясын шақыру және қос нүкте.

    Келесі жолдан бастап цикл нұсқауларының блогы орналасқан, олар жолдың басынан шегіністерге ие болуы керек.

    Циклды орындау кезінде Python range функциясы жасаған коллекциядан барлық сандарды дәйекті түрде алады және сол сандарды int_var айнымалысында сақтайды. Бірінші өту кезінде цикл коллекциядан бірінші санды алады, екіншісінде - екінші сан және т.б., ол барлық сандарды сұрыптағанша. Коллекциядағы барлық сандар сұрыпталған кезде, цикл өз жұмысын аяқтайды.

    Факториалды есептеу мысалын қарастырайық:

    1

    2

    3

    4

    5

    6

    7

    #! Программа по вычислению факториала

     

    number = int(input("Введите число: "))

    factorial = 1

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

        factorial *= i

    print("Факториал числа", number, "равен", factorial)


    Алдымен консольден нөмірді енгізіңіз. Циклде біз range функциясы жасаған коллекциядағы сандар сақталатын I айнымалысын анықтаймыз.

    Мұнда range функциясы екі аргументті алады - жинақтың бастапқы саны (мұнда 1 Саны) және сандарды қосу керек Сан (яғни number +1).

    Консольден 6 Саны енгізіледі делік, содан кейін range функциясын шақыру келесі форманы алады:

    1

    range(1, 6+1):


    Бұл функция 1-ден басталатын және 7-ге дейін бүтін сандармен дәйекті түрде толтырылатын коллекция жасайды. Яғни, бұл жинақ болады [1, 2, 3, 4, 5, 6].

    Циклды орындау кезінде сандар осы коллекциядан I айнымалыға ауысады, ал циклдің өзінде I айнымалы факторға көбейтіледі. Нәтижесінде біз санның факторлық мәнін аламыз.

    Бағдарламаны консольдік шығару:

    Нөмірді енгізіңіз: 6

    6 санының факториалы 720-ға тең

    Range функциясы

    Range функциясы келесі формаларға ие:


    • range (stop): 0-ден stop-қа дейінгі барлық бүтін сандарды қайтарады

    • range (start, stop): start (қоса) бастап stop (қоса) дейінгі аралықтағы барлық бүтін сандарды қайтарады. Жоғарыда факториалды бағдарламада дәл осы форма қолданылды.

    • range (start, stop, step): start (қоса алғанда) бастап stop (қоса алғанда) дейінгі аралықта бүтін сандарды қайтарады, олар step мәніне артады

    Range функциясының қоңырау мысалдары:

    1

    2

    3

    4

    range(5)            # 0, 1, 2, 3, 4

    range(1, 5)         # 1, 2, 3, 4

    range(2, 10, 2)     # 2, 4, 6, 8

    range(5, 0, -1)     # 5, 4, 3, 2, 1


    Мысалы, 0-ден 4-ке дейінгі барлық сандарды дәйекті түрде шығарамыз:

    1

    2

    for i in range(5):

        print(i, end=" ")


    Ішкі циклдар

    Кейбір циклдарда басқа циклдер болуы мүмкін. Көбейту кестесін шығару мысалын қарастырайық:

    1

    2

    3

    4

    for i in range(1, 10):

        for j in range(1, 10):

            print(i * j, end="\t")

        print("\n")


    Range(1, 10) үшін сыртқы цикл 9 рет іске қосылады, өйткені range функциясымен қайтарылған коллекцияда 9 Сан болады. Ішкі цикл for J in range (1, 10) сыртқы циклдің бір итерациясы үшін 9 рет, ал сыртқы циклдің барлық итерациялары үшін сәйкесінше 81 рет іске қосылады.

    Ішкі циклдің әр итерациясында I және j сандарының көбейтіндісі консольге шығарылады.:
    1 2 3 4 5 6 7 8 9
    2 4 6 8 10 12 14 16 18
    3 6 9 12 15 18 21 24 27
    4 8 12 16 20 24 28 32 36
    5 10 15 20 25 30 35 40 45
    6 12 18 24 30 36 42 48 54
    7 14 21 28 35 42 49 56 63
    8 16 24 32 40 48 56 64 72
    9 18 27 36 45 54 63 72 81
    Циклден шығу. break және continue

    Циклды басқару үшін break және continue арнайы мәлімдемелерін пайдалануға болады. Break операторы циклден шығуды жүзеге асырады. Ал continue операторы циклдің келесі итерациясына көшуді орындайды.

    Break мәлімдемесін циклде оны одан әрі орындауға сәйкес келмейтін жағдайлар пайда болған кезде қолдануға болады. Келесі мысалды қарастырыңыз:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    #! Программа Обменный пункт

     

    print("Для выхода нажмите Y")

     

    while True:

        data = input("Введите сумму для обмена: ")

        if data.lower() == "y":

            break  # выход из цикла

        money = int(data)

        cache = round(money / 56, 2)

        print("К выдаче", cache, "долларов")

     

    print("Работа обменного пункта завершена")


    Мұнда біз шексіз циклмен айналысамыз, өйткені while True шарты әрқашан шынайы және әрқашан орындалады. Бұл шексіз орындалуы керек бағдарламаларды құрудың танымал әдісі.

    Циклде біз консольден кіріс аламыз. Пайдаланушы Нөмірді енгізеді деп болжаймыз - айырбастау үшін шартты ақша сомасы. Егер пайдаланушы "Y" немесе "y" әрпін енгізсе, онда break операторының көмегімен біз циклден шығып, бағдарламаны тоқтатамыз. Әйтпесе, енгізілген соманы айырбастау бағамына бөлеміз, round функциясын қолдана отырып, нәтижені дөңгелектеп, оны консольге шығарамыз. Сонымен, пайдаланушы y пернесін басу арқылы бағдарламадан шыққысы келгенше шексіздікке дейін.

    Бағдарламаны консольдік шығару:

    Шығу үшін Y түймесін басыңыз

    Айырбастау сомасын енгізіңіз: 20000

    357.14 доллар беруге

    Айырбастау сомасын енгізіңіз: Y

    Айырбастау пунктінің жұмысы аяқталды

    Бірақ пайдаланушы теріс санды енгізсе ше? Бұл жағдайда бағдарлама теріс нәтиже береді, бұл дұрыс мінез-құлық емес. Бұл жағдайда, есептеуден бұрын, мәннің нөлден аз екенін тексере аламыз, ал егер аз болса, continue операторын қолдана отырып, оны аяқтамай циклдің келесі итерациясына ауысуды орындай аламыз:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    #! Программа Обменный пункт

     

    print("Для выхода нажмите Y")

     

    while True:

        data = input("Введите сумму для обмена: ")

        if data.lower() == "y":

            break  # выход из цикла

        money = int(data)

        if money < 0:

            print("Сумма должна быть положительной!")

            continue

        cache = round(money / 56, 2)

        print("К выдаче", cache, "долларов")

     

    print("Работа обменного пункта завершена")


    Сондай-ақ, Нұсқаулық while блогына немесе кірістірілген if дизайнына жататындығын анықтау үшін шегіністер қайтадан қолданылатынына назар аударамын.

    Бұл жағдайда біз теріс сома үшін нәтиже ала алмаймыз:

    Шығу үшін Y түймесін басыңыз

    Айырбастау сомасын енгізіңіз: -20000

    Сома оң болуы керек!

    Айырбастау сомасын енгізіңіз: 20000

    357.14 доллар беруге

    Айырбастау сомасын енгізіңіз: y

    Айырбастау пунктінің жұмысы аяқталды
    Функциялар

    Функциялар белгілі бір тапсырманы орындайтын және бағдарламаның басқа бөліктерінде қайта пайдалануға болатын код блогын білдіреді. Функцияның ресми анықтамасы:

    1

    2

    def имя_функции ([параметры]):

        инструкции


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

    Мысалы, қарапайым функцияны анықтау:

    1

    2

    def say_hello():

        print("Hello")


    Функция say_hello деп аталады. Оның параметрлері жоқ және консольге "Hello"жолын көрсететін бір нұсқаулық бар.

    Функцияны шақыру үшін функцияның атауы көрсетіледі, содан кейін жақшада оның барлық параметрлері үшін мәндер беріледі. Мысалы:

    1

    2

    3

    4

    5

    6

    def say_hello():

        print("Hello")

         

    say_hello()

    say_hello()

    say_hello()


    Мұнда say_hello функциясы қатарынан үш рет шақырылады. Нәтижесінде біз келесі консоль шығысын аламыз:
    Hello

    Hello

    Hello

    Енді параметрлермен функцияны анықтаңыз және қолданыңыз:

    1

    2

    3

    4

    5

    6

    def say_hello(name):

        print("Hello,",name)

     

    say_hello("Tom")

    say_hello("Bob")

    say_hello("Alice")


    Функция name параметрін қабылдайды және функция шақырылған кезде, параметрдің орнына мәнді жібере аламыз:
    Hello, Tom

    Hello, Bob

    Hello, Alice
    Әдепкі мәндер

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

    1

    2

    3

    4

    5

    def say_hello(name="Tom"):

        print("Hello,", name)

         

    say_hello()

    say_hello("Bob")


    Мұнда name параметрі міндетті емес. Егер функцияны шақырған кезде оған мән берілмесе, онда әдепкі мән қолданылады, яғни "том"жолы.

    Аталған параметрлер

    Мәндерді беру кезінде функция оларды берілген ретпен параметрлермен салыстырады. Мысалы, келесі функция болсын:

    1

    2

    3

    4

    5

    def say_hello(name="Tom"):

        print("Hello,", name)

         

    say_hello()

    say_hello("Bob")


    Функция шақырылған кезде бірінші "Tom" мәні бірінші параметрге - name параметріне, екінші мән - 22 саны екінші параметр - age параметріне беріледі. Мәселен, тәртібіне. Аталған параметрлерді пайдалану беру ретін қайта анықтауға мүмкіндік береді:

    1

    2

    3

    4

    def display_info(name, age):

        print("Name:", name, "\t", "Age:", age)

         

    display_info(age=22, name="Tom")

    Аталған параметрлер функция шақырылған кезде оған мән бере отырып, параметр атауын көрсетуді білдіреді.
    Параметрлердің анықталмаған саны

    Жұлдызша таңбасын пайдаланып параметрлердің белгісіз санын анықтауға болады:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    def sum(*params):

        result = 0

        for n in params:

            result += n

        return result

     

     

    sumOfNumbers1 = sum(1, 2, 3, 4, 5)      # 15

    sumOfNumbers2 = sum(3, 4, 5, 6)         # 18

    print(sumOfNumbers1)

    print(sumOfNumbers2)


    Бұл жағдайда sum функциясы бір параметрді алады - *params, бірақ параметр атауының алдындағы жұлдызша, шын мәнінде, осы параметрдің орнына анықталмаған мәндер санын немесе мәндер жиынтығын бере алатынымызды көрсетеді. Функцияның өзінде for циклін қолдана отырып, сіз осы жиынтықтан өтіп, берілген мәндермен әртүрлі әрекеттер жасай аласыз. Мысалы, бұл жағдайда сандардың қосындысы қайтарылады.
    Нәтижені қайтару

    Функция нәтижені қайтара алады. Ол үшін функцияда қайтару операторы қолданылады, содан кейін қайтару мәні көрсетіледі:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    def exchange(usd_rate, money):

        result = round(money/usd_rate, 2)

        return result

     

    result1 = exchange(60, 30000)

    print(result1)

    result2 = exchange(56, 30000)

    print(result2)

    result3 = exchange(65, 30000)

    print(result3)


    Функция мәнді қайтаратындықтан, біз бұл мәнді кез-келген айнымалыға тағайындай аламыз, содан кейін оны қолдана аламыз: result2 = exchange(56, 30000).
    Python-да функция бірден бірнеше мәнді қайтара алады:

    1

    2

    3

    4

    5

    6

    7

    8

    def create_default_user():

        name = "Tom"

        age = 33

        return name, age

     

     

    user_name, user_age = create_default_user()

    print("Name:", user_name, "\t Age:", user_age)


    Мұнда create_default_user функциясы екі мәнді қайтарады: name және age. Функция шақырылған кезде бұл мәндер рет-ретімен user_name және user_age айнымалыларына беріледі және біз оларды қолдана аламыз.
    Main функция

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

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    def main():

        say_hello("Tom")

        usd_rate = 56

        money = 30000

        result = exchange(usd_rate, money)

        print("К выдаче", result, "долларов")

     

     

    def say_hello(name):

        print("Hello,", name)

         

         

    def exchange(usd_rate, money):

        result = round(money/usd_rate, 2)

        return result

     

    # Вызов функции main

    main()


    Айнымалылардың ауқымы

    Ауқым немесе scope оны пайдалануға болатын айнымалының мәнмәтінін анықтайды. Python-да контексттің екі түрі бар: ғаламдық және жергілікті.

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

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    name = "Tom"

     

     

    def say_hi():

        print("Hello", name)

     

     

    def say_bye():

        print("Good bye", name)

     

    say_hi()

    say_bye()


    Мұнда name айнымалысы ғаламдық және ғаламдық ауқымға ие. Мұнда анықталған екі функция да оны еркін пайдалана алады.

    Ғаламдық айнымалылардан айырмашылығы, жергілікті айнымалы функцияның ішінде анықталады және тек осы функциядан қол жетімді, яғни жергілікті ауқымға ие:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    def say_hi():

        name = "Sam"

        surname = "Johnson"

        print("Hello", name, surname)

     

     

    def say_bye():

        name = "Tom"

        print("Good bye", name)

     

    say_hi()

    say_bye()


    Бұл жағдайда екі функцияның әрқайсысында жергілікті айнымалы name анықталады. Бұл айнымалылар бірдей деп аталғанымен, бірақ бұл екі түрлі айнымалы, олардың әрқайсысы тек өз функциялары аясында қол жетімді. Сондай-ақ, say_hi функциясында surname айнымалысы анықталған, ол жергілікті, сондықтан say_bye функциясында біз оны пайдалана алмаймыз.

    Жергілікті айнымалы бірдей атаумен глобалды жасырған кезде айнымалыны анықтаудың тағы бір нұсқасы бар:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    name = "Tom"

     

     

    def say_hi():

        print("Hello", name)

     

     

    def say_bye():

        name = "Bob"

        print("Good bye", name)

     

    say_hi()  # Hello Tom

    say_bye()  # Good bye Bob


    Мұнда ғаламдық айнымалы name анықталады. Алайда, say_bye функциясында бірдей атауы бар жергілікті айнымалы анықталады. Егер say_hi функциясы Ғаламдық айнымалыны қолданса, say_bye функциясы Ғаламдық айнымалыны жасыратын жергілікті айнымалыны қолданады.

    Егер біз жергілікті функцияда Ғаламдық айнымалыны өзгерткіміз келсе және жергілікті айнымалыны анықтамасақ, онда global кілт сөзін қолдануымыз керек:

    1

    2

    3

    4

    def say_bye():

        global name

        name = "Bob"

        print("Good bye", name)


    Python-да, көптеген басқа бағдарламалау тілдеріндегідей, Ғаламдық айнымалыларды пайдалану ұсынылмайды. Жалғыз қолайлы тәжірибе-бұл бағдарлама барысында өзгермейтін Ғаламдық тұрақтылардың аз санын анықтау.

    1

    2

    3

    4

    5

    6

    7

    8

    9

    PI = 3.14

     

     

    # вычисление площади круга

    def get_circle_square(radius):

     

        print("Площадь круга с радиусом", radius, "равна", PI * radius * radius)

     

    get_circle_square(50)


    Бұл жағдайда 3.14 саны Pi тұрақтысымен ұсынылған. Бұл мән негізінен өзгермейді, сондықтан оны функциялардан шығарып, тұрақты ретінде анықтауға болады. Әдетте, тұрақты атау бас әріптермен анықталады.
    1   2   3   4   5   6   7   8   9   10


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