繁体   English   中英

如何将列表和用户号码传递给函数并让它显示列表中大于用户号码的所有数字?

[英]How do I pass both the list and the user's number to a function and have it display all numbers in the list that are greater than the user's number?

我需要将列表和用户号码都传递给一个函数,并让它显示列表中大于用户号码的所有数字。 这是我已经得到的并且被卡住了。 感谢您提供任何提示。

import random

def randnum():
    random_num = [random.randrange(1,101,1) for _ in range (20)]
    random_num.sort()
    return random_num

def usernum():
    try:
        user_num = int(input("Please enter a number 1 through 100: "))
        if user_num > 100 or user_num < 1:
            print("Please try again.")
            usernum()
    except ValueError:
        user_num = print("Error. Please try to use integers while entering a number 1-100")
        usernum()
    return user_num

def main():

我认为您缺少一些代码,但您的功能可能是这样的:

def getHigherNumbers(userNumber, listNumbers):
    return [x for x in listNumbers if x > userNumber]

您的usernum()还有一个错误:

当出现错误时,您应该使用return usernum()而不是usernum()因为会有递归。

要在评论中回答您的问题,以下是您的代码的外观:

import random

def randnum():
    random_num = [random.randrange(1,101,1) for _ in range (20)]
    random_num.sort()
    return random_num

def usernum():
    try:
        user_num = int(input("Please enter a number 1 through 100: "))
        if user_num > 100 or user_num < 1:
            print("Please try again.")
            return usernum()
    except ValueError:
        print("Error. Please try to use integers while entering a number 1-100")
        return usernum()
    return user_num

def getHigherNumbers(user_num, random_num):
    return [x for x in random_num if x > user_num]

def main():
    random_num = randnum()
    print('random nums : %s' % random_num)
    user_num = usernum()
    print('user num : %s' % user_num)
    greater_nums = getHigherNumbers(user_num, random_num)
    print('greeter numbers : %s' % greater_nums)

if __name__ == '__main__':
    main()


# random nums : [1, 4, 11, 14, 18, 24, 27, 29, 31, 37, 37, 41, 45, 59, 59, 66, 83, 87, 90, 99]
# Please enter a number 1 through 100: 12
# user num : 12
# greeter numbers : [14, 18, 24, 27, 29, 31, 37, 37, 41, 45, 59, 59, 66, 83, 87, 90, 99]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM