2015-10-05 2 views
1

Я работаю над IRC, например, chatbot для подключения к форуму IP.Board, и он будет использоваться для игр и возиться. У меня есть проблема с командами, которая действительно начинает меня беспокоить, поскольку она сначала срабатывала, а затем запускала ошибки, вызванные частью функции elif. Я проверял прошлой ночью, и это, казалось, работало хорошо, но когда я загрузился этим утром, чтобы сделать немного больше работы он начал бросать ошибку:Несколько команд, доступных в одной команде

user, newItem = args.split("with", 1) 
    ERROR requires 2 arguments but only one was specified 

Я включил код сценария ниже.

EDIT: Я исправил проблему и обновленный код ниже, чтобы помочь другим

if cmd == "slap": 
     try: 
      if args == user.lower(): 
        group.sendPost("-slaps "+args+" with "+random.choice(Items)+"-") 
      else: 
        user, newItem = args.split("with", 1) 
        group.sendPost("-Slaps "+user+" with "+newItem+"-") 
        f = open("DictItems", "a") 
        f.write("" + newItem + '\n') 
        f.close() 
     except: 
        print("Slap Command Errored with NewItem") 
        group.sendPost("I'm sorry, that command seems to be broken. I have notified the staff.") 
        self.sendPM(Yusei, "I'm sorry to inform but the slap command has failed with an error defining the newItem. Please look into it. Thank you.") 
+0

Ваша строка записи не требует начального '' '' в начале. Это пустая строка. Также я не уверен в этом, но у вас есть два аргумента для разделения? т. е. если у вас есть '' foo '', он выдает ошибку, но это не тот, который вы указали. – SirParselot

+0

Можете ли вы предоставить свой ввод, который вызывает ошибку? – SirParselot

+0

Команда выполнить это будет либо .slap [insertnamehere] с [randomitem], либо .slap [insertnamehere]. Кроме того, я помещал пустую строку туда, чтобы начать ввод, но если он не нужен, я могу его удалить. – LordYusei

ответ

0
if cmd == "slap": 
     try: 
      if args in whitelist: 
        group.sendPost("-slaps "+args+" with "+random.choice(Items)+"-") 
      else: 
        user, newItem = args.split("with", 1) 
        group.sendPost("-Slaps "+user+" with "+newItem+"-") 
        f = open("DictItems", "a") 
        f.write("" + newItem + '\n') 
        f.close() 
     except: 
        print("Slap Command Errored with NewItem") 
        group.sendPost("I'm sorry, that command seems to be broken. I have notified the staff.") 
        self.sendPM(Yusei, "I'm sorry to inform but the slap command has failed with an error defining the newItem. Please look into it. Thank you.") 

Также к человеку TAHT уведомил меня, я не мог сделать это, я извиняюсь. Я неправильно понял это, когда посмотрел. Спасибо, что дали мне знать. Это обновленный код, который работает.

+0

Пожалуйста, не делайте этого! Добавьте свое решение как ОТВЕТ. Изменение кода связано с тем, что вы не можете сделать, как это определено в справочном центре. Вернитесь назад и добавьте свой код в качестве ответа. Проверьте справочный центр для получения дополнительной информации. Благодарю. –

Смежные вопросы