我正在开发一些 IMAP 检查器。现在收件箱计数以以下布局打印一条消息:[' number ']。
现在该数字被拆分为 var num 中的数字。请参阅以下代码:
for num in data[0].split():
print num
现在的问题是,如果没有任何新电子邮件 num 不存在,那么我想要这样的 if 语句:
if <num doesn't exist>: print "No new emails found."
但是那个 if 语句应该是什么样子的呢?
我正在开发一些 IMAP 检查器。现在收件箱计数以以下布局打印一条消息:[' number ']。
现在该数字被拆分为 var num 中的数字。请参阅以下代码:
for num in data[0].split():
print num
现在的问题是,如果没有任何新电子邮件 num 不存在,那么我想要这样的 if 语句:
if <num doesn't exist>: print "No new emails found."
但是那个 if 语句应该是什么样子的呢?
实现您似乎想要的最pythonic方法是:
nums = data[0].split()
for num in nums:
print num
if not nums:
print "No new emails found"
因为代码准确地反映了意图。
检查这个站点,他们有一个有用的片段来检查变量是否存在或者它是否为无:
# Ensure variable is defined
try:
num
except NameError:
num = None
# Test whether variable is defined to be None
if num is None:
some_fallback_operation()
else:
some_operation(num)
检查拆分数据的大小并将其用作您的条件:
for num in data[0].split():
print num
if len(data[0].split()) == 0:
print "No new emails found."
更优雅的方式:
for num in data[0].split():
print num
if not data[0].split():
print "No new emails found."
我会做
num = None
for num in data[0].split():
print num
if num is None:
print "No new emails found."
如果None是有效的数据部分,请使用
num = sentinel = object()
for num in data[0].split():
print num
if num is sentinel:
print "No new emails found."
反而。