0

私はいくつかのIMAPチェッカーを開発しています。これで、受信トレイ数は次のレイアウトでメッセージを出力します:[' number ']。

これで、その数はvarnumのに分割されます。次のコードを参照してください。

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

さて、新しいメールがない場合はnumが存在しないので、次のようなifステートメントが必要です。

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

しかし、ifステートメントはどのように見えるべきでしょうか?

4

4 に答える 4

6

あなたが望んでいるように見えるものを達成するための最もpythonicな方法は、次のとおりです。

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

コードは意図を正確に反映しているからです。

于 2012-12-06T13:20:10.077 に答える
2

このサイトを確認してください。変数が存在するかどうか、またはなしであるかどうかを確認するための便利なスニペットがあります。

# 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)
于 2012-12-06T13:10:19.573 に答える
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."
于 2012-12-06T13:14:32.587 に答える
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."

代わりは。

于 2012-12-06T13:24:13.507 に答える