输入值范围
在Python中如何限制输入数范围,尽量不只是用分支循环例如输入a(0<a<50000) 要在 Python 中限制输入值的范围,可以避免直接使用大量的分支和循环,而是通过一些简单、优雅的方式实现。例如,可以利用判断表达式和异常处理来简化逻辑。以下是解决该问题的一个示例代码:
while True:
try:
# 获取用户输入并转换为整数
a = int(input("请输入一个0到10之间的数:"))
# 使用简单的条件表达式检查范围
if 0 <= a <= 10:
print(f"输入合法,您输入的是:{a}")
break
else:
print("输入超出范围,请重新输入!")
except ValueError:
print("输入无效,请输入一个整数!")
解释:
[*]使用 try...except 捕获非整数输入,从而避免直接程序崩溃。
[*]通过 if 0 <= a <= 10 条件限制输入范围,表达式简洁且可读性好。
[*]使用 while True 保证用户输入直到符合要求为止,不需要创建额外的嵌套分支。
如果还有其他问题,欢迎随时提问!
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 不可能的 用短路逻辑捣鼓出来的小玩意,你试试用递归看看能不能实现二次输入。
def a():
y = int(input())
return not 0<y<500000 or y
def b(y):
return not type(y) == type(True) or '目标不合法!'
x = a(); print(x*b(x)) tommyyu 发表于 2025-1-29 00:13
用短路逻辑捣鼓出来的小玩意,你试试用递归看看能不能实现二次输入。
有点牛哇! tommyyu 发表于 2025-1-29 00:13
用短路逻辑捣鼓出来的小玩意,你试试用递归看看能不能实现二次输入。
人才 tommyyu 发表于 2025-1-29 00:13
用短路逻辑捣鼓出来的小玩意,你试试用递归看看能不能实现二次输入。
啊这
我发不了图片,但是我输入50001程序没有报错……
本帖最后由 tommyyu 于 2025-1-30 15:22 编辑
NJB 发表于 2025-1-29 13:11
啊这
我发不了图片,但是我输入50001程序没有报错……
你自己调一下范围,我用的是0~500000 新想法:用字典代替判断
这个实现比较简单,所以可以试试一行流{:10_256:}(lambda x, y:x](y))({True:(lambda x: print(x)), False:lambda x: print(x)},(lambda x:(x, '请重新输入!', 0<x<50000))(int(input()))) 本帖最后由 三体人的智子 于 2025-1-30 16:40 编辑
打包成函数{:10_256:}
def g(prompt, min_, max_):
while True:
try:
num = int(input(prompt))
if min_ <= num <= max_:
return num
else:
print(f"错误:数值必须在{min_}到{max_}之间。")
except ValueError:
print("错误")
a= g("请输入0到50000的整数",0,50000)
print(a) 本帖最后由 tommyyu 于 2025-1-31 08:13 编辑
三体人的智子 发表于 2025-1-30 16:38
打包成函数
不是哥们这不是if-else?{:10_269:}
页:
[1]