In [26]:
print(4j + 2 + 3j)
print(complex (2,7))
print((2+7j).real + (2+7j ).imag)
print((2+7j).conjugate ())
(2+7j)
(2+7j)
9.0
(2-7j)
In [27]:
x=2
print(x)
2
In [6]:
x = input("Hello: ")
print(x)
x = int(input("Hello2: "))
print(x)
Hello: sesd
sesd
Hello2: 1asd
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-6-8a07eeeaca94> in <module>()
      1 x = input("Hello: ")
      2 print(x)
----> 3 x = int(input("Hello2: "))
      4 print(x)

ValueError: invalid literal for int() with base 10: '1asd'
In [11]:
x = int(input())
if x < 0:
    x = 0
    print("Negative")
elif x == 0:
    print("Zero")
else:
    print("Positive")
0.0
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-11-18819a1c14f3> in <module>()
----> 1 x = int(input())
      2 if x < 0:
      3     x = 0
      4     print("Negative")
      5 elif x == 0:

ValueError: invalid literal for int() with base 10: '0.0'
In [26]:
x = 5 if p > q else 3
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-26-f62937ff41bb> in <module>()
----> 1 x = 5 if p > q else 3

NameError: name 'p' is not defined
In [12]:
#comment
a, b = 0, 1 # множественное присваивание
while b < 60:
    print(b)
    a, b = b, a+b
1
1
2
3
5
8
13
21
34
55
In [28]:
#comment
a, b = 0, 1 # множественное присваивание
while b < 60:
    print(b+" ", end="")
    a, b = b, a+b
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-28-b57090887917> in <module>()
      2 a, b = 0, 1 # множественное присваивание
      3 while b < 60:
----> 4     print(b+" ", end="")
      5     a, b = b, a+b

TypeError: unsupported operand type(s) for +: 'int' and 'str'
In [18]:
# - однострочный комментарий
""" – многострочный комментарий. Доступен через __doc__ или help(…) """

def sum(a, b):
    """
    Returns sum of a and b
    """
    return a+b
print (sum.__doc__)
help(sum)
    Returns sum of a and b
    
Help on function sum in module __main__:

sum(a, b)
    Returns sum of a and b

Списки

In [40]:
a = ['spam', 'eggs', 100, 1234]
a[2] = a[2] + 23
print(a)

print(a[::-1])

#Присваивание срезу:
a[0:2] = [1, 12] # замена
print(a)

a[0:2] = [] # удаление
print(a)

a[1:1] = ['bletch', 'xyzzy'] # вставка
print(a)
['spam', 'eggs', 123, 1234]
[1234, 123, 'eggs', 'spam']
[1, 12, 123, 1234]
[1, 12, 123, 1234]
[1, 'bletch', 'xyzzy', 12, 123, 1234]
In [21]:
#Четыре способа добавить элементы в список.
a_list = ['a']
a_list = a_list + [2.0, 3]
print(a_list)

a_list.append(True)
print(a_list)

a_list.extend(['four', 'Ω'])
print(a_list)

a_list.insert(0, 'Ω')
print(a_list)
['a', 2.0, 3]
['a', 2.0, 3, True]
['a', 2.0, 3, True, 'four', 'Ω']
['Ω', 'a', 2.0, 3, True, 'four', 'Ω']
In [22]:
#Удаление элементов из списка:.
a_list = ['a', 'b', 'new', 'mpilgrim', 'new']
del a_list[1]
print(a_list)

a_list.remove('new')
print(a_list)

print(a_list.pop())
print(a_list)
print(a_list.pop(0))
['a', 'new', 'mpilgrim', 'new']
['a', 'mpilgrim', 'new']
new
['a', 'mpilgrim']
a
In [23]:
a_list.remove(334)
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-23-bf90164e1509> in <module>()
----> 1 a_list.remove(334)

ValueError: list.remove(x): x not in list
In [24]:
a_list = ['a', 'b', 'new', 'mpilgrim', 'new']
a_list.count('new')
print('new' in a_list)

print(a_list.index('mpilgrim'))
print(a_list.index('new'))
print(a_list.index('c'))
True
3
2
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-24-dbdcf19e5c70> in <module>()
      5 print(a_list.index('mpilgrim'))
      6 print(a_list.index('new'))
----> 7 print(a_list.index('c'))

ValueError: 'c' is not in list

Кортежи

In [44]:
#Значения менять нельзя!
t = 12345, 54321, 'hello!'
print(t[0])

print(t)

u = t, (1, 2, 3, 4, 5) # могут быть вложенными
print(u)

empty = ()

x = [3]
x.append(x)
print(str(x))
12345
(12345, 54321, 'hello!')
((12345, 54321, 'hello!'), (1, 2, 3, 4, 5))
[3, [...]]

FOR, RANGE

In [7]:
list = ['It', 'is an', 'interesting', 'lecture']
for x in list:
    print(x, end=" ")
print()

#для удобства
for i in range(10):
    print(i)
    
range(5, 10) # диапазон
range(0, 10, 3) # задаем шаг
It is an interesting lecture 
0
1
2
3
4
5
6
7
8
9
Out[7]:
range(0, 10, 3)

СЛОВАРИ

In [10]:
dict = {} # пустой словарь
circus = {"lion" : 4, "hippo" : 1, "giraffe" : 2}
print(circus["hippo"])

circus["snake"] = 7 # добавление ключа
circus["lion"] = 5 # изменение ключа
print(circus)
1
{'snake': 7, 'hippo': 1, 'lion': 5, 'giraffe': 2}
In [12]:
len(circus) #количество элементов в словаре

circus["cat"] = "yes, please!" #разные типы значений
circus[42] = "number" # разные типы ключей
del circus["hippo"] # удаление ключа
print(circus)

print(circus.keys()) # возвращает список ключей
#[42, ‘cat’, ‘lion’, ‘giraffe’, ‘snake’]
print(circus.values()) # возвращает список значений
#[‘number’, ‘yes, please!’, 5, 2, 7]
print('dog' in circus) #проверяет наличие ключа в словаре
#False

#При обращении по несуществующему ключу – исключение KeyError
{'cat': 'yes, please!', 'giraffe': 2, 'lion': 5, 42: 'number', 'snake': 7}
dict_keys(['cat', 'giraffe', 'lion', 42, 'snake'])
dict_values(['yes, please!', 2, 5, 'number', 7])
False

Исключения

In [13]:
print(circus['dog'])
#Traceback(most recent call last):
# File "<pyshell#1>", line 1, in <module>
#  print circus['dog']
#KeyError: 'dog‘
---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
<ipython-input-13-87e919c67ffe> in <module>()
----> 1 print(circus['dog'])
      2 #Traceback(most recent call last):
      3 # File "<pyshell#1>", line 1, in <module>
      4 #  print circus['dog']
      5 #KeyError: 'dog‘

KeyError: 'dog'
In [14]:
#Можно поймать это исключение:
try:
    print(circus['dog'])
except KeyError:
    print("No such key in the dictionary")
No such key in the dictionary

Функции

In [17]:
#Передача аргументов в функцию - по ссылке.
def dostuff(mylist) :
    """ Appends [1, 2, 3] to the list. """
    mylist.append([1, 2, 3])
    mylist= ['Katya', 'Kolya', 'Vitya']
    mylist.append('Sveta')
    print(mylist)

a = [4, 5, "f"]
dostuff(a) # результат: [‘Katya’, ‘Kolya’, ‘Vitya’, ‘Sveta’]
print(a) # результат: [4, 5, ‘f’, [1, 2, 3]]
['Katya', 'Kolya', 'Vitya', 'Sveta']
[4, 5, 'f', [1, 2, 3]]
In [18]:
# НО!

def square(n) :
    n *= n 
a = 3
square(a)
print(a)
#Результат выполнения: 
#3
#Потому что число – простой тип, оно передается по значению.
3

Переменные

In [21]:
#Переменные внутри функции – локальные.
#Поиск переменных: сперва среди локальных, потом среди глобальных, потом среди встроенных.

n = 10
def printn():
    print(n) # переменная n видна внутри функции
def changeAndPrintN():
    n = 2# теперь n –это локальная переменная
    print(n)
printn()
changeAndPrintN()
print(n)
#Результат выполнения:
#10
#2
#10
10
2
10
In [24]:
n = 10
def reallychangeandprintn():
    global n# переменная n –глобальная
    n = 2
    print(n)
reallychangeandprintn()
print(n)
#Результат: 
#2
#2
#global a, b, c - указывает, что идентификаторы a, b, c в текущем блоке ссылаются на глобальные переменные
2
2
In [25]:
#Как передать в функцию произвольное число аргументов:
#f([formal_args,] *tuple): tuple–кортеж, содержащий аргументы, не входящие в список формальных параметров
def mean(*args):
    sum = 0.
    for a in args:
        sum += a
    return sum/len(args)
print(mean(1, 2, 3, 4, 5)) # результат: 3
print(mean(40, 3)) # результат: 21.5
3.0
21.5