需要帮助编写函数ticker
我现在正在尝试写一个叫做 ticker()
的函数,这个函数会打开一个文件,读取里面的内容,并让用户输入一个公司名称。当用户输入公司名称后,它会返回该公司的股票代码。
另外,还有一个数据文件,格式是这样的:
Name of Company #1
Ticker Symbol of Company #1
Name of Company #2
Ticker Symbol of Company #2
...
我需要的视图大概是这样的:
ticker('test.txt')
Enter Company Name: YAHOO
Ticker: YHOO
我现在的代码是:
def ticker(x):
d = {}
infile = open(x,'r')
content = infile.readlines()
for line in (x):
file = line.split('\n')
但是现在我完全不知道该怎么计算这个了。
4 个回答
0
你可以换个文件格式,或者试试这个方法:
ticker = {}
for company, ticker in (x):
ticker[company] = ticker
这样做会给你一个字典,你可以通过像dictionary[key]
这样的方式来访问它,并获取对应的值。如果你在网上搜索一下如何获取用户输入,应该能找到解决办法。也许可以考虑转换一下大小写,这样用户输入的字母大小写就不那么重要了。
如果这样还不够深入,建议你再努力一下,或者请个顾问帮忙,或者提一些能显示你已经付出努力的问题。
0
如果你对数据文件的格式很确定,可以使用下面的代码。不过,记住在处理文件时不考虑可能出现的错误是不太好的做法。
def ticker(filename):
with open(filename, 'r') as f:
lines = [line.strip() for line in f.readlines()]
return dict(zip(lines[::2], lines[1::2]))
data = ticker('test')
name = raw_input('Enter Company Name: ')
print 'Ticker:', data.get(name.strip(), 'Not Found!')
0
下面是一个非常简单的基础实现,你可以在这个基础上进行改进。
def ticker(filename):
name = raw_input("Enter Company Name:")
f = open(filename, "r")
l = f.readline()
ticker = ''
while l:
if l.strip() == name:
ticker = f.readline().strip()
break
else:
l = f.readline()
if ticker:
print "Ticker: %s" % ticker
else:
print "Ticker not found!"
ticker("1.txt")