【问题标题】:What are some better alternatives to nesting if statements when comparing 2 values?在比较 2 个值时,嵌套 if 语句有哪些更好的替代方法?
【发布时间】:2020-11-26 12:58:55
【问题描述】:

抱歉标题冗长,但我想不出更好的措辞方式。我在 if 语句中比较 2 个值。虽然我通常会做这样的事情

val = 1

work = input('1 or 2' )
if work == '1':
  #must compare value of val
  if val == 1:
    print('Val is equal to  1')
elif work == '2':
  if val == 2:
   print('val is equal to 2 ')
   #also also compare value of val

所有的教程都说嵌套 ifs 是一种不好的做法,并且会回来咬你。有没有更好的方法来做到这一点?

【问题讨论】:

  • 当 val 始终为 1 时,为什么需要 if val...?无论如何。您可以通过添加and 条件、if work == '1' and work == val 轻松做到这一点,但是您需要更改 val 或 work 的类型,因为一个是整数,另一个是字符串
  • @Alvi15 他们可以试试if str(work) == '1' and work = val
  • @SophomoreNumberN 工作已经是字符串类型,你需要做if work == '1' and work == str(val):
  • 确实如此。谢谢!

标签: python if-statement


【解决方案1】:

您可以在单个 if/elif 语句中放置多个条件,如下所示:

if( work == '1') and (val == 1))
     #print
elif ( work == '2') and (val == 2))
     #print

【讨论】:

【解决方案2】:

我相信您正在寻找的是and 运算符:

val = 1
work = input('1 or 2')

if work == '1' and val == 1:
    # do stuff
elif work == '2' and val == 2:
    # do stuff

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-03
    相关资源
    最近更新 更多