[Python] 03. 제어문

예뤼니·2023년 6월 5일

Python

목록 보기
3/4
post-thumbnail

1. 조건문

  • 들여쓰기를 잘못할 경우 SyntaxError 발생
  • VSCode에서 코드 진행 상황을 보려면 코드 번호 왼쪽에 Breakpoint(시작포인트)를 건 후 Run->Start debugging 실행해 한 줄씩 확인 가능
  • ++연산자와 --연산자 사용 불가능
  • +=연산자 또는 -=연산자는 사용 가능

1. if문

1) 기본 구조

  • 조건문이 true일 경우, 해당 코드 실행
  • false일 경우 elif 또는 else 실행
if <조건문>:
	<수행할 문장>

❗ 들여쓰기가 매우 중요함

2) 조건문 조건

  • 조건문은 기본적으로 bool이어야 함, 이때 bool 자료형을 사용해 bool 자료형으로 만들어도 됨
  1. bool 자료형
    : <, >, ==, !=, >=, <=, and, or, not, &, |, int, not in

  2. 자료형의 True/False도 가능

True/False
"python"
""거짓
[1, 2, 3]
[]거짓
()거짓
{}거짓
1
0거짓
None거짓
  1. 비교연산자
비교연산자설명
x<yx가 y보다 작다
x>yx가 y보다 크다
x==yx와 y가 같다
x!=yx와 y가 같지 않다
x>=yx가 y보다 크거나 같다
x<=yx가 y보다 작거나 같다
  1. 논리연산자
    |연산자|설명|기호|
    |::|::|::|
    |x or y|x와 y 둘 중에 하나만 참이면 참||
    |x and y|x와 y 모두 참이어야 참|&|
    |not x|x가 거짓이면 참|not|

  2. 포함 연산자

  • 찾고자 하는 값 + 포함연산자 + 자료 여러 개를 포함한 자료형
연산자설명
in포함하면 참
not in포함하지 않으면 참
ex) 
if 1 in [1, 2, 3]:
	print("hi") 

3) pass

  • 조건문에 아무 일도 하지 않게 설정
  • elif가 있을 경우 실행
ex)
pocket = ['paper', 'money', 'cellphone']
if 'money' in pocket:
	pass #아무 것도 출력x
else :
	print("카드를 꺼내라")

4) elif

  • 다중 조건 판단, elif 진행 후 다음 elif 진행 반복
  • 모두 false일 경우 else 실행

5) 조건부 표현식

  • 성공일 때 실행할 것을 먼저 써줌
  • 조건식을 써준다
  • 반드시 else 써야함. 안 쓸 경우 오류 발생
#ex1)
score = 79
if score >= 60:
	message = "success"
else:
	message = "failure"
print(massage)

#ex2)
message = "success" if score >= 60 else "failure"
print(message)

2. 반복문

1. while문

1) 기본 구조

  • 조건문이 true일 경우, 아래 코드 반복 실행
while<조건문>:
	<수행할 문장1>
    <수행할 문장2>
    <...>

2) break

  • 반복문을 빠져나감
#ex)
coffee = 10
money = 300
while money:
	print("돈을 받았으니 커피를 줍니다."
    coffee = coffee-1
    print("남을 커피의 양은 %d개입니다.") %coffee
    if not coffee:
    	print("커피가 다 떨어졌습니다. 판매를 중지합니다.")
        break #10번 반복 후 break를 만나 while문 탈출
    

3) continue

  • continue 아래 코드를 실행하지 않고 while문 맨 처음으로 돌아감
#ex)
a = 0
while a<10:
	a = a + 1
    if a % 2 == 0:
    	continue
    print(a)

4) 무한루프

  • ctrl + c 누르면 무한루프 종료
while True:
	<수행할 문장1>
    <수행할 문장2>
    <...>

3. for문

1) 기본 구조

  • for문을 돌면서 리스트(또는 튜플, 문자열) 안의 요소들이 하나씩 변수로 할당됨
  • index가 증가해서 가져오는 형태가 아니라 기본적으로 하나씩 가져와서 변수에 들어감
for <변수> in <리스트(또는 튜플, 문자열)>:
	<수행할 문장1>
    <수행할 문장2>
    <...>
#ex1) 리스트
test_list = ["one", "two", "three"]
for i in test_list:
	print(i) #one\n two\n three\n 출력
    
#ex2) 리스트 안의 튜플
a = [(1, 2), (3, 4), (5, 6)]
for (first, last) in a:
	print(first+last) #3\n 7\n 11\n 출력

#ex3) 60점이 넘으면 합격, 그렇지 않으면 불합격
marks = [90, 25, 67, 45, 80]
number = 0
for mark in marks:
	number = number + 1
    if mark>60:
    	print("%d번 학생은 합격") %number
    else :
    print("%d번 학생은 불합격") %number

2) break

  • 반복문을 탈출함

3) continue

  • 아래 코드를 실행하지 않고, 다음 반복문을 이어서 실행
#ex)
marks = [90, 25, 67, 45, 80]
number = 0
for mark in marks:
	number = number + 1
    if mark<60 :
    	continue
    print("%d번 학생 축하합니다. 합격입니다") %number
	#60보다 작을 경우 continue를 만나 아래 코드 생략 후 다음 for문 실행

4) range 함수

  • for i in range(x, y)는 i가 x 이상부터 y 미만만큼 반복
  • slicing과 동일
#ex1)
sum = 0
for i in range(1, 11):
	sum = sum + 1
print(sum)

#ex2) 구구단
for i in range(2, 10):
	for j in range(1, 10):
    	print(i*j, end = " ") #end = " "는 다음 줄로 넘어가지 않고 공백 한 칸 있는 상태로 만들음
    print('')

5) 리스트 내포

#ex1)
result = [num*3 for num in a] #a의 값들을 *3한 값들을 리스트 result로 만들어라

#ex 2-1)
result = [num * 3 for num in a if num%2==0]

#ex 2-2)
result = []
for num in a:
	if num%2==0:
    	result.append(num*3)

#ex 3-1)
result = [x*y for x in range(2, 10) for y in range(1, 10)]

#ex 3-2)
result = []
for x in range(2, 10):
	for y in range(1, 10):
    	result.append(x*y)

<[출처] 조코딩, "최신 파이썬 코딩 무료 강의", https://www.youtube.com/watch?v=KL1MIuBfWe0&list=PLU9-uwewPMe2AX9o9hFgv-nRvOcBdzvP5> 을 참고하여 작성한 글입니다.

0개의 댓글