如何在python中传输IF语句? [复制]

Posted

技术标签:

【中文标题】如何在python中传输IF语句? [复制]【英文标题】:How to transfer IF statements in python? [duplicate] 【发布时间】:2020-05-22 03:19:03 【问题描述】:

我的 If 语句输入过多,无法将其全部放在一行上,有没有办法将其转移到下一行?

if monthConversion != "Jan" or "Feb" or "Mar" or "Apr" or "May" \
                      or "Jun" or "Jul" or "Aug" or "Sep" or "Oct" or "Nov" or "Dec":

我试图将这一切写在一行上,但不合适。然后我尝试在“Oct”之后加上“或”,并在下一行写下“Nov”,但 Python 显示“预期表达式”和“目标注释的非法变量”。

【问题讨论】:

我会将月份放在模块顶部初始化的列表中,然后使用“包含”,这样我就不需要第二行了。 你有一个更大的问题:你的声明总是True。你正在测试 ìf monthConversion != "Jan" 然后你测试 "Feb" 是否真实......它是真实的 - 因为 emtpy 字符串是真实的 “如何测试多个 ..”欺骗性测试一个东西与多个其他东西,如果你切换你的测试它是一样的:"Jan" != mothConverstion and "Feb" != mothConverstion and ... - 但对你来说最好做monthConversion not in "Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Now","Dec"或使用日期时间模块或日历模块进行转换以开始 @patrick 我想说::.. 非空字符串是True ... 原始问题的答案:如果要将表达式扩展到下一行,请在当前行的末尾加上反斜杠。 【参考方案1】:
if monthConversion not in  "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec":

【讨论】:

【参考方案2】:

您可以通过将月份名称放入列表并检查 monthConversion 是否在列表中来简化/缩短代码:

months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
monthConversion = "Xyz"
if monthConversion not in months:
    print("Invalid month " + monthConversion)

【讨论】:

【参考方案3】:

虽然对行的长度没有真正的限制,但我假设您的编辑器对最大行长度有一些限制。

另外,if x != 'a' or 'b' 并没有按照你的想法去做。 'b' 本身不是 '' 并将计算为 True,因此整个表达式始终为 True,而不是检查 x'a' 还是 'b'

这里更好的方法是将它分解成几个更易读的语句,例如:

months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
if monthConversion not in months:
    print('something')

另外:如果可以的话,不要使用monthConversion,而是使用month_conversion。尽早学习 Python 命名约定是个好主意。

您为什么不在 Python 中使用现有的日期函数?

import calendar

if month_conversion in calendar.month_abbr:
    print('something')

【讨论】:

我还没有介绍日期功能。谢谢你的回答,我知道了【参考方案4】:

你得到了很多聪明的建议。这是另一个:不要重新发明***,使用库函数。

import calendar
if monthConversion not in calendar.month_abbr:
    do_something()

但请记住:此解决方案比 Olvin Roght 提出的解决方案慢 1000 倍。如果性能很重要,那就选择那个。

【讨论】:

不重新发明***的乐趣在哪里?! :-)【参考方案5】:

你可以使用:

if monthConversion not in ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]:

【讨论】:

以上是关于如何在python中传输IF语句? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Python 中打破很长的代码行? [复制]

如何在 mySQL 的 SELECT 语句中使用 If 语句和关系运算符? [复制]

如何在 css 中执行 if 语句? [复制]

在python中复制excel条件语句

if else语句如何做单行? [复制]

Java If 语句在具有 && AND || 时如何工作[复制]