본 내용은 해당 강의 토대로 작성
파이썬 기초 문법
1. 문자열과 내장함수
문자열 내장 함수
msg = "It is Time";
print(msg.upper()); # 대문자화
# IT IS TIME 출력
print(msg.lower());
# it is time
tmp = msg.upper(); # 대문자화된 변수가 입력된다.
print(tmp.find('T')); # T를 찾아 index를 return
print(tmp.count('T')); # T가 몇개 있는지 센다.
print(msg[:2]); # 슬라이스. 처음부터 index 2번 전 까지인 It을 뽑아낸다.
print(msg[3:5]); # 3번부터 4번까지 is 출력
print(len(msg)); # 문자열의 길이를 구한다.
- 문자열에서, 공백도 문자 취급한다
- .upper(): 문자열을 대문자화 한다. 결과만 대문자화하고 원래의 문자열은 변하지 않는다.
- .lower(): 문자열을 소문자화 한다.
- .fint(): 해당하는 문자를 문자열에서 순차적으로 찾아, 처음으로 몇 번째 index에 있는지 return. index는 0번부터 센다.
- .count(): 해당하는 문자가 문자열에서 몇 번 나오는 지 카운트한다.
- 슬라이스
- [시작index:마지막index]: 문자열의 시작 index부터 마지막 index -1 까지 뽑아낸다.
- [:마지막 index]: 문자열의 시작부터 마지막 index-1까지 뽑는다.
- len(): 문자열의 길이를 구한다.
- for문과 len() 함수를 사용해서 문자열에 접근할 수 있다.
for문으로 문자열 접근하기
msg = "It is Time";
for i in range(len(msg)):
print(msg[i], end=' ');
# I t i s T i m e 출력
for x in msg: # for문에 문자열을 바로 넣어서 위와 같이 출력할 수 있다.
print(x, end=' ');
-------------------------------------------------------------------------------------
for x in msg:
if x.isupper(): # x가 대문자이면 참 retrun
print(x, end=' ');
print()
# I T 출력
--------------------------------------------------------------------------------------
for x in msg:
if x.islower(): # x가 소문자이면 참 return
print(x, end=' ');
print()
# t i s i m e 출력
--------------------------------------------------------------------------------------
for x in msg:
if x.isalpha(): # x가 알파벳일 때 참
print(x, end=' ');
print()
# ItisTime 출력
- .isupper(): 해당 문자가 대문자이면, true를 return
- .islower(): 해당 문자가 소문자이면, true를 retrun
- .isalpha(): 해당 문자가 알파벳일 때, true를 return
ASCII
- 미국 ANSI에서 표준화한 정보교환용 7비트 부호체계
- A ~ Z == 65 ~ 90
- a ~ z == 97 ~ 122
tmp = 'AZ';
for x in tmp:
print(ord(x), end=' '); # ASCII number 출력
# 65 90 출력
tmp = 'az';
for x in tmp:
print(ord(x), end=' ');
# 97 122 출력
tmp = 65;
print(chr(tmp)) # 숫자를 ASCII 에 대응되는 문자로 출력
# A 출력
- ord(): 문자를 ASCII number로 변환
- chr(): 숫자를 ASCII에따라 대응되는 문자로 출력
2. 리스트와 내장함수(1)
- 여러 데이터를 한데 묶을 수 있다.
- 변경할 수 있다.
- 리스트 생성 방법
a = []
b = list()
c =[1, 2, 3, 4, 5]
- 호출 방법
print(a[index 번호])
- index 번호는 0부터 시작한다.
import random as r # random 모듈을 r로 명령한다.
a = []; # 빈 리스트 생성
b = list(); # 빈 리스트 함수 생성
a = [1, 2, 3, 4, 5]; # 데이터 입력과 동시에 초기화
print(a[0]) # 0번 인덱스 1 출력
b = list(range(1, 11)); # range로 초기화 가능
print(b); # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 출력
C = a + b;
print(c); # [1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 출력
a.append(6); # 리스트의 제일 뒤에 6 추가
print(a); # [1, 2, 3, 4, 5, 6]
a.insert(3, 7); # a리스트 3번 index에 7을 삽입
print(a); # [1, 2, 3, 7, 4, 5, 6]
a.pop(); # 맨뒤의 데이터 제거
print(a); # [1, 2, 3, 7, 4, 5]
a.pop(3); # 3번 index 제거
print(a); # [1, 2, 3, 4 ,5]
a.remove(4); # 리스트에서 4 제거
print(a); # [1, 2, 3, 5]
print(a.index(5)); # a리스트에서 5라는 값이 있는 index번호 출력
print(sum(b)); # b리스트의 모든 값을 합한 55 출력
print(max(b)); # b리스트에서 제일 큰 값 10 출력
print(min(b)); # b리스트에서 제일 작은 값 1 출력
r.shuffle(b); # a 리스트 무작위로 섞기
print(b);
b.sort(reverse=true) # b리스트 내림차순 정렬
print(b); # [10, 9 ,8 , 7 , 6 , 5, 4, 3, 2, 1]
b.sort() # b리스트 오름차순 정렬
print(b); # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
b.clear() # b리스트 비우기
- random: shuffle 내장 함수를 가지고 있는 모듈
- 생성된 리스트 끼리 합연산이 가능하다.
- .append(): 리스트의 제일 뒤에 데이터 추가
- .insert(index 번호, 넣을 데이터): 리스트에서 지정한 index번호의 앞(-1)에 데이터를 삽입
- .pop(): 맨 뒤의 데이터 제거, index 번호 입력시 해당 index를 삭제한다.
- .remove(): 리스트에서 지정한 데이터를 제거한다.
- .index(): 리스트에서 지정한 값이 있는 index를 return
- sum(): 리스트에 있는 모든 값들을 더한다.
- max(): 주어진 인자(리스트)에서 제일 큰 값을 구한다.
- min(): 주어진 인자(리스트)에서 제일 작은 값을 구한다.
- r.shuffle(): random 모듈의 내장함수 shuffle을 사용하여 리스트를 무작위로 섞는다.
- .sort(): 리스트 오름차순 정렬
- .sort(reverse): 리스트 내림차순 정렬
- .clear(): 빈 리스트로 만들기
3. 리스트와 내장함수(2)
a = [23, 12, 36, 53, 19];
print(a[:3]) # 0번 idex부터 3번 index 전까지 슬라이싱[23, 12, 36]
print(a[1:4]) # [12, 36, 53] 출력
print(len(a)) # 리스트의 길이 5 출력
---------------------------------------------------------------------------------------
for i in range(len(a)):
print(a[i], end=' '); # 리스트 a의 모든 값 접근 23 12 36 53 19 출력
print();
for x in a:
print(x, end=' '); # 위와 같은 출력
print()
-----------------------------------------------------------------------------------------
for x in a:
if x % 2 == 1:
print(x, end=' '); # 홀수 23 53 19 출력
print();
-----------------------------------------------------------------------------------------
for x in enumerate(a): # index 번호까지 접근 x는 튜플 자료구조
print(x);
print();
'''
(0, 23)
(1, 12)
(2, 36)
(3, 53)
(4, 19)
'''
for x in enumerate(a):
print(x[0], x[1]);
print();
'''
0 23
1 12
2 36
3 53
4 19
'''
for index, value in enumerate(a):
print(index, value); # 위와 같은 출력
print()
- 문자열처럼 리스트 또한 슬라이싱을 할 수 있다.
- len(): 리스트에 값이 몇 개 있는지 알려 준다.
- for문으로 값 하나 하나에 접근할 수 있다.
- enumerate(): 리스트의 index와 value를 튜플 로 접근할 수 있다. (index, value)형식으로 저장.
튜플
- 리스트 처럼 여러 데이터를 저장할 수 있다.
- 변경 불가하다.
- 튜플 생성 방법
a = (1, 2, 3, 4, 5)
- 호출 방법
print(a[index번호])
all
- 조건에서 리스트의 모든 value가 참이면 참을 return한다.
a = [23, 12, 36, 53, 19];
if all(60>x for x in a): # 모두 참이면 참을 return
print("YES") # 리스트의 모든 value가 참을 만족하므로 YES출력
else:
print("NO")
any
- 조건에서 리스트의 value가 하나라도 참이면 참을 return한다.
a = [23, 12, 36, 53, 19];
if any(15>x for x in a): # 한 value가 조건을 만족하면 참 return
print("YES") # 리스트의 하나의 value가 참을 만족하므로 YES출력
else:
print("NO")
4. 2차원 리스트 생성과 접근
- 2차원 리스트는 표로 생각하면 편하다.
a = [[0]*3 for _ in range(3)] # 3개의 1차원리스트(index 0~2) 생성
print(a) # [[0, 0, 0], [0, 0, 0], [0, 0, 0]] 출력
a[0][1] = 1;
a[1][1] = 2;
for x in a:
print(x);
'''
[0, 1, 0]
[0, 2, 0]
[0, 0, 0]
'''
for x in a:
for y in x:
print(y, end=' ');
print()
'''
0 1 0
0 2 0
0 0 0
'''
2차원 리스트 a | 열번호 | |||
---|---|---|---|---|
0 | 1 | 2 | ||
0 | 0 | 1 | 0 | |
행번호 | 1 | 0 | 2 | 0 |
2 | 0 | 0 | 0 |
5. 함수 만들기
- 함수 정의
def 함수명(인자1, 인자2):
실행할 명령
- 함수는 위쪽에 정의해 놓을 것
def add(a, b):
c = a + b;
print(c)
add(3, 2); # 5 출력
retrun
- 함수에서 실행 후 결과를 반환한다.
- 함수를 종료하는 역할
def add(a, b):
c = a + b;
return c;
print(add(3, 2)); # 5 출력
x = add(3, 3);
print(x); # 6 출력
---------------------------------------------------------------------------------------------
def add(a, b):
c = a + b;
d = a - b;
return c, d; # c, d 두 개를 return할 수 있다.(튜플)
print(add(3, 2)); # (5, 1) 출력
소수 출력하기
def isPrime(x): # 소수이면 참 return
for i in range(2, x):
if x % i == 0:
return False; # 소수가 아니면 False
return True;
a = [12, 13, 7, 9, 19];
for y in a:
if isPrime(y): # 함수를 호출하여 소수 판별
print(y, end=' ') # 13 7 19 출력
6. 람다 함수
- 익명의 함수 또는 표현식
- 변수에 할당한다.
변수명 = lambda 매개변수: 실행할 명령
plus_two = lambda x: x + 2
print(plus_two(1)); # 3 출력
- 기본 내장 함수에서 인자로 사용될 때 편리하다.
def plus_one(x):
return x + 1;
a = [1, 2, 3];
print(list(map(plus_one, a))) # [2, 3, 4] 출력
print(list(map(lambda x: x + 1, a))) # [2, 3, 4] 출력
- map(func, data): 받은 자료를 함수 실행
'programming study > Algorithm' 카테고리의 다른 글
[인프런 - 김태원] 파이썬 알고리즘 문제풀이 (코딩테스트 대비) (5)(2021.1.25) (0) | 2021.01.25 |
---|---|
[인프런 - 김태원] 파이썬 알고리즘 문제풀이 (코딩테스트 대비) (4)(2021.1.24) (0) | 2021.01.24 |
[인프런 - 김태원] 파이썬 알고리즘 문제풀이 (코딩테스트 대비) (2)(2021.1.23) (0) | 2021.01.23 |
[인프런 - 김태원] 파이썬 알고리즘 문제풀이 (코딩테스트 대비) (1)(2021.1.22) (0) | 2021.01.22 |
[동빈나]이코테 2021 강의 몰아보기 (18)(2021.1.21) (0) | 2021.01.21 |