소개
Python 리스트는 숫자들을 포함한 광범위한 요소들을 저장할 수 있는 다재다능한 데이터 구조입니다. 이 튜토리얼에서는 다양한 프로그래밍 작업에 유용한 기술인 Python 에서 숫자 범위를 가진 리스트를 만드는 방법을 배우게 됩니다. 숫자 시퀀스를 가진 리스트를 생성하는 방법을 살펴보고, 이러한 범위 리스트를 Python 프로그램에서 효과적으로 적용하는 방법에 대해 논의할 것입니다.
Python 리스트 생성 및 이해
Python 리스트는 단일 변수에 여러 항목을 저장할 수 있게 해주는 가장 일반적으로 사용되는 데이터 구조 중 하나입니다. 범위가 있는 리스트를 만들기 전에 Python 리스트의 기본 사항을 이해해 보겠습니다.
먼저, 작업할 새로운 Python 파일을 만들어 보겠습니다. WebIDE 에서:
- 상단의 "File" 메뉴를 클릭합니다.
- "New File"을 선택합니다.
- 파일 이름을
python_lists.py로 지정합니다. /home/labex/project디렉토리에 저장합니다.
이제 Python 리스트가 어떻게 작동하는지 이해하기 위해 몇 가지 코드를 작성해 보겠습니다.
## Basic list creation
numbers = [1, 2, 3, 4, 5]
print("Basic list:", numbers)
## Lists can contain different data types
mixed_list = [1, "hello", 3.14, True]
print("Mixed data types:", mixed_list)
## Accessing list elements (indexing starts at 0)
print("First element:", numbers[0])
print("Last element:", numbers[4])
## Getting the length of a list
print("List length:", len(numbers))
## Modifying list elements
numbers[2] = 30
print("Modified list:", numbers)
## Adding elements to a list
numbers.append(6)
print("After append:", numbers)
## Removing elements from a list
numbers.remove(30)
print("After remove:", numbers)
이 스크립트를 실행하여 출력을 확인해 보겠습니다. 터미널에서:
/home/labex/project디렉토리에 있는지 확인합니다.- 다음 명령을 실행합니다.
python3 python_lists.py
다음 출력을 볼 수 있습니다.
Basic list: [1, 2, 3, 4, 5]
Mixed data types: [1, 'hello', 3.14, True]
First element: 1
Last element: 5
List length: 5
Modified list: [1, 2, 30, 4, 5]
After append: [1, 2, 30, 4, 5, 6]
After remove: [1, 2, 4, 5, 6]
보시다시피, Python 리스트는 몇 가지 중요한 특징을 가지고 있습니다.
- 리스트는 순서가 있는 컬렉션 (ordered collections) 으로, 항목에 정의된 순서가 있습니다.
- 리스트는 가변적 (mutable) 이므로 생성 후 항목을 변경, 추가 또는 제거할 수 있습니다.
- 리스트는 서로 다른 데이터 유형의 항목을 포함할 수 있습니다.
- 리스트의 각 요소는 인덱스 (위치) 를 사용하여 액세스할 수 있습니다.
이제 Python 리스트의 기본 사항을 이해했으므로 숫자 범위가 있는 리스트를 만드는 것으로 넘어갈 수 있습니다.
range 함수로 리스트 만들기
Python 의 range() 함수는 숫자 시퀀스를 생성하는 내장 함수입니다. 숫자 범위를 포함하는 리스트를 만들기 위해 list() 함수와 함께 일반적으로 사용됩니다.
range() 함수를 탐색하기 위해 새로운 Python 파일을 만들어 보겠습니다.
- 상단의 "File" 메뉴를 클릭합니다.
- "New File"을 선택합니다.
- 파일 이름을
range_lists.py로 지정합니다. /home/labex/project디렉토리에 저장합니다.
이제 range() 함수를 사용하는 다양한 방법을 탐색하기 위해 코드를 추가해 보겠습니다.
## Basic usage of range() function
## Note: range() returns a range object, not a list directly
## We convert it to a list to see all values at once
## range(stop) - generates numbers from 0 to stop-1
numbers1 = list(range(5))
print("range(5):", numbers1)
## range(start, stop) - generates numbers from start to stop-1
numbers2 = list(range(2, 8))
print("range(2, 8):", numbers2)
## range(start, stop, step) - generates numbers from start to stop-1 with step
numbers3 = list(range(1, 10, 2))
print("range(1, 10, 2):", numbers3)
## Creating a list of descending numbers
numbers4 = list(range(10, 0, -1))
print("range(10, 0, -1):", numbers4)
## Creating even numbers from 2 to 10
even_numbers = list(range(2, 11, 2))
print("Even numbers:", even_numbers)
## Creating odd numbers from 1 to 9
odd_numbers = list(range(1, 10, 2))
print("Odd numbers:", odd_numbers)
이 스크립트를 실행하여 결과를 확인해 보겠습니다.
python3 range_lists.py
다음 출력을 볼 수 있습니다.
range(5): [0, 1, 2, 3, 4]
range(2, 8): [2, 3, 4, 5, 6, 7]
range(1, 10, 2): [1, 3, 5, 7, 9]
range(10, 0, -1): [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
Even numbers: [2, 4, 6, 8, 10]
Odd numbers: [1, 3, 5, 7, 9]
range() 함수는 세 가지 다른 방식으로 사용할 수 있습니다.
range(stop): 0 부터 stop-1 까지의 숫자를 생성합니다.range(start, stop): start 부터 stop-1 까지의 숫자를 생성합니다.range(start, stop, step): start 부터 stop-1 까지의 숫자를 step 만큼 증가시키면서 생성합니다.
이러한 다양한 형태를 이해함으로써 다양한 유형의 숫자 시퀀스를 만들 수 있습니다.
- 순차적인 숫자 (증가)
- 내림차순 숫자 (감소)
- 짝수
- 홀수
- 사용자 정의 간격의 숫자
range() 함수 자체는 메모리 효율적인 range 객체를 반환한다는 것을 기억하십시오. 모든 값을 한 번에 보거나 리스트 연산을 수행하기 위해 list() 함수를 사용하여 리스트로 변환합니다.
range 와 함께 리스트 컴프리헨션 사용하기
Python 은 리스트를 간결하고 읽기 쉬운 방식으로 생성할 수 있는 리스트 컴프리헨션 (list comprehensions) 이라는 강력한 기능을 제공합니다. range() 함수와 결합하면 리스트 컴프리헨션은 특정 패턴의 리스트를 생성하기 위한 우아한 솔루션을 제공합니다.
리스트 컴프리헨션을 탐색하기 위해 새로운 Python 파일을 만들어 보겠습니다.
- 상단의 "File" 메뉴를 클릭합니다.
- "New File"을 선택합니다.
- 파일 이름을
list_comprehensions.py로 지정합니다. /home/labex/project디렉토리에 저장합니다.
이제 리스트 컴프리헨션이 range 와 어떻게 작동하는지 탐색하기 위해 코드를 추가해 보겠습니다.
## Basic list comprehension with range
## Format: [expression for item in iterable]
squares = [x**2 for x in range(1, 6)]
print("Squares of numbers 1-5:", squares)
## List comprehension with condition
## Format: [expression for item in iterable if condition]
even_squares = [x**2 for x in range(1, 11) if x % 2 == 0]
print("Squares of even numbers 1-10:", even_squares)
## Creating a list of numbers divisible by 3
divisible_by_3 = [x for x in range(1, 31) if x % 3 == 0]
print("Numbers divisible by 3 (1-30):", divisible_by_3)
## Converting Celsius temperatures to Fahrenheit
celsius_temps = list(range(0, 101, 20))
fahrenheit_temps = [(c * 9/5) + 32 for c in celsius_temps]
print("Celsius temperatures:", celsius_temps)
print("Fahrenheit temperatures:", [round(f, 1) for f in fahrenheit_temps])
## Creating a list of tuples (number, square)
number_pairs = [(x, x**2) for x in range(1, 6)]
print("Numbers with their squares:")
for num, square in number_pairs:
print(f"Number: {num}, Square: {square}")
이 스크립트를 실행하여 결과를 확인해 보겠습니다.
python3 list_comprehensions.py
다음 출력을 볼 수 있습니다.
Squares of numbers 1-5: [1, 4, 9, 16, 25]
Squares of even numbers 1-10: [4, 16, 36, 64, 100]
Numbers divisible by 3 (1-30): [3, 6, 9, 12, 15, 18, 21, 24, 27, 30]
Celsius temperatures: [0, 20, 40, 60, 80, 100]
Fahrenheit temperatures: [32.0, 68.0, 104.0, 140.0, 176.0, 212.0]
Numbers with their squares:
Number: 1, Square: 1
Number: 2, Square: 4
Number: 3, Square: 9
Number: 4, Square: 16
Number: 5, Square: 25
리스트 컴프리헨션은 한 줄의 코드로 리스트를 생성할 수 있는 간결한 구문을 가지고 있습니다. 일반적인 구문은 다음과 같습니다.
[expression for item in iterable if condition]
여기서:
expression은 새 리스트에 포함하려는 것입니다.item은 iterable 의 각 요소입니다.iterable은 반복하는 시퀀스입니다 (예:range()).if condition은 선택 사항이며 포함할 항목을 필터링합니다.
리스트 컴프리헨션은 전통적인 for 루프와 append() 메서드를 사용하여 리스트를 생성하는 것보다 더 읽기 쉽고 종종 더 효율적입니다. 특정 패턴 또는 변환으로 숫자 리스트를 생성하기 위해 range() 함수와 결합할 때 특히 유용합니다.
범위 리스트의 실용적인 응용
이제 범위로 리스트를 만드는 방법을 배웠으므로 몇 가지 실용적인 응용을 살펴보겠습니다. 이러한 예제는 범위 리스트가 일반적인 프로그래밍 문제를 해결하는 데 어떻게 사용될 수 있는지 보여줍니다.
실용적인 예제를 위해 새로운 Python 파일을 만들어 보겠습니다.
- 상단의 "File" 메뉴를 클릭합니다.
- "New File"을 선택합니다.
- 파일 이름을
range_applications.py로 지정합니다. /home/labex/project디렉토리에 저장합니다.
이제 몇 가지 실용적인 응용 프로그램에 대한 코드를 추가해 보겠습니다.
## Example 1: Sum of numbers from 1 to 100
total = sum(range(1, 101))
print(f"Sum of numbers from 1 to 100: {total}")
## Example 2: Creating a multiplication table
def print_multiplication_table(n):
print(f"\nMultiplication table for {n}:")
for i in range(1, 11):
result = n * i
print(f"{n} × {i} = {result}")
print_multiplication_table(7)
## Example 3: Generating a calendar of years
current_year = 2023
years = list(range(current_year - 5, current_year + 6))
print(f"\nYears (5 past to 5 future): {years}")
## Example 4: Creating a countdown timer
def countdown(seconds):
print("\nCountdown:")
for i in range(seconds, 0, -1):
print(i, end=" ")
print("Blast off!")
countdown(10)
## Example 5: Calculating factorial
def factorial(n):
result = 1
for i in range(1, n + 1):
result *= i
return result
num = 5
print(f"\nFactorial of {num}: {factorial(num)}")
## Example 6: Creating a simple number guessing game
import random
def number_guessing_game():
## Generate a random number between 1 and 100
secret_number = random.randint(1, 100)
attempts = list(range(1, 11)) ## Maximum 10 attempts
print("\nNumber Guessing Game")
print("I'm thinking of a number between 1 and 100.")
print("You have 10 attempts to guess it.")
for attempt in attempts:
## In a real game, we would get user input
## For demonstration, we'll just print the logic
print(f"\nAttempt {attempt}")
print(f"(If this were interactive, you would guess a number here)")
print(f"The secret number is: {secret_number}")
## Break after the first attempt for demonstration purposes
break
number_guessing_game()
이 스크립트를 실행하여 결과를 확인해 보겠습니다.
python3 range_applications.py
다음과 같은 실용적인 응용 프로그램의 각 결과를 보여주는 출력을 볼 수 있습니다.
- 1 부터 100 까지의 모든 숫자의 합
- 숫자 7 에 대한 곱셈표
- 연도 목록 (5 년 전부터 5 년 후까지)
- 10 부터 1 까지의 카운트다운
- 5 의 팩토리얼
- 숫자 추측 게임이 어떻게 작동하는지에 대한 시연
이러한 예제는 범위가 리스트와 결합되어 다양한 프로그래밍 문제를 효율적으로 해결하는 데 어떻게 사용될 수 있는지 보여줍니다. 프로그램에서 범위 리스트를 사용하면 다음과 같은 몇 가지 주요 이점이 있습니다.
- 숫자 시퀀스를 반복하기 위한 간소화된 코드
- 효율적인 메모리 사용 (range 객체는 메모리에 모든 숫자를 저장하지 않음)
- 숫자 패턴 및 시퀀스의 쉬운 생성
sum(),min(),max()와 같은 다른 Python 함수와의 편리한 통합
범위 리스트의 생성 및 조작을 마스터하면 광범위한 응용 프로그램에 대해 더 간결하고 효율적인 Python 코드를 작성할 수 있습니다.
요약
이 랩에서는 Python 에서 숫자 범위를 사용하여 리스트를 생성하고 사용하는 방법을 배웠습니다. 다음은 수행한 작업에 대한 요약입니다.
- Python 리스트의 기본 사항, 즉 리스트를 생성, 액세스 및 수정하는 방법을 배웠습니다.
range()함수와 이를 사용하여 숫자 시퀀스를 생성하는 방법을 탐구했습니다.- range 를 기반으로 더 복잡한 리스트를 생성하기 위해 리스트 컴프리헨션 (list comprehensions) 을 사용하는 방법을 배웠습니다.
- 이러한 기술을 적용하여 실용적인 프로그래밍 문제를 해결했습니다.
이러한 기술은 간단한 데이터 처리부터 더 복잡한 알고리즘에 이르기까지 많은 Python 프로그래밍 작업의 기본입니다. 숫자 시퀀스를 빠르게 생성하고 조작하는 능력은 더 효율적이고 효과적인 Python 코드를 작성하는 데 도움이 되는 강력한 도구입니다.
Python 여정을 계속 진행하면서 데이터 분석, 웹 개발, 과학 컴퓨팅 등 다양한 컨텍스트에서 이러한 기술이 유용하다는 것을 알게 될 것입니다. 리스트와 range() 함수의 조합은 Python 에서 숫자 데이터를 처리하기 위한 견고한 기반을 제공합니다.



