首页 > 解决方案 > Python函数回调和if问题

问题描述

我刚刚结束为作业编写 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 循环正常工作吗?

谢谢

标签: python

解决方案


试试这个解决方案:

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

推荐阅读