簡體   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