μλ΄: Think Python 10μ₯ λ΄μ©μ μΌλΆλ₯Ό λ²μ λ° μμ½μμ νμ¬ μ 리ν λ΄μ©μ λλ€.
νμ΄μ¬ νλ‘κ·Έλλ°μΈμ΄λ μ μ, μ€μ, μ§λ¦¬κ°(bool
) λ±μ κΈ°λ³Έ μλ£ν μ΄μΈμ
리μ€νΈ(list
), λ¬Έμμ΄(str
), νν(tuple
), μ§ν©(set
), μ¬μ (dict
)
λ± μ¬λ¬ κ°μ κ°λ€μ λ¬Άμ΄μ νλμ κ°μΌλ‘ μ·¨κΈνλ λͺ¨μ(collection) μλ£νμ μ 곡νλ€.
λͺ¨μ μλ£νμ 컨ν
μ΄λ(container) μλ£νμΌλ‘ λΆλ¦¬κΈ°λ νλ€.
λͺ¨μ μλ£νμ ν¬κ² λ μ’ λ₯λ₯΄ ꡬλΆλλ€.
μ¬κΈ°μλ νμ΄μ¬μ΄ μ 곡νλ μλ£ν μ€μμ κ°μ₯ μ μ©ν 리μ€νΈ μλ£νμ λ€λ£¬λ€.
리μ€νΈμ ν¬ν¨λλ κ°λ€ μ¬μ΄μ μμλ μ λμ μΌλ‘ μ€μνλ€. νλͺ©λ€μ μμ, νλͺ©λ€ μ¬μ΄μ μμ°¨(μμ΄)μ΄ μ€μνλ€λ μλ―Έλ‘ λ¦¬μ€νΈ μλ£νμ μμ°¨(μμ΄) μλ£νμ ν¬ν¨μν¨λ€. μμ°¨(μμ΄) μλ£νμ μνμ€(sequence) μλ£νμ΄λΌκ³ λΆλ₯΄κΈ°λ νλ€.
리μ€νΈμ νμμ λ€μκ³Ό κ°λ€.
[ νλͺ©1, νλͺ©2, ..., νλͺ©n ]
μλ μμ μ κ°μ΄ μμ λλ νλͺ©μ κ°μκ° λ€λ₯΄λ©΄ μλ‘ λ€λ₯΄λ€κ³ μ²λ¦¬λλ€.
[1, 3] == [3, 1]
[1] != [1,1]
리μ€νΈμ νλͺ©μΌλ‘ μμμ κ°μ΄ μ¬ μ μμΌλ©°, νλͺ©λ€μ μλ£νμ΄ λ¬λΌλ λλ€. λ°λΌμ, 리μ€νΈ νλͺ©μΌλ‘ λ€λ₯Έ 리μ€νΈκ° μ¬μ©λ μλ μλ€.
a_list = ['spam', 2.0, 5, [10, 20], True]
νλͺ©μ΄ μ ν μλ λΉμ΄ μλ 리μ€νΈμΈ λΉ λ¦¬μ€νΈλ []
λ‘ νμλλ€.
print(type([]))
λ¬Όλ‘ λ¦¬μ€νΈλ₯Ό λ³μμ ν λΉν μλ μλ€.
myList = [1, 2, True, 6.5, "abc"]
print(myList)
리μ€νΈ μλ£νμ κ°μ₯ λ§μ΄ μ¬μ©λλ μλ£νμΈ λ§νΌ 리μ€νΈμ κ΄λ ¨λ λ€μν ν¨μλ€μ΄ μ‘΄μ¬νλ€. νΉν μλμ μκ°λ ν¨μλ€μ 리μ€νΈλ₯Ό ν¬ν¨νμ¬ λͺ¨λ μμ°¨(μμ΄) μλ£νμ΄ κ³΅ν΅μ μΌλ‘ μ¬μ©λλ©°, λ¬Έμμ΄ μλ£νμμ μκ°ν λ°©μκ³Ό λμΌνκ² μλνλ€.
[k]
: μΈλ±μ±[i:j:k]
: μ¬λΌμ΄μ±+
: μ΄μ΄ λΆμ΄κΈ°(concatenation)*
: λ°λ³΅ν΄μ μ΄μ΄λΆμ΄κΈ°in
: νλͺ© ν¬ν¨μ¬λΆ νμΈlen
: νλͺ© κ°μ νμΈmyList[0]
myList[1:5:2]
myList + a_list
myList * 2
2 in myList
len(myList)
리μ€νΈλ μμ μ΄ κ°λ₯ν μλ£νμ΄λ€. μλ μμ λ μΈλ±μ±μ νμ©νμ¬ νΉμ μΈλ±μ€μ κ°μ λ€λ₯Έ κ°μΌλ‘ μμ ν μ μμμ 보μ¬μ€λ€. μ¬μ§μ΄ μμ λ νλͺ©μ μλ£νμ΄ λ¬λΌμ§ μλ μλ€.
myList[0] = 'Hi'
myList
μλμ λ©μλλ€μ΄ 리μ€νΈμ κ΄λ ¨λ κΈ°λ³Έμ μΈ λ©μλ λ€μ΄λ€. μμ μ€λͺ νμλ―μ΄, μλ λ©μλλ€μ μ€ννλ©΄ 리μ€νΈ μμ²΄κ° μμ λ μ μλ€.
append
: 리μ€νΈ λμ μλ‘μ΄ κ°μ μΆκ°νλ λ°μ μ¬μ©λ¨.myList.append(False)
print(myList)
insert
: νΉμ μΈλ±μ€μ μμΉμ νλͺ©μ μΆκ°νλ€.myList.insert(2, 4.5)
print(myList)
pop
: νΉμ μΈλ±μ€μ μμΉμ μλ νλͺ©μ 리μ€νΈμμ μμ ν ν μμ λ κ° λ¦¬ν΄.
μΈμλ₯Ό λ°μ§ μμΌλ©΄ λ§μ§λ§ νλͺ©μ λμμΌλ‘ νλ€.myList.pop()
myList.pop(2)
print(myList)
sort
: 리μ€νΈ νλͺ©λ€μ ν¬κΈ° μ€λ¦μ°¨μμΌλ‘ μ λ ¬.
reverse
μ΅μ
λ³μμ κ°μ True' μ§μ νλ©΄ λ΄λ¦Όμ°¨μ μ λ ¬.
리ν΄κ°μ
None` μμ μ£Όμν κ².μ£Όμ: ν¬κΈ°λ₯Ό μλ‘λΉκ΅ν μ μλ κ°λ€λ§ νλͺ©μΌλ‘ μ¬μ©λ κ²½μ°λ§ μλνλ€. κ·Έλ μ§ μμΌλ©΄ μ€λ₯κ° λ°μνλ€.
myList.sort()
newList = [3.6, 1.7, 8.1, 6.5]
print(f'sort λ©μλμ 리ν΄κ°μ {newList.sort()}μ.')
print(f'νμ§λ§ 리μ€νΈ μ체λ {newList}λ‘ μ λ ¬λ¨.')
λ΄λ¦Όμ°¨μμΌλ‘ μ λ ¬νκ³ μ ν κ²½μ° reverse
λΌλ ν€μλ μΈμλ₯Ό μ¬μ©νλ€.
newList.sort(reverse=True)
print(newList)
reverse
λ©μλλ 리μ€νΈμ μμλ₯Ό λ€μ§λλ€.
sort
λ©μλμ λ§μ°¬κ°μ§λ‘ 리ν΄κ°μ None
μ΄λ€. myList.reverse()
print(myList)
del
: νΉμ μΈλ±μ€μ κ°μ μμ νλ ν¨μμ΄λ€.
del
μ격ν μλ―Έμμλ 리μ€νΈ κ΄λ ¨ λ©μλκ° μλλ€.
λ€λ§ pop
κ³Ό λΉμ·ν κΈ°λ₯μ κ°κ³ μμ΄μ μ¬κΈ°μ μκ°νλ€.del(myList[2])
myList
index
: νΉμ κ°μ΄ λνλλ μΈλ±μ€ κ° μ€μμ κ°μ₯ μμ μΈλ±μ€ λ΄μ£ΌκΈ°.
μ§μ λ κ°μ΄ νλͺ©μ΄ μλ κ²½μ° μ€λ₯(ValueError
) λ°μ.myList.index(6.5)
myList.index(4.7)
count
: νΉμ κ°μ΄ 리μ€νΈμμ λͺ λ² μ¬μ©λμλμ§ νμΈmyList.append(6.5)
print(myList.count(6.5))
리μ€νΈμ κΈΈμ΄λ₯Ό μ νν μκ³ μλ κ²½μ° κ°κ°μ νλͺ©μ λ°λ‘λ°λ‘ λΌμ΄λ΄μ΄ λ³μμ μ μ₯ν μ μλ€.
x, y, z = [1, 2, 3]
print(f"x = {x}",
f"y = {y}",
f"z = {z}",
sep='\n')
μ£Όμ: 리μ€νΈμ κΈΈμ΄μ λ³μμ κ°μκ° λ€λ₯΄λ©΄ μ€λ₯κ° λ°μνλ€.
x, y = [1, 2, 3]
x, y, z, w = [1, 2, 3]
리μ€νΈλ₯Ό ν΄μ²΄νλ©΄μ μμΌλ‘ μ¬μ©νμ§ μκ³ λ²λ¦΄ νλͺ©μ κ΅³μ΄ μ΄λ¦μ μ£Όμ§ μμλ λλ€.
μ΄λ₯Ό μν΄ λ°μ€(underscore
, μΈλμ€μ½μ΄) κΈ°νΈλ₯Ό μ¬μ©νλ€.
x, _, z = [1, 2, 3]
print(f"x = {x}",
f"z = {z}",
sep='\n')
range
함수¶λ¦¬μ€νΈμ ν¨κ» λ§μ΄ μ¬μ©λλ ν¨μμ΄λ€.
range
ν¨μκ° μμ±ν κ°μ range
μλ£νμ΄λ©°, 리μ€νΈμ μ μ¬ν κΈ°λ₯μ μννλ€.
range
ν¨μλ ν κ°μμ μ΅λ μΈ κ°μ μΈμλ₯Ό λ°μ μ μλ€.
0
λΆν° μΈμκΉμ§μ ꡬκ°μ μλ―Ένλ€.
λ¨, ꡬκ°μ λμ ν¬ν¨νμ§ μλλ€.range(10)
list
ν¨μλ₯Ό μ΄μ©νμ¬ 0λΆν° 9κΉμ§μ μ«μλ‘ μ΄λ£¨μ΄μ§ 리μ€νΈλ₯Ό μ»μ μ μλ€.
list(range(10))
list(range(5,10))
list(range(3, 10, 2))
list(range(10,1,-1))
list(range(10,1,-3))
1λΆν° 10κΉμ§μ μ μλ₯Ό μΆλ ₯νκ³ μ ν λ μλμ κ°μ΄ μ¬μ©νλ€.
for num in range(1, 11):
print(num, end=', ')
λΉμ·ν λ°©μμΌλ‘ 1λΆν° 10κΉμ§μ μ μλ€μ 리μ€νΈλ₯Ό μμ±ν μ μλ€.
square_1_to_10 = []
for num in range(1, 11):
square_1_to_10.append(num**2)
print(square_1_to_10)
리μ€νΈλ₯Ό νμ©νμ¬ μ °μ΅μ€νΌμ΄κ° μ¬μ©ν λ¨μ΄μ κ°μλ₯Ό νμΈνκ³ μ νλ€.
λ¨Όμ μ¬μ΄νΈμμ
shakespeare.txt
νμΌμ λ€μ΄λ°μ μ μ₯νλ€.
(μ¬κΈ°μλ data
λΌλ νμ ν΄λμ μ μ₯νλ€κ³ κ°μ νλ€.)
shakespeare.txt
νμΌμ μ
°μ΅μ€νΌμ΄μ μνμΈ 'νμ¬λ¦λ°€μ κΏ'μ λ΄μ©μ λ΄κ³ μλ€.
λ¨Όμ open
ν¨μλ₯Ό μ΄μ©νμ¬ νμΌμ λΆλ¬λ€μΈν λ΄μ© μ 체λ₯Ό νλμ λ¬Έμμ΄λ‘ text
λΌλ
λ³μμ μ μ₯νλ€.
μ£Όμ: ν μ€νΈ νμΌμ μ½μ΄μμ μ μ₯νλ λ°©μμ λ°μ΄ν°μ λ€λ£¨κΈ°λ₯Ό μ°Έμ‘°νλ€.
shakespeare = open("data/shakespeare.txt")
text = shakespeare.read()
shakespeare.close()
shakespeare.txt
νμΌμ λ€μ΄λ‘λ νμ§ μκ³ μ§μ νμΈν μλ μλ€.
2μ₯μμ λ€λ£¬ urllib.request
λΌλ λͺ¨λμ ν¬ν¨λμ΄ μλ urlopen
μ΄λ ν¨μλ₯Ό μ΄μ©νλ©΄ λλ€.
λ°λΌμ μλμ κ°μ΄ μ€ννλ©΄ λλ€.
from urllib.request import urlopen
shakespeare = urlopen("shakespeare.txt")
μ΄μ text
λ λ¬Έμμ΄ μλ£νμ΄λ©°, 'νμ¬λ¦λ°€μ κΏ' μν λ΄μ© μ 체λ₯Ό λ΄μ νλμ λ¬Έμμ΄μ΄ ν λΉλμ΄ μλ€.
type(text)
text
μ ν λΉλ λ¬Έμμ΄μ print(text)
λ±μ μ΄μ©νμ¬ νμΈν μ μλ€.
νμ§λ§ μ¬κΈ°μλ μ€ννμ§ μλλ€.
ν
μ€νΈ λ΄μ©μ΄ λ무 κΈΈκΈ° λλ¬Έμ΄λ€.
κ·Έλ°λ° 'νμ¬λ¦λ°€μ κΏ'μ μ¬μ©λ λ¨μ΄μ μλ λͺ κ°μΌκΉ?
μ¬μ©λ λ¨μ΄μ μλ₯Ό νμΈνλ λ°©λ² μ€μ νλλ text
μ ν λΉλ λ¬Έμμ΄μ μ€νμ΄μ€, ν, μ€λ°κΎΈκΈ° λ±μ κΈ°μ€μΌλ‘ μͺΌκ°λ κ²μ΄λ€.
λ¬Έμμ΄ ν΄λμ€μ split
λ©μλκ° κ·Έλ° κΈ°λ₯μ κ°κ³ μλ€.
text_words = text.split()
len
ν¨μλ₯Ό μ΄μ©νμ¬ text_words
리μ€νΈμ ν¬ν¨λ λ¨μ΄λ€μ κ°μλ₯Ό νμΈν μ μλ€.
len(text_words)
λ¬΄λ € κ±°μ 100λ§ κ°μ λ¨μ΄κ° ν¬ν¨λμ΄ μλ€. κ·Έλ°λ° κ³Όμ° μ °μ΅μ€νΌμ΄κ° 100λ§κ°μ λ¨μ΄λ₯Ό μκ³ μμκΉ? κ·Έλ΄ μκ° μλ€. μ€μ λ‘ μμ΄ λ¨μ΄κ° 100λ§κ°κ° λλλ€κ³ μλ €μ Έ μμ§λ§ ν λͺ μ μ¬λμ΄ 100λ§κ°μ λ¨μ΄λ₯Ό νμ©ν μλ μλ€. μ€μ λ‘ μ °μ΅μ€νΌμ΄λ μμ μ μν μ 체λ₯Ό ν΅νμ΄ 28,829κ°μ λ¨μ΄λ₯Ό μ¬μ©νλ€κ³ μλ €μ Έ μλ€.
μλ£ κ·Όκ±°: https://www.opensourceshakespeare.org/stats/
κ·Έλ λ€λ©΄ 100λ§κ³Ό 2λ§9μ² μ¬μ΄μ μ€μ°¨λ μ΄λ»κ² λ°μνμμκΉ?
λ¨Όμ 리μ€νΈμλ νλͺ©μ΄ μ¬λ¬ λ² μ€λ³΅ν΄μ μ¬μ©λ μ μλ€. λ°λΌμ μ€λ³΅λ νλͺ©λ€μ μ κ±°ν΄μΌλ§ μ€μ λ‘ μ¬μ©λ μλ‘ λ€λ₯Έ λ¨μ΄λ€μ κ°μλ₯Ό νμΈν μ μμ κ²μ΄λ€.
μ¬κΈ°μλ μ§ν© μλ£νμ νμ©νμ¬ μ€λ³΅μ μ κ±°νλ λ°©λ²μ μκ°νλ€.
set
μ΄λ ν¨μλ₯Ό μ¬μ©νλ©΄ λλ€.words_set = set(text_words)
μ΄μ len
ν¨μλ₯Ό μ΄μ©νμ¬ words_set
μ§ν©μ μμμ κ°μλ₯Ό μμλΌ μ μλ€.
len(words_set)
μ΄μ , μλ‘ λ€λ₯Έ λ¨μ΄μ κ°μκ° 33,505κ°μμ νμΈν μ μλ€. νμ§λ§ μ¬μ ν 2λ§ 9μ²μ¬κ° 보λ€λ λ§μ΄ ν¬λ€.
무μμ΄ λ¬Έμ μΌκΉ?
첫 40κ° λ¨μ΄λ₯Ό μλμ κ°μ΄ νμΈνλ©΄ λ¨μ΄ μ΄μΈμ μΌν, λλν, μ½λ‘ λ±μ΄ 리μ€νΈμ ν¬ν¨λμ΄ μμμ μ μ μλ€.
text_words[:30]
λ°λΌμ μΌν(,
), λ§μΉ¨ν(.
), λλν(!
), λ¬Όμν(?
), μ½λ‘ (:
), μΈλ―Έμ½λ‘ (;
) λ±μ
리μ€νΈμμ μ κ±°ν΄μΌ νλ€.
κ·Έλ¦¬κ³ κ²½μ°μ λ°λΌ λ¨μ΄ λμ μΌν, λλν λ±μ΄ λΆμ΄ μμ μλ μλλ°, λμΌν λ¨μ΄μ κ·Έλ° κΈ°νΈκ° λΆλ κ²½μ°μ κ·Έλ μ§ μμ κ²½μ°λ μ€λ³΅μΌλ‘ μ²λ¦¬ν΄μΌ νλ€.
κ·Έλ°λ° μ΄λ»κ² ν κΉ? κ·Έλ¦¬κ³ μ΄λ»κ² μ΄λ€ κΈ°νΈλ€μ΄ μ¬μ©λμλμ§ μμλΌ μ μμκΉ?
μλ²½νμ§λ μκ² μ§λ§ μλμ κ°μ΄ νλμ κΈ°νΈλ‘ ꡬμ±λ λ¬Έμμ΄μ κΈΈμ΄κ° 1μ΄λΌλ μ¬μ€μ μ΄μ©νμ¬ μ¬μ©λ κΈ°νΈλ€λ§ λ°λ‘ νλμ 리μ€νΈλ‘ λ§λ€μ΄λ³΄λ©΄ μ¬μ©λ κΈ°νΈλ₯Ό κ±°μ μμλΌ μ μμ κ²μ΄λ€.
word_of_length_1 = []
for word in text_words:
if len(word) == 1:
word_of_length_1.append(word)
κ·Έλ°λ° word_of_length_1
리μ€νΈμ κΈΈμ΄κ° λ§€μ° ν¬λ€.
len(word_of_length_1)
νμ§λ§ μμ μ€λ³΅μ΄ λ§μ κ²μ΄λ―λ‘ μ§ν©μΌλ‘ νλ³ννμ¬ νμΈνλ©΄ κ°μκ° ν μ€μ΄λ λ€.
len(set(word_of_length_1))
39κ° λΏμ΄λΌ μ§μ νμΈν μ μλ€.
print(set(word_of_length_1))
μμμ νμΈν κ²°κ³Ό μ¬μ©λ κΈ°νΈλ ",.!?:;[]"
λ¬Έμμ΄μ ν¬ν¨λ 8κ°μ κΈ°νΈμμ μ μ μλ€.
μ΄μ text_words
μμ μ κΈ°νΈλ€μ μ κ±°νλ©΄ λλ©°, μ΄λ₯Ό μν΄ λ¬Έμμ΄μ strip
λ©μλλ₯Ό νμ©νλ€.
# μ κ±°ν λ¬Έμλ€
symbols = r" \n\t,.!?:;[]"
# κΈ°νΈλ₯Ό μ κ±°ν λ¨μ΄λ₯Ό μ μ₯ν λ³μ
text_words_stripped = []
# text_wordsμ ν¬ν¨λ λ¨μ΄λ€μμ κΈ°νΈλ₯Ό μ κ±°ν ν λΉλ¬Έμμ΄μ΄ μλ κ²λ§ μΆκ°
for word in text_words:
word_stripped = word.strip(symbols)
if len(word_stripped) > 0:
text_words_stripped.append(word_stripped)
리μ€νΈμ κΈΈμ΄λ?
len(text_words_stripped)
μ€λ³΅λμ§ μλ λ¨μ΄μ κ°μλ?
len(set(text_words_stripped))
μ¬μ ν μ’ λ§λ€.
μ΄λ²μ λλ¬Έμμ μλ¬Έμλ₯Ό ꡬλΆνμ§ μκ³ λ¨μ΄μ λμΌμ± μ¬λΆλ₯Ό λ°μ Έ 보μ.
# μ κ±°ν λ¬Έμλ€
symbols = r" \n\t,.!?:;[]"
# κΈ°νΈλ₯Ό μ κ±°ν λ¨μ΄λ₯Ό μ μ₯ν λ³μ
text_words_stripped = []
# text_wordsμ ν¬ν¨λ λ¨μ΄λ€μμ κΈ°νΈλ₯Ό μ κ±°ν ν λΉλ¬Έμμ΄μ΄ μλ κ²λ§ μΆκ°
# λ¨, λͺ¨λ μλ¬Έμν ν΄μ μΆκ°
for word in text_words:
word_stripped = word.strip(symbols)
if len(word_stripped) > 0:
text_words_stripped.append(word_stripped.lower())
μ€λ³΅λμ§ μμ λ¨μ΄μ κ°μλ?
len(set(text_words_stripped))
μ΄μ (κ±°μ) μ λλ‘ λ κ²°κ³Όλ₯Ό μ»κ² λμλ€.
μλ κΈ°μ€μ λ§μ‘±νλ nested_sum
ν¨μλ₯Ό ꡬννλΌ.
리ν΄κ°μ 리μ€νΈμ μ¬μ©λ λͺ¨λ μ μλ€μ ν©λλ€.
μμ :
>>> t = [[1, 2], [3], [4, 5, 6]]
>>> nested_sum(t)
21
ννΈ: sum
ν¨μ νμ©
μλ κΈ°μ€μ λ§μ‘±νλ cumsum
ν¨μλ₯Ό ꡬννλΌ.
리ν΄κ°μ 리μ€νΈμ μ¬μ©λ μ μλ€μ νλμ© λμ ν΄μ ν©ν κ°λ€μ 리μ€νΈμ΄λ€.
μμ :
>>> t = [1, 2, 3]
>>> cumsum(t)
[1, 3, 6]
ννΈ: append
λ©μλ νμ©
μλ κΈ°μ€μ λ§μ‘±νλ middle
ν¨μλ₯Ό ꡬννλΌ.
리ν΄κ°μ 리μ€νΈμ μ²μκ³Ό λμ μ¬μ©λ νλͺ©μ μ κ±°ν 리μ€νΈμ΄λ€.
μμ :
>>> t = [1, 2, 3, 4]
>>> middle(t)
[2, 3]
ννΈ: μ¬λΌμ΄μ± νμ©
μλ κΈ°μ€μ λ§μ‘±νλ chop
ν¨μλ₯Ό ꡬννλΌ.
리ν΄κ°μ None
μ΄λ€.
μμ :
>>> t = [1, 2, 3, 4]
>>> chop(t)
>>> t
[2, 3]
ννΈ: del
ν¨μ νμ©
μλ κΈ°μ€μ λ§μ‘±νλ is_sorted
ν¨μλ₯Ό ꡬννλΌ.
μ
λ ₯λ 리μ€νΈκ° μ¬λ¦Όμ°¨μμΌλ‘ μ λ ¬μ΄ λμ΄ μμΌλ©΄ True
λ₯Ό
κ·Έλ μΉ μμΌλ©΄ False
λ₯Ό 리ν΄νλ€.
μμ :
>>> is_sorted([1, 2, 2])
True
>>> is_sorted(['b', 'a'])
False
ννΈ: sort
λ©μλ λλ sorted
ν¨μ νμ©
μλ κΈ°μ€μ λ§μ‘±νλ is_anagram
ν¨μλ₯Ό ꡬννλΌ.
λ λ¬Έμμ΄μ΄ μλ‘ μ λκ·Έλ¨μ κ΄κ³μ΄λ©΄ True
λ₯Ό
κ·Έλ μ§ μμΌλ©΄ False
λ₯Ό 리ν΄νλ€.
μ£Όμ: μ λκ·Έλ¨μ κ΄κ³λ λμΌν λ¬Έμλ₯Ό λμΌν κ°μλ§νΌ μ¬μ©ν κ΄κ³μ΄λ€.
μμ :
>>> is_anagram('hello', 'eollh')
True
>>> is_anagram('hello', 'eoLLh')
False
continue
, break
, pass
μΈ κ³μ νΉλ³ν λͺ
λ Ήλ¬Έμ μ΄ν΄λ₯Ό λμμ£Όλ λ¬Έμ μ΄λ€.
for
λ°λ³΅λ¬Έμ μμ±νλΌ. for n in range(2,10):
for x in range(2, n):
# μ½λλ₯Ό μμ±νμΈμ
pass
else:
# μ½λλ₯Ό μμ±νμΈμ.
pass
2μ μμλ€.
3μ μμλ€.
4 = 2*2
5μ μμλ€.
6 = 2*3
7μ μμλ€.
8 = 2*4
9 = 3*3
ννΈ:
* `for` λ°λ³΅λ¬Έκ³Ό ν¨κ» μ¬μ©λλ `else`μ μν μ μ£Όλͺ©ν κ².
* `break` νμ©
for
λ°λ³΅λ¬Έμ μμ±νλΌ. for n in range(2,10):
# μ½λλ₯Ό μμ±νμΈμ
pass
μ§μ 2μ(λ₯Ό) μ°Ύμλ€.
3μ μ°Ύμλ€.
μ§μ 4μ(λ₯Ό) μ°Ύμλ€.
5μ μ°Ύμλ€.
μ§μ 6μ(λ₯Ό) μ°Ύμλ€.
7μ μ°Ύμλ€.
μ§μ 8μ(λ₯Ό) μ°Ύμλ€.
9μ μ°Ύμλ€.
ννΈ:
* `if` 쑰건문과 `continue` λͺ
λ Ήλ¬Έ νμ©
for
λ°λ³΅λ¬Έμ μμ±νλΌ. for n in range(2,10):
# μ½λλ₯Ό μμ±νμΈμ
pass
μ§μ 2μ(λ₯Ό) μ°Ύμλ€.
2μ μ°Ύμλ€.
3μ μ°Ύμλ€.
μ§μ 4μ(λ₯Ό) μ°Ύμλ€.
4μ μ°Ύμλ€.
5μ μ°Ύμλ€.
μ§μ 6μ(λ₯Ό) μ°Ύμλ€.
6μ μ°Ύμλ€.
7μ μ°Ύμλ€.
μ§μ 8μ(λ₯Ό) μ°Ύμλ€.
8μ μ°Ύμλ€.
9μ μ°Ύμλ€.
ννΈ:
* `if` 쑰건문과 `pass` λͺ
λ Ήλ¬Έ νμ©