Notice
Recent Posts
Recent Comments
Link
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
Archives
Today
Total
관리 메뉴

RUBY

딕셔너리를 이용한 프로그래밍(파이썬) 본문

프로그래밍 언어/Python

딕셔너리를 이용한 프로그래밍(파이썬)

ruby-jieun 2023. 1. 24. 23:58

 

딕셔너리를 이용한 프로그래밍(파이썬)


 

 

과목별 점수를 딕셔너리에 저장하고 출력하는 프로그램을 만들어보자

subject = ['국어', '영어', '수학', '과학', '국사']
scores = {}

for s in subject:
    score = input(s + ' 점수 입력: ')
    scores[s] = score

print(f'과목별 점수 : {scores}')
국어 점수 입력: 88
영어 점수 입력: 89
수학 점수 입력: 69
과학 점수 입력: 54
국사 점수 입력: 35
과목별 점수 : {'국어': '88', '영어': '89', '수학': '69', '과학': '54', '국사': '35'}

 

 

 

 

사용자의 아이디, 비밀번호를 이용해서 로그인 프로그램을 만들어보자

members = {'urkpo':'0928^7$',
           'xxayv':'%2*9$91',
           'lsqvx':'!0%)&&4',
           'heums':'%@3^0%3',
           'uwcmc':'85236(&',
           'iemwv':')8!36^&',
           'sqblx':')^2)9!(',
           'jbbpy':'67269*3',
           'hjkwu':'$&@@#64',
           'fvwwy':'82$%)31'}

memID = input('ID 입력: ')
memPW = input('PW 입력: ')

if memID in members:
    if members[memID] == memPW:
        print('로그인 성공')
    else:
        print('비밀번호를 확인해주세요')
else:
    print('아이디를 확인해주세요')
ID 입력: urkpo
PW 입력: 0928^7$
로그인 성공

 

 

 

삼각형부터 십각형까지의 내각의 합과 내각을 딕셔너리에 저장하는 프로그램을 만들어보자.

n각형의 내각의 합 : 180 x (n-2)

dic = {}

for n in range(3, 11):
    hap = 180 * (n - 2)
    ang = int(hap / n)
    dic[n] = [hap, ang]

print(dic)
{3: [180, 60], 4: [360, 90], 5: [540, 108], 6: [720, 120], 7: [900, 128], 8: [1080, 135], 9: [1260, 140], 10: [1440, 144]}

 

 

 

 

 

다음 문구를 공백으로 구분하여 리스트에 저장한 후, 인덱스와 단어를 이용해서 딕셔너리에 저장해보자

aboutPython = '김지은은 오늘도 공부를 한다. 하지만 너무 졸려 이제 잠을 자야겠다.'

splitList = aboutPython.split()
print(splitList)

dic = {}
for idx, v in enumerate(splitList):
    dic[idx] = v

print(dic)
['김지은은', '오늘도', '공부를', '한다.', '하지만', '너무', '졸려', '이제', '잠을', '자야겠다.']
{0: '김지은은', 1: '오늘도', 2: '공부를', 3: '한다.', 4: '하지만', 5: '너무', 6: '졸려', 7: '이제', 8: '잠을', 9: '자야겠다.'}

 

 

 

다음 문장에서 비속어를 찾고 비속어를 표준어로 변경하는 프로그램을 만들어보자

words = {'쫄았다':'떨었다',
         '짭새':'경찰관'}

txt = '짭새 등장에 괜스레 모두 쫄았다.'

keys = list(words.keys())

txtMod = ''
for key in keys:
    if key in txt:
        print('key: {}'.format(key))
        print('words[{}]: {}'.format(key, words[key]))
        txt = txt.replace(key, words[key])

print(txt)
key: 쫄았다
words[쫄았다]: 떨었다
key: 짭새
words[짭새]: 경찰관
경찰관 등장에 괜스레 모두 떨었다.

 

 

 

 

 

딕셔너리를 이용해서 5명의 회원을 가입 받고 전체 회원 정보를 출력하는 프로그램을 만들어보자

members = {}

n = 1
while n < 6:
    mail = input('메일 입력: ')
    pw = input('비번 입력: ')

    if mail in members:
        print('이미 사용 중인 메일 계정입니다.')
        continue
    else:
        members[mail] = pw
        n+= 1

for key in members.keys():
    print(f'{key} : {members[key]}')
메일 입력: aaa@a.com
비번 입력: 1234
메일 입력: bbb@b.com
비번 입력: 2345
메일 입력: ccc@c.com
비번 입력: 3456
메일 입력: ddd@d.com
비번 입력: 4567
메일 입력: eee@e.com
비번 입력: 5678
aaa@a.com : 1234
bbb@b.com : 2345
ccc@c.com : 3456
ddd@d.com : 4567
eee@e.com : 5678

 

 

 

 

위의 프로그램을 이용해서 특정 회원 계정을 삭제하는 프로그램을 만들어보자

members = {}

n = 1
while n < 6:
    mail = input('메일 입력: ')
    pw = input('비번 입력: ')

    if mail in members:
        print('이미 사용 중인 메일 계정입니다.')
        continue
    else:
        members[mail] = pw
        n+= 1

for key in members.keys():
    print(f'{key} : {members[key]}')



while True:
    delMail = input('삭제할 계정 입력: ')

    if delMail in members:
        delPw = input('비번 입력: ')
        if members[delMail] == delPw:
            del members[delMail]
            print(f'{delMail}님 삭제 완료!')
            break
        else:
            print('비번 확인 요망!')
    else:
        print('계정 확인 요망!')


for key in members.keys():
    print(f'{key} : {members[key]}')
메일 입력: aaa@a.com
비번 입력: 1234
메일 입력: bbb@b.com
비번 입력: 2345
메일 입력: ccc@c.com
비번 입력: 3456
메일 입력: ddd@d.com
비번 입력: 4567
메일 입력: eee@e.com
비번 입력: 5678
aaa@a.com : 1234
bbb@b.com : 2345
ccc@c.com : 3456
ddd@d.com : 4567
eee@e.com : 5678
삭제할 계정 입력: ccc@c.com
비번 입력: 3456
ccc@c.com님 삭제 완료!
aaa@a.com : 1234
bbb@b.com : 2345
ddd@d.com : 4567
eee@e.com : 5678

 

 

 

 

다음은 학생 정보 테이블이다. 파이썬에서 학생 정보를 가장 효율적으로 저장하고 관리할 수 있는 자료구조를 선택해서 컨테이너 자료형으로 만들어보자

students = {'S21-0001':{'이름':'최성훈',
                        '성구분':'M',
                        '전공':'디자인',
                        '연락처':'010-1234-5678',
                        '메일':'hun@gmail.com',
                        '취미':['농구', '음악']},
            'S21-0002': {'이름': '탁영우',
                         '성구분': 'M',
                         '전공': '바리스타',
                         '연락처': '010-5678-9012',
                         '메일': 'yeong@gmail.com',
                         '취미': ['축구']},
            'S21-0003': {'이름': '황진영',
                         '성구분': 'W',
                         '전공': '음악',
                         '연락처': '010-9012-3456',
                         '메일': 'jin@gmail.com',
                         '취미': ['수영', '코딩']}
            }

for k1 in students.keys():
    print('-' * 40)
    print('회원번호 : {}'.format(k1))

    student = students[k1]
    for k2 in student.keys():
        print('{} : {}'.format(k2, student[k2]))


memNo = input('조회할 회원번호를 입력하세요.: ')
print('{} : {}'.format(memNo, students[memNo]))
----------------------------------------
회원번호 : S21-0001
이름 : 최성훈
성구분 : M
전공 : 디자인
연락처 : 010-1234-5678
메일 : hun@gmail.com
취미 : ['농구', '음악']
----------------------------------------
회원번호 : S21-0002
이름 : 탁영우
성구분 : M
전공 : 바리스타
연락처 : 010-5678-9012
메일 : yeong@gmail.com
취미 : ['축구']
----------------------------------------
회원번호 : S21-0003
이름 : 황진영
성구분 : W
전공 : 음악
연락처 : 010-9012-3456
메일 : jin@gmail.com
취미 : ['수영', '코딩']
조회할 회원번호를 입력하세요.: S21-0003
S21-0003 : {'이름': '황진영', '성구분': 'W', '전공': '음악', '연락처': '010-9012-3456', '메일': 'jin@gmail.com', '취미': ['수영', '코딩']}
Comments