디필의 요모조모

파이썬 for Beginner 7장 연습문제 본문

Programming Language/Python

파이썬 for Beginner 7장 연습문제

Diphylleia12 2019. 12. 8. 03:35

1. 리스트를 만들고 출력하는 방식이다. 오류가 나는 부분을 고르시오.

    aa = [10,20,30]

    print(aa[0])

    print(aa[1])

    print(aa[2])

    print(aa[3])

 

2. 빈 리스트를 100개 만들고 길이를 구하는 코드이다. 빈칸을 예에서 골라서 채우시오.

    append, for, range

 

    myList = []

    for i in range(0,100):

        myList.append(0)

    len(myList)

 

3. 사용자가 숫자를 3개 입력하고 입력한 숫자의 합계를 구하는 코드이다. 빈칸을 for 문으로 완성하시오.

    myList = []

    for i in range(0,3):

        myList.append(0)

    hap = 0

 

    for i in range(0,3):

        myList[i] = int(input(str(i+1) + "번째 숫자 :"))

 

    for k in range(0,3):

        hap = hap + myList[k]

 

    print("합계 ==> %d" % hap)

 

4. 비어 있는 자료구조를 초기화하는 코드이다. 서로 맞는 것끼리 줄로 이으시오.

    ① aa = []        ==>    나. 리스트

    ② bb = {}        ==>    다. 딕셔너리

    ③ cc = ()         ==>    가. 튜플

    ④ dd = None   ==>    라. 일반 변수

 

5. 다음 리스트가 있을 때, 각 문제의 출력 결과를 예측하시오.

    aoa = ['설현', '초아', '지민', '유나', '유경', '혜정', '민아', '찬미']

 

    ① aoa[2]                   지민

    ② aoa[-2]                  민아

    ③ aoa[0:1]                 ['설현']

    ④ aoa[6:]                   ['민아','찬미']

    ⑤ aoa[-7:-5]               ['초아','지민']

    ⑥ aoa[1::3]                 ['초아','유경','찬미']

 

6. 각 설명에 해당하는 리스트 조작 함수를 보기에서 고르시오.

    append(), pop(), sort(), reverse(), index(), insert(), remove(), extend(), count()

 

    ① 리스트의 뒤에 리스트를 추가한다.        ==>    append()

    ② 리스트에서 지정한 값을 제거한다.        ==>    remove()

    ③ 리스트 항목의 순서를 역순으로 만든다.         ==>    reverse()

    ④ 리스트 맨 뒤의 항목을 빼내고, 빼낸 항목은 삭제한다.   ==>    pop()

 

7. 2차원 리스트의 예이다. 각 문제의 출력되는 결과를 예측하시오.

    myList = [[1,2,3,4],

                 [5,6,7,8],

                 [9,10,11,12]]

 

    myList = [0][1]        2

    ② myList = [1][3]        8

    ③ myList = [2]           [9,10,11,12]

 

8. 다음 코드를 실행했을 때 myData에 저장된 값은 몇 개인가?

    myData = {1, 1, 1, 2, 2, 3, 3, 3}

    myData.add(1)

 

    3개 ==> {1,2,3}

 

9. 다음 코드를 실행했을 때 myData에 저장된 값은?

    import math

    myData = [int(math.pow(2, num)) for num in range(0,5) if num % 2 != 0]

 

    [2,8] ==> 2개

 

10. (심화문제) [프로그램 1]을 수정해 X+Y 좌표가 가장 작은 거북이부터 정렬한 후 거북이끼리 선을 긋는다. 예를 들어 (10, 10), (-100, -50), (50, 10) 세 좌표의 거북이를 X+Y값으로 정렬하면 (-100, 50), (10, 10), (50, 10)이 되는데, 이 세 거북이를 선으로 이으면 된다. 다음 결과는 거북이 10마리를 좌표로 정렬한 후 선을 그은 결과이다.

   

import turtle
import random

myTurtle, tX, tY, tColor, tSize, tShape, tSum = [None] * 7
playerTurtles = []
swidth, sheight = 500, 500

if __name__ == "__main__" :
    turtle.title('거북 리스트 활용(정렬)')
    turtle.setup(width = swidth + 50, height = sheight + 50)
    turtle.screensize(swidth, sheight)

    for i in range(0, 10) :
        myTurtle = turtle.Turtle('turtle')
        tX = random.randrange(-swidth / 2, swidth / 2)
        tY = random.randrange(-sheight / 2, sheight / 2)
        r = random.random(); g = random.random(); b = random.random()
        tSize = random.randrange(1, 3)
        tSum = tX + tY
        playerTurtles.append([myTurtle, tX, tY, tSize, r, g, b, tSum])

    sortedTurtles = sorted(playerTurtles, key = lambda turtles : turtles[7], reverse = True)

    for index, tList in enumerate(sortedTurtles[0:]):
        myTurtle = tList[0]
        myTurtle.color((tList[4], tList[5], tList[6]))
        myTurtle.pencolor((tList[4], tList[5], tList[6]))
        myTurtle.turtlesize(tList[3])
        myTurtle.penup()
        if index == 0:
            myTurtle.goto(tList[1], tList[2])
            continue
        myTurtle.goto(sortedTurtles[index-1][1], sortedTurtles[index-1][2])
 
        myTurtle.pendown()
        myTurtle.goto(tList[1], tList[2])

turtle.done()

10번 코드 실행 결과

Comments