需要帮助编写函数ticker

0 投票
4 回答
2064 浏览
提问于 2025-04-17 18:39

我现在正在尝试写一个叫做 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")

撰写回答