반응형

안녕하세요

 

스터디에서 같이 공부한 내용을 정리하고자 글을 쓰게 되었습니다~

 

도움되셨으면 좋겠네요!

 

본 글에 나와있는 코드들을 직접 쳐보고 실행시키면서

 

여러가지로 꼬아가며 다양한 실험을 반복하시면 

 

어느새 파이썬이 익숙하고 재밌으실 겁니다~! 화이팅!

 

참고로 중간 중간 걸려있는 링크들은 글을 읽으시면서 모르는 함수, 문법 등이 나왔을 때 들어가셔서

글에 나온 정도만 이해하실 수 있으면 됩니다. (꼼꼼하게 보실 필요 없어요!)

 

1. 파이썬 조건문 - 조건식

 (2)  리스트와 조건문

  ① 리스트를 활용한 조건문

 

   저번 시간에는 단일 데이터에 대하여 비교 연산자/논리 연산자 등을 활용해 조건문을 작성하는 시간을 가졌습니다.

위 사진에서는 (1), (2)에 해당하는 부분을 공부한 셈 입니다.

 이번에는 단일 데이터 뿐만 아니라 리스트에 저장된 (3) 다중 데이터를 다루는 조건문에 대해 공부해 보겠습니다!

예를 들어 다음과 같은 문제 상황이 있다고 해봅시다.

 

"20명의 학생 (번호 1~20)중 19명이 숙제를 제출 했다고 하자. 숙제를 낸 19명의 번호가 한 줄에 주어질 때 숙제를 제출하지 않은 학생의 번호를 출력하시오."

 

submit = list(map(int, input().split())) # 숙제를 제출한 학생의 번호를 입력 받습니다.

for i in range(1, 21) :
    if i in submit : # 핵심 코드 <- (원소) in (리스트)의 형식으로 쓰며, (원소)가 (리스트)에 있을 경우 True
        continue # 제출 했을 경우 continue로 아무 일도 일어나지 않게 함.
    else :
        print(i, '가 숙제를 내지 않았습니다.') # 제출 명단에 없으므로 출력

 

 위와 같이 for문을 이용하여 코드를 짜주게 되면 숙제를 제출하지 않은 사람만을 골라 출력할 수 있게 됩니다.

이제 위 코드에 대하여 자세한 설명을 해드리도록 하겠습니다. (for문 기초 : https://wikidocs.net/22)

 

 

  ② 리스트/문자열이 해당 원소를 포함하고 있는지에 따른 참, 거짓 반환 조건식

 

  아래 예제를 보시죠~

# 리스트의 원소 포함 여부
lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

if 4 in lst : # lst안에 4가 있는 지 확인
    print('lst안에 4가 존재합니다.')
else :
    print('lst안에 4가 존재하지 않습니다.')

   즉, (원소) in (리스트) 라는 조건식은 (원소)가 (리스트)안에 포함되어 있을 경우 True를 반환합니다.

이때 not (논리 연산자)를 이용하여 같은 의미를 가진 조건문을 아래와 같이 반대로 써줄 수 있습니다.

# 리스트의 원소 포함 여부
lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

if 4 not in lst : # lst안에 4가 "없는 지" 확인
    print('lst안에 4가 존재하지 않습니다.')
else :
    print('lst안에 4가 존재합니다.')

이렇듯 리스트 속 원소의 포함 여부를 판단 할 때는 (원소) in (리스트) 조건식을 사용해주시면 됩니다.

추가적으로 이러한 기능은 리스트 뿐 만 아니라 문자열도 같은 방식의 기능을 제공합니다! 

string = '1234'

if '3' in string : # '3' <- str로 써야 올바른 조건식이 됨
    print('string 안에 3이 존재합니다')
else :
    print('string 안에 3이 존재하지 않습니다.')

 나중에 자세하게 설명하겠으나, 문자열을 원소로 가지는 리스트와 문자열(str)은 매우 비슷합니다. 

슬라이싱, 인덱스 접근, (원소) in (리스트/문자열) 등 공통점이 많으나, 중요한 차이점이 하나 있습니다.

리스트와 문자열의 차이점은 나중에 설명할 기회가 있을듯 하고 지금 당장은 (원소) in (리스트/문자열)

둘 다 공통적으로 사용할 수 있다. 라는 사실을 알고 계시면 될 것 같습니다.

 

 

 

 입출력에 비하여 비교적 양이 적은 2단계. 조건문 이었습니다! 다음에는 <반복문>을 같이 공부하겠습니다~

반응형