카테고리 없음

따라하며 배우는 파이썬과 데이터과학 -4. 조건을 따져 실행해보자

모루우 2024. 12. 5. 15:28
728x90
반응형

1. 프로그램의 기본 제어 구조는 크게 세 가지가 있다

순차 구조(sequence) - 여러 명령이 순차적으로 실행되는 구조

선택 구조(selection) - 여러 개 중 하나의 명령문을 선택하여 실행하는 구조

반복 구조(iteration) - 동일한 명령이 반복되면서 실행되는 구조

 

2. 왜 선택 구조가 필요한가

프로그램의 어떤 단계에서는 진행할 수 있는 경로가 하나 이상인 경우가 있어서

 

3. 조건이 맞을 때만 실행되는 if 문

조건식(condition expression): 어떤 조건(condition)을 만족하는지 그렇지 않은지 판정하는 식

 

4. 들여쓰기가 아주 중요한 파이썬: 블록은 들여쓰기로 완성

하나의 블록에 속하는 문장들은 모두 같이 실행됨

speed = int(input("속도를 입력하세요: "))
if(speed >= 30):
    print("과속입니다. 속도를 줄이세요.")

 

5. 배타적 조건에 따라 실행하는 if-else 문

조건식 뒤에는 일반적으로 콜론(:)이 있음 콜론은 파이썬 인터프리터에 "전체 문장이 아직 끝나지 않았으니 잠시 해석을 미뤄달라. 다음에는 문장이 딸린 코드 블록이 나타날 것이다 라고 요청하는 기호.

 

배타적 조건(exclusive condition)이 되면 if-else 문으로 표현 가능함

예를들어서 오전이면서 오후인 것은 없으니

 

speed = int(input("속도를 입력하세요: "))

if(speed >= 30):
    print("과속입니다. 속도를 줄이세요.")
else:
    print("안전운전하세요.")
    

 

6. if-else 문으로 다양한 코드를 작성해보자

if-else 내부에 if-else를 넣을 수도 있음

 

number = int(input("정수를 입력하시오: "))

if number < 0:
    print("음수입니다.")
else:
    print("음수가 아닙니다.")



game_score = int(input("게임 점수를 입력하세요.: "))

if game_score < 10000:
    print("입문자입니다.")
else:
    print("고수입니다.")



a = int(input("첫번째 정수를 입력하세요.: "))
b = int(input("두번째 정수를 입력하세요.: "))

if a == b:
    print("두 값이 일치합니다.")
else:
    print("두 값이 일치하지 않습니다.")
import turtle

t = turtle.Turtle()

t.shape('turtle')

t.penup()
t.goto(100, 100)
t.write("거북이가 여기로 오면 양수입니다.")

t.penup()
t.goto(100, 0)
t.write("거북이가 여기로 오면 0입니다.")

t.penup()
t.goto(100, -100)
t.write("거북이가 여기로 오면 음수입니다.")

t.goto(0, 0)
t.pendown()

s = int(turtle.textinput(" ", "숫자를 입력하시오: "))

if s < 0:
    t.goto(100, 100)
elif s == 0:
    t.goto(100, 0)
else:
    t.goto(100, -100)

turtle.done() #turtle 창이 죽지 않게 해줌
import turtle

t = turtle.Turtle()

t.shape('turtle')

t.penup()
t.goto(-100, 100)
t.write("첫번째 수만 움수.")

t.penup()
t.goto(100, 100)
t.write("두 수 모두 양수.")

t.penup()
t.goto(-100, -100)
t.write("두 수 모두 음수.")

t.penup()
t.goto(100, -100)
t.write("두번째 수만 음수.")

t.goto(0, 0)
t.pendown()

num1 = int(turtle.textinput(" ", "첫번째 숫자를 입력하시오: "))
num2 = int(turtle.textinput(" ", "두번째 숫자를 입력하시오: "))

if num1 > 0:
    if num2 > 0:
        t.goto(100, 100)
    else:
        t.goto(100, -100)
else:
    if num2 > 0:
        t.goto(-100, 100)
    else:
        t.goto(-100, -100)


turtle.done() #turtle 창이 죽지 않게 해줌
import turtle

t = turtle.Turtle()

t.shape('turtle')

t.penup()
t.goto(-100, 0)
t.write("x가 더 큽니다.")

t.penup()
t.goto(0, 100)
t.write("두 수가 같습니다.")

t.penup()
t.goto(100, 0)
t.write("y가 더 큽니다.")

t.goto(0,0)
t.pendown()

x = int(turtle.textinput(" ", "첫번째 수를 입력하시오: "))
y = int(turtle.textinput(" ", "두번째 수를 입력하시오: "))

if x > y:
    t.goto(100,0)
elif x == y:
    t.goto(0,100)
else:
    t.goto(-100, 0)

turtle.done()


age = int(input("나이를 입력하세요: "))

if age >= 15:
    print("본 영화를 보실 수 있습니다.")
else:
    print("본 영화를 보실 수 없습니다.")

age = int(input("나이를 입력하세요: "))

if age >= 15:
    print("본 영화를 보실 수 있습니다.")
    print("영화의 가격은 10000원입니다.")
else:
    print("본 영화를 보실 수 없습니다.")
    print("다른 영화 보시겠어요?")

    



card = input("카드의 종류를 입력해주세요: ")

if card == "청소년":
    print("청소년입니다.")

else:
    print("승인되었습니다.")




import turtle

t = turtle.Turtle()

t.shape('turtle')

t.width(3)

t.shapesize(3, 3)

while True:
    a = input("방향을 입력하세요: ")

    if a == 'l':
        t.left(90)
        t.forward(100)
    elif a == 'r':
        t.right(90)
        t.forward(100)
import turtle

t = turtle.Turtle()

t.shape('turtle')

t.width(3)

t.shapesize(3, 3)

while True:
    a = input("방향을 입력하세요: ")

    if a == 'l':
        t.left(90)
        t.forward(100)
    elif a == 'r':
        t.right(90)
        t.forward(100)
    elif a == 'f':
        t.forward(100)
    elif a == 'h':
        t.shapesize(10, 10)
    elif a == 'n':
        t.shapesize(3, 3)
        
import turtle

t = turtle.Turtle()

t.shape('turtle')

t.width(3)

size = int(input("거북이의 크기를 입력하세요(1 - 9): "))

t.shapesize(size, size)

while True:
    a = input("방향을 입력하세요: ")

    if a == 'l':
        t.left(90)
        t.forward(100)
    elif a == 'r':
        t.right(90)
        t.forward(100)
    elif a == 'f':
        t.forward(100)
    elif a == 'h':
        t.shapesize(10, 10)
    elif a == 'n':
        t.shapesize(3, 3)
import turtle
import random

t = turtle.Turtle()
t.shape('turtle')

r = random.randrange(2)

if r == 0:
    t.right(90)
    t.forward(50)
else:
    t.left(90)
    t.forward(50)

r = random.randrange(2)

if r == 0:
    t.right(90)
    t.forward(50)
else:
    t.left(90)
    t.forward(50)

r = random.randrange(2)

if r == 0:
    t.right(90)
    t.forward(50)
else:
    t.left(90)
    t.forward(50)

r = random.randrange(2)

if r == 0:
    t.right(90)
    t.forward(50)
else:
    t.left(90)
    t.forward(50)

r = random.randrange(2)

if r == 0:
    t.right(90)
    t.forward(50)
else:
    t.left(90)
    t.forward(50)

r = random.randrange(2)

if r == 0:
    t.right(90)
    t.forward(50)
else:
    t.left(90)
    t.forward(50)

r = random.randrange(2)

if r == 0:
    t.right(90)
    t.forward(50)
else:
    t.left(90)
    t.forward(50)

r = random.randrange(2)

if r == 0:
    t.right(90)
    t.forward(50)
else:
    t.left(90)
    t.forward(50)

r = random.randrange(2)

if r == 0:
    t.right(90)
    t.forward(50)
else:
    t.left(90)
    t.forward(50)

r = random.randrange(2)

if r == 0:
    t.right(90)
    t.forward(50)
else:
    t.left(90)
    t.forward(50)

r = random.randrange(2)

if r == 0:
    t.right(90)
    t.forward(50)
else:
    t.left(90)
    t.forward(50)
year = int(input("연도를 입력하세요: "))

if (year % 4 == 0 and year %100 != 100) or year % 400 == 0:
    print(year,"년은 윤년입니다.")
else:
    print(year, "년은 윤년이 아닙니다.")
import random

player1 = input("Player1의 이름: ")
player2 = input("Player2의 이름: ") #리스트? 맵? 같은 것을 이용하여 하나의 객체에 이름과 숫자를 다 넣을 수 있다면 더 효율적읽 것

print("......주사위를 굴립니다......")

player1_num = random.randint(1,6)
player2_num = random.randint(1,6)

print(player1,"의 주사위 번호는",player1_num)
print(player2,"의 주사위 번호는",player2_num)

if player1_num > player2_num :
    print(player1,"이 이겼습니다." )
elif player1_num < player2_num:
    print(player2,"이 이겼습니다.")
else:
    print("비겼습니다.")
r = 5

while True:
    x, y = input("점의 x, y좌표를 입력하시오: ").split()
    x, y =float(x), float(y)

    if r >= (x**2 + y**2) ** 0.5:
        print("원의 내부에 있음")
    else:
        print("원의 외부에 있음")

 

map(자료형/함수, iterable[, , , , , ,])

r = 5

while True:
    x, y = input("점의 x, y좌표를 입력하시오: ").split()
    x, y =float(x), float(y)

    if r**2 >= (x-3)**2 + (y-4)**2:
        print("원의 내부에 있음")
    else:
        print("원의 외부에 있음")

 

7. 조건이 거짓일 때 연속하여 다른 조건을 검사

elif 조건이 거짓일 때 다음 조건을 검사하는 것

 

8. if-else 문 안에 if-else 문 넣기

중첩 if문

ID = 'ilovepython'

while True:
    userID = input("아이디를 입력하사오: ")

    if ID == userID:
        print("환영합니다.")
    else:
        print("아이디를 찾을 수 없습니다.")
ID = 'ilovepython'
PW = 'mypass1234'

while True:
    userID = input("아이디를 입력하사오: ")
    userPW = input("패스워드를 입력하시오: ")

    if ID != userID and PW != userPW:
        print("아이디와 비밀번호 모두 틀렸습니다.")
    elif ID != userID:
        print("아이디를 찾을 수 없습니다.")
    elif PW != userPW:
        print("비밀번호를 찾을 수 없습니다.")
    else:
        print("환영합니다.")
import random

user = input("어디를 공격하시겠어요?(왼쪽, 중앙, 오른쪽) : ")

if user == "왼쪽":
    user_num = 0
elif user == "중앙":
    user_num = 1
elif user == "오른쪽":
    user_num = 2

rand_num = random.randrange(3)

if rand_num == 0:
    rand = "왼쪽"
elif rand_num == 1:
    rand = "중앙"
elif rand_num == 2:
    rand = "오른쪽"

if rand_num == user_num:
    print("공격에 실패하셨습니다.")
    print("컴퓨터의 수비위치 : ", rand)

else:
    print("축하합니다!! 공격에 성공하셨습니다.")
    print("컴퓨터의 수비위치 : ", rand)

 

그냥 random 함수로 숫자로 바꾼 것을 바로 왼 중 오 로 바꾼 후에 바로 비교해도 괜찮을듯하다

import random

user = input("어디를 공격하시겠어요?(왼쪽, 중앙, 오른쪽) : ")

options = ['왼쪽', '중앙', '오른쪽']

computer_choice = random.choice(options)

if computer_choice == user:
    print("공격에 실패하셨습니다.")
    print("컴퓨터의 수비위치 : ", computer_choice)

else:
    print("축하합니다!! 공격에 성공하셨습니다.")
    print("컴퓨터의 수비위치 : ", computer_choice)
import turtle

t = turtle.Turtle()

t.shape('turtle')

diagram = turtle.textinput(" ", "도형을 입력하시오: ")

if diagram == "사각형":
    width = int(turtle.textinput(" ","가로를 입력하시오: "))
    length = int(turtle.textinput(" ", "세로를 입력하시오: "))
    t.forward(width)
    t.left(90)
    t.forward(length)
    t.left(90)
    t.forward(width)
    t.left(90)
    t.forward(length)

elif diagram == "삼각형":
    width = int(turtle.textinput(" ", "변을 입력하시오: "))
    t.forward(width)
    t.left(120)
    t.forward(width)
    t.left(120)
    t.forward(width)

elif diagram == "원":
     radius = int(turtle.textinput(" ", "반지름을 입력하시오: "))
     t.circle(radius)

 

https://m.blog.naver.com/okkam76/221291624844

 

[파이썬 수학] 원 그리기 ③ -터틀: turtle.circle과 turtle.dot 차이

지난 2월부터 시작했으니 파이썬을 공부한 지도 4개월이 넘어가네요. 처음에는 객체 개념이 뭔지도 이해가 ...

blog.naver.com

dot은 지금 있는 시점을 기준으로 원을 그리고 색깔을 채울 수 있음 또한 지름을 인수로 받음 circle은 반지름

 

728x90
반응형