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

  • Пример: сохраните как for.py)for iin Цикл for закончен)Вывод: $ python for.py1 23 Цикл for закончен. Цикл for

  • Пример: сохраните как break.py)while Введите что-нибудь : )if s==выход:break

  • Пример: сохраните как continue.py)while Введите что-нибудь : выход Слишком мало)continue

  • 9.5. Оператор continue 62 A Byte of Python (Russian), Версия Как это работает

  • Пример: сохраните как Привет, Мир блок, принадлежащий функции Конец функции вызов функции ещё один вызов функции Вывод: $ python Привет, Мир!Привет, Мир!Как это работает

  • Пример: сохраните как func_param.py)def printMax(a, b):if a>b:print(a,максимально)elif

  • Вывод: $ python func_param.py4 максимально максимальноКак это работает

  • Пример: сохраните как func_local.py)x=50def

  • Укус питона. Книга на вашем родном языке Переводы 7 1 Доступные переводы переводы 7 3 Предисловие 16 1


    Скачать 0.76 Mb.
    НазваниеКнига на вашем родном языке Переводы 7 1 Доступные переводы переводы 7 3 Предисловие 16 1
    АнкорУкус питона
    Дата09.11.2020
    Размер0.76 Mb.
    Формат файлаpdf
    Имя файлаAByteofPythonRussian-2.02.pdf
    ТипКнига
    #149233
    страница6 из 14
    1   2   3   4   5   6   7   8   9   ...   14
    Пример: сохраните как Введите целое число : 'Поздравляю, вы угадали Начало нового блока
    print
    (
    '(хотя и не выиграли никакого приза Конец нового блока
    elif
    guess
    <
    number:
    print
    (
    'Нет, загаданное число немного больше этого Ещё один блок Внутри блока вы можете выполнять всё, что угодно Нет, загаданное число немного меньше этого чтобы попасть сюда, guess должно быть больше, чем продолжение наследующей странице – англ. если (прим.перев.)
    2
    Соответствует булевому значению
    True
    (прим.перев.)
    3
    else – англ. иначе, в противном случае (прим.перев.)
    55

    A Byte of Python (Russian), Версия продолжение с предыдущей страницы)
    print
    (
    'Завершено'
    )
    # Это последнее выражение выполняется всегда после выполнения оператора Вывод python Введите целое число : Нет, загаданное число немного меньше этого.
    Завершено
    $ python Введите целое число : Нет, загаданное число немного больше этого.
    Завершено
    $ python Введите целое число : Поздравляю, вы угадали,
    (хотя и не выиграли никакого приза!)
    Завершено
    Как это работает:
    В этой программе мы принимаем варианты от пользователя и проверяем, совпадают ли они с заранее заданным числом. Мы устанавливаем переменной number значение любого целого числа, какого хотим. Например. После этого мы принимаем вариант числа от пользователя при помощи функции input()
    . Функции – это всего-навсего многократно используемые фрагменты программы. Мы узнаем о них больше в
    следующей главе
    Мы передаём встроенной функции input строку, которую она выводит на экран и ожидает ввода от пользователя. Как только мы ввели что-нибудь и нажали клавишу, функция возвращает строку, которую мы ввели. Затем мы преобразуем полученную строку в число при помощи и сохраняем это значение в переменную guess
    . Вообще-то,
    int
    – это классно на данном этапе вам достаточно знать лишь, что при помощи него можно преобразовать строку в целое число (предполагая, что строка содержит целое число).
    Далее мы сравниваем число, введённое пользователем, с числом, которое мы выбрали заранее. Если они равны, мы печатаем сообщение об успехе. Обратите внимание, что мы используем соответствующие уровни отступа, чтобы указать Python, какие выражения относятся к какому блоку. Вот почему отступы так важны в Python. Я надеюсь, вы придерживаетесь правила постоянных отступов, не так ли?
    Обратите внимание, что в конце оператора if стоит двоеточие – этим мы по. Оператор if

    56

    A Byte of Python (Russian), Версия 2.02
    казываем, что далее следует блок выражений.
    После этого мы проверяем, верно ли, что пользовательский вариант числа меньше загаданного, и если это так, мы информируем пользователя о том,
    что ему следует выбирать числа немного больше этого. Здесь мы использовали выражение elif
    , которое попросту объединяет в себе два связанных if else-if else выражения водно выражение if-elif-else
    . Это облегчает чтение программы, а также не требует дополнительных отступов.
    Выражения elif и также имеют двоеточие в конце логической строки,
    за которым следуют соответствующие блоки команд (с соответствующим числом отступов, конечно).
    Внутри блока оператора if может быть другой оператор if итак далее – это называется вложенным
    4
    оператором Помните, что части elif и необязательны. Минимальная корректная запись оператора if такова Да, это верно.'
    )
    После того, как Python заканчивает выполнение всего оператора if вместе сего частями elif ион переходит к следующему выражению в блоке,
    содержащем этот оператор if
    . В нашем случае это основной блок программы
    (в котором начинается выполнение программы, а следующее выражение это Завершено. После этого Python доходит до конца программы и просто выходит из неё.
    Хотя это и чрезвычайно простая программа, я указал вам на целый ряд вещей, которые стоит взять на заметку. Всё это довольно легко (даже удивительно легко для тех из вас, кто пришёл из мира C/C++). Поначалу вам придётся держать все эти вещи в памяти, но после некоторой практики вы привыкнете, и они вам покажутся вполне «естественными».
    Замечание для программистов на В Python нет оператора switch
    . Однако, при помощи конструкции if..elif..else можно достичь того же самого (а в некоторых случаях можно даже использовать
    словарь
    , чтобы сделать это быстро – англ. вложенный (прим.перев.)
    9.1. Оператор if
    57

    A Byte of Python (Russian), Версия 2.02 9.2 Оператор Оператор while позволяет многократно выполнять блок команд до тех пор, пока выполняется некоторое условие. Это один из так называемых операторов цикла. Он также может иметь необязательный пункт Пример сохраните как Введите целое число : 'Поздравляю, вы угадали это останавливает цикл Нет, загаданное число немного больше этого.'
    )
    else
    :
    print
    (
    'Нет, загаданное число немного меньше этого.'
    )
    else
    :
    print
    (
    'Цикл while закончен Здесь можете выполнить всё что вам ещё нужно

    print
    (
    'Завершение.'
    )
    Вывод:
    $ python Введите целое число : Нет, загаданное число немного меньше этого.
    Введите целое число : Нет, загаданное число немного больше этого.
    Введите целое число : Поздравляю, вы угадали.
    Цикл while закончен.
    Завершение.
    Как это работает:
    В этой программе мы продолжаем играть в игру с угадыванием, но преимущество состоит в том, что теперь пользователь может угадывать до тех пор,
    пока не угадает правильное число, и ему не придётся запускать программу заново для каждой попытки, как это происходило до сих пор. Это наглядно демонстрирует применение оператора Мы переместили операторы input и внутрь цикла while и установили. Оператор while

    58

    A Byte of Python (Russian), Версия переменную running в значение перед запуском цикла. Прежде всего проверяется, равно ли значение переменной running True
    , а затем происходит переход к соответствующему блоку. После выполнения этого блока команд условие, которым в данном случае является переменная running
    , проверяется снова. Если оно истинно, блок запускается снова, в противном случае происходит переход к дополнительному блоку, а затем – к следующему оператору.
    Блок else выполняется тогда, когда условие цикла while становится ложным (
    False
    )
    – это может случиться даже при самой первой проверке условия. Если у цикла while имеется дополнительный блок else
    , он всегда выполняется, если только цикл не будет прерван оператором break
    True и называются булевым типом данных, ивы можете считать их эквивалентными значениям
    1
    и
    0
    соответственно.
    Примечание для программистов на Помните, что у цикла while может быть блок else
    9.3 Цикл Оператор for..in также является оператором цикла, который осуществляет итерацию по последовательности объектов, те. проходит через каждый элемент в последовательности.
    Мы узнаем больше о
    последовательностях
    в дальнейших главах, а пока просто запомните,
    что последовательность – это упорядоченный набор элементов.
    Пример: сохраните как for.py
    )
    for
    i
    in Цикл for закончен'
    )
    Вывод:
    $ python for.py
    1 2
    3 Цикл for закончен. Цикл for

    59

    A Byte of Python (Russian), Версия Как это работает:

    В этой программе мы выводим на экран последовательность чисел. Мы генерируем эту последовательность, используя встроенную функцию Мы задаём два числа, и range возвращает последовательность чисел от первого числа до второго. Например,
    range(1,5)
    даёт последовательность, 2,
    3, 4]
    . По умолчанию range принимает значение шага, равное 1. Если мы зададим также и третье число range
    , оно будет служить шагом. Например,
    range(1,5,2)
    даст
    [1,3]
    . Помните, интервал простирается только до второго числа, те. не включает его в себя.
    Обратите внимание, что генерирует последовательность чисел, но только по одному числу зараз когда оператор for запрашивает следующий элемент. Чтобы увидеть всю последовательность чисел сразу, используйте. Списки
    6
    подробно рассматриваются в главе
    Структуры
    данных
    Затем цикл for осуществляет итерацию поэтому диапазону - for i in эквивалентно for i in [1, 2, 3, 4]
    , что напоминает присваивание переменной i по одному числу (или объекту) зараз, выполняя блок команд для каждого значения i
    . В данном случаев блоке команд мы просто выводим значение на экран.
    Помните, что блок else необязателен. Если он присутствует, он всегда выполняется один раз после окончания цикла for
    , если только не указан оператор
    break
    Помните также, что цикл for..in работает для любой последовательности. В нашем случае это список чисел, сгенерированный встроенной функцией range
    , нов общем случае можно использовать любую последовательность любых объектов В следующих разделах мы познакомимся с этим поближе.
    Примечание для программистов на Цикл for в Python радикально отличается от цикла for в C/C++. Программисты на заметят, что цикл for в Python похож на цикл foreach в C#. Программистам на Java это может напомнить конструкцию for (int i : в Java Если в C/C++ записать for (int i = 0; i < 5; i++)
    , тов этому соответствовало бы выражение for i in range(0,5)
    . Как видно, в Python цикл for проще, более выразителен и менее подвержен ошибкам – англ. диапазон, интервал (прим.перев.)
    6
    list – англ. список (прим.перев.)
    9.3. Цикл for
    60

    A Byte of Python (Russian), Версия 2.02 9.4 Оператор Оператор break служит для прерывания
    7
    цикла, те. остановки выполнения команд даже если условие выполнения цикла ещё не приняло значения или последовательность элементов не закончилась.
    Важно отметить, что если циклы for или while прервать оператором break, соответствующие им блоки else выполняться не
    будут.
    Пример: сохраните как break.py
    )
    while Введите что-нибудь : '
    )
    if
    s
    ==
    'выход'
    :
    break
    print
    (
    'Длина строки:'
    ,
    len
    (s))
    print
    (
    'Завершение'
    )
    Вывод:
    $ python Введите что-нибудь : Программировать весело.
    Длина строки Введите что-нибудь : Если работа скучна,
    Длина строки Введите что-нибудь : Чтобы придать ей весёлый тон -Длина строки Введите что-нибудь используй Длина строки Введите что-нибудь : выход
    Завершение
    Как это работает:
    В этой программе мы многократно считываем пользовательский вводи выводим на экран длину каждой введённой строки. Для остановки программы мы вводим специальное условие, проверяющее, совпадает ли пользовательский ввод со строкой 'выход. Мы останавливаем программу прерыванием цикла оператором break и достигаем её конца.
    Длина введённой строки может быть найдена при помощи встроенной функции Помните также, что оператор break может применяться ив цикле for
    7
    break – англ. разбивать, разрывать (прим.перев.)
    9.4. Оператор break
    61

    A Byte of Python (Russian), Версия 2.02 9.4.1 Поэтический Python Swaroop’а
    Для ввода строк здесь я использовал мини-стишок, который сам сочинил. Он называется
    Поэтический Python Swaroop’а
    8
    Программировать весело.
    Если работа скучна,
    Чтобы придать ей весёлый тон - используй Python!
    9.5 Оператор Оператор continue используется для указания Python, что необходимо пропустить все оставшиеся команды в текущем блоке цикла и продолжить
    9
    со следующей итерации цик- ла.
    Пример: сохраните как continue.py
    )
    while Введите что-нибудь : 'выход Слишком мало'
    )
    continue
    print
    (
    'Введённая строка достаточной длины Разные другие действия здесь...

    Вывод:
    $ python Введите что-нибудь : Слишком мало
    Введите что-нибудь : Слишком мало
    Введите что-нибудь : абв
    Введённая строка достаточной длины
    Введите что-нибудь : выход Poetic Python
    :
    Programming is fun.
    When the work is done,
    if you wanna make your work also fun:
    use Python!
    9
    continue – англ. продолжать (прим.перев.)
    9.5. Оператор continue
    62

    A Byte of Python (Russian), Версия Как это работает:

    В этой программе мы запрашиваем ввод со стороны пользователя, но обрабатываем введённую строку только если она имеет длину хотя бы в 3 символа.
    Итак, мы используем встроенную функцию len для получения длины строки,
    и если длина менее 3, мы пропускаем остальные действия в блоке при помощи оператора continue
    . В противном случае все остальные команды в цикле выполняются, производя любые манипуляции, которые нам нужны.
    Заметьте, что оператор continue также работает и с циклом for
    9.6 Резюме
    Мы увидели, как использовать три оператора для управления потоком команд и, а также связанные сними операторы break и. Это наиболее часто используемые конструкции Python, поэтому овладеть ими очень важно.
    Далее мы увидим, как создавать и использовать функции. Резюме

    Функции
    Функции – это многократно используемые фрагменты программы. Они позволяют дать имя определённому блоку команд стем, чтобы впоследствии запускать этот блок по указанному имени в любом месте программы и сколь угодно много раз. Это называется вызовом функции. Мы уже использовали много встроенных функций, как то len и
    range
    Функция – это, пожалуй, наиболее важный строительный блок любой нетривиальной программы (на любом языке программирования, поэтому в этой главе мы рассмотрим различные аспекты функций.
    Функции определяются при помощи зарезервированного слова def
    . После этого слова указывается имя функции, за которым следует пара скобок, в которых можно указать имена некоторых переменных, и заключительное двоеточие в конце строки. Далее следует блок команд, составляющих функцию. На примере можно видеть, что на самом деле это очень просто:
    Пример: сохраните как Привет, Мир блок, принадлежащий функции Конец функции вызов функции ещё один вызов функции
    Вывод:
    $ python Привет, Мир!
    Привет, Мир!
    Как это работает:
    Мы определили функцию с именем sayHello
    , используя описанный выше синтаксис. Эта функция не принимает параметров, поэтому в скобках не объявлены какие-либо переменные. Параметры функции – это некие входные данные, которые мы можем передать функции, чтобы получить соответствующий им результат

    A Byte of Python (Russian), Версия Обратите внимание, что мы можем вызывать одну и туже функцию много раза значит нет необходимости писать один и тот же код снова и снова Параметры функций
    Функции могут принимать параметры, те. некоторые значения, передаваемые функции для того, чтобы она что-либо сделала сними. Эти параметры похожи на переменные, за исключением того, что значение этих переменных указывается при вызове функции, и вовремя работы функции им уже присвоены их значения.
    Параметры указываются в скобках при объявлении функции и разделяются запятыми.
    Аналогично мы передаём значения, когда вызываем функцию. Обратите внимание на терминологию имена, указанные в объявлении функции, называются параметрами, тогда как значения, которые вы передаёте в функцию при её вызове, – аргументами.
    Пример: сохраните как func_param.py
    )
    def
    printMax
    (a, b):
    if
    a
    >
    b:
    print
    (a,
    'максимально'
    )
    elif
    a
    ==
    b:
    print
    (a,
    'равно'
    , максимально прямая передача значений, y)
    # передача переменных в качестве аргументов
    Вывод:
    $ python func_param.py
    4 максимально максимально
    Как это работает:
    Здесь мы определили функцию с именем printMax
    , которая использует два параметра с именами и b
    . Мы находим наибольшее число с применением простого оператора if..else и выводим это число.
    При первом вызове функции printMax мы напрямую передаём числа в качестве аргументов. Во втором случае мы вызываем функцию с переменными. Параметры функций

    A Byte of Python (Russian), Версия в качестве аргументов, назначает значение аргумента параметру, а значение аргумента y
    – параметру b
    . В обоих случаях функция printMax работает одинаково Локальные переменные
    При объявлении переменных внутри определения функции, они никоим образом не связаны с другими переменными с таким же именем за пределами функции – те. имена переменных являются локальными в функции. Это называется областью видимости переменной. Область видимости всех переменных ограничена блоком, в котором они объявлены, начиная сточки объявления имени.
    Пример: сохраните как func_local.py
    )
    x
    =
    50
    def
    func
    (x):
    print
    (
    'x равен, Замена локального x на, x)
    func(x)
    print
    (
    'x по-прежнему'
    , Вывод python func_local.py x равен Замена локального x на 2
    x по-прежнему Как это работает:

    При первом выводе значения, присвоенного имени x
    , впервой строке функции использует значение параметра, объявленного в основном блоке, выше определения функции.
    Далее мы назначаем значение. Имя локально для нашей функции. Поэтому когда мы заменяем значение в функции, объявленный в основном блоке, остаётся незатронутым.
    Последним вызовом функции print мы выводим значение x
    , указанное в основном блоке, подтверждая таким образом, что оно не изменилось при локальном присваивании значения в ранее вызванной функции. Локальные переменные

    A Byte of Python (Russian), Версия 2.02 10.3 Зарезервированное слово Чтобы присвоить некоторое значение переменной, определённой на высшем уровне программы (те. не в какой-либо области видимости, как то функции или классы, необходимо указать Python, что её имя нелокально, а глобально (global). Сделаем это при помощи зарезервированного слова global
    . Без применения зарезервированного слова global невозможно присвоить значение переменной, определённой за пределами функции.
    Можно использовать уже существующие значения переменных, определённых за пределами функции (при условии, что внутри функции не было объявлено переменной с таким же именем. Однако, это не приветствуется, и его следует избегать, поскольку человеку,
    читающему текст программы, будет непонятно, где находится объявление переменной.
    Использование зарезервированного слова global достаточно ясно показывает, что переменная объявлена в самом внешнем блоке.
    1   2   3   4   5   6   7   8   9   ...   14


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