으뜸 파이썬 2장 - 연습문제 풀이

DH Park·2024년 6월 27일
post-thumbnail

https://book.naver.com/bookdb/book_detail.nhn?bid=16268369
으뜸 파이썬과 함께 공부하는 포스트입니다.


2.2 밑줄 친 부분에 알맞은 대입문을 사용하여 width (너비) 변수에는 30, height(높이) 변수에는 60값이 출력되도록 하시오.

이 문제는 간단히 풀 수 있다. width에 30을, height에 60을 할당하는 문제인데, = 기호를 사용하여 값을 할당하면 끝나는 문제이다.

답은 width = 30 , height = 60 이다.

2.4 width와 height 라는 변수에 각각 40, 20 값을 할당한 후 이 두 변수를 이용하여 삼각형의 면적을 구하는 프로그램을 작성하시오.

결과
사각형의 면적 : 400

우선 삼각형의 면적을 구하는 공식은 너비 곱하기 높이 나누기 2 이다. print()함수 안에서 적용해보자.

값을 할당하는 것은 2.2번에서 봤듯이 =기호를 사용하여 할 수 있고, 공식에 따라 연산하는 간단한 문제였다.

2.8 다음과 같이 2에서 6까지의 제곱 값을 표로 출력하는 프로그램 square_table.py를 작성하시오. 아래 결과와 같이 a는 2에서 6까지 증가되는 수가 있으며, n은 2의 값을 가진다. 그리고 a n 에 해당하는 부분은 실제 값을 넣어서 2 2 와 같은 수식의 결과가 출력되도록 하시오.

실행 결과

언뜻 보면 어려운 문제지만 a와 n이라는 변수에 값을 할당해놓고, print()함수를 여러번 쓰고, print()함수의 내부에서 띄어쓰기를 한 다음 연산만 하면 되는 문제이다. 본인이 경험해본 결과, 어렵게 생각하면 안풀리고, 쉽게 생각하면 풀렸던 문제이다.

실행 결과

보다시피 크게 어려운 것이 없다. 사람 일은 마음먹기 나름이라는 말이 딱 맞는 상황이다.

나중에 가면 for문을 사용하여 풀 수도 있을 문제이다. 하지만 2장에서는 여기까지만 하겠다.

2.10 섭씨온도를 화씨온도로 변환하는 식을 바탕으로 사용자로부터 섭씨온도를 입력받아서 다음과 같이 화씨온도로 출력하시오(힌트: int(input('섭씨온도를 입력하세요 :'))를 사용함).

본문의 설명에 따르면 음영이 있는 부분이 우리가 키보드로 입력 할 값이다.

그리고 섭씨온도를 화씨온도로 변환시키는 공식은 fahrenheit = (9/5) * celsius + 32이다.

힌트에 나온 input 함수로 입력한 값을 할당시키기 위해 앞에 a = 를 붙여서,

a = int(input('섭씨온도를 입력하세요:')) 로 시작하는 코드를 짜 볼것이다.

앞 문제와 동일하게 값을 할당하면 뒤에서는 print() 내부에 쉼표, 따옴표, 주어진 공식들을 이용하여 문장을 만들고 할당된 값으로 연산하는 문제이다.

실행 결과

2.14 거듭제곱 연산자를 이용하여 어떤 수의 제곱근을 구할 수 있다. 1부터 7까지 수의 제곱근을 구해서 다음과 같이 출력하는 sqrt_table.py 라는 프로그램을 작성하시오.

제곱근은 어떤 수의 1/2 제곱이다. (2)^1/2인데, 컴퓨터는 분수를 표현할 수 없기때문에 1/2의 소수 값인 0.5를 사용하면 되겠다. 그리고 루트 기호를 쓸 수 없으므로 ** 0.5로 대신하면 된다.

실행 결과

보다시피 제곱을 어떻게 연산하는지만 알면 간단한 문제이다.

2.19 사용자로부터 입력받은 정수 값 n이 0에서 100의 범위 안에 있는 짝수인지 그렇지 않은 지를 판단하는 코드를 작성하여 다음과 같은 결과가 나타나도록 하여라.

범위를 알고싶으면 부등호(>, <, >=, <=)와 and 연산자를 사용하면 된다. ~하거나 라는 문장이 있으면 물론 or을 써야 할 것이다. 하지만 그런 말이 없기 때문에 and를 사용한다.

실행 결과

2.21 사용자로부터 입력받은 정수를 2진수로 출력한 후 이 값에 대해 비트단위 부정 값을 출력하여라

실행 결과

~a는 숫자 a에 대한 비트단위 부정 연산이다. 9로 예를 들면 9의 2진수가 00001001인데 0을 1로, 1을 0으로 바꾸어서, 부정값은 11110110으로 나온다.

따라서 결과는 -10이 되는데, 정수 표현시 가장 왼쪽의 비트는 1일때 음수, -일때 양수를 의미하는 부호이기 때문이다. 그렇게 나온 부정값을 bin함수로 2진수 출력을 하면 -0b1010이 나온다.

profile
Offensive Security Consultant

0개의 댓글