본문 바로가기

프로그래밍 공부/Python

[파이썬 기초 3강] 제어문(if문, for문,while문, continue,break, 한줄for문 ) + cocoa 택시 매칭방법

반응형

 

 

 

안녕하세요

27년차 진로탐색꾼 조녁입니다!! 

 

파이썬 설치 방법은 아래 글 참고해주세요! (주피터 노트북 환경 + 구글 클라우드 사용이 가능한 Colab 환경 추천드립니다.)

jonhyuk0922.tistory.com/3

 

[코드프레소 X AI 양재허브] AI/ML 기초교육 1일차

안녕하세요. 26년차 진로탐색꾼 조녁입니다! 이번에 제가 탐색해볼 영역은 AI/ML 분야입니다~. 좋은 기회로 온라인 4일+ 오프라인 4일 강의를 듣게 되어 매일 배운 부분들 복습하면서 남기려 합니

jonhyuk0922.tistory.com

 

파이썬에 대한 기초적인 내용이지만 기억하면 좋을 것들이니 가볍게 한 번 봐주세요~ !

중간중간 작성하는 코드는 사진으로 첨부하였으니 코드 필요하신 분들은 아래 깃허브에서 Colab 노트북

가져다 쓰시기 바랍니다! 

 

gist.github.com/jonhyuk0922/7e6a4b92bbb236824cd402de00a0f06a

 

나도코딩_파이썬 기본편(자료구조, 제어문)

나도코딩_파이썬 기본편(자료구조, 제어문). GitHub Gist: instantly share code, notes, and snippets.

gist.github.com

*궁금하신 내용은 댓글에 질문 남겨주세요! 

 

 

파이썬 기초 3강 내용

1. if문 - 조건문

2. for문 - 반복문

3. while문 - 반복문

4. continue, break 

5. 한줄 for문

6 cocoa택시 매칭방법

 

 

1. if문 - 조건문

 -> 분기처리 , 즉 상황에 따라 다른 코드를 적용시켜주는 코드를 작성한다.

 

예시) 날씨를 물으면 날씨에 따라 다른 대답을 해주도록 코드 작성 

 

weather = input("시리야, 날씨 알려줘")
if weather == "눈" or weather == "비":
	print("우산을 챙겨주세요.")
elif weather == "미세먼지":
	print("마스크를 준비하세요.")
else:
	print("준비물 필요 없습니다.")

 

그러면 아래와 같이 오늘의 날씨를 물어봅니다. 이 때, 제가 입력창에  "눈"이라고 입력해주면 

 

 

아래와 같이 "우산을 챙기세요" 라고 답변해주는 걸 볼 수 있죠?! 한 번 해보세요!! 

 

 

기온에 대해서도 아래와 같이 코드를 작성하고 입력해보시면 답변을 출력하는 걸 볼 수 있습니다.

git_hub 코드에 있으니 연습해보세요~!

 

temp = input("시리야, 기온은 어때?")
if temp <= 0:
	print("집이 최고에요.")
elif 0  < temp <= 10:
	print("외투를 꼭 챙겨가세요.")
elif 10 < temp <=20:
	print("얇은 겉옷이면 될거같아요.")
else:
	print("여름이 왔네요.")

 

 

2. for문 - 반복문

-> 반복해서 같은 행동을 실행해야할 때 사용한다.

 

예시) 대기번호 출력을 연속으로 해야한다.

 

for waiting_no in [0,1,2,3,4]:
  print(f"대기번호: {waiting_no}")

 

만약 대기인원이 많다면 [0,1,2,3,4] 이 리스트 부분을 더 늘리면 되겠죠?!

 

 

다음으로 카페에 손님이 찾아왔을 때 손님들을 순서대로 호명해주는 시스템을 만들어볼게요.

 

우선 스타벅스에 들어온 손님들을 순서대로 리스트형식으로 만들어 할당한 후, for문을 통해 print 문을 돌리면 아래와 같이 출력됩니다.

(print문은 1강, list 는 2강 참조)

 

starbucks = ["아이언맨","토르","아이엠 그루트"]
for customer in starbucks:
  print(f"{customer}, 커피 나왔습니다.")

 

 

3. while문 - 반복문

예시) 스타벅스에서 , 5번이상불러도 오지 않으면 버리는 정책을 수립

 

아래코드를 보면 우선 고객을 할당하고 ,index라는 걸 정의해줍니다. 여기서는 몇번까지 부를 지를 의미하고 있습니다.

while문은 옆에  'index>=1:' 이라는 조건을 줌으로써 해당 조건이 만족하지 않을떄까지 계속 반복합니다.

 

 그 결과, 토르라는 고객을 다섯번 불러도 오지 않자 커피를 폐기처분하는 출력을 볼 수 있습니다.

 

customer = "토르"
cnt = 5
while cnt >= 1:
  print(f"{customer}님, 커피 준비되었습니다. {cnt}번 남았습니다")
  cnt -= 1
  if cnt ==0:
    print("커피는 폐기처분 되었습니다.")

 

 

예시) 스타벅스에서 스마트오더한 고객의 이름을 확인하고, 이름이 맞을 때만 커피를 제공해준다.

 

customer = "토르"
person = "unknown"
while person != customer:
  print(f"{customer}, 커피가 준비되었습니다.")
  person = input("성함이 어떻게 되시나요?")

 

 

4. continue, break - 반복문 내에서 사용

예시) 출석번호 기준으로 책읽을 친구 지명

(단, 결석인 학생은 pass하고 책 없는 친구는 교무실행..)

 

실행해보면 아래와 같이 continue로 pass하고 break과 함께 for문이 끝나는 것을 볼 수 있습니다.

 

absent = [3,6] #결석생
no_book =[8] #책 없는 학생

for student in range(1,11): #1,2,3,4,5,6,7,8,9,10
  if student in absent:
    continue
  elif student in no_book:
    print(f"후.. 오늘 수업끝 {student}는 교무실로")
    break
  print(f"{student}가 책을 읽어라")

 

 

5. 한줄 for문

예시1) 출석번호가 1 2 3 4, 앞에 100을 붙이기로함 -> 101 102 103 104 ..

한줄 for문을 이용할때는 아래와 같이 더 효율적으로 코드를 작성할 수 있습니다.

 

#출석번호가 1 2 3 4, 앞에 100을 붙이기로함 -> 101 102 103 104 ..
students = [1,2,3,4,5]
students = [i+100 for i in students]
print(students)

 

 

예시2) 학생 이름을 다 대문자로 변환(or 학생 이름을 길이로 변환)

아래는 학생이름을 대문자로 변환한 코드의 출력값입니다. 만약 학생이름을 길이로 변환하고 싶으시다면 주석처리된 코드를 입력해보세요!

 

#학생 이름을 길이로 변환
students = ["Iron man", "Thor", "I am groot"]

#students = [len(i) for i in students]
#print(students)

students = [i.upper() for i in students]
print(students)

 

 

6. Quiz : cocoa택시 매칭방법

 

 

스스로 풀어보신 후 아래로 가시길 추천드립니다 ㅎㅎ

 

위의 문제를 살펴보면, 매칭할 때 조건이 두가지 있습니다.

첫번째 조건에 대해서는 randrange(5,51) 함수를 써서 아래와 같이 time 변수에 할당해줄 수 있다.

두번째 조건은 소요시간 5~15분 승객만 탑승시키므로 "if time <=15: , else:"를 기준으로 나눠준다.

나머지는 출력문 예제를 참고하여 print문을 만들면 아래와 같다.

 

정답코드

 

from random import *
cnt = 0
for i in range(1,51):
  time = randrange(5,51)
  if time <= 15:
    print(f"[O] {i}번째 손님 (소요시간 : {time}분")
    cnt +=1
  else:
    print(f"[ ] {i}번째 손님 (소요시간 : {time}분")

print(f"총 탑승 승객 : {cnt}분")

 

 

마지막에 쉬운 퀴즈를 같이 풀어봤는데

카카오 택시는 아마 조건에 "카카오 제휴택시를 먼저 배치 , 유료 콜 우선 배치" 같은 것들이 있지 않을까 싶다 ! 

택시는 역시 티맵택시다..

 

 

 

*본 포스팅은 유튜브 '나도코딩' 강의를 듣고 작성하였습니다.

특별히 긴 강의를 인프런이라는 사이트에서 파트별로 나눠서 제공해줘서 손쉽게 접할 수 있었습니다. 아래 링크 첨부하겠습니다.

 

참고자료

반응형