all([a, b, c])
def foo(name, last_name, age, email):
return f'{name}, {last_name}, {age}, {email}'
try:
foo('Vasya')
except TypeError as e:
error_text = e.args[0] # или error_text = str(e)
print(error_text)
error_text.split(':')
или еще как хотите. s = 'Вот какая-то длинная строка, ниже я установил лимит. Строка разбивается на подстроки по длине не превосходящей этот лимит.'
limit = 20
def foo(s, limit):
rows=[]
current_row=[]
length=0
lst = s.split()
for word in lst:
if limit <= (length + len(word) + 1):
rows.append(' '.join(current_row))
current_row=[word]
length = len(word)+1
else:
length += len(word)+1
current_row.append(word)
rows.append(' '.join(current_row))
return('\n'.join(rows))
print(foo(s, limit))
import telebot
bot = telebot.TeleBot(token='XXXXXXXXXXXXXXXXXXXX')
@bot.message_handler(content_types=["text"])
def get_text_messages(message):
if message.text == "Привет":
bot.send_message(message.from_user.id, "Начнем")
start(message)
elif message.text == "/help":
bot.send_message(message.from_user.id, "Напиши Привет")
else:
bot.send_message(message.from_user.id, "Я тебя не понимаю. Напиши /help.")
# Точка старта.
def start(message):
# Инициализируем наш словарь, который будем прокидывать в каждую функцию
data = {}
mes = bot.send_message(message.from_user.id, "Введите количество бриллиантов:")
bot.register_next_step_handler(mes, vvod_brill, data)
# Получаем бриллианты
def vvod_brill(message, data):
if not message.text.isdigit():
bot.send_message(message.from_user.id, "Нужно ввести число")
bot.register_next_step_handler(message, vvod_brill, data)
else:
brill_count = int(message.text)
data['brill_count'] = brill_count
bot.send_message(message.from_user.id, f"Получено бриллиантов: {brill_count}")
bot.send_message(message.from_user.id, "Введите количество рубинов:")
bot.register_next_step_handler(message, vvod_rub, data)
# Получаем рубины
def vvod_rub(message, data):
if not message.text.isdigit():
bot.send_message(message.from_user.id, "Нужно ввести число")
bot.register_next_step_handler(message, vvod_rub, data)
else:
rub_count = int(message.text)
data['rub_count'] = rub_count
bot.send_message(message.from_user.id, f"Получено рубинов: {rub_count}")
bot.send_message(message.from_user.id, "Введите количество жителей:")
bot.register_next_step_handler(message, vvod_jit, data)
# Получаем количество жителей
def vvod_jit(message, data):
if not message.text.isdigit():
bot.send_message(message.from_user.id, "Нужно ввести число")
bot.register_next_step_handler(message, vvod_jit, data)
else:
jit_count = int(message.text)
data['jit_count'] = jit_count
bot.send_message(message.from_user.id, f"Всего жителей: {jit_count}")
counter = 1
bot.send_message(message.from_user.id, f"Сколько заработал кубков житель {counter}?")
bot.register_next_step_handler(message, vvod_cubok, data, counter)
# Получаем количество кубков для каждого
def vvod_cubok(message, data, counter):
if not message.text.isdigit():
bot.send_message(message.from_user.id, "Нужно ввести число")
bot.register_next_step_handler(message, vvod_cubok, data, counter)
else:
cubok_count = int(message.text)
data[f'jit_{counter}_cubok'] = cubok_count
bot.send_message(message.from_user.id, f"Житель {counter} заработал {cubok_count} кубков")
counter += 1
if counter <= data['jit_count']:
bot.send_message(message.from_user.id, f"Сколько заработал кубков житель {counter}?")
bot.register_next_step_handler(message, vvod_cubok, data, counter)
else:
bot.send_message(message.from_user.id, 'А теперь посмотрим что у нас вышло')
bot.send_message(message.from_user.id, f'{data}')
if __name__ == '__main__':
bot.polling()
import calendar
import datetime
def weekdays(input_day):
my_day = datetime.date.fromisoformat(input_day)
c = calendar.Calendar()
for week in c.monthdatescalendar(2022, 4):
if my_day in week:
return[f'{weekday.year}-{weekday.month}-{weekday.day}' for weekday in week]
print(weekdays('2022-04-03'))
my_day = datetime.date.fromisoformat(input_day)
year, month, day = map(int, input_day.split('-'))
my_day = datetime.date(year, month, day)
async def set_state(peer_id, lvl):
states = {
2: func.Data.SecondLvl,
3: func.Data.ThirdLvl,
4: func.Data.FourthLvl,
5: func.Data.FifthLvl,
6: func.Data.SixthLvl,
7: func.Data.SeventhLvl
}
await bot.state_dispenser.set(peer_id, states[lvl])
@bot.on.private_message(payload = {"cmd":"yeslvlup"})
async def yeslvlup(message: Message):
lvl = 1+base.output_lvl(message.peer_id)
base.input_lvl(message.peer_id,lvl)
await set_state(message.peer_id, lvl)
await message.text(
"Уровень повышен",
keyboard = Keyboard(one_time = True)
.add(Text("Продолжить"), color = KeyboardButtonColor.PRIMARY)
)
# conftest.py
@pytest.fixture
def a_fixture():
return 'a'
@pytest.fixture
def b_fixture():
return 'b'
# модуль с тестами
@mark.parametrize('data_param, expected', [('a_fixture', 'a'), ('b_fixture', 'b')])
def test_sample(data_param, expected, request: pytest.FixtureRequest):
data = request.getfixturevalue(data_param)
assert data == expected
buttons_dataset = [
dict(text="PLAY SONG", command=play_song, row=2),
dict(text="PREVIOUS SONG", command=previous_song, row=4),
dict(text="PAUSE/UNPAUSE", command=pause_unpause, row=3),
dict(text="NEXT SONG", command=next_song, row=5),
dict(text="ADD TO LIST", command=add_to_list, row=1),
]
for button_data in buttons_dataset:
button = Button(self, text=button_data['text'], command=button_data['command'], bg='AntiqueWhite1', width=40)
button.grid(row=button_data['row'], column=0)
song_data = f'{key + 1} : {song['title'][0]} - {song['artist'][0]}'
def recursion(products, parent_name):
for product in products:
name = product['name']
print(f'Текущий - {name}, Родитель - {parent_name}')
sub_products = product.get('products', [])
if sub_products:
recursion(sub_products, name)
recursion(products, 'root')