728x90
- Python 인코딩
- 2.x 버전 - ASCII -> #-*- coding: utf-8 -*- (첫 줄에 명시)
- 3.x 버전 - 유니코드 UTF -8 -> 생략 가능
- 다른 인코딩 방식으로 처리 시 첫 줄에 작성하는 위 항목에 원하는 인코딩 방식을 지정해주면 됨
- 문자열 뒤집기
s = 'Reverse this strings'
0. s = s[::-1]
(s.reverse()는 문자열에서는 동작 안 함 - reverse는 리스트에서 작용)
1. 리스트로 바꾸어 자리 바꾸기
N = len(s)
mid = len(s)//2
# 리스트로 바꾸어 자리 바꾸기
s_lst = list(s)
for i in range(mid):
s_lst[i], s_lst[N-1-i] = s_lst[N-1-i], s_lst[i]
print(''.join(s_lst))
2. 뒷 문자열부터 추가
def myReverse2(strV):
N = len(strV)
result = ''
for i in range(N-1,-1,-1):
result += strV[i]
return result
print(myReverse2(s))
- 문자열 비교
- == : 보이는 결과가 같은지
- is : id가 같은지
s1 = 'abc'
s2 = 'abc'
s3 = 'def'
s4 = s1
s5 = s1[:2] + 'c'
print(s1 == s2) # True
print(s1 is s2) # True
print(s1 == s3) # False
print(s1 is s3) # False
print(s1 == s4) # True
print(s1 is s4) # True
print(s1 == s5) # True
print(s1 is s5) # False
print(id(s1)) # 2289840528048
print(id(s2)) # 2289840528048
print(id(s3)) # 2289840583664
print(id(s4)) # 2289840528048
print(id(s5)) # 2289840890608
- int()와 같은 함수 만들기
- ord() : 문자의 아스키코드 반환
- chr() : 아스키코드에 해당하는 문자 반환
# 문자를 숫자로 바꾸기
# '123' -> 123
def atoi(s):
# '1' => 1 => (0*10)+1
# '1' => 2 => (1*10)+2
# '3' => 3 => (12*10)+3
value = 0
for x in s:
# 2 => ord('2') - ord('0')
value = value * 10 + (ord(x)-ord('0'))
return value
s = '123'
print(s,type(s))
# 123 <class 'str'>
int_s = atoi(s)
print(int_s,type(int_s))
# 123 <class 'int'>
- str()과 같은 함수 만들기
# 숫자를 문자로 바꾸기
# 123 -> '123'
def itoa(s):
# 123%10 = > 3 => chr(ord('0')+3) == '3'
# 음수일 경우 값을 양수로 바꾼 후 계산
isMinus = False
if s < 0:
isMinus = True
s = -s
result = ''
while s:
value = s%10
# 더하면 뒤에 붙으므로
result = chr(value+ord('0')) + result
s //= 10
# 음수는 다시 앞에 - 붙이기
if isMinus:
result = '-' + result
return result
# 양수
s1 = 123
print(s1,type(s1))
# 123 <class 'int'>
chr_s1 = itoa(s1)
print(chr_s1,type(chr_s1))
# 123 <class 'str'>
# 음수
s2 = -123
print(s2,type(s2))
# -123 <class 'int'>
chr_s2 = itoa(s2)
print(chr_s2,type(chr_s2))
# -123 <class 'str'>
728x90
반응형
'TIL - 프로그래밍 > 개념, 설정' 카테고리의 다른 글
[Python] 알고리즘 (0) | 2022.02.21 |
---|---|
[Python] 패턴 매칭(고지식한, KMP, 보이어-무어), XOR (0) | 2022.02.20 |
[Python] 2차원 배열 - 연산자, 부분집합 (0) | 2022.02.20 |
[Python] 2차원 배열 - 순회, 전치행렬 (0) | 2022.02.20 |
[Python-Pycharm] 주석/작동 되지 않을 때, 적을 때마다 수정될 때 (0) | 2022.02.17 |
댓글