Size: a a a

2021 December 19

A

Asmo in Python
Просто же создание вебдрайвера вроде
источник

АХ

Андрей Харламов... in Python
Коллеги, есть у кого времечко помочь немного в лс?
источник

A

Asmo in Python
источник

NS

Naumenko Sergey in Python
"создание вебдрайвера" - это в данном случае создание объекта. Но "делаю формат веб драйвера" -  я вобще понять не могу что это значит... Я даже загуглил, но 10 сек исследований сказали что Гугл тоже хз что такое формат вебдрайвера
источник

АХ

Андрей Харламов... in Python
import requests
import telebot
from telebot import apihelper
from telebot import types
from telebot.types import InlineKeyboardMarkup, InlineKeyboardButton

token = '5090765553:AAG8uCiMzMUPme9kQNzcBtgllqS0Vki5Sh0'

bot = telebot.TeleBot(token)


@bot.message_handler(commands=['start','go'])
def startpg(message):
   startmenu = types.ReplyKeyboardMarkup(True, True)
   startmenu.row('Начать')
   bot.send_message(message.chat.id, 'Ку', reply_markup=startmenu)

@bot.message_handler(content_types=['text'])
def next(message):
   global biznes
   biznes = 'biznes'
   if message.text == 'Начать':
   # Создаем клавиатуру
      vibor = types.ReplyKeyboardMarkup(True, False)
      vibor.row('Бизнес')
      bot.send_message(message.chat.id, 'Хорошо, выберите тематику курсов?', reply_markup=vibor)


   elif message.text == 'Бизнес':
       if biznes == 'biznes':
   # Создаем клавиатуру
         vibor2 = types.ReplyKeyboardMarkup(True, False)
         vibor2.row('баба')
         vibor2.row('c2')
         bot.send_message(message.chat.id, 'Удачи!', reply_markup=vibor2)

   elif message.text == 'баба':
        if biznes == 'biznes':
 # Создаем клавиатуру
         vibor3 = types.ReplyKeyboardMarkup(True, False)
         vibor3.row('Начать1')
         bot.send_message(message.chat.id, 'Естче', reply_markup=vibor3)


   elif message.text == 'Начать1':
       if biznes == 'biznes':
         headers = {
   'Content-Type': 'application/json',
}

data = '{"chat_id":"403623314","text":"pop"}'

response = requests.post('https://api.telegram.org/bot5090765553:AAG8uCiMzMUPme9kQNzcBtgllqS0Vki5Sh0/sendMessage',header=headerss, data=data)

bot.polling()


Полный код. Когда запускаю дает ошибку:

Traceback (most recent call last):
 File "telegram2.py", line 56, in <module>
   response = requests.post('https://api.telegram.org/bot5090765553:AAG8uCiMzMUPme9kQNzcBtgllqS0Vki5Sh0/sendMessage',header=headerss, data=data)
NameError: name 'headerss' is not defined
источник

АХ

Андрей Харламов... in Python
Что не так?(
источник

АХ

Андрей Харламов... in Python
если отдельным скриптом:
import requests

headers = {
   'Content-Type': 'application/json',
}

data = '{"chat_id":"403623314","text":"pop"}'

response = requests.post('https://api.telegram.org/bot5090765553:AAG8uCiMzMUPme9kQNzcBtgllqS0Vki5Sh0/sendMessage', headers=headers, data=data)

то все нормально
источник

NS

Naumenko Sergey in Python
Переменная headers не определена
источник

NS

Naumenko Sergey in Python
А здесь она определена
источник

NS

Naumenko Sergey in Python
Перед вызовом
источник

АХ

Андрей Харламов... in Python
хм, дак идентично же, просто не совсем понимаю в чем должна быть разница
источник

NS

Naumenko Sergey in Python
Разница в области видимости.
У тебя headers определяется в функции и то если срабатывает elif. Функция при этом даже не возвращает значение headers. А потом вне всяких функций ты пытаешься отправит запрос используя headers. Но так как request не находится в функции которая принимала бы headers и/или headers не глобальная переменная - интерпретатор в душе не представляет что такое headers в той области видимости, где ты ее вызываешь
источник

NS

Naumenko Sergey in Python
Здесь headers - определена как глобальная переменная. И все ок
источник

NS

Naumenko Sergey in Python
А ещё у тебя в функции определяется переменная headers а в качестве именованного аргумента ты передаешь headerss
источник

АХ

Андрей Харламов... in Python
Спасибо большое, покажите дураку как правильно переменную headers назначить, чтобы работало, все перепробовал, просто только начал изучать и много не понимаю((
источник

NS

Naumenko Sergey in Python
В твоём коде его достаточно просто прописать под импортами
источник

NS

Naumenko Sergey in Python
Но комплексно ты вопрос не решишь, так как видно, что у тебя есть пробелы в знаниях того как работают функции и что такое область видимости. Поэтому что бы решить вопрос глобально тебе стоит разобраться именно с тем как работают функции. Ибо если бы ты передавал параметр (например payload, в твоём коде он же data то все равно бы была ошибка)
источник

АХ

Андрей Харламов... in Python
Спасибо огромное буду изучать! ))
источник

NS

Naumenko Sergey in Python
Успехов!
источник

M

Marcel in Python
Ребят, привет. Хочу декомпильнуть байткод 3.9. На гитхабе нашел unpyc, Может кто подсказать как его поставить и использовать? https://github.com/greyblue9/unpyc37-3.10
источник