Jump to Python (3)

GreenBean·2021년 3월 28일
0

Jump to Python

목록 보기
3/7
post-thumbnail

Jump to Python - 3

점프 투 파이썬의 예제를 푼 뒤, 그것에 대해 정리한 포스팅

새 창을 통해 점프 투 파이썬 으로 이동


03장 | 프로그램의 구조를 쌓는다! 제어문

✔ Q2. while문을 사용해 1부터 1000까지의 자연수 중 3의 배수의 합을 구해 보자.

# 1.
i = 0
nums = []

while i < 1000:
    if i % 3 == 0:
        nums.append(i)
        i += 1
    else:
        i += 1

result = 0
for num in nums:
    result += num

print(result)

# 1.result
166833

# 1.tring to be clean
i = 0
result = 0

while i < 1000:
    if i % 3 == 0:
        result += i
        i += 1
    else:
        i += 1

print(result)
  • About 1.
    : 처음에는 빈 리스트를 만들어서 3의 배수를 하나씩 넣고, 그 리스트의 값을 모두 더하는 것으로 만들어 보았다. 결과는 나왔지만 간단한 계산임에도 불구하고 코드 양이 많아보여서 줄일 수 있는 방법을 생각해보았고, 3의 배수가 결정되면 그 값들을 바로 더하는 것을 시도해보았다. 조금 정리하자 훨씬 보기 좋은 모습이 됐다!
# 2.
def cal(num):
    i = 0
    result = 0
    while i < 1000:
        if i % int(num) == 0:
            result += i
            i += 1
        else:
            i += 1
    print(f"The sum of multiplies of {num} less than 1000 is {result}!")

cal(3)
cal("5")

# 2.result
The sum of multiplies of 3 less than 1000 is 166833!
The sum of multiplies of 5 less than 1000 is 99500!
  • About 2.
    : 특정 숫자를 넣으면 1000 미만의 숫자 중에 그 수의 배수들의 합을 구해주는 함수를 만들어 보았다. 결과가 출력될 때 어떤 수의 배수들을 더했는지 함께 알려주었고 변수를 받을 때 혹시 str으로 인식되는 경우를 막기 위해 int 변환을 해주었다.

✔ Q3. while문을 사용하여 다음과 같이 별(*)을 표시하는 프로그램을 작성해 보자.

# 1.
i = 1
while i < 6:
    print("*"*i)
    i += 1
    
# 1.result
*
**
***
****
*****
  • About 1.
    : 처음에 i = 0으로 설정하는 실수를 했다. 별이 곱해지려면 0부터 시작하면 안되는건데, 습관적으로 값을 주고 * 연산자를 넣으면서도 잘못을 인지하지 못하였다. 앞으로는 이런 실수에 더 신경써야지!

✔ Q4. for문을 사용해 1부터 100까지의 숫자를 출력해 보자.

# 1.
for i in range(1, 101):
    print(i)
    
# 1.result
1
2
3
...
100
  • About 1.
    : for문과 range를 사용해서 단순한 방법으로 출력해보았다.

✔ Q5. for문을 사용하여 A 학급의 평균 점수를 구해 보자. A = [70, 60, 55, 75, 95, 90, 80, 80, 85, 100]

# 1.
scores = [70, 60, 55, 75, 95, 90, 80, 80, 85, 100]

result = 0
for i in scores:
    result += i

avg = result / len(scores)
print(avg)

# 1.result
79.0
  • About 1.
    : 점수를 list에 넣고 하나씩 꺼내 더한 다음 더한 값의 평균을 구하였다.
# 2.
scores = [70, 60, 55, 75, 95, 90, 80, 80, 85, 100]

def avg(group):
    sum = 0
    for score in group:
        sum += score
    result = sum / len(group)
    print(f"Your class average is {result}.")

avg(scores)

# 2.result
Your class average is 79.0.
  • About 2.
    : 앞선 다른 예제에서 점수들을 쭉 넣었을 때 *args를 사용해서 평균을 구하는 함수를 만들었었는데, 이번에는 무한한 변수를 대상으로 하지 않고 list 타입을 대상으로 설정해보았다.

✔ Q6. 리스트 중에서 홀수에만 2를 곱하여 저장하는 다음과 같은 코드가 있다. 위 코드를 리스트 내포(list comprehension)를 사용하여 표현해 보자.

# 1.
numbers = [1, 2, 3, 4, 5]
result = [n*2 for n in numbers if n%2==1]
print(result)

# 1.result
[2, 6, 10]
  • About 1.
    : 같은 내용을 리스트 내포 형식으로 바꿔보았다.
profile
🌱 Backend-Dev | hwaya2828@gmail.com

0개의 댓글