簡體   English   中英

Python 函數回調和 if 問題

[英]Python function callback and if issue

我剛剛結束為作業編寫 Python 代碼,但我在最后一點上有點卡住了,你能幫我找出原因嗎?

這是我的代碼:

import random

def get_rand_int(arg1, arg2):

    rand = random.randint(arg1, arg2)
    if float(rand) == float(arg1):
        return None
    elif float(rand) == float(arg2):
        return None
    else:
        return rand 

def print_random():
    try :
        prompt = int(input("Please enter an integer greater than 0:"))
        assert(prompt > 0)

    except:
        print("Invalid input: You must input an integer greater than 0 for your input.")

    rand = get_rand_int(0, prompt)

    if rand > 0: 
        print( "Your random number is ",rand)
    elif rand is None:
        print( " Please Launch the program again")

第二個函數調用第一個函數根據用戶提示生成一個隨機數。 除了生成隨機數與參數之一相同的情況外,一切正常,我的程序應該打印“請再次啟動程序”。 然而,它不工作,在這種情況下什么也沒有發生(沒有打印任何東西)你知道如何使最后一個 if 循環正常工作嗎?

謝謝

試試這個解決方案:

import random
def get_rand_int(arg1, arg2):

    rand = random.randint(arg1, arg2)
    #print("Test", rand)
    if rand == arg1:
        return None
    elif rand == arg2:
        return None
    else:
        return rand 

def print_random():
    try :
        prompt = int(input("Please enter an integer greater than 0:"))
        assert(prompt > 0)

    except:
        print("Invalid input: You must input an integer greater than 0 for your input.")

    rand = get_rand_int(0, prompt)

    if rand != None: 
        print( "Your random number is ",rand)
    else:
        print( " Please Launch the program again")

print_random()

更優的解決方案:

import random
def get_rand_int(arg1, arg2):
    rand = random.randint(arg1, arg2)
    if rand != arg1 or rand != arg2:
        return rand
    return None

def print_random():
    try :
        prompt = int(input("Please enter an integer greater than 0:"))
        assert(prompt > 0)

    except:
        print("Invalid input: You must input an integer greater than 0 for your input.")

    rand = get_rand_int(0, prompt)

    if rand != None: 
        print( "Your random number is ",rand)
    else:
        print( " Please Launch the program again")

print_random()

輸出:

Please enter an integer greater than 0:7                                                                                                                                                                                            
Your random number is  2 

另一個輸出:

Please enter an integer greater than 0:0                                                                              
Invalid input: You must input an integer greater than 0 for your input.                                               
Please Launch the program again

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM