from random import*
users = range(1,21) # 1부터 20까지 숫자를 생성
# print(type(users)) # range는 list가 아님
users = list(users) # list로 변환
# print(type(users))
print(users)
shuffle(users)
print(users)
winners = sample(users, 4) #4명 중에서 1명은 치킨, 3명은 커피
print(" -- 당첨자 발표 -- ")
print("치킨 당첨자 : {0}".format(winners[0]))
print("커피 당첨자 : {0}".format(winners[1:]))
print(" -- 축하합니다 --")
weather = input("오늘 날씨는 어때요? ") # "?"다음에 쳤을 때 답이 나옴
# if 조건:
# 실행 명령문
if weather == "비" or weather == "눈" :
print("우산을 챙기세요")
elif weather =="미세먼지" :
print("마스크를 챙기세요")
else:
print("준비물 필요 없어요.")
temp = int(input("기온은 어때요? "))
if 30<= temp :
print("너무 더워요. 나가지 마세요")
elif 10<= temp and temp <30:
print("괜찮은 날씨에요")
elif 0<= temp < 10:
print("외투를 챙기세요")
else:
print("너무 추워요. 나가지 마세요")
print("대기번호 : 1")
print("대기번호 : 2")
print("대기번호 : 3")
print("대기번호 : 4")
for waiting_no in [0,1,2,3,4]:
print("대기번호 : {0}".format(waiting_no))
for waiting_no in range(1,6): # 1 부터 6 직전까지
print("대기번호 : {0}".format(waiting_no))
starbucks = ["아이언맨", "토르", "그루트"]
for customer in starbucks:
print("{0}, 커피가 준비되었습니다.".format(customer))
# 출석번호가 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]
print(students)
# 학생 이름을 대문자로 변환
students = ["Iron man","Thor","I am groot"]
students = [i.upper() for i in students]
print(students)
customer = "토르"
index = 5
while index >=1:
print("{0}, 커피가 준비 되었습니다. {1} 번 남았어요".format(customer,index))
index -= 1
if index == 0:
print("커피는 폐기처분되었습니다.")
customer = "아이언맨"
index = 1
while True:
print("{0}, 커피가 준비 되었습니다. 호출 {1} 회".format(customer,index))
index += 1 # 무한루프 종료는 "control + c"
customer = "토르"
person = "Unknown"
while person != customer :
print("{0}, 커피가 준비 되었습니다.".format(customer))
person = input("이름이 어떻게 되세요? ")
absent = [2, 5] # 결석
no_book = [7] # 책을 깜빡했음
for student in range(1, 11): # 1~10번까지
if student in absent:
continue #해당되는 것 제외하고 다음 반복 진행
elif student in no_book:
print("오늘 수업 여기까지. {0}은 교무실로 따라와.".format(student))
break # 반복문 탈출
print("{0}, 책을 읽어봐".format(student))
당신은 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: #5~15분 이내의 손님(매칭 성공), 탑승 승객 수 증가 처리.
print("[0] {0}번째 손님 (소요시간 : {1}분)".format(i,time))
cnt += 1
else: #(매칭 실패)
print("[ ] {0}번째 손님 (소요시간 : {1}분)".format(i,time))
print("총 탑승 승객 : {} 분".format(cnt))
def open_account():
print("새로운 계좌가 생성되었습니다.")
open_account()
#전달값과 반환값
def deposit(balance, money): #입금 함수
print("입금이 완료되었습니다. 잔액은 {0} 원입니다".format(balance + money))
return balance + money
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 # 수수료 100원
return commission, balance - money - commission
balance = 0 # 잔액
balance = deposit(balance, 1000)
print(balance)
# balance = withdraw(balance, 2000)
# balance = withdraw(balance, 500)
commission, balance = withdraw_night(balance,500)
print("수수료 {0} 원이며, 잔액은 {1} 원입니다.".format(commission,balance))
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("김태호")
# 키워드를 이용한 함수 호출
def profile(name, age, main_lang):
print(name, age, main_lang)
profile(name="유재석",main_lang="파이썬", age = 20)
profile(main_lang="자바",name="김태호", age = 25)
def profile(name, age, lang1,lang2,lang3,lang4,lang5):
print("이름 : {0}\t 나이 : {1}\t".format(name,age), end=" ") #줄바꿈을 하지 않기 위해 끝에 end = " " 삽입한다.
print(lang1,lang2,lang3,lang4,lang5)
profile("유재석", 20, "python", "Java", "C","C++","C#")
profile("김태호", 25, "Kotlin", "Swift", "","","")
#여기서 유재석에 다른 언어를 추가 하고 싶으면 위에 함수까지 건드려야 함 이를 방지하기 위해 가변인자를 사용한다.
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")
gun = 10
def checkpoint(soldiers): #경계근무
gun = gun - soldiers
print("[함수 내] 남은 총 : {0}".format(gun))
print("전체 총 : {0}".format(gun))
checkpoint(2) # 2명이 경계 근무 나감
print("남은 총 : {0}".format(gun))
#이렇게 하면 checkpoint 내에서 만들어진 gun 함수가 할당이 되지 않아서 오류가 생김(초기화가 안돼 있어서) 그래서 gun을 지역변수로 안으로 넣어줘야함
gun = 10
def checkpoint(soldiers): #경계근무
global gun # 전역 공간에 있는 gun 사용
gun = gun - soldiers
print("[함수 내] 남은 총 : {0}".format(gun))
print("전체 총 : {0}".format(gun))
checkpoint(2) # 2명이 경계 근무 나감
print("남은 총 : {0}".format(gun))
gun = 10
def checkpoint(soldiers): #경계근무
global gun # 전역 공간에 있는 gun 사용
gun = gun - soldiers
print("[함수 내] 남은 총 : {0}".format(gun))
def checkpoint_ret(gun, soldiers):
gun = gun - soldiers
print("[함수 내] 남은 총 : {0}".format(gun))
return gun #return 함수로 불러옴.
print("전체 총 : {0}".format(gun))
checkpoint(2) # 2명이 경계 근무 나감
gun = checkpoint_ret(gun, 2)
print("남은 총 : {0}".format(gun))
(성별에 따른 공식)
남자 : 키 (m) x 키 (m) x 22
조건 1 : 표준 체중은 별도의 함수 내에서 계산
함수명 : std_weight
전달값 : 키(height), 성별 (gender)
조건 2 : 표준 체중은 소수점 둘째자리까지 표시
(출력 예제)
키 175cm 남자의 표준 체중은 67.38kg 입니다.
def std_weight(height, gender): # 키 m 단위 (실수), 성별 : "남자" / "여자"
if gender == "남자":
return height * height * 22
else:
return height * height * 21
height = 175 # cm 단위
gender = "남자"
weight = round(std_weight(height / 100, gender), 2)
print("키 {0}cm {1}의 표준 체중은 {2}kg 입니다.".format(height,gender,weight))
출처 - 나도코딩(https://www.youtube.com/watch?v=kWiCuklohdY&t=6685s)