鱼C论坛

 找回密码
 立即注册
查看: 2324|回复: 2

[已解决]设置变量问题。

[复制链接]
发表于 2020-10-29 07:49:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
自己写个小代码需要设置大量的循环判断。所以想自建函数。
比如
def xxhpd(a,b,c):
for i in range(len(a)):
if *******:
      break
b为比较运算符 c为符合条件
>< == 这几个运算符如何设别变量呢?
最佳答案
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 = [1,2,3,4,5,6]               
print(xxhpd(a, '>', 3))
# >>> 4
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-29 10:17:58 From FishC Mobile | 显示全部楼层    本楼为最佳答案   
本帖最后由 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 = [1,2,3,4,5,6]               
print(xxhpd(a, '>', 3))
# >>> 4
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-18 04:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表