튜플과 리스트의 가장 큰 차이점은 수정할 수 있는가이다.
리스트는 수정 가능하고 튜플은 수정이 불가능하다.
리스트는 대괄호 [], 튜플은 소괄호 ()를 사용한다.
t = (1, 2, 3)
t[0] = 'a'
소괄호 ()로 감싸여 있는 것으로 보아 t는 튜플이고 튜플은 값들이 변경 불가능(immutable)하기 때문입니다.
t = 1, 2, 3, 4
파이썬에서는 소괄호 () 없이도 쉼표로 구분된 값들이 있으면 자동으로 튜플로 인식된다.
t = (1, 2, 3, 4)와 동일한 튜플이다.
print(type(t))를 실행해보면 <class 'tuple'>이라고 출력된다.
lst = [3, -20, -3, 44]
lst = [3, -20, -3, 44]
for num in lst : # lst에서 요소 하나씩 가져와서
if num < 0 : # 0보다 작을 경우 출력
print(num, end = " ") # 출력 : -20 -3
lst = [3, 100, 23, 44]
for num in lst :
if num % 3 == 0 : # 3의 배수
print(num)
lst = [13, 21, 12, 14, 30, 18]
for num in lst :
if (num % 3 == 0) and (num < 20) : # 3의 배수 and 20보다 큼
print(num, end = " ") # 출력 : 12 18
for year in range(2002, 2051, 4) :
print(year)
range의 step을 1로 하고 year % 4 == 0으로 할수도 있지만
step을 4로 한 게 더 간단해보여서 저렇게 했다.
99
98
97
...
2
1
0
for i in range(99, -1, -1) : ## 99부터 0까지 -1씩 감소
print(i)
0.0
0.1
0.2
0.3
0.4
0.5
...
0.9
for i in range(0, 10, 1) :
print(i/10)
range(0, 1.0, 0.1)은 언뜻 보면 될 거 같지만 range()는 정수만 가능하기 때문에 range(0, 10, 1)의 결과를 10으로 나눠주었다.
odd_sum = 0
for i in range(1, 11) :
if i % 2 != 0 :
odd_sum += i
print(odd_sum) # 출력 : 25
multi = 1 # 덧셈에서는 0으로 초기화했지만 곱셈에서는 1로 초기화 해야 함
for i in range(1, 11) :
multi *= i
print(multi)
# 단, for문과 range문을 사용하라.
price_list = [32100, 32150, 32000, 32500]
0 32100
1 32150
2 32000
3 32500
price_list = [32100, 32150, 32000, 32500]
for i in range(len(price_list)) :
print(i, price_list[i])
my_list = ["가", "나", "다", "라", "마"]
가 나 다
나 다 라
다 라 마
my_list = ["가", "나", "다", "라", "마"]
for i in range(0, 3) :
for j in range (0, 3) :
print(my_list[i+j], end = " ")
print()
my_list의 연속된 세 요소씩 출력하기 위해 이중 for문을 사용했다.
(구구단 출력이랑 비슷한 것 같다.)
바깥 for문은 출력 시작 인덱스를 지정하고 안쪽 for문은 그 인덱스부터 세 요소를 순차적으로 출력한다.
\# 첫 번째 줄에는 100, 200, 400의 평균값이 출력된다. \# 두 번째 줄에는 200, 400, 800의 평균값이 출력된다. \# 같은 방식으로 나머지 데이터의 평균을 출력한다. my_list = [100, 200, 400, 800, 1000, 1300] 233.33333333333334 466.6666666666667 733.3333333333334 1033.3333333333333
sum = 0
for i in range(0, 3) :
for j in range (0, 3) :
sum += my_list[i+j]
print(sum / 3)
sum = 0
13번 문제랑 비슷하다고 생각하면 된다.
my_list의 연속된 세 요소씩 합을 계산하여 평균값을 출력한다.
바깥 for문은 계산 시작 인덱스를 안쪽 for문은 해당 인덱스부터 세 요소를 더하는 역할을 하며 마지막에 평균을 구해 출력합니다.
평균을 출력하고 그 다음 for문을 위해 sum = 0으로 값을 바꿔주는 게 중요하다.
101호 102호
201호 202호
301호 302호
apart = [["101호", "102호"], ["103호", "104호"], ["105호", "106호"]]
시가 종가
100 80
200 210
300 330
stock = [[100, 200, 300], [80, 210, 330]]
모듈은 관련된 함수, 클래스, 변수 등을 하나의 파일에 모은 코드 파일이다.
모듈을 사용하면 다른 프로그램에서 재사용할 수 있도록 코드의 기능을 분리하고, 유지보수와 관리가 용이해진다.
import math
result = math.sqrt(16) #math 모듈의 sqrt 함수 사용
print(result) # 출력: 4.0
from math import sqrt
result = sqrt(16) # 직접 함수 사용
print(result) # 출력: 4.0
두 가지 경우가 있으니 헷갈리지 않게 조심해야 한다.
import만 있는 경우엔 import 뒤에 모듈 이름이 오지만 from import에서는 from 뒤에 모듈 이름이 온다.
from 모듈_이름 import 모듈_함수의 경우 변수와 함수를 자유롭게 사용할 수 있지만
import 모듈_이름의 경우엔 변수와 함수에 꼭 모듈_이름.을 붙여줘야한다.
솔직히
hello() def hello(): print("Hi")
함수를 정의하기 전에 호출했기 때문이다.
아래와 같이 함수를 정의한 뒤 호출하면 에러가 발생하지 않는다.
def hello():
print("Hi")
hello()
def message() : print("A") print("B") message() print("C") message()
A
B
C
A
B
처음 message()로 A B가 출력된 후 print("C")의 결과로 C가 출력된다.
그 다음 message()로 마지막 A B가 출력되기 때문에 실행 결과는 위와 같을 것이다.
print(sep = ' _ ', 1, 2, 3, , end = ' m^^m ')
파라미터를 지정한 경우에는 제일 뒤로 빼야 한다.
print(1, 2, 3, sep = ' _ ', end = ' m^^m ')
오늘은 continue와 break를 배웠다.
while True : 한 후 break 사용하는 걸 좋아해서 break 배울 때 좋았다...
이유는 모르겠다... 저게 그냥 좋아....
for i in range(5):
if i == 3:
continue # i가 3일 때는 그 아래 코드 실행을 건너뛰고 다음 반복으로
print(i) # 출력 : 0 1 2 4
for i in range(5):
if i == 3:
break # i가 3일 때 반복문 종료
print(i) # 출력 : 0 1 2
튜플은 리스트와 유사하지만 데이터 갱신및 삭제가 불가능하다.
모듈은 from 과 import 두개의 문법용어가 있다.
함수 호출시 이름을 지정해 값을 전달 할수 있다.