Coding/Python

[Python / 기본문법] 기본 자료형, 입출력, 함수

캠핑의자 2022. 9. 3. 02:49

코딩테스트를 준비하다가

파이썬이 기본 라이브러리로 많은 부분이 제공되기도 하고, 코드의 길이도 비교적 짧기 때문에

코테용으로 좋다는 이야기가 많아서 기본 문법을 익혀보았다.

 

강의

유튜브 (이코테 2021 강의 몰아보기) 

학부생 시절에 자주 들었던 동빈나님이 코딩테스트 강의를 내셨길래(넘 반가웠다..)

봤더니 정리가 잘 되어있어서 완강했다. 추천추천


기본 자료형

#은 출력 값

a = 5
print(a) #5

b = -.7
print(b) #-0.7

#지수
c = int(1e7)
print(c) #10의 7제곱

#소수점 계산
a = 0.3 + 0.6
print(a) #0.8999999999999999
print(round(a, 4)) #0.9

if round(a, 4) == 0.9:
  print(True)
elif round(a, 4) == 1:
  #아무것도 처리하고 싶지 않을 때
  pass
else:
  print(False)
  #True

 

사칙연산

#은 출력 값

d = 7
f = 3

#나누기
print(d / f) #2.3333333333333335
#나머지 와 몫
print(d % f , "and", d // f) #1 and 2

배열, 리스트

#은 출력 값

#크기가 N이고, 모든 값이 0인 1차원 리스트
n = 10
a = [0] * n
print(a) #[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

a = [i for i in range(10)]
print(a) #[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
#뒤에서 세 번째 원소 출력
print(a[-3]) #7
print(a[1 : 4]) #[1, 2, 3]

#리스트 컴프리헨션
#0부터 19까지의 수 중에서 홀수만 포함하는 리스트
array =  [i for i in range(1, 19) if i%2 == 1]
print(array) #[1, 3, 5, 7, 9, 11, 13, 15, 17]

#M X N 크기의 2차원 리스트
m = 2
n = 3
#반복을 수행하되 반복을 위한 변수의 값을 무시
array = [[0]*m for _ in range(n)]
print(array) #[[0, 0], [0, 0], [0, 0]]

#리스트 관련 기타 메서드
a = [1, 4, 3]

a.append(2)
print(a) #[1, 4, 3, 2]

a.sort(reverse = True)
print(a) #[4, 3, 2, 1]

a.reverse()
print(a) #[1, 2, 3, 4]

a.insert(2, 3)
a.insert(2, 3)
print("인덱스 2에 값 3을 추가", a) #인덱스 2에 값 3을 추가 [1, 2, 3, 3, 3, 4]
print("값이 3인 데이터 갯수", a.count(3)) #값이 3인 데이터 갯수 3

#값이 3인 데이터 하나만 삭제
a.remove(3)
print(a)
#[1, 2, 3, 3, 4]

#집합 자료형에 없는 데이터 모두 제거
remove_set = {3, 4}
result = [i for i in a if i not in remove_set]
print(result)
#[1, 2]

#튜플은 값의 변경 불가능, 공간효율적이다
a = (1,2,3,4,5,6,7)
print(a) #(1, 2, 3, 4, 5, 6, 7)

#사전 자료형은 변경 불가능한 자료형을 키로 사용
data = dict()
data['사과'] = 'Apple'
data['바나나'] = 'Banana'
data['코코넛'] = 'Coconut'
print(data)
#{'사과': 'Apple', '바나나': 'Banana', '코코넛': 'Coconut'}

data2 = {
  '홍길동' : 97,
  '이순신' : 89
}
print(data2)
{'홍길동': 97, '이순신': 89}

key_list = data.keys()
value_list = list(data.values())
#키만 담은 리스트
print(key_list)
#dict_keys(['사과', '바나나', '코코넛'])
#값만 담은 리스트
print(value_list)
#['Apple', 'Banana', 'Coconut']

#중복을 허용하지 않는 집합 자료형
data = set([1,1,2,3,4,4,4,5])
print("data", data)
#data {1, 2, 3, 4, 5}

data2 = {3,3,3,4,4,5}
print("data2", data2)
#data2 {3, 4, 5}

print("합집합", data | data2) #합집합 {1, 2, 3, 4, 5}
print("교집합", data & data2) #교집합 {3, 4, 5}
print("차집합", data - data2) #차집합 {1, 2}

data.add(7)
print("원소 추가", data) #원소 추가 {1, 2, 3, 4, 5, 7}

data.update([9, 10])
print("여러 개 추가", data) #여러 개 추가 {1, 2, 3, 4, 5, 7, 9, 10}

data.remove(7)
print("원소 삭제", data) #원소 삭제 {1, 2, 3, 4, 5, 9, 10}

 

입출력

#은 입/출력 값

print("입력할 갯수")
n = int(input()) #3
print("입력하세요")
data = list(map(int, input().split())) #1 2 3
print(data) #[1, 2, 3]

print("3개의 정수 입력", end=' :') #3개의 정수 입력 :1 2 3
a, b, c = map(int, input().split())
print("a = ", a, ", b= ", b, ", c = ", c) #a =  1 , b=  2 , c =  3

answer = 7
print(f"정답은 {answer}입니다.") #정답은 7입니다.

import sys
#한 줄에 여러 입력 값, 오른쪽 공백을 삭제
data = sys.stdin.readline().rstrip() #123 1234 25' '
print(data) ##123 1234 25

 

함수

#은 출력 값

#1부터 9까지 홀수의 합
i = 1
sum = 0
while i < 10:
    if i % 2 == 1:
        sum += i
    i += 1
print("sum = ", sum) #sum =  25

scores = [40, 70, 65, 80, 95]
cheating_student = {3, 4}

for i in range(5):
    if i + 1 in cheating_student:
        continue
    elif scores[i] >= 70:
        print(i + 1, "번 학생은 합격입니다.")
#2 번 학생은 합격입니다.
#5 번 학생은 합격입니다.

#함수
index = 0

def func(a, b):
    global index
    index += 1
    add = a + b
    return index, add


t, y = func(b=7, a=1)
print("index : ", t, "add_var : ", y)
#index :  1 add_var :  8

#람다 표현식 (함수)(파라미터)
print((lambda a, b: a + b)(3, 7)) #10


array = [('홍길동', 50), ('이순신', 32), ('아무개', 74)]

#(1) 일반
def my_key(x):
    return x[1]

#sorted(배열, 정렬기준:배열의 원소 기준)
print(sorted(array, key=my_key))
#[('이순신', 32), ('홍길동', 50), ('아무개', 74)]

#(2) 람다
print(sorted(array, key=lambda x: x[1]))
#[('이순신', 32), ('홍길동', 50), ('아무개', 74)]

print(array)
#[('홍길동', 50), ('이순신', 32), ('아무개', 74)]

list1 = [1, 2, 3, 4, 5]
list2 = [6, 7, 8, 9, 10]

#map : 각각의 원소에 함수를 적용

#map(함수, 배열1, 배열2)
result = map(lambda a, b: a + b, list1, list2)
print(list(result))
#[7, 9, 11, 13, 15]

 

정리

https://github.com/isyeonn/pyStudy/tree/main/Basic

 

GitHub - isyeonn/pyStudy: for python coding test

for python coding test. Contribute to isyeonn/pyStudy development by creating an account on GitHub.

github.com

 

'Coding > Python' 카테고리의 다른 글

[Python / 기본문법] 자주 쓰는 파이썬 라이브러리  (0) 2022.09.04