Я пытаюсь взять некоторые веб-значения и попытаться вставить их в список.но список не увеличивается - PullRequest
0 голосов
/ 02 мая 2019
import time
from bs4 import BeautifulSoup
from urllib.request import urlopen


anc = 0
print(type(anc))

def executeSomething():

    global anc
    abc=0
    xyz=0




    quote_page = 'https://markets.businessinsider.com/currencies/eur-usd'
    page = urlopen(quote_page)
    soup = BeautifulSoup(page, 'html.parser')

    instructions = soup.find("div", {"data-field": "Mid"})
    time2 = soup.find("div", {"data-field": "MidTimestamp"})

    print(time2.get_text(strip=True))


    print(instructions.get_text(strip=True))

    abc = float(instructions.get_text(strip=True))
    print (type(abc))


    time.sleep(400)

    instructions = 0
    instructions1 = 0
    quote_page = 'https://markets.businessinsider.com/currencies/eur-usd'
    page = urlopen(quote_page)
    soup = BeautifulSoup(page, 'html.parser')

    instructions1 = soup.find("div", {"data-field": "Mid"})
    time3 = soup.find("div", {"data-field": "MidTimestamp"})
    xyz = float(instructions1.get_text(strip=True))
    print(type(xyz))
    print(time3.get_text(strip=True))
    print(instructions1.get_text(strip=True))
    fark = abc - xyz
    print(fark,"fark")
    data = []
    anc += 1
    print(anc)
    data.append(xyz)
    print(data, "data")




    if abc==xyz:
        print(abc,"if icinde")
        print(xyz,"if icinde")
        print ("degerler aynı")
        data = []
        anc += 1
        print(anc)
        data.insert(anc, xyz)
        print(data, "data")
    else:
        print ("degerler farklı")
        print(abc, "if icinde")
        print(xyz, "if icinde")



while True:

    executeSomething()

Результат:

<class 'int'>
07:09:00 AM
1.1205
<class 'float'>
<class 'float'>
07:16:00 AM
1.1205
0.0 fark
1
[1.1205] data
1.1205 if icinde
1.1205 if icinde
degerler aynı
2
[1.1205] data
07:16:00 AM
1.1205
<class 'float'>

1 Ответ

0 голосов
/ 02 мая 2019

Если заглянуть внутрь функции executeSomething, вы установите data обратно в пустой список внутри блока if abc==xyz, поэтому data все еще содержит только один элемент во второй раз, когда вы его печатаете.

Кроме того, data возвращается к пустому списку при каждом запуске функции. Если вы хотите, чтобы он накапливался, вы должны инициализировать его вне функции и удалить data = [] внутри функции (оба места)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...