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

Периодическое сравнение чисел

17.06.2019, 19:18. Показов 1940. Ответов 15

Студворк — интернет-сервис помощи студентам
Всем привет!
Постоянно приходит числа от 1,2 раза в минуту (пример)
061718.22 9259.38555495
061718.25 9261.11389347
061718.25 9252.00000019
061718.26 9264.04201403
061718.27 9256.05991017
061718.28 9258.75473408

Есть задача,
Как сравнить (061718.28 9258.75473408)
9 и 13 числа(выделил красным) и если они одинаковы то, числа по счету 16,17,18 и 20,21,22(красные) 547 и 408 сложить как два числа сумма 955. И так каждую строчку делать.
после сравнения он не дает снова их определить. Что не так. Заранее спасибо.
P.S. может кто-то скажет почему питон после первого перебора цифр не дает работать с ними 2,3,4.. разы.
код
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import requests
import time
 
dat = []
 
for _ in range(1000000):
    s = requests.get('https://bittrex.com/api/v1.1/public/getmarketsummary?market=USDT-BTC')
    data = s.json()
    k1= data["result"][0]["Last"]
    vvv = (time.strftime("%m%d%H.%M"))
    k = "%.8f" % k1 # после "." 8 цифр
    d = f'{vvv} {k}' # в строчку
    s = ''
    my_list = [9,13]
    for i in my_list:
        s += d[i]
    if len(dat) > 0 and s != dat[-1]:  #        print('Изменилось')
        print(vvv, k)
    dat.append(s)  # запись в dat
    time.sleep(5)
Добавлено через 6 минут
Спасибо с меня!!
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.06.2019, 19:18
Ответы с готовыми решениями:

Цифровой компаратор, сравнение 8 разрядных чисел. Сравнение чисел 17 и 8
Использовал генератор слов, компаратор - Comp 4. 74HC85AN_4V. И логический анализатор, проблема в том что я студент, и когда работал с...

Поиск чисел в строках и сравнение этих чисел
Здравствуйте. Помогите пожалуйста с задачей: есть файл, в нём несколько строк. В каждой строке есть текст и одно число. Нужно провести...

Сравнение чисел
Написать программу для нахождения наибольшего из трёх чисел ( сравнить два числа , найти наибольшее , наибольшее сравнить с третьим ), Не...

15
Эксперт Python
 Аватар для dondublon
4653 / 2073 / 366
Регистрация: 17.03.2012
Сообщений: 10,183
Записей в блоге: 6
18.06.2019, 11:03
Может, цифры, а не числа?
Что мешает сделать "в лоб"?
0
0 / 0 / 0
Регистрация: 30.05.2019
Сообщений: 24
18.06.2019, 19:58  [ТС]
Цитата Сообщение от dondublon Посмотреть сообщение
Может, цифры, а не числа?
Что мешает сделать "в лоб"?
Здравствуйте, что значит в лоб?
0
 Аватар для Semen-Semenich
5234 / 3479 / 1175
Регистрация: 21.03.2016
Сообщений: 8,306
18.06.2019, 20:25
Владимир495, в лоб
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
def simile(numeral):
    if numeral[7] == numeral[11] :
        number_1 = numeral[13:16]
        number_2 = numeral[17:]
        sum_ = int(number_1) + int(number_2)
        print(number_1,number_2,sum_)
 
 
 
data = '''061718.22 9259.38555495
061718.25 9261.11389347
061718.25 9252.00000019
061718.26 9264.04201403
061718.27 9256.05991017
061718.28 9258.75473408'''
 
for i in data.split('\n'):
    i = i.replace('.','').replace(' ','')
    simile(i)
1
0 / 0 / 0
Регистрация: 30.05.2019
Сообщений: 24
20.06.2019, 01:17  [ТС]
Semen-Semenich, Спасибо за написанный код, но он выдает только
547 408 955
547 408 955
547 408 955
062001.07 9245.13081453
547 408 955
547 408 955
но на вновь приходящее число не реагирует

Добавлено через 36 секунд
Спасибо я вам отметил
0
 Аватар для Semen-Semenich
5234 / 3479 / 1175
Регистрация: 21.03.2016
Сообщений: 8,306
20.06.2019, 12:39
Владимир495, так это пример как проверять совпадение цифр. вам нужно получать вновь приходящие данные и передавать их в функцию для обработки
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import requests
import time
 
 
def simile(numeral):
    if numeral[7] == numeral[11] :
        number_1 = numeral[13:16]
        number_2 = numeral[17:]
        sum_ = int(number_1) + int(number_2)
        print(number_1,number_2,sum_)
 
dat = []
 
for _ in range(1000000):
    s = requests.get('https://bittrex.com/api/v1.1/public/getmarketsummary?market=USDT-BTC')
    data = s.json()
    k1= data["result"][0]["Last"]
    vvv = (time.strftime("%m%d%H.%M"))
    k = "%.8f" % k1 # после "." 8 цифр
    d = f'{vvv} {k}' # в строчку
    simile(d)
ну а дальше вы можете сделать возврат из функции и обрабатывать дальше а можно в функции дописать обработку и запись. главное помнить об областях видимости переменных
0
0 / 0 / 0
Регистрация: 30.05.2019
Сообщений: 24
20.06.2019, 13:18  [ТС]
У меня выкинул несколько ошибок.
1)line 21, in <module> simile(d)
2)line 8, in simile sum_ = int(number_1) + int(number_2)
3)ValueError: invalid literal for int() with base 10: '3.0'
0
 Аватар для Semen-Semenich
5234 / 3479 / 1175
Регистрация: 21.03.2016
Сообщений: 8,306
20.06.2019, 21:37
Лучший ответ Сообщение было отмечено Владимир495 как решение

Решение

Владимир495, ну это понятно вы же работаете с строкой то есть точка в строке никак не приведется к типу int о чем вам и говорит ошибка. я вам выше привел пример как из строки получить только цифры а в следущем коде уже забыл про этот момент а вы это упустили
Python
1
2
d = f'{vvv} {k}'.replace('.','').replace(' ','')
simile(d)
0
0 / 0 / 0
Регистрация: 30.05.2019
Сообщений: 24
20.06.2019, 21:59  [ТС]
Спасибо. Все заработало.

Добавлено через 14 минут
Semen-Semenich, И последний вопрос, можно сравнить что последняя цифра изменилась( с предыдущего принта), тогда вывести принт, а то он очень часто пишет одно и тоже. Спасибо.
0
 Аватар для Semen-Semenich
5234 / 3479 / 1175
Регистрация: 21.03.2016
Сообщений: 8,306
20.06.2019, 22:09
можно. но я так понимаю в запросах эти цифры меняются через определенное время и если изменилась то только тогда отправлять на обработку строку
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
dat = []
sample = ''
for i in range(1000000):
    print(i)
    s = requests.get('https://bittrex.com/api/v1.1/public/getmarketsummary?market=USDT-BTC')
    data = s.json()
    k1= data["result"][0]["Last"]
    vvv = (time.strftime("%m%d%H.%M"))
    k = "%.8f" % k1 # после "." 8 цифр
    d = f'{vvv} {k}'.replace('.','').replace(' ','')
    if d[-1] != sample :
        sample = d[-1]
        simile(d)
0
0 / 0 / 0
Регистрация: 30.05.2019
Сообщений: 24
20.06.2019, 23:46  [ТС]
Semen-Semenich, Цифры пересчетом с
1
2
3
4
5
6
7 и т.д.
в низ побежали....

Добавлено через 7 минут
и так до бесконечности.

Добавлено через 6 минут
А цикл for может быть бесконечным? или renge 1000000 это максимум?

Добавлено через 28 секунд
Спасибо.
0
Эксперт Python
1356 / 653 / 207
Регистрация: 23.03.2014
Сообщений: 3,057
20.06.2019, 23:51
Владимир495, а на кой, ставить на for , tcknb с бесконечностью, это
Python
1
while True
?
0
0 / 0 / 0
Регистрация: 30.05.2019
Сообщений: 24
21.06.2019, 00:57  [ТС]
Dax, Спасибо за предложение, но куда воткнуть?
0
Эксперт Python
1356 / 653 / 207
Регистрация: 23.03.2014
Сообщений: 3,057
21.06.2019, 10:34
Владимир495, вот Вам простой пример, если просто числа нужны
Python
1
2
3
4
5
6
7
import random
from random import  randint
def demo():
    while True:
        print(random.randint(1,1000000))
if __name__ == '__main__':
    demo()
0
 Аватар для Semen-Semenich
5234 / 3479 / 1175
Регистрация: 21.03.2016
Сообщений: 8,306
21.06.2019, 12:59
Владимир495, то я просматривал когда же сработает функция и забыл удалить строчку принт
Python
1
2
for i in range(1000000):
    print(i)# удалите этот принт
а цикл range выполнится ровно столько раз сколько указано в скобках если раньше не вылетит с ошибкой участок в теле цикла.
1
0 / 0 / 0
Регистрация: 30.05.2019
Сообщений: 24
21.06.2019, 14:45  [ТС]
Semen-Semenich, с ошибкой не надо, Спасибо, все работает.

Добавлено через 48 секунд
Цитата Сообщение от Semen-Semenich Посмотреть сообщение
не вылетит с ошибкой участок в теле цикла.
про вашу цитату.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.06.2019, 14:45
Помогаю со студенческими работами здесь

Сравнение чисел
Помогите, срочно! КОД year = int(input()) if (year &lt; 3564): print(&quot;Еще рано&quot;) else: print(&quot;На марсе есть...

Сравнение 3 чисел
Здравствуйте. Вопрос такой, дано 4 целых числа, если 3 из них равны, то нужно вывести 0, а если нет то 1. Что я сделал не так? Если...

Сравнение чисел
С клавы вводится два целых числа a и b(оба от -1 000 000 да 1 000 000).Составить программу,сравнивающую эти числа и в зависимости от...

Сравнение чисел
Делаем лабы на ассемблере вот таким способом(который показан ниже(я имею ввиду всякие global PrintValue,section .data )),никакой информации...

Сравнение 3 чисел
Всем привет)) В колледже задали задание: написать программу, которая сравнивает 3 числа. Три варианта я сделал: #include...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
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
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru