https://img.youtube.com/vi/VIDEO_ID/hqdefault.jpg
, где VIDEO_ID
- id видео, from urllib import parse
url = 'https://www.youtube.com/watch?v=jNQXAC9IVRw'
video_id = parse.parse_qs(parse.urlparse(url).query)['v'][0]
thumbnail_url = f'https://img.youtube.com/vi/{video_id}/hqdefault.jpg'
# ': str' - это type hint. На выполнение не влияет, оно в первую очередь для читаемости. Можешь пока пропустить.
def command_plus(args: str): # функция получает аргумент как строку, вместо вызова input().
"Складывает указанные числа." # doc-string содержит человекочитаемое описание функции
print("Калькулятор на сложение")
parts = [int(part) for part in args.split()] # операции со строками, list comprehensions
if not parts: # какие значения в питоне истинные (truey), какие ложные (falsy)?
parts.append(int(input("1-е число: ")))
parts.append(int(input("2-е число: ")))
res = sum(parts)
print(f"Результат: {res}") # f-строки
# словарь, содержащий имя команды и её функцию
commands = {
'calc +': command_plus,
# тут будут другие команды
}
while True:
cmd = input('Введите команду: ') # например, "calc + 2 3 5"
for cmd_name, cmd_func in commands.items(): # цикл for, операции со словарями
if cmd.startswith(cmd_name): # операции со строками
cmd = cmd[len(cmd_name):] # срезы (slice)
try: # обработка исключений
cmd_func(cmd)
except Exception as err:
print(f"Произошла ошибка: {err}")
break # операторы передачи управления
else: # Как работает оператор else: совместно с циклами?
if cmd == 'exit':
print('До свиданья')
break # прерываем while
else:
print(f"Неизвестная команда: {cmd}")
без_повторов = list(set(с_повторами))
set() не становится методом списка или чем-то подобным. Эта идиома прекрасно работает с любым коллекциями - списками, кортежами (tuple), да с чем угодно.from bs4 import BeautifulSoup
html = '<meta property="og:audio" content="https://freesound.org/data/previews/611/611605_1648170-lq.mp3" />'
soup = BeautifulSoup(html,"lxml")
mp3_url = soup.find('meta',property='og:audio').get('content')
print(mp3_url)
>>> https://freesound.org/data/previews/611/611605_1648170-lq.mp3
from ast import literal_eval
s = '''["A Dog's Purpose;2017", 'Fist Fight;2017', 'The Lego Batman Movie;2017', 'Jim Gaffigan: Cinco;2017', 'The Big Sick;2017', 'The Boss Baby;2017', 'Bill Burr: Walk Your Way Out;2017', 'Neal Brennan: 3 Mics;2017', 'Dave Chappelle: The Age of Spin;2017', 'CHiPS;2017', 'Table 19;2017', 'Dave Chappelle: Deep in the Heart of Texas;2017', 'Baywatch;2017', 'Snatched;2017', 'Sandy Wexler;2017', 'Win It All;2017', 'Captain Underpants: The First Epic Movie;2017', 'Cars 3;2017', 'Rough Night;2017', 'Despicable Me 3;2017', 'The Meyerowitz Stories;2017', 'War Machine;2017', 'Vir Das: Abroad Understanding;2017', "Norm Macdonald: Hitler's Dog, Gossip & Trickery;2017", 'Goon: Last of the Enforcers;2017', 'Oh, Hello: On Broadway;2017', 'The House;2017', 'Logan Lucky;2017', 'The Emoji Movie;2017', 'Rory Scovel Tries Stand-Up for the First Time;2017', "The Hitman's Bodyguard;2017", 'Self-criticism of a Bourgeois Dog;2017', 'Kingsman: The Golden Circle;2017', 'Ari Shaffir: Double Negative;2017', 'The Nut Job 2: Nutty by Nature;2017', 'Little Boxes;2017', 'Maz Jobrani: Immigrant;2017', 'Lady Bird;2017', 'Paddington 2;2017', 'The Death of Stalin;2017', 'Christina P: Mother Inferior;2017', 'Creep 2;2017', 'A Bad Moms Christmas;2017', "Daddy's Home 2;2017", 'The Disaster Artist;2017', 'Ferdinand;2017', 'Jack Whitehall: At Large;2017', 'Lynne Koplitz: Hormonal Beast;2017', 'Craig Ferguson: Tickle Fight;2017', 'Judd Apatow: The Return;2017', 'Dave Chappelle: Equanimity;2017', 'Dave Chappelle: The Bird Revelation;2017', 'Game Night;2018', 'Isle of Dogs;2018', 'The Clapper;2018', 'Tom Segura: Disgraceful;2018', 'When We First Met;2018', 'Fred Armisen: Standup for Drummers;2018', 'Love, Simon;2018', 'Game Over, Man!;2018', 'Blockers;2018', 'Deadpool 2;2018', 'Sorry to Bother You;2018', 'Ant-Man and the Wasp;2018', 'Mamma Mia: Here We Go Again!;2018', 'Tag;2018', 'The Man Who Killed Don Quixote;2018', 'Boundaries;2018', 'BlacKkKlansman;2018', 'Jeff Ross Roasts the Border;2017', 'Gintama;2017', 'Black Butler: Book of the Atlantic;2017', 'No Game No Life: Zero;2017']'''
s = literal_eval(s)