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