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

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

https://book.naver.com/bookdb/book_detail.nhn?bid=16268369

으뜸 파이썬과 함께 공부하는 포스트입니다.


3.2 키가 140 미만이면 탈 수 없는 놀이기구가 있다. 다음과 같이 사용자로부터 이름과 키를 입력받아 이 놀이기구에 탈 수 있는지 없는지를 판단하여 출력하는 프로그램을 작성하시오.

실행 결과

이 문제는 input 함수와 조건문 if를 사용하는 문제이다. 처음 input문은 문자열이니 input만 쓰면 되지만, 두번째 input문은 조건문에서 숫자를 써야 하므로 input 앞에 int를 붙여준다.

그렇게 input문을 다 작성하고 나면, if문에서 조건을 써 주는데, 키가 140미만, 즉 b < 140 일때는 " 님은 놀이기구를 탈 수 없습니다."가 출력되는 것이고, 조건을 만족하지 못하면 " 님은 놀이기구를 탈 수 있습니다." 를 출력한다.

if문을 쓸 때 들여쓰기에 주의하여 작성하도록 하자.

3.6 다음과 같이 사용자로부터 3개의 임의의 정수를 입력받아서 가장 작은 수부터 큰 수까지 나열하는 프로그램을 if-else 문을 사용하여 작성하시오.

실행 결과

정수 세개를 한꺼번에 입력하기 위해 input다음에 .split()을 붙여준다. 영어 그대로 해석하면 숫자를 하나씩 쪼갠다는 뜻이다.

그리고 수를 나열하려면 '비교'를 해야 하므로 입력 값을 int 함수를 써서 정수로 만들어준다. 그 다음 if문에서는 정수가 세개이므로 한개 한개씩 비교해서 조건문을 만든다.

리스트를 만들어 .sort() 함수를 써주면 쉽게 풀 수 있겠지만 아직 배우지 않았으니 귀찮게 일일이 해 볼 필요도 있다고 나는 생각한다.

3.8 사용자로부터 x, y 좌표를 가진 한 점을 입력으로 받아서 이 점이 1,2,3,4 분면의 어디에 속하는지를 알려주는 프로그램을 작성하여라. 사분면의 위치는 다음 그림과 같다.


실행 결과

우선 좌표를 입력하는 input문을 쓰고 split 함수를 써준다.

좌표는 x,y가 (+,+)일때 1사분면, (-,+)일때 2사분면, (-,-)일때 3사분면, 그리고 마지막으로 (+,-)일때 4사분면이다. 그러므로 조건을 0보다 작은가 큰가를 부등호로 비교해준다. 파이썬을 배웠고, 좌표를 모르지 않는 이상은 간단하게 풀수 있는 문제라고 생각한다.

3.11 1에서 10 사이의 복권번호 중에서 3개의 숫자를 모두 맞히면 '1억 원', 2개를 맞히면 '1천만 원', 1개를 맞히면 '1만 원', 모두 틀리면 '다음 기회에...'을 출력하는 복권 시스템이 있다고 가정하자. 사용자로부터 3개의 정수를 받은 다음 상금을 알려주는 프로그램을 다음과 같이 작성하시오.(단, 이번 회차 복권 당첨 번호가 2,3,9라고 가정하자.)

실행 결과

복권번호를 input으로 세개 입력하고 split()으로 쪼갠다. 쪼갠 수를 정수로 만들어 주기 위해 int를 사용한다.

그 다음 if문에서 조건문을 설정해야 하는데, 수가 2,3,9 중에 있는지 없는지 판별하기 위해 조건문에 a in (2,3,9)와 같이 적어준다. a가 있으면 복권 번호를 1개 맞춘 셈이 된다.

for문을 써서 코드를 줄일 수 있을 것 같지만, 아직은 미흡한 실력이라서 하는 방법은 잘 모르겠다. 더 연습해야 간결하게 만들 수 있을 것 같다.

3.20 이중 for문을 사용하여 숫자를 입력 받아 다음과 같은 삼각형을 출력하는 프로그램을 작성하여라. 이때 아래 결과와 같이 숫자 5가 입력되면 높이가 5이고 제일 마지막 줄의 별이 5개가 되는 삼각형 형태로 나타내어라.

실행 결과

반복하는 숫자를 설정하고 for문에 입력한 뒤, print()문에서 * 앞에 붙는 공백의 개수를 맞추어 적어준다.

그리고 다음 print()문에서 *의 개수를 곱하여 준다. i에 1을 더하는 이유는 i는 range를 썼기 때문에 0부터 시작하는 변수이기 때문이다.

profile
Web Deveolper / Offensive Security Consultant (Prev)

0개의 댓글