μλ νμΈμ, νμ΄μ¬ μ΄μ κ° μ¬λ¬λΆ! μ€λμ νμ΄μ¬ νλ‘κ·Έλλ°μ ν΅μ¬ λꡬ μ€ νλμΈ `range()` ν¨μμ λν΄ κΉμ΄ μκ² μμλ³΄λ €κ³ ν©λλ€. μ΄ κ°λ ₯ν ν¨μλ μ«μ μνμ€ μμ±μ λΉλ° 무기λ‘, μ¬λ¬λΆμ μ½λ© μ€λ ₯μ ν λ¨κ³ λμ΄μ¬λ¦΄ μ μλ λ§λ² κ°μ λꡬμ λλ€. μ, μ΄μ νμ΄μ¬μ μΈκ³λ‘ λΉ μ Έλ³ΌκΉμ? π✨
1. range() ν¨μλ 무μμΈκ°?
`range()` ν¨μλ νμ΄μ¬μ λ΄μ₯ ν¨μλ‘, μ«μ μνμ€λ₯Ό μμ±νλ λ§λ²μ¬μ κ°μ΅λλ€. μ΄ ν¨μλ λ©λͺ¨λ¦¬λ₯Ό ν¨μ¨μ μΌλ‘ μ¬μ©νλ©΄μ λκ·λͺ¨μ μ«μ λ²μλ₯Ό λ€λ£° μ μκ² ν΄μ€λλ€. λ§μΉ 무νν μ£Όλ¨Έλμμ νμν λλ§λ€ μ«μλ₯Ό κΊΌλ΄λ κ²μ²λΌ μλνμ£ ! π©✨
2. range() ν¨μμ κΈ°λ³Έ μ¬μ©λ²
`range()` ν¨μλ μΈ κ°μ§ μ£Όμ ννλ‘ μ¬μ©ν μ μμ΅λλ€:
1. range(stop): 0λΆν° μμν΄μ stop μ κΉμ§μ μ«μλ₯Ό μμ±ν©λλ€.
2. range(start, stop): startλΆν° μμν΄μ stop μ κΉμ§μ μ«μλ₯Ό μμ±ν©λλ€.
3. range(start, stop, step): startλΆν° μμν΄μ stop μ κΉμ§ step κ°κ²©μΌλ‘ μ«μλ₯Ό μμ±ν©λλ€.
μμ λ₯Ό ν΅ν΄ μ΄ν΄λ³ΌκΉμ? π§
```python
# μμ 1: 0λΆν° 4κΉμ§ μΆλ ₯
for i in range(5):
print(i, end=' ')
# μΆλ ₯: 0 1 2 3 4
print("\n---")
# μμ 2: 2λΆν° 6κΉμ§ μΆλ ₯
for i in range(2, 7):
print(i, end=' ')
# μΆλ ₯: 2 3 4 5 6
print("\n---")
# μμ 3: 1λΆν° 10κΉμ§ 2μ© μ¦κ°νλ©° μΆλ ₯
for i in range(1, 11, 2):
print(i, end=' ')
# μΆλ ₯: 1 3 5 7 9
```
μ΄ μ½λλ₯Ό μ€νν΄λ³΄λ©΄, `range()`κ° μΌλ§λ λ€μ¬λ€λ₯νμ§ λ°λ‘ μ μ μμ κ±°μμ!
3. range()μ for 루νμ νμμ μΈ μ‘°ν©
`range()`μ `for` 루νλ λ§μΉ μ΄μ½λ¦Ώκ³Ό λ°λλΌ μμ΄μ€ν¬λ¦Όμ²λΌ μλ²½ν μ‘°νλ₯Ό μ΄λ£Ήλλ€. π«π¦ μ΄ μ‘°ν©μΌλ‘ μ°λ¦¬λ μ νν μνλ λ§νΌμ λ°λ³΅μ μ½κ² μ μ΄ν μ μμ£ .
```python
# 5λ² "μλ
νμΈμ!" μΆλ ₯νκΈ°
for _ in range(5):
print("μλ
νμΈμ!")
# μΉ΄μ΄νΈλ€μ΄ λ§λ€κΈ°
print("λ‘μΌ λ°μ¬ μΉ΄μ΄νΈλ€μ΄!")
for i in range(10, 0, -1):
print(i)
print("λ°μ¬! π")
```
μ΄ μμ λ₯Ό μ€νν΄λ³΄λ©΄, `range()`κ° μΌλ§λ μ§κ΄μ μ΄κ³ κ°λ ₯νμ§ λλ μ μμ κ±°μμ.
4. range()μ μ¨κ²¨μ§ 보물: κ³ κΈ νμ©λ²
`range()`λ λ¨μν λ°λ³΅ μ΄μμ κΈ°λ₯μ μ 곡ν©λλ€. μ¬κΈ° λͺ κ°μ§ ν₯λ―Έλ‘μ΄ νμ©λ²μ μκ°ν κ²μ:
4.1 리μ€νΈ μμ±νκΈ°
```python
# μ§μ 리μ€νΈ λ§λ€κΈ°
even_numbers = list(range(0, 11, 2))
print(even_numbers) # [0, 2, 4, 6, 8, 10]
# μ κ³±μ 리μ€νΈ λ§λ€κΈ°
squares = [x**2 for x in range(1, 6)]
print(squares) # [1, 4, 9, 16, 25]
```
4.2 μΈλ±μ±κ³Ό μ¬λΌμ΄μ±
```python
alphabet = 'abcdefghijklmnopqrstuvwxyz'
print(alphabet[range(0, 26, 2)]) # 'acegikmoqsuwy'
```
μ΄λ° λ°©μμΌλ‘ `range()`λ₯Ό νμ©νλ©΄, 볡μ‘ν λ°μ΄ν° μ²λ¦¬λ κ°λ¨νκ² ν΄κ²°ν μ μλ΅λλ€! π§♂️
5. range()μ ν¨μ¨μ±: μ κ·Έλ κ² λΉ λ₯Έκ°?
`range()`μ λΉλ°μ λ°λ‘ 'μ§μ° νκ°(lazy evaluation)'μ μμ΅λλ€. μ΄λ νμν λλ§ κ°μ μμ±νλ€λ λ»μ΄μμ. μλ₯Ό λ€μ΄, `range(1, 1000000)`μ μ€μ λ‘ 100λ§ κ°μ μ«μλ₯Ό λͺ¨λ μ μ₯νμ§ μκ³ , μμκ°, μ’ λ£κ°, κ·Έλ¦¬κ³ λ¨κ³λ§μ κΈ°μ΅ν©λλ€.
μ΄λ° νΉμ± λλ¬Έμ `range()`λ λ©λͺ¨λ¦¬ μ¬μ©λμ΄ λ§€μ° μ κ³ , λκ·λͺ¨ λ°μ΄ν°λ₯Ό λ€λ£° λ νΉν μ μ©ν©λλ€. π¨π»
```python
import sys
# 리μ€νΈμ range κ°μ²΄μ λ©λͺ¨λ¦¬ μ¬μ©λ λΉκ΅
big_list = list(range(1000000))
big_range = range(1000000)
print(f"리μ€νΈ ν¬κΈ°: {sys.getsizeof(big_list)} λ°μ΄νΈ")
print(f"range κ°μ²΄ ν¬κΈ°: {sys.getsizeof(big_range)} λ°μ΄νΈ")
# μΆλ ₯
리μ€νΈ ν¬κΈ°: 8000056 λ°μ΄νΈ
range κ°μ²΄ ν¬κΈ°: 48 λ°μ΄νΈ
```
μ΄ μ½λλ₯Ό μ€νν΄λ³΄λ©΄, `range()`κ° μΌλ§λ ν¨μ¨μ μΈμ§ μ§μ νμΈν μ μμ κ±°μμ!
6. μ£Όμν΄μΌ ν ν¨μ κ³Ό ν΄κ²°μ±
`range()`λ₯Ό μ¬μ©ν λ μ£Όμν΄μΌ ν λͺ κ°μ§ μ¬νμ΄ μμ΅λλ€:
1. λ κ° ν¬ν¨λμ§ μμ: `range(1, 5)`λ 1, 2, 3, 4λ§ ν¬ν¨ν©λλ€.
2. μ μλ§ μ¬μ© κ°λ₯: μ€μλ μ¬μ©ν μ μμ΄μ.
3. μμ μμ± μ μ£Όμ: `range(5, 0, -1)`μ²λΌ μμ λ¨κ³λ₯Ό μ¬μ©ν΄μΌ ν©λλ€.
```python
# μ€μ μ¬μ© μ μ€λ₯ μλ°©
def float_range(start, stop, step):
while start < stop:
yield round(start, 2)
start += step
for x in float_range(0.5, 2.5, 0.5):
print(x, end=' ')
# μΆλ ₯: 0.5 1.0 1.5 2.0
```
μ΄λ° λ°©μμΌλ‘ `range()`μ νκ³λ₯Ό μ°½μμ μΌλ‘ 극볡ν μ μλ΅λλ€! π‘
7. μ€μ μμ©: μ¬λ―Έμλ νλ‘μ νΈ μμ΄λμ΄
`range()`λ₯Ό νμ©ν ν₯λ―Έλ‘μ΄ νλ‘μ νΈλ₯Ό λ§λ€μ΄λ³ΌκΉμ?
7.1 κ°λ¨ν μ«μ ν΄μ¦ κ²μ
```python
import random
def number_quiz():
number = random.randint(1, 100)
for attempts in range(1, 8): # μ΅λ 7λ²μ κΈ°ν
guess = int(input(f"1λΆν° 100 μ¬μ΄μ μ«μλ₯Ό λ§μΆ°λ³΄μΈμ (μλ {attempts}/7): "))
if guess == number:
print(f"μΆνν©λλ€! {attempts}λ² λ§μ λ§μΆμ
¨μ΄μ! π")
return
elif guess < number:
print("λ ν° μ«μμ
λλ€.")
else:
print("λ μμ μ«μμ
λλ€.")
print(f"μμ½λ€μ. μ λ΅μ {number}μμ΅λλ€. λ€μμ λ€μ λμ ν΄λ³΄μΈμ! π")
number_quiz()
# μ
μΆλ ₯
1λΆν° 100 μ¬μ΄μ μ«μλ₯Ό λ§μΆ°λ³΄μΈμ (μλ 1/7): 50
λ μμ μ«μμ
λλ€.
1λΆν° 100 μ¬μ΄μ μ«μλ₯Ό λ§μΆ°λ³΄μΈμ (μλ 2/7): 30
λ μμ μ«μμ
λλ€.
1λΆν° 100 μ¬μ΄μ μ«μλ₯Ό λ§μΆ°λ³΄μΈμ (μλ 3/7): 20
λ μμ μ«μμ
λλ€.
1λΆν° 100 μ¬μ΄μ μ«μλ₯Ό λ§μΆ°λ³΄μΈμ (μλ 4/7): 10
λ μμ μ«μμ
λλ€.
1λΆν° 100 μ¬μ΄μ μ«μλ₯Ό λ§μΆ°λ³΄μΈμ (μλ 5/7): 5
μΆνν©λλ€! 5λ² λ§μ λ§μΆμ
¨μ΄μ! π
```
μ΄ κ²μμ ν΅ν΄ `range()`λ₯Ό μ€μ νλ‘μ νΈμ μ΄λ»κ² μ μ©ν μ μλμ§ κ²½νν΄λ³Ό μ μμ΄μ.
8. λ§μΉλ©°: range()λ‘ μ¬λ 무νν κ°λ₯μ±
`range()` ν¨μλ λ¨μν΄ λ³΄μ΄μ§λ§, νμ΄μ¬ νλ‘κ·Έλλ°μ ν΅μ¬ λꡬ μ€ νλμ λλ€. κΈ°λ³Έμ μΈ λ°λ³΅λ¬Έ μ μ΄λΆν° 볡μ‘ν λ°μ΄ν° μ²λ¦¬κΉμ§, `range()`λ μ¬λ¬λΆμ μ½λ© μ¬μ μ λ λ ν λλ°μκ° λ κ±°μμ.
μ΄μ μ¬λ¬λΆμ `range()`μ λ§λ²μ μμ μμ¬λ‘ λΆλ¦΄ μ μλ λ§λ²μ¬κ° λμμ΅λλ€! π§♂️✨ μ΄ μ§μμ νμ©ν΄ λ ν¨μ¨μ μ΄κ³ μ°½μμ μΈ μ½λλ₯Ό μμ±ν΄λ³΄μΈμ. μ¬λ¬λΆμ μμλ ₯μ΄ κ³§ νκ³μ λλ€!
νμ΄μ¬κ³Ό ν¨κ»νλ μ¬μ μμ `range()`κ° μ¬λ¬λΆμκ² λ¬΄νν κ°λ₯μ±μ μ΄μ΄μ€ κ±°μμ. κ³μν΄μ νννκ³ , νμ΅νκ³ , μ±μ₯νμΈμ. λ€μ ν¬μ€ν μμ λ λ€λ₯Έ ν₯λ―Έμ§μ§ν νμ΄μ¬ μ£Όμ λ‘ λ§λμ! ππ
ν΄νΌ μ½λ©!
#νμ΄μ¬ #Python #rangeν¨μ #μ½λ©νν λ¦¬μΌ #νλ‘κ·Έλλ°κΈ°μ΄ #νμ΄μ¬μ΄λ³΄ #μ½λ©ν #PythonTips #νμ΄μ¬λ¬Έλ² #μ½λ©κ³΅λΆ #νλ‘κ·Έλλ°μ λ¬Έ #νμ΄μ¬κ°μ #μ½λ©κ΅μ‘ #ν ν¬λΈλ‘κ·Έ #κ°λ°μμ€ν°λ #μκ³ λ¦¬μ¦ #μ½λ©μ±λ¦°μ§ #νμ΄μ¬νλ‘μ νΈ #ITκ°λ° #νλ‘κ·Έλλ°μΈμ΄
0 λκΈ