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

  • Кортежді санау

  • Күрделі кортеждер

  • Тізімнен сөздікке түрлендіру

  • Элементтерді алу және өзгерту

  • Сөздіктерді көшіру және біріктіру

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


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

    Кортеж
    Кортеж (tuple) элементтердің тізбегін білдіреді, олар тізімге ұқсас, тек кортеж өзгермейтін (өзгермейтін) түрі болып табылады. Сондықтан біз корт элементтерін қосып немесе алып тастай алмаймыз, оны өзгерте алмаймыз.
    Тұтқаны жасау үшін оның мәндері үтірмен бөлінген жақшалар қолданылады:

    1

    2

    user = ("Tom", 23)

    print(user)


    Сондай-ақ, түйінді анықтау үшін біз жақшаларды қолданбай үтір арқылы мәндерді тізімдей аламыз:

    1

    2

    user = "Tom", 23

    print(user)


    Егер кенеттен бір элемент бір элементтен тұрса, онда бір элементтен кейін үтір қою керек:

    1

    user = ("Tom",)


    Тізімнен кортеж жасау үшін тізімді кортежді қайтаратын tuple () функциясына беруге болады:

    1

    2

    3

    users_list = ["Tom", "Bob", "Kate"]

    users_tuple = tuple(users_list)

    print(users_tuple)      # ("Tom", "Bob", "Kate")


    Корт ішіндегі элементтерге жүгіну индекс бойынша тізімдегі сияқты жүреді. Индекстеу сонымен қатар элементтерді тізімнің басынан алған кезде нөлден басталады және элементтерді тізімнің соңынан алған кезде -1 басталады:

    1

    2

    3

    4

    5

    6

    7

    users = ("Tom", "Bob", "Sam", "Kate")

    print(users[0])     # Tom

    print(users[2])     # Sam

    print(users[-1])     # Kate

     

    # получим часть кортежа со 2 элемента по 4

    print(users[1:4])       # ("Bob", "Sam", "Kate")


    Бірақ кортеж өзгермейтін тип болғандықтан (immutable), біз оның элементтерін өзгерте алмаймыз. Яғни, келесі жазба жұмыс істемейді:

    1

    users[1] = "Tim"


    Қажет болса, біз жеке айнымалыларға түйін жасай аламыз:

    1

    2

    3

    4

    5

    user = ("Tom", 22, False)

    name, age, isMarried = user

    print(name)             # Tom

    print(age)              # 22

    print(isMarried)        # False


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

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    def get_user():

        name = "Tom"

        age = 22

        is_married = False

        return name, age, is_married

     

     

    user = get_user()

    print(user[0])              # Tom

    print(user[1])              # 22

    print(user[2])              # False


    Кірістірілген Len () функциясын қолдана отырып, сіз ұзындықты ала аласыз:

    1

    2

    user = ("Tom", 22, False)

    print(len(user))        # 3


    Кортежді санау

    Кортежді санау үшін Сіз for және while стандартты циклдерін қолдана аласыз. Цикл арқылы:

    1

    2

    3

    user = ("Tom", 22, False)

    for item in user:

        print(item)


    While циклі арқылы:

    1

    2

    3

    4

    5

    6

    user = ("Tom", 22, False)

     

    i = 0

    while i < len(user):

        print(user[i])

        i += 1


    Өрнекті пайдаланып тізім үшін сияқты in кортеж, сіз сотта элементтің бар-жоғын тексере аласыз:

    1

    2

    3

    4

    5

    6

    user = ("Tom", 22, False)

    name = "Tom"

    if name in user:

        print("Пользователя зовут Tom")

    else:

        print("Пользователь имеет другое имя")


    Күрделі кортеждер

    Бір түйіспеде элементтер түрінде басқа түйіндер болуы мүмкін. Мысалы:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    countries = (

        ("Germany", 80.2, (("Berlin",3.326), ("Hamburg", 1.718))),

        ("France", 66, (("Paris", 2.2),("Marsel", 1.6)))

    )

     

    for country in countries:

        countryName, countryPopulation, cities = country

        print("\nCountry: {}  population: {}".format(countryName, countryPopulation))

        for city in cities:

            cityName, cityPopulation = city

            print("City: {}  population: {}".format(cityName, cityPopulation))


    Мұнда елдерді білдіретін countries кортежі әрқайсысы бөлек ел болатын кортеждерден тұрады.
    Кірістірілген кортеждердің үш элементі бар: елдің атауы, оның халқы мен қаласы. Қалалар жеке кортежді білдіреді, мұнда әрбір жеке Қала - бұл қаланың атауы мен оның тұрғындарының саны бар ішкі кортеж.
    Сөздіктер
    Тізімдер мен түйіндермен қатар, Python-да сөздік (dictionary) деп аталатын тағы бір мәліметтер құрылымы бар. Бірқатар бағдарламалау тілдерінде ұқсас құрылымдар бар (C# сөздігі, PHP-дегі ассоциативті массив).
    Тізім сияқты, сөздік элементтер жинағын сақтайды. Сөздіктегі әр элементтің өзіндік мәні бар ерекше кілт бар.
    Сөздік анықтамасында келесі синтаксис бар:

    1

    dictionary = { ключ1:значение1, ключ2:значение2, ....}


    Бірнеше сөздікті анықтаңыз:


    1

    2

    3

    users = {1: "Tom", 2: "Bob", 3: "Bill"}

     

    elements = {"Au": "Золото", "Fe": "Железо", "H": "Водород", "O": "Кислород"}


    Users сөздігінде сандар кілт ретінде, ал жолдар мән ретінде қолданылады. Element сөздігінде жолдар кілт ретінде қолданылады.
    Бірақ міндетті түрде кілттер мен жолдар бірдей болуы керек. Олар әр түрлі түрлерін ұсына алады:

    1

    objects = {1: "Tom", "2": True, 3: 100.6}


    Сондай-ақ, біз бос сөздікті элементтерсіз анықтай аламыз:

    1

    objects = {}


    немесе :

    1

    objects = dict()

    Тізімнен сөздікке түрлендіру

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

    1

    2

    3

    4

    5

    6

    7

    users_list = [

        ["+111123455", "Tom"],

        ["+384767557", "Bob"],

        ["+958758767", "Alice"]

    ]

    users_dict = dict(users_list)

    print(users_dict)  # {"+111123455": "Tom", "+384767557": "Bob", "+958758767": "Alice"}


    Сол сияқты, сөздікке екі өлшемді түйіндерді түрлендіруге болады, олар өз кезегінде екі элементтен тұрады:

    1

    2

    3

    4

    5

    6

    7

    users_tuple = (

        ("+111123455", "Tom"),

        ("+384767557", "Bob"),

        ("+958758767", "Alice")

    )

    users_dict = dict(users_tuple)

    print(users_dict)


    Элементтерді алу және өзгерту

    Сөздік элементтеріне кіру үшін кілтті пайдалану керек:

    1

    dictionary[ключ]


    Мысалы, сөздіктегі элементтерді аламыз және өзгертеміз:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    users = {

        "+11111111": "Tom",

        "+33333333": "Bob",

        "+55555555": "Alice"

    }

     

    # получаем элемент с ключом "+11111111"

    print(users["+11111111"])      # Tom

     

    # установка значения элемента с ключом "+33333333"

    users["+33333333"] = "Bob Smith"

    print(users["+33333333"])      # Bob Smith


    Егер мұндай кілті бар элементтің мәнін орнату кезінде сөздікте болмаса, онда ол қосылады:

    1

    users["+4444444"] = "Sam"


    Егер біз сөздікте жоқ кілтпен мән алуға тырыссақ, онда Python KeyError қатесін жасайды:

    1

    user = users["+4444444"]    # KeyError


    Бұл жағдайды ескерту үшін элементке хабарласпас бұрын сөздіктегі кілттің бар-жоғын өрнекті қолдана отырып тексере аламыз кілт in сөздік. Егер кілт сөздікте болса, онда бұл өрнек шын мәнін қайтарады:

    1

    2

    3

    4

    5

    6

    key = "+4444444"

    if key in users:

        user = users[key]

        print(user)

    else:

        print("Элемент не найден")


    Сондай-ақ, элементтерді алу үшін екі нысаны бар get әдісін қолдануға болады:


    • get (key): кілт кілті бар элементті сөздіктен қайтарады. Егер мұндай кілті бар элемент болмаса, онда None мәнін қайтарады




    • get (key, default): сөздіктен кілт кілті бар элементті қайтарады. Егер мұндай кілті бар элемент болмаса, әдепкі мәнді default қайтарады

    1

    2

    3

    key = "+55555555"

    user = users.get(key)

    user = users.get(key, "Unknown user")


    Өшіру

    Элементті кілтпен жою үшін del операторы қолданылады:

    1

    2

    3

    4

    5

    6

    7

    8

    users = {

        "+11111111": "Tom",

        "+33333333": "Bob",

        "+55555555": "Alice"

    }

     

    del users["+55555555"]

    print(users)


    Бірақ егер мұндай кілт сөздікте болмаса, онда KeyError-дан ерекшелік алынып тасталатынын ескерген жөн. Сондықтан, қайтадан алып тастамас бұрын, осы кілтпен элементтің болуын тексерген жөн.

    1

    2

    3

    4

    5

    6

    7

    key = "+55555555"

    if key in users:

        user = users[key]

        del users[key]

        print(user, "удален")

    else:

        print("Элемент не найден")


    Жоюдың тағы бір әдісі-pop () әдісі. Оның екі формасы бар:


    • pop (key): элементті кілт арқылы жояды және жойылған элементті қайтарады. Егер осы кілті бар элемент болмаса, онда KeyError ерекшелік жасалады




    • pop (key, default): элементті кілт арқылы жояды және жойылған элементті қайтарады. Егер осы кілті бар элемент болмаса, онда default мәні қайтарылады

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    users = {

        "+11111111": "Tom",

        "+33333333": "Bob",

        "+55555555": "Alice"

    }

    key = "+55555555"

    user = users.pop(key)

    print(user)

     

    user = users.pop("+4444444", "Unknown user")

    print(user)


    Егер барлық элементтерді жою қажет болса, онда бұл жағдайда clear() әдісін қолдануға болады:

    1

    users.clear()


    Сөздіктерді көшіру және біріктіру

    Copy () әдісі жаңа сөздікті қайтару арқылы сөздік мазмұнын көшіреді:

    1

    2

    users = {"+1111111": "Tom","+3333333": "Bob","+5555555": "Alice"}

    users2 = users.copy()


    Update () әдісі екі сөздікті біріктіреді:

    1

    2

    3

    4

    5

    6

    7

    users = {"+1111111": "Tom","+3333333": "Bob","+5555555": "Alice"}

     

    users2 = {"+2222222": "Sam","+6666666": "Kate"}

    users.update(users2)

     

    print(users)    # {"+1111111": "Tom", "+3333333": "Bob", "+5555555": "Alice", "+2222222": "Sam", "+6666666": "Kate"}

    print(users2)   # {"+2222222": "Sam", "+6666666": "Kate"}


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

    1

    2

    users3 = users.copy()

    users3.update(users2)


    Cөздікті санау (перебор словаря)

    Сөздікті таңдау үшін Сіз циклды қолдана аласыз:

    1

    2

    3

    4

    5

    6

    7

    users = {

        "+11111111": "Tom",

        "+33333333": "Bob",

        "+55555555": "Alice"

    }

    for key in users:

        print(key, " - ", users[key])


    Элементтерді сұрыптау кезінде біз ағымдағы элементтің кілтін аламыз және ол арқылы элементтің өзін ала аламыз.
    Элементтерді сұрыптаудың тағы бір әдісі-items() әдісін қолдану:

    1

    2

    for key, value in users.items():

        print(key, " - ", value)


    Items () әдісі түйіндер жиынтығын қайтарады. Әрбір түйіспеде элементтің кілті мен мәні бар, оны сұрыптау кезінде біз бірден key және value айнымалыларына ала аламыз.
    Кілттерді санау және мәндерді санау мүмкіндіктері де бар. Кілттерді санау үшін біз сөздікте keys() әдісін шақыра аламыз:

    1

    2

    for key in users.keys():

        print(key)


    Рас, бұл сұрыптау әдісі мағынасы жоқ, өйткені keys() әдісін шақырмай, біз жоғарыда көрсетілгендей кілттерді сұрыптай аламыз.
    Тек мәндерді санау үшін біз сөздікте values() әдісін шақыра аламыз:

    1

    2

    for value in users.values():

        print(value)

    1   2   3   4   5   6   7   8   9   10


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