【问题标题】:I try to take some web values and try to insert them in to list . but list is not increase我尝试获取一些网络值并尝试将它们插入到 list 中。但名单没有增加
【发布时间】:2019-09-20 21:54:36
【问题描述】:
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'>

【问题讨论】:

  • 您能否添加更多信息,例如你期望的结果是什么?

标签: python list while-loop


【解决方案1】:

查看executeSomething 函数内部,您将data 设置回if abc==xyz 块内的一个空列表,这就是为什么data 在您第二次打印它时仍然只有一个元素。

此外,每次函数运行时,data 都会被设置回一个空列表。如果你想让它累积,你应该在函数外部初始化它并删除函数内部的data = [](两个地方)

【讨论】:

  • 感谢它在我将列表放在函数之外时起作用
猜你喜欢
  • 2022-09-23
  • 2015-10-29
  • 2015-05-26
  • 2014-06-25
  • 2020-06-17
  • 2016-02-10
  • 2017-11-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多