TGViewer
Channel Public Channel
Python Lounge: работа и стажировки для программистов

Python Lounge: работа и стажировки для программистов

@python_lounge

Здесь можно найти интересующую вас работу и стажировки для программистов, а так же полезные статьи про Python.

Размещение вакансии только - @perezvonyubot

Ссылка на канал: @python_lounge

Мы входим в сеть promopoisk.com

Реклама: @adtgassetsbot
Subscribers
3.72K
Photos
93
Videos
0
Links
1.2K

Showing posts older than #53 · Back to latest

Older Posts 20 shown
Post #52 2.17K
В Python блок else может быть представлен не только после if, но и после for и while. Код внутри else выполняется, только если цикл не был прерван с помощью break.

Типичный пример - поиск чего-либо в цикле с использованием break при нахождении:

for х in [2, 3, 4, 5]:
if x % 2 == 1:
print (x)
break
else:
print('Нет нечётных элементов в списке')

# Output: 3

for х in [2, 4, 6]:
if x % 2 == 1:
print(x)
break
else:
print('Нет нечётных элементов в списке')

# Output: Нет нечётных элементов в списке
Post #49 2.1K
Post #47 1.9K
Иногда приходится писать код с несколькими контекстными менеджерами, что выглядит не особо лаконично:

with open('f') as f:
with open('g') as g:
with open('h') as h:
pass


Начиная с Python 2.7 и 3.1, вы можете использовать всего один with:

o = open
with o('f') as f, o('g') as g, o('h') as h:
pass


До этого вы могли бы использовать функцию nested из contextlib:

from contextlib import nested
with nested(o('f'), o('g'), o('h')) as (f, g, h):
pass
Post #45 1.8K
In : int('୧৬𝟙༣')
Out: 1613

0, 1, 2, 3, 4, 5, 6, 7, 8, 9 - не единственные символы, которые считаются цифрами. Python следует правилам Юникода и обрабатывает несколько сотен символов как цифры, полный список вот здесь.

Это влияет на такие функции, как int, unicode.isdecimal и даже re.match:

In : int('෯')
Out: 9

In : '٢'.isdecimal()
Out: True

In : bool(re.match('\d', '౫'))
Out: True
Post #44 1.75K
Функция exit создана для удобства работы в интерактивном режиме, однако не рекомендуется использовать её внутри скриптов. По факту она также просто поднимают исключение, и при попытке вызова без скобок напишут подсказку о правильном способе выхода из интерпретатора:

>>> exit
Use exit() or Ctrl-D (i.e. EOF) to exit
>>> exit()
nameless@pycoders:~$

Использовать sys.exit стоит потому, что эта функция лежит в стандартном модуле и будет всегда там доступна. Также это довольно явный способ выразить своё желание завершить программу.

import sys

try:
# code
except:
sys.exit()
Post #43 1.69K
Если вы хотите итерировать несколько, например, списков, то функция zip станет хорошим выбором. Она возвращает новый список кортежей, в которых находятся попарно элементы из списков.

nums = [1, 2, 3]
words = ['one', 'two', 'three']

for w, n in zip(words, nums):
print(f'{w} = {n}')

# one = 1
# two = 2
# three = 3


Обратите внимание, что zip принимает итерируемые объекты как отдельные аргументы, а не как список аргументов. Чтобы распаковать значения, вы можете использовать оператор *.

list(zip(*zip(words, nums)))
# [('one', 'two', 'three'), (1, 2, 3)]
Post #42 1.64K
Post #41 320

Forwarded from Hello World

12 небольших фишек для улучшения твоего кода

1. Обмен значений
x, y = 1, 2
x, y = y, x


2. Получение строки из списка
a_list = [‘I’, ‘like’, ‘python’, ‘programming’]
a_string = “ “.join(a_list)


3. Разбиение строки на список
a_string = ‘I like python programming’
a_list = a_string.split()


4. Инициализация листа каким либо значением
[0]*1000 # лист, заполненный 1000 нулями
[1]*1000 # лист, заполненный 1000 единицами


5. Слияние словарей
x = {‘a’:1, ‘b’:2}
y = {‘c’:3, ‘d’:4}
z = {**x, **y}


6. Переворачивание строки
a = ‘My string’
a = a[::-1]


7. Возврат нескольких переменных из функции
def test(x,y):
return x,y
a,b = test(1,2)


8. Итерирование по словарю
a_dict = {‘a’:1, ‘b’:2, ’c’:3}
for k, v in a_dict.items():
print(‘{0}:{1}’.format(k, v))


9. Инициализация пустых контейнеров
a_list = list()
a_dict = dict()
a_set = set()
a_tuple = tuple()


10. Удаление символов в конце строки
my_string = ‘My string///‘
my_string.strip(‘/‘)


11. Проверка занимаемой объектом памяти
import sys
x = 1
print(sys.getsizeof(x))


12. Нахождение наиболее частого элемента в списке
a_list = [1, 2, 3, 1, 1, 4, 1, 4, 4, 1]
print(max(set(a_list), key=a_list.count))


#tips
Post #39 2.47K
Post #38 1.7K
Post #36 1.63K
Напоминаю, что у меня есть два собственных телеграм бота. Настоятельно прошу протестировать и написать мне, что думаете насчет этих проектов (ссылка на меня в описании канала).

@tweather_bot - основной проект, выдает погоду офигенском в визуальном формате, а фишка в том, что можно искать не только по городу, но и по улице или даже названию музея. Написал совместно основателем канала @dopamine_lacking.

@CasualCatsBot - простой и забавный бот, который выдает случайного котика из интернета. Написал быстренько чисто для расслабона, однако вышло прикольно.
Post #35 4.86K
​​Сортировка пузырьком

В Python уже есть встроенные функции сортировок массивов sort() и .sorted(), но достаточно важно самому знать хотя бы несколько реализаций.

Суть алгоритма в том, что совершается несколько проходов по массиву. При проходе последовательно сравниваются пары элементов в массиве и в случае несоответствия выбранному порядку меняются местами. Если пары элементов находятся в верном порядке, то ничего не происходит. В результате первого прохода максимальный элемент окажется в конце, то есть всплывет словно пузырек. Затем все повторяется до того момента пока весь массив не будет отсортирован. Последний проход будет по отсортированному массиву.

 def bubble_sort(array):
for i in range(len(array), 0, -1):
for j in range(1, i):
if array[j - 1] > array[j]:
tmp = array[j-1]
array[j-1] = array[j]
array[j] = tmp
return array

Для наглядности визуальная реализация сортировки представлена ниже. #алгоритм
Post #34 1.43K
Оператор pass делает абсолютно ничего, то есть совсем ничего. В ходе исполнения данного оператора ничего не происходит, поэтому он может использоваться в качестве некой заглушки в тех местах, где это синтаксически необходимо.

Например, вам надо сделать несколько функций, вы написали def'ы и названия, но сам код еще не успели, однако программу надо запустить и проверить что-то другое. Вот тут и понадобится pass.

def func():
pass

Ну или в конструкции try-except, чтобы просто проигнорировать и никак не обрабатывать ошибку в программе.

try:
any_function()
except:
pass

В общем, полезная штука, используйте.
Post #33 1.42K
Post #32 1.62K
Post #31 1.43K
Post #30 1.45K
Post #29 1.43K
Post #28 1.48K
Post #25 1.37K
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →