본문 바로가기
Python

Python Day001 - 변수, list, 패킹, 언패킹

by 801lhy 2019. 7. 29.

파이썬의 특징

- 간단하다 배우기 쉽다.

- 인터프리터 언어이다. ( 컴파일 과정이 없다. 빠르다. 대화식 프로그래밍이 가능다.)

- 오픈소스

- 코드가 읽기 쉽고, 성능이 뛰어나다.

- 강력한 데이터 분석 라이브러리를 제공한다.

- 기계학습과 데이터 과학분야에서 널리 사용되고 있다.

- 범용적 언어이다.


숫자형 문자형 간 변환

- 연산을 하기위해 자료형을 통일해야한다.

- 정수형, 실수형을 문자로 바꿔줌

- 문자형에서 덧셈연산을 할 경우 숫자연산이 아닌 붙이기가 된다.


%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 가 출력된다.