Python study

4일차

for문

반복문 : for문 예제

  1. 1~99의 짝수를 모두 출력하는 프로그램을 작성하세요.
# first
for i in range(1, 100):
    if i % 2 == 0:
        print(i)

# second
for i in range(2, 100, 2):
    print(i)
  • 첫번째 방법은 2로 나눴을 때 나머지가 0인 수는 짝수라는 성질을 활용해서 구문을 작성한 것이다.
  • 두번째 방법은 range({1}, {2}, {3})일때 {3}가 반복되는 간격이기에 짝수, 홀수의 간격이 2가 차이나기에 위와같이 작성할 수 있다.
  1. 1에서 사용자가 입력한 수까지 짝수만 출력하는 프로그램
num = int(input("수 입력 : "))

for i in range(2, num+1, 2):
    print(i)
  • 여기서 주의할 점은 range(first_num, final_num)를 봤을때 final_num + 1을 해줘야지만 반복이 final_num까지 진행된다는 것이다.
  1. 1에서 10까지의 합을 구하여라
sum = 0
for i in range(1, 11):
    sum += i

print(sum)
  1. 단을 입력받고, 해당 단을 출력하는 프로그램(구구단)
user = int(input("몇 단? : "))

for i in range(1,10):
    print(user,"x",i,"=",user*i)
  • 반복되는 부분이 어느 부분인지 잘 생각하면서 진행해야 한다.
  1. 사용자에게 정수를 입력받고, 약수들을 출력해주는 프로그램
user = int(input("정수 입력 : "))
li = []

for i in range(1, user+1):
    if user % i == 0:
        li.append(i)

print(li)
  • 반복문을 통해서 프린트 정수의 약수를 프린트 해도 되지만
  • list의 append를 활용하여 반복적으로 요소를 추가시킨 후 출력해도 된다.
  1. 1부터 100까지의 홀수의 합을 구하는 프로그램
sum = 0

for i in range(1, 100, 2):
    sum += i

print(sum)

if문을 활용해준다면 for문 내부에
if i % 2 == 1:이런식으로 작성하면 된다.

  1. factorial을 구하는 프로그램
su = int(input("수 입력 : "))

x = 1

for i in range(1, su+1):
    x *= i

print(x)
  • 5 factorial : 5! = 5x4x3x2x1
  • 반복문을 이용해서 계속해서 곱을 수행해주면 된다.

for문의 중첩

  1. N을 입력받고, 2에서 N까지 수의 약수의 개수를 출력해라
N = int(input("입력 : "))

for i in range(2, N+1):
    count = 0
    for j in range(1, i+1):
        if i % j == 0:
            count += 1

    print(i,"의 약수의 개수 : ", count)
  • 2에서 N까지의 수의 반복과 약수의 개수를 출력해주는 반복을 잘 구별해서 생각해야한다.
  • 약수의 개수를 출력하는 것이기 때문에 count 변수를 지정한 후에 반복되는 수 만큼 count += 1을 해준다.
  1. 2단부터 9단까지 출력해주는 프로그램을 작성하세요.
for i in range(2, 10):
    print(i, "단")
    for j in range(1, 10):
        print(i,"x",j,"=",i*j)
    print()
  1. N을 입력받고, 2에서 N까지 수의 약수를 출력해라
N = int(input("입력 : "))

for i in range(2, N+1):
    print(i, "의 약수는 : ", end='')
    for j in range(1, i+1):
        if i % j == 0:
            print(j, end=' ')
    print()
profile
내 꿈은 멋쟁이개발자

0개의 댓글