Язык Python. Уроки Python. Python Lessons Oleg Kishinskii мар. 30
Скачать 406.31 Kb.
|
Операторы языка PythonБольшинство предложений (логических строк) в программах содержат выражения. Простой пример выражения: 2 + 3. Выражение можно разделить на операторы и операнды. Операторы – это некий функционал, производящий какие-либо действия, который может быть пред- ставлен в виде символов, как например +, или специальных зарезервированных слов. Операторы могут производить некоторые действия над данными, и эти данные называются операндами. В нашем случае 2 и 3 – это операнды. Базовые операторыдалее стоит привести таблицу операторов:
андает Управляющие операторыУсловные операторы (if/else) Оператор if используется для проверки условий: если условие верно, выполняется блок выражений (называемый “if-блок”), иначе выполняется другой блок выражений (называемый “else-блок”). Блок “else” является необязательным. Предупреждение: В языке Python блоки разедяются табами или пробелами Запомните эмпирическое правило: хотя вы можете использовать для отступов пробелы или та- буляции, их смешивание внутри блока обычно не будет удачной идеей применяйте либо то, либо другое. Формально табуляция считается достаточным количеством пробелов, чтобы сместить теку- щую строку на расстояние, кратное 8, и код будет работать в случае согласованного смешивания табуляций и пробелов. Тем не менее, такой код может быть сложнее изменять. Хуже того, смеши- вание табуляций и пробелов затрудняет чтение кода целиком, не говоря уже о правилах синтаксиса Python — табуляции в редакторе сменившего вас программиста могут выглядеть сов сем не так, как в вашем редакторе. number = 23 guess = int(input('Введите целое число : ')) if guess == number: print('Поздравляю, вы угадали,') #Здесь начинаетсяновыйблок print('(хотя и не выиграли никакого приза!)') #Здесь заканчиваетсяновыйблок elif guess < number: print('Нет, загаданное число немного больше этого.') #Ещёодинблок #Внутриблокавыможетевыполнятьвсё,чтоугодно... else: print('Нет, загаданное число немного меньше этого.') #чтобыпопастьсюда,guessдолжнобытьбольше,чемnumber print('Завершено') #Этопоследнеевыражениевыполняетсявсегдапослевыполненияоператораif Пример использования оператора if Оператор while Оператор while — самая универсальная конструкция для итераций в языке Python. Выражаясь про- стыми терминами, он многократно выполняет блок операторов (обыч но с отступом) до тех пор, пока проверка в заголовочной части оценивается как истин ное значение. Это называется “циклом”, потому что управление продолжает возвра щаться к началу оператора, пока проверка не даст ложное зна- чение. Когда результат проверки становится ложным, управление переходит на оператор, следующий после блока while. Совокупный эффект в том, что тело цикла выполняется многократно, пока проверка в заголовочной части дает истинное значение. Если проверка оцени вается в ложное значение с самого начала, тогда тело цикла никогда не выполнится и оператор while пропускается. В своей самой сложной форме оператор while состоит из строки заголовка с вы ражением проверки, тела с одним или большим количеством оператором с отступами и необязательной части else, которая выполняется, если управление покидает цикл, а оператор break не встретился. Python продолжает оценивать выражение проверки в строке заголовка и выполняет операторы, вложенные в тело цикла, пока проверка не возвратит ложное значение: Цикл for #Расмотримнесколькопримеров for х in ["spam", "eggs", "ham"]: print(x, end=' ') #результатомэтогоциклабудетстрокаspameggsham Оператор for..in также является оператором цикла, который осуществляет итерацию по последова- тельности объектов, т.е. проходит через каждый элемент в последовательности. Мы узнаем больше о последовательностях в дальнейших главах, а пока просто запомните, что последовательность – это упорядоченный набор элементов. Примечание: оратите мнимание на параметр end=“ „ , по умолчанию фукция print() завершает вывод символом конца строки «n», в случае с end=“ „ мы меняем его на пробел. Таким обазом мы выведем сообщения на экран в строку. for i in range(1, 5): print(i) else: print('Цикл for закончен') Вложенные циклы for Давайте теперь взглянем на цикл for, который сложнее тех, что мы видели до сих пор. В приведенном ниже примере иллюстрируется вложение операторов и конструк ция else цикла for. Имея список объек- тов (items) и список ключей (tests), код ищет каждый ключ в списке объектов и сообщает о результате поиска: items = ["ааа", 111, (4, 5), 2.01] tests = [(4, 5) , 3.14] (continues on next page) for key in tests: for item in items: if item — key: print (key, ”was found”) break else: print(key, "not found!") (продолжение с предыдущей страницы) Оператор break Оператор break служит для прерывания[7] цикла, т.е. остановки выполнения команд даже если условие выполнения цикла ещё не приняло значения False или последовательность элементов не закончилась. while True: s = input('Введите что-нибудь : ') if s == 'выход': break print('Длина строки:', len(s)) print('Завершение') Важно отметить, что если циклы for или while прервать оператором break, соответствующие им блоки else выполняться не будут. Оператор continue while True: s = input('Введите что-нибудь : ') if s == 'выход': break if len(s) < 3: print('Слишком мало') continue print('Введённая строка достаточной длины') #Разныедругиедействияздесь... Оператор continue используется для указания Python, что необходимо пропустить все оставшиеся ко- манды в текущем блоке цикла и продолжить[9] со следующей итерации цикла. Ну и в качестве маленького примера давайте нарисуем в консоли Ёлочку :) #!/usr/bin/env python3#-*-coding:utf-8-*- '''программарисуетвконсолиелочку''' ''' * *** ***** ******* ********* *********** ''' #Пример-1 for i in range(1, 20, 2): #функцияrange()указываетначальноезначение,конечноезначениеишаг. (continues on next page) print('{:^20}'.format('*' * i)) #Печатаемсимволвыравниваяегопоцентру #Пример-2SPACE = ' ' STRAR = '*' rows = int(input('Укажите размер ёлочки: ')) spaces = rows-1 stars = 1 for i in range(rows): print( (SPACE*spaces) + (STRAR*stars) + (SPACE*spaces) ) stars += 2 spaces -= 1 (продолжение с предыдущей страницы) |