🌺 정수형 (정수를 다루는 자료형)
양의 정수, 음의 정수, 0
a = 1000
print(a)
a = -7
print(a)
a = 0
print(a)
🌺 실수형 (소수점 아래의 데이터를 포함하는 수 자료형)
a = 157.93
print(a)
a = -1937.2
print(a)
a = 75.25e1
print(a)
a = 3954e-3
print(a)
개발과정에서 실수 값을 제대로 비교하지 못해서 원하는 결과를 얻지 못할 수 있음.
이런 경우에는 round() 함수를 이용.
ex. 123.456 을 소수 셋째 자리에서 반올림 -> round(123.456, 2)라고 작성
결과는 123.46
요렇게 round를 써주면 됨!
수 자료형에 대해 사칙연산과 나머지 연산자가 많이 사용됨.
단, 나누기 연산자(/)를 주의해서 사용해야.
-> 파이썬에서 나누기 연산자(/)는 나눠진 결과를 실수형으로 반환.
ex. 2.33333333333 (몇 쩜 몇)
다양한 로직을 설계할 때 나머지 연산자(%)를 이용해야 할 때가 많음
ex. a가 홀수인지 체크해야 하는 경우 ( a % 2 != 0 )
파이썬에서는 몫을 얻기 위해 몫 연산자(//)를 사용
이외에도 거듭 제곱 연산자(**)를 비롯해 다양한 연산자들이 존재)
🙂 자료형 🙂
🐼 리스트 자료형: 데이터를 연속적으로 담아 처리하기 위해 사용하는 자료형
리스트 대신 배열 혹은 테이블이라고 부르기도 함!
🌺 리스트 초기화?
대괄호([])안에 원소를 넣어 초기화, 혹은 쉼표(,)로 원소를 구분
비어있는 리스트를 선언하고자 할 때는 list() 혹은 간단히 []를 이용 가능
리스트의 원소에 접근할 때는 인덱스(Index) 값을 괄호에 넣음
인덱스는 0부터 시작!
인덱스 값을 입력, 리스트의 특정한 원소에 접근하는 것을 인덱싱!
(인덱스 값은 양의 정수/음의 정수 모두 사용 가능)
-> 음의 정수를 넣으면 원소를 거꾸로 탐색하게 됨.
리스트에서 연속적인 위치를 갖는 원소들을 가져와야 할 때는 슬라이싱을 이용!
끝 인덱스는 실제 인덱스보다 1을 더 크게 설정함
🌺 리스트 컴프리헨션
a = [i for i in range(10)]
print(a)
1) array = [i for i in range(20) if i % 2 ==1]
print(array)
2) array = []
for i in range(20):
if i % 2 == 1:
array.append[i]
print(array)
🌺 언더바는 언제 사용?
1) summary = 0
for i in range(1, 10):
summary += i
print(summary)
2) for _ in range(5):
print("Hello World")
-> 이렇게 단순반복일 때는 언더바(_)를 사용!
🌺 리스트 관련 가장 많이 나오는 함수()
append()
sort() -> 기본 정렬 기능으로 오름차순으로 정렬
sort(reverse=True) -> 내림차순
reverse()
insert() -> 삽입할 위치 인덱스, 삽입할 값!
count()
remove() -> 특정한 값을 갖는 원소를 제거할 때, 오직 하나만 제거 !
a = [1,2,3,4,5,5]
remove_set = {3,5}
result = [i for i in a if i not in remove_set]
print(result)
🐼 문자열 자료형 : 문자열 변수를 초기화할 때는 큰따옴표(")나 작은 따옴표(')를 이용
문자열 안에 큰따옴표나 작은따옴표가 포함되어야 하는 경우가 있음!
백슬래시()를 사용하면, 큰따옴표나 작은따옴표를 원하는 만큼 포함시킬 수 있음!
🐼 튜플 자료형 : 한번 선언된 값 변경 불가 (한번 값 할당 되면 끝!)
* 리스트는 값 변경 가능 but 튜플은 안돼.
리스트는 [대괄호], 튜플은 (소괄호)
튜플은 리스트에 비해 상대적으로 공간 효율적!
🐼 사전 자료형(딕셔너리) : 키와 값의 쌍을 데이터로 가지는 자료형
a = dict()
a['홍길동'] = 97
a['이순신'] = 98
print(a)
b = {
'홍길동' : 97,
'이순신' : 98
}
print(b)
print(b['이순신'])
key_list = list(b.keys())
print(key_list)
🐼 집합 자료형
data = set([1,1,2,3,4,4,5])
print(data)
data = {1,1,2,3,4,4,5} # 중괄호를 써주기만해도 중복을 제거해쥼!
print(data)
🌺 사전 자료형과 집합 자료형의 특징
# 공백 기준으로 구분된 데이터를 입력 받을 때는 다음과 같이 사용함.
list(map(int, input().split()))
# 공백 기준으로 구분된 데이터의 개수가 많지 않다면, 다음과 같이 사용함.
a, b, c = map(int, input().split())
# 데이터의 개수 입력
n = int(input())
# 각 데이터를 공백을 기준으로 구분하여 입력
data = list(map(int, input().split()))
data.sort(reverse=True)
print(data)
# n, m, k를 공백 기준으로 구분하여 입력
n, m, k = map(int, input().split())
print(n, m, k)
import sys #요거 임포트 넘 중요!
# 문자열 입력받기
data = sys.stdin.readline().rstrip()
print(data)
answer = 7
print(f"정답은 {answer}입니다.")
A in 리스트, 튜플, 문자열, 딕셔너리
A not in 문자열, 튜플, 문자열, 딕셔너리
아무것도 처리하고 싶지 않을 때, pass 키워드 사용
a = 50
if a >= 30:
pass
else:
print("a < 30")
while문과 for문 어떤걸 사용해도 상관없지만 for문 쓰는게 더 효율적!
while문
i = 1
result = 0
#i가 9보다 작거나 같을 때 아래 코드를 반복적으로 실행
while i <= 9:
result += i
i += 1
print(result)
for 변수 in 리스트:
실행할 소스코드
array = [9,8,7,6,5] #리스트, 튜플 아무거나 상관없음~~
for x in array:
print(x)
result = 0
#i는 1부터 9까지의 모든 값을 순회
for i in range(1,10):
result += i
print(result)
result = 0
for i in range(1,10):
if i % 2 == 0:
continue #짝수는 건너뛰고~!
result += i #홀수일때만!!!!!
print(result)
i = 1
while True:
print("현재 i의 값:", i)
if i == 5:
break
i += 1
for i in range(2,10):
for j in range(1,10):
print(i, "X", j, "=", i*j)
print()
def 함수명(매개변수):
실행할 소스코드
return 반환 값
#예시1
def add(a,b):
return a+b
print(add(3,7)
#예시2
def add(a,b):
print("함수의 결과:", a+b)
add(3,7)
def add(a,b):
print("함수의 결과", a+b)
add(b=3,a=7)
a = 0
def func():
global a
a += 1
for i in range(10):
func()
print(a)
def operator(a,b):
add_var = a+b
subtract_var = a-b
multiply_var = a*b
divide_var = a/b
return add_var, subtract_var, multiply_var, divide_var
a, b, c, d = operator(7,3)
print(a, b, c, d)
def add(a,b):
return a+b
# 일반적인 add() 메서드 사용
print(add(3,7))
# 람다 표현식으로 구현한 add() 메서드
print(lambda a,b: a+b)(3,7))
# 방식1
array = [('홍길동', 50),('이순신',32),('아무개',74)]
def my_key(x):
return x[1] # 튜플이 주어졌을 때 두번째 원소를 return하도록 명시.
print(sorted(array, key=my_key)) #정렬기준을 key속성의 값으로 넣어줌으로써 정렬을 수행.
print(sorted(array, key=lambda x: x[1]))
# 방식2
list1 = [1,2,3,4,5]
list2 = [6,7,8,9,10]
result = map(lambda a, b: a+b, list1, list2)
print(list(result)