<jupyter_start><jupyter_text>Основы питона  Про выполнение команд* Shift + Enter - выполнить код в ячейке и перейти на следующую* Ctrl + Enter - выполнить и остаться Немного полезностей и про markdown:* перевести ячейку из кода в комментарии можно с помощью 'Esc + m' или просто 'm', если вы не еще не успели сделать ее активной* добавить новую ячейку можно аналогичным образом через 'b'* Jupyter понимает эти команды и в русской раскладке* все это можно сделать и через верхнюю панель, но рано или поздно она начнет вас раздражать* можно писать формулы, список горячих клавиш Ctrl+Shift+P (Command+Shift+P для мака)* https://www.dataquest.io/blog/jupyter-notebook-tips-tricks-shortcuts/* для выделения можно использовать решетки или просто **выделить пожирнее**  Целые и дробные числа<jupyter_code># тип присваивается автоматически
snake_case_integer = 4
print(snake_case_integer)
# для вывода в jupyter notebook не обязательно использовать print
snake_case_integer
print(snake_case_integer)
# как определить тип переменной
type(snake_case_integer)
camelCaseFloatNumber = 4.0<jupyter_output><empty_output><jupyter_text>Одно из отличий версий питона 2.7 и 3+<jupyter_code>3 / 2
""" многострочные комментарии
во второй версии питона по умолчанию деление целочисленное
в python 2.7 надо писать float(4) / 3 или 4 / 1.0 / 3

еще вариант - импортировать
from __future__ import division
"""
4 / 3<jupyter_output><empty_output><jupyter_text>Остаток от деления<jupyter_code>5 % 3<jupyter_output><empty_output><jupyter_text>Возведение в степень<jupyter_code>5 ** 3<jupyter_output><empty_output><jupyter_text>Целочисленное деление<jupyter_code>5 // 3<jupyter_output><empty_output><jupyter_text>УпражнениеВыведите на экран реверсную запись трехзначного числа. Пример: вместо 361 вывести 163<jupyter_code>num = 361<jupyter_output><empty_output><jupyter_text>Решение<jupyter_code>num = 361

while num>0:
    a = num%10
    num = num//10
    print(a,end="")
a = input("Введите данные: ")
i = -1
c = ""

while i >= -1 * len(a):
    c = c + a[i]
    i = i - 1
print("Реверсной записию:", a, ", является:", c)
num = 361
num = str(num)[::-1]
num = int(num)
num<jupyter_output><empty_output><jupyter_text>Основные математические функцииhttps://docs.python.org/3/library/math.html<jupyter_code>import math
math.factorial(5)
5 * 4 * 3 * 2 * 1
# используйте автодополнение
math.factorial(5)<jupyter_output><empty_output><jupyter_text>УпражнениеПосчитайте значение выражения:$e^{(x-\mu)\pi}$Как писать такие формулыhttp://jupyter-notebook.readthedocs.io/en/stable/examples/Notebook/Typesetting%20Equations.html<jupyter_code>x = 4
mu = 2<jupyter_output><empty_output><jupyter_text>Решение<jupyter_code>x = 4
mu = 2
pi = math.pi
e = math.e # число Эйлера
a = (x-mu)*pi

print(e**a)
x = 4
mu = 2
exp = math.exp((x-mu)*math.pi)
print(exp)<jupyter_output>535.4916555247646<jupyter_text>Строки<jupyter_code>title = 'сборная России в финале чм'
title = 'сборная России в "финале" чм'
title
# первая буква слова
title[0]
# все буквы с индексами 0, 1, 2
title[:3]<jupyter_output><empty_output><jupyter_text>**А в строчке выше буква с индексом 3 не вошла в результат**<jupyter_code># последняя буква
title[-1]
# количество букв в строке
len(title)<jupyter_output><empty_output><jupyter_text>Булевый тип данных<jupyter_code>True False
1 > 4
1 < 4
logs = 'user_1 \t apple \t 65371 \nuser_2 \t samsung \t 35300 \nuser_3 \t lg \t 43243 \n'
print(logs)
'apple' in logs
if 'apple' in logs:
    print('В наличии')
else:
    print('Нету')<jupyter_output>В наличии<jupyter_text>УпражнениеДана строка с периодическим сигналом signal. Известно, что период укладывается в диапазон от 3 до 10 цифр. Вам необходимо написать код, который берет первые n цифр и сравнивает результат со строкой от n+1 до 2n. Тем самым определяя период сигнала.Для ускорения проверки вы можете использовать цикл:for n in range(3, 11):<jupyter_code>signal = '10101001101010011010100110101001101010011010100110101001'
signal[:3]
signal[3:6]
signal[:3] == signal[3:6]<jupyter_output><empty_output><jupyter_text>Решение<jupyter_code>for i in range(3, 11):
    p = signal[:i] == signal[i:(2*i)]
    print("Период:", i, p)<jupyter_output>Период: 3 False
Период: 4 False
Период: 5 False
Период: 6 False
Период: 7 False
Период: 8 True
Период: 9 False
Период: 10 False<jupyter_text>Замена подстроки<jupyter_code>title
title.replace('России', 'РФ')
title = title.replace('России', 'РФ')
title<jupyter_output><empty_output><jupyter_text>Удаление символов в начале и конце строки<jupyter_code>'  123 '.strip()
'  123\n'.strip()
'  123x'.strip('x')<jupyter_output><empty_output><jupyter_text>Вывод формата результатаhttps://pythonworld.ru/osnovy/formatirovanie-strok-metod-format.html<jupyter_code>pi_estimation = 22/7
type(pi_estimation)
type(str(pi_estimation))
# в этой строке специально ошибка
result = 'Значение 22/7 (' + pi_estimation + ') является приближением числа pi (' + math.pi + ')'
result = 'Значение 22/7 (' + str(pi_estimation) + ') является приближением числа pi (' + str(math.pi) + ')'
result
from IPython.display import Image
Image('do_not_format_like_this.jpg')<jupyter_output><empty_output><jupyter_text>Устаревший синтаксис форматирования<jupyter_code>result = 'Значение 22/7 (%d) является приближением числа pi (%d)' % (pi_estimation, math.pi)
result<jupyter_output><empty_output><jupyter_text>Более запоминающийся вариант<jupyter_code>result = 'Значение 22/7 ({:.4%}) является приближением числа pi ({:.4f})'.format(pi_estimation, math.pi)
result
# указание порядка
'{0}{1}{0}'.format('abra', 'cad')<jupyter_output><empty_output><jupyter_text>Вариант в 3.x питоне<jupyter_code>f'Значение 22/7 ({pi_estimation:.4f}) является приближением числа pi ({math.pi:.4f})'<jupyter_output><empty_output><jupyter_text>УпражнениеКоличество показов баннера = 10\*\*6, кликов по баннеру = 525Выведите отношение кликов к показам в следующем формате:CTR баннера равен 0.052%<jupyter_code>shows = 10**6
clicks = 525
pr = clicks / shows
ctr = 'CTR баннера равен {:.3%}'.format(pr)
ctr<jupyter_output><empty_output><jupyter_text>Перевод числа в строки и наоборот<jupyter_code>string_num = '3.1415'
# для целых чисел есть функция int
float_num = float(string_num)
float_num
# из числа в строку - функция str
type(str(float_num))
float('3.14')
pass<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.11666666666666667, 'fraction_numerical': 0.04, 'mean_word_length': 6.474495848161329, 'pattern_counts': {'":': 0, '<': 91, '<?xml version=': 0, '>': 93, 'https://': 3, 'lorem ipsum': 0, 'www.': 1, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '23', 'dir': 'jupyter-structured-clean-dedup', 'id': '447720', 'license': 'MIT', 'n_tokens_mistral': 2839, 'n_tokens_neox': 2923, 'n_words': 571, 'path': 'Lectures notebooks/(Lectures notebooks) netology Mathematics and Python/1. Python basics/Python basics.ipynb', 'repo_name': 'Alex110117/data_analysis', 'size': '6300'}