a = 3
b = "hoesu"
c = (3 == 2)
print(c) // False
a = 2
b = '2'
print(a+b) // 에러
str(number)
# 동일
a = '2'
a = str(2)
len(string)
text = 'abcdefghijk'
result = len(text)
print(result) # 11
앞부터 인덱스까지 자르기 : string[:index]
인덱스 이후부터 끝까지 자르기 : string[index:]
시작 인덱스와 마지막 인덱스 정해서 부분 자르기 : string[startIndex:lastIndex]
복사하기 : string[:]
특정 문자열로 자르기 : split(’sting’)
text = 'abcdefghijk'
# 앞부터 자르기
result = text[:3] # abc
# 뒤부터 자르기
result = text[3:] # defghijk
# 부분 지정하여 자르기
result = text[3:8] # defgh
# 복사
result = text[:] # abcdefghijk
# 특정 문자열로 자르기
my_email = 'ttukumo@naver.com'
result = my_email.split('@')[1].split('.')[0]
print(result) // naver
✍️ Q.
문자열의 앞의 반만 출력하기
> 나의풀이 (강의풀이와 동일)
text = 'sparta'
result = text[:3]
print(result)
전화번호의 지역번호 출력하기
> 나의풀이 (강의풀이와 동일)
phone = '02-123-1234'
result = phone.split('-')[0]
print(result)
a_list = ['사과', '배', '감']
print(a_list[0]) // 사과
a_list = [2, '배', False, ['사과', '감']]
print(a_list[3][1]) # 감
a_list = [1, 5, 6, 7, 2]
a_list.append(99)
print(a_list[5]) # 99
print(a_list) # [1, 5, 6, 7, 2, 99]
len(list)
list[index]
list.sort( )
list.sort(reverse=True)
(element in list)
a_list = [1, 5, 6, 7, 2]
result = a_list[-1]
result = len(a_list)
# 정렬
a_list.sort()
# 역순 정렬
a_list.sort(reverse=True)
# 요소 찾기
result = (99 in a_list) # False
dic_name = {”key” : value}
dict_name[”key”] = value
person = {"name":"Alice", "age": 16, "scores": {"math": 81, "science": 92, "Korean": 84}}
a_dict = {'name':'bob', 'age':27, 'friend': ['영희','철수']}
‘key’ in dict_name
result = ('height' in a_dict)
print(result) # True or False
people = [
{'name': 'bob', 'age': 27},
{'name': 'john', 'age': 30}
]
print(people)
print(people[1]) # {'name': 'john', 'age': 30}
print(people[1]['age']) # 30
✍️ Q. 딕셔너리에서 원하는 정보를 찾아보기
smith의 science 점수를 출력해보세요
> 나의 풀이 (강의풀이와 동일)
people = [
{'name': 'bob', 'age': 20, 'score':{'math':90,'science':70}},
{'name': 'carry', 'age': 38, 'score':{'math':40,'science':72}},
{'name': 'smith', 'age': 28, 'score':{'math':80,'science':90}},
{'name': 'john', 'age': 34, 'score':{'math':75,'science':100}}
]
print(people[2]['score']['science'])
money = 5000
if money > 3800:
print('택시를 타자')
else:
print('너무 비싸서 못타')
print('그럼 뭘타지?') # else에 해당되어도 따로 실행이 됨
자바스크립트의 else if와 동일
money = 1000
if money > 3800:
print('택시를 타자')
elif money > 1200:
print('버스를 타자')
else:
print('그냥 걸어가자!')
**for** element **in** dict
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}
]
# 딕셔너리의 요소를 하나씩 출력하기
for person in people:
print(person)
# 20살이 넘는 사람의 이름과 나이만 출력
for person in people:
name = person['name']
age = person['age']
# print(name, age)
if age > 20:
print(name, age)
for i, element in enumerate(dict)
# i 변수는 인덱스를 뜻함
# 인덱스가 3보다 크면 멈추기
for i, person in enumerate(people):
name = person['name']
age = person['age']
print(i, name, age)
if i > 3:
break
✍️ Q. 리스트에서 짝수만 출력하는 함수 만들기
> 나의 풀이 (강의 풀이와 동일)
num_list = [1, 2, 3, 6, 3, 2, 4, 5, 6, 2, 4]
for num in num_list:
if num % 2 == 0:
print(num)
✍️ Q. 리스트에서 짝수의 개수를 출력하기
> 나의 풀이 (강의 풀이와 동일)
oddCount= 0
for num in num_list:
if num % 2 == 0:
oddCount += 1
print(oddCount)
✍️ Q. 리스트 안에 있는 모든 숫자 더하기
> 나의 풀이 (강의 풀이와 동일)
sum = 0
for num in num_list:
sum += num
print(sum)
✍️ Q. 리스트 안에 있는 자연수 중 가장 큰 숫자 구하기
> 나의 풀이 (강의 풀이와 동일)
max_num = 0;
for num in num_list:
if num > max_num:
max_num = num;
print(max_num)
: define ‘정의하다’의 앞글자!
def 함수명( ): 실행코드
조건문과 마찬가지로, 함수의 실행 코드는 반드시 들여쓰기 해야된다.
def 함수명(매개변수..):
실행코드
def bus_rate(age):
if age > 65:
print('무료입니다.')
elif age > 20:
print('성인입니다.')
else:
print('청소년입니다.')
bus_rate(15)
# return 값 지정
def bus_rate(age):
if age > 65:
return 0
elif age > 20:
return 1200
else:
return 750
myrate = bus_rate(15)
print(myrate)
✍️ Q. 주민등록번호를 입력 받아 성별을 출력하는 함수 만들기
주민등록번호 뒷자리의 맨 첫 번째 숫자가 1, 3 등 홀수이면 남성, 2, 4 등 짝수이면 여성이죠?
힌트! → "2"라는 문자열을 숫자로 바꾸려면? int("2")
이렇게, int로 감싸주세요!
> 나의 풀이
num = '';
def check_gender(pin):
num = pin.split('-')[1][0]
# 강의 풀이
# num = pin.split('-')[1][:1]
if int(num) % 2 == 0:
print('female')
else:
print('male')
my_pin = '200101-3012345'
check_gender(my_pin)
my_pin = '200101-2012345'
check_gender(my_pin)
변수명 = ( 요소, … )
a = (1, 2, 3)
print(a[0])
a[0] = 4
print(a) # 에러
a_dict = [('bob','24'),('john','29'),('smith','30')]
집합에 관련된 것을 쉽게 처리하기 위해 만든 자료형
집합 자료형은 set 키워드를 사용하거나, 문자열을 입력하여 만들 수 있다.
※ 비어 있는 집합 자료형은 s = set()
로 만들 수 있다.
# set 키워드 사용
a = set([1,2,3])
print(a) # {1, 2, 3}
# 문자열 입력
b = set("Hello")
print(b) # {'e', 'H', 'l', 'o'}
특징
중복을 허용하지 않는다.
순서가 없다(Unordered).
💡 set 자료형은 순서가 없기(unordered) 때문에 인덱싱으로 값을 얻을 수 없다. ※ 딕셔너리 역시 순서가 없는 자료형이라 인덱싱을 지원하지 않는다. 리스트나 튜플은 순서가 있기(ordered) 때문에 인덱싱을 통해 자료형의 값을 얻을 수 있다.set 자료형에 저장된 값을 인덱싱으로 접근하려면
다음과 같이 리스트나 튜플로 변환한 후 접근할 것.
s1 = set([1,2,3])
l1 = list(s1)
print(l1)
print(l1[0])
t1 = tuple(s1)
print(t1)
print(t1[0])
집합 유용한 기능
- 교집합 : a_set & b_set
- 합집합 : a_set | b_set
- 차집합 : a_set - b_set
b = ['사과','감','배','수박','딸기']
c = ['배','사과','포도','참외','수박']
b_set = set(b)
c_set = set(c)
print(b_set & c_set)
print(b_set | c_set)
✍️ Q. A가 들은 수업 중, B가 듣지 않은 수업을 찾아보기
> 나의 풀이
student_a = ['물리2','국어','수학1','음악','화학1','화학2','체육']
student_b = ['물리1','수학1','미술','화학2','체육']
a_set = set(student_a)
b_set = set(student_b)
print(a_set - b_set)
f ' {변수명} 문자열 내용
※ 자바스크립트의 템플릿 리터럴과 같이 변수와 문자열을 가독성 좋게 쓸 수 있다.scores = [
{'name':'영수','score':70},
{'name':'영희','score':65},
{'name':'기찬','score':75},
{'name':'희수','score':23},
{'name':'서경','score':99},
{'name':'미주','score':100},
{'name':'병태','score':32}
]
for s in scores:
name = s['name']
score = str(s['score'])
# print(name + '의 점수는 ' + score + '점입니다.')
print(f'{name}의 점수는 {score}점입니다.')
try - except 문
try 문을 실행하되, 에러가 발생하면 except 문 실행
👉 **실제 프로젝트에서 남용하면, 에러 발생 지점을 찾기 어렵다.** 서버한테 콜을 한다거나, 서버 쪽에서 잘못된 부분을 찾고자 할 때 많이 쓴다.# 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}
]
for person in people:
# print(person)
if person['age'] > 20:
print(person['name'])
예외 처리 구문 사용
# 조건의 기준이 되는 key가 없을 경우
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:
# print(person)
if person['age'] > 20:
print(person['name'])
## >> 에러 발생 KeyError: 'age'
for person in people:
try:
if person['age'] > 20:
print(person['name'])
except:
print('에러입니다.')
print(person['name'], '에러입니다.')
# 어디에서 에러가 났는지 좀더 정확하게 알 수 있다.
## 에러가 발생하는 부분은 except 문 실행
from 불러오는 파일명 import *
from 불러오는 파일명 import 불러오는 부분
from main_func import say_hi_to
(참일 때 값) if (조건) else (거짓일 때 값)
num = 3
# if num % 2 == 0;
# result = '짝수'
# else:
# result = '홀수'
result = ('짝수' if num % 2 == 0 else '홀수')
print(f'{num}은 {result}입니다.')
[ 요소에 적용할 식 for 요소 in 리스트명]
a_list = [1,3,2,5,1,2]
b_list = []
# for a in a_list:
# b_list.append(a*2)
b_list = [a * 2 for a in a_list]
print(b_list)