문자열 변환

2022. 12. 24. 00:51파이썬(Python)

반응형

1. 문자열을 정수로 변환

- int() 함수로 감싸준다.

 

a='123'
a=int(a)+1
print(a)

Q) 붙여서 합하기

- 숫자 a, b를 입력

- a와 b를 붙인 ab바꿔 붙인 ba의 합을 구하기

a,b=input().split()
ab=a+b
ba=b+a

print(int(ab)+int(ba))

결과

>> 123 456
579579

- 두 숫자 123, 456을 각각 이어 붙인 123456과 거꾸로 붙인 456123의 합을 구하면 579579이다.

 


Q) 정수만 추출하여 더하기

- 알파벳과 숫자로 이루어진 문자열을 두 개 입력

- 각 문자열에서 숫자만 추출하여 붙인 후 두 수를 더한 값을 출력

a=input()
b=input()
a_num,b_num=str(),str()

for i in a:
    if i.isdigit(): a_num+=i
for i in b:
    if i.isdigit(): b_num+=i
print(int(a_num)+int(b_num))

결과

>> 12hello34
>> 5world678
6912

- isdigit을 사용하여 숫자인 문자열이면 빈 문자열에 더함

- 빈 문자열은 숫자로만 이루어진 문자열이 된다.

- 각각을 int로 감싸 두 수를 더함.


2. 정수를 문자열로 변환

- str() 함수로 감싸준다.

a=123
a='456'+str(123)
print(a)

결과

456123

Q) 숫자 분석

- 두 수를 입력하여 곱한 후 결과에 숫자가 얼마큼 나타났는지 출력

a,b=map(int,input().split())
result=str(a*b)
c=[0 for _ in range(10)]

for i in result:
    c[int(i)]+=1

print(f'두 수의 곱 : {result}')
for i in range(10):
    if c[i]!=0:
        print(f'{i} : {c[i]}')

결과

>> 125 468
두 수의 곱 : 58500
0 : 2
5 : 2
8 : 1

- 두 수를 곱하고 그 값을 문자열로 변경

- 결과를 하나씩 순환하여 하나의 숫자가 index가 되어 c (길이가 10, 모든 원소가 0 리스트)의 값을 1 증가.

- c의 원소가 0인 것은 출력하지 않음 -> 0이면 결과에 포함되지 않음


Q) 결괏값 회전 출력

- 정수 n 입력. n개의 숫자를 입력

- n개의 숫자를 모두 더함.

- 정수 m을 입력

- 결괏값을 m번 왼쪽으로 이동.

- 왼쪽으로 이동할 때 첫 번째 수는 맨 끝자리로 이동

 

n=int(input())
result=0
for _ in range(n):
    num=int(input())
    result+=num

m=int(input())
result=str(result)
cnt=m%len(result)
new_result=result[cnt:]+result[0:cnt]
print(f'{result}를 {m}번 회전 : {new_result}')

결과

>> 3
>> 1324
>> 5698
>> 77321
>> 4
84343를 4번 회전 : 38434

- n개의 수를 모두 더한 후 문자열로 변환

- 결과 값의 길이가 k라 하면 k번 회전하면 원상태로 돌아옴.

-> 길이를 k로 나눈 나머지만큼 회전

- 나머지를 index 기준으로 하여 나머지를 포함한 앞 문자와 뒤 문자를 교체


3. 문자열 비교

- '==' : 두 문자열이 동일하면 True, 동일하지 않으면 False

- '<', '>' : 사전 순으로 앞선 문자열이면 더 작다.

print('abc'=='abd')
print('abc'=='abc')
print('abc'<'bc')
print('ab'<'bc')
print('bd'<'bc')

결과

False
True
True
True
False