파이썬 복습3

김보혜·2022년 8월 21일
0

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가 없음을 전재하고 짠다.

profile
데이터 직무로 길 찾는중

0개의 댓글