<2주차 Python 과제>

목표

✔️ pyhon 함수를 작성해보면서 자주 쓰이는 문법 패턴을 익힌다

✔️ python에서 리스트, 튜플, 딕셔너리의 개념에 대해서 익힌다

✔️ 각각의 method를 익힌다

과제

  • 파이썬에서 가변객체와 불변객체는 무엇이며, 어떠한 자료형이 있는지 공부한다.
  • BTS 혹은 레드벨벳의 멤버 정보를 딕셔너리로 구현한다.
  • 스트링, 리스트, 딕셔너리를 반복문으로 돌면서 인자를 출력하는 함수를 작성해보세요.
  • for in 반복문을 작성해보고, break, continue의 쓰임새도 알아보세요.
  • if와 else를 이용해 조건문을 작성해보세요.
  • list method 중 append, pop, sort을 활용한 함수를 작성해보세요.

  • 파이썬에서 가변객체와 불변객체는 무엇이며, 어떠한 자료형이 있는지 공부한다.

& 객체(Object)란?
어떠한 속성값과 행동을 가지고 있는 데이터. 상태는 value, 행동은 method.
이러한 프로그래밍 기법을 '객체지향 프로그래밍'이라고 함. 즉 실제 벌어진 일들에 대해서 다양한 정보를 가진 객체로 표현하고 그 객체들간의 통신으로 문제를 해결해나가는 기법. 파이썬은 객체로 이뤄져 있으며 객체지향 프로그래밍이 가능하게 하는 언어이기도하다.


& 가변 객체와 불변 객체는 무엇인가?

가변 객체불변 객체
객체에 할당 값 수정객체에 할당 값 수정 안 됨
list, set, dictint, float, bool, tuple, string, unicode

즉 값을 수정할 수 있는지, 없는지에 따라 가변, 불변이 나뉘어진다.



  • BTS 혹은 레드벨벳의 멤버 정보를 딕셔너리로 구현한다.

가변 객체 중 dict 를 이용하여 레드벨벳 멤버 정보를 딕셔너리로 구현하면 다음과 같다.

def RedVelvet():
    RV = dict(Irene=[910329,"Leader", "Rapper"], Seulgi=[940210, "Main_vocal, ""Main_dancer"], Wendy=[940221, "Main_vocal"], Joy=[960903, "Sub_vocal"], Yeri=[990305, "Sub_rapper"])
    print(RV)

RedVelvet()

실습은 value로 숫자, 문자, 그리고 리스트까지 들어갈 수 있는 것을 확인할 수 있게 구현하였다.


  • 스트링, 리스트, 딕셔너리를 반복문으로 돌면서 인자를 출력하는 함수를 작성해보세요.
from __future__ import print_function
A = "Wecode"
B = [1, 2, 3, 4, 5, 6, 7]
C = {'Irene' : 'Leader', 'Seulgi' : 'Dancer', 'Wendy' : 'Vocal', 'Joy':'Sub_vocal', 'Yeri': 'Sub_rapper'}

def sld():
    for i in A:
        print(i, end = "")
    
    for j in B:
        print(j, end = "")
    
    for k, v in C.items():
        print(k, v, end = "")

print(sld())

먼저 필요한 함수를 선언한다. 이후 문자열, 리스트, 딕셔너리를 변수로 구현한 뒤 for 반복문으로 설정한 뒤 마지막에 print로 함수를 출력했다. 이 때 딕셔너리는 기본적으로 키만 분류되어 출력되지만 for ~items()를 사용하면 value도 함께 나온다. 가독성을 위해 가로 정렬을 시켰고 end = "" 구문을 사용했다.

  • 중간에 난 에러 : vsc에서 end = ""가 작동하지 않을 경우


    from __future__ import print_function
    코드를 사용해준다.


  • for in 반복문을 작성해보고, break, continue의 쓰임새도 알아보세요.

n = int(input())

for i in range(n):
    if i % 3 == 0:
        continue
    if i == n:
        break
    print(i)

사용자 입력 값에 따라 작동하는 코드로, 3의 배수일 때 continue하고 n값이 되었을 때 break하는 for 반복문을 구현하였다. 여기서 continue는 그 조건이 나왔을 때 지나치는 것이고 break는 그 조건이 나오면 반복문을 멈춘다. 여기서 그 조건들을 주기 위해 if 조건문을 사용했다.


- 중간에 나온 에러 : VSC에서 File "", line 1에러가 날 경우 터미널에서 exit()를 넣어줘서 터미널을 새로고침해준다.

  • if와 else를 이용해 조건문을 작성해보세요.

word = raw_input()
if list(word) == list(reversed(word)):
    print("palindrome")
else:
    print("Nomal_Word")

사용자 입력 값에 따라 회문인지 아닌지를 if, else로 판별하는 식이다. 먼저 if, else통해 회문인지 아닌지를 판별했고, 판별하는 기준은 문자열이 시퀀스형이라는 것을 착안, list로 해서 요소를 판별했을 때 reversed로 요소를 뒤집어 정렬했을 때와 같은지를 본다. 회문은 중간을 기점으로 앞 뒤의 문자열이 같은 것을 말하는데 이 구문으로 회문을 판별할 수 있다.


- 중간에 난 에러 : vsc에서 input값에서 에러가 날 경우(string) input 대신 raw_input()을 사용해준다.



  • list method 중 append, pop, sort을 활용한 함수를 작성해보세요.
example = [2, 3, 5, 7, 1]
def plus(x):
    example.append(x)
    return example

def deleting():
    example.pop()
    return example

def sorting():
    example.sort()
    return example

print(deleting())
print(plus(6))
print(sorting())

list method는 다양한 종류가 있는데 append는 list의 요소를 추가하는 것이고, pop는 list의 끝 요소를 삭제하는 것이고, sort는 list를 순서대로 정렬해주는 역할을 한다. 먼저 리스트를 하나 생성 후, 함수를 3번 선언한다. 이 때 append 조건이 들어간 함수의 경우 1개 요소를 추가하는 것이므로 매개변수와 인자가 들어갈 수 있게 x를 선언한다. 이후 return값을 줘서 함수가 정상적으로 작동할 수 있게 만든 뒤 print한다. print시 plus함수에는 추가하고 싶은 요소(인자)를 넣어준다.

profile
커피 내리고 향 맡는거 좋아해요. 이것 저것 공부합니다.

0개의 댓글