who = 'Python'
print('Hello,',who)
# простые (Скалярные) типы данных
"""
- целые числа        - int
- дробные числа      - float
- комплексные числа  - complex
- логические флаги   - bool
- строки             - str, bytes
"""

i1 = 1
i2 = -2
i3 = 0b010101  # двоичная
i4 = 0o455     # восьмеричная
i5 = 0xaa      # шестнадцатеричная
print(i4)
print(i5)
print(i3)

f1 = 1.23
f2 = -1.23
f3 = 12e-3
f4 = 12e3
print(f3)
print(f4)

c1 = 3.14j      # комплексные числа

b1 = True
b = False

s1 = 'Hello'
s2 = b'Hello'   # байтовая строка
s3 = r'Hello'   # сырая строка, экранирование выключено
s4 = "Hello"
s5 = '''

'''             # многострочный текст
s6 = """

"""             # многострочный текст


# Составные (сложные) типы данных
'''
- кортеж      - tuple
- список 	  - list
- словари     - dict
- множество   - set
- объекты     - object
'''
t1 = (1,'Иван Иванович', True, ('Python',))
l1 = [1,'Иван Иванович', True, ('Python',)]
d1 ={
    'id':1,
    'fio':'Иван Иванович',
    'is_developer': True,
    'skills': ['python']
}

s1 = {1, 2, 3}
s2 = set()

print(d1['fio'], d1['skills'][0])
print(t1, t1[1],t1[3][0])
l1[2] = False
print(l1, l1[1], l1[3][0])

# Специальные типы данных
'''
- пустота (остутствие значения) - None
'''

a = None

# Как определить тип переменной?

print(type(a), type(l1))

# Как выполнить явное приведение типа?

s66 = '123'
i66 = int(s66)
print(type(i66))

i77 = '255'
i78 = 255
print(int(i77, 8), hex(255), oct(255), bin(255))

# Операторы
'''
- Арифметические:  + - * / %(остаток от деления) // **
- Сравнение:       ==(ровно) !=(не ровно) <>(не ровно) >(больше) < (меньше) <= >=
- Присваивание:    = =+ -= *= /= %= //= **=
- Логические:      and or not
- Принадлежности:  in(есть ли элемент в списке), not in
- Тождественности: is, not is
- Побитовые:       &(и) |(или)  ^(xo исключающая или) ~(отрицание) << >> (сдвиги влево и вправо)

'''

# i = 1
# i = i + 1
# i += 1
