안녕하세요. 우당탕탕 개발 일지입니다.
파이썬 에디터 IDLE 3.12.1을 사용합니다.
교재 연습문제 1번-10번까지 코드와 풀면서 느낀 점만 올립니다.
해당 개념만 다룬 블로그 링크 첨부 합니다.
2024.01.25 - [[프로그래밍 언어]/python] - 두근두근 파이썬(개정판)_ch9 리스트와 딕셔너리
연습문제 ch9-1
사용자로부터 5개의 숫자를 읽어 리스트에 저장하고 숫자들의 평균을 계산하여 출력하는 코드를 작성해 보자.
alist=[]
def ave(n):
for i in range(n):
user=int(input("정수를 입려하시오:"))
alist.append(user)
print("합계={}".format((sum(alist))/n))
ave(5)
연습문제 ch9-2
주사위를 던져 나오는 값의 빈도를 계산하는 코드를 작성해보자.
import random
counters=[0,0,0,0,0,0]
for i in range(1000):
value=random.randint(0,5)
counters[value]=counters[value]+1
print(f"주사위가 1인 경우는{counters[0]}번")
print(f"주사위가 2인 경우는{counters[1]}번")
print(f"주사위가 3인 경우는{counters[2]}번")
print(f"주사위가 4인 경우는{counters[3]}번")
print(f"주사위가 5인 경우는{counters[4]}번")
print(f"주사위가 6인 경우는{counters[5]}번")
개인적으로 9장에서 짤 때 제일 재밌었음
연습문제 ch9-3
딕셔너리에 친구들의 이름과 전화번호를 저장하는 코드를 작성하고
이름을 입력하지 않고 enter을 누르면 검색모드가 되어 검색할 수 있게 코드를 작성해 보자.
contacts={}
while True:
name=input("(입력모드)이름을 입력하시오")
if not name:
name=input("(검색모드)이름을 입력하시오")
print(f"{name}의 전화번호는 {contacts[name]} 입니다.")
break;
tel=input("전화번호를 입력하시오:")
contacts[name]=teldo
if문 not name:가 enter을 눌렀을 때 조건의 코드임.
연습문제 ch9-4
인터넷 도메인의 약자와 해당되는 국가를 딕셔너리에 저장하는 코드를 작성해보자.
domains={"kr":"대한민국","us":"미국","jp":"일본","de":"독일","sk":"슬로자키아","ho":"헝가리","no":"노르웨이"}
for k,v in domains.items():
print(k, ":", v)
items()는 모든 키와 값을 반환하니까 k, v에 순차적으로 저장되면서 반복됨.
=> 매개변수를 사용해서 출력하는 방식으로 짰음
연습문제 ch9-5
딕셔너리에 문제와 정답을 저장하고 하나씩 꺼내서 사용자에게 제시하는 프로그램을 작성해 보자.
사용자가 문자열로 답해야 하고 번호로는 답할 수 없다.
problems={'파이썬':'최근에 가장 떠오르는 프로그래밍 언어',
'변수':'데이터를 저장하는 메모리 공간',
'함수':'작업을 수행하는 문장들의 집합에 이름을 붙인 것',
'리스트':'서로 관련이 없는 항목들의 모임'
}
for word in problems.keys():
print("다음은 어떤 단어에 대한 설명일까요?")
print(problems[word])
ans=str(input("(1)파이썬 (2)변수 (3)함수 (4)리스트\n"))
if ans==word:
print("정답입니다.!")
else:
print("정답이 아닙니다.")
인터넷에 있는 정보를 학습시키면
스스로 문제와 보기를 만드는 chat-GPT 비슷한 느낌이지 않을까 생각해 봤음.
연습문제 ch9-6
색상을 리스트에 저장하고 랜덤 한 위치에 사각형을 그린 후 리스트에서 색을 꺼내 속을 채우는 프로그램을 작성해 보자.
import turtle
t=turtle.Turtle()
import random
color=['yellow','red','purple','blue']
def draw_square(x,y,c):
t.up()
t.goto(x,y)
t.down
t.fillcolor(c)
t.begin_fill()
for i in range(4):
t.fd(100)
t.lt(90)
t.end_fill()
for c in color[0:4]:
x=random.randint(-500,500)
y=random.randint(-500,500)
draw_square(x,y,c)
연습문제 ch9-7
색상을 리스트에 저장하고 랜덤 한 위치에 무작위 다각형을 그린 후 리스트에서 색을 꺼내 속을 채우는 프로그램을 작성해 보자.
import turtle
t=turtle.Turtle()
import random
color=['yellow','red','purple','blue','green','light blue', 'orange','white']
t.pencolor("black")
def draw_shape(t,c,length,side,x,y):
t.up()
t.goto(x,y)
t.down()
t.fillcolor(c)
t.begin_fill()
for n in range(side):
t.fd(length)
t.lt(360/side)
t.end_fill()
for i in range(20):
c=random.choice(color)
x=random.randint(-500,500)
y=random.randint(-500,500)
side=random.randint(3,8)
length=random.randint(10,100)
draw_shape(t,c,length,side,x,y)
연습문제 ch9-8(p300 교재에는 ch9-7이라고 되어 있음 )
색상을 리스트에 저장하고 랜덤 한 위치에 랜던한 크기의 별을 그린 후 리스트에서 색을 꺼내 속을 채우는 프로그램을 작성해 보자.
import turtle
import random
t=turtle.Turtle()
s=turtle.Screen()
s.bgcolor("black")
mycolor=["red","white","blue","green","light blue","orange","yellow"]
def draw_star(c,length,x,y):
t.up()
t.goto(x,y)
t.down()
t.pencolor(c)
t.fillcolor(c)
t.begin_fill()
for _ in range(5):
t.fd(length)
t.rt(144)
t.fd(length)
t.left(72)
t.end_fill()
for i in range(20):
c=random.choice(mycolor)
length=random.randrange(1,100)
x=random.randrange(-500,500)
y=random.randrange(-500,500)
draw_star(c,length,x,y)
별을 그리는 방식에 따라 색이 일부분만 채워져서 엄청 애먹었다.
'[프로그래밍 언어] > python' 카테고리의 다른 글
두근두근 파이썬(개정판)_ch11 파일 (1) | 2024.01.28 |
---|---|
두근두근 파이썬(개정판)_ch10 tkinter로 GUI 만들기 (1) | 2024.01.26 |
두근두근 파이썬(개정판)_ch9 리스트와 딕셔너리 (2) | 2024.01.25 |
두근두근 파이썬(개정판)_ch7 함수 연습문제 1~10번 (1) | 2024.01.25 |
두근두근 파이썬(개정판)_ch7 함수,def, 인수, 매개변수, 지역변수, 키워드 인수, 디폴트 인수 (1) | 2024.01.25 |