공백을 기준으로 구분된 데이터 입력받을 때
# 입력 받은 후 공백 기준으로 구분하고, 원소를 정수형으로 바꿔주고 list형으로 만들어주기
list(map(int, input().split()))
공백 기준으로 구분된 데이터 개수가 많지 않을 때(정해진 양)
# 데이터 3개 들어올때
a, b, c = map(int, input().split());
print(a, b, c)
# 데이터의 개수 입력
n = int(input())
# 각 데이터를 공백을 기준으로 구분하여 입력
data = list(map(int, input().split()))
data.sort(reverse=True)
print(data)
# 65 90 75 34 99 => 입력
# [99, 90, 75, 65, 34] => 출력
빠르게 입력
sys.stdin.realine()
rstrip()
=> 줄바꿈 기호 제거f-string
a=1
b=2
print(a, b)
print(7, end=" ")
print(8, end=" ")
answer = 7
# 정수형 문자열로 바꾼 후 + 연산자 사용
print("정답 : " + str(answer) + "입니다.")
# f-string
print(f"정답은 {answer}입니다.")
x=15;
if x>=10:
print("x>=10")
if x>=0:
print("x>=0")
if x>=30:
print("x>=30")
코드의 블록을
들여쓰기
로 지정!!
x=15;
if x>=10:
print("x>=10")
if x>=0:
print("x>=0")
if x>=30:
print("x>=30")
score = 85;
# 들여쓰기로 코드 블록 구분
if score>= 70:
print('성적 70 이상')
if score >= 90:
print('우수한 성적')
else:
print('성적 70 미만')
print('분발할것')
조건문 기본형태
- if ~ elif ~ else
while
x=10
while x>5:
print(x)
for in문
in
뒤에 오는 데이터에 포함되어있는 원소를 첫번째 인덱스부터 차례대로 방문
array = [1, 2, 3, 4, 5]
for x in array:
print(x)
for range문
result = 0
# i는 1부터 9까지의 모든 값을 순회
for i in range(1,10):
result += i
print(result)
continue
result = 0
# i는 1부터 9까지의 모든 값을 순회
for i in range(1,10):
if i % 2 == 0:
continue
result += i
print(result)
break
i = 1
while True:
print("현재 i의 값:", i)
if i == 5:
break
i+=1
scores = [90, 85, 77, 65, 97]
cheating_student_list = {2, 4}
# cheating_student_list 리스트에 있는 점수 건너뛰기
for i in range(5):
if i+1 in cheating_student_list:
continue
if scores[i] >= 80:
print(i+1, "번 학생은 합격입니다.")
구구단
for i in range(2, 10):
for j in range(1, 10):
print(i, "X", j, "=", i*j)
print()
def func1(a):
print(a)
return 0
result = subtract(3,7)
#result => -4
a=0
def func():
global a
a += 1
for i in range(10):
func()
print(a)
(->이해가 잘 안됨, 다시 공부하기)
print((lambda a, b: a+b)(3,7))
array = [('홍길동', 50), ('이순신', 32), (배서연, 74)]
def my_key(x):
return x[1]
print(sorted(array, key=my_key))
print(sorted(array, key=lambda x: x[1]))
파라미터 저장
def add(a, b):
print(a+b)
add(b=3, a=7)
람다 예시 : 여러개의 리스트에 적용
list1 = [1,2,3,4,5]
list2 = [6,7,8,9,10]
result = map(lambda a,b: a+b, list1, list2)
print(list(result))
# sum() => 합
result = sum([1,2,3,4,5])
print(result)
# min(), max() => 최대 최소
min_result = min(7,3,5,2)
max_result = max(7,3,5,2)
print(min_result, max_result)
# eval() => 문자열을 식으로
result = eval("(3+5)*7")
print(result)
# sorted() => 정렬
result = sorted([9,1,8,5,4]) # 오름차순
reverse_result = sorted([9,1,8,5,4], reverse=True) # 내림차순
print(result)
print(reverse_result)
# sorted() with key
array = [('홍길동, 50'), ('이순신', 32), ('배서연', 74)]
result = sorted(array, key=lambda x: x[1], reverse=True)
print(result)
순열과 조합
permutations)
from itertools import permutations
data = ['A', 'B', 'C'] # 데이터 준비
result = list(permutations(data, 3))
print(result)
combination
from itertools import combinations
data = ['A', 'B', 'C'] # 데이터 준비
result = list(combinations(data, 2)) # 2개를 뽑는 모든 조합 구하기
print(result)
중복 순열과 중복 조합
from itertools import product
data = ['A', 'B', 'C']
# 2개를 뽑는 모든 순열 구하기 (중복 허용)
result = list(product(data, repeat=2))
print(result)
from itertools import combinations_with_replacement
data = ['A', 'B', 'C']
# 2개를 뽑는 모든 조합 구하기 (중복 허용)
result = list(combinations_with_replacement(data, 2))
print(result)
최대 공약수와 최소 공배수
import math
# 최소 공배수(LCM)를 구하는 함수
def lcm(a, b):
# 두 수를 곱하고 최대 공약수로 나눔
# //는 소수점 이하 자릿수를 제거한 몫을 구하는 연산자(Floor Division)
return a * b // math.gcd(a, b)
a=21
b=14
print(math.gcd(21, 14)) # 최대 공약수(GCD) 계산
print(lcm(21, 14)) # 최대 공배수(LCM) 계산