需要帮助编写功能自动收报机

时间:2013-03-11 09:01:12

标签: python

我正在尝试编写一个函数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 :(得分:0)

我不确定您正在阅读的文件的格式是什么,但以下代码将在文件中读取并将其分解为非空行。

def ticker(filename):
    lines = open(filename).read().split('\n')
    lines = [x in lines if x]

答案 1 :(得分:0)

更改文件格式,或尝试此操作:

ticker = {}
for company, ticker in (x):
    ticker[company] = ticker

这会给你一个dictionary,可以像dictionary[key]这样的方式访问它并返回它的值。我相信如果你谷歌获得用户输入,你可以让它工作。也许应用案例转换,以便用户输入的大小写无关紧要。

如果这不能带你走得太远,可以考虑更加努力/雇用一名顾问,或者提出一些问题,证明你在实际上付出了努力。

答案 2 :(得分: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!')

答案 3 :(得分: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")