programing

간단한 if-then-else 문구를 한 줄에 표시하다

bestcode 2022. 9. 27. 23:58
반응형

간단한 if-then-else 문구를 한 줄에 표시하다

Python에 접속한 지 얼마 안 됐는데, 구문의 간결함이 정말 마음에 들어요.하지만, 더 쉬운 방법은 없을까?if-then-else한 줄에 들어갈 수 있는 문장이 있을까요?

예를 들어 다음과 같습니다.

if count == N:
    count = 0
else:
    count = N + 1

이걸 좀 더 쉽게 쓸 수 있는 방법은 없나요?Objective-C에서는 다음과 같이 쓰고 싶습니다.

count = count == N ? 0 : count + 1;

Python과 비슷한 것이 있나요?

갱신하다

이 경우, 제가 사용할 수 있다는 것을 알고 있습니다.count == (count + 1) % N.

일반적인 구문에 대해 묻고 있습니다.

이것은 if-그럼 python 구문보다 더 구체적으로 3진 연산자 표현입니다.

value_when_true if condition else value_when_false

좋은 예: (감사합니다, 번즈)

'Yes' if fruit == 'Apple' else 'No'

이제 할당 및 if 구문과의 대비가 필요합니다.

fruit = 'Apple'
isApple = True if fruit == 'Apple' else False

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

- 3진 연산자.하지만 당신의 해결책은 이것보다 더 읽기 쉽다고 말할 수 있습니다.

일반적인 삼진법 구문:

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

반응형