함수
|
6. 문자열, 숫자 관련 함수
숫자를 문자열로 변환하는 함수 - 함수 format( )
- 중괄호 { }를 큰 따옴표로 묶어준 다음 마침표 . 로 연결시켜 사용 가능
str = "{}".format(23); print(str); print(type(str))
=> 23<class 'str'>
- format( ) 안에 들어가는 숫자의 개수는 중괄호 개수와 같거나 중괄호 개수보다 많아야 함
" {} {} {}".format(1, 2, 3) # 중괄호 안에 format 뒤의 숫자가 차례로 들어감
=> 1 2 3
- { :d} ⇒ 정수형 숫자 출력
- { :숫자d} ⇒ 지정한 숫자의 칸에 맞춰 숫자 출력
- { :0숫자d} ⇒ 지정한 숫자의 카에 맞춰 숫자 출력 & 빈 칸을 0으로 채워서 출력
a = "{:d}".format(23) # 정수
b = "{:5d}".format(23) # 정수
c = "{:05d}".format(23) # 자리수 & 남은 자리를 빈칸으로 체움
d = "{:05d}".format(-23) # 자리수 & -기호 빼고 남은 자리를 빈칸으로 채움
print(a); print(b); print(c); print(d)
---------------------------------------------------
23
23
00023
-0023
- { +d} ⇒ d 앞에 + 기호와 함께 사용하면 양수는 + 기호를 붙여서 출력, 음수는 - 기호와 함께 출력
- { :d} ⇒ d 앞에 빈 칸과 함께 사용하면 양수는 + 기호 대신 공백으로 출력, 음수는 - 기호와 함께 출력
a = "{:+d}".format(23) # 양수 기호와 함께 출력
b = "{:+d}".format(-23) # 음수, 무조건 - 기호
c = "{: d}".format(23) # 양수 기호를 생략(빈칸이 있으면..)
d = "{: d}".format(-23) # 음수, 무조건 - 기호
e = "{:d}".format(23)
print(a); print(b); print(c); print(d); print(e)
---------------------------------------------------
+23
-23
23
-23
23
- 정수형 숫자를 문자열로 변환
- {:+숫자d} ⇒ 숫자 바로 앞에 + 기호 출력
- {:=+숫자d} ⇒ 칸 맨 앞에 + 기호 출력
- {:=+숫자d} ⇒ 칸 맨 앞에 + 기호 & 나머지 빈 칸은 0으로 채워 출력
a = "{:+5d}".format(23)
b = "{:+5d}".format(-23)
c = "{:=+d}".format(23)
d = "{:=+d}".format(-23)
e = "{:=+05d}".format(23)
f = "{:=+05d}".format(-23)
print(a); print(b); print(c); print(d); print(e); print(f)
-----------------------------------------------------------
+23
-23
+23
-23
+0023
-0023
- 실수형 숫자를 문자열로 변환
- {:f} ⇒ 실수형 숫자 출력
- {:숫자f} ⇒ 지정한 숫자의 칸에 맞춰 숫자 출력
- {:+숫자f} ⇒ 지정한 숫자의 칸에 맞춰 숫자 출력 & 숫자 바로 앞에 + 출력
- {:+0숫자f} ⇒ 지정한 숫자의 칸에 맞춰 숫자 출력 & 맨 앞에 + & 빈 칸을 0으로 채워 출력
- {:숫자1.숫자2f} ⇒ 지정한 숫자1의 칸에 맞춰 숫자 출력 & 지정한 숫자2에 맞춰 소수점 자리수 채워 출력
a = "{:f}".format(23.45) # 실수
b = "{:15f}".format(23.45) # 자리수 & 남은 자리를 빈칸으로 채움
c = "{:+15f}".format(23.45) # 자리수 & 한자리 + 기호 & 남은 자리를 빈칸으로 채움
d = "{:+015f}".format(-23.45) # 자리수 & 맨 앞에 한자리 - 기호 & 남은 자리를 0으로 채움
print(a); print(b); print(c); print(d)
-----------------------------------------------------------------
23.450000
23.450000
+23.450000
-0000023.450000
a = "{:15.3f}".format(23.456)
b = "{:15.2f}".format(23.456)
c = "{:15.1f}".format(23.456) # 5보다 크면 올림
print(a); print(b); print(c)
---------------------------------------------------------------------
23.456
23.46
23.5
- 의미 없는 소수점 제거
- {:g} : 숫자 끝에 붙어 있는 0과 같은 소수점 제거하여 출력
a = "{:g}".format(23.450)
b = "{:g}".format(23.40)
c = "{:g}".format(23.0)
print(a); print(b); print(c)
---------------------------------------------------------------------
23.45
23.4
23
대소문자로 바꾸는 함수
- upper( ) : 문자열의 알파벳을 대문자로 변경
- lower( ) : 문자열의 알파벳을 소문자로 변경
# 대문자로 변경
string = "hello"
string.upper()
# 소문자로 변경
string = "HELLO"
string.lower()
문자열 공백 제거 함수
- strip( ) : 문자열의 앞 뒤에 있는 공백 제거 = 왼쪽 & 오른쪽
- lstrip( ) : 문자열의 앞에 있는 공백 제거 = 왼쪽
- rstrip( ) : 문자열의 뒤에 있는 공백 제거 = 오른쪽
# 양쪽 = both = left & right = 앞 & 뒤
string = " 안녕 "
string.strip()
# 왼쪽 = left = 앞
string.lstrip()
# 오른쪽 = right = 뒤
string.rstrip()
문자열 구성 확인 함수
- isupper( ) : 대문자인지
- islower( ) : 소문자인지
- isalnum( ) : 알파벳 또는 숫자로 구성되었는지
- isalpha( ) : 알파벳으로 구성되었는지
- isdecimal( ) : 정수형인지
- isdigit( ) : 숫자로 인식될 수 있는지
- isidentifier( ) : 식별자로 사용될 수 있는지
- isspace( ) : 공백으로 구성되었는지
s = "slamdunk01"
s.isalnum()
----------------------------------------------------
True
문자열을 찾아주는 함수
- find( ) : 왼쪽부터 오른쪽으로 찾아서 첫 번째 위치 반환
- rfind( ) : 오른쪽부터 왼쪽으로 찾아서 첫 번째 위치 반환
# 좌 -> 우
s = "slamdunk01"
s.find('dunk')
-----------------------------------------------------
4
# 우 -> 좌
s = "slamslam"
s.rfind("a")
------------------------------------------------------
6
s.find("a")
------------------------------------------------------
2
in 연산자
- 문자 in 문자열
- 문자열 안에서 특정 문자가 있는지 확인할 때
- 결과는 True/False 형태로 반환
print("안녕" in "안녕하세요")
----------------------------------------------------------
True
문자열을 특정 문자로 자르는 함수
- split( )
- 문자열을 특정 문자열로 잘라서 리스트로 반환
- 리스트는 [ ]
cp = "010-1234-5678"
cp.split("-")
----------------------------------------------------------
['010', '1234', '5678']
7. 조건문
- 조건에 따라 코드 실행하거나 실행하지 않게 할 때 사용하는 구문
- 사용방법 ⇒ if 조건문:
- 조건문이 참일 때 실행할 문장
# 조건문 if문
# 조건이 1개 & 조건 만족할 때 명령어 실행
number = int(input("정수를 입력하세요> "))
if number > 0 :
print("입력한 정수값은 양수입니다")
if number == 0 :
print("입력한 정수값은 0입니다")
if number < 0 :
print("입력한 정수값은 음수입니다")
날짜, 시간 활용
- 모듈 datetime 필요
- 현재 날짜, 시간 출력
- datetime.datetime.now()
- year
- month
- day
- hour
- minute
- second
- weekday( ) : 요일 출력 함수
print(now)
print(now.year)
print(now.month)
print(now.day)
print(now.hour)
print(now.minute)
print(now.second)
print(now.weekday())
# 0: 월 / 1: 화 / 2: 수 / 3: 목 / 4: 금 / 5: 토 / 6: 일
---------------------------------------------------------------
2023-05-12 05:24:59.577634
2023
5
12
5
24
59
4
import datetime
now = datetime.datetime.now()
"{}년 {}월 {}일 {}시 {}분 {}초입니다.".format(now, now.year, now.month, now.day
, now.hour, now.minute, now.second)
---------------------------------------------------------------
2023년 5월 12일 5시 25분 45초입니다.
# 계절을 알려주는 프로그램
import datetime
now = datetime.datetime.now()
if 3 <= now.month <= 5 :
print("봄")
if 6 <= now.month <= 8 :
print("여름")
if 9 <= now.month <= 11 :
print("가을")
if now.month == 12 or 1 <= now.month <= 2 :
print("겨울")
# 오전 오후를 구별하는 프로그램
import datetime
now = datetime.datetime.now()
kor_hour = now.hour + 9
if now.hour < 12 :
print("현재 오전 {}시 입니다. ㅠㅠ".format(kor_hour))
if now.hour >= 12 :
print("현재 오후 {}시 입니다. ^^".format(kor_hour))
------------------------------------------------------
현재 오전 14시 입니다. ㅠㅠ
# 짝수, 홀수 구분하는 프로그램
no = input("숫자(정수)를 입력하세요> ")
last_no = int(no[-1])
if last_no == 0 or last_no == 2 or last_no == 4 or last_no == 6 or last_no == 8:
print("현재 입력한 숫자는 짝수입니다.")
if last_no == 1 or last_no == 3 or last_no == 5 or last_no == 7 or last_no == 9:
print("현재 입력한 숫자는 홀수입니다.")
no = input("숫자(정수)를 입력하세요> ")
last_no = int(no[-1])
if last_no % 2 == 0:
print("현재 입력한 숫자는 짝수입니다.")
if last_no % 2 == 1:
print("현재 입력한 숫자는 홀수입니다.")
no = input("숫자(정수)를 입력하세요> ")
last_no = no[-1]
if last_no in "02468":
print("현재 입력한 숫자는 짝수입니다.")
if last_no in "13579":
print("현재 입력한 숫자는 홀수입니다.")
------------------------------------------------------------------------
숫자(정수)를 입력하세요> 10
현재 입력한 숫자는 짝수입니다.
조건문 if 매개변수
- 조건문 매개변수에서 bool이 아닌 다른 값이 오는 경우
- 조건이 아닌 값을 입력
- False로 변환되는 값 3가지
- None, 0, 비어 있는 자료나 자료구조
- 나머지 True
if None:
print("None 값은 현재 True입니다.")
else:
print("None 값은 현재 False입니다.")
------------------------------------------
None 값은 현재 False입니다.
if 0:
print("0 값은 현재 True입니다.")
else:
print("0 값은 현재 False입니다.")
------------------------------------------
0 값은 현재 False입니다.
if 3:
print("3 값은 현재 True입니다.")
else:
print("3 값은 현재 False입니다.")
------------------------------------------
3 값은 현재 True입니다.
Pass 키워드
- 에러가 발생하지 않도록 아무것도 하지 않고 지나가라는 의미로 pass 사용
- raiseNotImplementedError = 아직 구현되지 않음
8. 반복문
리스트
- 여러 가지 자료를 저장할 수 있는 자료
- 자료들을 모아서 사용 가능
- 대괄호 내부에 자료들을 넣어 선언
- 리스트 생성
- 대괄호 안에 개별 값, 쉼표로 구분하여 저장
- 개별 값들을 ‘요소’라고 부름
- 값은 숫자, 문자열, 불 등 여러 자료형으로 구성 가능
- 리스트 이름[ ]
- 제로 인덱스를 사용하기 때문에 0부터 시작
- 음수를 이용하여 뒤에서도 선택 가능
- 대괄호를 이중으로 사용 가능(리스트 안의 리스트)
- 리스트 내부 요소 변경 가능( 튜플은 변경 불가능 )
# 리스트 안의 리스트 접근
list_a[0][2]
---------------------------------------------------
3
슬라이싱
# 인덱스 범위
# 끝번호 포함하지 않음
print(list_a[0:2])
print(list_a[0:1 + 1])
----------------------------------------------------
[[1, 2, 3, 4], '안녕하세요']
[[1, 2, 3, 4], '안녕하세요']
# 시작번호 생략 = 처음부터~
print(list_a[:2])
print(list_a[:1 + 1])
-----------------------------------------------------
[[1, 2, 3, 4], '안녕하세요']
[[1, 2, 3, 4], '안녕하세요']
# 끝번호 생략 = ~끝까지
print(list_a[1:])
-----------------------------------------------------
['안녕하세요', True]