Опубликован: 22.12.2005 | Доступ: свободный | Студентов: 16909 / 520 | Оценка: 4.18 / 3.71 | Длительность: 16:16:00
ISBN: 978-5-9556-0109-0
Лекция 1:

Введение в программирование на языке Python

Лекция 1: 12345678 || Лекция 2 >

Программа на Python

Программа на языке Python может состоять из одного или нескольких модулей. Каждый модуль представляет собой текстовый файл в кодировке, совместимой с 7-битной кодировкой ASCII. Для кодировок, использующих старший бит, необходимо явно указывать название кодировки. Например, модуль, комментарии или строковые литералы которого записаны в кодировке KOI8-R, должен иметь в первой или второй строке следующую спецификацию:

# -*- coding: koi8-r -*-

Благодаря этой спецификации интерпретатор Python будет знать, как корректно переводить символы литералов Unicode-строк в Unicode. Без этой строки новые версии Python будут выдавать предупреждение на каждый модуль, в котором встречаются коды с установленным восьмым битом.

О том, как делать программу модульной, станет известно в следующих лекциях. В примерах ниже используются как фрагменты модулей, записанных в файл, так и фрагменты диалога с интерпретатором Python. Последние отличаются характерным приглашением >>>. Символ решетка ( # ) отмечает комментарий до конца строки.

Программа на Python, с точки зрения интерпретатора, состоит из логических строк. Одна логическая строка, как правило, располагается в одной физической, но длинные логические строки можно явно (с помощью обратной косой черты) или неявно (внутри скобок) разбить на несколько физических:

print a, " - очень длинная строка, которая не помещается в", \
   80, "знакоместах"

Примечание:

Во всех примерах в основном используется "официальный" стиль оформления кода на Python в соответствии с документом "Python Style Guide", который можно найти на сайте http://python.org

Основные алгоритмические конструкции

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

Последовательность операторов

Последовательные действия описываются последовательными строками программы. Стоит, правда, добавить, что в программах важны отступы, поэтому все операторы, входящие в последовательность действий, должны иметь один и тот же отступ:

a = 1
b = 2
a = a + b
b = a - b
a = a - b
print (a, b)

Что делает этот пример? Проверить свою догадку можно с помощью интерактивного режима интерпретатора Python.

При работе с Python в интерактивном режиме как бы вводится одна большая программа, состоящая из последовательных действий. В примере выше использованы операторы присваивания и оператор print.

Оператор условия и выбора

Разумеется, одними только последовательными действиями в программировании не обойтись, поэтому при написании алгоритмов используется еще и ветвление:

if a > b:
  c = a
else:
  c = b

Этот кусок кода на Python интуитивно понятен каждому, кто помнит, что if по-английски значит "если", а else - "иначе". Оператор ветвления имеет в данном случае две части, операторы каждой из которых записываются с отступом вправо относительно оператора ветвления. Более общий случай - оператор выбора - можно записать с помощью следующего синтаксиса (пример вычисления знака числа):

if a < 0:
  s = -1
elif a == 0:
  s = 0
else:
  s = 1

Стоит заметить, что elif - это сокращенный else if. Без сокращения пришлось бы применять вложенный оператор ветвления:

if a < 0:
  s = -1
else:
  if a == 0:
    s = 0
  else:
    s = 1

В отличие от оператора print, оператор if-else - составной оператор.

Лекция 1: 12345678 || Лекция 2 >
Андрей Егоров
Андрей Егоров

def bin(n):

"""Цифры двоичного представления натурального числа """

if n == 0:

   return []

n, d = divmod(n, 2)

return bin(n) + [d]

print bin(69)

Что значит здесь return[] ? Возвращает список? Непонятно какой список? Откуда он? 

 

 

Асмик Гаряка
Асмик Гаряка

Почему при вычислении рейтинга не учитывается уровень, как описано? Для всех курсов У=1, хотя для Специалист должно быть 2.