【发布时间】:2015-09-22 20:09:41
【问题描述】:
import urllib.request, urllib.error
m = 0
web ='x' # This reads the stock value for "United States Steel Corp."
t =str(web)
try: f = urllib.request.urlopen('http://finance.yahoo.com/q?s='+ t +'')
except ValueError:
print(str('Error'))
m = 1
pass
if m == 0:
urlText = f.read().decode('utf-8')
if urlText.find('<span id="yfs_l84_'+ t +'">'):
cat = urlText[urlText.find('<span id="yfs_l84_'+ t +'">'):urlText.find('<span id="yfs_l84_'+ t +'">')+30]
dog = cat.strip('</span></span>')
dog = cat.strip('<span id="yfs_l84_'+ t +'">')
print('United States Steel Corp. = ', dog)
else:print("---> Couldn't read URL text")
该程序正在读取特定公司缩写的股票价值。在我的情况下,第 3 行显示web ='x'
我想要实现的是,如果我在分配的 web 变量中输入更多缩写,那么我应该能够显示所有输入缩写的股票值。我的意思是:web = 'x', 'y', 'z'。
我不确定如何在我的程序中实现它。我相信我需要创建一个数组,然后使用for 循环进行循环。但是,我不确定。
谢谢!!
【问题讨论】:
-
我认为你的
webvar 已经属于type string,所以tvar 是不必要的。 -
使用
for循环/迭代器。但一个好的方法是在函数中重写你的代码。接受参数 t 并获取它的股票价值。然后,使用 for 迭代器 - 就像 @Onilol 显示的那样。for t in web: your_function(t) -
没错!最好把你的程序分成不同的任务(功能)!每个特定的东西都可以是一个函数!正如@marmeladze 建议的那样,这可以提高您的代码质量并使其更易于维护。
-
查看此处了解获取此信息的更简单方法stackoverflow.com/questions/27543776/…
-
是他们的任何人都可以请进一步帮助我这个程序。我确实从 Onilol 最初给我的结果中得到了正确的结果。现在,我只想从 web = ['x','y','z'] 中读取 x 、 y 、 z 及其相应的股票值。它应该显示 -> x = stockvalue, y = stockvalue, z = stockvalue。
标签: python arrays loops yahoo-finance ticker