tarot_list = [
('image1.jpg', 'Текст 1'),
('image2.jpg', 'Текст 2'),
]
image, text = random.choice(tarot_list)
await Bot.send_message(message.from_user.id, message.text)
class Test:
def test(self, x):
print(f"Я {self} и я получил {x}")
t = Test() # создаём экземпляр
t.test(42) # Я <__main__.Test object at 0x000001BB195CBC70> и я получил 42
# это тоже сработает, и это практически эквивалентно вызову выше
Test.test(t, 42) # Я <__main__.Test object at 0x000001BB195CBC70> и я получил 42
# а это - то, что попытался сделать ты:
Test.test(42) # TypeError: Test.test() missing 1 required positional argument: 'x'
# потому что вызван метод класса, а не объекта, и его первый параметр (42) интерпретирован как self
a = [1, 2, 3]
b = [1, 2, 3]
print(a == b) # True - списки имеют одинаковое содержимое
print(a is b) # False - a и b ссылаются на разные объекты-списки, а не на один и тот же.
a = 1
b = 1.0
print(isinstance(a, int), isinstance(a, float)) # True False - a это int, но не float
print(isinstance(b, int), isinstance(b, float)) # False True - b это не int, это float
print(isinstance(a, (int, float))) # True - a является чем-то из двух: или int, или float
photo=message.photo[0].file_id
поэтому о статическом литерале речи не идет
bot.send_photo(message.chat.id, photo, " Выберите нужную функцию:",
parse_mode="html", reply_markup=tg, info)
reply_markup=tg
- аргумент, переданный по имениinfo
- аргумент, переданный позиционно.reply_markup=
или parse_mode=
. text = """Текст слово Текст
Новая строка
Ещё новее строка"""
N = 12
start, rest = text[:N], text[N:] # отделяем ту часть текста, где мы ищем перевод строки, от остатка
first, _, second = text.rpartition('\n') # ищем последний перевод строки в этой части - до него "начало"
last = (second + rest) if second else rest # "конец" собираем из того что после перевода строки и остатка
print('-'*10)
print(first)
print('-'*10)
print(last)
print('-'*10)