[기본 문법] - 조건문과 반복문

bob_ssso·2022년 1월 9일

파이썬

목록 보기
5/9

🤠  조건문


  • 코드의 블록을 들여쓰기로 지정. 4개의 공백 문자를 사용하는 것을 표준으로 설정.
    score = 85
    if score >= 70:
    	print('점수 70점 이상!')
    	if score >= 90:
    		print('우수한 성적')
    else:
    	print('성적 70점 미만, 50점 이상')
    	print('그래도 잘 했어')
    print('프로그램 종료합니다') # → 성적 70점 이상! \n 프로그램 종료합니다. 

기본 조건문 형식은 다음과 같다.

if 조건문 1 and 조건문 3:
	조건문 1이 true일 때 실행되는 코드
elif 조건문 2:
	조건문 1, 3에 해당하지 않고, 조건문 2가 true일 때 실행되는 코드
else:
	위의 모든 조건문이 모두 True 값이 아닐 때 실행되는 코드

비교 연산자

  • X == Y
  • X != Y
  • X ≥ Y

논리 연산자

  • X and Y
  • X or Y
  • not X

기타 연산자

  • x in 리스트
    : 리스트 안에 x가 있을 때 참
  • x not in 문자열
    : 문자열 안에 x 없을 때 참
  • **pass 키워드**

아무것도 처리하고 싶지 않을 때. 디버깅 과정에서 형태만 만들어 놓고 조건문 처리 비용은 비워놓고 싶은 경우

if score >= 90: pass  # 파이썬은 비워두면 안돼
else : print("꺄")
  • 조건부 표현식
score = 85
result = “Success” if score >= 80 else “fail” 
print(result) # → Success

cf. 파이썬은 0 < x <20 형태 가능

🤠 반복문


기본 개념

  • 데이터(리스트, 튜플)에 포함되어 있는 원소를 첫 번째 인덱스 부터 차례대로 방문 for 변수 in 리스트:
  • 연속적인 값을 차례대로 순회할 때는 for i in range(시작, 끝 + 1): . 인자 하나일 때 시작 값은 자동 0

continue 키워드 - 반복문에서 남은 코드 실행 건너 뛸 때.

result = 0
for i in range(1,10):
	if i % 2 ==0:
		continue
	result += i
print(result) # → 25

break 키워드

    i =1 
    while True:
    	if i ==5:
    		break

cf. 배열과 반복문
여기서 i는 인덱스가 아닌 arr[인덱스] 값이다! 조심!

for i in arr:
	a[i] += 1 

cf. 숫자 리스트를 스트링 리스트로 바꾸기

numbers = [6, 10, 2]
res = [str(i) for i in numbers]
print(res) # ['6', '10', '2']

거꾸로 반복

참고로 방법 1의 매개변수는 (시작점, 끝점 -1, 감소 변화폭)이다.

n = 10 # 0 ~ 9를 출력해보자!

# 방법 1
for i in range(n-1, -1, -1):
	print(i) 
    
# 방법 2 
for i in reversed(range(n)):
	print(i) 

여러 정보를 한꺼번에 반복

zip함수를 사용해서 다음과 같은 2개의 리스트를 한 번에 반복해보자. 만약에 names와 nums의 길이가 같지 않다면 더 짧은 길이의 list 만큼만 반복한다. 예를 들어 nums = [11, 22]이면 a-11, b-22까지만 반복문이 적용된다.

names = ['a', 'b', 'c']
nums = [11, 22, 33]

case 1) 인덱스 정보까지 같이 얻고 싶을 때는 enumerate 함수도 같이 사용해 준다. 이때 (name,num)에 ()가 없으면 zip함수 관련 오류가 나므로 enumerate까지 사용해서 index 변수도 생성할 경우 꼭 표시해 준다.

for index, (name, num) in enumerate(zip(names, nums)):
    print(index, name, num)
# 0 a 11
# 1 b 22
# 2 c 33

case 2) 1과 같이 enumerate를 사용하지만 해당 값을 어떤 변수에 저장하지 않는다. 그래도 함께 인덱스가 출력되는 것을 알 수 있다.

names = ['a', 'b', 'c']
nums = [11, 22, 33]
for name, num in enumerate(zip(names, nums)):
    print(name, num)
# 0 ('a', 11)
# 1 ('b', 22)
# 2 ('c', 33)

case 3) zip함수 만으로 두 개의 함수를 같이 반복할 때이다.

for name, num in zip(names, nums):
    print(name, num)
# a 11
# b 22
# c 33
profile
밥소🐈

0개의 댓글