Self Study

3-1 print() 함수를 이용하여 별표가 출력되도록 프로그램을 작성해 보자.

 

더보기

답 : 

print("***********")
print(" ********* ")
print("  *******  ")
print("   *****   ")
print("    ***    ")
print("     *     ")
print("    ***    ")
print("   *****   ")
print("  *******  ")
print(" ********* ")
print("***********")

 

 

3-2 Code03-04.py는 16, 10, 8, 2 이외의 숫자를 입력하면 오류가 발생한다. 코드를 수정해서 16, 10, 8, 2 외의 숫자를 입력하면 '16, 10, 8, 2 숫자 중 하나만 입력하세요.'라는 메시지를 출력하고 프로그램을 종료하도록 if 문을 추가해 보자.

힌트1 같지 않다는 !=로 비교한다.

힌트2 여러 조건이 동시에 참이어야 하는 관계 연산자는 and이다.

 

더보기

답 :

sel = int(input("입력 진수 결정(16/10/8/2) : "))

if sel == 16 :
    num = input("값 입력 : ")
    num10 = int(num, 16)
if sel == 10 :
    num = input("값 입력 : ")
    num10 = int(num, 10)
if sel == 8 :
    num = input("값 입력 : ")
    num10 = int(num, 8)
if sel == 2 :
    num = input("값 입력 : ")
    num10 = int(num, 2)
if sel != 16 and 10 and 8 and 2 :
    print("16, 10, 8, 2 숫자 중 하나만 입력하세요.")
    exit()


print("16진수 ==> ", hex(num10))
print("10진수 ==> ", (num10))
print("8진수 ==> ", oct(num10))
print("2진수 ==> ", bin(num10))

 

연습문제

1. 다음 각 보기를 실행하여 다른 값이 출력하는 것을 하나 고르세요.

 

① print("100")     ② print(100)     ③print(50+50)     ④print("50+50")

 

더보기

답 : 4

 

해설 : 다른 것들은 100이 출력되지만 4번은 문자열을 그대로 출력하기 때문에 50+50이 출력된다.

 

2. 다음 코드의 실행 결과를 고르세요.

print('%d / %d = %d' % (5, 10, 5/10))

① 5 / 10 = 0.5     ② 5 / 10 = 0.50000     ③ 5 / 10 = 0     ④ 5 / 10 = 0.00000

 

더보기

답 : 3

 

해설 : %d는 정수로 표시하기 때문에 5/10을 0로 출력한다.

 

3. 다음 코드의 실행 결과를 예상해 보세요.

 

(1) print("%04d" % 876)

(2) print("%5s" % "CookBook")

(3) print("%1.1f" % 123.45)

 

더보기

답 : (1) 0876    (2) CookBook    (3) 123.5

 

4. 다음 코드의 실행 결과를 고르세요.

print("{2:d} {0:d} {1:d}".format(111, 222, 333))

① 111 222 333    ② 333 222 111    ③ 333 111 222     ④ 222 333 111

 

더보기

답 : 3

 

5. 다음 보기 중에서 설명하는 이스케이프 문자를 각각 고르세요.

\n \t \b \\ \' \"

(1) 다음 탭으로 이동

(2) 뒤로 한 칸 이동

(3) \를 출력

 

더보기

답 : (1) \t    (2) \b    (3) \\

 

6. 파이썬에서 제공되는 데이터 형식입니다. 거리가 먼 것을 하나 고르세요.

 

① 불 : bool    ② 정수 : int    ③ 실수 : float    ④ 문자 : character    ⑤ 문자열 : str

 

더보기

답 : 4

 

7. 다음 코드 중에서 오류가 발생하는 것을 모두 고르세요.

 

① num1 = 100

② 100 = num1

③ num1 = num2 = 100

④ num1 = 100 = num2 = 100

⑤ num1 = num2 = num3 = 100

 

더보기

답 : 2, 4

 

8. 코드를 실행하면 오류가 발생합니다. 그 이유를 설명하세요.

a = b = 10 = c = d = 20

 

더보기

답 : 변수는 오른쪽에서 왼쪽으로 대입된다. 값을 할당할 변수는 왼쪽, 값은 오른쪽에 써야하기 때문이다.

 

9. 다음 10진수, 2진수, 16진수의 조합 중 틀린 것을 모두 고르세요.

 

① 0, 0000, 0     ② 2, 0011, 2    ③ 7, 0111, 7    ④ 11, 1001, C    ⑤ 16, 1111, F

 

더보기

답 : 2, 4, 5

해설 : 2번의 2진수 0011은 10진수 3이다. 4번의 2진수 1001과 16진수 C는 각각 10진수 9, 12이다. 5번의 2진수 1111과 16진수 F는 10진수 15이다.

 

10. 각 진수를 10진수로 변환하세요.

 

(1) 2진수 0011

(2) 2진수 01010

(3) 16진수 11

(4) 8진수 17

 

더보기

답 : (1) 3     (2) 10     (3) 17     (4) 15

 

11. 다음 각 진수를 모두 10진수로 변환하세요.

 

(1) 1011(2진수)

(2) 1A(16진수)

 

더보기

답 : (1) 11     (2) 26

 

12. 다음 빈칸에 들어갈 함수 이름을 쓰세요.

[     ①     ](숫자) 함수는 숫자를 16진수로, [     ②     ](숫자) 함수는 숫자를 8진수로, [     ③     ](숫자) 함수는 숫자를 2진수로 출력합니다.

 

더보기

답 : ① hex     ② oct     ③ bin

 

13. 오류가 발생하는 것을 모두 고르고, 그 이유를 간단히 설명하세요.

 

① int('1002', 2)

② int('1008', 8)

③ int('AAFG', 16)

 

더보기

답 : 2, 3

해설 : 2번 8진수는 0부터 8까지의 숫자만 사용할 수 있기 때문에 오류가 발생한다. 3번 16진수는 0부터 9까지의 숫자와 A부터 F까지의 문자로 이루어져 있는데 G는 16진수가 아니기 때문에 오류가 발생한다.

 

14. 다음은 데이터 형에 대한 설명입니다. 설명이 올바르지 않은 것을 모두 고르세요.

 

① 정수형은 <class 'int'>로 표현된다.

② 정수형은 크기가 무제한이다.

③ 불형은 True, False, Null 세 값 중 하나가 저장된다.

④ 실수형은 소수점이 있다.

⑤ 문자는 작은따옴표, 문자열은 큰따옴표로 지정한다.

 

더보기

답 : 3, 5

해설 : 3번 불형은 True와 False만 저장할 수 있다. 5번 파이썬은 작은따옴표, 큰따옴표 둘 중 아무것이나 사용해도 된다.

 

15. 다음과 같은 결과가 나오도록 코드의 빈 곳을 채우세요.

실행 결과
10진수 ==> 12345678
16진수 ==> 0xbc614e
  8진수 ==> 0o57060516
  2진수 ==> 0b101111000110000101001110
num= 12345678
[          ]
print("10진수 ==> ", num)
print("16진수 ==> ", hex_num)
print("  8진수 ==> ", oct_num)
print("  2진수 ==> ", bin_num)

 

더보기

답 :

hex_num = hex(num)
oct_num = oct(num)
bin_num = bin(num)

 

16. 글자 하나를 입력하면 2, 8, 10, 16진수인지 아닌지를 구분하는 코드를 작성해 보세요.

힌트1 if ~ elif ~ else 문을 사용하세요(5장에서 다룹니다)

힌트2 2진수는 0~1, 8진수는 0~7, 10진수는 0~9, 16진수는 0~F 까지의 범위입니다.

 

더보기

답 :

num = input("글자 입력 : ")

if '0' <= num <= '1' :
    print("2진수 또는 8진수 또는 10진수 또는 16진수 입니다.")
elif '0' <= num <= '7' :
    print("8진수 또는 10진수 또는 16진수 입니다.")
elif '0' <= num <= '9' :
    print("10진수 또는 16진수 입니다.")
elif '0' <= num <= '9' or 'A' <= num <='F' or 'a' <= num <='f' :
    print("16진수 입니다.")
else :
    print("숫자가 아닙니다.")

 

 

*주의사항 : 제가 직접 푼 것이므로 틀린 부분이 있을 수 있습니다. 오타나 틀린 부분 지적 환영!

 

+ Recent posts