Случайная ссылка на питоне
Возник такой вопрос,как сделать функцию в питоне,которая будет давать случайную ссылку из уже существующих.Знаний у меня ноль написал такой код.Как исправить и что вообще делать?
def musicplaylist():
a = str("https://open.spotify.com/playlist/1AecnkFXTY27XtZ6VqzGdZ?si=d336b702d3d14a71")
b = str("https://open.spotify.com/playlist/0vvXsWCC9xrXsKd4FyS8kM?si=025aa83bc30f412c")
c = str("https://open.spotify.com/album/260iH4R6MRNcDQ79106Icv?si=vlA69tI6Ro62HYWlSRmcaw")
d = str("https://open.spotify.com/playlist/3ebHKSjHujS4Tyt2KKP97R?si=d0395579586a4390")
j=random.choice(a,b,c,d)
return j
Данный код выдает такие ошибки,вставлял его в другой код как функцию(другой код написан другим человеком,исправно работает,если будет нужен,готов скинуть)
2021-11-29 23:51:05,605 (__init__.py:617 MainThread) ERROR - TeleBot: "Infinity polling exception: musicplaylist() takes 0 positional arguments but 1 was given"
2021-11-29 23:51:05,607 (__init__.py:619 MainThread) ERROR - TeleBot: "Exception traceback:
Traceback (most recent call last):
File "C:\Users\HYPERPC\Python3Bot\v2\vent\lib\site-packages\telebot\__init__.py", line 613, in infinity_polling
self.polling(none_stop=True, timeout=timeout, long_polling_timeout=long_polling_timeout,
File "C:\Users\HYPERPC\Python3Bot\v2\vent\lib\site-packages\telebot\__init__.py", line 660, in polling
self.__threaded_polling(non_stop, interval, timeout, long_polling_timeout, allowed_updates)
File "C:\Users\HYPERPC\Python3Bot\v2\vent\lib\site-packages\telebot\__init__.py", line 722, in __threaded_polling
raise e
File "C:\Users\HYPERPC\Python3Bot\v2\vent\lib\site-packages\telebot\__init__.py", line 682, in __threaded_polling
self.worker_pool.raise_exceptions()
File "C:\Users\HYPERPC\Python3Bot\v2\vent\lib\site-packages\telebot\util.py", line 135, in raise_exceptions
raise self.exception_info
File "C:\Users\HYPERPC\Python3Bot\v2\vent\lib\site-packages\telebot\util.py", line 87, in run
task(*args, **kwargs)
TypeError: musicplaylist() takes 0 positional arguments but 1 was given
Ответы (2 шт):
Автор решения: ПИТОНИСТ версия-3-8
→ Ссылка
- Как уже написали в комментариях, у вас где-то вызывается функция
musicplaylist()с одним аргументом. random.choice()выбирает случайный элемент из списка, а вы используете его для выбора просто случайного элемента. Заменитеj=random.choice(a,b,c,d)наj=random.choice([a,b,c,d]).- Не понимаю, зачем вы делаете так:
a=str("..."), если строка уже в строковом типе.strтут не нужно.
Автор решения: CrazyElf
→ Ссылка
В данном случае вообще нет смысла заводить какие-то переменные, проще и понятнее делать выбор прямо из списка ссылок:
import random
def musicplaylist():
return random.choice([
"https://open.spotify.com/playlist/1AecnkFXTY27XtZ6VqzGdZ?si=d336b702d3d14a71",
"https://open.spotify.com/playlist/0vvXsWCC9xrXsKd4FyS8kM?si=025aa83bc30f412c",
"https://open.spotify.com/album/260iH4R6MRNcDQ79106Icv?si=vlA69tI6Ro62HYWlSRmcaw",
"https://open.spotify.com/playlist/3ebHKSjHujS4Tyt2KKP97R?si=d0395579586a4390",
])
print(musicplaylist())