본문 바로가기
Language/Python

2021 - 04 - 15, Python 학습 - 문법 1

by Cs.Woo 2021. 4. 15.

# 1 반복문

반복되는 작업을 처리하기 위하여 사용되는 문법. 파이썬의 반복문에는 For문과 While문이 있다.

 

# 1-1 for문

 for문은 횟수를 기준으로 반복한다.

 

` 구조

 

for Variable in Container :

    Command 1

    Command 2

           ....

 

 ` 예시

 

rainbow = [ '빨', '주', '노', '초', '파', '남', '보' ]

for color in rainbow:

    print(color)

 

//

'빨'

'주'

'노'

'초'

'파'

'남'

'보'

 

컨테이너 안의 값을 전부 순회할 때 까지 반복한다. 반복하는 부분을 코드 블럭이라고 일컫는다. 코드블럭을 구분하기 위해 콜론(:)과 들여쓰기를 사용한다.

 컨테이너 안에 값이 1, 2, 3이 있었다고 가정하였을 때,   for 뒤에오는 변수에 첫번째 값 1이 저장되고, 블럭에 있는 코드가 실행되게 된다. 다 실행이 끝난 후, 컨테이너에서 두번째 값인 2가 변수에 저장되고 코드가 실행되며, 마찬가지로 끝난 후 그 뒤에 값이 들어와 실행되게 되는 구조로 되어있다.

  

# 1-2 range( arg ) // 내장함수

 for문과 자주 쓰이는 내장함수로는  range가 있다. range는 인자로 받은 곳 까지의 숫자를 나열한다.

사용법과 예시는 다음과 같다.

 

` 구조

 for variable in range(arg) :

    command

        ....

 

 `예시

 for i in range(3) :

    print( i )

//

0

1

2

 

 for i in range(4, 6) : 

    print( i )

//

4

5

 

# 1-3 반복문 중첩 (for 문)

 반복문은 중첩해서 사용이 가능하다. 구조와 예시는 다음과 같다.

 

` 구조

 for variable in container :

   for variable_2 in container :

        command

        command

             ....

 

 ` 예시

 for i in range(1, 10) :

    print( '{ } x { } = { }'.format(2, i, 2 * i) )

//

 2 * 1 = 2

 2 * 2 = 4

     ....

 2 * 9 = 18

 

 for j in range(2, 10):

     for i in range(1, 10):

        print( '{ } x { } = { }'.format( j , i, j * i)

//

 2 * 1 = 2

 2 * 2 = 4

     ....

 9 * 9 = 81

 

 

# 1-4 Comprehension

 리스트를 만드는 강력하고 간결한 방법이다. 컴프리헨션을 이용하여 주어진 리스트에서 홀수만 뽑아내는 코드를 다음과 같이 작성하였다.

 

`예시

numbers = [1,2,3,4,5,6,7,8,9,10]

odd_numbers = []

 

for number in numbers :

    if number % 2 == 1:

        odd_numebrs.apend(number)

print(odd_numbers) [ 1, 3, 5, 7, 9 ]

 

를 다음과 같이 표현이 가능하다.  (Comprehension)

 

[ number for number in numbers if number % 2 ==1 ]

 

` 해석

 

odd_numbers = [ ] //  빈 list 생성

odd_numbers = [ number ] // number 변수 호출

odd_numbers = [ number for number in numbers ] // 조건문 작성

odd_numbers = [ number for number in numbers  if number % 2 == 1 ] // 조건 작성

print(odd_numbers) // [ 1, 3, 5, 7, 9 ]

 

` 구조

[ number / for number in numbers / if number % 2 == 1 ]

 

## 할당연산자(Operator)

 자료형마다 연산자의 기능이 다르다. 이러한 내용을 정리하였다.

 수학에서의 등호( = )는 같다는 의미이지만, 파이썬에서 등호( = )는 할당연산자이다.

 파이썬에서의 등호는 오른쪽의 값을 왼쪽의 변수에 할당(Assign)하는 역할을 하고있다.

 

< 할당 연산자 = >

variable_1 = 1

variable_2 = 1.1

variable_3 = []

 

< 복합 할당 연산자 >

" += " :  i = 1, i = i + 1 ( i += 1 )

" -=  " :  i = 1, i = i - 1 ( i -= 1 ) 

" *= "  :  i = 1, i = i * 1 ( i *= 1 )

" /= "  :  i = 1, i = i / 1 ( i /= 1 )

 

< 복합 할당 연산자 >

##비교를 위한 코드

 

number = 1

number = 1 + 1

print(number) // 2

 

##복합 할당 연산자

 

number += 1

print(number) // 2 number = number + 1과 같다

 

# 상기 복합연산자는 변수의 값을 계산해 같은 변수에 다시 대입하는 결과를 나타낸다.

 

예시로는 다음이 있다.

 

` 예시

 price = 5000

 price = price * 0.85

 print(price) // 4250.0 

 일때,

 

 price = 5000

 price *= 0.85

 print(price) = 4250.0

 이다

 

 계산하여 다시 본래의 변수로 값을 리턴하는 경우이다.

 

이러한 할당 연산자 뒤에 다른 연산자가 붙어서 다른 역할을 만들어 낼 수 있는데 이것을 복합 할당 연산자라고한다.

## 산술연산자(Arithmetic)

 숫자끼리 연산을 할 수 있는 연사자이다. 일반적인 사칙연산부터 특수한 연산까지 전부 가능하다.

 

< 산술연산자(Arithmetic) >

 

## 사칙연산

 

a + b : 덧셈

a - b  : 뺄셈

a * b  : 곱셈

a / b  : 나눗셈

 

## 특수 연산

 

a ** b :  제곱 연산자

a // b :  몫 연산자

a % b :  나머지 연산자

...

 

상기 특수연산자로 여러가지를 시도할 수 있다. 그 중 대표적인 나머지 연산자로 홀/짝 수 찾기를 아래에 예시로 작성하였다.

 

` 예시

numbers = [ 1, 2, 3, 4, 5, 6, 7 ] // array에 숫자 추가

 

for number in numbers :

    if number % 2 == 1 : // 2로 나누어서 나머지가 1이라면

        print(number, " : 홀수")  // 출력

    else :  // 그렇지 않으면

        print(number, " : 짝수") //출력

 

## 문자열연산자

 숫자 자료형에도 연산자가 있듯이 문자열에도 연산자가 존재한다. 그러나 문자를 더한다는 행위는 불가능함으로 인식하고 있는 것과는 다르게 작동한다.

 이와 같은 내용을 다음과 같이 작성하였다.

 

< 문자열 연산자 >

 

 + : 문자열 끼리 더함  

' a ' + ' b ' = 'ab'

 

 * : 문자열을 해당 수 만큼 반복함.

' a ' * 3 = 'a', 'a', 'a'

 

....

 

## 비교 연산자

 비교를 할 때에 쓰이는 연산자이다. 비교의 결과는 참(True)과 거짓(False)로 나타난다.

여러가지 비교 연산자는 다음과 같이 있다.

 

< 비교 연산자 >

 

a == b : a 와 b 는 같다

a != b : a 와 b 는 같지 않다.

a > b : a 는 b 보다 크다

a < b : a 는 b 보다 작다

a >= b : a 는 b 보다 크거나 같다

a <= b : b는 a 보다 크거나 작다

 

cf) !는 부정을 의미한다 ( not과 비슷하다)

 

 

## 논리 연산자(Logical)

 파이썬의 논리 연산자에는 and, or, not이 있다.  조건이 있을 때, 조건과의 관계를 설명하기 위하여 쓰이는 연산자이다.

and 는 그리고, or 는 또는, not은 부정의 의미이다. 다음과 같이 사용된다.

 

<논리 연산자의 참과 거짓>

True and True : True

True and False : False

False and True : False

False and False : False

--

True or True : True

True or False : True

False or Ture : True

False or False : False

---

not False : True

nor True : False

 

## 멤버쉽 연산자 (Membership)

 리스트, 튜플 등의 안에 해당 값이 있는 지 확인하는 연산자이다. in과 not in을 사용한다. 예시는 다음과 같다

 

` 구조

 Variable = Container

 item in variable 

 

` 예시

 rainbow = [ '빨', '주', '노', '초', '파', '남', '보' ]

 print('빨' in rainbow) // True

 print('분홍' in ranbow) // False