输出为–;python

输出为–;python,python,conditional-statements,Python,Conditional Statements,此函数仅返回值1。有人能帮忙吗?这些参数描述了我试图实现的内容,我不确定为什么会发生这种情况 def夹钳(最小值、最大值): """ 修改列表,使每个元素都在最小值和最大值之间。 列表中的任何数字,小于min将替换为min。任何 列表中大于max的数字将替换为max。任意数字 最小值和最大值之间保持不变。 这是一个过程。它修改列表,但不返回新的 列表 示例:如果列表为[-1,1,3,5],则钳制(列表0,4)将更改 将[0,1,3,4]作为其内容。 参数列表:要修改的列表 前提条件:alist是

此函数仅返回值1。有人能帮忙吗?这些参数描述了我试图实现的内容,我不确定为什么会发生这种情况

def夹钳(最小值、最大值): """ 修改列表,使每个元素都在最小值和最大值之间。 列表中的任何数字,小于min将替换为min。任何 列表中大于max的数字将替换为max。任意数字 最小值和最大值之间保持不变。 这是一个过程。它修改列表,但不返回新的 列表 示例:如果列表为[-1,1,3,5],则钳制(列表0,4)将更改 将[0,1,3,4]作为其内容。 参数列表:要修改的列表 前提条件:alist是一个数字列表(float或int) 参数min:列表的最小值 前提条件:min=min是一个数字 """ 附加列表(最小值) 附加列表(最大值) 对于入围者: 如果最大值>=a>=min: 归还 表1.sort() 返回列表 返回:1,无论输入如何。

代码有三个问题

  • 返回一个
    会在元素在范围内时立即返回
  • alist.append(min)
    alist.append(max)
    alist.sort()
    与所述的所需功能无关
  • 不应使用内置函数名作为变量名(即
    min
    max
  • 代码

    def clamp(alist, min_, max_):
        for i, a in enumerate(alist):
            if a > max_:
              alist[i] = max_     # limit to max
            elif a < min_:
              alist[i] = min_     # limit to min
    
        return alist
    
    print((clamp([-1, 1, 3, 5], 0, 4)))
    # Output: [0, 1, 3, 4]
    
    def夹持器(列表、最小值、最大值): 对于i,枚举中的a(列表): 如果a>最大值: alist[i]=max#限制到max elif a<最小值: alist[i]=min#限制为min 返回列表 打印((夹具([-1,1,3,5,0,4))) #输出:[0,1,3,4] 备选代码(使用列表理解)

    def夹持器(列表、最小值、最大值): 返回[min_uu2;if amax_2;else a for a in alist]
    不能将条件语句串在一起。在两个单独的行中使用
    max>=a和a>=min
    ,或者使用1,因为我尝试了1行,但仍然得到相同的响应。我不认为if语句可以使用两行。什么是
    thelist
    保持参数一致,应该是
    clamp(alist,0,4)
    而不是
    thelist
    ,在任何地方都没有定义。您不必将
    min
    max
    附加到
    alist
    中,如果要检查已填充列表中的值,只需比较这些值,而不是附加,然后
    replace()
    值并在列表中排序。很抱歉,列表是一个意外事件,它应该是
    列表
    ,但这在功能描述中,而不是代码的一部分。这只是指一个假设列表,该列表已经在terminal中定义。如果您只是创建一个列表,其中每个元素都“钳制”在一个范围内,那么就不理解调用
    alist.append(min)、alist.append(max)和alist.sort()
    的目的。此外,min和max不是很好的变量名,因为它们替换了内置函数,因此会让代码审阅者感到困惑。您的第一个
    if
    语句检查是多余的,特别是如果您在其中只有
    pass
    ,则不需要。如果a>max:和
    如果a
    ,则直接跳到
    的检查。我还想补充一点,程序通常不会返回任何内容,例如
    random。shuffle
    洗牌列表,但不会返回它。@FishingCode我删除了它:)您可以自己提交对代码的编辑@FishingCode——保持if条件和pass尽可能与OP代码相似,以便于他/她遵循我的建议。同意如列表理解版本所示,这不是必需的。
    def clamp(alist, min_, max_):
      return [min_ if a < min_ else max_ if a > max_ else a for a in alist]