아래의 파이썬에서 간단한 조건문을 이해하는 데 어려움이 있습니다.간단한 파이썬 조건문 바로 가기 구문
def number(number):
return number or number == 3
print number("")
이 바로 가기 구문의 의미는 무엇입니까? 그것은 다음과 같은가요?
첫 번째는 False와 후자를 인쇄하지 않습니다. None은 구문이 유효하지 않음을 의미합니다.
아래의 파이썬에서 간단한 조건문을 이해하는 데 어려움이 있습니다.간단한 파이썬 조건문 바로 가기 구문
def number(number):
return number or number == 3
print number("")
이 바로 가기 구문의 의미는 무엇입니까? 그것은 다음과 같은가요?
첫 번째는 False와 후자를 인쇄하지 않습니다. None은 구문이 유효하지 않음을 의미합니다.
number
의 값이 True
인 경우 (따라서 0
또는 None
이 아님)이 함수는 숫자를 반환합니다. 수를 False
에 가치가있는 경우 (이 3 인 경우, 다른 False
그래서 True
)
, 함수가 항상 반환 거짓 후자의 뜻으로
을 number == 3
를 반환합니다 (number == 3
경우, 함수는 반환 것 이 0 또는 없음이 아니라면 그렇지 않으면 False를 반환합니다 수를 반환하는
return number or False
: 첫 번째 경우 3), 아래로 단축 될 수있다.
조건문은이 경우 비트가 없습니다 (단, equals/integer/boolean 값을 number
으로 덮어 쓰는 것과 같은 아주 이상한 경우는 제외).
은 기본적으로 당신이 바로 지금하고있는 것은 다음과 같이이다 : 그것은 도움이 될 것 인 and
이있을 것
def number(number):
if number:
return number
else:
return number == 3
경우, 지금은 무의미.
또는 같은 유용 할 수는 :
return spam or eggs
스팸은 스팸을 반환합니다 null가 아닌 경우, 그렇지 않으면 계란을 반환합니다. BTW
그림 : 그것은 일반적으로 AttributeError
을 줄 것 spam.eggs
부분을 실행하지 않을 None
을 것 spam
경우 때문에 number and number == 3 or 5
def number(number):
if number and number == 3:
return 3
else:
return 5
spam and spam.eggs
일의
>>> for number in range(5):
... print 'number', number, number or number == 3
number 0 False
number 1 1
number 2 2
number 3 3
number 4 4
롱 버전에 유용합니다 .
이것은 파이썬이 표현식과 객체를 평가하는 방법과 관련이 있습니다.
첫 번째 예 : 파이썬
당신은 빈 문자열 ""
에 보내,이 훨씬 빈리스트 ([]
)처럼 False
입니다.
def number(number):
# so this will now be (False) or (number == 3) but since the first
# expression was False it will not evaluate the number comparison and thusly
# return False
return number or number == 3
print number("")
두 번째 예는 그렇지 않습니다. 숫자가 True
인 것으로 명시되면 명시적인 if
이 표시됩니다. 비어 있지 않거나 숫자가 3
과 같으면 다음 블록을 입력하고 리턴하십시오.
하지만 우리가 배운 빈 문자열은 False를 반환하므로 if를 전달하고 Python 함수 None
의 기본값을 반환합니다.
def number(number):
if number or number == 3:
return number
#default says return None here.
print number("")
두 경우의 관련 표현은 number or number == 3
이다.
파이썬은이 표현을 두 부분으로 나눕니다. (number) or (number == 3)
먼저 개별 부분을 평가 한 다음 or
으로 결과를 평가합니다.
그래서 우리는 (False
로 취급) ""
or
"" == 3
을 (이 가 False
- 평가)이있다. 이 은"" or False
이됩니다. 두식이 모두 False
-y이므로이 전체 식은 False
으로 평가됩니다.
첫 번째 함수에서는 표현식의 값인 False
을 반환합니다. 두 번째 함수에서 참인 경우에만 표현식의 값을 반환합니다. 거짓이라면 아무 것도 반환하지 않습니다.
파이썬에서 아무 것도 반환하지 않는 함수는 기본적으로 None
을 반환합니다.
당신은 낚시를하는 남자에게 가르쳤습니다. – Reno
반환 값에 차이가있는 경우 분명히 동일하지 않습니다. – glglgl
숫자 == 3 논리에서 의미가 없습니다. – thavan
첫 번째 함수는 True 또는 False를 반환합니다. 두 번째 함수는 숫자 또는 없음을 반환합니다. – emigue