5-1. if
weather = "비"
if 조건:
실행 명령문
weather = input("오늘 날씨는 어때요?")
if weather == "비" or weather == "눈":
print("우산을 챙기세요")
elif weather == "미세먼지":
print("마스크를 챙기세요")
else:
print("준비물 필요 없어요")
- 조건문에 or 을 사용해서 2가지 이상 적을 수 있다.
- if문 이후에는 : 표시로 마무리해야 실행된다.
temp = int(input("기온은 어때요?"))
if 30 <= temp:
print("너무 더워요. 나가지 마세요")
elif 10 <= temp and temp < 30:
print("괜찮은 날씨에요")
elif 0 <= temp < 10:
print("외투를 챙기세요")
else:
print("너무 추워요. 나가지 마세요")
- input은 항상 문자열로 입력값을 받기 때문에 int (정수:숫자로 변경)로 감싸준다.
5-2. for
for waiting_no in [0, 1, 2, 3, 4]:
print("대기번호 : {0}".format(waiting_no))
- 대기번호 1,2,3,4 하나씩 출력하기 힘들기때문에 for문을 사용한다.
- 아래 [0,1,2,3,4] 에서 아래 print에 숫자 하나씩 대입해서 출력해준다.
#randrange()
for waiting_no in range(1, 6): #1,2,3,4,5
print("대기번호 : {0}".format(warting_no)
- range를 사용하면 (6) 또는 (1,6) 해당 범위의 숫자를 한 줄씩 출력해준다.
starbucks = ["아이언맨", "토르", "아이엠 그루트"]
for customer in starbucks:
print("{0}, 커피가 준비되었습니다.".format(customer))
5-3. while
#while
customer = "토르"
index = 5
while index >= 1:
print("{0}, 커피가 준비 되었습니다. {1} 번 남았어요.".format(customer,index))
index -= 1
if index == 0:
print("커피는 폐기처분되었습니다.")
- While은 어떤 조건이 만족할때까지 반복
customer = "토르"
person = "Unknown"
while person != customer :
print("{0}, 커피가 준비 되었습니다.".format(customer))
person = input("이름이 어떻게 되세요? ")
5-4. continue 와 break
absent = [2, 5] #결석
for student in range(1, 11): #1,2,3,4,5,6,7,8,9,10
if student in absent:
continue
print("{0}, 책을 읽어봐".format(student))
Continue를 만나면 밑에있는 문장을 실행하지 않고 다음반복을 이어서한다.(skip하고 넘어간다)
ansent = [2, 5] #결석
no_book = [7] #책을 깜빡했음
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("오늘 수업 여기까지. {0}는 교무실로 따라와".format(student))
break
print("{0},책을 읽어봐".format(student))
Break을 만나면 뒤에 반복문이 있더라도 반복을 끝낸다
5-5.한 줄 for
# 출석번호가 1 2 3 4, 앞에 100을 붙이기로 함 -> 101,102,103,104
students = [1,2,3,4,5]
print(students)
students = [i+100 for i in students]
print(students)
# 학생 이름을 길이로 변환
students = ["Iron man", "Thor", "I am groot"]
students = [len(i) for i in students]
- i는 내가 변경할 값으로 바꿔준다.
i.upper() 또는 i.lower()를 사용해서 전부대문자, 전부소문자로 바꿔준다.
#퀴즈
Quiz) 당신은 Cocoa 서비스를 이용하는 택시기사님입니다.
50명의 승객과 매칭 기회가 있을 때, 총 탑승 승객 수를 구하는 프로그램을 작성하시오.
조건1 : 승객별 운행 소요 시간은 5분~ 50분 사이의 난수로 정해집니다.
조건2 : 당신은 소요시간 5분 ~15분 사이의 승객만 매칭해야 합니다.
(출력문 예제)
[0] 1번째 손님 (소요시간 : 15분)
[ ] 2번째 손님 (소요시간 : 50분)
[0] 3번째 손님 (소요시간 : 5분)
. . .
[ ] 50번째 손님 (소요시간 : 16분)
총 탑승 승객 : 2분
#해답
from random import *
cnt = 0
for i in range(1, 51)
time = randrange(5, 51)
if 5 <= time <= 15:
print("[0] {0}번째 손님 (소요시간 : {1}분)".format(i, time))
cnt += 1
else:
print("[ ] {0}번째 손님 (소요시간 : {1}분)".format(i, time))
print("총 탑승 승객 : {0} 분".format(cnt))
6-1. 함수
- 어떤역활을 하는 박스
- 함수는 정의만 하는것이지 호출하기 전까진 실행되지 않는다
def open_account():
print("새로운 계좌가 생성되었습니다.")
open_account()
6-2. 전달값과 반환값
def open_account():
print("새로운 계좌가 생성되었습니다.")
def deposit(balance, money): # 입금
print("입금이 완료되었습니다. 잔액은 {0} 원입니다.".format(balance + money))
return balance + money
balance = 0 # 잔액
balance = deposit(balance, 1000)
print(balance)
def withdraw(balance, money):
if balance >= money:
print("출금이 완료되었습니다. 잔액은 {0} 원입니다.".format(balance - money)
return balance - money
else:
print("출금이 완료되지 않았습니다. 잔액은 {0} 원입니다.".format(balance))
return balance
def withdraw_night(balance, money):
commission = 100
return commission, balance - money -commission
balance = 0
balance = deposit(balance, 1000)
commission, balance = withdraw_night(balance, 500)
print("수수료 {0} 원이며, 잔액은 {1} 원입니다.".format(commission, balance)
6-3. 기본값
def profile(name, age, main_lang):
print("이름 : {0}\t나이 : {1}\t주 사용언어: {2}" \.format(name, age, main_lang)
profile("유재석", 20, "파이썬")
profile("김태호", 25, "자바")
def profile(name, age=17, main_lang="파이썬"):
print("이름 : {0}\t나이 : {1}\t주 사용언어: {2}" \.format(name, age, main_lang)
profile("유재석")
profile("김태호")
6-4. 키워드값
def profile(name, age, main_lang):
print(name, age, main_lang)
profile(name="유재석", main_lang="파이썬", age=20
profile(main_lang="자바", age=25, name="김태호")
Profile호출값 순서가 바껴도 함수값에 name, age, main_lang 에 순서를 따라간다.
6-5. 가변인자
프린트문이 끝날때 줄바꿈을 하지 않고 이어서 출력한다는 명령어
def profile(name, age, *language):
print("이름 : {0}\t나이 : {1}\t".format(name,age), end=" ")
for lang in language:
print(lang, end=" ")
print()
profile("유재석", 20, "python", "java", "C", "C++", "C#", "JavaScript)
profile("김태호", 25, "Kotlin", "Swift")
서로 다른갯수에 값을 넣어줄땐 가변인자(Variable parameter)를 이용할 수 있다
6-6. 지역변수와 전역변수
지역변수 = 함수내에서만 쓸 수 있는것
전역변수 = 모든공간에서 부를 수 있는것
gun = 10
def checkpoint(soldiers):
gun = 20
gun = gun - soldiers
print("[함수 내] 남은 총 : {0}:.format(gun))
print("전체 총 : {0}".format(gun))
checkpoint(2)
print("남은 총 : {0}".format(gun))
함수안에 있는 gun은 지역변수, 함수안에서만 작동한다.
def checkpoint(soldiers):
global gun
gun = gun - soldiers
print("[함수 내] 남은 총 : {0}:.format(gun))
def checkpoint_ret(gun, soldiers):
gun = gun - soldiers
print("[함수 내] 남은 총 : {0}:.format(gun))
return gun
print("전체 총 : {0}".format(gun))
gun = checkpoint_ret(gun, 2)
print("남은 총 : {0}".format(gun))
#퀴즈
Quiz) 표준 체중을 구하는 프로그램을 작성하시오
* 표준 체중 : 각 개인의 키에 적당한 체중
(성별에 따른 공식)
남자 : 키(m) x 키(m) x 22
여자 : 키(m) x 키(m) x 21
조건1 : 표준 체중은 별도의 함수 내에서 계산
* 함수명 : std_weight
* 전달값 : 키(height), 성별(gender)
조건2 : 표준 체중은 소수점 둘째자리까지 표시
(출력예제)
키 175cm 남자의 표준 체중은 67.38kg입니다.
#해답
def std_weight(height, gender):
if gender == "남자":
return height * height * 22
else:
return height * height * 21
height = 175
gender = "남자"
weight = round(std_weight(height / 100, gender), 2)
print("키 {0}cm {1}의 표준 체중은 {2}kg 입니다.".format(height, gender, weight))
출처 : https://www.youtube.com/channel/UC7iAOLiALt2rtMVAWWl4pnw
'Back-end > Python' 카테고리의 다른 글
파이썬 기초 - 4 ( 노트정리 ) with 나도코딩 (0) | 2020.08.24 |
---|---|
파이썬 기초 - 2 ( 노트정리 ) with 나도코딩 (0) | 2020.08.20 |
파이썬 기초 - 1 ( 노트정리 ) with 나도코딩 (0) | 2020.08.18 |