간단한 프로그래밍 문제
1에서 100까지 출력
3의 배수는 Fizz 출력
5의 배수는 Buzz 출력
3과 5의 공배수는 FizzBuzz 출력
for i in range(1, 101): # 1부터 100까지 100번 반복
if i % 15 == 0: # 15의 배수(3과 5의 공배수)일 때
print('FizzBuzz') # FizzBuzz 출력
elif i % 3 == 0: # 3의 배수일 때
print('Fizz') # Fizz 출력
elif i % 5 == 0: # 5의 배수일 때
print('Buzz') # Buzz 출력
else:
print(i) # 아무것도 해당되지 않을 때 숫자 출력
코드 단축하기
for i in range(1, 101):
print('Fizz' * (i % 3 == 0) + 'Buzz' * (i % 5 == 0) or i)
# 문자열 곱셈과 덧셈을 이용하여 print 안에서 처리
파이썬에서 문자열을 곱하고 더할 수 있는 성질 활용:
>>> 'Fizz' + 'Buzz'
'FizzBuzz'
>>> 'Fizz' * True
'Fizz'
>>> 'Fizz' * False
''
'Fizz' * (i % 3 == 0)
i가 3의 배수이면 i % 3 == 0은 True이므로 'Fizz'가 출력되고, 3의 배수가 아니면 False이므로 'Fizz'가 출력되지 않음
'Fizz' (i % 3 == 0) + 'Buzz' (i % 5 == 0)
3과 5의 공배수이면 'Fizz' * True + 'Buzz' * True가 되므로 'Fizz' + 'Buzz'로 'FizzBuzz'를 출력. 만약 한 쪽이 만족하지 않으면 덧셈할 문자열이 없으므로 'Fizz'나 'Buzz'만 출력
print('Fizz' * (i % 3 == 0) + 'Buzz' * (i % 5 == 0) or i)
3 또는 5의 배수가 아닐 때는 'Fizz' False + 'Buzz' False가 되고 결과는 빈 문자열 ''이 되는데, 이때는 or 연산자를 사용. 빈 문자열은 False로 취급하고, i는 항상 1 이상의 숫자이므로 or로 연산하면 i만 남게 되어 숫자가 그대로 출력
표준 입력으로 정수 두 개가 입력됩니다(첫 번째 입력 값의 범위는 1~1000, 두 번째 입력 값의 범위는 10~1000이며 첫 번째 입력 값은 두 번째 입력 값보다 항상 작습니다). 첫 번째 정수부터 두 번째 정수까지 숫자를 출력하면서 5의 배수일 때는 'Fizz', 7의 배수일 때는 'Buzz', 5와 7의 공배수일 때는 'FizzBuzz'를 출력하는 프로그램을 만드세요.
x, y = map(int, input().split())
for i in range(x,y+1):
if i % 5 == 0 and i % 7 == 0:
print("FizzBuzz")
elif i % 5 == 0:
print("Fizz")
elif i % 7 == 0:
print("Buzz")
else:
print(i)
터틀 그래픽스(Turtle graphics) 모듈
앞으로 이동: forward, fd
뒤로 이동: backward, bk, back
왼쪽으로 회전: left, lt
오른쪽으로 회전: right, rt
import turtle as t
t.shape('turtle')
t.fd(100)
t.rt(90)
t.fd(100)
t.rt(90)
t.fd(100)
t.rt(90)
t.fd(100)
import turtle as t
t.shape('turtle')
for i in range(4): # 사각형이므로 4번 반복
t.forward(100)
t.right(90)
import turtle as t
t.shape('turtle')
for i in range(5): # 오각형이므로 5번 반복
t.forward(100)
t.right(360 / 5) # 360을 5로 나누어서 외각을 구함
import turtle as t
n = int(input()) # 사용자의 입력을 받음
t.shape('turtle')
for i in range(n): # n번 반복
t.forward(100)
t.right(360 / n) # 360을 n으로 나누어서 외각을 구함
>>> import turtle as t
>>> t.shape('turtle')
>>> t.circle(120)
mport turtle as t
n = 60 # 원을 60번 그림
t.shape('turtle')
t.speed('fastest') # 거북이 속도를 가장 빠르게 설정
for i in range(n):
t.circle(120) # 반지름이 120인 원을 그림
t.right(360 / n) # 오른쪽으로 6도 회전