Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
1 / 1 / 0
Регистрация: 12.06.2022
Сообщений: 24

Ошибка при запуске программы поиск через бинар

12.10.2022, 12:03. Показов 1266. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день.
Я относительно недавно начал изучать Python. В книге (Адитьея Бхаргава Грокаем Алгоритмы - стр. 27 ) по которой изучаю есть программа , при ее набивании выходит ошибка не могу понять в чем дело .

Код следующий:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
def binary_search(list, item):
   low = 0
   high = len(list) - 1
 
   while low <= high:
      mid = (low + high)/2
      guess = list[mid]
      if guess == list[mid]:
         return mid
      if guess > item:
         high = mid - 1
      else:
         low = mid + 1
   return None
 
my_list = [1, 3, 5, 7, 9]
print binary_search(my_list, 3) # =>1
print binary_search(my_list, -1) # => None


Ошибка:

C:\Users\xxxx\PycharmProjects\pythonProj ect\venv\Scripts\python.exe C:/Users/xxxx/PycharmProjects/pythonProject/new2.py
Traceback (most recent call last):
File "C:\Users\xxxx\PycharmProjects\pythonPro ject\new2.py", line 19, in <module>
print(binary_search(my_list, 3))
File "C:\Users\xxxx\PycharmProjects\pythonPro ject\new2.py", line 8, in binary_search
guess = list[mid]
TypeError: list indices must be integers or slices, not float

Process finished with exit code 1


помогите разобраться.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.10.2022, 12:03
Ответы с готовыми решениями:

Ошибка при запуске программы через командную строку
Добрый день форумчане! Есть exe программы которая стабильно работает и при запуске она просит ввести название файла если запускать ее...

Ошибка при запуске программы скомпилированной через pyinstaller
Я скомпилировал программу через pyinstaller, начал проверять программу, но при запуске писало: Fatal Python error: initfsencoding:...

Ошибка при запуске другой программы через ShellExecute
Доброго всем! если не трудно помогите, вот уже 2 дня голова болит из за ошибки. Делаю я отдельную программу для обновления через компонент...

8
11 / 15 / 8
Регистрация: 12.10.2011
Сообщений: 811
12.10.2022, 12:13
Так написано же: индексы списка должны быть целыми числами или фрагментами, а не плавающими проверь тип данных
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7391 / 4818 / 1246
Регистрация: 30.03.2015
Сообщений: 13,693
Записей в блоге: 29
12.10.2022, 12:15
Цитата Сообщение от lega1985 Посмотреть сообщение
помогите разобраться.
легко = не используй флоаты в качестве индексов

давай подумает откуда флоат взялся. Доверимся интерпретатору и посмотрим на ту строку что он указал
Цитата Сообщение от lega1985 Посмотреть сообщение
mid = (low + high)/2
Python
1
2
>>> (2+3)/2
2.5
0
11 / 15 / 8
Регистрация: 12.10.2011
Сообщений: 811
12.10.2022, 12:17
mid = int((low + high)/2)
0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
12.10.2022, 13:00
lega1985, там опечатка. должно быть так:
Python
1
mid = (low + high)//2
0
5516 / 2869 / 571
Регистрация: 07.11.2019
Сообщений: 4,760
12.10.2022, 19:40
eaa, нет, там не опечатка, насколько я помню, во втором Питоне (а это по принтам без скобок понятно) деление "/" целых - целочисленное. Т.е. во втором Питоне код должен работать правильно.
0
1 / 1 / 0
Регистрация: 12.06.2022
Сообщений: 24
13.10.2022, 13:21  [ТС]
Набрал, выдает ошибку


File "C:\Users\xxxx\PycharmProjects\pythonPro ject\new2.py", line 19
print binary_search(my_list, 3) # =>1
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print(...)?

Process finished with exit code 1

У меня стоит Python 3.9 может для него по другому нужно что то написать
0
5516 / 2869 / 571
Регистрация: 07.11.2019
Сообщений: 4,760
13.10.2022, 13:34
Лучший ответ Сообщение было отмечено lega1985 как решение

Решение

lega1985, да, по-другому, в круглых скобках.
0
1 / 1 / 0
Регистрация: 12.06.2022
Сообщений: 24
13.10.2022, 13:45  [ТС]
Спасибо!
Все получилось!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.10.2022, 13:45
Помогаю со студенческими работами здесь

Ошибка при запуске программы через телефон (failed linking references)
Создаю программу Xamarin.Forms по дефолтному кейсу c#. При запуске программы через телефон выдает ошибку failed linking references. Как...

В чем ошибка? При запуске программы открывается консоль и сразу ошибка о завершении программы
К тому же выдает warning: deprecated conversion from string constant to 'char*' . #include &lt;iostream&gt; #include &lt;string.h&gt; #include...

Поиск обновления программы при запуске
Есть некий метод который проверяет обновление программы: private void checkUpdate() { Update update =...

Ошибка в конструкторе с параметром. Компилятор не ругается, но при запуске программы возникает ошибка
Я знаю точно, что ошибка в конструкторе с параметром. Компилятор не ругается, но при запуске моей программы windows выдает ошибку. Почему ?...

Ошибка при запуске программы
Вот такая: вроде не работает прога под висту 64, под 32 и хр всё ок Heres the text from &quot;View problem details&quot; : ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru