TIL - 240427

오정수·2024년 4월 27일

TIL

목록 보기
13/78

계획

주말이니 조금 여유롭게 파이썬을 공부할 계획이다.
우선 복습을 하고 4,5주차 강의를 들을 수 있으면 들어보려 한다.
우선 오늘 TIL에서는 1~3주차 강의를 정리할 것이다.

파이썬 종합 강의 1주차

출력문

Python의 기본은 출력문이다.

print()

괄호 안에 값을 출력한다.
여러 값을 출력할 때 쉼표(,)로 구분한다.

num_records = 1000
print('총',num_records,'명의 레코드가 분석되었습니다.')

# 총 1000 명의 레코드가 분석되었습니다.

변수

변수 선언을 할 때 변수명을 지정하고 할당 연산자(=)를 사용해 값을 할당한다.

x=10
print(x)

# 10

y='apple'
print(y)

# apple

print(x*2)

# 20

변수는 다양한 연산에 활용할 수 있다.

변수의 자료형으로는 정수, 실수, 문자열, 리스트, 튜플, 딕셔너리 등이 있다.

Sequence type 자료형을 자주 사용하니 기억해두자.
List, Tuple, Strings가 있다.

type() 함수로 자료형을 확인할 수 있다.

print(type(x))

# <class 'int'>

print(type(y))

# <class 'str'>
  • 변수 종류 1 : 문자열

작은 따옴표나 큰 따옴표로 감싸서 선언해야 한다.

name = 'JS Oh'
greeting = 'Hello'

문자열 변수끼리 연결하면 새로운 문자열을 만들 수 있다.

full_greeting = greeting + 'My name is' + name
print(full_greeting)

# Hello My name is JS OH

문자열과 함께 메서드를 활용할 수 있다.

sentence = 'python programming is fun'
print(sentence.upper())

# PYTHON PROGRAMMING IS FUN
  • 변수 종류 2 : 숫자열

정수(int)나 실수(float) 형태의 숫자열은 그냥 할당하면 된다.

num1 = 10
num2 = 3.14

print(type(num1))
print(type(num2))

# <class 'int'>
# <class 'float'>

연산도 다양하게 할 수 있다.

sum_result = num1 + num2
diff_result = num1 - num2
product_result = num1 * num2
division_result = num1 / num2
integer_division_result = num1 // num2
remainder_result = num1 % num2

print('합 : ',sum_result) # 합 : 13.14
print('차 : ',diff_result) # 차 : 6.8599999999
print('곱 : ',product_result) # 곱 : 31.40000000002
print('나누기 : ',division_result) # 나누기 : 3.184713375796178
print('정수 나누기 : ',integer_division_result) # 정수 나누기 : 3.0
print('나머지 : ',remainder_result) # 나머지 : 0.57999999999

숫자열에는 다양한 함수와 메서드가 내장되어 있다.

num3 = -7.89
abs_result = abs(num3) # 절댓값 계산
round_result = round(num3) # 반올림 계산

print('절댓값:',abs_result)
print('반올림:',round_result)

# 절댓값: 7.89
# 반올림: -8
  • 변수 종류 3 : 불리언

Boolean 자료형은 주어진 조건이 참(True) 또는 거짓(False)을 나타내는 데 사용된다.

x = 10
y = 5

greater_than = x > y
print(greater_than)

# True
  • 결측값(NaN)

Not a Number는 데이터에서 결측치를 나타내는 값이다.
NaN은 정의할 수 없는 수치값이다.
예로는 0으로 나누는 연산이나 유효하지 않은 수학적 연산 결과를 나타낼 때 사용된다.
데이터프레임과 같은 데이터 구조에서 결측치를 표현할 때 NaN이 사용된다.

MySQL과 같은 NULL을 여기서는 None로 표현한다.
값에 NaN값을 넣고 싶으면 None을 사용하면 된다.

입력문

input()

사용자의 키보드로 입력을 받는 함수다.

1주차 QUIZ

num1 = 15
num2 = 27
print(num1+num2)

# 42

x = "Python은 데이터 분석과 인공지능 분야에서 매우 인기 있는 프로그래밍 언어입니다."
print(x)

# Python은 데이터 분석과 인공지능 분야에서 매우 인기 있는 프로그래밍 언어입니다.

파이썬 종합 강의 2주차

이번엔 1주차에 예고했듯이 Sequence Type에 대해 알아봤다.

리스트

리스트는 파이썬에서 가장 자주 사용되는 데이터 구조다.
여러 항목들을 담을 수 있는 가변한 시퀀스다.
대괄호 []를 통해서 리스트를 만들 수 있다.

my_list = [1, 2, 3, 4, 5]

print(my_list)  
# [1, 2, 3, 4, 5]
  • 리스트의 인덱싱

리스트에서 특정 위치의 값에 접근하는 방법이다.

numbers = [1, 2, 3, 4, 5]

# 첫 번째 요소에 접근하기
first_number = numbers[0]

# 두 번째 요소에 접근하기
second_number = numbers[1]

# 마지막 요소에 접근하기
last_number = numbers[-1]

# 음수 인덱스를 사용하여 역순으로 요소에 접근하기
second_last_number = numbers[-2]
  • 리스트의 다양한 메서드

append() : 항목을 추가
extend() : 다른 리스트의 모든 항목을 추가
insert() : 특정 위치에 항목을 삽입
remove() : 특정 값 삭제
pop() : 특정 위치 값 제거 후 반환
index() : 특정 값의 인덱스를 찾기
count() : 특정 값의 개수를 셈
sort() : 항목들을 정렬
reverse() : 역순으로 정렬

my_list = [1, 2, 3, 4, 5]

my_list.append(6) # 리스트에 새로운 항목 추가
print(my_list)  # [1, 2, 3, 4, 5, 6]

my_list.extend([7, 8, 9]) # 다른 리스트의 모든 항목을 추가
print(my_list)  # [1, 2, 3, 4, 5, 6, 7, 8, 9]

my_list.insert(2, 10) # 두 번째 위치에 값 삽입
print(my_list)  # [1, 2, 10, 3, 4, 5, 6, 7, 8, 9]

my_list.remove(3) # 값 3 삭제
print(my_list)  # [1, 2, 10, 4, 5, 6, 7, 8, 9]

popped_value = my_list.pop(5) # 다섯 번째 위치의 값 제거하고 반환
print(popped_value)  # 6
print(my_list)  # 출력: [1, 2, 10, 4, 5, 7, 8, 9]

print(my_list.index(4)) # 3 (값 4의 인덱스)

print(my_list.count(7)) # 1 (값 7의 개수)

my_list.sort() # 리스트 정렬
print(my_list)  # [1, 2, 4, 5, 7, 8, 9, 10]

my_list.reverse() # 리스트 역순으로 뒤집기
print(my_list)  # [10, 9, 8, 7, 5, 4, 2, 1]

참고로 리스트의 insert 메서드는 아래와 같은 구문으로 사용 가능

a_list.insert(index, element)

index : 요소를 삽입할 위치의 인덱스
element : 삽입할 요소의 값

값은 삭제가 가능하다.

del my_list[0]
print("첫 번째 항목 삭제 후 리스트:", my_list) 

my_list.clear()
print("모든 항목 제거 후 리스트:", my_list) 

# 첫 번째 항목 삭제 후 리스트: [9, 8, 7, 5, 4, 2, 1]
# 모든 항목 제거 후 리스트: []

값을 변경할 수도 있다.

my_list = ['apple', 'banana', 'cherry', 'date', 'elderberry']

my_list[3] = 'dragonfruit'
print(my_list)  

# ['apple', 'banana', 'cherry', 'dragonfruit', 'elderberry']

중첩된 리스트에서 인덱싱을 하는 방법은 다음과 같다.

nested_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print(nested_list[1][0])  

# 4 

리스트 고급 사용법에는 슬라이싱과 정렬이 대표적이다.

  • 슬라이싱
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# 음수 인덱스 사용하기 (뒤에서부터 추출)
print(my_list[-3:])   # [8, 9, 10]

# 간격 설정하기 (특정 간격으로 추출)
print(my_list[1:9:2]) # [2, 4, 6, 8]

# 리스트를 거꾸로 뒤집기
reversed_list = my_list[::-1]
print(reversed_list)  # [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
  • 정렬
my_list = [3, 2, 1, 4, 5, 7, 6, 8, 9, 10]
my_list.sort()
print(my_list)
my_list.sort(reverse=False)
print(my_list)
my_list.sort(reverse=True)
print(my_list)

# [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]

기본 값은 오름차순이라 생략 가능하다.

마무리

2주차의 리스트 고급까지 했는데 조금 오래 걸렸다.
그리고 문득 꼭 모든 것을 정리해야 하나 싶어서 앞으로 내가 몰랐던 내용 위주로 정리하겠다.

profile
안녕하세요 오정수입니다

0개의 댓글