BASEMENT
Python 1주차 - 2 본문

print 함수
1. 기본서식
" " 또는 ' ' 사용
- print(' ') or print(" ")
변수값 출력
- print(변수이름)
2. % 서식 문자 사용
print(print("%서식문자" % 출력 값 또는 변수이름)
print('%서식문자' % 출력 값 또는 변수이름)
print("%서식문자" % 수식)
% 서식문자의 추가 형식
종류 | 예 | 설명 |
필드폭 | %10d, %5f, %20s | 출력값의 필드폭 설정 기본값은 오른쪽 정렬로 출력 |
정밀도 | %.2f, %5.2f, %.3s, %10.2s | 실수 : 소수점 자리수 지정 문자열 : 왼쪽부터 정밀도만큼 출력 |
플래그문자 | %-10d, %-4f, %-10s | 왼쪽정렬 |
%010d, %04.2f | 숫자 오른쪽 정렬시, 빈 앞칸을 0으로 출력 |
* 정밀도 : 정수형에 사용불가
ex) %10.2d 불가
3. f-string 사용
4. 이스케이프(Escape) 문자
반드시 print 함수의 "" 또는 '' 안에 작성
\ 뒤에 작성
- \n : 엔터 효과
- \t : 탭 효과
- \\ : \출력
- cf) %%d : %문자까지 출력 -> %d
실습 1 - 키와 몸무게의 차이 구하는 코드 작성
실습2 - 섭씨온도를 화씨온도로 전환하는 코드 작성
실습3 - cm을 inch로 환산하는 코드 작성
파이썬 연산자
산술연산자, 관계연산자, 논리연산자, 비트연산자
1. 산술연산자
연산자 | 의미 | 예 |
= | 대입연산자 | a = 3 |
+ | 더하기 | a = 5 + 3 |
- | 빼기 | a = 5 -3 |
* | 곱하기 | a = 5 * 3 |
/ | 나누기 | a = 5 / 3 |
// | 나누기의 몫 | a = 5 // 3 -> 1 |
% | 나머지 값 | a = 5 % 3 -> 2 |
** | 제곱 | a = 5 ** 3 -> 125 |
cf) 복합대입연산자
연산자 | 의미 | 예 | 결과 |
= | 대입연산자 | a = 3 | a <- 3 |
+= | 더하고 대입 | a += 5 | a = a + 5 |
-= | 빼고 대입 | a -= 5 | a = a - 5 |
*= | 곱하고 대입 | a *= 5 | a = a * 5 |
/= | 나누고 대입 | a /= 5 | a = a / 5 |
//= | 나누기의 몫 대입 | a //= 5 | a = a // 5 |
%= | 나머지 값 대입 | a %= 5 | a = a % 5 |
**= | 제곱계산하고 대입 | a **= 5 | a = a ** 5 |
산술연산자 예제 - 입력한 금액을 500원, 100원, 50원, 10원으로 교환한 각 개수와 교환을 하지 못하는 나머지 금액을 출력하는 코드 작성
2. 관계연산자
이항 연산자. 두 개의 항 중 어떤 항의 값이 크거나, 작거나, 또는 같은지 비교하는 연산자
연산의 결과값은 Bool타입 (참이면 True, 거짓이면 False)
주로 조건문이나 반복문에서 사용
연산자 | 의미 | 결과 |
== | 같다 | True 또는 False |
!= | 같지 않다 | True 또는 False |
> | 왼쪽항이 크다 | True 또는 False |
< | 왼쪽항이 작다 | True 또는 False |
>= | 왼쪽항이 크거나 같다 | True 또는 False |
<= | 왼쪽항이 작거나 같다 | True 또는 False |
3. 논리연산자
연산자 | 의미 | 설명 | 예 |
and | ~이고, 그리고 (논리곱) | 양쪽 항이 모두 참인 경우에만 True | (a>100) and (a<200) |
or | ~이거나, 또는 (논리합) | 양쪽 항이 모두 거짓인 경우에만 False | (a>100) or (a<200) |
not | ~아니다, 부정 (논리부정) | 참이면 거짓으로, 거짓이면 참으로 변경 | not(a>100) |
4. 비트연산자
정수를 2진수로 변환한 후 각 자리의 비트끼리 연산 수행
이항연산자
연산자 | 의미 | 결과 |
& | 비트 논리곱 | 비트값이 둘 다 1이면 1 |
| | 비트 논리합 | 비트값이 둘 중 하나만 1이면 1 |
^ | 비트 논리적 배타합(xor) | 비트값이 같으면 0, 다르면 1 |
- | 비트 부정 (1의 보수) | 0은 1로 1은 0으로 변경 |
<< | 비트 이동 (왼쪽 방향) | 비트값 전체를 왼쪽으로 이동 |
>> | 비트 이동 (오른쪽 방향) | 비트값 전체를 오른쪽으로 이동 |
파이썬 주석 처리
- 한 줄 주석 처리 : # 사용
- 여러 줄 주석 처리 : ''' ''', 또는 """ """ 사용
집합형 자료형
1. 문자열 기본
문자열은 기본자료형이면서, 집합형 자료형의 성질을 가짐
len 함수 : 문자열의 길이 반환
ex) name = "python"
print(len(name))
index slicing
- 문자열 범위 선택
- 인덱스 번호는 왼쪽에서 오른쪽으로 0부터 1씩 순차적으로 매겨짐
- [start:end:step] 표현 가능 ex) strawberry[0:5:2] -> start, step은 생략 가능함
- end의 값은 생략 시 마지막 (인덱스번호+1)을 가지며, slicing에 end값은 제외됨
- ex) [:3] -> [0],[1],[2] 의 인덱스 번호 문자열까지만 slicing 됨
- 문자열 역순으로 출력시 [::-1] -> -1부터 -1씩 순차적으로
문자열 함수
1) 대, 소문자 변환
- upper() : 대문자 변환
- lower() : 소문자 변환
- swapcase() : 대->소문자, 소->대문자
- title() : 첫글자를 대문자로
2) 문자열 찾기
- count() : 찾는 문자열의 개수
- find() : 찾는 문자열의 인덱스 번호 (왼쪽부터). 없을 경우 -1 반환
- rfind() : 찾는 문자열의 인덱스 번호 (오른쪽부터)
- index() : find 함수와 동일. 없을 경우 오류 발생
- rindex() : rfind 함수와 동일
- startswith() : 찾는 문자열로 시작하면 True. 찾는 문자열의 시작이 위치값이면 True
- endswith() : 찾는 문자열로 끝나면 True
3) 공백 삭제/변경
- strip() : 문자열 앞뒤의 공백제거 / 앞뒤의 특정 문자 제거 - 문자열.strip('제거문자')
- rstrip() : 문자열 오른쪽 공백 제거
- lstrip() : 문자열 왼쪽 공백 제거
- replace() : 문자열 변경
4) 분리/결합
- split() : 문자열을 공백 또는 다른 문자로 분리 - 문자열.split() / 문자열.split('분리문자')
- splitlines() : 행 단위로 분리
- join() : 문자열 합치기
5) 정렬/채우기
- center() : field 폭에서 가운데 배치
- ljust() : field 폭에서 왼쪽 정렬
- rjust() : field 폭에서 오른쪽 정렬
- zfill() : field 폭에서 오른쪽 정렬, 앞쪽의 빈 공간은 0으로 채움
2. 리스트 (list)
[ ] 로 묶으며, 읽기 및 쓰기 모두 가능 하고 모든 자료형을 혼합하여 묶을 수 있음
리스트 이름 = [리스트값, 리스트값, 리스트값, ...]
ex) books = [ ]
items = [10, 20, 30, 40, 50]
titles = [10, "abc", 3.4, [1,2,3]]
1) 리스트 사용법
2) 리스트 산술연산자 + 와 *
3) 리스트 범위표현
리스트 이름[범위시작 인덱스 : 범위끝 인덱스 : step 값]
4) 리스트 범위 사용법 - 여러 값 변경
5) 리스트 메서드
- append()
리스트에 값 추가
리스트 이름.append(추가할 값) -> 리스트 맨 뒤에 값을 추가함
- insert()
원하는 위치에 값 추가
리스트 이름.insert(추가할 인덱스번호, 추가할 값)
- pop, remove, del, clear
리스트 값 삭제
- 리스트 이름.pop() -> 맨 마지막 값 삭제
- 리스트 이름.pop(삭제할 인덱스 번호)
- 리스트 이름.remove(삭제할 값)
- del(리스트 이름[삭제할 인덱스 번호])
- del 리스트이름[삭제할 인덱스 번호]
- del 리스트 이름 -> 리스트 자체를 삭제
- 리스트 범위 삭제
numbers = [1, 2, 3, 4, 5]
numbers[0:2] = [] # [3, 4, 5]
- 리스트 요소의 전체 삭제
numbers = [1, 2, 3, 4, 5]
numbers = [] or numbers.clear()
cf) numbers = None # object 'None type'이 됨. 리스트 값 지울때 사용하지 않음
- len() : 리스트 길이 계산
ex) len([1,2,3]) -> 3
- sort() : 리스트 오름 정렬
ex) my_var.sort()
cf) my)var.sort(reverse=True) # 내림정렬
6) 리스트 언패킹 (unpacking)
연산자 ' * ' 사용하여 리스트를 언패킹 할 수 있음
변수 할당문에서 = 의 왼쪽엔 2개 이상의 변수를 사용, * 연산자는 = 의 왼쪽 변수에만 적용됨
3. 튜플 (tuple)
() 또는 () 없이 표현되며, 읽기만 가능하고 모든 자료형을 혼합하여 묶을 수 있음
리스트와 동일 -> 차이점 : 값 변경 불가
튜플 이름 = (튜플값, 튜플값, 튜플값, ...) 또는 튜플 이름 = 튜플값, 튜플값, 튜플값, ...
items = 10, 20, 30, 40
print(items[0], items[1], items[2], items[3])
items = 10,
tups = 30, # 요소 하나만 가지는 튜플 -> 반드시 ' , ' 입력
튜플은 입력함수 사용 불가능 (append, insert 등)
튜플 값 삭제 불가능 (del, clear 등)
cf) del 튜플이름 -> 전체 삭제는 가능
튜플의 연산자 : +, * 는 가능
튜플 -> 리스트, 리스트 -> 튜플로 변경하는 함수 : list(), tuple()
튜플 메서드
1) count() : 항목의 개수를 반환
2) index() : 인덱스 번호를 반환
- 튜플 언패킹 : 리스트와 동일. 튜플 언패킹시 리스트로 변함
- 튜플 인덱스 슬라이싱 : 리스트와 동일
- 함수와 관련해서 사용될 때
리턴 시 () 필요 없이 여러 개의 값을 반환하고 싶을때 사용
ex) def test():
return 10, 20
a, b = test()
print(a, b)
4. 딕셔너리 (dictionary)
{ } 로 묶으며 키:값 의 형식으로 데이터가 구성되므로 인덱스번호 대신 키를 사용함
키 (key) : 숫자형, 자료형 (문자형, 튜플형) -> 리스트 불가(값이 변경 가능해서)
값 (value) : 숫자형, 자료형 (문자형, 튜플형, 리스트형)
키의 중복성을 허용하지 않음, 키 값은 수정 불가
딕셔너리 이름 = {키:값, 키:값, 키:값, ...}
ex) dicts = {'name':'Alice', 'age':22, 'major':'engineering'}
print(dicts['name']
딕셔너리 값 수정
딕셔너리에 값 삭제
pop() 사용 시
동일한 키 생성 시 마지막에 추가된 키만 인식 -> 키 값은 중복성이 없기 때문
딕셔너리 관련 함수 및 연산자
1) get()
딕셔너리 키 존재 유무 함수
키가 존재하면 키에 해당되는 value를, 아니면 None 반환
2) keys()
딕셔너리의 키값만 반환하는 함수
3) values()
딕셔너리의 value값만 반환하는 함수
4) items()
딕셔너리의 key와 value를 모두 반환하는 함수
5) update()
딕셔너리에 데이터를 추가하는 함수
6) in
존재의 유무를 확인하는 연산자 in 사용 가능
5. 집합 (set)
딕셔너리의 키값들의 모음
딕셔너리의 키는 중복 불허이므로 set에 들어 있는 값은 항상 유일한 값
value 값, index가 없음 (순서가 없음)
set 생성 -> { } 사용, : 는 사용하지 않음
리스트, 튜플, 딕셔너리를 set함수를 사용하여 set형태로 변경 가능함
리스트 또는 튜플 형태로 변경 -> 인덱스 사용 가능
set 사이의 교집합, 합집합, 차집합, 대칭 차집합 구하기
'Programming > Python' 카테고리의 다른 글
Python 3주차 - 2 (0) | 2020.07.12 |
---|---|
Python 3주차 - 1 (0) | 2020.07.12 |
Python 2주차 - 2 (0) | 2020.07.11 |
Python 2주차 - 1 (0) | 2020.07.11 |
Python 1주차 - 1 (1) | 2020.07.05 |