鱼C论坛

 找回密码
 立即注册
查看: 2692|回复: 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),结合楼上的方法,可以这样写:
  1. from operator import gt, lt, eq

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

  4. def xxhpd(a,b,c):
  5.     for i in a:
  6.         # op.get(b, eq)是从op字典里取出b对应的函数
  7.         # 如果b不存在字典中,则默认返回eq函数
  8.         # 例如op.get('>', eq)返回的就是gt,整个if表达式就是if gt(i, c)
  9.         if op.get(b, eq)(i, c):
  10.             # 如果将i代入表达式,表达式返回值为True,则把i返回(或者修改为返回True),退出判断
  11.             return i
  12.     # a中没有符合条件的值则返回None(也可以修改为return False)
  13.     return # 这句不写也是返回None,我是为了写上面这句注释才写这句return的
  14.       
  15. a = [1,2,3,4,5,6]               
  16. print(xxhpd(a, '>', 3))
  17. # >>> 4
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-10-29 08:33:50 | 显示全部楼层
  1. >>> import operator
  2. >>> operator.eq(3, 4) # 3 == 4
  3. False
  4. >>> operator.gt(3, 4) # 3 > 4
  5. False
  6. >>> operator.lt(3, 4) # 3 < 4
  7. True
  8. >>> operator.ge(3, 4) # 3 >= 4
  9. False
  10. >>> operator.le(3, 4) # 3 <= 4
  11. True
复制代码
小甲鱼最新课程 -> https://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),结合楼上的方法,可以这样写:
  1. from operator import gt, lt, eq

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

  4. def xxhpd(a,b,c):
  5.     for i in a:
  6.         # op.get(b, eq)是从op字典里取出b对应的函数
  7.         # 如果b不存在字典中,则默认返回eq函数
  8.         # 例如op.get('>', eq)返回的就是gt,整个if表达式就是if gt(i, c)
  9.         if op.get(b, eq)(i, c):
  10.             # 如果将i代入表达式,表达式返回值为True,则把i返回(或者修改为返回True),退出判断
  11.             return i
  12.     # a中没有符合条件的值则返回None(也可以修改为return False)
  13.     return # 这句不写也是返回None,我是为了写上面这句注释才写这句return的
  14.       
  15. a = [1,2,3,4,5,6]               
  16. print(xxhpd(a, '>', 3))
  17. # >>> 4
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-28 21:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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