我试图编写一个循环函数,提示用户从第一个函数输入一个键,如果它是一个键,那么它会打印它的值。如果输入的单词不在字典中,则返回"没有输入"。
到目前为止我有什么。
def read_ticker():
c = {}
with open('tickers.csv') as f:
for line in f:
items = [item.strip('"').strip() for item in line.split(",")]
c[items[0]] = items[1:]
print(c)
read_ticker()
d = read_ticker()
def ticker():
x = input('Ticker: ')
if x in d:
return x[c]
else:
return 'No entry'
ticker()
如何返回在第二个函数中输入的键的值?
答案 0 :(得分:1)
你永远不会在read_ticker
中返回你的字典,而且你不清楚为什么要两次调用这个函数。
print(c)
放置return c
。
我认为你想索引dict而不是索引输入。
此外,您正在编入索引的c
是什么?这是未定义的。我假设这是read_ticker
中定义的字典。在这种情况下,您需要d[x]
。
字典c
不是全局的,虽然您可以将其定义为,但是您无法通过c
在其他函数中访问它(忽略即使可能,索引也是向后的)。相反,由于字典是函数read_ticker
的本地字典并在那里修改,我们返回字典并将其存储在变量d
中。
答案 1 :(得分:0)
你的read_ticker()函数应该返回c:
def read_ticker():
c = {}
with open('tickers.csv') as f:
for line in f:
items = [item.strip('"').strip() for item in line.split(",")]
c[items[0]] = items[1:]
print(c)
return c
然后您可以按如下方式修改您的股票代码功能:
def ticker():
x = input('Ticker: ')
if x in d.keys():
return d[x]
else:
return 'No entry'
答案 2 :(得分:0)
您的自动收报机功能可以使用get,如果密钥不存在,您可以给出一个值,如下所示:
def ticker():
x = input('Ticker: ')
return d.get(x, "No entry")