Post

python 공부 2024.03.21

파이썬 기본 문법

논리연산

같은 코드이지만 좀 더 가독성이 좋은건 후자

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 사용자에게 점수를 입력받아서 'score' 변수에 저장합니다.
score = int(input("점수를 입력하세요 : "))

# 입력받은 점수가 90점 이상인지 확인합니다.
if score >= 90:
    print("A")  # 90점 이상이면 'A'를 출력합니다.
else:
    # 90점 미만일 때, 80점 이상인지 확인합니다.
    if score >= 80:
        print("B")  # 80점 이상이면 'B'를 출력합니다.
    else:
        # 80점 미만일 때, 70점 이상인지 확인합니다.
        if score >= 70:
            print("C")  # 70점 이상이면 'C'를 출력합니다.
        else:
            # 70점 미만일 때, 60점 이상인지 확인합니다.
            if score >= 60:
                print("D")  # 60점 이상이면 'D'를 출력합니다.
            else:
                print("F")  # 60점 미만이면 'F'를 출력합니다.
    print("학점입니다.")  # 학점을 출력한 후, '학점입니다.'라고 추가로 출력합니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 사용자로부터 점수를 입력받아서 'score' 변수에 저장합니다.
score = int(input("점수를 입력하세요 : "))

# 입력받은 점수가 90점 이상인지 확인합니다.
if score >= 90:
    print("A")  # 90점 이상이면 'A' 학점을 출력합니다.
elif score >= 80:
    print("B")  # 80점 이상 90점 미만이면 'B' 학점을 출력합니다.
elif score >= 70:
    print("C")  # 70점 이상 80점 미만이면 'C' 학점을 출력합니다.
elif score >= 60:
    print("D")  # 60점 이상 70점 미만이면 'D' 학점을 출력합니다.
else:
    print("F")  # 60점 미만이면 'F' 학점을 출력합니다.

# 학점을 출력한 후에 '학점입니다. ^^'라는 문구를 추가로 출력합니다.
print("학점입니다.")

리스트 & 반복문

기본 리스트

1
2
3
4
5
6
7
8
fruit = ['사과', '', '딸기', '포도']
print(fruit)
fruit.append('')
print(fruit)

# 변수안에 딸기가 있으면 실행됨
if '딸기' in fruit:
    print("딸기가 있네요.^^")

랜덤 모듈과 for 반복문

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# random 모듈을 가져와서 사용할 준비를 합니다.
# 기본패키지에 없으면 import로 불러와야함 
import random

# 빈 리스트 'numbers'를 생성합니다.
numbers = []

# 0부터 9까지 숫자를 생성하는 반복문입니다.
for num in range(0, 10):
    # 각 숫자에 대해, 0부터 9 사이의 무작위 숫자를 리스트에 추가합니다.
    numbers.append(random.randrange(0, 10))

# 생성된 리스트를 출력합니다.
print("생성된 리스트", numbers)

# 0부터 9까지 숫자를 하나씩 확인하는 반복문입니다.
for num in range(0, 10):
    # 만약 이 숫자가 리스트에 없다면, 그 사실을 출력합니다.
    if num not in numbers:
        print("숫자 %d는(은) 리스트에 없네요." % num)

input 사용

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 변수 선언 부분: 여기서는 프로그램에서 사용할 변수들을 초기화합니다.
select, answer, numStr, num1, num2 = 0, 0, "", 0, 0

# 메인 코드 부분: 사용자로부터 입력을 받고, 그에 따라 다른 작업을 수행합니다.
select = int(input("1. 입력한 수식 계산 2. 두 수 사이의 합계 : "))

if select == 1:
    # 수식 계산 옵션을 선택한 경우
    numStr = input("*** 수식을 입력하세요 : ")  # 사용자로부터 수식을 입력받습니다.
    # eval 역할을 입력받은 수식을 계산! 
    answer = eval(numStr)  # 입력받은 수식을 평가하여 결과를 얻습니다.
    print(" %s 결과는 %5.1f입니다. " % (numStr, answer))  # 결과를 출력합니다.
elif select == 2:
    # 두 수 사이의 합계 계산 옵션을 선택한 경우
    num1 = int(input(" *** 첫 번째 숫자를 입력하세요 : "))  # 첫 번째 숫자 입력
    num2 = int(input(" *** 두 번째 숫자를 입력하세요 : "))  # 두 번째 숫자 입력
    for i in range(num1, num2 + 1):  # num1부터 num2까지 숫자를 하나씩 증가시키면서 반복
        answer += i  # 현재 숫자를 answer에 더합니다.
    print("%d+...+%d는 %d입니다." % (num1, num2, answer))  # 두 수 사이의 합을 출력합니다.
else:
    # 사용자가 1 또는 2 이외의 것을 입력한 경우 오류 메시지를 출력합니다.
    print("1 또는 2만 입력해야 합니다.")

반복문의 시작, 끝, 증가값

1
2
3
4
5
6
7
8
9
# 0은 시작값 3은 끝 1은 증가값
for i in range(0,3,1):
    print("안녕하세요? for 문을 공부 중입니다.^^")

# 1부터 5까지의 숫자를 출력하는 반복문입니다.
for i in range(1, 6, 1):
    # 현재 숫자를 출력하고, 줄바꿈 대신 공백을 끝에 추가합니다.
    # 이렇게 하면 모든 숫자가 한 줄에 나란히 출력됩니다.
    print("%d " % i, end=" ")

중첩 반복문으로 구구단

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 구구단 만들기

# 1부터 9까지의 숫자에 대해 반복합니다. (구구단의 '단'을 결정)
for i in range(1, 10):
    # 각 '단'에 대해, 1부터 9까지 곱셈을 수행합니다.
    # 각 단을 출력
    print("## %d단 ##" %i)
    for j in range(1, 10):
        # 현재 '단'인 i와 곱하는 수인 j를 곱하여 ans에 저장합니다.
        ans: int = i * j
        # 계산한 곱셈 결과를 출력합니다. 예: "2 * 3 = 6"
        print("%d X %d = %d"  % (i, j, ans))
    # 한 '단'의 구구단을 모두 출력한 후에는 빈 줄을 출력하여 구분합니다.
    print()

whle 반복문

1
2
3
4
5
i = 0
# i가 3보다 작으면 출력
while i < 3 :
    print("%d : 안녕하세요? while 문을 공부 중입니다. ^^" %i)
    i += 1

break 와 continue의 차이

break

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 합계를 저장할 변수 hap과 사용자로부터 입력받을 두 수를 저장할 변수 a, b를 선언하고 초기화합니다.
hap, a, b = 0, 0, 0

# 무한 반복문을 시작합니다. 이 반복문은 break 문을 만날 때까지 계속됩니다.
while True:
    a = int(input("더할 첫 번째 수를 입력하세요 : "))  # 첫 번째 수를 입력받습니다.
    if a == 0:  # 만약 첫 번째 수로 0이 입력되면,
        break  # 반복문을 즉시 종료합니다.
    b = int(input("더할 두 번째 수를 입력하세요 : "))  # 두 번째 수를 입력받습니다.
    hap = a + b  # 입력받은 두 수의 합을 계산합니다.
    print("%d + %d = %d" % (a, b, hap))  # 계산된 합을 출력합니다.

# 반복문을 탈출한 후, 메시지를 출력하여 반복문 종료 사실을 알립니다.
print("0을 입력해 반복문을 탈출했습니다.")

continue

1
2
3
4
5
6
7
8
9
10
11
12
13
# 합계를 저장할 변수 hap과 반복문에서 사용할 변수 i를 선언하고 초기화합니다.
hap, i = 0, 0

# 1부터 100까지 반복하는 for 반복문을 시작합니다.
for i in range(1, 101):
    # 현재 숫자 i가 3의 배수인지 확인합니다.
    if i % 3 == 0:
        continue  # 3의 배수라면, 현재 반복을 건너뛰고 다음 숫자로 넘어갑니다.
    hap += i  # 3의 배수가 아닌 경우, 현재 숫자 i를 hap에 더합니다.

# 최종 합계를 출력합니다. 이때 3의 배수는 제외됩니다.
print("1~100의 합계(3의 배수 제외) : %d" % hap)

break는 반복문에서 탈출하지만 continue는 밑의 코드를 실행하지 않고 다시 반복문으로 바로 올라간다.

리스트 조작

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 숫자 4개를 저장할 리스트 aa를 생성하고 모든 요소를 0으로 초기화합니다.
# 합계를 저장할 변수 hap을 선언하고 0으로 초기화합니다.
aa,hap = [0, 0, 0, 0], 0

# 사용자로부터 4개의 숫자를 입력받아 리스트 aa의 각 요소에 저장합니다.
aa[0] = int(input("1번째 숫자 : "))
aa[1] = int(input("2번째 숫자 : "))
aa[2] = int(input("3번째 숫자 : "))
aa[3] = int(input("4번째 숫자 : "))

# 리스트 aa의 모든 요소를 더하여 그 합을 hap 변수에 저장합니다.
hap = aa[0] + aa[1] + aa[2] + aa[3]

# 최종적으로 계산된 합계를 출력합니다.
print("합계 ==> %d" %hap)

for 반복문으로 위의 코드와 같게

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 빈 리스트 aa를 생성합니다.
aa = []

# 4개의 요소를 리스트에 추가하고, 각 요소를 0으로 초기화합니다.
for i in range(0, 5):
    aa.append(0)

# 합계를 저장할 변수 hap을 0으로 초기화합니다.
hap = 0

# 4개의 숫자를 사용자로부터 입력받습니다.
for i in range(0, 5):
    aa[i] = int(input(str(i+1) + "번째 숫자 : "))  # i+1은 사용자에게 보여주는 숫자를 1부터 시작하게 합니다.

# 리스트 aa의 첫 번째 요소부터 다섯번째 요소까지의 합을 계산합니다.
hap = aa[0] + aa[1] + aa[2] + aa[3] + aa[4]

# 계산된 합계를 출력합니다.
print("합계 ==> %d" % hap)

while 반복문으로 위의 코드와 같게

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 빈 리스트 aa를 생성하고, 크기 5만큼 0으로 초기화합니다.
aa = [0] * 5
# 합계를 저장할 변수 hap을 선언하고 0으로 초기화합니다. 입력받을 숫자의 개수를 세기 위한 변수 num도 0으로 초기화합니다.
hap, num = 0, 0

# 5개의 숫자를 입력받기 위한 while 반복문입니다.
while num < 5:
    # 사용자로부터 num+1번째 숫자를 입력받아 리스트 aa의 num번째 위치에 저장합니다.
    aa[num] = int(input(str(num+1) + "번째 숫자 : "))
    # 입력받은 숫자를 hap에 더해 합계를 업데이트합니다.
    hap += aa[num]
    # 다음 숫자를 입력받기 위해 num을 1 증가시킵니다.
    num += 1

# 모든 숫자의 입력이 끝난 후, 합계를 출력합니다.
print("합계 ==> %d" % hap)

리스트 슬라이싱

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
aa = [10, 20, 30, 40]
# 리스트 aa의 첫 번째 요소부터 세 번째 요소까지 추출합니다. 인덱스는 0부터 시작합니다.
# 따라서, [10, 20, 30]이 결과로 반환됩니다.
aa[0:3]

# 리스트 aa의 세 번째 요소부터 네 번째 요소까지 추출합니다. 인덱스 2부터 시작하여 인덱스 3까지입니다.
# 따라서, [30, 40]이 결과로 반환됩니다.
aa[2:4]

# 리스트 aa의 세 번째 요소부터 끝까지 추출합니다. 인덱스 2부터 시작합니다.
# 따라서, [30, 40]이 결과로 반환됩니다.
aa[2:]

# 리스트 aa의 시작부터 두 번째 요소까지 추출합니다. 인덱스 0부터 시작하여 인덱스 1까지입니다.
# 따라서, [10, 20]이 결과로 반환됩니다.
aa[:2]

리스트 병합

1
2
3
4
5
6
aa = [10, 20, 30]
bb = [40, 50, 60]
# aa 리스트와 bb 리스트를 합친 값을 출력
print(aa + bb)
# aa리스트를 3번0 곱하기 해서 [10, 20, 30]을 세번 곱한 값이 출력됨 ...
print(aa * 3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 리스트 aa를 생성하고 초기 값 [10, 20, 30]을 설정합니다.
aa = [10, 20, 30]

# 리스트의 두 번째 요소(인덱스 1)를 새로운 리스트 [200, 201]으로 변경합니다.
aa[1] = [200, 201]
# 변경된 리스트를 출력합니다. 이 시점에서 리스트는 [10, [200, 201], 30]입니다.
print(aa)

# 변경된 리스트의 두 번째 요소(인덱스 1에 있는 리스트 [200, 201])를 삭제합니다.
del(aa[1])
# 요소를 삭제한 후의 리스트를 출력합니다. 이 시점에서 리스트는 [10, 30]입니다.
print(aa)

# 1:2 를 잡고 [200,201] 을 하면 리스트안에 리스트가 아니라 num이 들어가는데
# 1 을 잡고 [200, 201] 을 하면 리스트안에 리스트가 들어감 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 리스트 aa를 생성하고 초기 값 [10, 20, 30]을 설정합니다.
aa = [10, 20, 30]

# 리스트의 두 번째 요소(인덱스 1)를 새로운 리스트 [200, 201]으로 변경합니다.
aa[1] = [200, 201]
# 변경된 리스트를 출력합니다. 이 시점에서 리스트는 [10, [200, 201], 30]입니다.
print(aa)

# 변경된 리스트의 두 번째 요소(인덱스 1에 있는 리스트 [200, 201])를 삭제합니다.
del(aa[1])
# 요소를 삭제한 후의 리스트를 출력합니다. 이 시점에서 리스트는 [10, 30]입니다.
print(aa)

# 1:2 를 잡고 [200,201] 을 하면 리스트안에 리스트가 아니라 num이 들어가는데
# 1 을 잡고 [200, 201] 을 하면 리스트안에 리스트가 들어감 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 리스트 aa를 생성하고 초기값을 설정합니다.
aa = [10, 20, 30, 40, 50]
# 리스트의 인덱스 1부터 3까지의 요소를 삭제합니다.
aa[1:4] = []
# 변경된 리스트를 출력합니다. 결과는 [10, 50]입니다.
print(aa)

# 리스트 aa를 빈 리스트로 재할당합니다.
aa = [10, 20, 30]; aa = []
# 빈 리스트를 출력합니다.
print(aa)

# 리스트 aa를 None으로 재할당합니다.
aa = [10, 20, 30]; aa = None
# None을 출력합니다.
print(aa)

# 리스트 aa를 삭제합니다.
aa = [10, 20, 30]; del(aa)
# 여기서 print(aa)를 시도하면 에러가 발생합니다. aa가 더 이상 존재하지 않기 때문입니다.
print(aa)  # 이 줄을 실행하면 NameError가 발생합니다.

배운것

리스트를 조작하는 법과 반복문 i를 str으로 변환 후 str과 합쳐서 출력해야한다는것, for문과 while문 그리고 elif로 더 가독성 좋게 코드 짜는 법등을 배움

This post is licensed under CC BY 4.0 by the author.