阐明字符串如何在python函数中作为参数工作

问题描述

至少到目前为止,我已经找到解决问题的方法,但是我想知道是否有更好的方法,以及实际的逻辑是什么。 我正在学习金融应用程序的Python。我了解了如何通过pandas_datareader请求单引号或多引号的数据。今天,我试图将过程转换为功能

对于单引号(例如Apple),代码如下:

stock_data = pandas_datareader.DataReader('AAPL',data_source = 'yahoo',start = '2000-1-1')

我想将其转换为一个函数,您可以在其中传递股票的代码作为参数并获取股票的数据,例如:

def stock(x):
     stock_data = pandas_datareader.DataReader(x,start = '2000-1-1')
     print(stock_data)

理由是stock('AAPL')将返回Apple的数据,stock(FB)将对FB执行相同的操作,依此类推。

我发现它无法通过这种方式工作,我想知道如何告诉函数它应该期望的参数是字符串?

在这是我的解决方法,但是我并没有真正遵循特定的逻辑,我只是​​不断尝试:

def stock(x):
    stock_data = pandas_datareader.DataReader(str(x),start = '2000-1-1')
    print(stock_data)

我理解它的工作方式是在第2行中,我告诉它将x转换为字符串并从那里移动,因此当我最终编写stock('AAPL')时,它可以按预期工作。我想我的问题是我是否总是需要将参数转换为字符串?为什么x作为参数不能是任何东西,包括字符串?

解决方法

stock(FB)无法工作,因为它不是字符串格式,尚未定义FB.Python会抛出类似错误:NameError:name'a'not defined 它应该是stock(“ FB”)。 在这里,我们将“ FB”作为字符串传递 或者你可以做

x = "FB"
stock(x)

您必须将格式更改为字符串,否则python会将其视为尚未定义的对象。