Сделайте свою жизнь проще с помощью этих лучших советов и приемов Python

«Python - поистине замечательный язык. Когда кому-то приходит в голову хорошая идея, требуется около 1 минуты и пяти строк, чтобы запрограммировать что-то, что почти делает то, что вы хотите. Затем потребуется всего час, чтобы расширить сценарий до 300 строк, после чего он все еще будет делать почти то, что вы хотите ». - Джек Янсен

1. Выведите (N) строку раз

Вы, вероятно, используете циклы для печати N раз строки. Но я покажу вам профессиональный способ распечатать строку N раз в короткой строке кода.

string = "Python "
ntimes = string * 3
print(ntimes) # Python Python Python

2. Возврат значений Mul из функции

Иногда нам нужно вернуть несколько значений из функции, и мы можем сделать это с помощью следующего трюка.

def Mulvalues():
    return 1, 2, 3
a, b, c = Mulvalues()
print(a, b, c) # 1 2 3

Когда вы возвращаете несколько значений (separated by commas) из функции. Python автоматически сохраняет его в счетчике переменных, как и количество значений, возвращаемых функцией.

3. Путь к файлу импортированного модуля

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

import os
import json
import tkinter
#get path of imported modules
print(os)
print(tkinter)
print(json)

Сначала вам нужно импортировать целевой модуль в ваш файл Python, а затем использовать функцию печати, которая принимает имя вашего целевого модуля в качестве аргумента. Проверьте вывод ниже.

#OUTPUT 
<module 'os' from 'C:\\Users\\Medium\\AppData\\Local\\Programs\\Python\\Python37\\lib\\os.py'>
<module 'tkinter' from 'C:\\Users\\Medium\\AppData\\Local\\Programs\\Python\\Python37\\lib\\tkinter\\__init__.py'>
<module 'json' from 'C:\\Users\\Medium\\AppData\\Local\\Programs\\Python\\Python37\\lib\\json\\__init__.py'>

4. Быстрый способ перевернуть строку

Могу поспорить, что любой из вас использует циклы, чтобы перевернуть строку. Но знаете ли вы, что есть более быстрый способ перевернуть строку с помощью одной строчки кода?

string1 = "Coder"
string2 = "Algorithm"
#reversing the strings
print(string1[::-1]) # redoC
print(string2[::-1]) # mhtiroglA

5. Множественное присвоение

Многие другие языки C ++, Java, JavaScript допускают только однократное присвоение переменной. Но Python позволяет выполнять несколько назначений, что очень полезно в разных случаях.

#mulitple assignments
a, b, c = 1, 2, 3
print(a) # 1
print(b) # 2
print(c) # 3

6. Удаление дубликатов (быстрый способ)

Теперь вам больше не нужны циклы для удаления дубликатов из списка, вы можете сделать это с помощью встроенных функций быстрым и простым способом. Ознакомьтесь с приведенным ниже кодом.

lst1 = [1, 3, 3, 4, 5, 1]
lst2 = ["A", "A", "B", "C", "D", "D"]
newlst1= list(set(lst1))
newlst2= list(set(lst2))
print(newlst1) #  [1, 3, 4, 5]
print(newlst2) # ['C', 'D', 'A', 'B']

7. Форматированная строка

Обычно для форматирования строки используется унарный оператор «+». Проще говоря, когда вы хотите присоединить переменную к строке, вы используете унарный оператор (+). Но я покажу вам, как сделать это форматирование простым и быстрым способом.

name = "Haider"
skill= "Python"
#method 1
text = "My name is n and I'm a s Expert".format({"n":name , "s":skill})
print(text)
#method 2
text = "My name is {} and I'm a {} Expert".format(name, skill)
print(text)
#method 2
text = f"My name is {name} and I'm a {skill} Expert"
print(text)

8. Знать использование памяти объектами

Знаете ли вы, что встроенный модуль Python «sys» может сказать вам, сколько памяти потребляет объект в Python?

import sys
val = 500
print(sys.getsizeof(val))  # 28

9. Инициализировать пустые контейнеры.

Вы можете инициализировать пустые контейнеры в Python. Проще говоря, вы можете объявить структуру данных без присвоения значений или их заполнения.

my_list = list()
my_dict = dict()
my_tuple = tuple()
my_set = set()
print(my_list) # []
print(my_dict) # {}

Примечание. Помните, что кортеж и набор неизменяемы

10. Перевернуть список

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

my_list1 = [1, 2, 3, 4, 5, 100]
my_list2 = ["A", "B", "C"]
#reversing the list
print(my_list1[::-1]) # [100, 5, 4, 3, 2, 1]
print(my_list2[::-1]) # ['C', 'B', 'A']

11. Инвертировать словарь.

Я поделюсь примером кода для инвертирования словаря. Проще говоря, ключи и значения поменяются местами.

dict = {'x' : 1, 'y' : 2, 'z' : 3}
new_dict = { value : key  for key , value in dict.items()}
print(new_dict) # {1: 'x', 2: 'y', 3: 'z'}

12. Расширенное множественное присвоение

Мы научились выполнять несколько заданий. В этом совете я покажу вам продвинутый способ выполнения нескольких заданий. Теперь мы также можем назначать значения списка.

a, *b, c, d = 3, 4, 5, 6, 7
print(a, b, c, d) # 3 [4, 5] 6 7

Первое значение сохраняется в переменной «a», а следующие 2 значения преобразуются в список и сохраняются в b из-за знака звездочки «*» в переменной «Б». Последние два хранятся в переменных «c» и «d».

13. Строка соединения (быстрый способ)

Вы, вероятно, используете циклы, чтобы перебирать список и объединять каждый элемент списка вместе. Но для этого требуется много строк кода. Вы можете сделать это быстро и легко, используя join() метод.

#Bad way
lst = ["I'm", "a", "Programmer"]
text = ""
for x in lst:
    text = text + x + " "
print(text)
# faster way
text = " ".join(lst)
print(text) # I'm a Programmer

14. Слияние двух диктовок в один

Я покажу вам простой совет по объединению двух словарей в один словарь. Посмотрите следующий пример кода.

a = { "a": 1, "b": 2}
b = { "c": 3, "d": 4}
c = {**a, **b}
print(c) # {'a': 1, 'b': 2, 'c': 3, 'd': 4}

15. Измените предел рекурсии.

Этот совет будет полезен при работе с рекурсивной функцией и если вы не знаете, что Python установил ограничение рекурсии по умолчанию на 1000. Но вы можете изменить это ограничение.

import sys
current_limit = sys.getrecursionlimit()
print(current_limit) # 1000
 
set_limit = sys.setrecursionlimit(5000)
print(sys.getrecursionlimit()) # 5000

16. Поиск нескольких префиксов

Возможно, вам придется использовать методы «startwith» и «endwith» для поиска префиксов в строке. И вы всегда передаете им один текст для поиска. Но я покажу, как можно передавать несколько текстов для поиска в строке.

string1 = "www.medium.com"
if string1.startswith(("www","http")):
    print("True")
if string1.endswith(("com","co.uk")):
    print("True")

17. Совет для операторов IF

Этот совет известен многим, но если вы о нем не знаете, то он будет вам полезен. посмотрите пример кода ниже.

a = [1, 2, 3]
#Way 1
if a[0] == 1 or a[1] == 1 or a[2] == 1:
    print("Number is present in the list")
#Faster Way
if 1 in a:
    print("Number is present in the list")

Вместо сопоставления числа с каждым элементом в списке вы можете использовать оператор «in», чтобы сделать то же самое. Это наиболее точный и быстрый способ выполнить эту задачу.

Заключение

Что ж, надеюсь, ты узнаешь что-то новое. Я изучил эти советы и приемы, прочитав множество сообщений на StackOverflow, и трачу время на поиск новых советов и объяснение их вам на хороших и понятных примерах.

Если вы нашли эту статью полезной, нажмите кнопку ❤️ ниже и поделитесь статьей с друзьями.

Если вам нравятся эти статьи, вам также будут интересны следующие статьи.





















Больше контента на plainenglish.io