[Python] 파이썬 리스트와 함수 (값으로 호출 vs 참조로 호출)
·
Language/Python
파이썬에서 함수로 인자를 전달하는 방식에는 두 가지가 있다.값으로 호출하기: 값으로 호출하는 방식은 함수로 변수를 전달할 때 변수의 값이 복사되는 방식으로, 가장 많이 사용되는 방법이다.참조로 호출하기: 참조로 호출하는 방식은 함수로 변수를 전달할 때 변수의 참조가 전달되는 방법으로, 함수에서 매개변수를 통해 원본 변수를 변경할 수 있다.두 가지 방식에 대해 각각 알아보도록 하자. 값으로 호출하기(call-by-value)정수나 문자열처럼 변경이 불가능한(immutable) 객체들은 '값으로 호출하기' 방법으로 전달된다고 볼 수 있다. 객체의 참조값이 함수의 매개변수로 전달되지만 함수 안에서 객체의 값을 변경하면 새로운 객체가 생성되기 때문이다.def modify_value(x): x = 10 ..
[Python] 파이썬 리스트 복사하기 (얕은 복사 vs 깊은 복사)
·
Language/Python
리스트와 참조값파이썬에서 리스트 변수는 리스트 자체를 저장하고 있는 것이 아닌 참조값(reference)을 가지고 있다. 참조값은 메모리에서 리스트 객체의 위치이다. 쉽게 말해, 리스트 변수는 리스트 객체 자체가 아닌 그 주소를 가리키고 있다고 할 수 있다. scores = [10, 20, 30, 40, 50]values = scores위 예제는 scores 리스트 객체를 values 변수에 복사하여 넣어둔 것처럼 보이지만 사실 scores와 values 변수는 모두 동일한 리스트 객체를 가리키고 있다.   그렇기 때문에 values를 통하여 리스트 요소의 값을 변경하면 scores 리스트도 변경이 된다.scores = [10, 20, 30, 40, 50]values = scoresvalues[3] = ..
[Python] 파이썬 리스트 비교, 정렬
·
Language/Python
리스트 비교비교 연산자 ==, !=, 를 사용해서 리스트 두 개를 서로 비교할 수 있다. 리스트를 비교하려면 먼저 두 개의 리스트가 동일한 타입의 요소를 가지고 있어야 한다.  리스트의 비교가 동작하는 방식은 이러하다:먼저 리스트의 첫 번째 요소들을 비교한다.첫 번째 요소에서 True가 나오면 두 번째 요소를 꺼내서 비교한다.리스트 안의 모든 요소가 비교될 때까지 동일한 작업을 반복한다.리스트 안의 모든 요소들을 비교하여 모두 True가 나오면 전체 결과가 True가 되며, 중간에 False가 나오는 비교가 있다면 더 이상의 비교는 없고 전체 결과를 False로 반환하며 비교는 종료된다.list1 = [1, 2, 3]list2 = [1, 2, 3]list1 == list2 # Truelist3 = [3..
[Python] 파이썬 리스트의 기초 연산들 (요소 추가, 삭제, 삽입 등)
·
Language/Python
리스트는 편리한 연산자와 메소드들을 제공한다. 리스트를 다룰 때 알아두어야 할 기초 연산들을 살펴보자. 리스트 합병과 반복두 개의 리스트를 합칠 때에는 연결 연산자인 + 연산자를 사용할 수 있다.mario_characters = ["Mario", "Peach", "Yoshi"]poketmon_characters = ["Pikachu", "Meowth"]characters = mario_characters + poketmon_charactersprint(characters) # ['Mario', 'Peach', 'Yoshi', 'Pikachu', 'Meowth'] 리스트를 반복할 때에는 반복 연산자인 * 연산자를 사용하면 된다.values = [1, 2, 3] * 3print(values) # [1, ..
[Python] 파이썬 인덱싱과 슬라이싱
·
Language/Python
인덱싱앞서 '리스트 이해하기'에서도 살펴보았다시피, 리스트에서 하나의 요소를 인덱스 연산자를 통해서 참조(접근)하는 것을 인덱싱(indexing)이라고 한다. 인덱스는 정수이며, 첫 요소는 1이 아닌 0부터 시작한다는 점에 유의해야 한다.shopping_list = ['apple', 'banana', 'carrot', 'date']print(shopping_list[0]) # apple 파이썬에서는 음수 인덱스도 가능하다. 항상 리스트의 마지막 요소는 항상 -1이기 때문에 리스트의 마지막 요소에 접근할 때 굉장히 편리하다. 위 예제에서 shopping_list[-1]은 리스트의 마지막 요소를 나타내며 shopping_list[-3]은 마지막에서 세 번째 요소를 나타낸다.  참고로 리스트의 크기를 넘어선 ..
[Python] 파이썬 시퀀스 데이터 타입
·
Language/Python
시퀀스란?파이썬에서 시퀀스(squence) 자료형은 순서를 가진 요소들의 집합이라는 공통적인 특성을 가지고 있다. 문자열, 리스트, 튜플 모두 시퀀스에 속하며, 이들은 모두 동일한 연산을 공유한다. 예를 들어, 리스트에 적용되는 연산은 문자열에도 그대로 적용할 수 있다. 시퀀스 데이터 타입의 특징은 아래와 같다:요소들이 순서를 가지고 있다.요소들은 인덱스를 사용하여 참조할 수 있다.text = "some text"print(text[0], text[3], text[-1]) # s e tfruits = ["apple", "banana", "cherry", "pear", "fig"]print(fruits[0], fruits[3], fruits[-1]) # apple pear fig 시퀀스에서 가능한 연산..
[Python] 파이썬 리스트 이해하기
·
Language/Python
리스트란?학생 100명의 점수를 저장해야 한다고 하자. 100명의 점수를 score1, score2, score3, .. , score100처럼 변수를 100개를 만들어서 저장하기에는 선언되는 변수가 너무 많아지고 관리가 어려워진다. 학생이 100명이 아니라 1000명이 되고, 10000명이 된다면 관리가 점점 불가능에 가까워질 것이다. 그래서 탄생한 것이 리스트(list)이다. 리스트를 사용하면 모든 학생들의 점수를 하나의 리스트에 저장할 수 있고, 새로운 학생이 추가되더라도 쉽게 추가할 수 있다. 리스트 생성하기리스트는 대괄호([]) 안에 값을 나열하면 생성된다.scores = [73, 34, 98, 55, 89, 100, 79, 54] 공백 리스트를 생성한 후 값을 추가할 수도 있다. 리스트에 값을..
[Python] 달력 출력 프로그램
·
Language/Python
프로그램 요구 사항1개월의 달력을 출력하는 프로그램을 작성하시오.사용자는 한 달의 최대 일수(28-31)와 1일의 시작 요일(0-6)을 입력한다.0: 일요일, 1: 월요일, …, 6: 토요일을 의미한다.입력받은 정보를 바탕으로, 해당 월의 달력을 보기 좋게 출력한다.달력은 요일 제목(일, 월, 화, 수, 목, 금, 토)과 날짜를 포함하며, 날짜는 1일부터 시작한다.날짜는 1주 단위로 정렬되고, 시작 요일에 맞게 공백을 추가하여 출력한다. 나의 풀이# 사용자 입력 받기days_in_month = int(input("한 달의 최대 일수를 입력하세요 (28~31): "))start_day = int(input("1일의 시작 요일을 입력하세요 (0: 일, 1: 월, ..., 6: 토): "))# 요일 제목 출력..