■ 93. 문자열을 특정 문자(열)로 분리하기(split)
예제:
url='http://www.naver.com/news/today=20181205'
log='name:홍길동 age:17 sex:남자 nation:조선'
result=url.split('/')
print(result)
문제283.
아래의 로그변수를 이용해서 아래의 결과를 출력하시오
log='name:홍길동 age:17 sex:남자 nation:조선'
log='name:홍길동 age:17 sex:남자 nation:조선'
a=log.split(' ')
for i in a:
a,b=i.split(':') #하나의 문자열에서 ':' 기준으로 a,b로 나눔
print(a,'-->',b)
|| replace 이용 방법
log='name:홍길동 age:17 sex:남자 nation:조선'
a=log.split(' ')
for i in a:
print(i.replace(':', '-->'))
■ 94. 문자열을 특정 문자(열)로 결합하기 (join)
예제:
loglist=['2018/12/05', '200', 'ok', '이 또한 지나가리라']
bond=':'
log = bond.join(loglist) #지정값(bond)을 지정 리스트 각 값에 결합
print(log)
■ 95. 문자열에서 특정문자(열)을 다른 문자(열)로 바꾸기(replace)
예제:
txt='My password is 1234'
result1=txt.replace('1','0') #자릿수 아니고 직접 문자 지정!
print(result1)
문제284.
split 이용하지 말고 가급적 replace 를 이용해서
log 리스트에서 아래의 결과를 출력하시오
log='name:홍길동 age:17 sex:남자 nation:조선'
log='name:홍길동 age:17 sex:남자 nation:조선'
a=log.split(' ')
for i in a:
print(i.replace(':','-->'))
■ 96. 문자열을 바이트 객체로 바꾸기(encode)
문자->바이트
f=open('d:\\ladybug3.txt','r',encoding='UTF-8')
*인코딩이란?
"인코딩이란 사람이 인지할 수 있는 형태의 데이터를
약속된 규칙에 의해 컴퓨터가 사용하는 0과 1로 변환하는
과정을 말한다"
컴퓨터의 발명, 발전이 미국의 학계와 기업을 중심으로
이루어지다보니
문자집합도 미국을 기준으로 재정되었다.
미국에서 재정된 ASCII(미국 정보 교화 표준 부호) 는
1960년대 재정된 문자집합으로 이후 개발 된 문자집합의 토대를
이루고 있다.
ASCII 는 7비트 만을 이용해서 음이 아닌 수(0~127) 의
문자집합내의 문자를 할당한 약속이다.
예: 숫자 65는 'A', 97은 'a'를 할당했다.
u_txt='A'
b_txt=u_txt.encode()
print(u_txt)
print(b_txt[0])
[0] 지우면
b'A' 로 출력.
이 아스키 코드표로 미국 엔지니어들은 행복하게 살아가고 있었지만
다른 나라 사람들은 그러하지 못했다.
1. 서유럽
독일어의 움라우트, 스페인어의 물결표, 터키어의 시딜러,
프랑스어의 악센트는 7비트로 표현하지 못했다.
그래서 미국 표준을 보완한 새로운 국제표준이 등장했다.
미국 표준인 0~127 영역은 그대로 유지하고 128~255 영역에
서유럽어에서 필요한 문자를 추가했다.
128(2의7승) 에 256(2의8승) 인 8비트로 표현하는 문자집합을
추가해서 서유럽어는 컴퓨터로 구현가능하게 했다.
2. 아시아
아시아에서는 한자, 일본어, 한글이 8비트에 들어맞지 않았다.
아시아를 위해서 더블캐릭터 셋 16비트로 된 문자집합을 제공해서
해결했다. 65,536(2의 16승)개의 문자를 할당할 수 있다.
EUC-KR, CP949 가 여기에 해당된다.
그런데
갑자기
크게 두가지 문제가 발생했다.
1. 포스코 더 샾 아파트
insert into emp(empno,ename,address)
values (1111, '김인후', '포스코더샆');
select * from emp;
1111, 김인호, 포스코더? --->"샾"을 ? 로 나타냄
2. EUC-KR 를 지원하는 일본어용 소프트웨어를
한글 윈도우에서 실행하면 텍스트 깨진다.
이 문제를 해결하기 위해서 나온게 바로 유니코드 이다 !!!!
UTF-7, UTF-8, UTF-6, UTF-32
이 중에 UTF-8 을 가장 많이 사용한다.
■ 97. 바이트 객체를 문자열로 바꾸기(decode)
바이트->문자
예제:
u_txt='A'
b_txt=u_txt.encode()
print(u_txt)
print(b_txt[0])
c_txt=b_txt.decode()
print(c_txt)
c결과: a
※설명:
encoding: 사람이 알아볼 수 있는 언어 ---> 컴퓨터가 알아 볼 수 있는
숫자로 변경(숫자화)
decoding: 컴퓨터가 알아볼 수 있는 언어--->사람이 알아볼 수 있는
문자로 변경(문자화)
문제285.
ascii 코드표를 파이썬으로 출력하시오
65 ---> A
: :
: :
127--> ㅁ
for i in range(65,127+1):
print(i,'-->',chr(i)) #chr 은 아스키코드 65~127번의 문자화시키는 함수
다른방법
참고:
u_txt='a'
b_txt=u_txt.encode() #문자a에 encode 해주고 변수따로 담아주면
print(u_txt)
print(b_txt[0]) #숫자출력
c_txt=b_txt.decode()
print(c_txt)
위의 것을 이용해서
alpha = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'
for i in range(len(alpha)):
a_txt = alpha[i].encode()
print (a_txt[0], '-->',alpha[i])
'python' 카테고리의 다른 글
23. 리스트(range, copy, index, reverse, append, insert, del, remove, len, count, del, sort, shuffle, enumerate, all, any) (0) | 2019.03.26 |
---|---|
22. 버블정렬 (0) | 2019.03.26 |
20. 재귀알고리즘(구구단, 별, 팩토리얼, 최대공약수) (0) | 2019.03.26 |
19. 대소문자 변환, 공백제거(upper, lower, lstrip, rstrip) (0) | 2019.03.26 |
18. isalpha, isdigit, 특수문자 (0) | 2019.03.25 |