레쭈고 파이썬

파이썬 2장 - 2

정땅미 2024. 2. 22. 00:34

지금부터 2장 2차시 정리를 시작하겠도다. 크하하

 

우선 문자열 포매팅 먼저 알아보겠습니닷. 문자열 포매팅이란 무엇일까용?

정답은 문자열 안의 특정한 값을 바꿔야 할 경우 이것을 가능하게 해주는 것이 문자열 포매팅입니당^^

문자열 포매팅의 사용 방법에 대해 알아보겠습니당.

"I eat %d apples." %3 

이렇게 작성을 해주면 I eat 3 apples 이렇게 나옵니다. 이 때 %d를 문자열 포맷 코드라고 부릅니다아.

문자열을 넣을 때는 %d 대신 %s를 이용하고 % "원하는 문자열" 이런 식으로 작성해 주면 됩니다. 

또 다른 방법이 있어용

number = 3

"I eat %d apples." % number 이렇게 작성을 해주면 똑같이 3이 대입돼서 나와용

두 개 이상의 값을 넣고 싶을 때는

number = 10

day = "three"

"I ate %d apples. so I was sick for %s days." % (number, day) 이렇게 작성해 주면 10과 three가 올바른 곳에 들어갑니당.

문자열 포맷 코드는 하면서 알아보도록 하구 %s 포맷 코드는 정말 재밌어서 부가 설명을 하겠습니다. 

%s는 문자열을 넣어주는 포맷 코드이지만 정수를 넣어도 문자열로 바꿔 대입하기 때문에 사용해도 됩니당*_*

그리고 % 라는 문자를 사용하고 싶을 때는 

"Error is %d%%." % 98 이런 식으로 꼭 %를 두 개 사용해 줘야 %가 출력된다!

포맷 코드와 숫자를 함께 사용하기 위한 방법을 알아봅시닷.

"%10s" % "hi" 이 문장을 입력하게 되면 hi가 오른쪽 정렬이 되어서 출력됩니당~!

왜냐하면 %10s는 전체 길이가 10개인 문자열 공간에서 대입되는 값을 오른쪽으로 정렬하고 그 앞은 공백으로 남겨 두라는 의미이기 때문이죠!

그렇다면 왼쪽 정렬은 무엇일까요? 바로 "%-10s" % "hi" 이렇게 -(빼기) 기호를 붙여주면 왼쪽으로 정렬됩니다.

다음으로는 소수점을 표현하려면 어떻게 해야 할까요?

"%0.4f" %3.42134234 이렇게 작성을 해주면 3.4213 이렇게 출력됩니다. 

왜냐하면 0.4f 라는 의미가 소수점 네 자리 까지 출력하라는 의미이기 때문이죠! 

"%10.4f" %3.42134234 이렇게 작성해 주면 이것도 전체 길이는 10이고 오른쪽 정렬에 소수점 네 번째 자리까지만 보여줍니다!

 

format 함수를 사용한 포매팅에 대해 알아볼까용? 

format 함수를 사용해서 문장을 작성해 보겠습니당=

"I eat {0} apples".format(3) 이렇게 작성을 해주면 {0} 부분이 3으로 바뀝니다.

문자열을 대입할 때는 .format("five") 이렇게 작성을 해주면 됩니다ㅎㅎ

number = 3

"I eat {0} apples".format(number) 이 방법으로 해도 가능합니다! 두 개 이상의 값을 넣을 때는

number = 10

day = "three"

"I ate {0} apples. so I was sick for {1} days." .format(number, day) 이렇게 작성을 해주면 됩니다. {0} 이 안에 들어가는 숫자는 인덱스 번호 같아용!@!

이름으로 넣는 방법도 존재합니다. 

"I ate {number} apples. so I was sick for {day} days." .format(number=10, day=3) 이렇게 작성을 해도 값은 잘 나와용!

인덱스와 이름을 혼용해서 넣어두 됩니다. 

"I ate {0} apples. so I was sick for {day} days." .format(10, day=3) 이렇게 말이죠! 하지만 저는 굳이 복잡하게 이렇게 쓸 것 같진 않네용.... 

이 때 왼쪽 정렬 방법은 "{0:<10}".format("hi") 이렇게 작성한다구 해용

이렇게 하면 문자열을 왼쪽으로 정렬하고 문자열의 총 자릿수를 10으로 맞출 수 있다고 합니닷!

오른쪽으로 정렬하는 방법은 그냥 :< 이 우울한 것만 같은 표정을 :> 웃게 만들어주면 돼용

가운데 정렬은 그냥 저 둘 딱 가운데인 :^ 이렇게 약간 뾰루퉁한 입술을 사용해 주면 되겠네요!!

만약에 저런 식으로 정렬을 했는데 빈칸을 채우고 싶다면 "{0:=^10}".format("hi") 이런 식으로 제가 말한 표정들 사이에 문자를 넣어주면 된대요!!!!!!

소수점을 표현하려면 어떻게 해야 할까여?

y = 3.42139594

"{0:0.4f}".format(y) 이렇게 써주면 소수점 네 자리까지 출력한대용

"{0:10.4f}".format(y) 0을 10으로 바꿔주게 되면 또 오른쪽 정렬이 돼요!!!

문자를 표현하기 위해서는 "{{ and }}".format() 이렇게 작성해 주면 {and} 가 나와여 ㅎㅎ

파이썬 3.6 버전부터는 f 문자열 포매팅 기능을 사용할 수 있다고 하는데요?! 제가 보여드릴게용

name = "홍길동"

age = 30

f'나의 이름은 {name}입니다. 나이는 {age}입니다.' 이렇게 작성을 하면 name과 age에 원하는 값이 들어가 출력된대용!

또 이렇게도 작성이 가능합니닷

age = 30

f'나는 내년이면 {age + 1}살이 된다.' 이렇게 하면 더하기도 수행해서 출력이 돼요!!!!!

d = {'name': '홍길동', 'age':30}

f'나의 이름은 {d["name"]}입니다. 나이는 {d["age"]}입니다.' 하면 맞게 출력돼용!

정렬하는 법도 알아볼게여

f'{hi":<10}' 이런 식으로 표정만 바꾸면 왼, 오, 가운데 정렬 다 수행할 수 있어요!

공백 채우기도 똑같아용 f'{"hi":=^10}' 이렇게 해서 또 왼, 오, 가운데랑 채우고 싶은 문자 기호만 바꿔주면 돼용

소수점두

y=3.4213123

f'{y:0.4f}' 이런 식으로 작성하면 가능하구 자릿수 맞추는 건 0.4 앞의 숫자를 변경해 주면 돼용

문자를 두 개 표시하려면 f'{{ and }}' 이렇게 해주면 돼요!!!!!!!!!!!!!!!!!

 

자아 2차시의 마지막으로 문자열 관련 함수들에 대해 알아보겠습니당.

이 함수들은 다른 말로 문자열 내장 함수 라고도 불린대용 그럼 하나하나 씩 알아보겠어요^&^

우선 count 함수 

a = "hobby" 

a.count('b') 이렇게 작성을 하면 hobby에서 b의 개수를 리턴해 줘용

다음은 위치를 알려주는 find와 index함수

a = "Python is the best choice"

a.find('b') 이렇게 작성을 해주면 문자열에서 b가 처음 나온 위치의 인덱스 번호를 알려줘용 

만약 찾는 문자나 문자열이 존재하지 않는다면 -1을 반환해 주죠

a = "Life is too short"

a.index('t') 이렇게 작성을 해주면 index 함수도 똑같이 t가 처음 나온 위치의 인덱스 번호를 알려줘용

하지만 find와의 차이점은 만약 찾는 문자나 문자열이 존재하지 않는다면 오류가 발생한다는 것이죠!

때에 따라 두 함수를 잘 사용하는 것이 좋습니닷

다음 함수는 join 함수!-!

",".join('abcd') 이렇게 작성을 해주면 알파벳 중간중간에 ,가 껴서 나옵니다!

다음은 upper와 lower 함수입니닷

a = "hi"

a.upper() 을 해주면 hi가 HI 이렇게 대문자가 돼서 출력돼용 만약 문자열이 이미 대문자라면 아무 현상도 일어나지 않아요!

소문자는 반대로 해주면 되겠죠?

공백을 지우는 함수는 lstrip, rstrip, strip 입니다. 처음부터 왼쪽, 오른쪽, 양쪽 공백을 지워주는 함수예요

a =  " hi "

a.lstrip() 이런 식으로 작성하면 왼쪽 공백이 제거돼서 나와용 오른쪽과 양쪽 공백도 똑같이 해주면 됩니다.

이때 strip의 l과 r은 left와 right에서 따온 거라구 하네요!

문자열을 바꾸기 위해서는 replace 함수를 사용해 줘요

a = "Life is too short"

a.replace("Life", "Your leg") 이렇게 바뀔 문자열, 바꿀 문자열을 순서대로 나열해 주면 돼요!

마지막 함수로는 문자열을 나누는 split 함수예용

a = "Life is too short"

a.split() 이것은 공백을 기준으로 문자열을 나눈다는 뜻

b = "a:b:c:d"

b.split(':') 이렇게 작성을 해주면 :을 기준으로 문자열을 나누겠다는 뜻이에용!!!

 

이렇게 2장의 2차시가 마무리 되었는데 은근 똑같은 내용이 많이 반복되고 다들 비슷하다고 느끼셨을 거예요!

저도 한 번 공부했던 부분을 다시 읽으면서 작성을 하다 보니 기억이 더 잘 나고.. 머랄까 좀 더 익숙해진 기분이네용

제 블로그는 가독성이 아주아주 떨어져요.. 저만 알아먹을 수 있겠죠?! 헤헷.. 그럼 오늘도 좋은 하루 되세용

저는 50분 동안 블로그 써서 힘들어요!!!! 다들 팟팅

'레쭈고 파이썬' 카테고리의 다른 글

파이썬 2장 - 5  (1) 2024.02.28
파이썬 2장 - 4  (1) 2024.02.26
파이썬 2장 - 3  (1) 2024.02.24
파이썬 2장 - 1  (0) 2024.02.21
파이썬 1장  (2) 2024.02.21