1.자료구조
1)List : 한번에 묶어서 관리시 데이터 수정가능 l=[]
2)Tuple : 한번에 묶어서 관리시 데이터 수정불가능 t=()
3)Dic : (key : value)로 이루어짐 둘은 대응관계,데이터 수정가능 d={(key : value)}
4)Set : 중복데이터 허용안함
2.연습 문제
1)리스트를 사용하여 중복 값을 없애라.
numbers = [2,22,7,8,9,2,7,3,5,2,7,1,3]
print(f'numbers : {numbers}')
idx = 0
while True:
if idx >=len(numbers): #numbers를 다 훑었다
break
if numbers.count(numbers[idx]) >= 2: #idx에 있는 값이 2개 일경우
numbers.remove(numbers[idx])
continue
idx +=1 #반복진행
print(f'numbers : {numbers}')
numbers 바로 밑에 있는 print는 수열numbers를 나타내고 밑에 있는 print는 중복 값을 삭제한 numbers수열이다.
idx는 numbers수열 안에 있는 숫자로 idx = 0은 첫번째 즉 2부터 시작한다는 말이다.
while문 안의 첫번째 if문은 numbers수열 안의 해당 숫자가 자신 이외의 다른 모든 수와 비교했을때를 나타내는 말이고, 두번째 if문은 numbers수열 안의 해당 숫자가 2개이상 즉, 중복일시 지우라는 코드이다.
이 코드대로 진행하면 결과는 다음과 같이 나온다
2)각 과목의 점수를 받아서 등급을 나타내자
korS = int(input('국어 점수 :'))
engS = int(input('영어 점수 :'))
matS = int(input('수학 점수 :'))
sciS = int(input('과학 점수 :'))
hisS = int(input('역사 점수 :'))
scores = ( #튜플안에 딕셔너리가 있어서 수정가능 딕셔너리 안에있는 값은 수정가능하기때문
{'kor': korS},
{'eng': engS},
{'mat': matS},
{'sci': sciS},
{'his': hisS}
)
print(scores)
for item in scores:
for key in item.keys():
if item[key] >=90:
item[key] = 'A'
elif item[key] >=80:
item[key] = 'B'
elif item[key] >=70:
item[key] = 'C'
elif item[key] >=60:
item[key] = 'D'
else:
item[key] ='F'
print(scores)
scores = (
{'kor': korS},
{'eng': engS},
{'mat': matS},
{'sci': sciS},
{'his': hisS}
)
이 코드에서 특이한것을 뽑자면 바로 위의 코드인데 scores = ( ) 자체는 튜플인데 안에 각각중괄호로 딕셔너리가 들어있다. 이로 인해 튜플안의 값들을 수정 가능하다.
for item in scores: #딕셔너리 얻을 수있음 과목별로 뽑아낼 수 있음
for key in item.keys():
if item[key] >=90:
item[key] = 'A'
elif item[key] >=80:
item[key] = 'B'
elif item[key] >=70:
item[key] = 'C'
elif item[key] >=60:
item[key] = 'D'
else:
item[key] ='F'
여기에서도 보면 첫번째 for문에서 for item in scores: 라고 쓰는데 이는 scores 안에 딕셔너리가 있어서 그로인해 과목별로 키값을 뽑아낼 수 있다.
이 코드들을 실행하면 다음과 같이 나온다.
3)아이디,비밀번호를 받아서 로그인 하는 코드
members = {'aaaa':'1!1!',
'bbbb': '2@2@',
'cccc': '3#3#',
'dddd':'4$4$',
'eeee':'5%5%'}
memId = input('ID입력')
memPw = input('PW입력')
if memId in members:
if members[memId] == memPw:
print('로그인 성공')
else:
print('비밀번호 확인')
else:
print('아이디 확인')
맨 처음 members라는 딕셔너리를 만들어서 회원의 ID,PW를 정해놓는다.
첫번째 if문에서는 ID가 members안에 있을 때를 TRUE로 두고 시작한다.
~~if members[memId] == memPw:~~
members안에 memId라는 키값에 memPw라는 value값이 맞으면 로그인이 된다는 코드를 짰다.
그리고 맨처음의 if문의 그렇지 않음을 담당하는 else 문은 members안에 memId가 없음을 전재하고 짠다.