is
для сравнения строк и чисел в Python
? #tpy🔍 Для небольших чисел и коротких строк Python часто использует кэш, поэтому is может иногда возвращать True.
Но для больших чисел или длинных строк это не гарантировано - объекты могут быть разными.
a = 256
b = 256
print(a is b) # True (кэш)
x = "hello"
y = "hello"
print(x is y) # True (кэш)
a = 1000
b = 1000
print(a is b) # False (разные объекты)
==
для сравнения значений, is
- только чтобы проверить, ссылаются ли переменные на один объект!Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥5🔥3❤2
Автор: Джобс Е.
Уровень: Базовый
Назовём нетривиальным делителем натурального числа его делитель, не равный единице и самому числу. Найдите все натуральные числа, принадлежащие отрезку [106732567; 152673836] и имеющие ровно три нетривиальных делителя. Для каждого найденного числа запишите в ответе само число и его наибольший нетривиальный делитель. Найденные числа расположите в порядке возрастания.
Например, для числа 2018 имеем следующие делители 2 и 1009. Поэтому результатом (не принимая во внимание количества делителей) будет пара чисел 2018 1009.
def divisors(x):
div = []
for j in range(2, int(x**0.5)+1):
if x % j == 0:
div.append(j)
div.append(x // j)
return sorted(set(div))
for x in range(106732567, 152673836+1):
if (x**0.5).is_integer():
d = divisors(x)
if len(d) == 3:
print(x, max(d))
Ответ:
112550881 1092727
131079601 1225043
141158161 1295029
def divisors(x):
- Объявление функции divisors, которая принимает число x и возвращает его делители.
div = []
- Создание пустого списка div для хранения делителей.
for j in range(2, int(x**0.5)+1):
- Цикл по возможным делителям от 2 до квадратного корня из x (включительно).
if x % j == 0:
- Проверка, делится ли x на j без остатка.
div.append(j)
- Если j - делитель, добавляем его в список.
div.append(x // j)
- Добавляем парный делитель (x разделить на j).
return sorted(set(div))
- Возвращаем отсортированный список уникальных делителей.
for x in range(106732567, 152673836+1):
- Основной цикл по числам от 106732567 до 152673836 включительно.
if (x**0.5).is_integer():
- Проверка, является ли x полным квадратом (квадратный корень - целое число).
d = divisors(x)
- Если x - полный квадрат, находим все его делители.
if len(d) == 3:
- Проверяем, что у числа ровно 3 делителя (не считая 1 и само число).
print(x, max(d))
- Если условие выполняется, выводим число и его наибольший делитель.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4❤🔥2🔥1
.env
, и зачем он нужен? #tpyЕсли вы когда-либо работали с проектами на
Python
, Node.js
или других языках, то, скорее всего, сталкивались с файлами .env
. Но что они из себя представляют?В нем хранятся важные настройки: ключи API, пароли, настройки базы данных и другие конфиденциальные данные.
🔒 Почему это удобно?
- Безопасность: секретные данные не хранятся прямо в коде, их легко исключить из системы контроля версий.
- Гибкость: можно легко менять настройки между разными окружениями - тестовым, продакшеном и локальной разработкой.
- Удобство: все важные переменные сосредоточены в одном месте, их легко найти и обновить.
.env
- это безопасный способ хранения конфиденциальной информации, если он используется локально и не попадает в публичные источники.⚠️ Ведь его публичное размещение - серьёзная уязвимость!
Please open Telegram to view this post
VIEW IN TELEGRAM
2❤4❤🔥2🔥2
17799
#kege по информатике #ЕГЭ8Автор: В. Зарянкин
Уровень: Средний
Все четырёхбуквенные слова, в составе которых могут быть только русские буквы А, Р, Г, У, М, Е, Н, Т, записаны в алфавитном порядке и пронумерованы начиная с 1.
Вот начало списка:
1. АААА
2. АААГ
3. АААЕ
4. АААМ
5. АААН
...
Под каким номером в списке идёт последнее слово, в котором все буквы различны и все символы располагаются в алфавитном порядке?
from itertools import *
s = sorted('АРГУМЕНТ')
for n, p in enumerate(product(s, repeat=4), 1):
word = ''.join(p)
if len(word) == len(set(word)):
if list(word) == sorted(word):
print(n)
Ответ: 2424
from itertools import *
- Импорт всех функций из модуля itertools (в данном случае используется product)
s = sorted('АРГУМЕНТ')
- Создание отсортированного списка букв из слова "АРГУМЕНТ": ['А', 'Г', 'Е', 'М', 'Н', 'Р', 'Т', 'У']
for n, p in enumerate(product(s, repeat=4), 1):
- Цикл по всем возможным комбинациям букв длиной 4 (с повторами)
- product(s, repeat=4) генерирует декартово произведение списка s на себя 4 раза
- enumerate добавляет нумерацию, начиная с 1
word = ''.join(p)
- Объединение кортежа p в строку (слово из 4 букв)
if len(word) == len(set(word)):
- Проверка, что все буквы в слове уникальны (длина слова равна длине множества его букв)
if list(word) == sorted(word):
- Проверка, что буквы в слове идут в алфавитном порядке (слово равно своему отсортированному варианту)
print(n)
- Если оба условия выполнены, выводится номер текущей комбинации
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥3❤1👍1
Если хотите добавить свой канал в папку, пишите: @kubik2566
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥4🔥2 2
Примеры кодов для задач 9, 17, 24, 26, 27 из ЕГЭ:
for M in open('9.txt'):
M = [int(i) for i in M.split()]
print(M)
M = [int(i) for i in open('17.txt')]
print(M)
s = open('24.txt').readline()
▶️ Считываем только первую строку файла.
2⃣6⃣
ans = []
for M in open('26.txt'):
M = [int(i) for i in M.split()]
ans.append(M)
▶️ Сохраняем каждую строку как список чисел, а потом собираем всё в общий список.
2⃣7⃣
f = open('27.А.txt').readlines()[1:]
for M in f:
M = [float(i.replace(',','.')) for i in M.split()]
x, y = M[0], M[1]
print(x, y)
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍4❤🔥2🔥2❤1