[파이썬] 제어문, 조건문, 반복문

osdsoonhyun·2022년 1월 28일
0

파이썬

목록 보기
5/10
post-thumbnail

제어문

  • 조건문(if문)
    - ~~하면 ~~해라
  • 반복문(for, while)
    - 많은 일들을 반복해야 할 때

If문

돈이 있으면 택시를 타고, 돈이 없으면 걸어 간다

>>> money = True
>>> if money :
			print("택시를 타고 가라")
    else:
    		print("걸어가라)
           
택시를 타고 가라

다른 언어와 다르게 파이썬에서는 들여쓰기가 매우 중요!(안하면 오류남)

조건문

>>> money = True
>>> if 1:

1에 들어갈 불 자료형

  • <,>,==,!=,>=,<=
  • and,or,not
  • &,I
  • in, not in

비교 연산자

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

and, or, not

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

x in s, x not in s

>>> 1 in [1,2,3]
True
>>> 1 not in [1,2,3]
False

조건문에서 아무 일도 하지 않게 설정하고 싶다면?

pass

>>> pocket = ['paper','money','cellphone']
>>> if 'money' in pocket:
		 pass
    else:
    	print("카드를 꺼내라")

다중 조건 판단 elif

>>> pocket = ['paper','cellphone']
>>> card = True
>>> if 'money' in pocket
		print('택시를 타고가라')
    elif card:
    	print('택시를 타고가라')
    else:
    	print('걸어가라')

택시를 타고 가라

조건부 표현식

(조건문이 참인 경우) if (조건문) else (조건문이 거짓인 경우)
다른 언어의 3항 연산자와 유사

>>> score = 70
>>> if score >= 60:
	 	message = "success"
	else:
 		message = "failure"
success

>>> Message = "success" if score >= 60 else "failure"
>>> print (Message)
success

반복문 (while)

while문 기본구조

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

열 번 찍어 안 넘어 가는 없다

>>> treeHit = 0
>>> while treeHit < 10:
		treeHit = treeHit + 1 //파이썬에서는 treeHit++ 안된다 
        					  // treeHit += 1 은 가능
        print("나무를 %d번 찍었습니다" %treeHit)
        if treeHit == 10:
        	print("나무 넘어갑니다")
            
나무를 1번 찍었습니다        
나무를 2번 찍었습니다
...
나무 넘어갑니다

break

continue //맨 위 while로 올라간다

>>> a = 0
>>> while a < 10:
		a += 1
        if a % 2 == 0:
        	continue
        print(a)
1
3
5
7
9

무한루프

>>> while True:
		print("안녕하세요")
        
안녕하세요
안녕하세요
...

ctrl+ c 누르면 멈춤

for문

for문의 기본 구조

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

예제로 익혀보자!

>>> test_list = ['one','two','three']
>>> for i in test_list:
>>> 	print(i)
one
two 
three

>>> a = [(1,2),(3,4),(5,6)]
>>> for (first,last) in a:  //(a,b) = (1,2)
>>>		print(first+last)
3
7
11

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)
1번 학생은 합격입니다.
2번 학생은 불합격입니다.
3번 학생은 합격입니다.
4번 학생은 불합격입니다.
5번 학생은 합격입니다.

for문과 continue

while문에서와 마찬가지도 continue를 만나면 아래쪽을 다 생략하고 다시 위로 올라간다

>>> marks = {90, 25, 67, 45, 80}
>>> number = 0
>>> for mark in marks:
>>> 	number = number + 1
>>>		if mark < 60: continue
>>>		print("%d학생은 합격입니다." %number)
1번 학생은 합격입니다.
3번 학생은 합격입니다.
5번 학생은 합격입니다.

for문과 함께 자주 사용하는 range함수

>>> sum = 0
>>> for i in range(1,11):  // 1<= i < 11
>>>		sum = sum+1

>>> print(sum)
55 

이중 for문

구구단

>>> for i in range(2,10):
>>> 	for j in range(1,10):
>>> 		print(i*j,end=" ")
>>> 	print('')
2 4 6 8 10 12 14 16 18
3 6 9 12 ... 
4 8 ...
...

리스트 내포(List comprehension)

>>> result = [num * 3 for num in a] //num * 3을 result에 담고싶다
				    // num은 for문은 돈 결과
>>> print(result)
[3,6,9,12]

>>> result = [num*3 for num in a if num % 2 == 0]
>>> print(result)
[6,12]
>>> result = []
>>> for num in a:
>>>   if num % 2 == 0
>>>     result.append(num*3)

//이중 for>>> result = [x*y for x in range(2,10) for y in range(1,10)]

>>> result = []
>>> for x in range(2,10)
>>>   for y in range(1,10)
>>>     result.append(x*y)

0개의 댓글