파이썬은 기본적으로 변수 타입을 따로 정의 하지않는다. 파이썬이 알아서 자료형을 인식한다.
또, 명령을 마칠 때 세미콜론(;)을 쓰지않아도 된다.
ex ) 변수명 = 값
논리형 : true, false를 가진 값
정수형 : 0 과 음수, 양수 값을 포함하는 숫자 값
실수형 : 소수점을 사용하는 숫자 값
문자열형 : 따옴표로 묶여 있는 문자 값
리스트형 : 정수, 실수 및 문자열 등의 자료들의 집합 (값의 집합)
튜플형 : 정수, 실수 및 문자열 등의 자료들의 집합 (값의 집합)
사전형 : 정수, 실수 및 문자열 등의 자료들의 집합 (키와 값이 쌍으로 존재)
bool() : 부울형 자료로 변환
int() : 정수형 자료로 변환
str() : 문자열 자료로 변환
float() : 실수형 자료로 변환
인덱싱
string = 'hello world'
print(string[1])
슬라이싱
print(string[:3]) # :3 은 맨앞부터 3번째(0~1)까지의 인덱스만 문자열로 반환
print(string[5:]) # :5 은 맨뒤부터 5번째(0~4)까지의 인덱스만 문자열로 반환
print(string[0:3]) # 0:5 은 첫번째 인덱스부터 3번째인덱스 까지 (0~2)까지의 인덱스만 문자열로 반환
언패킹
s = 'abcdefg'
s1,s2,s3,s4,s5,s6,s7 = s
print(s1,s2)
문자열의 반복문
for cnt in string:
print(cnt)
문자열변수.find(문자) 문자열에서 특정 문자열을 찾아 해당 문자의 인덱스값을 반환한다
print(string.find('e'))
문자열변수.count(문자) 문자열에서 특정 문자열을 찾아 해당문자의 수를 반환한다
print(string.count('l'))
문자열변수.lower() 문자열에서 영문자를 소문자로 변경하여 반환한다
print(string.lower())
문자열변수.upper() 문자열에서 영문자를 대문자로 변경하여 반환한다
print(string.upper())
문자열변수.strip() 문자열의 앞뒤 공백제거
string = ' hello world '
print(string.strip())
문자열변수.lstrip() 문자열의 왼쪽 공백제거
string = ' hello world '
print(string.lstrip())
문자열변수.rstrip() 문자열의 오른쪽 공백제거
string = ' hello world '
print(string.rstrip())
문자열변수.replace(old,new) 문자열의 특정 문자를 변경한다
0번인덱스를 replace 함수를 통해 upper함수로 대문자 변경함
string = 'hellow world'
print(string.replace(string[0],string[0].upper()))
문자열변수.split(문자) 특정문자를 기준으로 문자열을 분리하고 리스트형으로 반환한다
분리할문자는 삭제되고 그 문자를 기준으로 분리된다
print(string.split(' '))
input 과 split을 활용하여 공백없애고 리스트형으로 반환하는 예제
text = input('입력 :').split(' ')
print(text,type(text))
문자열변수[::-1] 역순서로 뒤집는다
리스트는 대괄호 ([]
)로 정의한다.
list = [] 리스트 선언
print(list[1]) 인덱싱
print(list[1:3]) 슬라이싱
list1 = [1,2,3] + 로 리스트끼리 연결
list2 = [4,5,6]
list3 = list1 + list 2
list2 = list * 2 * 로 리스트 반복
len(list) 리스트 길이 구하기
1 in (list) 값이 있는지 없는지 확인
1 not in (list)
list.append(추가할값) : 끝에 데이터를 추가함
list.clear() : 리스트를 비움
list.copy() : 리스트를 복사함
list.count(지정값) : 특정 값의 개수를 반환
list.expend(추가할리스트) : 리스트를 확장함
list.index(지정값) : 특정값의 인덱스를 반환, 여러개의 중복된 값이 있다면 첫번째 값의 인덱스 반환
list.insert(인덱스,추가할값) : 원하는 인덱스에 값을 추가
list.pop() : 리스트의 맨 마지막에 데이터를 반환하고 삭제함, 인자값으로 인덱스숫자를 주면 해당 인덱스의 값을 삭제함
list.remove(지정값) : 특정 값을 삭제함. 여러개의 중복된 값이 있다면 첫번째 값 삭제함
list.reverse() : 역순서로 바꿈
list.sort() : 오름차순으로 정렬함. 인자값으로 reverse=True를 주면 내림차순으로 정렬함
여러 개의 자료를 하나의 변수로 관리할 때 사용됨. 리스트와 거의 같지만, 데이터를 변경할 수 없다. 따라서 .append() 와 같은 내장함수는 사용 할 수 없다.
tup = (1,2,3) 튜플 선언
tup = tuple()
tup = ()
tup[1] 튜플 인덱싱
tup[1:3] 튜플 슬라이싱
len(tup) 튜플 길이 구하기
1 in tup 값이 있는지 없는지 확인
1 not in tup
tup3 = tup1 + tup2 + 로 연결
tup2 = tup * 2 * 로 반복
tup.count(지정값) : 특정 값의 개수를 반환
tup.index(지정값) : 특정 값의 인덱스를 반환, 여러 개의 중복된 값이 있다면 첫번째 값의 인덱스 반환
사전형은 java의 map 자료형과 비슷하다. key를 가지고 value에 접근한다
dic = {} 사전형 선언
dic = {key1:value1, key2:value2}
dic = dict([(k1,v1),(k2,v2)])
dic[4] = 'value4' 사전형에 값 추가
dic = {'key1':100,'key2':200,'key3':300} 사전형의 연산
print(dic['key1'])
dic['key3'] = dic['key1'] * dic['key2']
print(dic['key3'])
택배 = {'구매':['bcaa','protein'],'반품':['달걀','milk']} 사전형에 리스트를 넣을 수 있다.
for cnt in 택배:
print(cnt,택배[cnt])
* 리스트형에 사전형을 넣을 수 있다.
리스트형 -> 사전형을 for문으로 출력시에는 cnt[key값]으로 접근해야 한다.
computer = [{'cpu':'i5-6500','ram':'18g','graphic':'gtx1060-3g'},
{'cpu':'i7-8700','ram':'24g','graphic':'gtx2080-6g'}]
for cnt in computer:
print(cnt['cpu'],cnt['ram'],cnt['graphic'])
* 사전형에 사전형을 넣을 수 있다.
사전형 -> 사전형을 for문으로 출력시에는 cnt, 사전변수명[cnt][key값]으로 접근해야 한다.
student = {'kim':{'age':'26세','address':'안산'},'jung':{'age':'26세','address':'평 택'}}
for cnt in student:
print(cnt,student[cnt]['age'],student[cnt]['address'])
dic.update(사전) : 사전형에 키와 값을 추가하거나 수정하여 반환한다.
dic.fromkeys(iter,value) : 리스트, 튜플에 존재하는 값을 키로 사전형 자료형을 생성하여 반환한다.
dic.get(key또는value) : 사전형 키를 통해 값을 반환한다.
dic.keys() : 사전형의 모든키를 반환한다.
dic.values() : 사전형의 모든값을 반환한다.
dic.items() : 사전형의 모든 키-값의 쌍을 튜플형으로 반환한다.
dic.pop(key) : 사전형의 키를 통해 값을 반환한 후 삭제한다.
dic.popitem() : 사전형의 키-값의 쌍을 튜플형으로 반환 후 삭제한다.
dic.clear() : 사전형의 모든 키-값의 쌍을 삭제하여 빈 사전형 자료형만 남긴다.
max() 가장 큰 값 표시
min() 가장 작은 값 표시
sum() 더하기 연산
pow() 제곱 연산
abs() 절댓값 표시
len() 길이 표시
list() 반복가능한 자료형을 입력받아 리스트로 반환한다
all() 반복가능한 자료형(for문 조건같은것)을 입력받아 모든 자료형이 반복가능이면 논리형(True,False)으로 반환
any() 반복가능한 자료형을 입력받아 하나라도 반복가능한것이있으면 논리형으로 반환 chr() 아스키코드를 입력받아 해당 코드에 맞는 문자 표시
dir() 객체가 자체적으로 가지고있는 변수나 함수들을 표시해줌 , 자료형 관련 함수이다
divmod() 2개의 숫자를 입력받아 a를 b로나눈 몫과 나머지를 튜플자료형으로 반환
enumerate() 열거 하다라는 뜻으로 주로 for문과 함께 사용한다 ,
순서가 있는 자료형(리스트,튜플,문자열)등을 입력받아 인덱스값과 입력한 자료형을 포함해 객체를 반환한다
eval() 실행가능한 문자열(코딩)을 입력받아 실행값을 반환한다
id() 객체를 입력받아 객체고유의 주소값을 반환한다
input() 사용자 입력을 받는 함수
int() 문자열자료형의 숫자나 소수점이 있는 숫자등을 정수형으로 반환한다
또는 , radix(2진법,8진법,16진법)의 형태를 10진수로 반환한다
ex ) int('11',2) >> 2진법 '11'을 10진수로 반환함
isinstance() 입력받은 인스턴스가 그 클래스의 인스턴스면 true , 아니면 false 로 bool형으로 반환한다
lambda() def(함수정의)와 같고 , def를 쓰지 못하는 곳이나 def보다 함수정의를 보다 간결하게 할때 사용한다
map() 반복가능한 자료형을 입력받아 각 요소가 함수에 의해 실행된 결과를 묶어서 반환한다
bin() 정수를 2진법으로 변환
oct() 정수를 8진법으로 변환
hex() 정수를 16진법으로 변환
open("filename","mode") 파일이름과 읽기방법을 받아 파일객체를 반환한다
>> mode
w 쓰기모드로 파일열기
r 읽기모드로 파일열기
a 추가모드로 파일열기
b 바이너리모드로 파일열기
ord() 문자를 아스키코드로 반환한다
range(인수) for문과 함께 자주 사용되며 범위를 지정해준다
>> 인수가 하나일 경우 0부터 인수까지의 범위
>> 인수가 두개일 경우 시작숫자 , 끝숫자 로 지정됨 ( ex : range(1,5) 1부터 5까지의 범위)
>> 인수가 세개일 경우 시작숫자 , 끝숫자 , 숫자사이의 거리 로 지정됨
sorted() 입력값을 정렬하고 그 결과를 리스트로 반환한다
>> 비슷한 예로 리스트명.sort() 내장함수가 있는데
sort 함수는 함수를 불러온 리스트객체 그자체를 정렬할 뿐 정렬된 결과를 리턴하는 함수는 아니다
str() 문자열 형태로 반환한다, 두번째 인수로 upper() 를 적으면 대문자 문자열로 반환한다
tuple() 반복가능한 자료형들을 튜플형으로 반환한다
type() 입력값의 자료형을 판별해 반환한다
zip(리스트,리스트) 두개이상의 리스트를 인수로 입력하여 같은 인덱스에 위치한 자료형끼리 묶어서 반환한다
round(숫자,자릿수) 반올림하여 자릿수 지정한만큼 반환한다