- @참고(점프 투 파이썬): 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를 이용할 수도 있다.
'Python' 카테고리의 다른 글
[Python] 자바와 비교하기 - 5. 정규표현식 (0) | 2021.07.29 |
---|---|
[Python] 자바와 비교하기 - 4. 클래스 외 (0) | 2021.07.26 |
[Python] 자바와 비교하기 - 3. 함수, 입출력 (0) | 2021.07.23 |
[Python] 자바와 비교하기 - 2. 제어문 (0) | 2021.07.22 |