Day3. 조건문과 리스트

0ㅑ채
|2024. 1. 4. 17:42

* 새롭게 배운 내용만 적었습니다. 교재는 '혼자 공부하는 파이썬

 

 

A. If 조건문

끝자리로 짝수와 홀수 구분

number = input("정수 입력> ")

last_character = number[-1]

last_number = int(last_character)

if last_number == 0 \
    or last_number == 2 \
    or last_number == 4 \
    or last_number == 6 \
    or last_number == 8:
    print("짝수입니다")
    
if last_number == 1 \
    or last_number == 3 \
    or last_number == 5 \
    or last_number == 7 \
    or last_number == 9:
    print("홀수입니다")

 

If문에서 코드가 너무 길면, \를 쓰고 다음 줄에 쓰면 된다!

위 코드를 더 단축시키면

num = int(input("정수를 입력해주세요: "))

if not(num % 2):
    print("{}은 2로 나누어 떨어지는 숫자입니다.".format(num))
else:
    print("{}은 2로 나누어 떨어지는 숫자가 아닙니다.".format(num))

Fals로 전환되는 값은 None, 숫자 0과 0.0, 빈 컨테이너(빈 문자열, 빈 바이트열, 빈 리스트, 빈 튜플, 빈 딕셔너리 등)이다. 

이 외에는 모두 True로 변환된다!

pass 키워드

아직 구현이 안된 종속문 대신 사용해준다.

 

 

 

B. 리스트

리스트

  • 대괄호[ ] 내부에 여러 종류의 자료를 넣어 선언한다.
array = [123, 45, "문자열", True]

 

  • 내부에 들어가는 자료를 요소·원소(element)라고 한다.
  • 접근 연산자를 이중으로 사용할 수 있다. 
list_a = [123, 45, "문자열", True, False]
print(list_a[3]) #True
print(list_a[2][0])#문

 

 

요소 추가 (단일)

append() : 리스트 뒤에 요소 추가

insert() : 리스트 중간에 요소 추가

list_a = [1, 2, 3]

print("#리스트 뒤에 요소 추가하기")
list_a.append(4)
list_a.append(5)
print(list_a) #[1, 2, 3, 4, 5]
print()

print("#리스트 중간에 요소 추가하기")
list_a.insert(0, 10)
print(list_a) #[10, 1, 2, 3, 4, 5]

 

요소 추가 (복수)

extend(): 리스트 뒤에 새로운 리스트 요소 모두 추가 (파괴적 처리)

list_a = [1, 2, 3]
list_b = [4, 5, 6]

print(list_a + list_b) #[1, 2, 3, 4, 5, 6]
print(list_a) #[1, 2, 3]

list_a.extend(list_b) 
print(list_a) #[1, 2, 3, 4, 5, 6]

 

요소 삭제 

  • 인덱스로 제거: del, pop()
  • 값으로 제거: remove()
  • 모두 제거: clear()
list_a = [0, 1, 2, 3, 4, 5]
print("#리스트의 요소 하나 제거하기")

# 인덱스로 제거
del list_a[1]
print(list_a) # [0, 2, 3, 4, 5]

list_a.pop(2)
print(list_a) # [0, 2, 4, 5]

# 값으로 제거
list_b = [1, 2, 1, 2]
list_b.remove(2)
print(list_b) # [1, 1, 2]

#모두 제거
list_c = [0, 1, 2, 3, 4, 5]
list_c.clear()
print(list_c) # [ ]

 

 

sort():  리스트 정렬하기 

  • 기본 오름차순 정렬
  • 내림차순 정렬 sort(reverse=True)
list_a = [24, 593, 5,103, 60, 920]
list_a.sort()
print(list_a) # [5, 24, 60, 103, 593, 920]

list_a.sort(reverse=True)
print(list_a) # [920, 593, 103, 60, 24, 5]
의문점) 파괴적 함수는 print() 안에서 출력되지 않는데?
list_b = [1, 2, 1, 2]
print(list_c.remove(2)) #None​

중첩된 함수는 내부에서부터 외부로 풀어나간다.
list_c.remove(2)는 list를 지우고 난 결과가 아니라 '지웠음' 그 자체이기 때문에, 반환값이 None이다.
일반적으로 None은 '성공했다'는 의미다. 

 

 

 

'Python' 카테고리의 다른 글

Day6. 객체지향 프로그래밍  (0) 2024.01.16
Day5. 함수  (1) 2024.01.08
Day4. 딕셔너리와 반복문  (1) 2024.01.05
Day2. 변수와 함수, 연산자  (1) 2024.01.03
Day1. 자료형  (1) 2024.01.02