가정하자 나는이 네 가지를 입력 할 필요가 없도록재사용 특정 라인
if x == 1:
x += 1
else:
x -= 1
가 "복사"이 코드 수있는 방법이 있나요 내 파이썬 파일에서 매우 자주 코드 블록을 사용 파일 전체에 반복적으로 행이 있습니까?
가정하자 나는이 네 가지를 입력 할 필요가 없도록재사용 특정 라인
if x == 1:
x += 1
else:
x -= 1
가 "복사"이 코드 수있는 방법이 있나요 내 파이썬 파일에서 매우 자주 코드 블록을 사용 파일 전체에 반복적으로 행이 있습니까?
예 그것을 위해 자신 함수를 정의 :
def flip_member(x):
if x == 1:
x += 1
else:
x -= 1
return x
그런 다음 같은 논리를 다시 작성하는 대신 코드에서 어디에서 함수를 호출 할 수 있습니다.
이것은 유효한 Python 코드가 아닙니다. – del
그래, 때로는 혼란스러워. 수정 됨. –
def manipulate(x):
return x+1 if x==1 else x-1
myVal = 10
myVal = manipulate(myVal)
print myVal
>>> 9
OR : 다른 답변에서 제안한 것처럼
manipulate = lambda x: x+1 if x==1 else x-1
myVal = manipulate(myVal)
print myVal
>>> 9
, 당신은 X의 함수를 작성하고 설정할 수는 함수의 결과와 동일 X.
어떤 대안이 단순한 형태로 표현을 쓰고있다 :
x = x+1 if x==1 else x-1
위의 질문에서 코드의 네 개의 선으로 X 같은 새 값을 계산합니다. 하지만 값 1과 2 사이에서 x를 앞뒤로 전환하려면 3-1은 2이고 3-2는 1이므로 1과 2 사이를 전환하려면 -라고 말하면됩니다.
x = 3-x
또는 더 짧은 한 라이너 :
x = x - 1 + (x==1) * 2
기능이라고하는 것을 들어 보셨습니까? :) – Curious
초보자로서의 +1은 초보자가되어야합니다. ;) – pepr