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

  • Предупреждение

  • Логические

  • Операции

  • Методы

  • Пример

  • Язык Python. Уроки Python. Python Lessons Oleg Kishinskii мар. 30


    Скачать 406.31 Kb.
    НазваниеPython Lessons Oleg Kishinskii мар. 30
    АнкорЯзык Python
    Дата09.12.2022
    Размер406.31 Kb.
    Формат файлаdocx
    Имя файлаУроки Python.docx
    ТипДокументы
    #835711
    страница4 из 9
    1   2   3   4   5   6   7   8   9

    Числа


    Числа - Это не изменяемый тип данных. Числа в Python бывают трёх типов: целые, с плавающей точ- кой и комплексные. * Примером целого числа может служить 2. * Примерами чисел с плавающей точ- кой (или «плавающих» для краткости) могут быть 3.23 и 52.3E-4. Обозначение E показывает степени числа 10. В данном случае 52.3E-4 означает 52.3 · 104. * Примерыкомплексныхчисел:(-5+4j)и(2.3-4.6j)




    Примечание: Нет отдельного типа ‘long int’ (длинное целое). Целые числа по умолчанию могут быть произвольной длины.

        1. Строки


    Строки - это неизменяемая упорядоченная последовательность символов, заключенная в кавычки. Строки применяются для записи текстовой информации (кажем, вашего имени) и произвольных со- вокупностей байтов (наподобие содержимого файла изображения). Они являются первым примером того, что в Python называется последовательностью — позиционно упорядоченной коллекцией других объектов. Для содержащихся элементов последовательности поддерживают порядок слева направо: элементы сохраняются и извлекаются по своим относительным позициям. Строго говоря, строки пред- ставляют собой последовательности односимвольных строк.


    firts_string = "asdfgh" second_string = "oiuytr" print(firts_string + second_string)

    Строки можно суммировать. Тогда они объединяются в одну строку, такая операция называется «Кон- катенацией строк»:
    Примечание: В Python 3 нет ASCII-строк, потому что Unicode является надмножеством (вклю- чает в себя) ASCII. Если необходимо получить строку строго в кодировке ASCII, используйте str.encode(«ascii»). По умолчанию все строки в Unicode.



    Предупреждение: Нельзя производить арифметтические операции над строкам и числами На- пример: «qwerty» + 3 Это вызовет ошибку, Но строки можно перемножать «#» * 10 выведет на экран строку ##########



    Логические и физические строки

    i=5 print(i)

    #тожесамое,что

    i = 5; print(i);

    тожесамоеможетбытьзаписановвиде

    i = 5; print(i);

    Физическая строка – это то, что вы видите, когда набираете программу. Логическая стро- ка – это то, что Python видит как единое предложение. Python неявно предполагает, что каждой физической строке соответствует логическая строка. Примером логической строки может служить предложение print(„Привет, Мир!“) – ес- ли оно на одной строке (как вы видите это в редакторе), то эта строка также соответствует физической строке. Python неявно стимулирует использование по одному предложению на строку, что об- легчает чтение кода. Чтобы записать более одной логической строки на одной физической строке, вам придёт- ся явно указать это при помощи точки с запятой (;), которая отмечает конец логической строки/предложения. Например:

    Однако я настоятельно рекомендую вам придерживаться написания одной логической строки в каждой физической строке. Таким образом вы можете обойтись совсем без точки с запятой. Кстати, я никогда не использовал и даже не встречал точки с запятой в программах на Python. Можно использовать более одной физической строки для логической строки, но к этому следует прибегать лишь в случае очень длинных строк. Пример написания одной логиче- ской строки, занимающей несколько физических строк, приведён ниже. Это называется явным объединением строк.



    Операции над последовательностями

    #!/usr/bin/env python3#-*-coding:utf-8-*-
    simple_string = 'Spam' len(simple_string)

    #4

    simple_string[0]

    #'S'

    simple_string[1]

    #'p'

    Как последовательности, строки поддерживают операции, которые предполагают наличие позицион- ного порядка среди элементов. Например, если мы имеем четырех символьную строку, записанную в кавычках (обычно одинарных), то можем проверить ее длину с помощью встроенной функции len() и извлечь ее компоненты посредством выражений индексации.

    Нумерация всех символов в строке идет с нуля. Но, если нужно обратиться к какому-то по счету символу, начиная с конца, то можно указывать отрицательные значения (на этот раз с единицы).




    example_string = "Lorem Ipsum is simply dummy text of the printing and typesetting" example_string[0:9]

    #'LoremIps'
    example_string[10:22]

    #'missimply'
    #Еслинеуказываетсявтороечисло,тосрезбудетдоконцастроки:

    example_string[-3:]

    #'ing'

    Кроме обращения к конкретному символу, можно делать срезы строк, указав диапазон номеров (срез выполняется по второе число, не включая его):

    Также в срезе можно указывать шаг:


    #Такможнополучитьнечетныечисла

    a = '0123456789' a[1::2]

    #'13579'
    #Атакимобразомможнополучитьвсечетныечисластрокиa:
    (continues on next page)


    a[::2]

    #'02468'
    #Срезытакжеможноиспользоватьдляполучениястрокивобратномпорядке:

    a[::-1]

    #'9876543210'

    (продолжение с предыдущей страницы)
    Методы для работы со строками
    Методы upper, lower, swapcase, capitalize


    string1 = 'FastEthernet'

    string1.upper()

    #'FASTETHERNET'
    string1.lower()

    #'fastethernet'
    string1.swapcase()

    #'fASTeTHERNET'

    string2 = 'tunnel 0' string2.capitalize()

    #'Tunnel0'
    #Оченьважнообращатьвниманиенато,чточастометодывозвращаютпреобразованнуюстроку.И,

    ˓→значит,надонезабытьприсвоитьеекакой-топеременной(можнотойже).

    string1 = string1.upper() print(string1) #FASTETHERNET

    Методы upper(), lower(), swapcase(), capitalize() выполняют преобразование регистра строки:

    Метод count



    string1 = 'Hello, hello, hello, hello' string1.count('hello') #3

    string1.count('ello') #4

    string1.count('l') #8

    Метод count() используется для подсчета того, сколько раз символ или подстрока встречаются в строке:

    Метод find



    string1 = 'interface FastEthernet0/1' string1.find('Fast') #10 string1[string1.find('Fast')::] #'FastEthernet0/1'

    Методу find() можно передать подстроку или символ, и он покажет, на какой позиции находится первый символ подстроки (для первого совпадения):

    Методы startswith, endswith


    Проверка на то, начинается или заканчивается ли строка на определенные символы (методы startswith(), endswith()):



    Метод replace



    string1 = 'FastEthernet0/1'

    string1.replace('Fast', 'Gigabit') #'GigabitEthernet0/1'

    Замена последовательности символов в строке на другую последовательность (метод replace()):

    Метод strip


    Часто при обработке файла файл открывается построчно. Но в конце каждой строки, как правило, есть какие-то спецсимволы могут быть и в начале). Например, перевод строки.


    string1 = '\n\tinterface FastEthernet0/1\n' print(string1)

    #

    #interfaceFastEthernet0/1#

    string1.strip()

    #'interfaceFastEthernet0/1'

    Для того, чтобы избавиться от них, очень удобно использовать метод strip():
    Примечание: По умолчанию метод strip() убирает пробельные символы. В этот набор символов входят: tnrfv

    Методу strip можно передать как аргумент любые символы. Тогда в начале и в конце строки будут удалены все символы, которые были указаны в строке:

    Метод strip() убирает спецсимволы и в начале, и в конце строки. Если необходимо убрать символы только слева или только справа, можно использовать, соответственно, методы lstrip() и rstrip().

    Метод split



    string1 = 'switchport trunk allowed vlan 10,20,30,100-200' commands = string1.split()

    print(commands) #['switchport','trunk','allowed','vlan','10,20,30,100-200']

    #Поумолчаниювкачестверазделителяиспользуютсяпробельныесимволы(пробелы,табы,перевод

    ˓→строки),новскобкахможноуказатьлюбойразделитель:

    vlans = commands[-1].split(',') print(vlans) #['10','20','30','100-200']

    Метод split() разбивает строку на части, используя как разделитель какой-то символ (или символы) и возвращает список строк:

    Метод join


    Метод join() позволяет объеденить список, кортеж или словарь в строку разделяя ее елементы другой строкой.



    myTuple = ("John", "Peter", "Vicky") x = "-".join(myTuple)

    print(x) #John-Peter-Vicky



    Метод format


    Метод format() позволяет подставлять в отмеченные в строке области символами «{}» значени из списка аргументов


    price = 49

    txt = "The price is {} dollars" print(txt.format(price))

    например:

    Так же можно указать тип подставлемых значений:

    (continues on next page)


    '{:4d}'.format(42) #42

    '{:06.2f}'.format(3.141592653589793) #003.14

    '{:04d}'.format(42) #0042

    #знаковыечисла

    '{:+d}'.format(42) #+42

    '{:d}'.format((- 23)) #-23

    '{:d}'.format(42) #42

    '{:=5d}'.format((- 23)) #-23

    '{:=+5d}'.format(23) #+23

    #можновставлятьзначенияпоименам

    data = {'first': 'Hodor', 'last': 'Hodor!'} '{first}{last}'.format(**data) #HodorHodor!

    '{first}{last}'.format(first='Hodor', last='Hodor!') #HodorHodor!

    #Форматдатыивремени

    from datetime import datetime

    '{:%Y-%m-%d%H:%M}'.format(datetime(2001, 2, 3, 4, 5)) #2001-02-0304:05

    (продолжение с предыдущей страницы)

    другие примеры форматированого вывода можно ныйти по следующим ссылкам pyformat.info w3schools.com
    Пример программы
    Подсчет слов

    #!/usr/bin/env python3#-*-coding:utf-8-*-

    #Программаподсчетасловвфайле

    import os #подульдлявзаимодействиясоперационнойсистемой,напримерпросмотрфайлов
    def get_words(filename):

    '''функципринимаетвкачествеаргументапутьдофайла'''

    with open(filename, encoding="utf8") as file: #этастрокаоткрываетфайл

    text = file.read() #читаемсодержимоефайлаизаписываемвсевпеременнуюtext

    text = text.replace("\n", " ") #преобразуемнаштекстводнудлиннуюстрокузаменивсимвол

    ˓→переводастрокинапробел

    text = text.replace(",", "").replace(".", "").replace("?", "").replace("!", "") #атакже

    ˓→уберемвсезапетые,пробелы,ипрочиезнакипунктуации

    text = text.lower() #перведемвсесловавстрочные,тоестьеслибыло"Началоизучения

    ˓→ЯзыкаПрограммирования",тобудет"началоизученияязыкапрограммирования"

    words = text.split() #создадимсписокслов("списки","выгледят","вот","так")

    words.sort() #методsortотсортируетвсесловапоалфовиту

    return words #этастрокавернетнаммассивстрок
    def get_words_dict(words):

    ''''этафункциясодастьсловарьгдеключь,этослово,азначение,тосколькоразоно

    ˓встречаетсявтексте'''

    words_dict = dict() #создаемпростойсловарь

    for word in words: #циклкоторыйперебираетнашсписокизаписываеткаждоеслововотдельную

    ˓→переменнуюword

    (continues on next page)


    if word in words_dict: #проверимусловие,еслисловоужеестьвсловаре,

    words_dict[word] = words_dict[word] + 1 #увеличимегозначениена1

    else:

    words_dict[word] = 1 #еслиневстречается,топростоприсвоимзначение1

    return words_dict #вернемнашсловарь
    def main():

    '''нашаглавнаяфункциявкоторойвыполняетсяосновнаялогиканашейпрограммы

    Вызываютсявсесозданныеранеефункции,передаютсязначения,выводятсянаэкранрезультаты'''

    filename = input("Введите путь к файлу: ") #функцияinput()выводитнаэкрансообщениеи

    ˓→ожидаетввода,всечтобудетвведенобудетзаписановпеременнуюfilename

    if not os.path.exists(filename): #проверяемсоществуетлинашфайлнадиске

    print("Указанный файл не существует") else:

    words = get_words(filename) #получаемсписокслов

    words_dict = get_words_dict(words) #получаемсловарьизсловиихколичествавтексте

    print("Кол-во слов: %d" % len(words)) #печатаемколичествословвтексте

    print("Кол-во уникальных слов: %d" % len(words_dict)) #печатаемколичествоуникальныхслов

    print("Все использованные слова:") #ивсеслова

    for word in words_dict: print(word.ljust(20), words_dict[word])
    if name == "main": main()

    (продолжение с предыдущей страницы)

        1. 1   2   3   4   5   6   7   8   9


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