![](/img/trans.png)
[英]Python - For each number, have a list of all numbers that are one level greater
[英]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.