2013-03-11 97 views
0

我目前正试图编写一个函数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') 

但现在我完全失去了如何计算这个。

+0

您正在阅读的文件的格式是什么? – martega 2013-03-11 09:04:14

+0

请修正你的代码的缩进 – 2013-03-11 09:10:03

+0

你将如何为(x)中的行预期工作? – 2013-03-11 09:20:31

回答

0

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

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

要么改变你的FILEFORMAT,或试试这个:

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

这会给你一个dictionary,可BA的方式访问像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")