[英]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.