zip() в Python? #tpyОна берет по одному элементу из каждого итерируемого объекта и создает кортеж из них.
names = ['Анна', 'Борис']
scores = [85, 90]
result = list(zip(names, scores))
print(result)
[('Анна', 85), ('Борис', 90)]- Можно объединять любое количество итерируемых объектов.
- Если длины объектов отличаются,
zip() остановится на минимальной длине.- параллельной обработки списков,
- создания словарей,
- объединения данных и многого другого.
Please open Telegram to view this post
VIEW IN TELEGRAM
2❤🔥3 3🔥2
Python можно посчитать Евклидово расстояние между двумя точками всего в одну строку?) #tpydist, которая входит в стандартную библиотеку math.В контексте 27 задачи ЕГЭ, особенно полезная вещь!!)
import math
point1 = (x1, y1)
point2 = (x2, y2)
distance = math.dist(point1, point2)
print(distance)
- Простая и удобная в использовании.
- Работает для точек в 2D, 3D и более измерениях.
⚠️ math.dist() доступна только в Python 3.8 и новее.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤🔥3🔥3
- переменные, операторы, функции, базовые типы данных
- арифметика, логика, побитовые операции, приведение типов
-
if, elif, else, вложенные условия, тернарный оператор-
for, while, вложенные циклы, break, continue, pass, else- операции, методы, форматирование (
f'-строки, format(), %), срезы- методы, вложенные списки, особенности кортежей
- отличия от списков, методы, практика
- объявление, вызов,
return- чтение, запись, практика
-
map(), filter(), zip(), enumerate()-
itertools, math, random, ipaddress, fnmatch и др.- Обработка исключений, декораторы, алгоритмы (DBSCAN, K-means, Евклид), lambda-функции
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥4❤3🔥2
range(10**9) почти не занимает памяти? #tpyrange() хранит только начальное, конечное значения и шаг. Он не создает список всех чисел сразу, а генерирует числа по мере необходимости!
range(10**9) в памяти хранится лишь небольшая информация: - старт (по умолчанию 0)
- финиш (10^9)
- шаг (по умолчанию 1)
Please open Telegram to view this post
VIEW IN TELEGRAM
2❤8👍3🔥2
Python! #tpy
🆘 # (... может каких то еще, вроде ток эти две ) 🆘1️⃣ upper() - переводит строку в верхний регистр.
"hello".upper() → "HELLO"2️⃣ lower() - переводит строку в нижний регистр.
"HELLO".lower() → "hello"3️⃣ capitalize() - делает первую букву заглавной.
"hello".capitalize() → "Hello"4️⃣ title() - каждое слово с заглавной буквы.
"hello world".title() → "Hello World"5️⃣ strip() - удаляет пробелы с обоих концов.
"hello".strip() → "hello"6️⃣ lstrip() / rstrip() - удаляет пробелы слева/справа.7️⃣ replace(old, new) - заменяет подстроку.
"abc".replace("a", "x") → "xbc"8️⃣ split(sep) - разбивает строку по разделителю.
"a,b,c".split(",") → ["a", "b", "c"]0⃣ join(list) - собирает строку из списка.
",".join(["a", "b", "c"]) → "a,b,c"🔟 startswith(str) / endswith(str) - проверяет начало/конец строки.
"hello".startswith("he") → True1️⃣ 1️⃣ find(sub) - ищет подстроку и возвращает индекс.
"hello".find("ll") → 21️⃣ 2️⃣ count(sub) - считает количество вхождений.
"hello".count("l") → 21️⃣ 3️⃣ isdigit() - проверяет, состоит ли строка из цифр.
"123".isdigit() → True1️⃣ 4️⃣ isalpha() - проверяет, только ли буквы.
"abc".isalpha() → True1️⃣ 5️⃣ isalnum() - буквы или цифры без пробелов.
"a1".isalnum() → True1️⃣ 6️⃣ islower() / isupper() - проверяет регистр.1️⃣ 7️⃣ zfill(width) - дополняет нулями слева.
"7".zfill(3) → "007"1️⃣ 8️⃣ format() - подставляет значения в строку.
"{}".format(5) → "5"1️⃣ 0⃣ f-строки (Python 3.6+) - удобный формат.
f"{5}" → "5"2️⃣ 0️⃣ in – проверка наличия подстроки.
"a" in "abc" → True
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥5🔥2
.index() в Python #tpyВы когда-нибудь сталкивались с задачей - найти позицию элемента в списке или строке? Тогда метод
.index() - то что вам нужно).index()? fruits = ['киви', 'банан', 'груша', 'банан', 'виноград']
pos = fruits.index('банан')
print(pos) # Выведет: 1
-
.index() ищет 'банан' и возвращает его первую позицию - 1 ⚠️ Важно: если элемента в последовательности нет - .index() вызовет ошибку ValueError.
Чтобы избежать этого, можно воспользоваться оператором in для проверки, на наличие элемента.🔥 Совет:
Для поиска всех вхождений элемента — используйте цикл или генератор, а .index() отлично подходит для быстрого определения первой позиции.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥4👍2🔥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👍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