반응형
간단한 if-then-else 문을 한 줄에 넣기 [중복]
중복 가능성 :
Python 삼항 연산자
저는 방금 파이썬에 들어가고 있으며 구문의 간결함이 정말 마음에 듭니다. 그러나, 쓰기의 쉬운 방법이있다 if
- then
- else
문은 한 줄에 맞도록은?
예를 들면 :
if count == N:
count = 0
else:
count = N + 1
이것을 작성하는 더 간단한 방법이 있습니까? 내 말은, Objective-C에서 나는 이것을 다음과 같이 쓸 것입니다.
count = count == N ? 0 : count + 1;
파이썬과 비슷한 것이 있습니까?
최신 정보
이 경우 count == (count + 1) % N
.
일반적인 구문에 대해 묻습니다.
이것은 if-then보다 더 구체적으로 삼항 연산자 표현식입니다. 여기에 파이썬 구문이 있습니다.
value_when_true if condition else value_when_false
더 나은 예 : (Thanks Mr. Burns )
'Yes' if fruit == 'Apple' else 'No'
이제 할당 및 if 구문과 대조
fruit = 'Apple'
isApple = True if fruit == 'Apple' else False
vs
fruit = 'Apple'
isApple = False
if fruit == 'Apple' : isApple = True
또한 "보통" if
구문을 사용하여 콜론을 사용하여 한 줄로 통합 할 수 있습니다 .
if i > 3: print("We are done.")
또는
field_plural = None
if field_plural is not None: print("insert into testtable(plural) '{0}'".format(field_plural))
count = 0 if count == N else N+1
-삼항 연산자. 귀하의 솔루션이 이것보다 더 읽기 쉽다고 말하고 싶습니다.
일반 삼항 구문 :
value_true if <test> else value_false
다른 방법은 다음과 같습니다.
[value_false, value_true][<test>]
예 :
count = [0,N+1][count==N]
이것은 하나를 선택하기 전에 두 가지를 모두 평가합니다. 선택한 분기 만 평가하려면 :
[lambda: value_false, lambda: value_true][<test>]()
예 :
count = [lambda:0, lambda:N+1][count==N]()
<execute-test-successful-condition> if <test> else <execute-test-fail-condition>
코드 스 니펫을 사용하면
count = 0 if count == N else N + 1
참고 URL : https://stackoverflow.com/questions/2802726/putting-a-simple-if-then-else-statement-on-one-line
반응형
'your programing' 카테고리의 다른 글
특정 파일을 통해 grep하지 않으려면 grep --exclude /-include 구문을 사용하십시오. (0) | 2020.09.29 |
---|---|
인터페이스 대 기본 클래스 (0) | 2020.09.29 |
특정 마이그레이션을 롤백하는 방법은 무엇입니까? (0) | 2020.09.29 |
Java 선택적 매개 변수 (0) | 2020.09.29 |
불행히도 MyApp이 중지되었습니다. (0) | 2020.09.29 |