본문 바로가기

Python 파이썬

파이썬 수첩 ( 세미콜론 / 줄바꿈 sep, end / 튜플 / 시퀀스 자료형 / 딕셔너리 / if의 조건식 / for 반복문 / 난수 random )

반응형

 

 

세미콜론

 

- 구문을 마칠때 써줘도 되고, 안써줘도 됨. (보통은 안 써줌.)

 

- 파이썬에서는 한 라인에 나열된 여러 구문을 구분하기 위해 세미콜론을 사용함.

 

    print('Hello'); print('1234')

 


 

줄바꿈 (sep, end)

 

>>> print(10, 20, 30, sep=' $ ')

// 결과: 10 $ 20 $ 30

>>> print(10, 20, 30, sep='\n')

// 결과: 10

            20

            30

>>> print('10\n20\n30')

// 결과: 10

             20

             30

>>> print(10, end=' ')

>>> print(20, end=' ')

>>> print(30)

// 결과: 102030

>>> print(10, end=' , ')

>>> print(20, end=' , ')

>>> print(30)

// 결과: 10,20,30

>>> a, b = map (float, input('실수를 입력하세요: ').split( ))

 

입력된 값을 실수로 변환하여 변수 여러 개에 저장함.

 


 

튜플

 

- 리스트와 기능은 같지만, 요소를 변경, 추가, 삭제할 수 없음. ( 읽기 전용 리스트)

 

- 요소를 실수로 변경하는 상황을 방지해줌.

 

- 괄호로 묶어 주고, 콤마로 구분해줌. tuple = (10, 20, 30)

 

- 괄호로 묶지 않고, 콤마로 구분해도 됨. tuple = 10, 20, 30

 

- 요소가 한 개일 경우에는 요소 뒤에 콤마를 붙여줌.  tuple = (10, )    tuple = 10,


 

시퀀스 자료형

 

- list, tuple, range, str 값이 연속적으로 이어진 자료형

 

- 시퀀스 객체: 시퀀스 자료형으로 만든 객체

 

- 요소(element): 시퀀스 객체에 들어있는 각각의 값

- list: 슬라이스로 요소 추출 O / 할당 O / 삭제 O

 

- tuple, range, str: 슬라이스로 요소 추출 O / 할당 X / 삭제X

 

 

- 단, range는 덧셈 연산자(+)로 바로 객체끼리 연결할 수 없음. (list 또는 tuple화 시켜서 연결해야 함.)

 

    >>> range(0,3) + range(3,6) --> X

    >>> list(range(0,3)) + list(range(3,6)) --> O 결과: [0, 1, 2, 3, 4, 5]

    >>> tuple(range(0,3)) + tuple(range(3,6)) --> O 결과: (0, 1, 2, 3, 4, 5)

- 단, range는 곱셈 연산자(*)로 바로 객체를 반복할 수 없음. (list 또는 tuple화 시켜서 반복해야 함.)

 

    >>> range(0,3) * 3 --> X

    >>> list(range(0,3)) * 3 --> O 결과: [0, 1, 2, 0, 1, 2, 0, 1, 2]

    >>> tuple(range(0,3)) * 3 --> O 결과: (0, 1, 2, 0, 1, 2, 0, 1, 2)

 

 

 

 

 

 

 


 

시퀀스 자료형의 공통기능

 

- 요소 in 시퀀스 객체 : 요소가 시퀀스 객체내에 존재하면 True, 존재하지 않으면 False 반환

 

    >>> num = [10, 20, 30, 40]

    >>> 30 in num

    // 결과: True

- 요소 not in 시퀀스 객체​: 요소 in 시퀀스 객체와 반대로 작동함.

- 곱셈 연산자 (*): 시퀀스 객체를 특정 횟수 만큼 반복하여 새로운 시퀀스 객체를 만듦.

 

    >>>[10, 20, 30] * 3

   // 결과: [10, 20, 30, 10, 20, 30, 10, 20, 30]

- len(시퀀스 객체) --> 요소의 개수를 구해줌.

- del 시퀀스객체 [ 시작 인덱스 : 끝 인덱스-1] --> 요소를 삭제함.

- 증가폭(stride)이 없으면 슬라이스 범위의 요소개수와 할당할 요소개수가 정확히 일치하지 않아도 알아서

유동적으로 처리해줌.

 

- 증가폭이 있으면 슬라이스 범위의 요소 개수와 할당할 요소 개수가 반드시 정확히 일치해야 함.

 


 

딕셔너리 { key : value }

 

- key(키): 문자열, 정수, 실수, 불리언 O  /  리스트, 딕셔너리 X

 

- value(값): 문자열, 정수, 실수, 불리언, 리스트, 딕셔너리 O

- 키가 중복되면 가장 뒤에 있는 key와 value만 가져옴.

 

    >>> lux = {'health':500, 'health':1000, 'mana':300, 'power':400}

    >>> print(lux)

    // 결과: {'health': 1000, 'mana': 300, 'power': 400}

- dict( 키1=값1 , 키2=값2 , 키3=값3 )의 형식으로 딕셔너리를 만들 수도 있음.

 이때는 키가 자동으로 문자열로 바뀜. (따라서, 키가 문자열이더라도 따옴표를 붙이면 안됨. )

 

    >>> lux = dict(health=500, mana=300, power=400)

    >>> print(lux)

    // 결과: {'health': 500, 'mana': 300, 'power': 400}

- dict([(키1, 값1), (키2, 값2), (키3, 값3)])의 형식으로 딕셔너리를 만들 수도 있음.

 

    >>> lux = dict([('health',490), ('mana',334), ('melee',550)])

    >>> print(lux)

    // 결과: {'health': 500, 'mana': 300, 'melee': 400}

- dict(zip([키1, 키2, 키3], [값1, 값2, 값3]))의 형식으로 딕셔너리를 만들 수도 있음.

 

    >>> lux = dict(zip(['health', 'mana', 'power'], [500, 300, 400]))

    >>> print(lux)

    // 결과: {'health': 500, 'mana': 300, 'power': 400}


 

if의 조건식

 

- None => False로 취급됨.

- ​0 => False로 취급됨.

 

- 0이 아닌 수 => True로 취급됨.

- 빈 문자열 => False로 취급됨.

 

- 내용이 있는 문자열 => True로 취급됨.


 

for 반복문

 

for 변수 in 시퀀스 객체:​​

    반복할 코드

 

    for i in range(10):

    print( 'Hello' , i )

* range의 반복 횟수에서 꺼낸 숫자는 변수에 저장되며, 이는 반복할 코드에서 사용할 수 있음.

* range(시작값 , 끝값 , 증가폭)

- 시작값을 끝값보다 크게 하고, 증가폭을 음수로 지정하면 숫자를 감소시키면서 반복할 수도 있음.

 

    for i in range(10, 0, -1):

    print('hello' , i )

- range 앞에 reversed를 붙여줌으로써 출력 순서를 거꾸로 뒤집을 수도 있음.

 

    for i in reversed(range(10)):

    print( 'Hello', i )

* for문은 반복 횟수가 정해져 있을 때 주로 사용함.

* while문은 반복 횟수가 정해져 있지 않을 때 주로 사용함.

for 변수1 in range(반복 횟수):

 

    for 변수2 in range(반복 횟수):

 

        가로(행) 처리 코드

 

    세로(열) 처리 코드


 

난수 (random number)

 

- 특정 주기로 반복되지 않으며, 랜덤으로 발생하는 숫자

 

import random

 

random.random( ): 0~1 사이의 실수인 난수를 생성함.

 

random.randint(시작값, 끝값) : 시작값부터 끝값 사이의 정수인 난수를 생성함.

 

반응형