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

При поиске значения в списке, не находит двухзначные значения

19.09.2022, 15:04. Показов 1808. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вопрос собственно вот в чём:

При поиске значения в списке в переменной t_list - однозначное значение находит исправно, но если запрашиваю поиск двухзначного - результат нулевой. Ошибки нет. Просто не находит тождественных значений.

Например:
Если пытаюсь посчитать сколько "7" в диапазоне от 1 до 100, выдаёт корректный результат 20.
Если же хочу посчитать сколько в том же диапазоне значений "11" - выдаёт 0

Пример кода:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
print('Программа позволяет узнать, сколько раз \nв заданном диапазоне встречается выбранное число.\n')
 
num_start = int(input('Введите начальное число диапазона: '))
num_finish = int(input('Введите конечное число диапазона (не более 1 миллиона): '))
num_finish +=1 # Увеличиваем значение переменной на 1, для range.
num_look = input('Задайте однозначное число, которое необходимо посчитать: ')
x = 0
t_list = list(range(num_start,num_finish))
for i in str(t_list):
    if i == num_look:
        x += 1
num_finish -=1 # Уменьшаем значение переменной на 1, для вывода результата.
print('В последовательности чисел от ', num_start,' до ', num_finish,' цифра: ', num_look, 'встречается ', x, " раз(а)")
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.09.2022, 15:04
Ответы с готовыми решениями:

В поиске добавить код если нет такого значения в стринггрид то вывести ошибку такого значения нет, если находит то вывод
procedure TForm1.Button5Click(Sender: TObject); var i,j,k:integer;S:string; begin for i:=1 to sg.RowCount do begin if...

Ошибка при поиске значения структуры
Нужно написать структуру, которая состоит из следующих элементов - фамилия, имя, отчество, пол, 3 оценки и стипендия. Прочитать их из файла...

Установка курсора при поиске значения
Осуществляю поиск по фамилии, имени, отчеству. Как сделать так, чтобы в случае ненахождения, курсор вставал на самую похожую строчку?...

5
 Аватар для Михалыч
1011 / 355 / 59
Регистрация: 28.02.2013
Сообщений: 939
19.09.2022, 15:50
Так?)

Python
1
2
3
4
5
6
7
8
9
10
print('Программа позволяет узнать, сколько раз \nв заданном диапазоне встречается выбранное число.\n')
 
num_start = int(input('Введите начальное число диапазона: '))
num_finish = int(input('Введите конечное число диапазона (не более 1 миллиона): '))
num_look = input('Задайте однозначное число, которое необходимо посчитать: ')
 
x = str(list(range(num_start, num_finish+1))).count(str(num_look))
 
print('В последовательности чисел от ', num_start, ' до ', num_finish, ' цифра: ', num_look, 'встречается ', x,
      " раз(а)")
1
0 / 0 / 0
Регистрация: 19.09.2022
Сообщений: 4
19.09.2022, 16:06  [ТС]
Так всё работает! ))

Но всё-таки интересно, почему не работает в моём исходном варианте с двухзначным?
И почему не корректно отрабатывало в предложенном Вами первом варианте с однозначным?

Для лучшего понимания, как это работает
0
 Аватар для Михалыч
1011 / 355 / 59
Регистрация: 28.02.2013
Сообщений: 939
19.09.2022, 16:30
Лучший ответ Сообщение было отмечено CHePy как решение

Решение

Вот Ваш вариант (подправленный)

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
print('Программа позволяет узнать, сколько раз \nв заданном диапазоне встречается выбранное число.\n')
 
num_start = int(input('Введите начальное число диапазона: '))
num_finish = int(input('Введите конечное число диапазона (не более 1 миллиона): '))
num_look = input('Задайте однозначное число, которое необходимо посчитать: ')
x = 0
 
 
for i in range(num_start, num_finish+1):
    if num_look in str(i):
        x += str(i).count(num_look)
 
print('В последовательности чисел от ', num_start, ' до ', num_finish, ' цифра: ', num_look, 'встречается ', x,
      " раз(а)")
Добавлено через 5 минут
Теперь о том по чему не работало:
1. Привели list(range(num_start,num_finish)) к строке (9 строчка первоначальный код)
2. В цикле перебирали строку (9-11 строчка), а for берет из строки по 1 символу, поэтому когда искалось однозначное число, то нормально, а двузначное бы он никогда не нашел (1 знак != 2 знакам num_look).

Добавлено через 2 минуты

Не по теме:

CHePy, если трудно представить что делает цикл ставьте внутрь print() и посмотрите что он делает. Это иногда спасает)



Добавлено через 1 минуту
Цитата Сообщение от CHePy Посмотреть сообщение
И почему не корректно отрабатывало в предложенном Вами первом варианте с однозначным?
Потому что в числе 77 две семерки, я упустил этот момент)
2
0 / 0 / 0
Регистрация: 19.09.2022
Сообщений: 4
20.09.2022, 00:06  [ТС]
Михалыч, спасибо за науку!
Доходит по маленько ))

По поводу "Не по теме:" - отличный совет

И вроде даже понял почему он 77 в подправленном варианте не распознал.
В 77 была 7 и прибавилась единица. А вторую он уже не мог посчитать, так как считал блоками а не по знакам.

Ещё раз спасибо.

PS
Теперь попытаюсь понять как работает Ваш вариант ) Я такой схемы не видел ещё

Добавлено через 5 часов 30 минут
При использовании:

Python
1
x = str(list(range(num_start, num_finish + 1))).count(str(num_look))
Чем больше диапазон, тем больше расхождение. Например между 77 и 78.

Уже на диапазоне 1 - 10000, 77 встречается 281 раз, а 78 - 300 раз.

В 777 один раз, или два встречается - 77?

Только 777, или так же и 777?

Программа явно считает что один.
0
 Аватар для Михалыч
1011 / 355 / 59
Регистрация: 28.02.2013
Сообщений: 939
20.09.2022, 11:31
Лучший ответ Сообщение было отмечено CHePy как решение

Решение

CHePy, только 777, второй вариант в этом случае не посчитает, так как серединная семёрка уже учтена.

Добавлено через 2 минуты
Что бы работало так как хотите, должно быть немного иначе. Чуть позже напишу свой вариант)

Добавлено через 20 минут
Можете попробовать срезы.

Добавлено через 4 часа 24 минуты
Вроде так

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
print('Программа позволяет узнать, сколько раз \nв заданном диапазоне встречается выбранное число.\n')
 
num_start = int(input('Введите начальное число диапазона: '))
num_finish = int(input('Введите конечное число диапазона (не более 1 миллиона): '))
num_look = input('Задайте однозначное число, которое необходимо посчитать: ')
 
if len(num_look) == 1:
    x = str(list(range(num_start, num_finish + 1))).count(str(num_look))
else:
    x = 0
    range_in_str = str(list(range(num_start, num_finish + 1)))  # строка поиска из заданного диапазона
    len_slice = len(num_look)                                   # длина среза для поиска
    
    for i in range(len(range_in_str)):
        if range_in_str[i:i + len_slice] in num_look:
            x += 1
 
print('В последовательности чисел от ', num_start, ' до ', num_finish, ' цифра: ', num_look, 'встречается ', x,
      " раз(а)")
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.09.2022, 11:31
Помогаю со студенческими работами здесь

Ошибка 424 при поиске значения на листе
Доброго дня всем. Непойму что не так с кодом. Private Sub Knopka10_Click() ' Месячный_отчет Макрос Const ИмяЛиста1 As String...

Словарь, где значения - это список. Как менять значения в списке?
Задача составить турнирную таблицу по входным данным. В приведеном куске кода, должно добавиться по одному очку в команды...

В списке определить количество элементов, имеющих значения меньше среднего значения и удалить эти элементы
Задание: В созданном списке определить количество элементов, имеющих значения, меньше среднего значения от всех элементов, и удалить эти...

Минимальное число сравнений при поиске в неупорядоченном массиве из Т элементов единственного значения m
Ребята, всем привет!!! Мне очень сильно нужна ваша помощь!!! Необходимо определить для последовательного поиска: -минимальное число...

При матрице более чем 4х4 программа зацикливается на поиске минимального собственного значения
Не могу найти ошибку в коде, при матрице более чем 4х4 программа зацикливается на поиске минимального собственного значения #include...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Функция установки текстового статуса в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru