사칙연산
| 이름 | 공식 | 예시 |
|---|
| 나누기 | 5/2 | 2.5 |
| 몫 | 5//2 | 2 |
| 나머지 | 5%2 | 1 |
| 거듭제곱 | 5**2 | 25 |
| 몫,나머지 | divmod(10, 3) | (3, 1) |
index
index(찾을값,[시작,끝] 선택)
scores2 = [100,95,80,100,60]
print("100:" scores2.index(100,1))
인덱싱 / 슬라이싱
word = "Python"
print(word[3])
print(word[5])
text = "Python"
print(text[0:3])
print(text[2:6])
print(text[::])
print(text[::-1])
숫자 = "123456789"
print(숫자[::2])
print(숫자[4:1:-1])
print(숫자[4:])
숫자.count("7")
(123456789.count("7") 도 가능)
숫자.index("7")
(123456789.index("7") 도 가능)
자료형종류
"python" == "Python"
"Python" == "Python"
3.0 == 3
논리 연산자
-------------------------------------------------------------
True and True
True and False
False and True
False and False
-------------------------------------------------------------
True or True
True or False
False or True
False or False
-------------------------------------------------------------
not True
not False
-------------------------------------------------------------
10 == 12 or 6 != 2
2 > 5 and 7 == 7
not 14 <= 15
not 7 is 7.0
-------------------------------------------------------------
bool("힘들어요 여러분")
------------------------------------------------------------------------
print(False and "힘들어요")
and는 *기 때문에 앞에 0이 나오면 뒤에 뭐가 나와도 False이기 때문에 앞만 봐서 False 출력
------------------------------------------------------------------------
print(True or '힘들어요')
or는 +이기 때문에 앞에 1이 나왔으면 뒤에 0이든 1이든 True 가 출력되서 앞만 봐서 True 출력
------------------------------------------------------------------------
print(True and '힘들어요')
입력과 출력
번호1, 번호2, 번호3, 번호4 = map(int, input().split(","))
print(번호1, 번호2, 번호3, 번호4)
print("a", "b", "c", "d", sep='/')
print("a", "b", "c", "d", sep =':')
print("a", "b", "c", "d", sep = ' ')
print("a", "b", "c", "d", sep ='\n')
print("a", "b", "c", "d", end='/')
print("a", "b", "c", "d", end='/')
print("a", "b", "c", "d", end=' ')
print("a", "b", "c", "d", end=' ')
리스트
숫자 = [1, 2, 3, 4, 5, 6]
숫자.append(7)
숫자.extend([8,9,10])
숫자.insert(공간번호(index),값)
리스트.index(찾을값)
----------------------------------------------------------------
숫자 = [1, 2, 3, 4, 5, 6]
숫자[1:3]
숫자[-1]
숫자[-2]
숫자[::-1]
숫자[4] = 9 -> 3번째 리스트 요소를 변경 5 -> 9 = [1,2,3,4,9,6]
nums = [10, 20, 35, 7, 50, 25] max(nums)
----------------------------------------------------------------
이차원 = [[2,0],[3,0]]
이차원[0]
이차원[1]
이차원[1][0]
이차원.append([4,1])
----------------------------------------------------------------
짝수 = list(range(2,12,2))
----------------------------------------------------------------
숫자 = ["일","이","삼"] 숫자놀이="".join(숫자)
----------------------------------------------------------------
all=[]
a=list(range(1,5))
all.append(a)
li=[[1,2,3],[4,5,6],[7,8,9]]
len(li)
li[0]
a=list(map(int,input().split()))
리스트.메서드()
li = [3, 1, 4, 1, 5]
li.append(9)
li.extend([2, 6])
li.insert(2, 7)
li.remove(1)
li.pop()
li.pop(2)
li.index(9)
li.count(1)
li.sort()
li.sort(reverse=True)
li.reverse()
li.clear()
li_t=li.copy()
튜플 ()
- 튜플은 ()를 사용하지만 ()를 없이 선언해도 된다.
- 값의 변경 삭제 삽입 불가 (새로운 값 추가 불가)
- 길이 구하기 가능
숫자 = (1,2,3,4,5) = 1,2,3,4,5
숫자_일 = (1,)
숫자_일 = (1)
print(숫자 * 2)
print(숫자 * 숫자)
print(숫자.index(3))
print(숫자.count(1))
print(숫자[1])
print(숫자[1:3])
숫자[2] = 5
-----------------------------------------
def oz_tuple():
return (1, 2)
x, y = oz_tuple()
print("x:", x)
print("y:", y)
--------------------------------------------------
a, b = 7, 3
x, y = divmod(a, b)
print("몫:", x)
print("나머지:", y)
출력; 0 1
for i, fruit in enumerate([1,2,3]): 1 2
print(i, fruit) 2 3
튜플.메서드()
t = (10, 20, 30, 20, 40)
t.count(20)
t.index(30)
딕셔너리 {}
- {key1:value1, key2:value2}
딕셔너리 = dict(zip(["힘", "지능", "체력", "민첩"], [10,20,30,40]))
딕셔너리[새로운키] = 값
딕셔너리.update({"key:value","key1:value1"})
딕셔너리 = {'힘': 10, '지능': 20, '체력': 30, '민첩': 40}
print({딕셔너리["힘']})
print("힘" in 딕셔너리)
print(딕셔너리.keys())
print(딕셔너리.values())
print(딕셔너리.items())
리스화된_딕셔너리 = list(딕셔너리.items())
print(리스화된_딕셔너리[0])
print(리스화된_딕셔너리[0][1])
print(리스화된_딕셔너리[0][0])
딕셔너리["힘"] = 100
딕셔너리["지구력"] = 100
딕셔너리.update({"손재주":44, "매력":100})
딕셔너리.메서드()
d = {"a": 1, "b": 2, "c": 3}
d.get("a")
d.get("z", 99)
d.keys()
d.values()
d.items()
d.update({"b": 5, "d": 10})
d.pop("a")
d.popitem()
d.setdefault("e", 7)
d.clear()
set = {}
사과_리스트 = list("apple")
사과_튜플 = tuple("apple")
사과_set = set("apple")
----------------------------------------------------------------
채소 = {"당근", "배추", "대파", "양파"}
채소.remove("잎")
채소.discard("깻")
채소.pop()
채소.add("토마토")
채소.update("깻잎")
----------------------------------------------------------------
채소1 = {"당근", "양파", "오이", "배추"}
채소2 = {"양파", "오이", "대파", "가자"}
채소1 | 채소2
set.union(채소1, 채소2)
채소1 & 채소2
set.intersection(채소1, 채소2)
채소1 - 채소2
set.difference(채소1, 채소2)
set.메서드()
s = {1, 2, 3}
s.add(4)
s.update([5, 6])
s.remove(3)
s.discard(10)
s.pop()
s.clear()
a = {1, 2, 3}
b = {3, 4, 5}
a | b
a & b
a - b
a ^ b
if
숫자 = 100
if 숫자 >50
if 숫자 <150
print("정답")
-----------------------------------------------
조거문 조건(True, False)
if True:
print(True)
else:
print(False)
if False:
print(True)
else:
print(False)
------------------
if None:
print(True)
else:
print(False)
------------------
if 0:
print(True)
else:
print(False)
if 1:
print(True)
else:
print(False)
if 1.1:
print(True)
else:
print(False)
----------------
if 'hello':
print(True)
else:
print(False)
if '':
print(True)
else:
print(False)
-----------------------------------
if not True:
print(True)
else:
print(False)
if not '':
print(True)
else:
print(False)
for
for i in range(5): 반복!! 0
print("반복!!", i) 반복!! 1
반복!! 2
반복!! 3
반복!! 4
for a in range(4,10):
print(a)
for b in range(4,10,2):
print(b)
for c in range(10,4,-1):
print(c)
for i in reversed(range(10)):
print(i)
-----------------------------------------------------------------------
과일 = ["두리안", "망고", "바나나", "멜론"]
for i in 과일:
print(i) 출력: 두리안 망고 바나나 멜론
for i in "가나다라":
print(i) 출력: 가 나 다 라 한글자씩 출력
print(i, end='') 출력: 가나다라 일자로 출력
for i in reversed("가나다라"):
print(i, end='') 출력: 가나다라 반대로 출력
-------------------------------------------------
정수 = [10, 5, 8]
부호 = [True, False, True]
합 = 0
for k, v in zip(부호, 정수):
if k:
합 += v
else:
합 -= v
print(f'총 합은 {합}입니다.')
-----------------------------------------------------
for i in range(100):
print(i)
if i == 5:
break
------------------------
for i in range(5):
if i % 2 == 0:
continue
print(i)
while
i = 0 증가 1
while i < 5: 증가 2
print('증가',i) 증가 3
i += 1 증가 4
i = 5 감소 4
while i > 0: 감소 3
print('감소',i) 감소 2
i-=1 감소 1
----------------------------------------
import random
i = 0
while i != 4:
i = random.randint(1,6)
print(i)
--------------------------------------------------
양파 = int(input())
while 양파>10:
print("양파", 양파, "개 남았습니다.")
양파 -=1
if 양파 ==0:
break
else:
print("양파 다 팔렸습니다.")
--------------------------------------------------
i = 0
while True:
print(i)
i+=1
if i == 5:
break
-----------------------------------------------------------
i = 0
while i < 5:
i+=1
if i % 2 == 0:
continue
print(i)
-----------------------------------------------------------
while (1)
try - except
try:
예외가 발생할 가능성이 있는 코드
except:
예외가 발생했을 때 실행할 코드
else:
예외가 발생하지 않았을 때 실행할 코드
finally:
무조건 실행할 코드
try:
x, y = map(int, input("밑변과 높이를 입력해주세요").split(" "))
print(f'삼각형의 넓이는 {x*y/2}입니다.')
except:
print("정수로 입력하지 않아 계산이 불가합니다.")
else:
print("계산이 정상적으로 되었습니다.")
finally:
print("프로그램이 종료 되었습니다.")
exception
- except ValueError:
- 에러가 발생했을 때 잡기만 하는 것
- 에러 객체(에러에 대한 구체적인 정보)를 변수로 받지 않습니다.
- 단순히 "ValueError가 나면 이 코드를 실행하라"는 뜻
try:
int("abc")
except ValueError:
print("숫자로 바꿀 수 없습니다.")
- except ValueError as exception:
- 발생한 에러 객체를 exception이라는 변수에 담는다.
- 에러 메시지를 출력하거나, 로그를 남기거나, 나중에 활용 가능
try:
int("abc")
except ValueError as exception:
print("에러 내용:", exception)
- 중요한건 exception이 아니라 as 가 중요 as 뒤는 에러 객체를 담는 변수이름일 뿐
타입 힌팅
- 타입 힌팅은 어떠한 제약 사항을 만들거나 강요되지 않는다. 즉, 잘못써도 오류발생X
name: str /list[str] / dict[str, int]
my_dog : str = "hunt"
my_dog_age : int = 7
dogs: list[str] = ["딕스훈트", "시바견", "웰시코기", "이탈리안그레이하운드"]
dogs: dict[str, int] = {
"닥스훈트" : 7,
"시바견" : 5,
"웰시코기" : 6,
"이탈리안그레이하운드" : 3,
}
-----------------------------------------------------------------
def hunt(name: str) -> str:
return name[0]
def hunt_info(name: str, age: int = 7) -> str:
return name + str(age)
def hunt_happy_time(name: str) -> None:
print("간식줄께" + name)
def hunt_bow(message: str, times: int = 10) -> list[str]:
return [message] * times
컴프리헨션
[표현식 for 변수 in 반복가능객체]
- for 문을 간단하게 한 줄로 표현해서 리스트,집합,딕셔너리 등을 빠르게 만들 수 있는 문법
numbers = [i for i in range(5)]
print(numbers)
evens = [i for i in range(10) if i % 2 == 0]
print(evens)
pairs = [(x, y) for x in range(3) for y in range(2)]
print(pairs)
squares = {x**2 for x in range(5)}
print(squares)
dic = {x: x**2 for x in range(5)}
print(dic)
데코레이터



람다
- lambda 매개변수 : 결과식
