Day39. 자료문풀 (3)

Junghwan Park·2023년 5월 29일
0

스터디노트

목록 보기
39/54

[연습문제] 딕셔너리(01)

  • [연습문제] 딕셔너리(01)
  • 과목별 점수를 딕셔너리에 저장하고 출력하는 프로그램을 만들어보자!
subject = ['국어', '영어', '수학', '과학', '국사']
scores = {}

for s in subject:
    score = int(input(s + '점수 입력 : '))   # 점수 입력 받기 s가 0일때 '국어'
    scores[s] = score   # 키값 = 벨류

print(f'과목별 점수 : {scores}')
  • 사용자의 아이디, 비밀번호를 이용해서 로그인 프로그램을 만들어보자!
members = {'urkpo':'0928^7$',
           'xxayv':'%2*9$91',
           'lsqvx':'!0%)&&4'}

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

if memID in members:
    if members[memID] == memPW:
        print('로그인 성공!!!')
    else:
        print('비밀번호 확인!!!')

else:
    print('아이디 확인!!!')

[연습문제] 딕셔너리(02)

  • [연습문제] 딕셔너리(02)
  • 삼각형부터 십각형까지의 내각의 합과 내각을 딕셔너리에 저장하는 프로그램을 만들어보자!


    n각형의 내각의 합 : 180 x (n-2)
dic = {}

for n in range(3, 11):  # 3각형 부터 10각형 까지!
    hap = 180 * (n -2)  # 내각의 합!
    ang = int(hap / n)  # 내각!
    dic[n] = [hap, ang] # 키 = 벨류!

print(dic)
  • 1부터 10까지 각각의 정수에 대한 약수를 저장하는 딕셔너리를 만들고 출력하는 프로그램을 만들어보자!
dic = {}

for n1 in range(2, 11):
    tempList = []
    for n2 in range(1, n1 + 1):
        if n1 % n2 == 0:
            tempList.append(n2)
    dic[n1] = tempList

print(dic)


# 위 코드는 다시 복습!

위 코드는 다시 복습!


[연습문제] 딕셔너리(03)

  • [연습문제] 딕셔너리(03)
  • 다음 문구를 공백으로 구분하여 리스트에 저장한 후, 인덱스와 단어를 이용해서 딕셔너리에 저장해보자!
aboutPython = '파이썬은 1991년 프로그래머인 귀도 반 로섬이 발표한 고급 프로그래밍 언어이다.'

splitList = aboutPython.split() # split을 사용하여 공백으로 구분!
print(splitList)

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

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


    '강도는 서로 쪼개다, 짭새를 보고 빠르게 따돌리며 먹튀했다.'
words = {'꺼지다':'가다',
         '쩔다':'엄청나다',
         '짭새':'경찰관',
         '꼽사리':'중간에 낀 사람',
         '먹튀':'먹고 도망',
         '지린다':'겁을 먹다',
         '쪼개다':'웃다',
         '뒷담 까다':'험담하다'
         }

txt = '강도는 서로 쪼개다, 짭새를 보고 빠르게 따돌리며 먹튀했다.'

keys = list(words.keys())    # 키값 뽑아내기

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)

[연습문제] 딕셔너리(04)

  • [연습문제] 딕셔너리(04)
  • 딕셔너리를 이용해서 5명의 회원을 가입 받고 전체 회원 정보를 출력하는 프로그램을 만들어보자!
members = {}

n = 1

while n < 6:    # 5명의 회원을 가입 받으므로!
    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]}')
  • 위의 프로그램을 이용해서 특정 회원 계정을 삭제하는 프로그램을 만들어보자!
members = {}

n = 1

while n < 6:    # 5명의 회원을 가입 받으므로!
    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]}')

[연습문제] 딕셔너리(05)

  • [연습문제] 딕셔너리(05)
  • 다음은 학생 정보 테이블이다.
    파이썬에서 학생 정보를 가장 효율적으로 저장하고 관리할 수 있는 자료구조를 선택해서 컨테이너 자료형으로 만들어보자!


    학생번호 이름 성구분 전공 연락처 메일 취미
    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 수영, 코딩
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():  # k1에는 S21-0001, S21-0002, S21-0003 가 온다!
    print('-' * 40) # 구분자!
    print('학생번호 : {}'.format(k1))

    student = students[k1]

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

studentNo = input('조회 대상 학생 번호 입력 : ')
print('{} : {}'.format(studentNo, students[studentNo]))

profile
안녕하세요 반갑습니다^^

0개의 댓글