Study/파이썬[Python]

파이썬[Python] | 조건문, 반복문, 함수 (자바스크립트와 다른 점)

jaeyeong 2023. 5. 27. 10:52

조건문

조건에 따라 로직을 설정할 수 있다. 자바스크립트를 사용하면서 필수로 사용했기에 익숙한 문법이다.

그래서 자바스크립트와 다르다고 생각한 부분을 정리해두려고 한다!

 

자바스크립트의 경우 아래 소스코드처럼 값을 범위에 포함시키려면 두 개의 조건으로 쪼갠 뒤

&& 연산자를 사용해야 원하는 동작을 한다.

아래의 경우 'Bad'가 출력되며 60 < score <= 70로 작성할 경우 'Not Bad'가 출력된다.

let score = 50;

if (score > 70) {
  console.log('Nice!');
} else if (60 < score && score <= 70) {
  console.log('Not Bad');
} else {
  console.log('Bad');
}

 

파이썬은 60 < score <= 70를 사용할 수 있어 더욱 짧게 코드를 작성할 수 있다.

score = 70

if score > 70:
  print('Nice!')
elif 60 < score <= 70:
  print('Not Bad')
else:
  print('Bad')

 

코드 블록을 구분하는 방법에도 차이가 있는데, 자바스크립트는 중괄호를 사용하고 파이썬은 들여쓰기로 설정한다.

가독성을 따지자면 나는 아직 자바스크립트가 더 눈에 익어서 그런지 중괄호를 사용하는 것이 더 좋아보인다!

 

변수에 값을 담을 때 조건문을 사용하여 간단히 초기화할 수 있다.

아래 소스코드와 같이 score가 80 이상이면 "Success"를, 아니라면 "Fail"을 할당하는 것을

한 줄로 작성할 수 있다. 이를 조건부 표현식이라고 한다.

score = 75
result = "Success" if score >= 80 else "Fail"

print(result) #Fail

반복문

반복문도 문법만 다를 뿐 자바스크립트와 구조는 동일해서 딱히 어려울게 없었다.

다른 점이 있다면 for문을 사용할 때 변수 i의 범위를 지정하는 것에 약간 차이가 있다.

 

자바스크립트는 i를 선언하고 i의 범위를 지정한 다음 i++를 해주어 1씩 증가하도록 하는 반면에,

for(let i=0; i<3; i++) {
  console.log(i) //0 //1 //2
}

 

파이썬은 변수 선언부는 생략하고 range(3)으로 범위를 지정해주기만 하면 된다.

이 때 range()안에 첫 번째 인자는 시작 값, 두 번째 인자는 끝나는 값이 오며 끝나는 값의 -1까지 반복문이 실행된다.

for i in range(3):
  print(i) #0 #1 #2

함수

동일한 로직을 반복적으로 수행해야 할 때 함수화하여 사용하면 효율적으로 코드를 작성할 수 있다.

 

function() {} 또는 const 함수명 = () => {}으로 정의하는 자바스크립트와 달리 파이썬은 다음과 같이 정의한다.

def add(a,b):
  return a+b

print(add(2,3)) #5

 

더 신기했던 점은 함수 밖 데이터에 접근하는 방식이 따로 있다는 것과 람다 표현식이었다.

 

먼저 함수 밖 데이터에 접근하려면 global 키워드를 사용하면 된다고 한다.

장점으로는 지역 변수를 만들지 않고 바로 참조한다는 것이다.

name = '철수'
def call():
  global name
  print(name)

call() #철수

 

람다 표현식간단한 함수의 경우 한 줄로 표현할 수 있는 것이다.

첫 인상은 가독성이 좋아보이지 않아서 자주 쓸까? 싶은 생각이 들었는데, 일단 더 지켜봐야 할 것 같다.

print((lambda a,b: a+b)(2,3)) #5