파이썬의 특징
- 간단하다 배우기 쉽다.
- 인터프리터 언어이다. ( 컴파일 과정이 없다. 빠르다. 대화식 프로그래밍이 가능다.)
- 오픈소스
- 코드가 읽기 쉽고, 성능이 뛰어나다.
- 강력한 데이터 분석 라이브러리를 제공한다.
- 기계학습과 데이터 과학분야에서 널리 사용되고 있다.
- 범용적 언어이다.
숫자형 문자형 간 변환
- 연산을 하기위해 자료형을 통일해야한다.
- 정수형, 실수형을 문자로 바꿔줌
- 문자형에서 덧셈연산을 할 경우 숫자연산이 아닌 붙이기가 된다.
%who : 변수 목록확인
del 변수명 : 변수 지우기
%reset : 변수 다 지우기
변수, 값 입력, 출력
name = "홍길동"
print(name)
name
input( ), print( )
# input() 입력
# print() 출력
# input으로 입력받으면 문자로 받는다.
print("Enter your name = ")
name = input()
print("Hi", name, "How are you?")
( 예제 ) 섭씨온도를 화씨온도로 변환하는 프로그램
- 섭씨온도를 입력받아 화씨온도로 변환해서 출력해주는 프로그램
# 화씨온도(F) = 섭씨온도*108 + 32
c = input()
fahrenheit = float(c)*1.8 + 32
print("섭씨온도 : ",fahrenheit)
print("섭씨온도 : ",celsius)
리스트 / [ ] / list
- 하나의 변수에 여러개의 값을 할당하는 자료형
- 하나의 변수에 여러가지 타입의 자료를 담을수 있다.
- 자바의 배열과 비슷한 개념이다.
# 모든 요소 출력
print(colors)
colors
# type( ) : 자료형 확인
print(type(colors))
# 요소를 출력하고 싶어요
colors[1]
# 리스트의 길이 확인
print(len(colors))
리스트 슬라이싱
- 자바에서는 인덱스의 범위를 넘어가면 에러가 뜨지만 파이썬은 자유롭다.
student = ['창호','소연','동헌','소윤','초롱','영인','현영','길우']
student[0:6] # 0 번째부터 6번째까지 출력
['창호', '소연', '동헌', '소윤', '초롱', '영인'] 이 출력된다.
student[:] # 전체 출력
['창호', '소연', '동헌', '소윤', '초롱', '영인', '현영', '길우'] 가 출력된다.
student[5:] # 5번째 부터 마지막까지 출력된다.
['영인', '현영', '길우'] 이 출력된다.
student[-5:] # 인덱스를 거꾸로 지정
['소윤', '초롱', '영인', '현영', '길우'] 이 출력된다.
리스트 연산 ( append() / extend( ) )
- append( ) : 리스트에 하나의 요소를 추가한다.
- extend( ) : 리스트를 합쳐준다.
- 더하기 연산을 통해 리스트를 합쳐줄 수 있다.
color1 = ["red","orange","yellow"]
color2 = ["green", "blue", "navyblue"]
print(color1+color2)
['red', 'orange', 'yellow', 'green', 'blue', 'navyblue'] 가 출력된다.
append( )
# append : 리스트에 하나의 요소를 추가한다.
color1.append("purple")
color1.append(["black","white"])
color1
['red', 'orange', 'yellow', 'purple', ['black', 'white']] 가 출력된다.
'purple' 요소와 ['black', 'white'] 요소가 추가됨
extends( )
# extends : 리스트를 묶음, 합쳐줌
color1.extend(["apple", "banana"])
color1
['red', 'orange', 'yellow', 'purple', ['black', 'white'], 'apple', 'banana'] 가 출력됨
→ 리스트연산에서 + 는 extend( ) 와 같은 기능을 한다.
리스트 인덱싱
print(color1)
color1[6][0]
['red', 'orange', 'yellow', 'purple', ['black', 'white'], 'apple', 'banana']
'b'
가 출력된다.
color1[4][1][2]
['red', 'orange', 'yellow', 'purple', ['black', 'white'], 'apple', 'banana']
'i'
가 출력된다.
insert( ) / remover ( ) : 요소 삽입, 삭제
color1.insert(1,"gray") # 첫번째 자리에 그레이 넣자
color1
['red', 'gray', 'orange', 'yellow', 'purple', ['black', 'white'], 'apple', 'banana'] 가 출력된다.
color1.remove("purple") # purple 이라는 요소를 삭제해 주세요
color1
['red', 'gray', 'orange', 'yellow', ['black', 'white'], 'apple', 'banana'] 가 출력됨
'purple' 이 삭제됨
요소 변경 / 삭제
color1[0] = "skyblue" # 특정 값을 바꿀수 있다.
del color1[2] # 두번째꺼 없어짐
color1
['skyblue', 'gray', 'yellow', ['black', 'white'], 'apple', 'banana'] 가 출력됨
패킹과 언패킹
- 패킹(packing) : 하나의 변수에 여러값을 할당하는 것
- 언패킹(unpacking) : 하나의 변수에 여러개의 값이 담겨있을때 각각의 변수에 할당
- 언패킹 주의 사항 : 할당 받은 변수의 개수가 적거나 많으면 에러가 남
패킹
# 리스트 패킹
t = [1,2,3] # 패킹
a, b, c = t # a=1, b=2, c=3
print(t)
print(a,b,c)
# x,y,z,w = t 이건 에러가 발생함. t의 값은 3개인데 변수 갯수가 4개여서 오류 발생.
[1, 2, 3]
1 2 3
언패킹
# 리스트 언패킹
numbers = [1,2,3,4,5,6,7,8,9,10]
a,b,c,d,e = numbers[4:9]
print(a,b,c,d,e)
리스트의 요소를 변수에 나눠서 대입할때는 리스트 요소의 갯수와 변수의 갯수가 일치해야한다.
리스트의 주소 개념
== ( 항등연산자) / is
- == ( 항등연산자 ) : 값을 비교하는 연산자
- is : 메모리의 주소를 비교하는 연산자
x = 300
y = 300
x == y
True
x is y # 주소가 다르다
False
리스트의 요소로 리스트 입력이 가능하다
a = ['color',1,0.2]
a[0] = color
a
[['yellow', 'blue', 'green', 'black', 'white'], 1, 0.2] 이 출력된다.
리스트의 주소
a = [1,2,3,4,5]
b = [5,4,3,2,1]
print(a==b) # false
print(a is b) # false : 같은 주소가 아님
b = a
print(b) # [1,2,3,4,5]
print(a==b) # true
print(a is b) # true : [1,2,3,4,5] 리스트를 가리키는 레퍼런스가 두개이고 주소는 같음
False False [1, 2, 3, 4, 5] True True 가 출력된다.