python - 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 循环正常工作吗?
谢谢
解决方案
试试这个解决方案:
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
推荐阅读
- arrays - 将哈希数组与 ruby 中的正则表达式进行比较
- javascript - (集成 P5.js 和 Three.js)--- 使用 P5.js 库中的动画创建 ThreeJS 场景?
- java - Jersey 测试中的请求返回 404
- javascript - 使用数组时如何修复谷歌图表不显示?
- vba - MS Access - 使用子表单过滤时禁止保存提示
- c# - Xamarin.forms 将默认文本放在编辑器类中的多行
- unreal-engine4 - 如何在虚幻引擎 4 中获取帧缓冲区?
- excel - 如何将此数据写入 xlsx 文件
- javascript - 有没有办法在 Gatsby 中正确显示帖子内容中的图像?
- html - 如何解决“加载失败的