try:
#getchatmember и тд. код
except Exception:
bot.sendmessage #Тутя записать сообщение, об ошибке, т.е. прописать код, для случая ,если пользователь не подписан
skill = 0 #Просто добавил счётчик "скилла" правильных и неправильных ответов
@bot.message_handler(content_types=["text"])
def type_game(message):
if message.text == "Мои данные":
bot.send_message(message.chat.id,"Баланс: " + "/n" +
"Игр сыграно: " + "/n" +
"Правильных ответов: ")
if message.text == "Бесплатная игра":
bot.send_message(message.chat.id, "Чтобы начать введите /free_game")
if message.text == "Платная игра":
bot.send_message(message.chat.id,"Баланс: " "/n"
"Игр сыграно: " + "/n" +
"Правильных ответов: ")
if message.text == '/free_game': #Другой варянт создания комманд
bot.send_message(message.chat.id, SQLighter.answer)
bot.register_next_step_handler(message, free_game)#Перенаправил на функцию free_game
def free_game(message):
if message.text == SQLighter.answer:
bot.send_message(message.chat.id, "Good")
skill = skill + 1
bot.send_message(message.chat.id, SQLighter.answer)
bot.register_next_step_handler(message, free_game)#Создаёт некий цикл, после ответа, оно занова запускает эту функцию, а так же пишет вопрос из базы данных
elif message.text == 'Прекратить игру':
bot.send_message(message.chat.id, 'Игра приостановлена.')#Так как тут нету register next step и тд., то оно автоматически переадресовывает на type_game
else:
skill = skill - 1
bot.send_message(message.chat.id, "Bad")
bot.send_message(message.chat.id, SQLighter.answer)
bot.register_next_step_handler(message, free_game)
pip install geocoder
import geocoder
print(geocoder.ip('me').latlng)
observation = owm.weather_at_place('London,GB')
observation = owm.weather_manager().weather_at_place('London,GB')
pip install pyowmи подожди пока пройдёт установка
import re
spisok = []
with open('spisok.txt', 'r') as f:
for i in f.readlines():
try:
i, _ = re.split('\n', i, maxsplit = 1)
spisok.append(i)
except Exception:
spisok.append(i)
print(spisok)
f.close()
#А потом добавление значений в этот список. Пример консольки.
abprint = input()
if re.match('-cont ', abprint):#Ищет в начале текста "-cont", если находит то продолжает дальше
_, addtext = re.split('-cont ', message.text, maxsplit = 1) #Так как "-cont" в начале присутствует, то разделяет текст, и берёт текст что идёт после "-cont" как "addtext"
#Потом ещё можно добавить проверку, что if addtext == ""(т.е. ничего не написано) выдавало ошибку или тд.
with open('spisok.txt', 'a') as f:#Записывает данные в txt
f.write('\n' + addtext)
f.close()
spisok.append(addtext)#Добавляет значения в список
import telebot
from telebot import types
import re #Эта библиотека, чтоб с текстом работать. Искать его и тд. Я её юзаю по принципу 'Разделяй и властвуй'
bot = telebot.TeleBot("bot-token") #токен от BotFather'a
@bot.message_handler(content_types=['text']) #Срабатывание на text
def start(message): #Начало
if message.text.lower() == 'вычисли сумму чисел' or message.text.lower() == '/sum':#Команда для начала. message.text - получаемый текст. lower(), значит не учитывается регистр, т.е. и /SUM и /SuM будет считаться за один и тот же текст
bot.send_message(message.from_user.id, 'Хорошо. Введи два числа которые ты хочешь суммировать. К примеру "1 и 5".')
bot.register_next_step_handler(message, sumcalc)#"Перенаправляет" на след.функцию
else:
bot.send_message(message.from_user.id, 'Введи /sum, или напиши "Вычисли сумму чисел", чтобы продолжить.')
def sumcalc(message):#После "перенаправления" функция сработает, лишь после получения message
try: #try юзаю, чтоб делать проверки каких-то действий. И в случае ошибки, программа не крашнется, а просто выполнит заданные в except действие.
number1, number2 = re.split(' и ', message.text, maxsplit = 1)#Разделяет полученный текст по слову " и "
try:
number1 = int(number1) #Проверка "числа ли?" полученные данные. Если без такой проверки. То при попытке сделать сумму, а там не числа - то краш
try:
number2 = int(number2)
bot.send_message(message.from_user.id, 'Сумма двоих введённых тобой чисел равна - ' + str(number1 + number2))
except Exception:
bot.send_message(message.from_user.id, 'Вы ввели данные не в правильном формате.\nВы ввели не число. /sum - Чтоб повторить сначала.')
except Exception:
bot.send_message(message.from_user.id, 'Вы ввели данные не в правильном формате.\nВы ввели не число. /sum - Чтоб повторить сначала.')
except Exception:
bot.send_message(message.from_user.id, 'Вы ввели данные не в правильном формате.\n*Будьте внимательны*, ввод должен быть формата *"*число *и* число*"*. /sum - Чтоб повторить сначала.', parse_mode= 'Markdown')
bot.polling( none_stop = True, interval=0 )#Чтоб программа не закрывалась никогда