如何在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语句? [复制]的主要内容,如果未能解决你的问题,请参考以下文章