.py
файлове (например gameoflife.py
).
gameoflife.py
python
без аргументи.Когато не сте сигурни, просто пробвайте.
$ python
>>> 5 + 10
15
>>> a = 5
>>> b = a + 10
>>> print(b)
15
>>> a * 2
10
>>> a ** 2
25
>>> "hello" + ', ' + "world"
"hello, world"
В интерактивната конзола, help()
показва документацията на всяка функция, клас или тип.
>>> help(str)
>>> help(5)
>>> help(SomeClass)
>>> help(some_function)
my_var = 'spam'.upper()
print(my_var) # SPAM
;
#
е коментар+
, -
, *
, /
, '%', **
(степенуване)
2 ** 4 ** 8
(степенуване)>>> "hello".upper()
"HELLO"
>>> len("абвгдеж")
7
>>> "hello"[1]
"e"
>>> help(str)
\n
, \t
и пр.True
и False
, не забравяйте главните буквиnull
в другите езици.
None
.>>> type(5.5)
<class 'float'>
>>> type(type)
<class 'type'>
>>> type(type(type(type)))
<class 'type'>
type()
velocity = distance / 60
а = 5
type(a) # <class 'int'>
a = 'test'
type(a) # <class 'str'>
list
dict
tuple
set
help(dict)
my_list = []
my_list = list()
list
= масив = array
my_list = []
my_list.append('word')
my_list.append(5)
my_list.append(False)
my_list[1] == 5
my_other_list = ['foo', 'bar', 'quux']
len(my_other_list) # 3
del my_other_list[1]
print(my_other_list) # ['foo', 'quux']
'foo' in my_other_list # True
False in my_list # True
ages = {'Кай': 2, 'Бобо': 3}
ages['Йоан'] = 26
ages['Стефан'] = 18
ages['Кирил'] = 35
ages['Николай'] = 28
print(ages['Кирил']) # 35
'Николай' in ages # True
ages.get('Георги') # None
ages.get('Георги', 'няма такъв') # няма такъв
dict
= hashtable = associative array
>>> args = (9.8, 3.14, 2.71)
>>> args[2]
2.71
>>> args[1] = 22/7
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
tuple
= кортеж = n-торка = списък, който не може да бъде променян
>>> unique_numbers = {2, 3, 5, 6}
>>> unique_numbers
{2, 3, 5, 6}
>>> unique_numbers.add(5)
>>> unique_numbers
{2, 3, 5, 6}
>>> unique_numbers.remove(5)
>>> unique_numbers
{2, 3, 6}
>>> my_list = [5, 1, 6, 6, 2, 3, 5, 5]
>>> set(my_list)
{1, 2, 3, 5, 6}
set
= множество = списък без повтарящи се елементи
a = 5
a += 2
a # 7
5
, а кара а
да сочи към друга стойност - 7
.
tuple
s, True
, False
, None
, дата/час (datetime
).a = [1, 2, 3]
a.append(4)
a # [1, 2, 3, 4]
a
. Списъците са mutable.
dict
или елемент на set
могат да се ползват само immutable стойности.if
.. elif
.. else
while
for
if a == 5:
print("a is five")
elif a == 3 and not b == 2:
print("a is three, b is not two")
else:
print("a is something else")
and
и or
и not
вместо &&
, ||
, !
Булеви тестове:
a = True
if a:
print("a is True")
if not a:
print("a is not True")
В контекста на булевите операции като лъжа се интерпретират следните стойности:
False
None
0
, 0.0
, 0j
)
False
съответно.Всички останали стойности се интерпретират като истина.
тестове за принадлежност:
my_list = [1, 2, 3, 4]
if 1 in my_list:
print('1 is in my list')
if 5 not in my_list:
print('5 is not in my list')
if
, тяло на функция, и т.н.) се определя с индентацията му спрямо предишния блок.
while a > 5:
a -= 1
print("a is {}".format(a))
primes = [3, 5, 7, 11]
for e in primes:
print(e ** 2) # 9 25 49 121
people = {'bob': 25, 'john': 22, 'mitt': 56}
for name, age in people.items():
print("{} is {} years old".format(name, age))
# bob is 25 years old
# john is 22 years old
# ...
for
е като foreach
в другите езици
for i in range(0, 20):
print(i)
# 0 1 2 3 4 5 6 .. 19
for i in range(0, 20, 3):
print(i)
# 0 3 6 9 12 15 18
for i in range(20, 0, -1):
print(i)
# 20 19 18 17 16 15 .. 1
for i in range(20, 0, -3):
print(i)
# 20 17 14 11 8 5 2
for
и while
.
Няма.
def say_hello(name, from):
return "Hello, {}! -- {}".format(name, from)
return
, иначе автоматично се връща None
def multiply(a, b=2):
return a * b
multiply(5) # 10
multiply(5, 10) # 50
def is_pythagorean(a=2, b=3, c=4):
return a * a + b * b == c * c
is_pythagorean(b=5) # a = 2, c = 4
is_pythagorean(1, c=3) # a = 1, b = 3
def varfunc(some_arg, *args, **kwargs):
#...
varfunc('hello', 1, 2, 3, name='Bob', age=12)
# some_arg == 'hello'
# args = (1, 2, 3)
# kwargs = {'name': 'Bob', 'age': 12}
args
(tuple
от агументи)
kwargs
(dict
от имена на аргументи и съответните им стойности)
args
и kwargs
могат да се променят, но това е конвенция, която не трябва да нарушавате