Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 在Python3中创建一个创建两个列表的函数_Python 3.x - Fatal编程技术网

Python 3.x 在Python3中创建一个创建两个列表的函数

Python 3.x 在Python3中创建一个创建两个列表的函数,python-3.x,Python 3.x,我试图创建一个函数getStocks,它从用户那里获取两个列表,一个包含股票名称列表,另一个包含股票价格列表。这应该在一个循环中完成,这样它会一直获取股票名称和价格,直到用户输入字符串“done”作为股票名称。函数应该返回两个列表。我的主要问题是弄清楚我的参数是什么,如何持续接受名称和价格,以及应该使用什么类型的循环。我是一个非常新的编程,所以任何帮助将不胜感激。我相信我很接近,但我不确定我的错误在哪里 def getStocks(name,price): stockNames = []

我试图创建一个函数getStocks,它从用户那里获取两个列表,一个包含股票名称列表,另一个包含股票价格列表。这应该在一个循环中完成,这样它会一直获取股票名称和价格,直到用户输入字符串“done”作为股票名称。函数应该返回两个列表。我的主要问题是弄清楚我的参数是什么,如何持续接受名称和价格,以及应该使用什么类型的循环。我是一个非常新的编程,所以任何帮助将不胜感激。我相信我很接近,但我不确定我的错误在哪里

def getStocks(name,price):
    stockNames = []
    stockPrices = []
    i = 0
    name = str(input("What is the name of the stock?"))
    price = int(input("what is the price of that stock?"))
    while i < len(stockNames):
        stockNames.append(name)
        stockPrices.append(price)
        i += 1
    else:
        if name = done
    return stockNames
    return stockPrices
def getStocks(名称、价格):
股票名称=[]
股票价格=[]
i=0
name=str(输入(“股票的名称是什么?”)
price=int(输入(“该股票的价格是多少?”)
而我(股票名称):
stockNames.append(名称)
股票价格。追加(价格)
i+=1
其他:
如果name=done
返回股票名称
返回股票价格

你的问题有点不清楚,但有些事情是不明确的,你不能有两条返回线,一旦你点击第一条,它就会离开函数。相反,你会写一些类似的东西

return (stockNames, stockPrices)
第二,while循环没有else,因此您实际上应该设置while循环,然后在开始处设置if语句来检查字符串是否“完成”,然后相应地执行操作。中断将使您脱离上一个while循环,即使它看起来和if关联。比如说:

while i < len(stockNames):
    if name.upper() == 'DONE':
        break
    else:
        stockNames.append(name)
        stockPrices.append(price)
        i += 1

但实际上,根据结构的其他部分,您可能希望创建一个字典,而不是有两个单独的列表,这样所有内容都保留在键:值对中,因此,您不必检查这两个对象的索引0,并希望它们不会被某个恶意函数移位,而是将键:值对“stock_x”:48始终放在一起

我需要程序一遍又一遍地询问一个名字和一个价格,直到我输入“done”作为名字的输入,然后我需要它打印两个列表。这段代码是我正在做的4个函数之一,第一个函数生成两个列表,第二个函数搜索名字列表中所需的股票,第三个函数查找哪些股票的价格高于搜索到的股票,第四个是把所有函数放在一起的主函数。@NicholasDePasquale上面的更新有意义吗?是的,我帮了很多忙,而且比我写的更有意义
def getStocks(name, price):
    stockNames = name
    stockPrices = price

    while 1:
        inputName = str(input("What is the name of the stock?"))
        inputPrice = int(input("what is the price of that stock?"))

        if name.upper() != 'DONE':
            stockNames.append(inputName)
            stockPrices.append(inputPrice)
        else:
            break

    return (stockNames, stockPrices)