---
# System prepended metadata

title: Untitled

---

**Что выведет запуск следующего кода?:**

def my_func(a, b, *args, **kwargs):
    print(a, b)
    print(args)
    print(kwargs)

ll = [1,5,7,9]
dd = {'x':'a', 'y':'z'}
    
my_func(1, 5, 6, 7, i=4, *ll, **dd)

1,5
6,7
{'x':'a', 'y':'z'}

**Как реализовать быстрый факториал с использованием кэша?**
def factorial(n):
    start = 1
    for i in range(1, n+1):
        start *= i
    return start
    
    




**Что выведет запуск следующего кода?**
import asyncio

async def my_printer(x: int) -> None:
    print(f'started with {x}')
    await asyncio.sleep(x)
    print(f'ended with {x}')

async def main():
    return await asyncio.gather(*[my_printer(2), my_printer(3), my_printer(5)])
    
asyncio.run(main())

started with 2
started with 3
started with 5
ended with 2
ended with 3
ended with 5








**Вопросы по REST API:**
1. Назвать небезопасные и неидемпотентные HTTP методы.



| HTTP Method |   Safe   | Idempotent |
| ----------- | -------- | ---------- |
|GET          | -------- | ---------- |
|HEAD         | -------- | ---------- |
|OPTIONS      | -------- | ---------- |
|TRACE        | -------- | ---------- |
|PUT          | ---+---- | ---+------ |
|DELETE       | -------- | ---------- |
|POST         | ---+---- | ---------- |
|PATCH        | ---+---- | ---+------ |




**Вопросы по SQL.**

1. Что выбирает следующий запрос?

select b.name, a.surname, w.age
from books b
left join authors a on b.author_id = a.id 
left join authors_wives w on a.wife_id = w.id 
where b.id = 166 

Выбирает book.name, authors.surname, authors_wives.age из той книги у которой bookd.is = 166. При этом 
выводятся surname авторов и возраст конкретно их жен.Если у книги нет автора или у автора нет жены, то поле 
a.surname или w.age может быть null

2. В каких случаях в предыдущем запросе w.age может быть null?
Когда есть автор, но у автора нет жены.
