Alexlki
Неделю не могу автоматизировать
Зачем ты класс сделал?
Понимаешь, выглядит дубово так всё, а задание простейшее.
Alexlki
Нужно отправить get-запрос на https://api.chucknorris.io/jokes/random?category={category} так, чтобы вместо {category}, были запросы отсюда: https://api.chucknorris.io/jokes/categories, и в консоли выдавало шутку из каждой категории.
1. Для начала напиши функцию, которая получает ссылку на список категорий в сети и возвращает список категорий в виде списка строк.
2. После этого напиши функцию, которая принимает имя категории и возвращает ссылку на список шуток в этой категории в сети в виде строки.
3. После этого напиши функцию, которая принимает ссылку на список шуток в категории в сети и возвращает шутки из этой категории в виде списка строк.
4. Потом вызови первую функцию, получи список названий категорий из неё и в цикле подавай каждое название категории во вторую функцию, получая ссылку на список шуток в этой категории, а потом вызывай третью функцию и передавай в неё ссылку на список шуток в категории, полученную из второй функции, и сохраняй возвращённые из третьей функции шутки в список строк.
Вот тебе пример функции, которая принимает число, что-то с ним делает и возвращает новое число
>>> def f(x):
... return x * x
...
>>> f(2)
4
>>> f(4)
16
>>> f(2) + f(4) + f(16)
276
>>>
Как видишь, никаких print'ов в этой функции нет. Заходит число, выходит число.
Дальше смотри, вот как можно сделать функцию, которая объединяет строки определённым образом и возвращает какой-то результат из всего этого
>>> def f(name, work):
... out = 'Hello, {}! You are a good {}!'.format(name, work)
... return out
...
>>> f('John', 'manager')
'Hello, John! You are a good manager!'
>>> f('Lisa', 'nurse')
'Hello, Lisa! You are a good nurse!'
>>>
И опять никаких print'ов нет. Заходят строки, выходит строка.
А это пример того, как из одних функций передавать значений сразу в другие функции
>>> import random
>>>
>>> def f1():
... strings = ['John', 'Lisa', 'Jim', 'Lucy']
... out = strings[random.randint(0, 3)]
... return out
...
>>> def f2():
... strings = ['manager', 'cook', 'doctor']
... out = strings[random.randint(0, 2)]
... return out
...
>>> def f3(name, work):
... out = 'Hello, {}! You are a good {}!'.format(name, work)
... return out
...
>>> f3(f1(), f2())
'Hello, Lucy! You are a good cook!'
>>> f3(f1(), f2())
'Hello, Lisa! You are a good manager!'
>>> f3(f1(), f2())
'Hello, Jim! You are a good doctor!'
>>>
Вот так надо делать функции.