<Python>03.프로그램의 구조를 쌓는다! 제어문

박서연·2023년 1월 17일
0

Python

목록 보기
3/8
post-thumbnail

0. 조건문

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

1. 조건문-if문

1. 기본 구조

조건문이 true일 경우, 해당 코드 실행
flase일 경우 다음 elif 또는 else 실행

if <조건문>:
	<수행할 문장>

2. 조건문 조건

조건문은 기본적으로 bool 이어야함, 이 때 불 자료형 사용해 bool 자료형으로 만들어도됨

1) bool 자료형
: < , > , == , != , >= , <= , and , or , not , & , | , in , not in

2) [02.자료형] 에서 정리한 자료형의 True/False도 가능

자료형의 True/False

True/False
"python"True
""False
[1,2,3]True
[]False
()False
{}False
1True
0False
NoneFalse

3) 비교연산자

비교연산자설명
x < yx가 y보다 작다
x > yx가 y보다 크다
x == yx와 y가 같다
x != yx와 y가 같지 않다
x >= yx가 y보다 크거나 같다
x <= yx가 y보다 작거나 같다

4) 논리연산자

연산자설명기호
x or yx와 y 둘중에 하나만 참이면 참|
x and yx와 y 모두 참이어야 참&
not xx가 거짓이면 참not

5) 포함 연산자

찾고자 하는 값 + 포함연산자 + 자료 여러개를 포함한 자료형

연산자설명
in포함하면 참
not in포함하지 않으면 참

💡 example

if 1 in [1,2,3]:
	print("hi")		#hi 출력

3. pass

조건문에 아무 일도 하지 않게 설정
elif가 있을 경우 실행

💡 example

pocket = ['paper','money','cellphone']
if 'money' in pocket:
	pass	#아무 것도 출력 X
else:
	print("카드를 꺼내라")

4. elif

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

5. 조건부 표현식

1.성공일 때 조건 먼저 써준다
2.조건식을 써준다
반드시 else 써야함. 안 쓸 경우 오류 발생

💡 example

#1
score = 79
if score >= 60:
	message = "success"
else:
	message = "failure"
print(message)
#2
message = "success" if score >= 60 else "failure"
print(message)

2. 반복문-while문

1. 기본 구조

조건문이 true일 경우, 아래 코드 반복 실행

while <조건문>	:
	<수행할 문장1>
	<수행할 문장2>
    <수행할 문장3>
    ...

2. break

while 반복문을 빠져나감

💡 example

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문 맨 처음으로 돌아감

💡 example

a = 0
while a < 10 :
	a = a+1
    if a % 2 == 0:
    	continue
    print(a)

4. 무한loop

ctrl+c 누르면 무한loop 종료

while True:
	<수행할 문장1>
    <수행할 문장2>
    ...

3. 반복문-for문

1. 기본 구조

for문을 돌면서 리스트(또는 튜플,문자열) 안의 요소들이 하나씩 변수로 할당됨
index가 증가해서 가져오는 형태가 아니라 기본적으로 하나씩 가져와서 변수에 들어감

for <변수> in <리스트(또는 튜플, 문자열)>:
	<수행할 문장1>
    <수행할 문장2>
    ...

💡 example (for문 사용 예제)

#1 리스트
test_list = ["one","two","three"]
for i in test_list:
	print(i)	#one(\n) two(\n) three 출력
#2 리스트 안의 튜플
a = [(1,2),(3,4),(5,6)]
for (first, last) in a:
	print(first+last)	#3(\n) 7(\n) 11 출력

💡 example

# 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

for문 반복문 빠져나감, while과 동일

3. continue

아래 코드 실행하지 않고 다음 반복문 실행, while과 동일

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과 동일)

sum = 0
for i in range(1,11):
	sum = sum+i
print(sum)

💡 example (구구단예제)

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

5. 리스트 내포

💡 example

#1
result = [num*3 for num in a]	#a의 값들을 *3한 값들을 리스트 result로 만들어라
#2-1
result = [num*3 for num in a if num%2==0]
#2-2 앞과 같은 결과
result = []
for num in a:
	if num%2 == 0:
    	result.append(num*3)
#3-1
result = [x*y for x in range(2,10) for y in range(1,10)]
#3-2 앞과 같은 결과
result = []
for x in range(2,10):
	for y in range(1,10):
    	result.append(x*y)

0개의 댓글