当前位置: 首页 > 面试题库 >

如何限制数字在指定范围内?(python)

葛宪
2023-03-14
问题内容

我想将数字限制在一定范围内。目前,我正在执行以下操作:

minN = 1
maxN = 10
n = something() #some return value from a function
n = max(minN, n)
n = min(maxN, n)

这样可以将其保留在minN和中maxN,但看起来不太好。我怎样才能做得更好?

PS:仅供参考,我正在使用Python 2.6。


问题答案:

def clamp(n, minn, maxn):
return max(min(maxn, n), minn)

或功能等效:

clamp = lambda n, minn, maxn: max(min(maxn, n), minn)

现在,您使用:

n = clamp(n, 7, 42)

或者说得很清楚:

n = minn if n < minn else maxn if n > maxn else n

更清晰:

def clamp(n, minn, maxn):
    if n < minn:
        return minn
    elif n > maxn:
        return maxn
    else:
        return n


 类似资料:
  • 问题内容: 如何指定从(空格)到Unicode字符的范围? 我有一个类似的正则表达式,它不会编译说这是一个错误的范围。我是Unicode正则表达式的新手,所以我以前从未遇到过此问题。 有没有办法使我忘记或尚未学习的编译或正则表达式? 问题答案: unicode范围的语法不会达到您的期望。 原始字符串可防止对转义进行解析,而正则表达式引擎将不执行此操作。此集合中的唯一范围是: in literal

  • 对于我的Java类,我正在编写一个小程序,首先选择一个介于1和100之间的数字。然后,它会提示用户开始猜测正确的。如果用户对的猜测过高或过低,程序会打印出一个新范围,供他们在该范围内进行猜测。如果用户输入或,程序只需重新要求用户输入,但不会以任何方式更改范围。 示例输出(当机密号为20时)如下所示: 该项目似乎已经基本完成,但只有一个例外。其中一个要求是,当用户键入的超出我们给定的1和100范围时

  • 问题内容: 我读了一些在Ruby中这样做的代码: 输出: 有没有什么可以做到的呢?如果没有,是否有Node模块允许类似的东西? 问题答案: Javascript本身没有该功能。您可以在下面找到一些如何解决的示例: 正常功能,基本平面中的任何字符(不检查代理对) 与上面相同,但是作为添加到数组原型的函数,因此可用于所有数组: 预选字符的范围。比上面的函数要快,并且可以用来表示AZ和az: 或asci

  • 我有一个搜索屏幕,允许用户搜索信息,并填充一个网格。一些搜索结果返回了大量数据。我正在尝试创建一个分页网格,以便一次只能从存储过程中获得10或20个结果。(我在UI中已经有了一个分页网格) 我正在尝试这样做: 上面的查询将只返回前20条记录。我如何在Sybase ASE中实现这一点?不幸的是,对于我的客户项目,我们使用的是Sybase。我知道在其他数据库引擎中,我们可以使用我上面提到的查询。我也知

  • Python3 实例 素数(prime number)又称质数,有无限个。除了1和它本身以外不再被其他的除数整除。 以下实例可以输出指定范围内的素数: 实例(Python 3.0+)#!/usr/bin/python3 # 输出指定范围内的素数 # take input from the user lower = int(input("输入区间最小值: ")) upper = int(input(

  • 问题内容: 在下面的代码中,您将看到它询问“ shift”值。我的问题是我想将输入限制为1到26。 我如何轻松做到这一点? 问题答案: 使用循环不断询问他们的输入,直到收到您认为有效的信息: 如果您收到一个呼叫(例如,如果他们键入),您还希望在呼叫周围有一个障碍。 请注意,如果您使用Python 2.x,则需要使用而不是。后者将尝试将输入解释为Python代码-可能非常糟糕。