Python如果var不存在那么

时间:2012-12-06 13:08:34

标签: python if-statement imap imaplib

我正在开发一些IMAP检查程序。现在,收件箱计数按以下布局打印消息:[' number ']。

现在该号码被拆分为var num中的 number 。请参阅以下代码:

for num in data[0].split():
    print num

现在问题是,如果没有任何新的电子邮件,num不存在,所以我想要一个这样的if语句:

if <num doesn't exist>: print "No new emails found."

但if语句应该是什么样的?

4 个答案:

答案 0 :(得分:4)

达到你想要的最蟒蛇的方式是:

nums = data[0].split()
for num in nums:
   print num
if not nums:
   print "No new emails found"

因为代码正好反映了意图。

答案 1 :(得分:2)

检查this site,它们有一个有用的片段来检查变量是否存在或者是否为None:

# 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)

答案 2 :(得分:1)

检查拆分数据的大小并将其用作您的条件:

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."

答案 3 :(得分:1)

我愿意

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."

代替。