변수 = 어떠한 값을 담는 것
컴퓨터 입장에서는 값이 담긴 위치를 가르키는 것 = 메모리에 올려둔다
변수 = 메모리에 올려져 있는 값을 지적하고 있는것. 값과 연결되어 있다
[문자열]
자르기 ':'
text = 'abcdefghijk'
result = text[:3] //앞에서부터 3자리 문자열 표시
print(result)
abc
text = 'abcdefghijk'
result = text[3:] //3번째 문자열 뒤의 문자열 표시
print(result)
defghijk
토막상식
슬라이싱하는 숫자 없이 : 만 있으면 복사
-리스트와 딕셔너리
리스트 : 순서가 중요하게 값을 담는 것. [ ] 안에 입력
딕셔너리 : key:value로 값을 담는 방법에 대한 자료형
sort
값을 정렬해서 보여줌
반복문 for
enumerate,break 이뉴머레이트, 브레이크
enumerate
인자로 넘어온 목록을 기준으로 인덱스 번호와 배열의 원소를 튜플 형태로 반환
데이터가 10000개인 상황에서 반복적으로 테스트를 해야할 경우 이뉴머레이트와
브레이크의 조합으로 지정한 갯수만큼만 테스트 해볼 수 있음
조건문 if에서 print 입력할 때 들여쓰기 꼭 신경쓰기!! if문 안에 print가 있으면 원하는
값이 제대로 출력이 안됨
sum = sum + num 직관적으로 쓰면 sum += num
주민등록 뒷자리 첫번쨰 자리가 짝수면 여성, 홀수면 남성을 출력하는 문제
주민등록번호는 문자열로 받기 때문에 num 앞에 int()를 사용해서 문자열을 숫자열로 변환
def check_gender(pin):
num = pin.split('-')[1][:1]
if int(num) % 2 == 0:
print('여성')
else:
print('남성')
check_gender('150101-1012345')
check_gender('150101-2012345')
check_gender('150101-4012345')
tuple 튜플
리스트랑 똑같이 생겼는데 불변형
[ ]가 아니고 ( )를 사용, 순서가 있는 자료형인데 불변형, 뭘 더 넣을수도 없음
주로 쓰이는 경우는
set 집합
특징 : 중복을 제거해 준다.
a = ['사과','감','배','수박','딸기']
b = ['배','사과','포도','참외','수박']
교집합 &
a_set = set(a)
b_set = set(b)
print(a_set & b_set)
{'배', '사과', '수박'}
합집합 |
a = ['사과','감','배','수박','딸기']
b = ['배','사과','포도','참외','수박']
a_set = set(a)
b_set = set(b)
print(a_set | b_set)
{'포도', '참외', '배', '딸기', '수박', '사과', '감'}
차집합 -
student_a = ['물리2','국어','수학1','음악','화학1','화학2','체육']
student_b = ['물리1','수학1','미술','화학2','체육']
set_a = set(student_a)
set_b = set(student_b)
print(set_a - set_b)
{'물리2', '국어', '음악', '화학1'}
f-string print(f' 내용 변수값은 중괄호 사이에{변수} ')
문자열을 어딘가에 표현할 때 굉장히 간단해 짐
예외처리 try: except: 서버에 콜을 하는경우 내 잘못이 아니고 서버쪽에 잘못된 부분이 있을 가능성도 있기 때문에
이런 경우 트라이 익셉트문으로 잡아주면 항상 돌아가는거에서 큰 무리 없이 돌아갈 수 있음. 그러나 이거를 남용하면 돌아는 가는데
뭔가 이상해지고 무슨 에러가 나는지 모를수 있기 때문에 웬만하면 안쓰기를 추천
people = [
{'name': 'bob', 'age': 20},
{'name': 'carry', 'age': 38},
{'name': 'john', 'age': 7},
{'name': 'smith', 'age': 17},
{'name': 'ben', 'age': 27},
{'name': 'bobby'},
{'name': 'red', 'age': 32},
{'name': 'queen', 'age': 25}
]
for person in people:
try:
if person['age'] > 20:
print(person['name'])
except:
print(person['name'], '에러입니다')
carry
ben
bobby 에러입니다
red
queen
실행중에 에러를 만나면 중간에 꺼지는게 아니라
예외처리를 해서 '에러입니다'문구를 출력하게 함
파일불러오기
from 파일명 import (은 전체, 특정 함수만 불러오고 싶으면 함수명)
ex)from main_func import *
한줄의 마법
if문 삼항 연산자
num = 3
result = ('짝수' if num % 2 == 0 else '홀수') //괄호는 없어도 되지만 헷갈리니까 괄호 쓰기를 추천
print(f'{num}은 {result}입니다.')
3은 홀수입니다.
for문
a_list = [1,3,2,5,1,2]
b_list = [a*2 for a in a_list] //a_list에 있는걸 하나씩 꺼내서 돌리는데 a에 곱하기 2를해서 b_list에 담아라
print(b_list)
[2, 6, 4, 10, 2, 4]
map //people를 하나하나 돌면서 check_adult에다가 넣어라. 그리고 그 결과값을 다시 리스트로 묶은 것
people = [
{'name': 'bob', 'age': 20},
{'name': 'carry', 'age': 38},
{'name': 'john', 'age': 7},
{'name': 'smith', 'age': 17},
{'name': 'ben', 'age': 27},
{'name': 'bobby', 'age': 57},
{'name': 'red', 'age': 32},
{'name': 'queen', 'age': 25}
]
def check_adult(person):
if person['age'] > 20:
return '성인'
else:
return '청소년'
result = map(check_adult, people)
print(list(result))
map, lambda = people의 요소를 하나하나 x에 넣고 그 x의 age값이 20보다 크면 걔네들만 취해라
people = [
{'name': 'bob', 'age': 20},
{'name': 'carry', 'age': 38},
{'name': 'john', 'age': 7},
{'name': 'smith', 'age': 17},
{'name': 'ben', 'age': 27},
{'name': 'bobby', 'age': 57},
{'name': 'red', 'age': 32},
{'name': 'queen', 'age': 25}
]
result = filter(lambda x: x['age'] > 20, people)
print(list(result))
[{'name': 'carry', 'age': 38}, {'name': 'ben', 'age': 27}, {'name': 'bobby', 'age': 57}, {'name': 'red', 'age': 32}, {'name': 'queen', 'age': 25}]