2017-10-10 19 views
2

我需要將列表和用戶號碼都傳遞給一個函數,並讓它顯示列表中所有大於用戶號碼的數字。這就像我已經得到並卡住了。感謝您的任何提示。如何將列表和用戶號碼都傳遞給一個函數,並讓它顯示列表中所有大於用戶號碼的號碼?

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(): 

回答

2

我認爲你缺少了一些代碼,但你的功能可能是類似的東西:

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] 
+0

我說得對通過了這兩個函數返回兩個random_num和user_num?一旦我調用函數,如何操作數據? –

+0

不知道我是否正確理解你的問題,請完成你的代碼,'main()'是空的,然後顯示你的嘗試,什麼不工作,以及你的期望。 –

+0

對不起,我會盡力解釋更好。目前我無法完成我的main()。我需要在我的'main()'裏面調用'randnum()'和'usernum()'函數來查看列表中的數字是否大於用戶輸入的數字? –

相關問題