Мы используем файлы cookies для улучшения работы сайта НИУ ВШЭ и большего удобства его использования. Более подробную информацию об использовании файлов cookies можно найти здесь, наши правила обработки персональных данных – здесь. Продолжая пользоваться сайтом, вы подтверждаете, что были проинформированы об использовании файлов cookies сайтом НИУ ВШЭ и согласны с нашими правилами обработки персональных данных. Вы можете отключить файлы cookies в настройках Вашего браузера.
Адрес: 109028, г. Москва, Покровский бульвар, д. 11, корпус S, комната S938 (станции метро "Чистые пруды" и "Курская").
Телефон: +7(495) 772-95-90 *27319
Помощь:
help('print') - помощь по синтаксису команды
Основы:
#,""" """" - комментарий
True, False - логические константы
and,or,not -логические операции с True и False
// - деление нацело
** - возведение в степень
== - сравнение
a,b=1,2 - присваивание
Операции с типом:
type() - определение типа
isinstance(n,int) - сравнение типа переменной с заданным типом
int('1') str(1) - преобразование типа
eval('1+2') - вычисление строки
ord - переводит символ в его ASCII код
chr - переводит ASCII код в соответствующий символ
structshape() - определение структуры данных
Ввод-вывод:
input("Input name:") - ввод с минимальным интерфейсом
print ('YES' if int(input())>0 else "NO") - параметрическая печать
Строки:
s='Python'
s1+s2 - конкатенация
s*2 - повтор
len(s) - длина
s[0]='P' - 0-й символ
s[:4] - с 0 по 3 символы
s[2:] - со 2 по последний символы
s[:]==s - вся строка
s[::2] - каждая 2 буква
s[::-1] - строка в обратном порядке
s.upper() - перевод в верхний регистр
s.lower() - перевод в нижний регистр
'P'.islower() 'p'.isupper() - проверка символа на регистр
s.capitalize() - перевод в нижний регистр всех символов и перевод в верхний регистр первого символа.
s.find(t,p1,p2) - поиск строки t в интервале range(p1,p2)
s.split(' ') - формирование списка по разбиению строки s на слова, между которыми стоит разделитель
a,b=0,1
"{0:1d}={1:2d}".format(a,b)
from string import *
whitespace, punctuation
splitline() - для многострочного текста
split('-',number) - по номеру вхождения в подстроку
bytes = string1.encode('utf-8') - перевод в неизменяемую последовательность 0-255 ASCII кодов.
repr() - отображение спец. символов
Поиск символа в строке:
def find(word,letter):
index=0
while index<len(word):
if word[index]==letter:
return index
index=index+1
return -1
Модуль:
import math - загрузка модуля
print(math)
math.pi
from math import pi
print(pi)
from math import * - загрузка пространства имен из модуль
def ro(i):
print(round(pi,i))
if __name__ == "__main__":
import sys
ro(int(sys.argv[1]))
Структура условного оператора if elif else:
if ():
elif ():
else:
Определение функции, рекурсия:
def fac(n):
if n==0:
return 1
else:
return n*fac(n-1)
print(fac(int(input()))
Цикл while и команды break, continue:
def countdown(n):
while n>0:
n=n-1
if n==0:
break
elif n==2:
continue
print (n+1)
print('Blastoff!')
Структура цикла for:
fruit='pineapple'
for char in fruit:
print(char)
Работа с файлом:
fin=open(input.txt) - открыть файл
line=fin.readline() - считать строку
word=line.strip() - убрать спец. символы конца строки
fin.seek(n) - перетик байту n+1
fin.close() - закрыть фаайл Dictionary
from os import *
path.abspath(' fn ' ) - полный путь
path.exists('fn') - проверка существования
path.isdir(), path.isfile() - проверка типа
listdir(getcwd()) - список каталогов и файлов
def walk(dirname):
for name in os.listdir(dirname):
path = os.path.join(dirname, name)
if os.path.isfile(path):
print(path)
else:
walk(path)
with open('input.txt') as file:
Запуск процессов
import os
cmd = 'ls -l'
fp = os.popen(cmd)
Модули
if __name__ == '__main__':
Списки list:
a=[1,2,3]
b=[4,5,6]
print(a+b) - [1,2,3,4,5,6] - сложение=объединение
l=['a','b','c']
l.append('d') - присоединение элемента= l+['d']
l.extend([1,2]) - присоединение списка
l.insert(number,element) - вставка на позицию с номером number
l.sort(reverse=True|False) - сортировка
sum(l) - сумма элементов списка
l.pop(number) - вынуть значение под номером number
del l[::] - удалить интервал с шагом
l.remove(element) - удаление элемента
l.count(element) - число вхождений
l.index(element,range1,range2) - индекс элемента
Множества:
s={1,2,3}
s2=set() - пусто множество (не словарь)
s2.add(1) - добавление
s2.add(4)
s.update(s2) - объединение без повторений
s.discard(5) - удаление без исключения
s.remove(4) - с исключением
s.pop(1)
s.clear() - очистка
s.add(3)
s.union({1,2,10}) - объединение
s.intersection(s2) - пересечение
s.difference({1}) - разность
s.issubset(set(range(0,20)) - подмножество
s.issuperset({2}) - надмножество (объемлющее)
Объекты
is - проверка хранения объектов
Присваивание строк, списков - по ссылке (константной или нет).
def del_list_first(l):
return l[1:]
def del_list_first_BAD(l):
l=l[1:]
Копирование списка по значению
k=l[:]
Время
from time import *
start=time()
...
end=time()
print(end-start,' seconds')
Словари
d=dict()
d['a']='aaa'
l=d.values() - значения в словаре в виде списка
l=d.keys() - индексы в словаре в виде списка
d.get('a',b) - возвращает значение по индексу 'a' или значение по умолчанию b
d.items() - список из наборов
def histogram(s):
d=dict()
for c in s:
if c not in d:
d[c]=1
else:
d[c]+=1
return d
def invert_dict(d):
inverse=dict()
for key in d:
val=d[key]
if val not in inverse:
inverse[val]=[key]
else:
inverse[val].append(key)
return inverse
Исключения
raise Error, 'input error '
Глобальные переменны в теле функции
been_called=False
def gl():
global been_called
been_called=True
Наборы (tuple)
t='a','b' - не изменяем как и строка.
t=('A',)+t[1]
a,b=b,a
divmod(a,b) - a=bq+r, return q,r
addr='student@python.org'
name,domain=addr.split('@')
def printall(*args):
print(args)
* - преобразование в набор
zip -список из наборов после слияния
def has_match(t1,t2):
for x,y in zip(t1,t2):
if x==y:
return True
return False
d=dict(zip('abc',range(len('abc')))
from random import *
random(), random(n,m), choice(list) - генератор случайных чисел; чисел в интервале; случайный выбор элемента из списка
from fractions import *
Fraction(2, 4)
Лямбда-функции
x = lambda x: x**2
x(3)
Генераторы:
s = set(range(10))
{x**2 for x in s if x % 2 == 1}
d = {'a': 1, 'b': 2, 'c': 3}
{value:key for key, value in d.items()}
def fib(n):
a, b = 0, 1
while a < n:
yield a
a, b = b, a + b
list(fib(1000))
None
Исключения:
try:
x=1/int(input())
except DivisionError:
x = None
else:
print(x)
assert len(s) <= 79, 'Long string'
if len(s) > 79:
raise AssertionError('Long string')
Регулярные выражения
from re import *
^,$ - символы начала, конца строки
.(точка) – один произвольный символ, например: a..a – произвольная цепочка из четырех символов, начинающаяся и оканчивающаяся на a;
[ ]– набор символов, т.е. любой символ из заданного набора, например: [a-e0] – любая буква от a до e или цифра 0;
a* – повторение цепочки a нуль и более раз, например: b* – последовательность из произвольного количества букв b (в том числе – нулевого, т.е. пустая цепочка);
a+ – повторение цепочки a один и более раз, например: b+ – последовательность из произвольного, не равного нулю, количества букв b;
a? – опциональная цепочка a (входит 0 или 1 раз), например: ab? – цепочка a или ab;
a{n} – повторение цепочки a ровно n раз;
a{n,} – повторение a как минимум n раз;
a{n,m} – вхождение a от n до m раз;
( )– группировка, например: (ab)+ – последовательность из произвольного, не равного нулю, числа повторений строки ab;
a|b – альтернатива, например: b|a+ – буква b или последовательность букв a;
\ – экранирование следующего специального символа, чтобы он воспринимался как обычный символ, например: a\.b. – цепочка из четырех символов: буквы a, точки, буквы b и произвольного символа.
\b совпадает с границей слова
\d, \D - любая цифра, (любой символ, кроме цифры)
pattern=re.compile('^.$')
search(pattern,string) - поиск
search(pattern,string).groups() - небезопасный поиск групп в ()
sub(r'\bword\b','another_word') - замена
re.VERBOSE - подробное регулярное выражение
Классы
class T:
pass
def __init__(self, n): __all__ = [ ]
def __new__(self):
def __iter__(self):
def __next__(self):
def __repr__(self):
def __str__(self) - print(x)
https://docs.python.org/3/tutorial/stdlib.html
https://docs.python.org/3/tutorial/stdlib2.html