'프로그래밍 기초 in Python' 3.프로그래밍과 데이터 in Python

인덱스·2023년 1월 6일
0

codeit

목록 보기
6/17


*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의 값을 갖고 있는 원소 삭제

for 반복문

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

profile
헤맨 만큼 내 땅이 된다

0개의 댓글