2012-12-06 5 views
0

IMAP 검사기를 개발 중입니다. 이제받은 편지함 수는 다음 레이아웃의 메시지를 인쇄합니다. [ 'number'].Python이 var가 존재하지 않으면

숫자가 의 var num로 나눠졌습니다.

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

그러나해야한다 : 내가 만약이 같은 성명을 원하는 지금

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

가없는 경우 일이, 새로운 이메일 인분 그렇게 존재하지 않는 경우 : 다음 코드를 참조하십시오 성명이 보이면?

+0

데이터는 숫자가 포함 된 목록의 이름입니까 - [번호]? 그리고 실제 목록을 어떻게 보이는지 게시하십시오. –

+0

'print' 전에 4 칸이 필요합니까? – zenpoy

답변

4

가장 파이썬 방법은 당신이 무엇을 보인다 달성하기 위해 원하는 코드는 다음과 같습니다.

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

코드에 의도가 정확하게 반영되어 있기 때문입니다.

+0

감사합니다. – SkyDrive26

+1

편집이 승인되었지만 'if-else'가 더 읽기 쉬운 옵션이라고 여전히 생각합니다. 순수하게 개인적인 취향의 문제. – bereal

2

확인 this site, 그들은 변수가 존재하는지 확인하기 위해 유용한 조각을하거나 아무도없는 경우 :

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

왜 그냥 - 만약 num : some_operation (num) else : some_fallback_operation()'? –

+0

정의되지 않은 변수와 없음 변수 사이에 차이를 만들기를 원한다면 두 가지를 모두 추가하기로했습니다. 귀하의 솔루션도 작동합니다. – alemangui

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

수표를 찍는 방법은 여러 가지가 더 있습니다. [이 질문] (http://stackoverflow.com/questions/53513/python-what-is-the-best-way-to-check-if-a-list-is-empty)을 참조하십시오. – kahowell

+0

작동하지 않았지만 어쨌든 고마워요. – SkyDrive26

+0

누군가가 다시 돌아올 경우를 대비하여 상위 예제가 지금 고정되었습니다 (괄호가 잘못 배치되어 콜론이 누락되었습니다). 아래 예제는 나를 위해 일했습니다. – kahowell

1

나는 None 유효한 데이터 부분의 경우,

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

을 대신

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

을 사용합니다.

관련 문제