【问题标题】:Need help writing function ticker需要帮助编写函数代码
【发布时间】:2013-03-11 09:01:12
【问题描述】:

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

但现在我完全不知道如何计算它。

【问题讨论】:

  • 您正在阅读的文件的格式是什么?
  • 请修正您的代码缩进
  • for line in (x) 期望如何工作?

标签: python


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    要么改变你的文件格式,要么试试这个:

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

    这会给你一个dictionary,它可以像dictionary[key] 这样的方式访问并返回它的值。我敢肯定,如果您通过 google 获取用户输入,您可以使其正常工作。也许应用大小写转换,这样用户输入的大小写就无关紧要了。

    如果这还不足以让您走得更远,请考虑更加努力/聘请顾问或提出问题以表明您确实付出了努力。

    【讨论】:

      【解决方案3】:

      下面是一个非常原始和简单的实现,你可以改进它。

      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")
      

      【讨论】:

        【解决方案4】:

        如果您确定数据文件的格式,您可以使用下面的代码,但请始终记住,在不处理可能的异常的情况下处理文件不是一个好主意。

        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!')
        

        【讨论】:

          猜你喜欢
          • 2016-10-24
          • 2013-10-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-07-10
          • 1970-01-01
          • 2018-12-07
          • 2014-04-06
          相关资源
          最近更新 更多