codeup 기초 100문제 중 6001~6033번.
※ 기초 입출력 ※
ex1) 시:분 형식으로 시간이 입력될때 그대로 출력하기
a, b = input().split(':')
print(a, b, sep=':')
Split() : 값을 분리해주는 기능. split 함수의 괄호 안에 지정한 구분자를 기준으로 값들을 분리해준다.
python은 다른 언어와 다르게 다수의 변수에 한번에 입력이 가능하다.
첫번째 코드 라인에서 입력에 대한 값을 콜론(':') 기준으로 나누어 각각 a와 b에 입력한후
두번째 코드 라인에서 separator(분류 기호) 콜론 (':')으로 나누어 출력한다.
위 코드는 입력값이 3:15인 경우, 3:15그대로를 출력해준다.
만약 sep이 없이 다음과 같이 코드를 작성하면 3:15 입력시 3 : 15라고 출력된다. (중간에 불필요한 띄어쓰기가 더 들어감)
a, b = input().split(":")
print(a,":", b)
ex2) 연도.월.일"을 입력받아 "일-월-연도" 순서로 바꿔 출력하기.
y,m,d = input().split(".")
#'연도.월.일'으로 입력받아 변수에 저장
print(d,m,y, sep='-')
#'-'을 기준으로 d,m,y변수 출력
입력값 : 2022.8.22
출력값 : 22-8-2022
ex3) '-'으로 나누어져 있는 주민등록번호를 '-'없이 출력하기.
=> empty 문자 : ''
f, s = input().split('-')
#'-'기준으로 나누어 f, s에 입력
print(f, s, sep='')
#출력시 두 값을 공백없이 연이어 출력하기
입력값:110011-0000000
출력값:1100110000000
ex4) 단어를 입력 받아 한 문자씩 줄을 바꿔 출력하기
=> 자바와 다르게 for문에 인덱스가 아닌 값이 바로 사용됨.
user_input = input()
for c in user_input:
print(c)
입력값 : Hello
출력값 :
H
E
L
L
O
ex5) 연월일('YYMMDD' ) 입력받아 공백으로 나누어 ('YY MM DD') 출력하기.
s = input()
#유저로 부터 값 입력받기
print(s[0:2], s[2:4], s[4:], sep=" ")
#각각 값사이에 공백 구분자를 사용해 출력
입력값 : 220822
출력값: 22 08 22
ex6) 시:분:초 형식으로 입력받아 분만 출력하기
h, m, s = input().split(":")
#입력값을 구분자 기준으로 나눠 저장
print(m)
#분에 해당하는 m만 출력하기
ex7) 단어 2개 입력받아 이어붙이기
w1, w2 = input().split()
#split 함수에 별도 지정이 없는 경우 공백을 기준으로 자동 분리.
print(w1+w2)
입력값 : hello world
출력값 : hello world
※ 값변환 ※
ex1) 정수 2개 입력받아 합(sum) 출력
a, b = input().split()
print(int(a)+int(b))
파이썬은 입력받은 값을 기본적으로 String 형태로 인식한다.
=> int()를 이용해 형변환 필요.
ex2) 실수 2개 입력받아 합 계산
a, b = input().split()
print(float(a)+float(b))
※ 출력변환 ※
bin(), oct(), hex() 기본 내장 함수를 이용해 10진수를 변환할수 있다.
ex1) 10진수 -> 16진수
num = int(input())
#값 입력받기
num_x = hex(num) #파이썬 내장함수 hex()를 이용해 16진수로 변환한 값을 num_x에 저장
print(num) #10진수 형태 값 출력
print(num_x[2:]) #16진수 형태 값 출력
#[2:]안쓸경우 앞에 0x...라고 값이 출력된다. 0x표시를 원할경우 num_x를 바로 출력가능.
입력값 : 255
출력값 (16진수 출력값) : ff(num_x[2:0]) 또는 0xff(num_x)
-> 다음과 같이 출력문에서 변환 타입을 지정해 16진수로 변환 출력도 가능.
num = int(input())
print('%x' %num)
입력값 : 255
출력값 : ff
ex2) 10진수 -> 16진수 대문자로 출력
num = int(input())
print('%X' %num)
입력값 : 255
출력값 : FF
함수를 이용해 hex()로 값을 처리하는게 더 쉬울것 같았는데, 소문자로만 리턴해주는듯.
소문자로 리턴 받은 값을 대문자로 변환하는 것도 가능하지만, 위와 같은 간단한 문제의 경우엔 출력문에서 format지정을 해주는게 코드가 더 짧아서 좋은것 같다.
※ 값변환 ※
ex1) 16진수 -> 8진수
입력값을 int값으로 변환하면서 옵션으로 16 이라고 적어주면 16진수 값으로 변환해준다.
hex = int(input(), 16)
print('%o' %hex)
입력값 : f
출력값 : 17
ex2) 영문자 입력받아 유니코드 값으로 출력하기
ord() <-> chr()
ord() : 문자를 해당 유니코드 숫자 값으로 변환
chr() : 유니코드 숫자값을 문자로 반환
chrToNum = ord(input())
print(chrToNum)
ch3) 10진수 정수 입력받아 유니코드 문자로 변환하기
numToChr = chr(int(input()))
print(numToChr)
#또는
numToChr = int(input())
print(chr(numToChr))
※ 산술 연산 ※
ex1) 부호 바꿔 출력하기 (neg -> pos, pos -> neg)
num = int(input())
print(-num)
=> 단항 연산자 -를 앞에 붙여주면 부호 변환 역할을 해준다.
입력값 : -25
출력값 : 25
ex2) 다음 문자 출력하기. 숫자인 경우 숫자 +1, 문자인 경우 다음 문자 출력.
user_input = input()
if (user_input.isnumeric()): #숫자라면
print(int(user_input)+1) #숫자+1
else: #숫자가 아닌경우 즉, 문자인 경우
print(chr(ord(user_input)+1))
#유니코드 숫자로 변환후, 유니코드 문자로 재변환
입력값 : i => 출력값 : j
입력값 : 30 => 출력값 : 31
Codeup 기초100문제 연습(4) - python (문제 6077~6080) (0) | 2022.08.29 |
---|---|
Codeup 기초100문제 연습(3) - python (문제 6065~6076) (0) | 2022.08.29 |
Codeup 기초100문제 연습(2) - python (문제 6034~ 6064) (0) | 2022.08.25 |
Python 문자열 format 방법 (0) | 2022.08.25 |
Python for문의 언더스코어('_') (0) | 2022.08.17 |