-파이썬의 기초적인 문법과 새로 알게된 문법 등을 정리한다.
-인프런의 김태원님 파이썬 강의를 학습한 내용을 간단하게 정리한다.
문자열과 내장함수
파이썬은 문자열과 관련한 여러가지 내장함수가 있다. 문자를 대문자료 표현, 소문자로 표현, 문자 안의 특정 값 찾기, 문자 길이 찾기 등 여러가지 함수가 있으니 기본적인 건 다 익혀둬야 할 것 같다.
msg="It is Time"
print(msg.upper()) #IT IS TIME
print(msg.lower()) #it is time
tmp=msg.upper()
print(tmp.find('T')) #1 (T라는 문자 찾아 인덱스 번호 반환)
print(tmp.count('T') #2 (T라는 문자 개수 반환)
print(msg[:2]) #It (처음부터 인덱스2 바로 전(인덱스1)까지)
print(msg[3:5]) #is (인덱스 3부터 인덱스4까지)
print(len(msg)) #10 (공백 포함 문자 길이)
for i in range(len(msg)):
print(msg[i], end=' ') #I t i s T i m e
print()
#위와 같은 결과(문자 자체로 for문 돌기 가능)
for x in msg:
print(x,end= ' ') #I t i s T i m e
print()
#isupper() : 문자가 대문자인 경우 True 반환
for x in msg:
if x.isupper():
print(x,end=' ') #I T
print()
#islower() : 문자가 소문자인 경우 True 반환
for x in msg:
if x.islower():
print(x,end=' ') #I T
print()
#isalpha() : 문자가 알파벳인 경우 True 반환
for x in msg:
if x.isalpha():
print(x, end='')
print()
#ord() : 문자를 아스키 넘버로 출력
tmp='AZ'
for x in tmp:
print(ord(x), end=' ') #65 90
tmp='az'
for x in tmp:
print(ord(x), end=' ') #97 122
print()
#chr():아스키넘버를 문자로 출력
tmp=66
print(chr(tmp)) #B
리스트와 내장함수1
파이썬에서는 가장 기본적인 리스트 자료구조가 있다. 다른 언어에서는 배열(array)가 있는데 파이썬은 리스트(list)로 대체한다. 대괄호([])를 사용하여 표현하며 리스트와 관련한 여러 내장함수들이 있다.
그리고 파이썬에서는 하나 이상의 문자열을 가지고 있는 묶음을 자료구조 이외에 컨테이너라고도 표현한다. 리스트,튜플 등의 컨테이너가 있다. 리스트 설명 후 튜플(tuple)이라는 컨테이너도 작성했으니 참고하면 될 것 같다.
import random as r #random 모듈을 가져와서 r이란 문자로 사용
a=[] #빈 리스트 만들기(방법1)
b=list() #빈 리스트 만들기 방법(2)
a=[1,2,3,4,5]
print(a) #[1,2,3,4,5]
print()
print(a[0]) #1(a의 0번 인덱스 값 출력)
print()
b=list(random(1,11))
print(b) #[1,2,3,4,5,6,7,8,9,10] (1부터 10까지 리스트 초기화)
print()
c=a+b
print(c) #[1,2,3,4,5,1,2,3,4,5,6,7,8,9,10] (리스트끼리 합쳐짐)
#append(): 뒤에 값 추가
a.append(6)
print(a) #[1,2,3,4,5,6]
#insert():특정 인덱스 위치에 값 추가
a.insert(3,7)
print(a) #[1,2,3,7,4,5,6]
#pop():맨 뒤에 값 하나 뺌
a.pop()
print(a) #[1,2,3,7,4,5]
#pop(index번호):index번호의 값 뺌
a.pop(3)
print(a) #[1,2,3,4,5]
#remove(value):특정 값 지움
a.remove(4)
print(a) #[1,2,3,5]
#index(value):값의 인덱스 번호 출력
print(a.index(5)) #3
#sum(리스트) : 리스트 안의 값들 다 합치기
a=list(range(1,11))
print(sum(a)) #55
#max:최대값
print(max(a)) #10
#min:최소
print(min(a)) #1
#min(a,b,...):a,b,c...중 최소 값 출력
print(min(7,3,5)) #3
#shuffle:섞기
r.shuffle(a)
print(a) #[4,2,6...]
#sort:오름차순 정렬
a.sort()
print(a) #[1,2,3..]
#sort(reverse:True):내림차순 정렬
a.sort(reverse=True)
print(a) #[10,9..]
#clear:리스트 empty 초기화
a.clear()
print(a) #[]
리스트와 내장함수2, 튜플 등
파이썬에는 리스트와 함께 튜플(tuple)이라는 자료구조가 있다. 리스트와 튜플은 자료를 순차적으로 저장한다는 공통점이 있는데 차이점은 튜플의 경우 데이터를 한 번 저장하면 수정할 수 없다는 것이다. 또한 튜플의 경우 리스트보다 메모리를 덜 사용한다는 장점이 있다.
a=[23,12,36,53,19]
print(a[:3]) #[23,12,36]
print(a[1:4]) #[12,36,53]
print(len(a)) #5 (리스트 길이 구하기)
#값 접근 방법1
for i in range(len(a)):
print(a[i], end=' ') #23 12 36 53 19
#값 접근 방법2
for x in a:
print(x, end=' ') #23 12 36 53 19
print()
#튜플 형태 접근
for x in enumerate(a):
print(x) #(0,23)(1,12)
#소괄호는 튜플 자료구조
b=(1,2,3,4,5)
print(b[0])
#리스트와의 차이점 : 튜플은 데이터 변경이 불가능하다
#튜플 키와 벨류 뽑기
for x in enumerate(a):
print(x[0], x[1]) #0 23 / 1 12..
print()
#튜플 다른 접근방법
for index,value in enumerate(a):
print(index,value) #0 23 / 1 12...
print()
#all : 모두 참이어야 true
if all(60>x for x in a):
print("YES")
else
print("NO")
#any : 한번이라도 참이면 true
if any(15>x for x in a):
print("YES")
else:
print("NO")
2차원 리스트 생성과 접근
리스트를 2차원 리스트 형태로 만들 수 있다. 수학의 행렬을 생각하면서 사용하면 된다.
a=[0]*3
print(a) #[0,0,0]
#2차원 리스트 생성
#for의 언더바(_)는 변수없이 반복
#2차원 리스트는 행,열로 접근. a[0][1]=1은 0행1열에 1을 대입한다는 의미
a[[0]*3 for _ in range(3)]
print(a) #[[0,0,0],[0,0,0],[0,0,0]]
a[0][1]=1
a[1][1]=2
print(a) #[[0,1,0],[0,2,0],[0,0,0]]
#행렬표처럼 출력
#[0,1,0]
#[0,2,0]
#[0,0,0]
for x in a:
print(x)
#2차원행렬 원소 하나하나 접근
#0 1 0
#0 2 0
#0 0 0
for x in a:
for y in x:
print(y, end=' ')
print()
함수만들기
파이썬도 다른 언어들과 마찬가지로 함수(function)를 만들 수 있다. 처음에 def라고 명시하면 함수 정의를 할 수 있다.
#add라는 이름의 함수를 정의한다. 인자는 a와 b이다.
def add(a,b):
c=a+b
print(c)
#add함수를 호출한다. 인자 개수에 맞게 값을 넣어준 후 호출한다.
add(3,2) #5
add(5,7) #12
#return을 사용하여 값을 리턴받는다. 위의 방식보다 밑에 방식이 더 일반적이다.
def add(a,b):
c=a+b
return c
print(add(3,2))
#리턴이 튜플 방식으로 2개도 된다..3개도 된다..헐
def add(a,b):
c=a+b
d=a-b
return c,d
print(add(3,2)) #(5,1)
람다 함수
함수를 좀 더 편리하게 사용하기 위해 람다 함수라는 것을 제공한다. 함수가 따로 필요없는 익명의 표현식이라고 볼 수 있다. 밑의 예시를 보자.
#일반적인 함수 정의 방법
def plus_one(x):
return x+1
print(plus_one(1)) #2
#람다함수 정의 방법
plus_two=lambda x: x+2
print(plus_two(1)) #3
#map(함수,자료(list등)):자료구조가 함수로 매핑되서 결과 반환
a=[1,2,3]
print(list(map(plus_one,a))) #[2,3,4]
print()
#람다함수를 사용하여 위와 같은 결과 반환. map의 첫번째 인자에 일반함수가 아닌 람다함수가 들어갈 수 있다.
print(list(map(lambda x:x+1,a)))) #[2,3,4]
'개발자 일지 > Phython' 카테고리의 다른 글
[인프런]파이썬 알고리즘 기초 문법 정리1 (0) | 2021.04.11 |
---|---|
[파이썬 기초] XSS(Cross-Site Scripting) 개념 및 방어 방법 (0) | 2021.04.04 |
[파이썬 기초]함수,모듈 작성법 및 활용 (0) | 2021.03.28 |
[파이썬 기초]form 데이터 전송 및 처리방법(CRUD-Delete) (0) | 2021.03.24 |
[파이썬 기초]form 데이터 전송 및 처리방법(CRUD-Update) (0) | 2021.03.24 |
[파이썬 기초]form 데이터 전송 및 처리방법(CRUD-Create,Read) (0) | 2021.03.21 |
[파이썬 기초]반복문(for,range,while) 및 반복문 활용 (0) | 2021.03.19 |
[파이썬 기초]데이터타입 - list, 기타 컨테이너 타입(튜플,딕셔너리) (0) | 2021.03.16 |