Мой код должен использовать двоичный поиск для поиска, если пользователь ввел какое-либо из следующих чисел в двоичном поиске. Я не лучший в реализации этого в дискорде. Просто нужно заставить его работать на раздор.
Пробовал делать это без команд разногласий, и это работает, однако я хочу, чтобы люди использовали моего бота для разногласий и могли делать это онлайн.
@client.event
async def on_message(message):
if message.content.upper().startswith('Number'):
await client.send_message(message.channel, ((int(input"What number do you choose 1 to 100"))))
numbers = [6,7,34,43,88,64]
numbers.sort()
async def BinarySearch (numbers, wanted):
found = False
first = 0
last = len(numbers)-1
while (first <= last) and found == False:
midpoint = (first + last) // 2
if numbers[midpoint] ==wanted:
found = True
else:
if wanted < numbers[midpoint]:
last = midpoint -1
else:
first = midpoint + 1
return found
if BinarySearch(numbers, wanted) == True:
print("I Found Your NUMBER!!!")
else:
print("no u, do it again!")
Если числа [6,7,34,43,88,64] не введены пользователем, бот говорит, что это неправильные числа, если это так, то бот скажет, молодец, что нашел твой номер.
message.contents.upper()
никогда не может начинаться с «Числа». Оно может начинаться с «ЧИСЛО». Я предполагаю, что ваш оператор if не работает.
Попробуйте поместить сообщение журнала в оператор if и проверить.
numbers
определяется как локальная переменная. Если вы хотите передать его между функциями, либо добавьте его в качестве аргумента, либо сделайте его глобальным.
спасибо, b определил это глобально так же, как и хотел, но теперь файл «F:/YUGIOHSQL/PRACTISE.py», строка 37, если BinarySearch (числа, требуется) == True: RuntimeWarning: сопрограмма «BinarySearch» никогда не ожидалась
См. это для этой ошибки: stackoverflow.com/questions/48790427/…
как связать, если message.content.upper().startswith('NUMBERS'): await client.send_message(message.channel, ("Какое число вы выбираете от 1 до 100")), чтобы пользователь мог ввести номер, который они хотят, и он проверяет в двоичном поиске
Спасибо, однако я изменил его. Файл "F:/YUGIOHSQL/PRACTISE.py", строка 34, в <module>, если BinarySearch(числа, требуется) == True: NameError: имя "числа" не определено