2013-03-11 120 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")