본문 바로가기

나 취준생/파이썬

파이썬 문자열 관련 함수들

320x100

# 문자열에서 특정 위치의 문자 얻기


인덱스는 0부터 시작한다.

파이썬 인덱스는 음수도 가능하다.


print('scott'[0]) # s

print('scott'[2]) # o


a='scott'

print(a[0]) # s

print(a[2]) # o



예제 : Pandas를 이용하지 않고 emp2.csv에서 이름만 출력하기



emp2.csv 데이터 확인


1
2
3
4
5
import csv
file = open("c:\\data\\emp2.csv")
emp_csv=csv.reader(file)
for i in emp_csv:
    print(i)





이름만 출력하기


1
2
3
4
5
import csv
file = open("c:\\data\\emp2.csv")
emp_csv=csv.reader(file)
for i in emp_csv:
    print(i[1])







예제 : 이름의 첫번째 철자만 출력하기


1
2
3
4
5
import csv
file = open("c:\\data\\emp2.csv")
emp_csv=csv.reader(file)
for i in emp_csv:
    print(i[1][0])






# 문자열에서 지정된 구간의 문자 얻기


문자열에서  특정 구간에 있는 문자열을 얻으려면 슬라이싱을 이용한다.


a='scott'

print(a[0:2]) # sc

print(a[3:]) # tt


예제 : Pandas를 이용하지 않고 사원의 이름(1~3번째 철자를 출력)


SQL > select ename, substr(ename,1,3)

from emp;


1
2
3
4
5
import csv
file = open("c:\\data\\emp2.csv")
emp_csv=csv.reader(file)
for i in emp_csv:
    print(i[1][0:3])




** 오라클과 파이썬의 문자열 번호는 다르니 유의하자




# 문자열에서 홀수 번째 문자만 추출하기


주어진 문자열에서 홀수 번째 문자만 추출하는 방법은

슬라이싱의 스텝을 이용하면 된다.


txt='aAbBcCdDeEfFgGhH'

result=txt[0:] # 첫번째부터 문자 끝까지 출력

result2=txt[0::2] # 첫번째부터 문자 끝까지 2n번째 자리 출력




# 슬라이싱을 이용한 문자열 뒤집기


txt='aAbBcCdDeEfFgGhH'

result=txt[::] # 문자열 전체

print(result)

result=txt[::-1] # 문자열 전체를 반대로

print(result)



예제 : emp2.csv 파일의 사원의 이름을 거꾸로 출력하기


1
2
3
4
5
import csv
file = open("c:\\data\\emp2.csv")
emp_csv=csv.reader(file)
for i in emp_csv:
    print(i[1][::-1])





# 문자열 합치기


두 개의 문자열을 합치는 방법은 매우 간단하다.

문자열1 + 문자열2 + 문자열3 처럼 + 연산자를 이용하기만 하면 된다.


a= 'scott'

b= 'king'

print(a+b) # scottking


+ 연산자를 사용해서 이렇게 원하는 문장으로 출력할 수 있다.


1
2
3
4
5
import csv
file = open("c:\\data\\emp2.csv")
emp_csv=csv.reader(file)
for i in emp_csv:
    print(i[1+ '의 월급은 ' + i[5+ '원 입니다')





# 문자열 반복해서 새로운 문자열로 만들기


print('Python '*3) # Python Python Python


1
2
for i in range(1,10):
    print(str(i)*i)





예제 : 사각형 만들기

1
2
3
4
5
x=int(input('가로의 숫자를 입력하세요~ '))
y=int(input('세로의 숫자를 입력하세요~ '))
 
for i in range(y):
    print('*'*x)





# 문자열에서 특정 문자가 있는지 확인하기 ( in )



1
2
3
4
5
6
txt='abcdefghijklmnopqr'
 
if 'ijk' in txt:
    print('존재합니다')
else:
    print('없습니다')





예제 : emp2.csv 파일의 사원의 이름에 s가 포함된 사원의 이름을 출력하기


SQL > select ename

from emp

where ename like '%S%';


1
2
3
4
5
6
import csv
file = open("c:\\data\\emp2.csv")
emp_csv=csv.reader(file)
for i in emp_csv:
    if 's' in i[1].lower():
        print(i[1])





예제 2-1 : 긍정단어 txt 읽어서 출력해보기


1
2
3
positive=open("c:\\data\\positive-words.txt",encoding='UTF-8')
pos=positive.read()
print(pos)



예제 2-2 : 스티브 잡스 연설문을 읽어서 긍정단어가 몇 개 들어있는지 확인하기


1
2
3
4
5
6
7
8
9
positive = open('c:\\data\\positive-words.txt',encoding='UTF-8')
pos = positive.read().split()
stev = open('c:\\data\\jobs.txt',encoding='UTF-8')
stev2 = stev.read().split()
cnt = 0
for i in stev2:
    if i.lower() in pos:
        cnt += 1
print(cnt)







# 문자열 길이 구하기 ( len )


a='scott'

print(len(a)) # 5


예제 : emp2.csv 파일 안의 사원의 이름, 이름의 길이를 출력하기


1
2
3
4
5
import csv
file = open("c:\\data\\emp2.csv")
emp_csv=csv.reader(file)
for i in emp_csv:
    print(i[1],len(i[1]))





# 문자열이 문자인지 검사하기


문자열은 문자나 숫자, 기호들로 구성이 된다.

코드를 작성하다 보면 특정 문자열이 한글이나 알파벳과 같이

사람의 언어를 표현하기 위해 사용되는 문자로만 구성되어 있는지 확인해야하는 경우가 있다.

파이썬 문자열 객체가 제공하는 메소드인 isalpha() 는 문자열이 사람의 언어 문자로만 구성되어 있는지 확인해준다.


-----------------------------------

* isalpha() -> 알파벳(한글) 확인

* isdigit() -> 숫자 확인

* isspace() -> 공백 확인

* isalnum() -> 알파벳(한글) or 숫자 확인

-----------------------------------


t1='Warcarft three'

t2='안녕'

t3='3PO'

print(txt1.isalpha())  # False ( 공백 )

print(txt2.isalpha())  # True -> 한글도 가능

print(txt3.isalpha())  # False ( 숫자 )


예제 : 잡스 연설문에서 알파벳이 몇 개인지 확인하기


1
2
3
4
5
6
7
stev = open("c:\\data\\jobs.txt",encoding='UTF-8')
stev2 = stev.read().split('\n')
cnt=0
for i in stev2:
    for j in i:
        cnt+=j.isalpha()
print(cnt)





일단 split으로 \n을 기준으로 나눠서 즉 한 행씩 stev2에 리스트로 저장한다.

그럼 각 한 행들은 for 문에서 i가 되고

j는 한 행 속에 들어있는 문자를 의미한다.

이게 알파벳이면 isalpha()에서 1이 되고, 특수문자나 숫자면 0이 되어 cnt에 더해진다.

최종적으로 cnt는 jobs txt 파일속의 알파벳 수가 된다.




# 문자열을 대문자, 소문자로 변환하는 함수 ( lower, upper )


1
2
3
4
5
6
7
import csv
file=open("c:\\data\\emp2.csv")
emp_csv=csv.reader(file)
name=input('이름을 입력하세요~ ')
for i in emp_csv:
    if i[1].lower()==name:
        print(i[1],i[5])





# 문자열에서 좌우 공백 제거하기 ( lstrip, rstrip, strip )


함수                            설명

lstrip        문자열에서 존재하는 왼쪽 공백 제거

rstrip        문자열에서 존재하는 오른쪽 공백 제거

strip        문자열에서 존재하는 양쪽 공백 제거


예제 :

txt7 = '               양쪽에 공백이 있는 문자열입니다                 '

print(txt7.lstrip())

print(txt7.rstrip())

print(txt7.strip())





# 문자열 내의 특정 문자 개수 구하기 ( count )


txt = 'A lot of things occur each day. Today is beautiful day!'


print(txt.count('day')) # txt에서 day 단어의 건수를 확인



예제 : 한 연설문에서 '국민'이 몇 번 나왔는지 출력하기


1
2
3
ahn=open('c:\\data\\ahn.txt',encoding='UTF-8')
ahn2=ahn.read()
print(ahn2.count('국민'))




반응형