[Python] 8-4장 리스트, 딕셔너리 응용(영한 사전, 주사위 빈도 계산 등)

- 편의점 재고 관리

items = {"커피음료":7, "펜":3, "종이컵":2, "우유":1, "콜라":4, "책":5}
item = input("물건의 이름을 입력하시오: ")
print(items[item])

 

 

- 영한 사전

dict = {}
dict['one'] = '하나'
dict['two'] = '둘'
dict['three'] = '셋'
word = input("단어를 입력하시오: ")
print(dict[word])

 

 

- 입력받은 숫자들의 평균

numlist = []
sum = 0
for i in range(5):
    num = int(input("정수를 입력하시오: "))
    numlist.append(num)
    sum += numlist[i]
    
result = sum / len(numlist)
print("평균=", result)

 

 

- 랜덤 주사위 빈도 계산

from random import *
counter = [0,0,0,0,0,0]
for i in range(1000):
    value = randint(0, 5)
    counter[value] = counter[value] + 1
for i in range(6):
    print("주사위가 "+str(i+1)+" 인 경우는", counter[i])

 

 

- 전화번호부 생성

phone_num = {}
while True:
    name = input("(입력모드)이름을 입력하시오: ")
    if not name:
        break
    phone = input("전화번호를 입력하시오: ")
    phone_num[name] = phone
    
while True:
    name = input("(검색모드)이름을 입력하시오: ")
    if not name:
        break
    print(name, "의 전화번호는", phone_num[name], "입니다.")

 

 

- 색칠된 사각형 그리기(터틀 그래픽)

import turtle
from random import *
t = turtle.Turtle()
t.shape("turtle")

def draw_square(x, y, color):
    t.penup()
    t.goto(x, y)
    t.pendown()
    t.begin_fill()
    t.fillcolor(color)
    for i in range(4):
        t.fd(100)
        t.left(90)
    t.end_fill()
    
for i in ["yellow", "red", "purple", "blue"]:
    draw_square(randint(-100, 100), randint(-100, 100), i)

 

 

- 색칠된 다각형 그리기(터틀 그래픽)

import turtle
from random import *
t = turtle.Turtle()
t.shape("turtle")

def draw_shape(length, sides, x, y, color):
    t.penup()
    t.goto(x, y)
    t.pendown()
    t.begin_fill()
    t.fillcolor(color)
    for i in range(sides):
        t.fd(length)
        t.left(360/sides)
    t.end_fill()

colors = ["red", "green", "white", "skyblue", "blue", "orange", "black", "purple"]
for c in colors:
    draw_shape(randint(10, 100), randint(3, 7), randint(-200, 200), randint(-200, 200), c)

 

 

- 색칠된 별 그리기(터틀 그래픽)

import turtle
from random import *
t = turtle.Turtle()
t.shape("turtle")

s = turtle.Screen()
s.bgcolor("black")
def draw_star(length, x, y, color):
    t.penup()
    t.goto(x, y)
    t.pendown()
    t.begin_fill()
    t.color(color, color)
    for i in range(5):
        t.fd(length)
        t.right(144)
    t.end_fill()
colors = ["white", "blue", "skyblue", "green", "orange", "purple"]
for i in range(10):
    c = randint(0, 5)
    leng = randint(10, 100)
    x = randint(-200, 200)
    y = randint(-200, 200)
    draw_star(leng, x, y, colors[c])

 

 

- 도메인 약자와 국가 연결

domain = {'kr':'대한민국', 'sk':'슬로바키아', 'no':'노르웨이', 'us':'미국', 'jp':'일본', 'hu':'헝가리', 'de':'독일'}
for key, value in domain.items():
    print(key, ":", value)

 

 

- 단어 설명 문제

dict = {'파이썬':'최근에 가장 떠오르는 프로그래밍 언어', 
       '변수':'데이터를 저장하는 메모리 공간',
       '함수':'작업을 수행하는 문장들의 집합에 이름을 붙인 것',
       '리스트':'서로 관련이 없는 항목들의 모임',}
for word in dict.keys():
    print("다음은 어떤 단어에 대한 설명일까요?")
    print(dict[word])
    print("(1)파이썬 (2)변수 (3)함수 (4)리스트")
    ans = input("")
    if word == ans:
        print("정답입니다.")
    else:
        print("틀렸습니다.")

 

 

※ 두근두근 파이썬 9장 연습문제 참조