print('10명의 수학점수의 합')
score1=int(input('1번 학생의 점수를 입력하시오'))
score2=int(input('2번 학생의 점수를 입력하시오'))
score3=int(input('3번 학생의 점수를 입력하시오'))
score4=int(input('4번 학생의 점수를 입력하시오'))
. .
.
.
total =0
total +=score1
total +=score2
total +=score3
total +=score4
.
.
.
avg = total/10
이렇게 10개의 socore의 변수에 점수를 입력받아 total을 구할 수 있지만
(반복되는 코드는 최대한 지양하자..!)
이렇게 단순 변수 데이터를 만들경우 특정 요구사항을 구현하는데 어려움을 겪는다
- 학생 수를 변경하는 경우
- 특정 학생의 시험 점수를 확인 및 변경
- 최저점과 최고점을 구하기 위해 정렬이 필요한 경우
객체가 저장되며, 배열에 저장된 객체 하나하나를 원소라 한다.
이 각각의 원소는 왼쪽에서 부터 0,1,2, 순으로 인덱스를 부여 받습니다.
(음수 인데스의 경우 우측부터 -1,-2,-3 순)
해당 원소는 각각의 주소값을 가지고 있습니다. python에서는 score[index]를 사용하여 원소의 값에 접근 합니다.
파이썬의 배열원소의 자료형은 int,float등 어떤것이든 상관없이 들어 갈 수 있으며 서로 다른 자료형도 같이 저장 가능하다.
score=[1,2,3] #배열의 선언부에서는 []안에 배열의 길이가 삽입
score[0]=1 #첫번째 원소의 값을 가리킬때는 []안에 실제 원소의 (순서-1)의 값이 들어간다
score[1]=2
(파이썬에서는 배열을 리스트와 튜플로 구현.)
리스트는 원소를 변경(추가)할 수 있는 mutable list형 객체.[]안에 원소를 쉼표(,)로 구분하여 생성
list = [] #[]빈 리스트
list = [1,2,3]
list = ['A','B','C']
#python list() 함수로도 구현 가능
list = list()
list = list('ABC')
#값을 변경
list =[1,2,3]
list[0] =3 #0은 index number -> 원소 1가리킴
print(list) #3,2,3
#추가(.append(),.insert(),.extend())
my_list = [1,2,3]
my_list.append(4) #[1,2,3,4]
my_list.insert(1,2) #[2,2,3,4] 1
my_list.extend([3,4,2] #[1,2,3,3,4,2]
my_list =[1,2] yourlist=[3,4]
my_list + yourlist =[1,2,3,4]
원소를 변경 할 수 없는 immutable한 list입니다.()로 선언하고 ()생략 가능하다. 하나의 원소로 구성된 튜플은 끝에 반드시 쉼표(,)를 붙여줘야 한다. 없으면 단순 변수로 인식
tuple=()
tuple =1
tuple=(1,)
tuple04 =1,2,3 #(1,2,3)
#tuple()로 생성 가능
tuple = tuple(1,2,3) # (1,2,3)
#range()함수 사용해보기
list,tuple은 변수에 그대로 대입 가능하다
list =[1,2,3]
a,b,c=list #1,2,3 출력
문자열이란 배열안에 문자가 나열이 되어있는 것이다.
string formatting
문자열 안의 특정한값을 바꿔야 할 경우가 있을 대 이것을 가능하게 해 주는것이 바로 문자열 포매팅이다.
.format()을 이용한 문자열 formatting
.format()함수를 사용하면 {}사이에 값이 들어가 있어도 적용된다
a=12
b=23
print("나는 {}살입니다".format(a)) # 나는 12살입니다
print("나는 {a}살입니다".format(a=22)
print("나는 {11}살이고 제 동생은{"8"}입니다".format(a,b)) # 나는 12살이고 동생은 23살입니다.
f-string
age =12
name ="이은결"
print(f"나는 {}살이고,이름은 {}입니다") # 나는 12살이고 이름은 이은결 입니다.
input()
a = input("숫자를 입력하시오:")
#사용자의 문자열 입력을 받아 변수에 저장한다. (return type = str)
map()
return is map type
if you want a list type,transformate the type
list(map(int,input().split()))
iterator(문자열, 딕셔너리, 세트,range(n))
값을 차례대로 꺼낼수 있는 객체
파이썬에서는 이터레이터만 생성하고 값이 필요한 시점이 되었을 때 값을 만드는 방식
데이터 생성을 뒤로 미루는 것, 지연 평가라고함
iter 메서드로 확인
리스의 이터레이터에 저장한뒤 next 메서드 호출하여 차례대로 꺼낼 수 있음
it = [1,2,3].__iter__()
print(it.__next__()) #1
print(it.__next__()) #2
print(it.__next__()) #3
print(it.__next__())#stopiteration 발생
it2 = range(3).__iter__()
print(it2.__next__())
print(it2.__next__())
print(it2.__next__())
print(it2.__next__()) #stopiteration
iterable object: 요소를 한 번에 하나씩 가져올수있는 객체,next() 내장 x
iterator : 반복 가능한 객체에서 iter 메서드로 이터레이터를 얻음, next() 내장 O