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

  • Элементтерді қосу

  • Элементтерді жою

  • Жиындармен операциялар

  • Жиындар арасындағы қатынастар

  • 4 ТАРАУ Файлдармен жұмыс Файлдарды ашу және жабу

  • Файлды ашу және жабу

  • Мәтіндік файлдар

  • Файлды оқу Файлды оқу үшін ол R (Read) режимімен ашылады, содан кейін оның мазмұнын әртүрлі әдістермен санауға болады: readline ()

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


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

    Кешенді сөздіктер

    Сандар мен жолдар сияқты қарапайым объектілерден басқа, сөздіктер күрделі нысандарды да сақтай алады - бірдей тізімдер, түйіндер немесе басқа сөздіктер:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    users = {

        "Tom": {

            "phone": "+971478745",

            "email": "tom12@gmail.com"

        },

        "Bob": {

            "phone": "+876390444",

            "email": "bob@gmail.com",

            "skype": "bob123"

        }

    }


    Бұл жағдайда сөздіктің әр элементінің мәні өз кезегінде жеке сөздікті білдіреді.
    Кірістірілген сөздіктің элементтеріне жүгіну үшін сәйкесінше екі кілтті пайдалану керек:

    1

    2

    old_email = users["Tom"]["email"]

    users["Tom"]["email"] = "supertom@gmail.com"


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

    1

    tom_skype = users["Tom"]["skype"]   # KeyError


    Қатені болдырмау үшін сөздіктегі кілттің бар-жоғын тексеруге болады:

    1

    2

    3

    4

    5

    key = "skype"

    if key in users["Tom"]:

        print(users["Tom"]["skype"])

    else:

        print("skype is not found")


    Қалған жағынан, күрделі және кірістірілген сөздіктермен жұмыс Қарапайым сөздіктермен жұмыс істеуге ұқсас.
    Жиындар
    Жиын (set) элементтер жиынтығының тағы бір түрін білдіреді. Жиындарды анықтау үшін элементтер тізімделген жақшалар қолданылады:

    1

    2

    users = {"Tom","Bob","Alice", "Tom"}

    print(users)    # {"Tom","Bob","Alice"}


    Print функциясы "Tom" элементін бір рет шығарғанына қарамастан, бұл элемент жиынның анықтамасында екі рет кездесетініне назар аударыңыз. Себебі жиынтықта тек ерекше мәндер бар.
    Сондай-ақ, жиындарды анықтау үшін элементтердің тізімі немесе жиынтығы берілетін set () функциясын қолдануға болады:

    1

    users3 = set(["Mike", "Bill", "Ted"])


    Бос жиын жасау үшін set функциясын қолдану ыңғайлы:

    1

    users = set()

    Жиынның ұзындығын алу үшін кірістірілген Len() функциясы қолданылады:

    1

    2

    users = {"Tom","Bob","Alice"}

    print(len(users)}   # 3


    Элементтерді қосу

    Бір элементті қосу үшін add() әдісі шақырылады:

    1

    2

    3

    users = set()

    users.add("Sam")

    print(users)


    Элементтерді жою

    Бір элементті жою үшін жойылатын элемент берілетін remove () әдісі шақырылады. Бірақ егер мұндай элемент жиынтықта болмаса, онда қате пайда болатындығын есте ұстаған жөн. Сондықтан, алып тастамас бұрын, in операторының көмегімен элементтің бар-жоғын тексеру керек:

    1

    2

    3

    4

    5

    6

    users = {"Tom", "Bob", "Alice"}

     

    user = "Tom"

    if user in users:

        users.remove(user)

    print(users)    # {"Bob", "Alice"}


    Сондай-ақ, жою үшін Сіз discard () әдісін қолдана аласыз, ол элемент болмаған кезде ерекше жағдай туғызбайды:

    1

    2

    user = "Tim"

    users.discard(user)


    Барлық элементтерді жою үшін clear() әдісі шақырылады:

    1

    users.clear()


    Көпті санау (Перебор множества)

    Элементтерді санау үшін Сіз циклды қолдана аласыз:

    1

    2

    3

    4

    users = {"Tom","Bob","Alice"}

     

    for user in users:

        print(user)


    Сұрыптау кезінде әр элемент user айнымалысына орналастырылады.
    Жиындармен операциялар

    Copy () әдісін қолдана отырып, бір жиынның мазмұнын басқа айнымалыға көшіруге болады:

    1

    2

    users = {"Tom","Bob","Alice"}

    users3 = users.copy()


    Union () әдісі екі жиынды біріктіреді және жаңа жиынды қайтарады:

    1

    2

    3

    4

    5

    users = {"Tom","Bob","Alice"}

    users2 = {"Sam","Kate", "Bob"}

     

    users3 = users.union(users2)

    print(users3)   # {"Bob", "Alice", "Sam", "Kate", "Tom"}


    Жиындардың қиылысы екі жиынтықта бір уақытта болатын элементтерді ғана алуға мүмкіндік береді. Intersection () әдісі жиындардың қиылысу операциясын жасайды және жаңа жиынды қайтарады:

    1

    2

    3

    4

    5

    users = {"Tom","Bob","Alice"}

    users2 = {"Sam","Kate", "Bob"}

     

    users3 = users.intersection(users2)

    print(users3)   # {"Bob"}


    Intersection әдісінің орнына логикалық көбейту амалын қолдана аламыз:

    1

    2

    3

    4

    users = {"Tom","Bob","Alice"}

    users2 = {"Sam","Kate", "Bob"}

     

    print(users & users2)   # {"Bob"}


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

    1

    2

    3

    4

    5

    6

    users = {"Tom","Bob","Alice"}

    users2 = {"Sam","Kate", "Bob"}

     

    users3 = users.difference(users2)

    print(users3)           # {"Tom", "Alice"}

    print(users - users2)   # {"Tom", "Alice"}


    Жиындар арасындағы қатынастар

    Issubset әдісі ағымдағы жиынның басқа жиынның ішкі жиынтығы (яғни бөлігі) екенін анықтауға мүмкіндік береді:

    1

    2

    3

    4

    5

    users = {"Tom", "Bob", "Alice"}

    superusers = {"Sam", "Tom", "Bob", "Alice", "Greg"}

     

    print(users.issubset(superusers))   # True

    print(superusers.issubset(users))   # False


    Issuperset әдісі, керісінше, егер ағымдағы жиын басқа жиын үшін қосымша жиын болса (яғни, бар болса), ШЫН мәнін қайтарады:

    1

    2

    3

    4

    5

    users = {"Tom", "Bob", "Alice"}

    superusers = {"Sam", "Tom", "Bob", "Alice", "Greg"}

     

    print(users.issuperset(superusers))   # False

    print(superusers.issuperset(users))   # True


    frozen set

    Frozen set түрі-өзгертуге болмайтын жиындардың түрі. Оны жасау үшін frozenset функциясы қолданылады:

    1

    users = frozenset({"Tom", "Bob", "Alice"})


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


    • len (s): жиынның ұзындығын қайтарады

    • X in s: Егер x элементі s жиынында болса, True қайтарады

    • x not in s: Егер x элементі s жиынында болмаса, True қайтарады

    • s. issubset(t): Егер t құрамында s жиынтығы болса, True қайтарады

    • s. issuperset (t): Егер T s жиынында болса, True қайтарады

    • s.union(t): S және t жиындарын біріктіруді қайтарады

    • s. intersection (t): S және t жиындарының қиылысын қайтарады

    • s. difference( t): S және t жиындарының айырмасын қайтарады

    • s. copy(): S жиынының көшірмесін қайтарады


    4 ТАРАУ

    Файлдармен жұмыс

    Файлдарды ашу және жабу

    Python көптеген әртүрлі файл түрлерін қолдайды, бірақ оларды шартты түрде екі түрге бөлуге болады: мәтіндік және екілік. Мәтіндік файлдар, мысалы, CVS, TXT, html кеңейтімі бар файлдар, жалпы, ақпаратты мәтіндік түрде сақтайтын кез келген файлдар. Екілік файлдар-бұл суреттер, аудио және бейне файлдар және т.б. файл түріне байланысты онымен жұмыс сәл өзгеше болуы мүмкін.
    Файлдармен жұмыс істеу кезінде кейбір әрекеттер тізбегін сақтау керек:


    1. Файлды щзут () әдісі арқылы ашу

    2. Read () әдісі арқылы файлды оқу немесе write() әдісі арқылы файлға жазу

    3. Close() әдісімен файлды жабу

    Файлды ашу және жабу

    Файлмен жұмыс істеуді бастау үшін оны келесі ресми анықтамасы бар open () функциясы арқылы ашу керек:

    1

    open(file, mode)


    Функцияның бірінші параметрі файл жолын білдіреді. Файл жолы абсолютті болуы мүмкін, яғни диск әрпінен басталады, мысалы C://somedir/somefile.txt. Немесе салыстырмалы болуы мүмкін, мысалы, somedir/somefile.txt-бұл жағдайда файлды іздеу жұмыс істеп тұрған Python сценарийінің орналасқан жеріне қатысты болады.
    Екінші берілетін дәлел-режим файлды ашу режимін біз онымен не істейтінімізге байланысты орнатады. 4 жалпы режим бар:


    • r (Read). Файл оқу үшін ашылады. Егер файл табылмаса, FileNotFoundError ерекшелік жасалады

    • w (Write). Файл жазу үшін ашылады. Егер файл жоқ болса, ол жасалады. Егер ұқсас файл болса, онда ол қайтадан жасалады, сәйкесінше ондағы ескі деректер жойылады.

    • a (Append). Файл қосымша жазба үшін ашылады. Егер файл жоқ болса, ол жасалады. Егер ұқсас файл болса, онда деректер оның соңында жазылады.

    • b (Binary). Екілік файлдармен жұмыс істеу үшін қолданылады. Басқа режимдермен бірге қолданылады-w немесе r.


    Файлмен жұмыс аяқталғаннан кейін оны close () әдсімен жабу керек. Бұл әдіс файлға қатысты барлық ресурстарды босатады.
    Мысалы, "hello" мәтіндік файлын жазу үшін ашыңыз.txt":

    1

    2

    3

    myfile = open("hello.txt", "w")

     

    myfile.close()


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

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    try:

        somefile = open("hello.txt", "w")

        try:

            somefile.write("hello world")

        except Exception as e:

            print(e)

        finally:

            somefile.close()

    except Exception as ex:

        print(ex)


    Бұл жағдайда файлмен барлық жұмыс кірістірілген try блогында жүреді. Егер кенеттен қандай да бір ерекшелік пайда болса, онда кез-келген жағдайда finally блогында файл жабылады.
    Дегенмен, ыңғайлы дизайн бар-with дизайны:

    1

    2

    with open(file, mode) as file_obj:

        инструкции


    Бұл дизайн ашық файл үшін file_obj айнымалысын анықтайды және нұсқаулар жиынтығын орындайды. Оларды орындағаннан кейін файл автоматты түрде жабылады. With блогында нұсқауларды орындау кезінде қандай да бір ерекшеліктер болса да, файл әлі де жабылады.
    Сонымен, алдыңғы мысалды қайта жазыңыз:

    1

    2

    with open("hello.txt", "w") as somefile:

        somefile.write("hello world")


    Мәтіндік файлдар
    Мәтіндік файлға жазу

    Жазбада мәтіндік файлды ашу үшін W (қайта жазу) немесе a (жазба) режимін қолдану керек. Содан кейін жазу үшін жазылатын жол берілетін write(str) әдісі қолданылады. Айта кету керек, бұл жол жазылған, сондықтан сандарды, басқа типтегі деректерді жазу қажет болса, оларды алдымен жолға түрлендіру керек.
    Кейбір ақпаратты "hello.txt":

    1

    2

    with open("hello.txt", "w") as file:

        file.write("hello world")


    Егер біз қазіргі Python сценарийі орналасқан қалтаны ашсақ, онда hello файлын көреміз.txt. Бұл файлды кез-келген мәтіндік редакторда ашуға болады және қажет болса өзгертуге болады.
    Енді осы файлға тағы бір жолды жазамыз:

    1

    2

    with open("hello.txt", "a") as file:

        file.write("\ngood bye, world")


    Жазба файлдағы соңғы таңбаға жол қосу сияқты көрінеді, сондықтан жаңа жолдан жазба жасау қажет болса, "\n"эскап тізбегін пайдалануға болады. Нәтижесінде hello файлы.txt-де келесі мазмұн болады:

    1

    2

    hello world

    good bye, world


    Файлға жазудың тағы бір тәсілі-деректерді консольге шығару үшін қолданылатын стандартты print () әдісі:

    1

    2

    with open("hello.txt", "a") as hello_file:

        print("Hello, world", file=hello_file)


    Деректерді басып шығару әдісіне файлға шығару үшін Файл атауы файл параметрі арқылы екінші параметр ретінде беріледі. Ал бірінші параметр файлға жазылған жолды білдіреді.
    Файлды оқу

    Файлды оқу үшін ол R (Read) режимімен ашылады, содан кейін оның мазмұнын әртүрлі әдістермен санауға болады:


    • readline (): файлдан бір жолды оқиды

    • read (): файлдың барлық мазмұнын бір жолға оқиды

    • readlines (): файлдың барлық жолдарын тізімге оқиды


    Мысалы, жоғарыда жазылған файлды сызық бойынша қарастырамыз:

    1

    2

    3

    with open("hello.txt", "r") as file:

        for line in file:

            print(line, end="")


    Біз әр жолды оқу үшін readline() әдісін нақты қолданбайтынымызға қарамастан, бірақ файлды сұрыптау кезінде бұл әдіс әр жаңа жолды алу үшін автоматты түрде шақырылады. Сондықтан циклде қолмен readline әдісін шақырудың қажеті жоқ. Жолдар "\n" жолының аударма символымен бөлінгендіктен, басқа жолға артық берілуді болдырмау үшін end=""мәні басып шығару функциясына беріледі.
    Енді нақты жолдарды оқу үшін readline () әдісін шақырамыз:

    1

    2

    3

    4

    5

    with open("hello.txt", "r") as file:

        str1 = file.readline()

        print(str1, end="")

        str2 = file.readline()

        print(str2)


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

    hello world

    good bye, world

    Readline әдісін файлды while циклінде жол бойында оқу үшін пайдалануға болады:

    1

    2

    3

    4

    5

    with open("hello.txt", "r") as file:

        line = file.readline()

        while line:

            print(line, end="")

            line = file.readline()


    Егер файл кішкентай болса, оны бірден read() әдісін қолдана отырып санауға болады:

    1

    2

    3

    with open("hello.txt", "r") as file:

        content = file.read()

        print(content)


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

    1

    2

    3

    4

    5

    6

    with open("hello.txt", "r") as file:

        contents = file.readlines()

        str1 = contents[0]

        str2 = contents[1]

        print(str1, end="")

        print(str2)


    Файлды оқу кезінде біз оның кодталуы ASCII-ге сәйкес келмейтіндігіне тап болуымыз мүмкін. Бұл жағдайда біз encoding параметрін қолдана отырып кодтауды нақты көрсете аламыз:

    1

    2

    3

    filename = "hello.txt"

    with open(filename, encoding="utf8") as file:

        text = file.read()


    Енді біз пайдаланушы енгізген жолдар массивін жазып, оны файлдан консольге қайта оқитын шағын сценарий жазамыз:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    # имя файла

    FILENAME = "messages.txt"

    # определяем пустой список

    messages = list()

     

    for i in range(4):

        message = input("Введите строку " + str(i+1) + ": ")

        messages.append(message + "\n")

     

    # запись списка в файл

    with open(FILENAME, "a") as file:

        for message in messages:

            file.write(message)

     

    # считываем сообщения из файла

    print("Считанные сообщения")

    with open(FILENAME, "r") as file:

        for message in file:


    Бағдарламаның мысалы:

    1-жолды енгізіңіз: Сәлем

    2-жолды енгізіңіз: дүниежүзілік бейбітшілік

    3-жолды енгізіңіз: үлкен жұмыс

    4-жолды енгізіңіз: Python

    Санаулы хабарлар

    hello

    world peace

    great job

    Python
    1   2   3   4   5   6   7   8   9   10


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