2022. 11. 10. 21:04ㆍ파이썬(Python)
1. 문자열 밀기
- 문자열을 오른쪽으로 한 칸 밀어주기 => 가장 오른쪽에 있는 문자는 가장 왼쪽으로 온다.
- 예) apple -> eappl
s='apple'
print(s[-1]+s[:-1])
결과
eappl
Q) 문자열 회전하기
- 문자열을 입력
- 문자열을 출력 후 다음과 같은 과정을 실행
- 문자열을 오른쪽으로 한 칸씩 밀어서 결과를 출력
- 이 과정을 계속 반복하여 처음 입력한 문자열과 동일하면 출력하고 프로그램 종료
s=input()
print(s)
for _ in range(len(s)):
s=s[-1]+s[:-1]
print(s)
결과
>> apple
apple
eappl
leapp
pleap
pplea
apple
Q) 문자열 순환 프로그램
- 문자열과 자연수 n을 입력
- n개의 질문 입력
- 질문의 종류는 3가지
- 1. Left : 가장 앞에 있는 문자를 가장 뒤로 옮긴다.
- 2. Right : 가장 뒤에 있는 문자를 가장 앞으로 옮긴다.
- 3. Reverse : 문자열을 좌우로 뒤집는다.
s,n=input().split()
n=int(n)
for _ in range(n):
query=input()
if query=='Left':
s=s[1:]+s[0]
elif query=='Right':
s=s[-1]+s[:-1]
elif query=='Reverse':
s=s[::-1]
print(s)
결과
>> abcd 4
>> Left
bcda
>> Left
cdab
>> Right
bcda
>> Reverse
adcb
Q) 규칙에 따른 문자열 순환
- 문자열과 명령을 입력
- 명령은 L 또는 R로 이루어진 문자열
- L : 왼쪽으로 한 칸 밀기
- R : 오른쪽으로 한 칸 밀기
- 명령에 따라 진행 후 최종 상태의 문자열을 입력
s=input()
q=input()
for i in q:
if i=='L':
s=s[1:]+s[0]
print(f'L : {s}')
elif i=='R':
s=s[-1]+s[:-1]
print(f'R : {s}')
print(s)
결과
>> abcdef
>> LLRLRRL
L : bcdefa
L : cdefab
R : bcdefa
L : cdefab
R : bcdefa
R : abcdef
L : bcdefa
bcdefa
2. 아스키코드 (ASCII)
- 아스키코드 : 파이썬 언어에서 사용할 수 있는 모든 문자들은 전부 하나의 숫자와 대응
- 알파벳 대문자와 소문자는 연속한 숫자들로 매칭
- 문자 'A'의 아스키코드 값이 65라면 문자 'B'의 아스키코드 값은 66이 된다.
- 특정 문자의 아스키코드 값은 ord() 함수를 이용
- 'A'의 아스키코드 값은 65이기 때문에 ord('A')는 65이다.
print(ord('A'))
>> 65
- 아스키코드 값을 알고 있을 때, 대응되는 문자를 알고 싶을 때 chr() 함수를 이용
print(chr(65))
>> A
Q) 다음 알파벳
- 소문자 알파벳을 입력하면 다음 알파벳을 출력
- z를 입력하면 처음으로 돌아가는 a 출력
a=input()
if a=='z': print('a')
else: print(chr(ord(a)+1))
결과
>> c
d
3. 대소문자 변환
3-1. 아스키코드 활용
- 대문자가 주어졌을 때, 소문자로 바꾸려 할 때
- 대문자가 알파벳 순서상 몇 번째인지 구함. (A를 0번째라 가정)
x='H'
print(ord(x)) # 72
print(ord(x)-ord('A')) # 7
- 소문자로 변경하기 위해서는 소문자 'a'에 해당하는 아스키 번호를 더함.
- 소문자 아스키 번호를 구한 후, chr를 이용하여 문자로 변경
print(ord(x)-ord('A')+ord('a')) # x의 소문자 아스키 번호 = 104
print(chr(ord(x)-ord('A')+ord('a'))) # 아스키 번호를 문자로 변환 h
대문자로 변환
x=input()
print(chr(ord(x)-ord('a')+ord('A')))
결과
>> y
Y
3-2. lower(), upper() 함수 사용
- lower : 문자열의 모든 문자들을 전부 소문자로 변경
- upper : 문자열의 모든 문자들을 전부 대문자로 변경
print('A'.lower())
print('a'.upper())
결과
a
A
4. 문자 판단
4-1. if문 사용
- 문자열끼리는 비교 가능
- 아스키코드 번호순으로 비교가 되기 때문.
x=input()
if x>='A' and x<='Z':
print('Upper case')
elif x>='a' and x<='z':
print('Lower case')
4-2. isalpha
- 입력한 문자열이 알파벳이면 True, 아니면 False
- 입력한 문자열이 모두 알파벳이어야 한다.
- ab12는 숫자가 있기 때문에 False
print('a'.isalpha()) # True
print('ab'.isalpha()) # True
print('ab12'.isalpha()) # False
4-3. isdigit
- 입력한 문자열이 숫자이면 True, 아니면 False
- 입력한 문자열이 모두 숫자여야 한다.
print('1'.isdigit()) # True
print('123'.isdigit()) # True
print('12ab'.isdigit()) # False
Q) 대소문자 바꾸기
- 문자열을 입력하면 대문자는 소문자로 소문자는 대문자로 바꾸어 출력
- 숫자, 특수기호는 그대로 출력
s=input()
new_s=''
for elem in s:
if elem>='a' and elem<='z':
new_s+=elem.upper()
elif elem>='A' and elem<='Z':
new_s+=elem.lower()
else:
new_s+=elem
print(new_s)
결과
>> TomBoy123@Gmail.Com
tOMbOY123@gMAIL.cOM
'파이썬(Python)' 카테고리의 다른 글
[Python] 함수 - 기본 사용법 및 출력 (0) | 2022.12.29 |
---|---|
문자열 변환 (0) | 2022.12.24 |
문자열 문제풀이2 (0) | 2022.11.09 |
문자열 문제 풀이 (0) | 2022.11.08 |
문자열 (0) | 2022.11.03 |