Function python函数不会返回基于条件的值

Function python函数不会返回基于条件的值,function,python-3.x,return-value,Function,Python 3.x,Return Value,我是新手,我正在寻求帮助。我目前正努力完成一个项目。这是: def printStock(stockList, stockPrice, p): for i in range(len(stockPrice)): if stockPrice[i] > p: p = stockList[i] print("The stocks with a higher value are:", p) def searchStock(stockList

我是新手,我正在寻求帮助。我目前正努力完成一个项目。这是:

def printStock(stockList, stockPrice, p):
    for i in range(len(stockPrice)):
        if stockPrice[i] > p:
            p = stockList[i]
    print("The stocks with a higher value are:", p) 

def searchStock(stockList, stockPrice, s):
    for i in range(len(stockList)):
        if s == stockList[i]:
            s = stockPrice[i]
        elif s != stockList[i]:
            s = -1
    return s

def mainFun():
    stockList= []
    stockPrice = []
    l = 1
    while l > 0:
        stocks = str(input("Enter the name of the stock:"))
        stockList +=  [stocks]
        if stocks == "done"or stocks == 'done':
            l = l * -1
            stockList.remove("done")
        else:
            price = int(input("Enter the price of the stock:"))
        stockPrice += [price]
        l = l + 1
    print(stockList)
    print(stockPrice)
    s = input("Enter the name of the stock you're looking for:")
    searchStock(stockList, stockPrice, s)
    p = s
    printStock(stockList, stockPrice, p)

每次我运行程序到最后,它都不会因为某种原因返回变量s。如果我用print替换return,它总是打印-1,而不是列表上的股票价格。关于第3行,我还收到一个错误,说“unorderable types int()>str()”。基本上,函数printStock接受三个参数,一旦函数完成,它应该打印高于值“p”的股票名称。“p”的值与调用searchStock函数后得到的值相同,但我似乎无法让它工作。有人能帮我吗?

s
正在从函数返回,但返回值没有分配给外部作用域上的任何变量

替换

searchStock(stockList, stockPrice, s)


一切都应该按预期进行

欢迎来到StackOverflow。我已经提交了一些对你的问题的编辑,特别是针对一些英语语法(比如大写“I”)。我希望你不介意。StackOverflow为有相同问题的未来用户记录问题,写得越好,搜索引擎就越容易正确索引问题。你会发现你发布的许多问题可能会被评论者调整,以便尽可能多的人能够理解问题并帮助回答。它仍然没有返回任何值,我还能做些什么吗?
s=searchStock(stockList, stockPrice, s)