str() - 문자열로 변환 / len() - 문자열의 길이를 세어서 반환[:]∙[:3]∙[3:]∙[2:5]result = myEmail.split('@')[1].split('.')[0] << .split('') 문자열 자르기 메소드. 이메일 도메인을 찾는데 매우 유용함.first_name = 'hwuiinn'
last_name = 'Park'
print(first_name + last_name);
a = 2
b = a
print(a);
c = 3
d = 'c' # 문자열 c로 인식. 따옴표가 없으면 c = 3값이 d에도 할당되었을 것임. (d가 c의 값을 참조)
print(d);
a = '2'
b = 'hee'
print(a+b)
# a = 2
# b = 'hee'
# print(a+b) #숫자와 문자열은 연산되지 않는다. 그래서 TypeError: unsupported operand type(s) for +: 'int' and 'str' << Error가 뜬다.
# str()을 이용한 string타입으로 변환
a = '2'
b = str(True)
c = str(10)
print(a+b+c) # 문자열 22를 반환. str()메소드는 '숫자타입'과 '불리언 타입'을 문자로 바꿔 반환해줌.
# [:]를 이용한 문자열 나누기, 자르기
text = '가나다라마바사'
# result = len(text);
result = text[2:5] # [:3] 앞에서부터 문자열 3개만 반환해라. [3:] 앞에 3개 짜르고 문자열 나머지 반환해라. [2:5] 앞에 2개 짜르고 5까지 보인 후, 뒤에 나머지도 짤라라
print(result)
# Quiz - 문자열 앞에 4개만 출력하기
text = '안녕하세요저는민수아버지의친구사촌입니다.'
result = text[:4] # [4:]으로 하면 안녕하세 << 를 제외한 뒤에 문자열이 모두 출력된다.
print(result)
# 문자열 자르기
myEmail = 'gnldls8406@naver.com'
result = myEmail.split('@')[1].split('.')[0]
print(result)
# Quiz - 지역번호만 따로 출력하기
phone = '051-231-1106'
result = phone.split('-')[0] # 051만 출력
print(result)
리스트와 딕셔너리 - 둘 다 값을 담는 방법
'리스트'는 순서가 중요하게 값을 담는 것 , 문자형 뿐만 아니라, 불리언타입과 숫자타입도 들어갈 수 있음. 또한 리스트 안에 리스트가 들어갈 수 있다.
ㄴ ['제철과일', ['🍎','🍏','🍊','🍌','🍉'], '포도', 'false']'딕셔너리'는 key:value로 값을 담는 방법에 관한 것
# [리스트]
fruit_list = ['🍎','🍏','🍊','🍌','🍉']
result = fruit_list[-1] # [-1]하면 제일 마지막에 있는 숫자가 출력된다.
print(result)
# fruit_list = ['제철과일', ['🍎','🍏','🍊','🍌','🍉'], '포도']
# print(fruit_list[1][1]) << 1번째 리스트 안에서 1번째 과일 출력. (🍏)
result = len(fruit_list) # 길이 구하기
print(result)
# .append() - 리스트에 새로운 값을 추가하기
fruit_list.append('[🍇,10]') #리스트 형식도 추가 가능함. 한 번에 하나만 넣을 수 있음.
length = len(fruit_list)
result = fruit_list[-1]
print(length,result)
# .sort() - 오름차순, 내림차순 정렬
student = ['휘인','채하','다경','영진','상민']
# result = student.sort(reverse=True) << 내림차순
result = student.sort() # 오름차순 (가나다라..)
results = ('휘인' in student) # True << in 문법은 변수 안에 해당 데이터가 들어있는지 True Or False로 알려줌.
print(results)
#딕셔너리
chiken = {'price':'20,000', 'location':'SuyoungGu', 'size':'12호 닭', 'favor':'Normal', 'brand':['교촌','BBQ','국제통닭','굽네치킨']}
result = chiken
# print(result['favor']) favor의 value인 Normal만 출력된다.
# print(result['brand'][3]) key에 해당하는 brand의 value인 [리스트] 중, [3]번째 데이터를 선택해서 보여줌.
print(result)
# 딕셔너리에 값을 추가하는 법
chiken['CheezeBall'] = None; # 변수['추가할 key'] = 추가할 key의 value
print(result)
print('price' in chiken) # 딕셔너리에 price라는 key의 value가 들어있는지 유무를 True, False로 판단할 수 있음.
# 리스트와 딕셔너리의 조합 - 리스트안에 딕셔너리가 요소로써 여러개 들어가있을 수 있다.
people = [
{'name':'hwuiinn','age':25, 'live':'Busan','habby':'music'},
{'name':'Ena','age':15, 'live':'Seoul','habby':'running'}
]
print(people)
print(people[1]['habby']) # people변수의 [1]번째 데이터 안에 있는 ['habby']의 value를 출력
# 딕셔너리 Quiz
# 요구사항 : 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}}
]
result = people[2]['score']['science'] # [2]번째 딕셔너리를 찾음. ['score'] key값의 value를 찾음. science key값의 value인 90을 찾음.
print(result)
- if, else 조건문
- 콜론(:)이 나오면 무조건 들여쓰기를 해야함. 이렇게 해야만 해당 조건의 내용물이 될 수 있음. *
money = 3500
if money > 4000:
print('Take a Tax')
elif money > 3000:
print('I recommend U to take a Bus')
else:
print("U don't take a bus. U JUST WALK")
# '를 쓸 때, 쌍따옴표로 문자열을 지정해주면 Don't 표현 가능함.
fruit_list = ['🍎','🍏','🍊','🍌','🍉']
for fruits in fruit_list: # for a in a가 실질적으로 반복해서 돌아볼 리스트가 들어있는 변수
print(fruits) # 리스트 안에 있는 요소들을 하나씩 꺼냄.
# Quiz - 나이 출력하기
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:
# name = person['name']
# age = person['age']
# # print(name, age)
# if age > 19:
# print(name,age)
for i, person in enumerate(people): #enumerate : v. 나열하다, 열거하다 / for i, << 배열의 순서를 나열해줌. 사용 예시 => 데이터가 10,000개일 경우, 굳이 전부 출력하지 않고 내가 원하는 코딩들을 수행할 수 있게끔 함.
name = person['name']
age = person['age']
# print(name, age)
# if age > 19:
print(i,name,age)
if i > 2:
break
# 반복문 연습문제 - 짝수 출력하기
num_list = [1, 2, 3, 6, 3, 2, 4, 5, 6, 2, 4]
# 내가 한 것
for i, num in enumerate(num_list):
even = num%2
if even == 0:
print(i,even)
# 정답지
for num in num_list: #1. num_list를 도는 num을 생성 2. if문으로 조건을 걸어 준 뒤, 해당 조건을 만족하는 num만 출력
if num % 2 == 0:
print(num)
# 반복문 연습문제 - 짝수의 개수를 출력하기
# 내가 한 것
# for i, num in enumerate(num_list):
# even = num%2
# count = 0
# if even == 0:
# count += count
# print(i,even,count)
# 정답
count = 0
for i, num in enumerate(num_list): # for문 밖에 변수를 하나 만들어줌. for문을 만들고, if문 조건을 만든 뒤, num이 이에 해당하면 count를 1씩 높혀줌. 그리고 해당 조건을 만족한 num과 count를 출력
if num % 2 == 0:
count += 1
print(i,num,count)
# 반복문 연습문제 - 리스트 안에 있는 모든 숫자 더하기
# 내가 한 것
# for num in num_list:
# totalAdd = sum(num_list)
# print(totalAdd)
# 정 답
sum = 0
for num in num_list: # 변수 하나를 for문 밖에 만들어줌. 그리고 sum 변수에 num을 대입해준다. num은 for문을 돌면서 sum과 계속 더해질 것이고, 최종적으로 num_list의 모든 값이 더해질 것임.
# sum = sum + num
sum += num
print(sum)
# 반복문 연습문제 - 리스트 안에 있는 자연수 중 가장 큰 숫자 구하기
#내가 한 것
# num_list.sort() # 오름차순으로 정렬
# print(num_list[0]) # 오름차순으로 정렬이 되었는지 확인
#정답
maxNum = 0
for num in num_list: # for문 밖에 변수하나 생성. if문 조건으로 num보다 변수가 크면 코드를 종료. num_list를 도는 num을 변수에 할당하고, 계속 리스트를 돌면 그 중 제일 큰 수가 변수에 할당되고 코드가 종료될 것임.
if maxNum < num:
maxNum = num
num_list.append(25)
print(maxNum)
def Music():
print('benson boone')
print("in the stars")
Music() # 이처럼 함수 이름()을 호출하면, 해당 함수가 가지고있는 코드가 실행된다.
def sum(a,b):
print('파이썬 sum 실행합니다.')
return a+b; # return 구문을 만나면 return 뒤에 있는 값이 sum(a,b)에 들어가게 된다.
result = sum(5,3);
print(result)
def subway_rate(age):
if age > 19:
return 2000
elif 13 < age <= 19:
return 1000
else:
return 'free'
myrate = subway_rate(14)
print(myrate)
# Quiz - 주민등록번호를 입력받아 성별을 출력하는 함수 만들기
def check_gender(pin):
gender = pin.split('-')[1][:1]
if int(gender) % 2 == 0:
return 'female'
# print('female')
else:
return 'male'
# print('male')
person1 = check_gender('980725-1043495');
person3 =check_gender('980725-2043495');
person2 =check_gender('980725-2043495');
print(person2)
[ &, -, | ] ==> 교,차,합a = ['사과','배','복숭아'] # 이건 리스트
a[1] = '포도'
print(a)
a = ('사과','배','복숭아') # 이건 튜플
print(a)
people = [{'name':'bob', 'age':30}, {'name':'Ena', 'age':33}]
people = [('bob',30), ('Ena',33)] # 튜플로 이렇게 만들면, 0번째는 무조건 이름들이 나올 것. 1번째는 무조건 나이.
print(people)
# 집합
a = [1,2,3,4,5,6,7,8,9,1,1,1,1,]
b = {11,24,3,2,2,1,1,1,1,4,5}
a_set = set(a)
b_set = set(b)
print(a_set & b_set) #중괄호로 값이 나오며, 중복을 제거해줌. - 교집합
print(a_set | b_set) #중괄호로 값이 나오며, 중복을 제거해줌. - 합집합
print(a_set - b_set) #중괄호로 값이 나오며, 중복을 제거해줌. - 차집합
#Quiz - 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)
print(f'{name}의 점수는 {scores}점') << 처럼 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']
scores = s['score']
# print(name+'의 점수는'+scores+'점입니다.') >> TypeError: can only concatenate str (not "int") to str 즉, 문자열과 숫자타입을 더하려면, 타입 에러가 일어난다.
# print(name+'의 점수는 '+str(scores)+'점입니다.') >> 위의 코드를 쓰려면 이렇게 해야할 듯 하다.
print(f'{name}의 점수는 {scores}점')
people = [
{'name': 'bob', 'age': 20},
{'name': 'carry', 'age': 38},
{'name': 'john', 'age': 7},
{'name': 'smith', 'age': 17},
{'name': 'ben', 'age': 27},
{'name': 'bobby'}, # << age가 없는 상태 >> age라는 key가 없으므로 KeyError: 'age'가 뜬다. try: except:로 예외처리를 하면 print('Error')이 출력된다.
{'name': 'red', 'age': 32},
{'name': 'queen', 'age': 25}
]
for person in people:
try: #try: 👇밑에 함수를 실행하는 도중에 에러가 난다면,
if person['age'] > 20:
print(person['name'])
except: #except: 위에 코드에 에러가 있다면 👇밑에 코드를 실행하고 계속 코드를 멈추지말고 진행해라.
print(person['name'], 'Error') #에러 코드 name의 value를 출력하고,문자열 'Error' 출력
num = 2
# if num % 2 == 0:
# result = '짝수'
# else:
# result = '홀수' << 밑에 삼항 연산자랑 같음.
# if문 - 삼항 연산자 !
result = ('짝수' if num % 2 == 0 else '홀수') # >> '짝수'라고해라 if(만약) num을 2로 나누었을 때, 나머지가 0이라면. 아님 '홀수'
print(f'{num}은 {result}입니다.') # f-string
# for문
num_list = [1,3,2,5,1,2] # << 전체적으로 x2 한 값을 출력하려면?
empty_list = []
# for num in num_list:
# empty_list.append(num*2) # << empty_list.append(num_list*2)를 해버리면 기존 리스트를 한 번 더 생성함. [1,3,2,5,1,2],[1,3,2,5,1,2] 처럼
# .append(num*2) << num_list를 하나씩 도는 num에 *2를 해줌으로써 실질적인 x2의 값을 .append()하여 empty_list에 담을 수 있게 된다.
#👆 위 for문의 축약문이다.
empty_list = [num*2 for num in num_list] # 1.num_list안에 있는 num을 돌리는데, 2.그 때 마다 num*2를 실행하라. 3.그 다음에 걔네들을 다 리스트로 묶어라. (코드 해석 역순으로 해야 해석된다.)
# Q. * 👆 .append()가 없는데 해당 값이 어떻게 empty_list에 들어가는가? *
print(empty_list)
진도를 잘 못 나갔고, 집중이 계속 흐려져서 공부를 하다 말다 하다 말다 했다.
지금 작성하는 시간이 새벽 한 시를 조금 넘긴 시간인데, 해 떠 있을 때 집중하는 습관을 기르자.
혼자서 학습하는게 쉽지가 않지요
팀원분들이랑 중간중간 대화도하시면서 기분 환기해보시면 좀더 집중 잘되실거에요!