Loop
Loop 문은 If 문과 비슷하게 진입 조건이 True일 때 속 안의 블록들을 실행시킵니다. 차이는, 그 조건문이 참일 경우에는 지속적으로 반복을 진행한다는 것입니다.
count = 0
if count < 5:
print "Hello, I am an if statement and count is", count
print 5
while count < 5:
print "Hello, I am a while and count is", count
count += 1
"""
Hello, I am an if statement and count is 0
5
Hello, I am a while and count is 0
Hello, I am a while and count is 1
Hello, I am a while and count is 2
Hello, I am a while and count is 3
Hello, I am a while and count is 4
"""
Condition
반복문은 다음의 5가지의 단계를 거칩니다.
★반복하는 조건의 변수가 True로 설정됩니다. 반복(loop)문은 조건(condition)이 참이라는 것을 확입니다.
프린트 구문을 출력합니다. loop_condition이 False로 변경됩니다.
조건문이 False인것을 확인하고 다음 문장으로 넘어갑니다.
loop_condition = True
while loop_condition:
print "I am a loop"
loop_condition = False
print 3
이를 이용해 간단한 조건문을 만들어봅시다
problem) 1~10까지의 제곱수를 출력하는 문장을 만들어봅시다
num = 1
while num <= 10:
print num ** 2
num += 1
problem)
# -*- coding: utf-8 -*-
choice = raw_input('Y나 N을 누르세요(y/n)')
while choice != _____: # 빈칼을 채워주세요
choice = raw_input("Y나 N이 아니네요 다시 눌러주세요")
choice = raw_input('Y나 N을 누르세요(y/n)')
while choice != ('y' or 'n' or "Y" or 'N'): # 빈칼을 채워주세요
choice = raw_input("Y나 N이 아니네요 다시 눌러주세요")
Infinite loops
count = 10
while count > 0:
count += 1
print count
->Break
Break문은 "exit the current loop."를 의미합니다. 반복문 밖으로 빠져나오는 것에 대해 의미합니다.
count = 0
while True:
print count
count += 1
if count >= 10:
break
10이상이 된 순가 break문이 생성되며 while문을 빠져나온 것을 보실 수 있습니다.
import random
import random
print "3개의 숫자를 생성하겠습니다."
print "3개의 숫자 중에 '5'가 하나만 있으면 당신이 진 것입니다"
count = 0
while count < 3:
num = random.randint(1, 6)
print num
if num == 5:
print "당신의 패배입니다!"
break
count += 1
else:
print "당신의 승리입니다!"
"""
3개의 숫자를 생성하겠습니다.
3개의 숫자 중에 '5'가 하나만 있으면 당신이 진 것입니다
2
3
3
당신의 승리입니다!"""
while/else 는 if /else문과 비슷합니다. 차이가 있다면 else문은 반복 조건문이 False가 되는 순간 출력이 된다는 의미입니다. 그러나 조건문이 만약 break로 나오게 된다면 else문은 출력이 되지 않습니다.
1. 게임을 시작해봅시다
Use a while loop to let the user keep guessing so long as guesses_left is greater #than zero.
while loop를 이용해 guesses_left가 0 이상일 경우에는 게속 시행되도록 하빈다.
guess를 물어보고 맞다면 “승리”를 출력하고 break합니다
geusses_left 를 1 감소 시킵니다.
from random import randint
# 1~10까지의 숫자를 생성합니다.
random_number = randint(1, 10)
guesses_left = 3
# 게임을 시작해봅시다
#Use a while loop to let the user keep guessing so long as guesses_left is greater #than zero.
#while loop를 이용해 guesses_left가 0 이상일 경우에는 게속 시행되도록 하빈다.
#guess를 물어보고 맞다면 “승리”를 출력하고 break합니다
#geusses_left 를 1 감소 시킵니다.
#만약 반복문을 빠져나오면 “패배”라는 문장을 출력시켜봅시다.
while guesses_left > 0:
guess = int(raw_input("Your guess: "))
if guess == random_number:
print "승리!"
break
guesses_left -= 1
else:
print "패배!"
"""
Your guess: 5
Your guess: 5
Your guess: 5
패배!
"""
반복문에 또 다른 방법으로는 이미 우리가 배운 For 반복문이 있다는 것을 기억해주세요
print "세는 중"
for i in range(10):
print i
2.
for문을 이용해 3번 “취미가 무엇입니까?”라고 물어보고 입력을 받는 반복문을 만들고
반복이 종료되면 입력한 취미들을 출력하는 문장을 만들어봅시다.
hobbies = []
sol)
hobbies=[]
for num in range(3):
hobby = raw_input("취미가 무엇입니까?")
hobbies.append(hobby)
print hobbies
3. char문 뒤에 ,가 붙으면 같은 라인으로 출력이 됩니다.
word = "Marble"
for char in word:
print char,
M a r b l e 이렇게요
phrase = "A bird in the hand..."
for char in phrase:
if char == "A" or char == 'a':
print 'X',
else:
print char,
print
"""X b i r d i n t h e h X n d . . ."""
4.
리스트의 값들의 제곱수가 되도록 출력해주세요
numbers = [7, 9, 12, 54, 99]
# -*- coding: utf-8 -*-
numbers = [7, 9, 12, 54, 99]
print "이 리스트가 포함하는 것들은"
for num in numbers:
print num ** 2
5.
다음 문장을 참조해서 key 값과, value값이 출력이 되도록 해봅시다
d = {'x': 9, 'y': 10, 'z': 20}
for key in d:
if d[key] == 10:
print "이 딕셔너리는 10을 포함하고 있습니다"
d = {'a': 'apple', 'b': 'berry', 'c': 'cherry'}
#a apple
#c cherry
#b berry 이렇게요
d = {'a': 'apple', 'b': 'berry', 'c': 'cherry'}
for key in d:
print key, d[key]
★enumerate 함수
choices = ['pizza', 'pasta', 'salad', 'nachos']
print '당신의 choices 들은'
for a, b in enumerate(choices):
print a, b
"""
당신의 choices 들은
0 pizza
1 pasta
2 salad
3 nachos"""
enumerate함수를 실행시키면 앞에는 그 수의 index 값이 , 뒤에는 item의 값이 할당되어 출력합니다.
problem) 만약에 인덱스를 0,1,2,3 이 아닌 1,2,3,4 로 출력하려면 어떻게 해야할까요?
★Multiple lists : zip
list_a = [3, 9, 17, 15, 19]
list_b = [2, 4, 8, 10, 30, 40, 50, 60, 70, 80, 90]
for a, b in zip(list_a, list_b):
print a,b
"""
3 2
9 4
17 8
15 10
19 30"""
다수의 리스트를 다루는 방식중에 zip이라는 함수가 있습니다.
두 리스트의 작은 크기의 값 까지만 두 개를 비교해주는 함수입니다
3과2, 9와4, 17과 8, 15와 10, 19와 30까지만 출력이됩니다.
problem) #둘 중 더 큰 숫자만 출력하려면 어떻게할까요?
'컴퓨터 언어 > python' 카테고리의 다른 글
파이썬 기초 4 (0) | 2020.07.15 |
---|---|
Python 8. Battleship game (0) | 2020.07.15 |
파이썬 기초1 (0) | 2020.07.15 |
Python 5: List + Dictinaray + for루프 (0) | 2020.07.14 |
Python 4. 파이썬 함수 (0) | 2020.07.14 |