<Python Panorama Series-3> Раскрыта инвентаризация процессов управления Python, расширенные возможности использования и загадочные методы!

Добро пожаловать в серию наших блогов «Серия панорам Python»! В этой серии мы шаг за шагом проведем вас от основ Python к более сложным темам, чтобы помочь вам освоить этот мощный и гибкий синтаксис программирования. Независимо от того, являетесь ли вы новичком в программировании или опытным разработчиком, эта серия предоставит вам необходимые знания и навыки.

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

1. Условное утверждение (If-Elif-Else)

Python的条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块。条件语句的基本形式包括 if、if-else 和 if-elif-else 三种。

 
# if 语句
x = 10
if x > 0:
    print("x is positive")

# if-else 语句
if x % 2 == 0:
    print("x is even")
else:
    print("x is odd")

# if-elif-else 语句
if x < 0:
    print("x is negative")
elif x == 0:
    print("x is zero")
else:
    print("x is positive")

Обратите внимание на правила отступов Python, которые являются основной особенностью синтаксиса Python. Отступы используются для различения блоков кода, таких как блок кода if-elif-else выше. Кроме того, в Python нет фигурных скобок {}, как в C++ и Java, для управления блоками операторов, и он полностью полагается на отступы.

2. Структура цикла (For и While)

В Python есть два типа циклов: один — цикл for, другой — цикл while.

1 # for循环
2 for i in range(5):
3     print(i)
4 
5 # while循环
6 count = 0
7 while count < 5:
8     print(count)
9     count += 1

Цикл for в Python больше похож на цикл обхода, который проходит по каждому элементу последовательности. Во многих других языках цикл for управляет циклом посредством условного решения. Функция range() в Python очень полезна во многих ситуациях, особенно в структурах циклов.

3. Обработка исключений (Try-Except)

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

try:
    print(1 / 0)
except ZeroDivisionError:
    print("You can't divide by zero!")
		```
Python的异常处理机制是一个很强大的工具,它可以帮助我们在出现错误或异常时保持程序的正常运行。不仅如此,Python的异常处理还支持多个except子句,这样我们可以对不同类型的异常进行不同的处理。此外,我们还可以使用finally子句,无论是否发生异常,finally子句中的代码总会被执行,常常用于进行清理工作。

 

 # 四、控制流程的高级用法!
Python 的控制流程不仅仅局限于简单的条件判断、循环和异常处理。Python 还有很多高级的控制流程工具,它们可以帮助我们更高效、更精简地编写代码。以下是一些常见的高级控制流程工具:

## 1. 列表解析
列表解析是一种创建列表的简洁方法,它在一行代码中就可以完成循环和条件判断等操作。以下是一个列表解析的例子:
```python
squares = [x**2 for x in range(10)]

Приведенный выше код сгенерирует список, содержащий квадраты от 0 до 9. Процесс понимания этого списка можно понять так: для каждого in range(10)вычислить xквадрат x, а затем добавить результат в список. По сравнению с обычными операторами цикла анализ списков не только упрощает код, но и ускоряет его выполнение. Это связано с тем, что генераторы списков реализуют внутреннюю оптимизацию, а обычные операторы цикла — нет.

2. Генераторное выражение

Выражения-генераторы похожи на генераторы списков, но они создают объект-генератор, а не реальный список. Объект-генератор — это итерируемый объект, который генерирует новые значения на каждой итерации, а не генерирует все значения сразу. Ниже приведен пример выражения-генератора:

squares = (x**2 for x in range(10))

Приведенный выше код создаст объект-генератор, который будет генерировать квадратное число на каждой итерации. Вы можете перебирать этот объект с помощью next()функций или циклов. forВыражения-генераторы более эффективны с точки зрения использования памяти, чем генераторы списков, поскольку им не нужно генерировать все значения одновременно. Это очень полезно при работе с крупномасштабными данными.

3. Декораторы

Декораторы — очень мощный инструмент, который позволяет нам изменять поведение функции или класса, не меняя их исходный код. Вот простой пример декоратора:

 1 def my_decorator(func):
 2     def wrapper():
 3         print("Something is happening before the function is called.")
 4         func()
 5         print("Something is happening after the function is called.")
 6     return wrapper
 7 
 8 @my_decorator
 9 def say_hello():
10     print("Hello!")
11 
12 say_hello()

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

Еще кое-что!!

Читая GitHub и различные технологические блоги, я обнаружил очень особенный, но редко известный метод управления потоками управления Python — использование elseпредложений в forциклах while.

Многие люди могут не знать, что forциклы и whileциклы могут иметь необязательное elseпредложение, которое выполняется, когда цикл обычно завершается. Если цикл завершается breakоператором, elseэто предложение не будет выполнено.

 1 for i in range(5):
 2     print(i)
 3 else:
 4     print("Loop finished!")
 5 
 6 count = 0
 7 while count < 5:
 8     print(count)
 9     count += 1
10 else:
11     print("Loop finished!")

Эта функция очень полезна во многих ситуациях.Например, мы ищем элемент в цикле.Если он найден, мы завершаем breakцикл с помощью оператора.Если цикл завершается нормально и элемент не найден, elseкод в пункт выполнен.

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

Если это поможет, обратите больше внимания на TeahLead KrisChang, более 10 лет опыта работы в Интернете и индустрии искусственного интеллекта, более 10 лет опыта управления техническими и бизнес-командами, степень бакалавра в области разработки программного обеспечения от Tongji, степень магистра в области инженерного менеджмента. из Фуданя, сертифицированный Alibaba Cloud старший архитектор облачных сервисов, руководитель подразделения продуктов искусственного интеллекта с доходом более 100 миллионов долларов.

Microsoft официально запускает новое «приложение для Windows» .NET 8, последняя версия LTS. Xiaomi официально объявила, что Xiaomi Vela имеет полностью открытый исходный код, а базовым ядром является NuttX Alibaba Cloud 11.12. Причина сбоя раскрыта: Служба ключей доступа (Access) Ключевое) исключение Vite 5 официально выпустил отчет GitHub: TypeScript заменяет Java и становится третьим по популярности языком Предлагает вознаграждение в сотни тысяч долларов за переписывание Prettier на Rust Спрашивает автора открытого исходного кода: «Проект еще жив?» Очень грубо и неуважительный Bytedance: использование искусственного интеллекта для автоматической настройки операторов параметров ядра Linux. Магическая операция: отключить сеть в фоновом режиме, деактивировать широкополосную учетную запись и заставить пользователя сменить оптический модем.
{{o.name}}
{{м.имя}}

рекомендация

отmy.oschina.net/u/6723965/blog/10116137
рекомендация