4일차

Kangdh·2026년 8월 14일

파이썬 교육

목록 보기
4/33

14강 헷갈린 문제들

  • 구구단 1단부터 9단까지의 모든 결과값 중에서, 홀수인 결과값들만 모두 더한 총합을 출력해주세요.

dan = 1
s = 0

while dan <= 9:
i =1
while i <= 9:
a = dan*i < 곱셈 값을 a로 지정
if a%2 != 0: < a%2는 0이 아닐때라는 조건을 붙여 홀수만 찾기
s += a < s라는 빈 변수 안에 a의 값을 더하기
i += 1
dan += 1
print(s)

625

가 답이다.

  • 1부터 100까지의 숫자 중, 홀수는 더하고 짝수는 빼는 식 (1 - 2 + 3 - 4 ... + 99 - 100)의 최종 계산 결과를 출력해주세요.

i = 1
s = 0

while i <= 100:
if i%2 != 0: <홀수 i를 찾기
s += i <홀수인 i를 더하기
elif i%2 == 0: <짝수 i 찾기
s -= i <짝수인 i를 빼기
i += 1 <while step
print(s) <계산된 것을 출력하기

-50

이 나온다.

  • 100부터 500 사이의 숫자 중에서 4의 배수는 총 '몇 개'인지 그 횟수만 세어서 출력해주세요.

s = 0
i = 100 <100부터 시작

while i <= 500 and i >= 100:
if i%4 == 0: <4의 배수 찾기
s += 1 <4의 배수가 찾아질때 마다 s에 1증가시키기
i += 1
print(s)

101
이 나오게 된다.

  • 구구단을 2단부터 9단까지 출력할 때, 각 단의 숫자까지만 곱해서 출력해주세요. (예: 3단은 3x3까지만, 4단은 4x4까지만, 9단은 9x9까지)

dan = 2 <2단부터 시작

while dan <= 9:
i = 1
while i <= 9:
if i <= dan: <뒤의 수가 단수를 넘지 못하도록 제한
print("{}{}={}".format(dan,i,dani)) <조건을 충족했을때 곱셈을 출력하기
i += 1
dan += 1

21=2
2
2=4
31=3
~
9
9=81

이 나오게 된다.

조금만 쉽게 생각하면 금방 풀렸을 문제들인데 너무 어렵게 생각해서 풀지 못하고 계속 잡고있었던 문제들인거 같다. 계속해서 코드를 한번에 통째로 구현하는걸 목표로 하지말고 하나씩 기능을 구현해 나가는 식으로 생각하며 코딩을 해야할것 같다.

4일차

i = 1
print("{}".format(1))
print(f"{i}")
두 문장은 같은 뜻이다.

def ():

  • def ():는 자주쓰는 식이나 문장을 미리 저장해두고 호출해오는 함수이다.

Ex) def a():
print(1)
print(2)
print(3)

a()

1
2
3 이라는 값이 출력된다.

def 함수 이름은 알아볼수 있도록 이름 짓기 or 주석 달기

  • 전역 변수와 지역 변수
    전역 변수는 함수 외부를 뜻하며 지역 공간은 함수 내부를 뜻한다. 지역 변수를 다른 함수에서 불러오려면 오류가 난다.
    전역 변수는 프로그램이 시작될 때 만들어지고, 끝날때 소멸된다
    지역 변수는 함수가 시작될 때 만들어지고 끝날때 소멸된다.

  • 전역 범위, 지역 범위
    전역 범위는 전역 변수에 접근할 수 있는 공간을 전역 범위라고 한다.
    지역 범위같은 경우는 지역 내에서만 접근할 수 있는 범위를 뜻한다. 지역 범위에서 전역 범위로는 접근하지 못한다.

  • 변수의 생명 주기(라이프 사이클), 변수의 스코프
    변수의 생명주기에는 변수의 선언과 초기화,변수 존재

  • 내장 함수, 사용자 정의 함수
    - 내장함수는 우리가 코딩을 하면서 자주 쓰는 함수들이다. ex) str,int,input 등등이 있다.

    • 사용자 정의 함수는 def, 함수 이름, 매개변수(parameter),return이 있다.
      def는 함수를 새로 정의할 때 사용합니다.
      함수 이름은 함수가 어떤 기능을 하고있는지 쉽게 알 수있도록 짓는다.
      매개변수는 함수에 전달되는 입력값이다.
      return은 살행 결과값을 반환시키는 용으로 쓴다.
  • 매개 변수(parameter),인자/인수(args/argument)
    는 서로 개수가 같아야함

    새롭게 알게된 코드 줄이기

    def is_even(a):
    if a%2 == 0:
    return True
    else:
    return False
    이 코드와
    def is_even(a):
    return a%2 == 0
    이 코드는 같은 의미의 코드이다. 조금만 창의적?으로 접근하면 저렇게도 줄일수 있다는게 놀랍다.

    오늘의 공부할 포인트.

  • Test Case를 만들고난 다음 함수를 만드는 연습을 하기. 함수는 만들어놓고 쓰는것이 아닌 필요에 의해 만들어지는것.

  • 이전까지 해왔던 문제들을 다시 한번 풀어보면서 부족했던 곳을 보완할 생각이다.

  • 슬슬 코드가 복잡해지거나 이론들이 여럿 나오면서 복잡해지기 시작했다. 코드를 작성하면서도 뭔가 알듯 모를듯한 기분이다. 이번 주말에 시간을 써서 좀 익숙해지는 시간을 가져야할거같다.
    시간을 투자하는게 내 실력향상의 큰 도움이 되리라 생각한다.

0개의 댓글