Поток управления
Я считаю, что основной вывод из этого раздела — кратко выделить различные возможные потоки управления.
Вот традиционный оператор if-else:
x = 5
if x % 2 == 0: parity = "even" else: parity = "odd"
parity # 'odd'
Автор может время от времени использовать более короткий тройной однострочник if-else, например:
parity = "even" if x % 2 == 0 else "odd"
Автор отмечает, что пока существуют циклы while:
x = 0
while x < 10: print(f"{x} is less than 10") x += 1
for и in будут использоваться чаще (приведенный ниже код короче и читабельнее):
for x in range(10):
print(f"{x} is less than 10")
Мы также отметим, что range(x)
также увеличивается до x-1
.
Наконец, более сложная логика возможна, хотя нам придется вернуться к тому, когда именно более сложная логика используется в контексте науки о данных.
for x in range(10):
if x == 3:
continue
if x == 5:
break
print(x)
Правдивость
Логические значения в Python, True
и False
, имеют заглавную только первую букву. И Python использует None
для обозначения несуществующего значения. Мы попробуем обработать исключение ниже:
1 < 2 # True (not TRUE) 1 > 2 # False (not FALSE)
x = 1 try: assert x is None except AssertionError: print("There was an AssertionError because x is not 'None'")
Главным выводом для меня является понятие «истина» и «ложь». Первое, что нужно отметить, это то, что все, что после if
, подразумевает «истинно», поэтому операторы if можно использовать для проверки, если список, строка или словарь пусты:
x = [1] y = []
# if x...is true # Truthy if x: print("Truthy") else: print("Falsy")
# if y...is true # Falsy print("Truthy") if y else print("Falsy")
Вы заметите, что тройная версия немного менее удобочитаема. Вот еще примеры, чтобы понять «правдивость».
## Truthy example
# create a function that returns a string def some_func(): return "a string"
# set s to some_func s = some_func()
# use if-statement to check truthiness - returns 'a' if s: first_char = s[0] else: first_char = ""
## Falsy example
# another function return empty string def another_func(): return ""
# set another_func to y (falsy example) y = another_func()
# when 'truthy' return second value, # when 'falsy' return first value first_character = y and y[0]
Наконец, автор упоминает все и любые функции. Первый возвращает True
, когда каждый элемент соответствует действительности; последний возвращает True
, когда по крайней мере один элемент верен:
all([True, 1, {3}]) # True
all([True, 1, {}]) # False
any([True, 1, {}]) # True
all([]) # True
any([]) # False
Вы заметите, что оценивается достоверность внутри списка. Таким образом, all([])
предполагает, что в списке нет «ложных» элементов, потому что он пуст, поэтому он оценивается как True
.
С другой стороны, any([])
предполагает, что ни один (или хотя бы один) элемент не является «истинным», потому что список пуст, поэтому он оценивается как False
.
***
Чтобы узнать больше о науке о данных, машинном обучении, R, Python, SQL и многом другом, найдите меня в Twitter.