*2021. 6. 25. 11:55 에 작성한 글
어려운 건 당연한 거다
# 리스트(list) : 변수에 값을 여러개 저장하고 싶을 때
numbers = [2, 3, 5, 7, 11, 13]
names = ["윤수", "혜린", "태호", "영훈"]
#인덱싱(indexing) : 리스트 안에 있는 요소를 가져올 때
print(numbers[1])
print(names[0])
>>> 3
>>> "윤수"
print(numbers[-1])
print(names[-3])
>>> 13
>>> "혜린"
#리스트 슬라이싱(list slicing)
numbers[0:4]
>>> [2, 3, 5, 7]
len(리스트) : 리스트 길이를 셀 수 있는 함수
리스트.append : 리스트 요소 추가(무조건 오른쪽 끝에!) - 추가연산
del 리스트[] : []삭제
리스트.insert(원하는 위치, 요소) : 리스트 요소 추가(원하는 곳에!) - 삽입연산
리스트 정렬
sorted
: 기존 리스트는 건드리지 않고, 정렬된 새로운 리스트를 리턴
sorted(리스트)
sorted(리스트, reverse=True)
sort
: 아무것도 리턴하지 않고, 기존 리스트 정렬
리스트.sort()
리스트.sort(revers=True)
print(리스트)
리스트에서 값의 존재 확인하기
값이 있는지 확인하는 방법 : in
primes = [2, 3, 5, 7, 11, 13, 17, 19, 23]
print(7 in primes)
print(12 in primes)
True
False
값이 없는지 확인하는 방법 : not in
리스트 안의 리스트 : Nested List
some_list.sort()
: 새로운 리스트를 생성하지 않고 some_list를 정렬된 상태로 바꿔준다.
some_list.reverse()
: some_list 원소들을 반대로 배치
some_list.index(x)
: some_list에서 x의 값을 갖고 있는 원소의 인덱스 리턴
some_list.remove(x)
: some_list에서 첫 번째로 x의 값을 갖고 있는 원소 삭제
range 함수
: 간편, 깔끔, 메모리 효율성
#파라미터 1개 버전
for i in range(stop):
print(i)
# -> 0부터 stop-1까지의 범위
#파라미터 2개 버전
for i in range(start, stop):
print(i)
# -> start부터 stop-1까지의 범위
#파라미터 3개 버전
for i in range(start, stop, step):
print(i)
# -> start부터 stop-1까지의 범위, 간격 step
for문으로 구구단(while문보다 훨씬 간단)
for i in range(1, 10):
for j in range(1, 10):
print("{} * {} = {}".format(i, j, i * j))
사전(dictionary)
key-value pair (키-값 쌍)
dict_name.values() : 값이 있는지 체크!
dict의 key와 value를 모두 받아오려면
for key, value in dict items():
과제로 사전 뒤집기가 나왔는데 사전 뒤집기 전에
내 속부터 먼저 뒤집어질 것 같음...
Aliasing
alias=가명
대체해주는 것
리스트 : 자료형들의 나열
문자열 : 문자들의 나열
리스트와 문자열 구조적으로 비슷
리스트&문자열 : 인덱싱, 슬라이싱, for 반복문, 덧셈연산, len 함수 가능
리스트 : 수정 가능(mutable)
문자열 : 수정 불가능(immutable)
Q. 함수 sum_digit은 파라미터 정수형 num을 받고, num의 각 자릿수를 더한 값을 리턴한다.
# 자리수 합 리턴
def sum_digit(num):
total = 0 #자릿수 합을 보관하는 변수 total을 0으로 정의
str_num = str(num) #정수형 num을 문자열로 바꾼다
#문자열은 리스트와 유사하다는 점을 이용하여, 반복적으로 각 자릿수를 받는다.
#각 자릿수를 total에 더한다.
for digit in str_num:
total += int(digit)
return total
# sum_digit(1)부터 sum_digit(1000)까지의 합 구하기
digit_total = 0
for i in range(1, 1001):
digit_total += sum_digit(i)
print(digit_total)
문제는 어려워도 너어무우 어렵다는 것
수능만 치면 다시는 수학 공부 안해도 될 거라고 생각하면서 버텼는데
이렇게 수학이 필요합니다... 역시 기초탄탄..
'프로그래밍 기초 in Python' 3.프로그래밍과 데이터 in Python|작성자 Index