Weekly Quiz

David Kim·2023년 3월 9일
0

python기초

목록 보기
5/6
post-thumbnail

데이터스쿨 Weekly Quiz 복습

  • 간단한 문제들이었지만 중간중간 헷갈린 문제들이 있어 복습해보려고 한다.

1.

continue 키워드는 파이썬에서 반복문(예: for 또는 while 루프)에서 사용됩니다.
continue를 만나면, 이후의 코드를 실행하지 않고, 다음 반복(iteration)으로 넘어갑니다.

따라서, continue는 반복문 내에서 특정 조건을 만족하는 경우 해당 반복문의 코드를 실행하지 않고 다음 반복으로 넘어가고 싶을 때 유용합니다.

예를 들어, 0부터 9까지의 숫자 중에서 홀수만 출력하는 코드를 작성해보겠습니다.

for i in range(10):
    if i % 2 == 0:
        continue
    print(i)

위 코드에서 continue 키워드는 i가 짝수인 경우, print(i)를 실행하지 않고 바로 다음 반복으로 넘어갑니다. 따라서, 위 코드의 출력은 아래와 같습니다.

1
3
5
7
9

즉, continue 키워드는 특정 조건을 만족하는 경우 해당 반복문의 코드를 실행하지 않고 다음 반복으로 넘어가게 해줍니다.

2.

break 키워드는 파이썬에서 반복문(예: for 또는 while 루프)에서 사용됩니다.
break를 만나면, 반복문을 즉시 종료하고, 반복문 이후의 코드를 실행합니다.

따라서, break는 반복문 내에서 특정 조건을 만족하는 경우 반복문을 중단하고 싶을 때 유용합니다.

예를 들어, 사용자가 입력한 숫자들의 합이 100을 초과하는 경우, 입력을 중단하고 합계를 출력하는 코드를 작성해보겠습니다.

total = 0
while True:
    num = int(input("숫자를 입력하세요: "))
    total += num
    if total > 100:
        break
print("입력한 숫자들의 합:", total)

위 코드에서 while 루프는 항상 참이므로, 무한히 반복됩니다.
하지만 if 문에서 total 변수의 값이 100을 초과하는 경우, break 키워드가 실행되어 while 루프가 종료됩니다.

따라서, 위 코드의 출력은 아래와 같습니다.


숫자를 입력하세요: 10
숫자를 입력하세요: 20
숫자를 입력하세요: 30
입력한 숫자들의 합: 60

즉, break 키워드는 특정 조건을 만족하는 경우 반복문을 중단하고 반복문 이후의 코드를 실행합니다.

3.

data1 = 0
data2 = 10
print('div result : {}'.format(data2 / data1))

위 코드는 0으로 나누기 때문에 ZeroDivisionError 예외를 발생시킵니다.
따라서, 아래와 같은 오류 메시지가 출력됩니다.

ZeroDivisionError: division by zero

해당 코드를 수정하여 예외 처리를 해주어야 합니다.
예를 들어, 아래와 같이 try-except 문을 사용하여 예외 처리를 할 수 있습니다.


data1 = 0
data2 = 10
try:
    result = data2 / data1
    print('div result : {}'.format(result))
except ZeroDivisionError:
    print("0으로 나눌 수 없습니다.")

위 코드에서 try 블록 내부에서 data2 / data1 연산을 수행합니다.
이 연산에서 ZeroDivisionError 예외가 발생하는 경우, except ZeroDivisionError 블록이 실행됩니다. 따라서, 위 코드의 출력은 아래와 같습니다.

0으로 나눌 수 없습니다.

4.

print('2의 제곱근 %.2f' % math.sqrt(2))

위 코드는 파이썬 math 모듈의 sqrt() 함수를 사용하여 2의 제곱근을 구하고, print() 함수를 사용하여 소수점 이하 2자리까지 출력하는 코드입니다.

%.2f는 문자열 포맷팅(formatting)을 사용하는 방법 중 하나로, 소수점 이하 둘째 자리까지의 실수를 출력하라는 의미입니다.
% 다음의 .2f에서 .2는 소수점 이하 자리수를 나타내며, f는 실수형(float) 값을 출력하라는 의미입니다.

따라서, 위 코드의 출력은 아래와 같습니다.

2의 제곱근 1.41

즉, 2의 제곱근을 소수점 이하 둘째 자리까지 출력합니다.

5.

a = True, b = False 일 때, (a or b) and a 의 결과 값을 답변해주세요.

a = True, b = False 이므로, (a or b) and a의 결과는 다음과 같습니다.

a or b에서 a가 참이므로 전체 식은 True가 됩니다.
True and a에서 둘 다 참인 경우에만 True가 되므로, 전체 식의 결과는 True입니다.
따라서, (a or b) and a의 결과는 True입니다.

6.

operator.floordiv() 는 어떤 기능을 하는지 골라주세요.

operator.floordiv()는 두 개의 숫자를 인자로 받아서, 첫 번째 인자를 두 번째 인자로 나눈 몫을 반환하는 함수입니다.

이 함수는 나눗셈 연산자 /와 다르게 항상 정수값을 반환합니다.
만약, 나누어 떨어지지 않을 경우 소수점 이하 값은 버림됩니다.

예를 들어, operator.floordiv(5, 2)는 2를 반환하고, operator.floordiv(7, 3)은 2를 반환합니다.

7.

A if number % 2 == 0 else B 일 때, 작동 방식에 대한 설명 중 올바른 것을 선택해주세요.

A if number % 2 == 0 else B는 삼항 연산자의 형식을 따르는 조건 표현식입니다.

이 식은 다음과 같은 방식으로 작동합니다.

number % 2 == 0이 참(True)인 경우: A를 반환합니다.
number % 2 == 0이 거짓(False)인 경우: B를 반환합니다.
즉, number가 짝수일 경우 A가 반환되고, 홀수일 경우 B가 반환됩니다.

8.

data1 = '100'
data2 = "10"
print(bool(data1) + bool(data2))

먼저, bool(data1)은 True가 됩니다. 이는 비어있지 않은 문자열이기 때문입니다.
bool(data2)도 마찬가지로 True가 됩니다.
따라서 bool(data1) + bool(data2)의 값은 1 + 1로 계산되어 2가 출력됩니다.

0개의 댓글