본문 바로가기
Python/개념익히기

숫자와 문자열

by ADELA_J 2023. 3. 21.

A. format() : 숫자를 문자열로 변환하는 몇 가지 형태 중 하나

     a. { } 중괄호를 포함한 문자열 뒤에 마침표를 찍고, 함수를 적는데 함수 괄호 안 매개변수 개수는 반드시 같거나 많게

     ▶아래와 같은 모양

"{}".format(10)
"{} {}".format(10, 20)
"{} {} {} {} {}".format(101, 202, 303, 404, 505)

     ▶example 

#format() 함수로 숫자를 문자열로 변환하기
string_a = "{}".format(10)

#출력하기
print(string_a)
print(type(string_a))

     b. { } 기호 옆, 앞뒤로 다른 문자열을 넣을 수 있다.

     c. 매개변수를 여러개넣으면 차레대로 해당 위치에 대치된다.

        //인덱스를 설정해주면 원하는 위치에 가능

     d. 숫자 이외의 자료형에도 적용할 수 있다.

       ※IndexError : {}기호의 개수가 format()함수의 매개변수 개수보다 많으면 발생함. ▶ 적을때는 괜춘

#format() 함수로 숫자를 문자열로 변환하기
format_a = "{}만원".format(5000)
format_b = "파이썬 열공하여 첫 연봉 {}만원 만들기".format(5000)
format_c = "{} {} {}".format(3000,4000,5000)
format_d = "{} {} {}".format(1, "문자열", True)

#출력하기
print(format_a)
print(format_b)
print(format_c)
print(format_d)

B-1. format()을 사용해 출력할 정수의 다양한 형태

     b-1-1. 특정 칸에 출력하기

       ▶{:d} : 매개변수로 정수만 올 수 있음.

        decimal(소수라는 뜻도 있던데 여기서는 십진법으로 이해하자..)

       ▶{:5d} : 5칸을 빈칸으로 잡고 뒤에서부터 숫자를 채우는 것.

          숫자 자리에는 칸 자리 수에 따라 달라짐 ex.{:8d}                     

       ▶{:05d} : b.처럼 빈칸을 잡고 숫자를 채운 뒤 나머지 빈 곳은 '0'으로 채워줌

 

#정수
output_a = "{:d}".format(31)

#특정 칸에 출력하기
output_b = "{:5d}".format(31)    #5칸
output_c = "{:10d}".format(31)	 #10칸

#빈칸을 0으로 채우기
output_d = "{:05d}".format(31)	 #양수
output_e = "{:05d}".format(-31)	 #음수

print(output_a)
print(output_b)
print(output_c)
print(output_d)
print(output_e)

     b-1-2. 기호 붙여 출력하기

       ▶b-1-1.에서 d 앞부분에 +기호 또는 공백을 붙이면 양수와 음수 기호 표현 가능

output_f = "{:+d}".format(52)	#양수
output_g = "{:+d}".format(-52)	#음수
output_h = "{: d}".format(52)	#양수: 기호 부분 공백
output_i = "{: d}".format(-52)	#음수: 기호 부분 공백

print(output_f)
print(output_g)
print(output_h)
print(output_i)

     b-1-3. 기호와 공백을 조합할 때는 '='기호를 앞에 붙일 수 있음

       ▶ 조합 순서 중요. ex.{:=+05d}를 {:=0+5d} 이렇게 쓰면 오류나거나 다른 결과가 나올 수 있음.

output_h = "{:+5d}".format(52)		#기호를 뒤로 밀기 : 양수
output_i = "{:+5d}".format(-52)		#기호를 뒤로 밀기 : 음수
output_j = "{:=+5d}".format(52)		#기호를 앞으로 밀기 : 양수
output_k = "{:=+5d}".format(-52)	#기호를 앞으로 밀기 : 음수
output_l = "{:+05d}".format(52)		#0으로 채우기 : 양수
output_m = "{:+05d}".format(-52)	#0으로 채우기 : 음수

print(output_h)
print(output_i)
print(output_j)
print(output_k)
print(output_l)
print(output_m)

  C. 부동 소수점 출력 : {:f}

output_a = "{:f}".format(52.273)
output_b = "{:15f}".format(52.273)		#15칸만들기
output_c = "{:+15f}".format(52.273)		#15칸만들고 부호 추가하기
output_d = "{:+015f}".format(52.273)	#15칸에 부호 추가하고 0으로 채우기

print(output_a)
print(output_b)
print(output_c)
print(output_d)

#소수점 아래 자리수 지정
print("소수점 아래 자리수 지정 -----")
output_aa = "{:15.3f}".format(52.273)
output_ab = "{:15.2f}".format(52.273)
output_ac = "{:15.1f}".format(52.273)

print(output_aa)
print(output_ab)
print(output_ac)

      ** 보니까 어렵게 생각할 필요 없을 듯. 정수는 decimal이니까 'd' 부동 소수점은 float이니까 'f',

          그리고 그 앞에 숫자는 자리 수, 부호 추가하고 싶으면 '+', 0도 함께 하고 싶으면 '0'. 이거를 토대로 조합하기 나름

 

     c. {:g} : 의미 없는 소수점 제거하기. floa 자료형이지만 정수처럼 0을 제거하고 싶을때

output_a = 52.0
output_b = "{:g}".format(output_a)
print(output_a)
print(output_b)

  D. upper() : 문자열의 알파벳을 대문자로 /  lower() : 문자의 알파벳을 소문자로

      * 함수를 사용하면서 문자열이 바뀌면 파괴될거라고 생각하지만 해당 함수의 원본은 바뀌지 않음.

       원래 있던거에서 덮어씌우면 파괴적이지만, 그래서 파괴안하려고 '변수'를 사용함.

 

  E. strip() : 문자열 공백 제거

      e-1. lstrip() : left 문자열 왼쪽의 공백 제거(연결되어있는 윗줄 공백까지 제거되더라)

      e-2. rstrip() : right. 문자열 오른쪽의 공백 제거(연결되어있는 아랫줄 공백까지 제거되더라)

 

  F. isOO() :  문자열 구성 파악

     ▶ isalnum() / isalpha() / isdentifier() / isdecimal() / isdigit() / isspace() / islower() / isupper() 등등....

     ▶ 출력은 True / False (이거는 불 boolean이라고 부르지)

  G. find() : 특정 문자가 어디에 위치하는지 왼쪽부터 찾음 / rfind() : 오른쪽부터 찾음

     ▶  index number로 알려준다. 

  H. in 연산자 : 문자열 내부에 특정 문자열이 있는지 확인해주는, 출력은 True/False로 나옴

   I. split() : 문자열자르기, 특정한 문자를 기준으로 자를때. 특정한 문자는 삭제됨

 

 

  J. f " { } " : f-문자열. f ' 문자열 {표현식} 문자열 '

 

▶ 종합 example

print("-----확인문제3번")
#p151.  확인문제 3번
a=int(input("> 1번째 숫자 : "))
b=int(input("> 2번째 숫자 : "))
print("{} + {} = {}".format(a,b,a+b))

print()
print("-----확인문제4번")
#p151.  확인문제 4번
string = "hello"

#string.upper()를 실행하고, string 출력하기. 그대로 나올예정
string.upper()
print("A 지점:", string)

#string.upper() 실행하기. 아마 대문자로 변환되어 나올예정
print("B 지점:", string.upper())


print()
print("-----split() 함수 예제 1번")
#2. split() 함수 예제 1번 // 어느 지역 여행이 언급이 되고 있는지
trip = "제주여행강원여행수원여행서울여행인천"
print(trip.split("여행"))

print()
print("-----split() 함수 예제 2번")
#2. split() 함수 예제 2번 // 신규회원 이름 리스트
name = "에이 비 씨 디 이 에프"
print(name.split(" "))


print()
print("-----format() 함수 예제 1번")
#3. format() 함수 예제 1 // 환율 현재와 전일
now = float(1301.2)
before = float(1311.2)
print("""22일 서울외국환중개에 따르면
간밤 뉴욕차액결제선물환(NDF) 시장에서 거래된
원·달러 1개월물은 {}원에 최종 호가됐다.
최근 1개월물 스와프 포인트를 고려하면
이날 환율은 전 거래일 종가({}) 대비
{}원 하락 개장할 것으로 예상된다.""".format(now,before,now-before))

print()
print("-----format() 함수 예제 2번")
#3. format() 함수 예제 2 // 영화평가
star = [5,3,4,1,"X"]
print("""스토리라인 : {}점
영상미 : {}점
연기 : {}점
총별점 : {}점
타인에게 추천할건지 : {} """.format(*star))

print()
print("-----f-문자열 예제 1번")
#4. f-문자열 예제 1번 // 카페 주문받기
drink = "ice latte"
drink_2 = "ice tea"
num = 4
num_2 = 2
print(f"302호에서 {drink} {num}잔, {drink_2} {num_2}잔 총 {num + num_2}잔 주문들어왔습니다")

print()
print("-----f-문자열 예제 2번")
#4. f-문자열 예제 2번 // 홈페이지 회원
base = 123
new = 39
print(f"""기존회원: {base}
신규회원: {new}
총 회원: {base + new}""")

 

'Python > 개념익히기' 카테고리의 다른 글

0324 수업  (0) 2023.03.24
불 자료형과 if 조건문  (0) 2023.03.22
변수와 입력  (0) 2023.03.20
숫자와 연산자  (0) 2023.03.20
문자열과 연산자  (0) 2023.03.20