Перейти к основному содержимому

35 записей с тегом "python"

Посмотреть все теги

Все знают о том, как, например, открыть файл, или, возможно, как установить блокировку с использованием оператора with. Но можно ли самостоятельно реализовать механизм управления блокировками? Да, это вполне реально.

Для того чтобы при использовании некоей функции сделать так, чтобы ей можно было бы передавать только именованные аргументы, можно поступить следующим образом:

def test(*, a, b):  
pass

test("value for a", "value for b") # TypeError: test() takes 0 positional arguments...
test(a="value", b="value 2") # А так - работает...

Это может быть полезно для того, чтобы улучшить понятность кода. Как видите, наша задача легко решается при помощи использования аргумента * перед списком именованных аргументов. Здесь, что вполне очевидно, можно использовать и позиционные аргументы — в том случае, если поместить их до аргумента *.

00:00:00 Урок 1. Основы Python
02:19:12 Урок 2. Простые типы данных
04:19:30 Урок 3. Коллекции
05:41:33 Урок 4. Функции
06:51:54 Урок 5. Интераторы и генераторы
07:48:27 Урок 6. Модули
09:26:51 Урок 7. Файлы и файловая система

Это короткое видео, в котором автор рассказывает о разработке базовой игры на python с использованием pygame. В этом видео автор создает базовую баскетбольную игру менее чем за 12 минут.

# Each YouTube video has four generated images. They are predictably formatted as follows:

f"https://img.youtube.com/vi/{your_youtube_video_id}/0.jpg"
f"https://img.youtube.com/vi/{your_youtube_video_id}/1.jpg"
f"https://img.youtube.com/vi/{your_youtube_video_id}/2.jpg"
f"https://img.youtube.com/vi/{your_youtube_video_id}/3.jpg"

# The first one in the list is a full size image and others are thumbnail images. The default thumbnail image (i.e., one of 1.jpg, 2.jpg, 3.jpg) is:
f"https://img.youtube.com/vi/{your_youtube_video_id}/default.jpg"

# For the high quality version of the thumbnail use a URL similar to this:
f"https://img.youtube.com/vi/{your_youtube_video_id}/hqdefault.jpg"

# There is also a medium quality version of the thumbnail, using a URL similar to the HQ:
f"https://img.youtube.com/vi/{your_youtube_video_id}/mqdefault.jpg"

# For the standard definition version of the thumbnail, use a URL similar to this:
f"https://img.youtube.com/vi/{your_youtube_video_id}/sddefault.jpg"

# For the maximum resolution version of the thumbnail use a URL similar to this:
f"https://img.youtube.com/vi/{your_youtube_video_id}/maxresdefault.jpg"

# All of the above URLs are available over HTTP too. Additionally, the slightly shorter hostname i3.ytimg.com works in place of img.youtube.com in the example URLs above.

# Alternatively, you can use the YouTube Data API (v3) to get thumbnail images.

# Use the type() builtin function:
i = 123
type(i) # <type 'int'>
type(i) is int # True

i = 123.456
type(i) # <type 'float'>
type(i) is float # True

# To check if a variable is of a given type, use isinstance:
i = 123
isinstance(i, int) # True
isinstance(i, (float, str, set, dict)) # False

a[start:stop]  # items start through stop-1
a[start:] # items start through the rest of the array
a[:stop] # items from the beginning through stop-1
a[:] # a copy of the whole array

Внутри цикла while используется оператор присваивания :=, который появился в Python 3.8. Он читает очередную строку из файла с помощью метода readline() и присваивает ее переменной line.

with open(filename) as file:
while line := file.readline():
print(line.rstrip())