【问题标题】:If Statement SimpleIf 语句简单
【发布时间】:2020-02-22 03:46:45
【问题描述】:

有没有办法让这个 ELIF 语句更简单,顺便说一下这段代码不起作用。 改变的变量是 APPOINTMENT

elif (rut == '80010900-0' and agental_launch != "" and 'TAL'  in appointment) or
        (rut == '80010900-0' and agental_launch != "" and 'IQQ'  in appointment) or
        (rut == '80010900-0' and agental_launch != "" and 'ANF'  in appointment) or
        (rut == '80010900-0' and agental_launch != "" and 'MJS'  in appointment) or
        (rut == '80010900-0' and agental_launch != "" and 'QTV'  in appointment) or
        (rut == '80010900-0' and agental_launch != "" and 'SVE'  in appointment) or
        (rut == '80010900-0' and agental_launch != "" and 'PMC'  in appointment) or
        (rut == '80010900-0' and agental_launch != "" and 'CHB'  in appointment):
        df.at[idx,'REBATE'] = round(int(monto_neto)*0.35)

【问题讨论】:

  • (p and q) or (p and r) <=> p and (q or r)

标签: python if-statement variables var


【解决方案1】:

你可以这样做:

elif rut == '80010900-0' and agental_launch != "" and any(elem in appointment for elem in ['TAL','IQQ','ANF','MJS','QTV','SVE','PMC','CHB']):
     df.at[idx,'REBATE'] = round(int(monto_neto)*0.35)

【讨论】:

  • 嘿 Vasilis,ANY 的反面是什么?
【解决方案2】:

any 用于成为单行的最后一个条件:

elif rut == '80010900-0' and agental_launch != "" and any(x in appointment for x in ['TAL','IQQ','rest of strings to match...']):

【讨论】:

  • ANY() 的反义词是什么?
  • 但这给我带来了一切!,在示例中任何(x 在 ['TAL' 中的 x 约会,.. 我需要相反的,比如 NOT ANY?是可能的吗?
  • just not any then: 仅当约会中不包含子字符串时才为真
猜你喜欢
  • 2019-03-17
  • 2022-01-26
  • 1970-01-01
  • 2017-06-26
  • 1970-01-01
  • 2015-09-12
  • 1970-01-01
相关资源
最近更新 更多