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.