관리 메뉴

IT journey

Python - 제어문 본문

개인공부공간/Python

Python - 제어문

step 2021. 5. 25. 16:14
728x90
반응형

직접 내용 정리하고 만든 예이니 퍼가실 때는 출처를 남겨주세요:)

조건문

조건문을 들어가기 전 아래에 나와있는 이전발행글 두 개를 봐주시길 부탁드립니다.

1. 관계연산자를 보고 와야 할 아래 발행글

Python - 자료형 (숫자형,문자열,불린형)

 

Python - 자료형 (숫자형,문자열,불린형)

직접 내용 정리한 내용이니 퍼가실 때는 출처 부탁드려요 :) 형변환 데이터의 형태를 변환합니다. str(데이터) : 문자열로 변환합니다. int(데이터) : 정수로 변환합니다. float(데이터) : 실수로 변

step-journey.tistory.com

2. 멤버 연산자와 논리 연산자를 보고 와야 할 아래 발행글

Python-자료형(리스트,튜플)

 

Python-자료형(리스트,튜플)

직접 내용 정리한 내용이니 퍼가실 때는 출처 부탁드려요 :) 리스트 정의 여러 개의 데이터를 한 번에 보관할 수 있는 자료형을 '리스트'라고 합니다. 빈 리스트를 만드는 방법 list1 = [] #리스트를

step-journey.tistory.com

이제 조건문 본론으로 돌아가 보겠습니다.

조건문을 만들 때 반드시 들여쓰기를 해주어야 합니다. 이 때 주의해야 할 사항이 있다면 들여쓰기 칸 수는 일정해야 한다는 것입니다.

tab키로 띄어준다면 일정히 할 수 있습니다. 규정 상 공백 4칸으로 하고 있어 4칸을 권장합니다.

 

1. if 문

if 조건문:
	문장

조건문이 참이면 문장을 실행합니다. 이 때, 반드시 들여쓰기를 해주어야 합니다. 

 

2. if-else 문

if 조건문:
	실행코드1 
else: 
	실행코드2 

조건문이 참이면 실행코드 1을 실행하고 거짓이면 실행코드2를 실행합니다.

 

3. 다양한 조건을 판단할 때 쓰이는 elif문

if(조건문):
	문장1
elif(조건문):
	문장2
...
else:
	문장3

if와 else는 한번씩만 사용가능하나 elif는 여러 번 사용가능합니다.

 

조건부 표현식(conditional expression)

x=25
if x==2:
	y=x
else:
	y=0

#위를 조건부 표현식으로 고치면
x=25
y=x if x==2 else 0
y

if,else에서 변수에 값을 할당할 때 변수=값 if 조건문 else 값 형식으로 축약 가능합니다.

보통 조건부 표현식은 람다 표현식에서 자주 사용가능합니다.
보통 조건부 표현식은 람다 표현식에서 자주 사용합니다.

 

참고사항

if 조건문에 숫자 지정할 때 0이 아닌 정수(2진수,10진수,16진수),실수와 관계없이 참이지만 0은 거짓입니다.

if 조건문에 내용이 있을 때는 참이지만 빈 문자열은 거짓입니다.

 

그러면 True와 False로 취급하는 것들이 무엇이 있을지 살펴봅시다.
None, False, 0인 숫자들(0, 0.0, 0j), 비어있는 문자열, 리스트, 튜플, 딕셔너리, 세트: ', "", [], {}, set(),
클래스 인스턴스의 __bool__(), __len__() 메서드가 0 또는 False를 반환할 때 False로 취급하고

위의 것을 제외한 모든 요소는 True로 취급합니다.

반복문

반복문을 만들 때 반드시 들여쓰기를 해주어야 합니다.

이 때 주의해야 할 사항이 있다면 여쓰기 칸 수는 일정해야 한다는 것입니다.

1. while문 구조

while 조건문:
	실행할 명령문1
    	실행할 명령문2
    ...

#무한루프의 예
while True:
   실행할 명령문1
    ...

조건문이 참이면 여러 번 반복 실행됩니다.

2. for 문 구조

(1) 구조

#기본적인 구조
for 변수 in 시퀀스 자료형 (리스트 또는 튜플, 문자열):
	수행할 문장1
    	수행할 문장2
        
#중첩 for문
for문안에 다시 for 반복문을 사용하는 것을 말합니다.

(2) 리스트 내포(List coprehension)

1. for문을 한 개 사용할 때 쓰이는 문법
[표현식 for 항목 반복가능한 객체 if 조건]

2.for문을 여러 개 사용할 때 쓰이는 문법입니다.
[표현식 for 항목 1 in 반복가능한 객체1 if조건문1
         for 항목2 in 반복가능한 객체1 if조건문2
          ...
         for 항목n in 반복가능한 객체1 if조건문n]
         
#참고로, if조건은 생략이 가능합니다.

(3) Range함수

이 함수를 리스트, 튜플 편에서 한 번 다룬 적이 있습니다. 참고하고 싶으신 분들은 아래 발행글에서 참고 부탁드립니다.

Range는 연속된 정수 리스트를 자동으로 만들어주는 함수입니다.

for 변수 in range(횟수):
	반복할 코드

예를 들어 생각해봅시다. range(0,5) 이면 0,1,2,3,4가 나오고 range(0,5,2) 이면 0,2,4가 나오고 range(10,5,-2)이면 10,8,6 나옵니다.

reserved 이용하여 숫자의 순서 반대로 뒤집기

for 변수 reversed(range(횟수))
	수행할 문장
    ...

 

 

제어문 제어(Continue, Break)

Continue를 넣게 되면 제어흐름을 유지한채 제어문을 한 회 건너 뛴 후 맨 처음(제어문)으로 돌아가게 되고

Break를 넣게 되면 제어문을 중단하게 됩니다.

 

pass 라는 키워드

제어할 코드에서 아무일도 하지 않지만 제어문의 형태를 유지하고 싶을 때 pass를 사용하면 됩니다.

이것은 나중에 할 일을 주석으로 남겨놓을 수 있습니다.(TODO)

 

language=['Korea','English','Chinese','Japanese']
if 'Korea' in language:
  pass

(예제) 인덱스 number 순서 1부터 출력하게 만들기

BTS=('뷔','슈가','제이홉','정국','진','지민','RM')
for index,value in enumerate(BTS):
  print(index,value)

(예제) 요소의 합 구하는 함수

A=[1,2,3,4,5]
sum = 0
for i in A:
  sum = sum+ i

print(sum)

(예제) 가장 작은 수 찾아보기

a=[5,4,9,8,10,2,4]
s=a[0]
for i in a:
  if i<s:
    s=i
print(s)

 


연산자

(1) 할당연산자

할당연산자 설명
x=5 왼쪽 변수에 오른쪽 값을 할당
x+=5 왼쪽 변수에 오른쪽 값을 더하고 결과를 왼쪽변수에 할당(x=x+5)
x-=5 왼쪽 변수에 오른쪽 값을 빼고 결과를 왼쪽변수에 할당(x=x-5)
x*=5 왼쪽 변수에 오른쪽 값을 곱하고 결과를 왼쪽변수에 할당(x=x*5)
x/=5 왼쪽 변수에 오른쪽 값을 나누고 결과를 왼쪽변수에 할당(x=x/5)
x%=5 왼쪽 변수에 오른쪽 값을 나눈 나머지의 결과를 왼쪽변수에 할당(x =x%5)
x**=5 왼쪽 변수에 오른쪽 값만큼 제곱을 하고 결과를 왼쪽변수에 할당(x =x**5)
x//=5 왼쪽 변수에 오른쪽 값을 나눈 몫의 결과를 왼쪽변수에 할당(x =x//5)

 

(2) 비트연산자

비트 연산자 설명
& 비트 단위 AND 연산을 수행한다.
| 비트 단위 OR 연산을 수행한다.
^ 비트 단위 XOR 연산을 수행한다.
~ 비트를 반전(1의 보수)시킨다.

 

27 26 25 24 23 221 20

  0  0  0   0  0  0   0  0 = 0  #0b0랑 같은 의미

  0  0  0   0  0  0   0  1 = 1 

  0  0  0   0  0  0   1  0 = 2 

  0  0  0   0  0  0   1  1 = 3

  0  0  0   0  0  1   0  0 = 4  

  0  0  0   0  0  1   0  0 = 5 # bin(5) ('0b101')의미

  0  0  0   0  0  1  1  0 = 6 

 

AND 연산의 예

1 1 1

1 0 1

-------

1 0  1   =22+20=5

 

OR 연산의 예

1 1 1

1 0 1

-------

1 1  1   =22+21+20=7

 

XOR 연산의 예

1 1 1

1 0 1

-------

0 1 0   =21=2

 

반전의 예

00000101 --> 11111010

 

(3) shift 연산자

shift 연산자 설명
>> 비트를 오른쪽으로 이동시킨다.
<< 비트를 왼쪽으로 이동시킨다.

shift 연산자의 예

4<<1
32>>2

4<<1 코드를 간략히 설명해겠습니다.

000100 은 4의 의미입니다. 그렇다면 1만큼 좌측으로 밀린 후 사라지고 맨 뒤에는 0이 하나 새로 생깁니다.

그렇게 되면 001000이 됩니다. 그러면 8의 의미가 됩니다.

 

(4) 삼항 연산자

삼항 연산자 설명
a if condition else b Condition 값이 참이면 a 거짓이면 b

 

(5) 연산자 우선순위

연산자 우선순위 설명
** 지수
~+- 보수, 단항 플러스와 마이너스
*/%// 곱하기,나누기,나머지,몫
+ - 덧셈과 뺄셈
>> << 좌우 비트 시프트
& 비트 ‘AND'
^ | 비트 전용 ‘OR'와 정기적인 ’OR'
<= < > >= 비교 연산자
== != 평등 연산자
= %= /= //=
-= += *= **=
할당 연산자
is,is not 식별 연산자
in,not in 멤버 연산자
and,not,or 논리 연산자

 


FizzBuzz 문제

1. 1에서 100까지 출력해보세오.

정답은 아래와 같습니다.

더보기
for i in range(1,101):
  print(i)

2. 3의 배수는 Fizz를 출력, 5의 배수는 Buzz를 출력, 3과 5의 공배수는 FizzBuzz를 출력하세요.

정답은 아래와 같습니다.

더보기
for i in range(1,101):
  if i%3 == 0 and i%5==0:
    print("FizzBuzz")
  elif i%3==0:
    print("Fizz")
  elif i%5==0:
    print("Buzz")
  else:
    print(i)

주의할 사항 : 3과 5의 공배수 검사코드를 먼저 넣지 않으면 그냥 넘어가버립니다. 그러므로 먼저 작성해야합니다.

 

 

이전 발행글

2021.05.20 - [개인공부공간/Python] - Python - 내장함수 1편

 

Python - 내장함수 1편

직접 내용 정리한 내용이니 퍼가실 때는 출처 부탁드려요 :) 1. print()함수 화면에서 데이터를 출력할 때 사용하는 함수 (1) print()함수 사용한 예 1) , 를 사용했을 시에는 띄어쓰기로 출력합니다. pr

step-journey.tistory.com

2021.05.21 - [개인공부공간/Python] - Python - 자료형 (숫자형,문자열,불린형)

 

Python - 자료형 (숫자형,문자열,불린형)

직접 내용 정리한 내용이니 퍼가실 때는 출처 부탁드려요 :) 형변환 데이터의 형태를 변환합니다. str(데이터) : 문자열로 변환합니다. int(데이터) : 정수로 변환합니다. float(데이터) : 실수로 변

step-journey.tistory.com

2021.05.22 - [개인공부공간/Python] - Python-자료형(리스트,튜플)

 

Python-자료형(리스트,튜플)

직접 내용 정리한 내용이니 퍼가실 때는 출처 부탁드려요 :) 리스트 정의 여러 개의 데이터를 한 번에 보관할 수 있는 자료형을 '리스트'라고 합니다. 빈 리스트를 만드는 방법 list1 = [] #리스트를

step-journey.tistory.com

2021.05.24 - [개인공부공간/Python] - Python-자료형(사전형,집합)

 

Python-자료형(사전형,집합)

직접 정리한 내용이니 퍼가실 때에는 출처 부탁드려요 :) 딕셔너리(사전형) 빈 딕셔너리 만들기 dic={} #key:value 가 없는 딕셔너리 기본적인 딕셔너리 모습 {Key1:Value1, Key2:Value2, Key3:Value3,...} Key에..

step-journey.tistory.com

 

728x90
반응형

'개인공부공간 > Python' 카테고리의 다른 글

Python - 클래스 1편  (18) 2021.05.27
Python-함수  (17) 2021.05.26
Python-자료형(사전형,집합)  (10) 2021.05.24
Python-자료형(리스트,튜플)  (0) 2021.05.22
Python - 자료형 (숫자형,문자열,불린형)  (10) 2021.05.21
Comments