phone='02-123-1234'
phone=phone.split('-')
result=phone[0]
print(result)
-> '02','123','1234' 출력됨
리스트
형식: a_list = [1,2,3,4,5]
추가: a_list.append(99)
마지막 요소 가르키기: a_list[-1]
정렬: a_list.sort()
거꾸로 정렬: a_list.sort(reverse=True)
요소 확인: result=(98 in a_list)->출력했을 때, 있으면 True 없으면 False 출력
딕셔너리: 순서가 없음 첫번째, 두번째 가리키지 못함->리스트에 담아서 사용
형식: a_dic={'name':'bob','age':23}
리스트에 담으면: people=[{'name':'bob','age':23}, {'name':'jake','age':20}] ->result=people[1]['age'] 지정 가능
타고타고타고 들어갈 수 있는 게 중요함
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}}
# ]
people[2]['score']['science']-> people이라는 리스트의 3번째 요소(딕셔너리형식)의 스코어라는 키의 밸류(딕셔너리형식)의 키값의 밸류(90)를 가리킴
for person in people:
name=person['name']
age=person['age']
if age>20:
print(name,age)
->이름,나이가 순서대로 나온다
for i,person in enumerate(people):
name=person['name']
age=person['age']
print(i,name,age)
if i>2:
break
->엄청 긴 리스트에서 함수가 작동이 잘 되는지 몇개만 테스트할 때 주로 사용함
# 짝수의 갯수를 세기
count=0
for num in num_list:
if num%2==0:
count=count+1
print(count)
# 반복문 전에 count를 정의하면 되는걸..으..
#리스트 안의 모든 숫자의 합을 구하기
sum=0
for num in num_list:
sum=sum+num
print(sum)
#sum+=num으로 쓸 것
#리스트 안에서 가장 큰 자연수 구하기
a=0
for num in num_list:
if a<num:
a=num
print(a)
#주민등록번호를 받아 성별 구하기
def check_gender(pin):
if pin.split('-')[1]=='2******':
return '여자'
else:
return '남자'
my_pin='340713-2******'
print(check_gender(my_pin))
#답안
def check_gender(pin):
a=int(pin.split('-')[1][:1])
print(a)
if a%2==0:
print('여자')
else:
print('남자')
my_pin='201010-1234568'
check_gender(my_pin)
튜플: 리스트와 동일하지만 불변형(수정불가, 순서있음)
형식:()
집합: 리스트의 중복을 제거해줌
형식: set(리스트형식)
set(a&b)(교집합), set(a|b)(합집합), set(a-b)(차집합) (당연히 a,b는 모두 집합임)
-fstring: 변수를 문자열과 섞어 출력하기 편리하고 보기에도 더 직관적이고 깔끔함
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=s['score']
print(f'{name}의 점수는 {score}점입니다.')
# print(name+'의 점수는 '+str(score)+'점입니다.')
-> 숫자 변수와 문자열 변수는 서로 합할 수 없어서 변환해줘야해서 불편함
-예외처리: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'],'에러입니다')
터미널에서 값을 받기 위해서 사용함
a=input() ->type: str
기본적으로 파이썬은 입력받은 값을 문자로 인식
숫자로 변환하는 방법
a=int(input()) ->type: int
여러개를 입력받고 싶다
a,b = input().split()
a,b = input().split(,)-> ,를 기준으로 분리해서 받음 1 2,3 ->a=1 2 b=3
여러개를 입력받고 싶다 숫자버전
a,b = map(int,int()split()) -> type: map
map: ,앞에 내용을 ,뒤의 내용에 각각 적용한다
-> a,b = input().split()
a=int(a)
b=int(b)
해도 되긴함
-> int(input().split())은 (x)
int는 하나의 변수에만 적용 가능 input().split()은 리스트라서 적용불가
몇개를 받는지 정해지지 않았을 때
list(map(int,input().split())) -> type: list
print("\ /\ ")
print(" ) ( ')")
print("( / )")
print(' \(__)|')