RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / user-349601

Andrey Dolgopolov's questions

Martin Hope
Andrey Dolgopolov
Asked: 2021-11-29 21:58:02 +0000 UTC

通过循环输出数据

  • 0

php 上有一个简单的任务来推断表格,循环。

F
E F
D E F
C D E F
B C D E F
A B C D E F

但是我的代码输出有点错误,我不知道出了什么问题。

<?php

$str = "70";
$Fstr = '69';

for($i=0; 6>$i; $i++){
    echo "\n","<br>"; 
    for ($j=0; $j < (0+$i); $j++) { 
        echo chr($Fstr);
        $Fstr--;
    }
    echo chr($str);
}
?>
php
  • 1 个回答
  • 10 Views
Martin Hope
Andrey Dolgopolov
Asked: 2021-11-27 02:59:19 +0000 UTC

将数据发送到 url php

  • 1

问题是如何将数据从第一个表单发送到第二个表单,在第二个表单中获取更多数据并将其发送到第三页并显示所有内容。我决定通过 url 来做。还有一个问题。如何为表单中的链接添加属性?

第二种形式从url获取属性值

<?php 
    $url = $_SERVER['QUERY_STRING'];
    return $url;
?>

然后你需要选择一个值并将其添加到现有的url并转到第三页,我不知道如何将值从$url添加到“http://x/end.php”

<form action="http://x/end.php"  method="GET">
        <input type="radio" name="iphone" value="iPhone 12"> iPhone 12<Br>
        <input type="radio" name="iphone" value="iPhone 11"> iPhone 11<Br>
        <input type="radio" name="iphone" value="iPhone SE"> iPhone SE<Br>
        <input type="radio" name="iphone" value="iPhone XR"> iPhone XR<Br>
<p><input type="submit"" s/></p>

第一页上的第一个表格

 <form action="http://Lab3Alena/action.php" method="GET">
        <h2 id="buy_apple_products" class="text_buy_apple">Купить продукцию Apple<br></h2>
        <p class="video"><iframe  width="560" height="315" src="https://www.youtube.com/embed/R4-YdC5N6Lo" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></p>
        <p>Форма заказа продукции Apple:</p>
        <p>Ваше имя и фамилия: *</p>
        <p><input type="text" name="name_surname" size="40"></p>
        <p>Выберите цвет iPhone:</p>
        <p><select type="type" name="type">
          <option>Белый</option>
          <option>Черный</option>
          <option>Золотой</option>
        </select></p>
        <p>Способ доставки:</p>
        <input type="radio" name="browser" value="Самовывоз"> Самовывоз<Br>
        <input type="radio" name="browser" value="В черте города"> В черте города<Br>
         <input type="radio" name="browser" value="По всей Украине"> По всей Украине<Br>

        <p>Ваш E-mail: *</p>
        <p><input name="email" size="40"></p>
        <p>Ваш адрес: *</p>
        <p><input name="address" size="40"></p>
        <p><input type="submit" /></p>
        <p>* - поля обязательные для заполнения</p>
      </form>
javascript
  • 1 个回答
  • 10 Views
Martin Hope
Andrey Dolgopolov
Asked: 2020-03-28 02:33:56 +0000 UTC

如何通过key从JSON文件中提取值?

  • 2

我正在从服务器获取 JSON 文件。我需要从中提取某些行,在这种情况下,是一个问题和答案选项,处理它们,然后将它们发送给机器人。

我知道如何发送给机器人,但我不明白如何提取这些行,因为一开始 JSON 文件就像一个字典 ( res),然后在那里打开一个列表,然后又是一个字典。需要的线路:

"value": "Ухаживать за животными", "value": "Обслуживать машины", "value": "Вы предпочитаете".
res = {
  "description": "Выберите наиболее предпочтительный вариант ответа из предложенных",
  "id": 16,
  "questions": [
    {
      "answers": [
        {
          "id": 187,
          "value": "Ухаживать за животными"
        },
        {
          "id": 188,
          "value": "Обслуживать машины"
        }
      ],
      "component": "SelectOneAnswer",
      "direction": "row",
      "id": 96,
      "value": "Вы предпочитаете"
    },
    {
      "answers": [
        {
          "id": 189,
          "value": "Помогать больным людям, лечить их"
        },
        {
          "id": 190,
          "value": "Составлять таблицы, схемы, программы для вычислительных машин"
        }
      ],
      "component": "SelectOneAnswer",
      "direction": "row",
      "id": 97,
      "value": "Вы предпочитаете"
    },
    {
      "answers": [
        {
          "id": 191,
          "value": "Участвовать в оформлении книг, плакатов,  журналов"
        },
        {
          "id": 192,
          "value": "Следить за состоянием и развитием растений"
        }
      ],
      "component": "SelectOneAnswer",
      "direction": "row",
      "id": 98,
      "value": "Вы предпочитаете"
    },
    {
      "answers": [
        {
          "id": 193,
          "value": "Участвовать в оформлении книг, плакатов,  журналов"
        },
        {
          "id": 194,
          "value": "Следить за состоянием и развитием растений"
        }
      ],
      "component": "SelectOneAnswer",
      "direction": "row",
      "id": 99,
      "value": "Вы предпочитаете"
    }
      }

我只能questions通过这样做来获取存储的所有内容:
a = res["questions"][0]并通过print(a). 但除此之外,我不知道。

python
  • 2 个回答
  • 10 Views
Martin Hope
Andrey Dolgopolov
Asked: 2020-03-23 19:06:22 +0000 UTC

制作一个按钮处理程序来调用该函数。那些。单击按钮时,该函数应运行。遥控机器人

  • 0

有一个问题,唉,我无法应付。我有 2 个文件,主要在哪里可以找到机器人的主要代码和按钮,以及在哪里检查和注册用户。如何使当您单击主文件中的“Employer”按钮(第 128 行)时,注册一个名为 send_welcome_employer(第 47 行)的函数。主要的

from telegram import Update, ReplyKeyboardMarkup, InlineKeyboardButton, InlineKeyboardMarkup
from telegram.ext import Updater, CommandHandler, CallbackQueryHandler, ConversationHandler
import mysql.connector
from telegram.ext import Updater, CommandHandler
from config import TOKEN
import requests, telebot, logging, sys
from telebot import types, apihelper
from mysql.connector import errorcode
import mysql.connector




try:
    mydb = mysql.connector.connect(
        host="host",
        user="user",
        passwd="passwd",
        port="port",
        database="database"
    )
except mysql.connector.Error as err:
    if err.errno == errorcode.ER_ACCESS_DENIED_ERROR:
        print("Что-то не так с вашим именем пользователя или паролем")
        sys.exit()
    elif err.errno == errorcode.ER_BAD_DB_ERROR:
        print("База данных не существует")
        sys.exit()
    else:
        print(err)
        sys.exit()

mycursor = mydb.cursor()
sql = "SELECT COUNT(*) FROM users_employer"
mycursor.execute(sql)
rows = mycursor.fetchall()
number_registered_employers = rows[0][0]  # сколько человек зарегистрировано(Работодатели)
sql = "SELECT COUNT(*) FROM users_workers"
mycursor.execute(sql)
rows = mycursor.fetchall()
number_registered_workers = rows[0][0]  # сколько человек зарегистрировано(Работодатели)
sql = "SELECT COUNT(*) FROM applications"
mycursor.execute(sql)
rows = mycursor.fetchall()
number_applications = rows[0][0]  # сколько человек зарегистрировано(Работодатели)

logging.basicConfig(format='[LINE:%(lineno)d]# - %(levelname)s - %(message)s', level=logging.INFO)
logger = logging.getLogger(__name__)
bot = telebot.TeleBot(TOKEN)
id_group = -1001159001919  # 756515243#
user_data = {}


class User:
    def __init__(self, city):
        self.city = city

        keys = ['phone', 'date_work_start',
                'date_work_finish', 'time_work', 'place_work',
                'quantity_people', 'type_payment', "much_pay"]

        for key in keys:
            self.key = None


FIRST, registration_button, setting_button, main_menu_button, \
post_requests_button, feedback_button= range(6)

def start(update, context):

    user = update.message.from_user
    logger.info("Пользователь %s запустил команду start.", user.last_name + user.first_name)
    img = open('D:\Photo\wallapper\\17706.jpg', 'rb')
    bot.send_photo(update.message.chat.id, img)
    keyboard = [
        [InlineKeyboardButton('Зарегистрироваться', callback_data=str(registration_button)),
         InlineKeyboardButton('Настройка', callback_data=str(setting_button))],
        [InlineKeyboardButton('Заявка', callback_data=str(post_requests_button))],
        [InlineKeyboardButton('Обратная связь', callback_data=str(feedback_button))]
    ]
    reply_markup = InlineKeyboardMarkup(keyboard)
    update.message.reply_text("Ура! Вы - в главном меню!\n Добро пожаловать в бота для поиска работы, "
                           "для работодателей представляеться прекрасная возможность в короткий срок "
                           "найти ответсвенных работников для проведения скорых работ. В свою очередь для "
                           "работников представляеться возможность в короткий срок заработать\n---\n🔘Работодателей: "
                           + str(number_registered_employers) + "\n🔘Работников: " + str(number_registered_workers) +
                           "\n🔘Количество размещенных заказов: " + str(number_applications) +
                           "\n---\nДля начала работы нажмите одну из кнопок ниже:", reply_markup=reply_markup)
    return FIRST


def start_over(update, context):  # Запрашивать тот же текст и клавиатуру, что и` start`, но не как новое сообщение
    bot = context.bot
    img = open('D:\\Photo\\wallapper\\17706.jpg', 'rb')
    bot.send_photo(update.message.chat.id, img)
    keyboard = [
        [InlineKeyboardButton('Зарегистрироваться', callback_data=str(registration_button)),
         InlineKeyboardButton('Настройка', callback_data=str(setting_button))],
        [InlineKeyboardButton('Заявка', callback_data=str(post_requests_button))],
        [InlineKeyboardButton('Обратная связь', callback_data=str(feedback_button))]
    ]
    reply_markup = InlineKeyboardMarkup(keyboard)
    update.message.reply_text("Ура! Вы - в главном меню!\n Добро пожаловать в бота для поиска работы, "
                              "для работодателей представляеться прекрасная возможность в короткий срок "
                              "найти ответсвенных работников для проведения скорых работ. В свою очередь для "
                              "работников представляеться возможность в короткий срок заработать\n---\n🔘Работодателей: "
                              + str(number_registered_employers) + "\n🔘Работников: " + str(number_registered_workers) +
                              "\n🔘Количество размещенных заказов: " + str(number_applications) +
                              "\n---\nДля начала работы нажмите одну из кнопок ниже:", reply_markup=reply_markup)
    return FIRST



def registration_menu(update, context):  # при нажатии на первую кнопку (Зарегистрироваться)
    query = update.callback_query
    bot = context.bot
    keyboard = [
        [InlineKeyboardButton("Работодатель", callback_data=str(" ")), # СТРОКА 128
         InlineKeyboardButton("Работник", callback_data=str(" "))],
        [InlineKeyboardButton("Вернуться в главное меню", callback_data=str(main_menu_button))]
    ]
    reply_markup = InlineKeyboardMarkup(keyboard)
    bot.edit_message_text(
        chat_id=query.message.chat_id,
        message_id=query.message.message_id,
        text="Выбирете кто вы, для регистрации в бд ",
        reply_markup=reply_markup
    )
    return FIRST


def setting_menu(update, context):  # при нажатии на вторую кнопку (Настройка)
    query = update.callback_query
    bot = context.bot
    keyboard = [
        [InlineKeyboardButton("Данные о себе", callback_data=str(" ")),
         InlineKeyboardButton("Данные вашей заявки", callback_data=str(" "))],
        [InlineKeyboardButton("Вернуться в главное меню", callback_data=str(main_menu_button))]
    ]
    reply_markup = InlineKeyboardMarkup(keyboard)
    bot.edit_message_text(
        chat_id=query.message.chat_id,
        message_id=query.message.message_id,
        text="Что вы хотите изменить??",
        reply_markup=reply_markup
    )
    return FIRST


def post_requests_menu(update, context):  # при нажатии на третью кнопку (Разместить объявление)
    query = update.callback_query
    bot = context.bot
    keyboard = [
        [InlineKeyboardButton("Вернуться в главное меню", callback_data=str(main_menu_button))]
    ]
    reply_markup = InlineKeyboardMarkup(keyboard)
    bot.edit_message_text(
        chat_id=query.message.chat_id,
        message_id=query.message.message_id,
        text="ТУТ ДОЛЖНА БЫТЬ ФОРМА ДЛЯ РАЗМЕЩЕНИЯ ОБЪЯВЛЕНИЯ",
        reply_markup=reply_markup
    )
    return FIRST


def feedback_menu(update, context):  # при нажатии на третью кнопку (Разместить объявление)
    query = update.callback_query
    bot = context.bot
    keyboard = [
        [InlineKeyboardButton("Вернуться в главное меню", callback_data=str(main_menu_button))]
    ]
    reply_markup = InlineKeyboardMarkup(keyboard)
    bot.edit_message_text(
        chat_id=query.message.chat_id,
        message_id=query.message.message_id,
        text="Напишите нам, чего не хватает в боте 🙌 \
                Мы всегда рады обратной связи от неравнодушных пользователей!\
                Здесь вы можете поделиться позитивным, негативным опытом, предложить сферы деятельности, категории, параметры фильтрации и т.д.",
        reply_markup=reply_markup
    )
    return FIRST


def error(update, context):
    logger.warning('Обновление "%s" вызвало ошибку "%s"', update, context.error)



def main():
    updater = Updater(TOKEN, use_context=True)
    dp = updater.dispatcher
    # ^ означает "начало строки"
    # $ означает "конец строки"
    conv_handler = ConversationHandler(
        entry_points=[CommandHandler('start', start)],
        states={
            FIRST: [CallbackQueryHandler(registration_menu, pattern='^' + str(registration_button) + '$'),
                    CallbackQueryHandler(setting_menu, pattern='^' + str(setting_button) + '$'),
                    CallbackQueryHandler(post_requests_menu, pattern='^' + str(post_requests_button) + '$'),
                    CallbackQueryHandler(feedback_menu, pattern='^' + str(feedback_button) + '$'),
                    CallbackQueryHandler(start_over, pattern='^' + str(main_menu_button) + '$')]
        },
        fallbacks=[CommandHandler('start', start)]
    )

    dp.add_handler(conv_handler)
    dp.add_error_handler(error)
    updater.start_polling()



if __name__ == '__main__':
    main()

登记

import requests, telebot, logging, sys
from telebot import types, apihelper
from mysql.connector import errorcode
import mysql.connector

try:
    mydb = mysql.connector.connect(  # даныне бд
        host="host",
        user="user",
        passwd="passwd",
        port="port",
        database="database"
    )
except mysql.connector.Error as err:
    if err.errno == errorcode.ER_ACCESS_DENIED_ERROR:
        print("Что-то не так с вашим именем пользователя или паролем")
        sys.exit()
    elif err.errno == errorcode.ER_BAD_DB_ERROR:
        print("База данных не существует")
        sys.exit()
    else:
        print(err)
        sys.exit()

mycursor = mydb.cursor()
bot = telebot.TeleBot('909567963:AAEiKOOZkQ8dCeyGLPYd1EV6Uy-m1AAmEsQ')
user_data = {}

@bot.message_handler(commands=['help'])
def help_list(message):
    a = ['/help ' + 'Информация\n', '/reg_employer ' + 'Регистрация работодателя\n', '/reg_workers '+'Регистрация работника']
    for i in a:
        bot.send_message(message.chat.id, i)

class User:
    def __init__(self, first_name):
        self.first_name = first_name
        self.last_name = ''
        self.middle_name = ''
        self.phone_number = ''
        self.subjects_civil_law = ''
        self.region = ''
        self.services_provided = ''
        self.age = ''

@bot.message_handler(commands=['reg_employer'])  # Работодатель 

def send_welcome_employer(message):# СТРОКА 47
    user_id = message.from_user.id
    list = []
    sql = "SELECT user_id FROM users_employer "
    mycursor.execute(sql)
    rows = mycursor.fetchall()
    for row in rows:
        list.append(row[0])
    if user_id not in list:
        markup = types.ReplyKeyboardRemove(selective=False)
        msg = bot.send_message(message.chat.id, "Введите Ваше имя: ", reply_markup=markup)
        bot.register_next_step_handler(msg, process_lastname_step_employer)
    else:
        sql = "SELECT first_name, last_name FROM users_employer WHERE user_id LIKE %s"
        val = (user_id,)
        mycursor.execute(sql, val)
        rows = mycursor.fetchall()
        for row in rows:
            first_name = row[0]
            last_name = row[1]
        bot.send_message(message.chat.id, "Вы уже зарегистрированы, " + first_name + " " + last_name)


def process_lastname_step_employer(message):
    try:
        user_id = message.from_user.id
        user_data[user_id] = User(message.text)
        user = user_data[user_id]

        msg = bot.send_message(message.chat.id, "Введите Вашу фамилию: ")
        bot.register_next_step_handler(msg, process_middlename_step_employer)
    except Exception as e:
        bot.reply_to(message, "ooooooooooooops ")


def process_middlename_step_employer(message):
    try:
        user_id = message.from_user.id
        user = user_data[user_id]
        user.last_name = message.text

        msg = bot.send_message(message.chat.id, "Введите Ваше отчество: ")
        bot.register_next_step_handler(msg, process_phonenumber_step_employer)
    except Exception as e:
        bot.reply_to(message, 'ooooooooooooops')


def process_phonenumber_step_employer(message):
    try:
        user_id = message.from_user.id
        user = user_data[user_id]
        user.middle_name = message.text

        msg = bot.send_message(message.chat.id, "Введите Ваш номер телефона: ")
        bot.register_next_step_handler(msg, process_subjects_civil_law_step_employer)
    except Exception as e:
        bot.reply_to(message, 'ooooooooooooops:')


def process_subjects_civil_law_step_employer(message):
    try:
        a = int(message.text)
        if len(str(a)) == 11:
            user_id = message.from_user.id
            user = user_data[user_id]
            user.phone_number = message.text

            markup = types.ReplyKeyboardMarkup(one_time_keyboard=True, resize_keyboard=True)
            itembtn1 = types.KeyboardButton('Физическое лицо')
            itembtn2 = types.KeyboardButton('Юридическое лицо')
            markup.add(itembtn1, itembtn2)

            msg = bot.send_message(message.chat.id, "Укажите вы являетесь юридическим или физическим лицом: ",
                                   reply_markup=markup)
            bot.register_next_step_handler(msg, process_region_step_employer)
        else:
            bot.send_message(message.chat.id)
            bot.register_next_step_handler(process_subjects_civil_law_step_employer)
    except Exception as e:
        msg = bot.reply_to(message, 'Не являеться номером телефона. Пожалуйста введите номер телефона.')
        bot.register_next_step_handler(msg, process_subjects_civil_law_step_employer)


def process_region_step_employer(message):
    try:
        user_id = message.from_user.id
        user = user_data[user_id]
        user.subjects_civil_law = message.text
        markup = types.ReplyKeyboardRemove(selective=False)
        msg = bot.send_message(message.chat.id, "Укажите Ваш город: ", reply_markup=markup)
        bot.register_next_step_handler(msg, process_services_provided_step_employer)
    except Exception as e:
        msg = bot.reply_to(message, 'Вы ввели что-то не верное')
        bot.register_next_step_handler(msg, process_region_step)


def process_services_provided_step_employer(message):
    try:
        user_id = message.from_user.id
        user = user_data[user_id]
        user.region = message.text

        markup = types.ReplyKeyboardMarkup(one_time_keyboard=True, resize_keyboard=True)
        itembtn1 = types.KeyboardButton('Строительство')
        itembtn2 = types.KeyboardButton('Проектирование')
        itembtn3 = types.KeyboardButton('Программирование')
        itembtn4 = types.KeyboardButton('Оказание услуг в сфере обслуживания')
        itembtn5 = types.KeyboardButton('Грузовые перевозки')

        markup.add(itembtn1, itembtn2, itembtn3, itembtn4, itembtn5)

        msg = bot.send_message(message.chat.id, "Каким видом деятельности вы занимаетесь: ", reply_markup=markup)
        bot.register_next_step_handler(msg, process_last_step_employer)
    except Exception as e:
        bot.reply_to(message, 'oooops')


def process_last_step_employer(message):
    try:
        user_id = message.from_user.id
        user = user_data[user_id]
        user.services_provided = message.text
        markup = types.ReplyKeyboardRemove(selective=False)
        sql = "INSERT INTO users_employer (first_name, last_name, middle_name, phone_number, subjects_civil_law, region, services_provided, user_id) \
               VALUES (%s, %s, %s, %s, %s, %s, %s, %s)"
        val = (
            user.first_name, user.last_name, user.middle_name, user.phone_number, user.subjects_civil_law, user.region,
            user.services_provided, user_id)
        mycursor.execute(sql, val)
        mydb.commit()
        bot.send_message(message.chat.id,
                         "Вы успешно зарегестрированны," + " " + user.first_name + " " + user.middle_name,
                         reply_markup=markup)
    except Exception as e:
        bot.send_message(message, "ooooooooooooops")






@bot.message_handler(commands=['reg_workers'])
def send_welcome(message):
    user_id = message.from_user.id
    list = []
    sql = "SELECT user_id FROM users_workers "
    mycursor.execute(sql)
    rows = mycursor.fetchall()
    for row in rows:
        list.append(row[0])
    if user_id not in list:
        markup = types.ReplyKeyboardRemove(selective=False)
        msg = bot.send_message(message.chat.id, "Введите Ваше имя: ", reply_markup=markup)
        bot.register_next_step_handler(msg, process_lastname_step)
    else:
        sql = "SELECT first_name, last_name FROM users_workers WHERE user_id LIKE %s"
        val = (user_id,)
        mycursor.execute(sql, val)
        rows = mycursor.fetchall()
        for row in rows:
            first_name = row[0]
            last_name = row[1]
        bot.send_message(message.chat.id, "Вы уже зарегистрированы, " + first_name + " " + last_name)


def process_lastname_step(message):
    try:
        user_id = message.from_user.id
        user_data[user_id] = User(message.text)
        user = user_data[user_id]

        msg = bot.send_message(message.chat.id, "Введите Вашу фамилию: ")
        bot.register_next_step_handler(msg, process_middlename_step)
    except Exception as e:
        bot.reply_to(message, "ooooooooooooops ")


def process_middlename_step(message):
    try:
        user_id = message.from_user.id
        user = user_data[user_id]
        user.last_name = message.text

        msg = bot.send_message(message.chat.id, "Введите Ваше отчество: ")
        bot.register_next_step_handler(msg, process_phonenumber_step)
    except Exception as e:
        bot.reply_to(message, 'ooooooooooooops')


def process_phonenumber_step(message):
    try:
        user_id = message.from_user.id
        user = user_data[user_id]
        user.middle_name = message.text

        msg = bot.send_message(message.chat.id, "Введите Ваш номер телефона: ")
        bot.register_next_step_handler(msg, process_age_step)
    except Exception as e:
        bot.reply_to(message, 'ooooooooooooops:')


def process_age_step(message):
    try:
        a = int(message.text)
        if len(str(a)) == 11:
            user_id = message.from_user.id
            user = user_data[user_id]
            user.phone_number = message.text

            msg = bot.send_message(message.chat.id, "Укажите Ваш возраст: ")
            bot.register_next_step_handler(msg, process_region_step)
        else:
            bot.send_message(message.chat.id)
            bot.register_next_step_handler(process_age_step)
    except Exception as e:
        msg = bot.reply_to(message, 'Не являеться номером телефона. Пожалуйста введите номер телефона.')
        bot.register_next_step_handler(msg, process_age_step)


def process_region_step(message):
    try:
        int(message.text)
        user_id = message.from_user.id
        user = user_data[user_id]
        user.age = message.text
        markup = types.ReplyKeyboardRemove(selective=False)
        msg = bot.send_message(message.chat.id, "Укажите Ваш город: ", reply_markup=markup)
        bot.register_next_step_handler(msg, process_services_provided_step)
    except Exception as e:
        msg = bot.reply_to(message, 'Не являеться номером возрастом. Укажите Ваш возраст:')
        bot.register_next_step_handler(msg, process_region_step)


def process_services_provided_step(message):
    try:
        user_id = message.from_user.id
        user = user_data[user_id]
        user.region = message.text

        markup = types.ReplyKeyboardMarkup(one_time_keyboard=True, resize_keyboard=True)
        itembtn1 = types.KeyboardButton('Строительство')
        itembtn2 = types.KeyboardButton('Проектирование')
        itembtn3 = types.KeyboardButton('Программирование')
        itembtn4 = types.KeyboardButton('Оказание услуг в сфере обслуживания')
        itembtn5 = types.KeyboardButton('Грузовые перевозки')

        markup.add(itembtn1, itembtn2, itembtn3, itembtn4, itembtn5)

        msg = bot.send_message(message.chat.id, "Каким видом деятельности вы занимаетесь: ", reply_markup=markup)
        bot.register_next_step_handler(msg, process_last_step)
    except Exception as e:
        bot.reply_to(message, 'oooops')


def process_last_step(message):
    try:
        user_id = message.from_user.id
        user = user_data[user_id]
        user.services_provided = message.text
        markup = types.ReplyKeyboardRemove(selective=False)
        sql = "INSERT INTO users_workers (first_name, last_name, middle_name, phone_number, age, region, services_provided, user_id) \
               VALUES (%s, %s, %s, %s, %s, %s, %s, %s)"
        val = (
            user.first_name, user.last_name, user.middle_name, user.phone_number, user.age, user.region,
            user.services_provided, user_id)
        mycursor.execute(sql, val)
        mydb.commit()
        bot.send_message(message.chat.id,
                         "Вы успешно зарегестрированны," + " " + user.first_name + " " + user.middle_name,
                         reply_markup=markup)
    except Exception as e:
        bot.send_message(message, "Вы уже зарегестрированны," + " " + user.first_name + " " + user.middle_name)

如果我将 send_welcome_employer 函数直接传递给 callback_data,它会给出错误:“send_welcome_employer() 接受 1 个位置参数,但给出了 2 个”无法理解它传递的参数,所以我只是添加了 *args

А если в send_welcome_employer передать *args, то будет такая ошибка: 'Update' object has no attribute 'from_user' И как тут исправить я не знаю.

Строго не судите, пока только учусь.

python-3.x
  • 1 个回答
  • 10 Views
Martin Hope
Andrey Dolgopolov
Asked: 2020-12-27 23:09:57 +0000 UTC

错误。TypeError:参数 1 必须是 pygame.Surface,而不是 str (pygame)

  • 0

我无法解决问题,也许有人遇到过。我查看了其他来源并没有找到解决方案..

任务是什么,您需要了解错误出现的原因以及如何摆脱它。似乎在那之后角色动画应该可以正常工作,即 看起来他在跑。

import pygame
pygame.init(); #нинциализируем билиотеку

win = pygame.display.set_mode((1250,650))#размерность нашего игрового окна
pygame.display.set_caption("Моя новая игра")#имя программы

#подгружааем картинки для использования
walkRight = [pygame.image.load("game/firstGamePyGame/left_walk0.png"),("game/firstGamePyGame/left_walk1.png"),("game/firstGamePyGame/left_walk2.png")
                            ,("game/firstGamePyGame/left_walk3.png"),("game/firstGamePyGame/left_walk4.png"),("game/firstGamePyGame/left_walk5.png")]
walkLeft = [pygame.image.load("game/firstGamePyGame/right_walk0.png"),("game/firstGamePyGame/right_walk1.png"),("game/firstGamePyGame/right_walk2.png")
                            ,("game/firstGamePyGame/right_walk3.png"),("game/firstGamePyGame/right_walk4.png"),("game/firstGamePyGame/right_walk5.png")]
playerStand = pygame.image.load("game/firstGamePyGame/stand.png")
bg = pygame.image.load("game/firstGamePyGame/bg.jpg")

clock = pygame.time.Clock()
x = 50#начальаня координата нашего персонажа
y = 387
wight = 192#ширина персонажа
heigh = 256#высота персонажа
speed = 5#скорость персонажа

isJump = False#прыгает сейчас игрок или нет
left = False
right = False
jumpCount = 10
animCount = 0

def drawWindow():#функция отрисовки окна игры
    global animCount
    if animCount + 1 >= 30:
        animCount = 0
    win.blit(bg,(0,0))#установка бк
#анимируем персонажа
    if left:
        win.blit(walkLeft[animCount // 5], (x,y))
        animCount +=1
    elif right:
        win.blit(walkRight[animCount // 5], (x,y))
        animCount +=1
    else:
        win.blit(playerStand, (x, y))
    pygame.display.update()#для обновления формы

run = True#условие для работы игры пока мы не нажмем на выход
while run:
    clock.tick(30)

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False

    keys = pygame.key.get_pressed()#картеж для записи всех действий
    if keys[pygame.K_LEFT] and x >5:#если нажимаем на кнопку влево то от X отноманием нашу скорость(x>5 - что-бы не уходить за границы игрового поля)
        x -= speed
        left = True
        right = False
    elif keys[pygame.K_RIGHT] and x < 1250 -wight -5:#x < 500 -wight -5 - что-бы не уходить за границы игрового поля
        x += speed
        left = False
        right = True
    else:
        left = False
        right = False
        animCount =0
    if not(isJump):#если не прыгает
#Реализуем прыжек
        if keys[pygame.K_SPACE]:
            isJump = True
    else:
        if jumpCount >= -10:
            if jumpCount < 0:
                y += (jumpCount ** 2) / 2
            else:
                y -= (jumpCount ** 2) / 2
            jumpCount -= 1
        else:
            isJump = False
            jumpCount = 10

    drawWindow()

pygame.quit()

这是错误代码:

Traceback (most recent call last):
  File "C:/Users/79132/Desktop/python/game.py", line 80, in <module>
    drawWindow()
  File "C:/Users/79132/Desktop/python/game.py", line 38, in drawWindow
    win.blit(walkRight[animCount // 5], (x,y))
TypeError: argument 1 must be pygame.Surface, not str

移动超过几个像素后会出现错误,但是如果您不按住移动按钮,而是按下并释放它,那么一切或多或少都可以正常工作。

python
  • 1 个回答
  • 10 Views

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5