cueizhiqiang 发表于 2020-10-29 07:49:27

设置变量问题。

自己写个小代码需要设置大量的循环判断。所以想自建函数。
比如
def xxhpd(a,b,c):
for i in range(len(a)):
if *******:
      break
b为比较运算符 c为符合条件
>< == 这几个运算符如何设别变量呢?

冬雪雪冬 发表于 2020-10-29 08:33:50

>>> import operator
>>> operator.eq(3, 4) # 3 == 4
False
>>> operator.gt(3, 4) # 3 > 4
False
>>> operator.lt(3, 4) # 3 < 4
True
>>> operator.ge(3, 4) # 3 >= 4
False
>>> operator.le(3, 4) # 3 <= 4
True

hrp 发表于 2020-10-29 10:17:58

本帖最后由 hrp 于 2020-10-29 10:22 编辑

看你的示例,a应该是一个可迭代对象,暂且认为a是一个列表吧,"if xxx: break"意思应该是当a中有符合条件的值时,立即中断,不再对a中剩余的值进行判断(但你的函数没有返回任何值,判断没有意义,我猜测应该要返回a中符合条件的值或者返回True/False),结合楼上的方法,可以这样写:
from operator import gt, lt, eq

# 创建一个字典,不同符号对应不同操作符函数,可自行添加
op = {'>':gt, '<':lt, '==':eq}

def xxhpd(a,b,c):
    for i in a:
      # op.get(b, eq)是从op字典里取出b对应的函数
      # 如果b不存在字典中,则默认返回eq函数
      # 例如op.get('>', eq)返回的就是gt,整个if表达式就是if gt(i, c)
      if op.get(b, eq)(i, c):
            # 如果将i代入表达式,表达式返回值为True,则把i返回(或者修改为返回True),退出判断
            return i
    # a中没有符合条件的值则返回None(也可以修改为return False)
    return # 这句不写也是返回None,我是为了写上面这句注释才写这句return的
      
a =                
print(xxhpd(a, '>', 3))
# >>> 4
页: [1]
查看完整版本: 设置变量问题。