TIL | 파이썬 기초 # 6

vel.Ash·2022년 3월 17일
0
post-thumbnail

🫣 for 반복문

<for 반복문 형식>

for 변수명 in 리스트명 혹은 리스트:
 실행문

<예시>

my_list = [2, 3, 5, 7, 11]

for number in my_list:
	print(number) 
2
3
5
7
11

range 함수

1.파라미터 2개 버전

<형식>

for 변수명 in range(start, stop):  # start부터 **stop-1까지!** 
	실행문

<예시>

for i in range(3,11):
	print(i)
3
4
5
6
7
8
9
10   # 11까지가 아님에 유의! 

2.파라미터 1개 버전

<형식>

for 변수명 in range(stop):  # 0부터 **stop-1까지!** 
	실행문

<예시>

for i in range(10):
	print(i)
0
1
2
3
4
5
6
7
8
9

3.파라미터 3개 버전

<형식>

for 변수명 in range(start, stop, step):  # 0부터 **stop-1까지 step간격으로**
	실행문

<예시>
1-1.

for i in range(3, 17, 3):
	print(i)
3
6
9
12
15

1-2.

for i in range(3, 16, 3):
	print(i)
3
6
9
12
15

1-3.

for i in range(3, 15, 3):
	print(i)
3
6
9
12

실습

1.인덱스와 원소 함께 출력하기

numbers = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31]

for i in range(len(numbers)):
	print(i, numbers[i])
0 2
1 3
2 5
3 7
4 11
5 13
6 17
7 19
8 23
9 29
10 31

2.2의 n 제곱을 출력하기 (2^0 = 1부터 2^10 = 1024까지 출력)

<나의 답안>

for i in range(0, 11):
    result = 2 ** i
    print("2^{} = {}".format(i, result))
2^0 = 1
2^1 = 2
2^2 = 4
2^3 = 8
2^4 = 16
2^5 = 32
2^6 = 64
2^7 = 128
2^8 = 256
2^9 = 512
2^10 = 1024

<모범 답안>

for i in range(11):
    print("{}^{} = {}".format(2, i, 2 ** i))

*format에서 만들수 있는 건 만들기, 간략하게!

3.for문 사용하여 구구단 만들기 (for문 중첩!!)

<나의 답안> = <모범 답안> !!!!!

for i in range(1, 10):  
    for j in range(1, 10):
        print("{} * {} = {}".format(i, j, j * i))
1 * 1 = 1
1 * 2 = 2
1 * 3 = 3
.
.
.
9 * 7 = 63
9 * 8 = 72
9 * 9 = 81

4.피타고라스 삼조 중 a < b < c라고 가정할 때, a + b + c = 400을 만족하는 피타고라스 삼조의 a b c를 구하기

<나의 답안>

for i in range(1, 200):
    for j in range(1, 200):
        for n in range(1, 200):
            if (i ** 2) + (j ** 2) == (n ** 2) and i + j + n ==400 and i < j < n:
                print(i * j * n)
2040000

<모범 답안>

for a in range(1, 400):
    for b in range(1, 400):
        c = 400 - a - b
        if a * a + b * b == c * c and a < b < c:
            print(a * b * c)

*내 코드는 실행해봤을 때 오랜 시간이 걸리는 코드, 하지만 200 대신 더 큰 숫자가 들어갈 수 있다는 걸 감안하면 너무 오래 걸려서 사용하기 힘들다. = “비효율적 알고리즘”

—> 조건을 잘 활용해서 효율적인 코드 작성하려 노력하기 !

5.for문을 사용하여 리스트를 꺼꾸로 뒤집어 보기

<모범 답안>

numbers = [2, 3, 5, 7, 11, 13, 17, 19]

# 리스트 뒤집기
for left in range(len(numbers) // 2):
    # 인덱스 left와 대칭인 인덱스 right 계산
    right = len(numbers) - left - 1

    # 위치 바꾸기
    temp = numbers[left]
    numbers[left] = numbers[right]
    numbers[right] = temp

print("뒤집어진 리스트: " + str(numbers))
뒤집어진 리스트: [19, 17, 13, 11, 7, 5, 3, 2]

profile
코린이의 개발공부

0개의 댓글