Занятие 6. Условия, списки, циклы, чтение файла ФББ МГУ имени М.В.Ломоносова

advertisement
Занятие 6. Условия,
списки, циклы,
чтение файла
11-12 октября
ФББ МГУ имени М.В.Ломоносова
2013 год
Повторение: переменные, функции
1
Переменная:
Название
например, foo
Тип
например, float
Значение
например, 5.7
foo = 5.7
print foo
Функция:
Название
например, fooFunc
Список аргументов
например, (name, age)
Тело
список команд
Что "возвращает"
если не указано прямо,
(через команду return) ,
то все равно возвращает
величину None
специального типа
def fooFunc (name, age):
print "My name is %s" % name
print "I am %i years old" % age
fooFunc("Dasha", 100)
Оператор условия: if …
name = raw_input(“Enter your
age = int(raw_input(“How old
if age < 16:
print “Oh, %s! You are a
print “%s is %s years old” %
name, please: “))
are you? ”))
child, darling!” % name
(name,age)
< – операция сравнения
• Ее операнды в данном случае числа. Вместо age, естественно,
подставляется значение этой переменной.
• Результат – булево значение, т.е. либо False, либо True (первая
заглавная обязательна). Эти значения называют логическими
константами.
• Переменные, содержащие булевы значения, имеют тип bool.
• Оператор if определяет следует ли выполнять операции в теле
оператора (все команды со сдвигом) или нет: если условие True,
то выполнять, если False, то пропустить
2
Операторы if, elif, else
3
…долгое вычисление значений dry и wet…
rain = wet > dry Операция сравнения
команда,
которая
if rain:
двоеточие
будет
print "Do not forget an umbrella!" работать
отступ
happy = True
Логическая операция
sun = True
if rain and sun:
print "Gribnoi dogd'! :)"
elif rain and happy:
print "Sweet rain ^_^"
else:
print "Gloomy rain :("
только
если
условие
True
4
Список (list)
Список – это переменная особого типа list: она
содержит несколько значений (одного или разных
типов), и можно:
• менять значения;
• добавлять новые и удалять существующие.
квадратные скобки, через запятые
stud_list = ["Anna", "Victor", "Sergei"]
stud_list[0]
stud_list[1]
a = stud_list[1]
stud_list[1] = "Dasha"
Можно
Можно!
stud_list[2]
Обращение к элементам списка 5
по очереди: цикл for
двоеточие
for foo in ["Lena", "Vasya", "Petya"]:
print foo
отступ
print "Cycle done!"
Строчка 1: foo =
Строчка 2: print
Строчка 1: foo =
Строчка 2: print
Строчка 1: foo =
Строчка 2: print
Строчка 3: print
"Lena"
foo
"Vasya"
foo
"Petya"
foo
"Cycle done!"
Обращение к элементам списка 6
по очереди: цикл for
stud_list = ["Anna", "Victor", "Sergei"]
1) Функция len(x) возвращает длину x. Если x – кортеж
или список, то возвращается количество элементов в нем
2) Функция range(n) возвращает список из целых
чисел от 0 до n - 1.
[ 0, 1, 2 ]
3
for foo in range(len(stud_list)):
print foo, stud_list[foo]
отступ
двоеточие
Проход по символам строки
Строка длины n (тип str) может рассматриваться как
набор строк длины 1 из n элементов:
• Длина строки узнается через len(foostring);
• Обращение к i-тому символу строки foostring
(! начиная с нулевого) через синтаксис foostring[i];
• Символ строки изменить нельзя.
foostring = "Students will learn or die"
a = len(foostring)
a = 26
b = foostring[7]
b = "s"
for symbol in foostring:
print symbol
То же
for i in range(len(foostring)):
самое
print foostring[i]
7
Чтение файла построчно
1) Функция open(filename) возвращает объект типа
file, полученный открытием существующего файла с
именем filename и доступный для чтения
! Обратите внимание: использовать обычное имя файла
(например, "file.txt" можно только если этот файл лежит в
той же директории, что и ваш скрипт)
name = "Dibrova_YP_0000001.fasta"
foofile = open (name)
n = 1
for temp_str in foofile:
print "String %i: %s" % (n, temp_str)
n = n + 1
Закрывает файл (функция
foofile.close()
принадлежит классу file,
 следующее занятие)
8
Удаление конца строки
Строки, которые вы получаете из файла, будут
содержать символ конца строки \n (косая черта
показывает, что имеется ввиду не буква n)
Его можно удалить с помощью функции strip()
Эта функция не является встроенной функцией
Python; она принадлежит классу str ( следующее
занятие!)
foostring = "Students will learn or die\n"
print foostring
print автоматически переходит на новую строку
после конца строки; появится пустая строка
new_str = foostring.strip("\n")
print new_str
В new_str символа конца строки \n уже нет
9
Кортеж (tuple)
10
1) Кортеж – это переменная особого типа tuple:
похож на список, т.к. содержит несколько значений
круглые скобки, через запятые
stud_tuple = ("Anna", "Victor", "Sergei")
stud_tuple[0]
stud_tuple[1]
stud_tuple[2]
print "My name is %s, my age is %i" % ( "Dasha", 26 )
2) Кортеж неизменяемый: добавить в него новые элементы
или поменять существующие нельзя
a = stud_tuple[1]
stud_tuple[1] = "Dasha"
Можно
Нельзя!
Цикл while
11
Цикл while – это выделенный фрагмент кода, который
повторяется вновь и вновь до тех пор, пока заданная
булевая переменная (условие) сохраняет значение True
rain = 5 > 3
двоеточие
if rain:
print "Do not forget an umbrella!"
отступ
Сравните
rain = 5 > 3
двоеточие
while rain:
print "Keep your umbrella open!"
отступ
Применение цикла while
foostring = "Students will learn or die"
for i in range(len(foostring)):
print foostring[i]
Сравните
i = 0
while i < len(foostring):
print foostring[i]
i = i + 1
12
Download