10 ценных Python-советов: для начинающих, но не только

Яр Пархоменко, 6 апреля 2017 г.

Нам нравится Python за универсальность и скорость разработки. Мы хотим, чтобы пайтонистов становилось больше, а их скиллы преумножались и прокачивались. 30 мая запускаем новый поток обучения разработчиков на Python. А пока делимся удобными приёмами, которые эксперт TechBeamers собрал из разных источников, включая вебинары по программированию на Python, Stack Overflow и Wikipedia. Прежде чем попасть в обзор, каждый из подходов прошёл экспертный отбор, то есть его удобство и эффективность проверены на практике.

Эти советы пригодятся и разработчикам, и тестировщикам. Некоторые из них будут новыми и полезными даже для опытных программистов на Python.

Среди причин создания такого пособия — растущая популярность Python как языка программирования, обеспечивающего высокую скорость разработки. Оглянитесь вокруг, и вы увидите, что он эффективен везде — от различных конфигурационных инструментов до анализа XML.

Сейчас доступны разные версии Python, но большинство программистов предпочитают использовать Python версий 2.x и 3.x. Все предлагаемые советы работают в каждой из них.


1. Запуск скриптов Python

На большинстве систем UNIX можно запускать скрипты Python из командной строки следующим образом:

# run python script

$ python MyFirstPythonScript.py

2. Запуск программ на Python из интерпретатора

Интерактивный интерпретатор Python очень прост в использовании. Вы можете совершить свои первые шаги в освоении этого языка, просто набирая любые команды в консоли Python одну за другой, и немедленно получать результаты.

Консоль Python можно запустить с помощью команды:

# start python console

$ python
>>> <type commands here>

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


3. Использование функции enumerate()

Функция enumerate() добавляет счетчик в итерируемый объект, в котором используется метод __iter__ , возвращающий итератор. Он может принимать последовательные значения индекса, начиная с нуля. И выдаёт ошибку IndexError, когда индексы больше недействительны.

Типичный пример использования функции enumerate() — создание цикла по списку с отслеживанием индекса. Для этого можно использовать переменную в качестве счетчика. Но функция enumerate() позволяет сделать то же самое намного удобнее.

# First prepare a list of strings

subjects = ('Python', 'Coding', 'Tips')
for i, subject in enumerate(subjects):
print(i, subject)

# Output:

0 Python
1 Coding
2 Tips

4. Тип данных SET

Тип данных «set» — это своего рода коллекция. Она стала частью Python, начиная с версии 2.4. Множество содержит неупорядоченную коллекцию уникальных и неизменяемых объектов. Это один из типов данных Python, реализующих множества из мира математики. Множества, в отличие от списков или кортежей, не могут содержать дублей.

Если вы хотите создать множество, просто используйте встроенную функцию set() с последовательностью или другими итерируемыми объектами в качестве аргументов.

# *** Create a set with strings and perform search in set

objects = {"python", "coding", "tips", "for", "beginners"}

# Print set.
print(objects)
print(len(objects))

# Use of "in" keyword.
if "tips" in objects:
print("These are the best Python coding tips.")

# Use of "not in" keyword.
if "Java tips" not in objects:
print("These are the best Python coding tips not Java tips.")

# ** Output

  {'python', 'coding', 'tips', 'for', 'beginners'}
5
  These are the best Python coding tips.
  These are the best Python coding tips not Java tips.

Добавление объектов в множество:

# *** Lets initialize an empty set
items = set()

# Add three strings.
items.add("Python")
items.add("coding")
items.add("tips")

print(items)

# ** Output
  {'Python', 'coding', 'tips'}


5. Динамический ввод

В Java, C++ и других статически типизированных языках нужно указывать тип данных возвращаемого значения функции и тип каждого её аргумента. Напротив, Python, как динамически типизированный язык, не вынуждает явно указывать типы данных. На основе присвоенных значений Python отслеживает их сам.

Вот ещё одно хорошее определение динамической типизации:

«Имена связываются с объектами во время выполнения с помощью операторов присваивания. И существует возможность прикрепить имя к объекту другого типа прямо во время выполнения программы».

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

# Test for dynamic typing.

from types import *

def CheckIt (x):
if type(x) == IntType:
    print("You have entered an integer.")
else:
    print("Unable to recognize the input data type.")

# Perform dynamic typing test
CheckIt(999)
# Output:
# You have entered an integer.

CheckIt("999")
# Output:
  # Unable to recognize the input data type.


6. Операторы == И =

Python использует «==» для сравнения и «=» — для присваивания. Присваивание внутри операторов не поддерживается. Поэтому нет никаких шансов случайного присваивания значений, если их нужно сравнить.


7. Условные выражения

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

# make number always be odd

number = count if count % 2 else count - 1

# Call a function if the object is not None.

data = data.load() if data is not None else 'Dummy'
print("Data collected is ", data)

8. Конкатенация строк

Вы можете использовать оператор ‘+’ для конкатенации строк. Делается это так:

# See how to use '+' to concatenate strings.

>>> print ('Python' + ' Coding' + ' Tips' )

# Output:

Python Coding Tips

9. Метод __init__

Метод __init__ вызывается после того, как инстанцирован объект класса. Этот метод полезен для выполнения любой запланированной вами инициализации. Метод __init__ аналогичен конструктору в C++, C# и Java.

# Implementing a Python class as InitEmployee.py

class Employee(object):

def __init__(self, role, salary):
    self.role = role
    self.salary = salary

def is_contract_emp(self):
    return self.salary <= 1250

def is_regular_emp(self):
    return self.salary > 1250

emp = Employee('Tester', 2000)

if emp.is_contract_emp():
print("I'm a contract employee.")
elif emp.is_regular_emp():
print("I'm a regular employee.")

print("Happy reading Python coding tips!")

Вот как будет выглядеть результат этого кода:

[~/src/python $:] python InitEmployee.py

I'm a regular employee.
Happy reading Python coding tips!

10. Модули

Для сохранения удобства управления своими программами по мере их роста, вы можете разбить их на несколько файлов. Python позволяет поместить множество функций в файл и использовать их в качестве модуля. Эти файлы должны иметь расширение .py. В дальнейшем модули можно импортировать в другие скрипты и программы.

# 1- Module definition => save file as my_function.py
def minmax(a,b):
if a <= b:
    min, max = a, b
else:
    min, max = b, a
return min, max

# 2- Module Usage
import my_function
x,y = my_function.minmax(25, 6.3)

print(x)
print(y)



Хотите писать код на Python быстрее и круче? — Регистрируйтесь на курс #tceh.

Мы

всегда тут

Москва, 101000

ул. Мясницкая, 13 стр. 18

+7 499 647 51 02

hello@tceh.com