• A
  • A
  • A
  • АБB
  • АБB
  • АБB
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта

Основы и методология программирования Cеминары группы 108-2

Помощь:
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 на слова, между которыми стоит разделитель


from string import *
whitespace, punctuation


Поиск символа в строке:
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 * - загрузка пространства имен из модуль

Структура условного оператора 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() - убрать спец. символы конца строки
f.close() - закрыть фаайл
Dictionary

Списки 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.sort(reverse=True|False) - сортировка
sum(l) - сумма элементов списка
l.pop(number) - вынуть значение под номером number
del l[::] - удалить интервал с шагом
l.remove(element) - удаление элемента


Объекты
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) - генератор случайных чисел; чисел в интервале; случайный выбор элемента из списка