- @참고(점프 투 파이썬): https://wikidocs.net/11

 

0. 자바와 다른 특징점

- type을 선언하지 않는다. 파이썬이 변수에 저장된 값을 스스로 판단하여 자료형을 지정하기 때문이다.

특히 function 정의시 return type 이 없다.

- 주석은 한줄주석은 #, 여러줄 주석일 경우 ''' 또는 """ 로 감싼다.

 

1. 자료형

1.1. 숫자형

- 제곱연산자: **

- 몫연산자: //

자바는 int를 int로 나누면 몫이 결과로 나오지만, python 은 실수가 된다.

 

1.2. 문자열 자료형

- 여러줄 문자열: ''' 또는 """ 으로 감싼다.

예는 아래와 같다.

'''

[multiline]

''' 

* 여러줄 주석도 ''' 또는 """ 으로 감싸나 보다..

 

- 문자열, 리스트, 튜플 더하기, 곱하기가 가능하다.

- 문자열, 리스트, 튜플 인덱싱 및 슬라이싱: a[3], a[:4], a[3:-3], a[:17]

: 은 왼쪽 포함, 오른쪽 미만의 인덱스의 글자로 자른다.

 

- 문자열 포매팅: %, format 함수, f 문자열 포맷팅 3가지 방법이 있다.

>>> "rate is %s" % 3.234

# %s 가 아닌 %d또는 %f로 하게 되면 정수까지만 짤려서 나타나거나 쓸데없는 소수자리 0이 채워져서 나타내진다. 따라서 %s로 표현하는게 원형 그대로 유지하는 방법인 것 같다.

 

>>> I eat {0} apples. so I was sick for {1} days.".format(3, "three")

# 왼쪽 정렬은 :을 붙인 후 <10, 오른쪽 정렬은 :을 붙인 후 >10, 가운데 정렬은 :을 붙인 후 ^10 으로 표현할 수 있으며, :=^10 과 같이 =으로 공백을 채울 수도 있다.

예로, {0:<10}, {0:>10}, {0:^10}, {0:=^10} 과 같다.

 

>>> f'나의 이름은 {name} 입니다. 나이는 {age} 입니다.'

* 문장을 변수에 대입해서 사용하는 방법은 어떻게 사용할 수 없는 방법 같다..

표현식이 사용가능해서 {age+1}, d = {'name':'홍길동', 'age':30} 일 때 {d["name"]}과 같이 사용 할 수 있다.

 

- 문자열, 리스트, 튜플(join 제외) 관련 함수

>>> len(a) # a 길이
>>> a.count('b') # 'b' 문자 개수 

>>> a.index('b') # 'b' 문자의 첫번째 인덱스, 문자열에서는 a.find('b') 가 추가로 존재한다.

# a.index('b') 는 문자가 없는 경우 -1 이 아닌 ValueError를 던진다.

>>> ",".join('abcd') # 'a,b,c,d' 를 결과로 내며, ['a', 'b', 'c', 'd']를 인자로 넣어도 같은 결과값을 가진다.

- 문자열 관련 함수

>>> a.upper(), a.lower(), a.strip() # a.lstrip(), a.rstrip() 이 존재한다.

>>>  a.replace("Life", "Your leg")

>>> a.split() # 인자값이 없으면 공백을 기준으로 문자를 나눈다.

 

- 형변환: str(2), int('2'), float('3.21'), chr(91),  ord('a')

# ord 는 문자를 int(아스키코드값)으로 변환한다.

 

1.3. 리스트 자료형

- 리스트 수정, 삭제

>>> a[2] = 4 # 인덱스 2 의 값을 4 로 수정한다.
>>> del a[2:] # 인덱스 2 이상의 요소를 삭제한다.

- 리스트 관련 함수

>>> a.append([5, 6])
>>> a.sort() 또는 a.reverse() # 오름차순 정렬 및 뒤집기에 대한 함수이다.
>>> a.insert(0, 4) # 0의 위치에 4 요소를 삽입한다.
>>> a.remove(3) # 첫번째로 나오는 3 요소를 삭제한다.
>>> a.pop()

pop()은 딕셔너리에서도 사용 가능하다.

 

- 형변환: str list -> int list

data = "4546793"
nums = list(map(int, data)) # [4, 5, 4, 6, 7, 9, 3]

 

1.4. 튜플 자료형

- 튜플은 그 값을 바꿀 수 없는 리스트가 필요한 경우 사용한다.

- 인덱싱, 슬라이싱, 더하기, 곱하기, 길이 함수 등을 사용할 수 있다.

- 튜플의 예는 아래와 같다.

>>> t1 = ()
>>> t2 = (1,) # 1 개 요소를 가지면 뒤에 , 를 붙이지 않는 경우 (1) = 1 로 인식된다.

 

1.5. 딕셔너리 자료형

- java 의 Map 과 같은 자료형이다.

- 딕셔너리 예는 아래와 같다.

>>> dic = {'name':'pey', 'phone':'0119993323', 'birth':'1118'}

- 추가 / 삭제 / 조회

>>> a[2] = 'b' # key가 2 이고 value 가 'b' 인 딕셔너리 쌍이 추가된다.
>>> del a[1] # key가 1인 딕셔너리 쌍이 삭제 된다.
>>> a[2] # key 가 2 인 딕셔너리의 value를 얻는다.

- 딕셔너리 관련 함수

>>> a.keys() # key 리스트
dict_keys(['name', 'phone', 'birth'])

>>> a.values() # value 리스트
dict_values(['pey', '0119993323', '1118'])

>>> a.items() # key, value 쌍 리스트
dict_items([('name', 'pey'), ('phone', '0119993323'), ('birth', '1118')])

# dict_* 객체는 list로 변환하지 않더라도 반복 구문을 실행할 수 있다.

>>> a.clear() # key: value 쌍 모두 지우기
>>> a.get('foo', 'bar') # a 에 'foo' 라는 키 값이 없는 경우 'bar'를 돌려준다. 
# a.get('foo')는 값이 없는 경우 None 을 돌려주지만, a['foo']는 KeyError를 내뱉는다.

>>> 'name' in a # 해당 key 가 딕셔너리 안에 있는지 조사. 결과는 True 또는 False

- 형변환: list(a), tuple(a), set(a)

 

1.6. 집합 자료형

- 집합 자료형은 v2.3 부터 지원하는 자료형으로 예시는 아래와 같다.

>>> s1 = {1, 2, 3} # set("Hello") 는 {'e', 'H', 'l', 'o'} 의 결과를 낸다.

 

- 교집합, 합집합, 차집합 연산자: &, |, -

- 집합 자료형 관련 함수

>>> s1.add(4) # 4 라는 요소를 추가한다.
>>> s1.update([4, 5, 6]) # 여러 요소를 추가한다.
>>> s1.remove(2) # 2 라는 요소를 제거한다.

 

- type 조사하기

>>> type(a)

 

1.7. 불 자료형

- 자료형의 참, 거짓: "", [], (), {}, 0, None은 거짓이다.

>>> a = [1, 2, 3, 4]
while a:
	print(a.pop())
# 4, 3, 2, 1 을 한줄 씩 순서대로 출력한다.

- 불 연산: bool(a)

 

1.8. 변수

- 메모리 주소 찾기 / 동일 객체 판별

>>> id(a) # a 변수가 가리키는 메모리의 주소를 나타낸다.
>>> a is b # a, b 가 동일한 객체를 가리키고 있는지 판단한다.

 

- 복사

# a 와는 다른 객체인 내용물이 같은 b 를 만들기
>>> b = a[:] 
>>> b = copy(a) # from copy import copy 가 선행한다.
>>> b = a.copy()

 

- 서로 바꾸기

>>> a, b = b, a # 튜플 자료형을 이용한 방법이며, list를 이용할 수도 있다.
블로그 이미지

uchacha

개발자 일지

,