6042. 실수 1개를 입력받아 소숫점 이하 두 번째 자리까지의 정확도로 반올림한 값을 출력해보자.


(예시)

a=float(input())
print( format(a, ".2f") )


(참고)
format(수, ".2f") 를 사용하면 원하는 자리까지의 정확도로 반올림 된 실수 값을 만들어 준다. 

여기서 만들어진 값은 소수점 아래 3번째 자리에서 반올림한 값이다.

컴퓨터 프로그래밍에서 실수 변환이나 실수를 사용하는 계산은
정확하게 변환되거나 계산되는 것이 아니라, 거의 모두 근사값으로 계산되는 것이라고 할 수 있다. 

실수가 컴퓨터로 저장되기 위해서는 디지털방식으로 2진 정수화되어 저장되어야 하는데,
그 과정에서 아주 작은 부분이 저장되지 않고 사라지는 잘림(truncation) 오차가 자주 발생하기 때문이다.

a = round(float(input()), 2)
print(a)

# a = float(input())
# print(format(a, ".2f"))

6032. 입력된 정수의 부호를 바꿔 출력해보자.


(예시) 
... 
print(-n) 

(참고)
단항(unary) 연산자인 -(negative)를 변수 앞에 붙이면 부호가 반대인 값이 된다. 
a = -int(input())
print(a)


# a = int(input())
# print(-a)

 

6033. 문자 1개를 입력받아 그 다음 문자를 출력해보자.

영문자 'A'의 다음 문자는 'B'이고, 숫자 '0'의 다음 문자는 '1'이다.

(예시)
...
print(chr(n+1))

(참고)
숫자는 수를 표현하는 문자로서 '0' 은 문자 그 자체를 의미하고, 0은 값을 의미한다.

힌트
아스키문자표에서 'A'는 10진수 65로 저장되고 'B'는 10진수 66으로 저장된다.
따라서, 문자도 값으로 덧셈을 할 수 있다. 어떤 문자의 값에 1을 더하면 그 다음 문자의 값이 된다.

a = ord(input())
print(chr(a+1))

 

6034. 정수 2개(a, b)를 입력받아 a에서 b를 뺀 차를 출력하는 프로그램을 작성해보자.

(예시)
...
c = int(a) - int(b)
print(c)

(참고)
수 - 수는 차(subtraction)가 계산된다.

a, b = input().split()
c = int(a) - int(b)
print(c)

 

6035. 실수 2개(f1, f2)를 입력받아 곱을 출력하는 프로그램을 작성해보자.

(예시)
...
m = float(f1) * float(f2)
print(m)

(참고)
수 * 수는 곱(multiplication)이 계산된다.

a, b = input().split()
c = float(a) * float(b)
print(c)

 

6036. 단어와 반복 횟수를 입력받아 여러 번 출력해보자.

(예시)
w, n = input().split()
print(w*int(n))

(참고)
문자열 * 정수 또는 정수 * 문자열은 그 문자열을 여러 번 반복한 문자열을 만들어 준다.

a, b = input().split()
print(a*int(b))

 

6037. 반복 횟수와 문장을 입력받아 여러 번 출력해보자.

(예시)
n = input()
s = input()
print(int(n)*s)

(참고)
문자열 * 정수 또는 정수 * 문자열은 그 문자열을 여러 번 반복한 문자열을 만들어 준다.

a = input()
b = input()
print(int(a)*b)

 

6038. 정수 2개(a, b)를 입력받아 a를 b번 곱한 거듭제곱을 출력하는 프로그램을 작성해보자.

(예시)
...
c = int(a)**int(b) 
print(c)

(참고)
python 언어에서는 거듭제곱을 계산하는 연산자(**)를 제공한다.
일반적으로 수학 식에서 거듭제곱을 표현하는 사용하는 서컴플렉스/케릿 기호(^)는 프로그래밍언어에서 다른 의미로 쓰인다.

a, b = input().split()
c = int(a)**int(b)
print(c)

 

6039. 실수 2개(f1, f2)를 입력받아 f1을 f2번 거듭제곱한 값을 출력하는 프로그램을 작성해보자.

(참고)
python 언어에서는 거듭제곱(exponentiation)을 계산하는 연산자(**)를 제공한다.
일반적으로 수학 식에서 거듭제곱을 표현하는 사용하는 서컴플렉스/케릿 기호(^)는 프로그래밍언어에서 다른 의미로 쓰인다.
 

a, b = input().split()
c = float(a)**float(b)
print(c)

 

6040. 정수 2개(a, b) 를 입력받아 a를 b로 나눈 몫을 출력해보자.

(예시)
...
print(a//b)

(참고)
python언어에서는 나눈 몫을 계산하는 연산자(//, floor division)를 제공한다.
a//b 와 같이 작성하면, a를 b로 나눈 몫(quotient)을 계산해준다.
프로그래밍언어에 따라 이렇게 몫을 계산해주는 연산자가 없는 경우도 있다.

실수로 나눈 몫이 어떻게 계산될지도 생각해보자.

a, b = input().split()
c = int(a)//int(b)
print(c)

 

6041. 정수 2개(a, b) 를 입력받아 a를 b로 나눈 나머지를 출력해보자.

(예시)
...
print(a%b)

(참고)
python 언어에서는 나눈 나머지를 계산하는 연산자(%, remainder)를 제공한다.
a%b 와 같이 작성하면, a를 b로 나눈 나머지(remainder)를 계산해준다.
나머지 연산(modulus, mod 연산)은 수학자 가우스가 생각해 낸 연산으로,
어떤 수를 다른 수로 나누고 난 후 남는 나머지를 계산하는 연산이다.

실수로 나눈 나머지가 어떻게 계산될지도 생각해보자.

a, b = input().split()
c = int(a) % int(b)
print(c)

6029. 16진수를 입력받아 8진수(octal)로 출력해보자.

(예시)
a = input()
n = int(a, 16)      #입력된 a를 16진수로 인식해 변수 n에 저장
print('%o' % n)  #n에 저장되어있는 값을 8진수(octal) 형태 문자열로 출력

(참고)
8진법은 한 자리에 8개(0 1 2 3 4 5 6 7)의 문자를 사용한다.
8진수 10은 10진수의 8, 11은 9, 12는 10 ... 와 같다.

a = input()
b = int(a, 16)
print('%o' % b)

 

6030. 영문자 1개를 입력받아 10진수 유니코드(Unicode) 값으로 출력해보자.

(예시)
n = ord(input())
print(n)

(참고)
n = ord(input())  #입력받은 문자를 10진수 유니코드 값으로 변환한 후, n에 저장한다.

ord( ) 는 어떤 문자의 순서 위치(ordinal position) 값을 의미한다.  
실제로 각각의 문자들에는 연속된 정수 값이 순서에 따라 부여 되어 있다. A:65, B:66, C:67 .... 
ord(c) : 문자 c 를 10진수로 변환한 값 

컴퓨터로 저장되고 처리되는 모든 데이터들은 2진수 형태로 정수화 되어야 하는데,
컴퓨터에 문자를 저장하는 방법으로 아스키코드(ASCII Code)나 유니코드(Unicode)가 자주 사용된다.

예를 들어, 영문 대문자 'A'는 10진수 값 65 로 표현하고, 
2진수(binary digit) 값 1000001 로 바꾸어 컴퓨터 내부에 저장한다. 

유니코드(unicode)는 세계 여러 나라의 문자를 공통된 코드 값으로 저장할 때 사용하는 표준 코드이다.

a = ord(input())
print(a)

 

6031. 10진 정수 1개를 입력받아 유니코드 문자로 출력해보자.


(예시)
c = int(input())
print(chr(c))  #c에 저장되어 있는 정수 값을 유니코드 문자(chracter)로 바꿔 출력한다. 


(참고)
입력은 기본적으로 모두 문자열로 입력되는 것이라고 할 수 있다. 
따라서, 입력 값이 문자/문자열/정수/실수인지에 따라서 먼저 정확하게 변환시킨 다음에 사용하거나 계산하는 것이 좋다.

예를 들어 123 이 입력 되었다고 한다면, 이건 정수일까? 문자열일까?
조금 생각해보면, 입력된 것만 보고는 그 값이 어떤 데이터인지 알 수 없다는 것을 쉽게 이해할 수 있다.
따라서, 그 입력 값을 어떻게 해석하고 변환할 지에 대해서 명확하게 작성해 주어야 하는 것이다. 

chr( )는 정수값->문자, ord( )는 문자->정수값 형태로 바꿔주는 서로 반대 방향으로 바꾸어 주는 기능을 한다.

a = chr(int(input()))
print(a)

6027. 10진수를 입력받아 16진수(hexadecimal)로 출력해보자.

(예시)
a = input()
n = int(a)            #입력된 a를 10진수 값으로 변환해 변수 n에 저장
print('%x'% n)  #n에 저장되어있는 값을 16진수(hexadecimal) 소문자 형태 문자열로 출력

(참고)
10진수 형태로 입력받고
%x로 출력하면 16진수(hexadecimal) 소문자로 출력된다.
(%o로 출력하면 8진수(octal) 문자열로 출력된다.)

10진법은 한 자리에 10개(0 1 2 3 4 5 6 7 8 9)의 문자를 사용하고,
16진법은 영문 소문자를 사용하는 경우에 한 자리에 16개(0 1 2 3 4 5 6 7 8 9 a b c d e f)의 문자를 사용한다.
16진수 a는 10진수의 10, b는 11, c는 12 ... 와 같다.

a = int(input())
print(hex(a)[2:])

 

6028. 10진수를 입력받아 16진수(hexadecimal)로 출력해보자.

(예시)
print('%X' % n)  #n에 저장되어있는 값을 16진수 대문자 형태 문자열로 출력

(참고)
10진수 형태로 입력받고
%X로 출력하면 16진수(hexadecimal)대문자로 출력된다.

16진법은 영문 소문자를 사용하는 경우에 한 자리에 16개(0 1 2 3 4 5 6 7 8 9 A B C D E F)의 문자를 사용한다.
16진수 A는 10진수의 10, B는 11, C는 12 ... 와 같다.

a = int(input())
b =  hex(a)[2:]
print(b.upper())

6009. 변수에 문자 1개를 저장한 후 변수에 저장되어 있는 문자를 그대로 출력해보자.

a = input()
print(a)

 

6010. 변수에 정수값을 저장한 후 정수로 변환하여 출력해보자.

a = int(input())
print(a)

 

6011. 변수에 실수값을 저장한 후 변수에 저장되어 있는 값을 그대로 출력해보자.

a = float(input())
print(a)

 

6012. 줄을 바꿔 정수(integer) 2개를 입력받아 줄을 바꿔 출력해보자.

a = input()
b = input()
print(a)
print(b)

 

6013. 줄을 바꿔 문자(character) 2개를 입력받고, 순서를 바꿔 한 줄 씩 출력해보자.

a = input()
b = input()
print(b)
print(a)

 

6014. 실수(real number) 1개를 입력받아 줄을 바꿔 3번 출력해보자.

a = float(input())
print(a)
print(a)
print(a)

 

6015. 공백을 두고 입력된 정수(integer) 2개를 입력받아 줄을 바꿔 출력해보자.

a, b = input().split()
print(a)
print(b)

Tip. Python의 input()은 한 줄 단위로 입력을 받는다.

input().split()을 사용하면, 공백을 기준으로 입력된 값들을 나누어(split) 자른다.

※ 다른 프로그래밍 언어에서는 이러한 방법을 지원하지 않기 때문에 a=1, b=2를 한 번에 하나씩 따로 실행시켜야 한다.

 

6016. 공백을 두고 문자(character) 2개를 입력받아 순서를 바꿔 출력해보자.

a, b = input().split()
print(b, a)

Tip. print() 안에서 쉼표(,)를 찍어 순서대로 나열하면, 그 순서대로 공백을 두고 출력된다.

 

6017. 정수(integer), 실수, 문자(character), 문자열(String) 등 1개만 입력받아 한 줄로 3번 출력해보자.

a = input()
print(a, a, a) #공백으로 구분해 한 줄로 출력한다.

Tip. python 언어에서는 문자/정수/실수/문자열 등 특별한 구분이 없이도 원하는 변수에 저장시켜 출력 할 수 있다.
하지만, 저장된 값을 이용해 계산하거나 서로 붙여 연결시키거나 잘라내는 작업을 한다면?
반드시 저장되어있는 값의 종류(문자/정수/실수/문자열 등)를 구분해 주어야 한다.

6018. 24시간 시:분 형식으로 시간이 입력될 때, 그대로 출력하는 연습을 해보자.

a,b = input().split(':')
print(a, b, sep=':')

Tip. input().split(':') 를 사용하면 콜론 ':' 기호를 기준으로 자른다.
print(?, ?, sep=':') 를 사용하면 콜론 ':' 기호를 사이에 두고 값을 출력한다.
sep 는 분류기호(seperator)를 의미한다.

 

6019. "연도.월.일"을 입력받아 "일-월-연도" 순서로 바꿔 출력해보자.

y, m, d = input().split('.')
print(d, m, y, sep='-')

 

6020. 주민번호는 다음과 같이 구성된다. XXXXXX-XXXXXXX

왼쪽 6자리는 생년월일(YYMMDD)이고, 오른쪽 7자리는 성별,출생지역,확인코드로 구성되어있다.
주민번호를 입력받아 형태를 바꿔 출력해보자.

- 주민번호 앞 6자리와 뒷 7자리가 '-'로 구분되어 입력된다. (입력값은 가상의 주민번호이다.)
ex)110011-0000000

- '-'를 제외한 주민번호 13자리를 모두 붙여 출력한다.

(참고)
아무것도 없는 공(empty) 문자는 작은 따옴표(') 2개를 붙여서 '' 로 표현한다.

a, b  = input().split('-')
print(a, b, sep='')

 

6021. 알파벳과 숫자로 이루어진 단어 1개가 입력된다. 입력받은 단어의 각 문자를 한 줄에 한 문자씩 분리해 출력한다.

(예시)
s = input()
print(s[0])
print(s[1])
...

(참고)
s[0] 은 첫 번째 문자를 의미한다.

a = input()
print(a[0])
print(a[1])
print(a[2])
print(a[3])
print(a[4])

 

6022. 6자리의 연월일(YYMMDD)을 입력받아 나누어 출력해보자.

(참고)
s = input()
print(s[0:2])

를 실행하면 0번째 문자부터 1번째 문자까지 잘라 출력한다.
s[a:b] 라고 하면, s라는 단어에서 a번째 문자부터 b-1번째 문자까지 잘라낸 부분을 의미한다.
다른 자르기 방법도 있다.

a = input()
print(a[0:2], a[2:4], a[4:6])

 

6023. 시:분:초 형식으로 시간이 입력될 때 분만 출력해보자.

어떻게 분만 출력해야 할지 주의 깊게 생각해야한다.

h, m, s = input().split(':')
print(m)

 

6024. 알파벳 문자와 숫자로 이루어진 단어 2개를 입력받아
순서대로 붙여 출력하는 프로그램을 작성해보자.

(예시)
w1, w2 = input().split()
s = w1 + w2
print(s)

(참고)
단어는 문자(character)들로 만든다.
문자들로 구성된 문장을 문자열(string)이라고 부른다.
문자열에는 공백문자(' ')가 포함될 수 있는데, 
문자 1개는 길이가 1인 문자열이라고 할 수 있고, 공백문자(' ')가 없는 문자열은 단어(word)라고 할 수 있다.

일반적인 문장들은 공백으로 구분된 단어들로 만들어지기 때문에,
공백문자로 구분된 문장에서 단어를 잘라내기 위해서는 공백문자(' ')를 기준으로 자르면 된다.
키보드로 입력되는 것들은 기본적으로 문자열로 인식되고, 문자열끼리 더하기(+)를 실행하면,
두 문자열을 합쳐 연결한(concatenate) 결과를 만들어 낸다.

a, b = input().split()
c = a + b
print(c)

6001. Hello 출력하기

print("Hello")

 

6002. Hello World 출력하기

print("Hello World")

 

6003. Hello World 줄을 바꿔 출력하기

print("Hello\nWorld")

줄 바꿈 \n

 

6004. 'Hello' 출력하기

print("\'Hello\'")

 

Tip. ' 출력은 역 슬러쉬 - ex) \' 

 

6005. "Hello World" 출력하기

print("\"Hello World\"")

 

6006. "!@#$%^&*()' 출력하기

print("\"!@#$%^&*()\'")

 

 

6007. "C:\Download\'hello'.py" 출력하기

print("\"C:\\Download\\'hello\'.py\"")

Tip. \ 안전하게 출력하려면 \\로 사용하는 것이 좋다.

 

6008. print("Hello\nWorld") 그대로 출력하기

print("print(\"Hello\\nWorld\")")
 

 

+ Recent posts