max() | min()Поиск максимального или минимального числа.
print(max(12, 5), min(12, 5))
# 12 5
nums = [4, 17, -3, 9]
print(max(nums), min(nums))
# 17 -3
str() | int()Переход между строкой и числом.
s = str(19803)
n = int(s) - 1
print(n) # 19802
abs()Убирает знак -- важно для длины числа и модульных операций.
n = -1234
len(str(abs(n)))
sqrt() | x**0.5Корень -- иногда нужен в проверках (в 17-м редко, но бывает).
form math import sqrt
print(x**0.5, sqrt(x))
gcd(a, b)НОД -- полезно при задачах, где условие связано с делителями.
from math import gcd
floor() | ceil()Округление вниз|вверх (редко в 17-м, но иногда встречается).
from math import floor, ceil
int(a, b)Перевод числа из системы счисления b в десятичную.
int("1011", 2) # 11Сумма цифр
sum(int(x) for x in str(n))
Последняя цифра и “обрезание” числа
n % 10 # последняя цифра
n // 10 # без последней цифры
Перебор троек/пар через zip()
for a, b, c in zip(a, a[1:], a[2:]): ...
for a, b in zip(a, a[2:]): ...
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥4👍2🔥1 1
import * #tpyИногда при решении задач ЕГЭ (например 8 номера) учащиеся подключают модули с помощью записи:
from itertools import *
⚠️ Однако это может привести к конфликту имён и ошибкам в программе!
count = 0
from itertools import *
for p in permutations('abc'):
count += 1
print(count, p)
TypeError: unsupported operand type(s) for +=: 'type' and 'int'
⚙️ Причина в том, что в модуле itertools уже существует объект с именем count, и при импорте через * он перезаписывает нашу переменную count.
В итоге переменная становится функцией, и операция += 1 вызывает ошибку.
count = 0
from itertools import permutations
for p in permutations('abc'):
count += 1
print(count, p)
1 ('a', 'b', 'c')
2 ('a', 'c', 'b')
3 ('b', 'a', 'c')
4 ('b', 'c', 'a')
5 ('c', 'a', 'b')
6 ('c', 'b', 'a')🙂 теперь конфликт имен не возникает, так как мы импортировали, только то, что нам нужно, и count - это все так же наша переменная.
Напоминаю, что ещё больше полезного контента по образованию и саморазвитию вы найдёте на каналах моих коллег, которые я собрал для вас в одну папку
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5🔥2❤🔥1
В модульной арифметике отрицательные числа дают “обратный” остаток.
Например,
-14 % 10 → 6, а не 4.print(abs(-14) % 10) # 4
Поэтому используют модуль, чтобы получать нужный результат.
У отрицательного числа в строке появляется минус:
"-123" -- длина 4. Поэтому используем abs():print(len(str(abs(-123)))) # 3
Модуль убирает знак и даёт корректную длину.
zip для перебора?• Перебор троек:
for a, b, c in zip(a, a[1:], a[2:]):Так получается “скользящее окно” из трёх элементов подряд:
(a[0], a[1], a[2]), (a[1], a[2], a[3]) …• Перебор пар через одно:
for a, b in zip(a, a[2:]):Каждая пара -- это элемент и тот, что стоит через один после него:
(a[0], a[2]), (a[1], a[3]) …Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥4👍1🔥1
max() | min()Поиск максимального или минимального числа.
print(max(12, 5), min(12, 5))
# 12 5
nums = [4, 17, -3, 9]
print(max(nums), min(nums))
# 17 -3
str() | int()Переход между строкой и числом.
s = str(19803)
n = int(s) - 1
print(n) # 19802
abs()Убирает знак -- важно для длины числа и модульных операций.
n = -1234
len(str(abs(n)))
sqrt() | x**0.5Корень -- иногда нужен в проверках (в 17-м редко, но бывает).
form math import sqrt
print(x**0.5, sqrt(x))
gcd(a, b)НОД -- полезно при задачах, где условие связано с делителями.
from math import gcd
floor() | ceil()Округление вниз|вверх (редко в 17-м, но иногда встречается).
from math import floor, ceil
int(a, b)Перевод числа из системы счисления b в десятичную.
int("1011", 2) # 11Сумма цифр
sum(int(x) for x in str(n))
Последняя цифра и “обрезание” числа
n % 10 # последняя цифра
n // 10 # без последней цифры
Перебор троек/пар через zip()
for a, b, c in zip(a, a[1:], a[2:]): ...
for a, b in zip(a, a[2:]): ...
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4❤🔥4👍2🔥2