2/21 강의내용 복습
문자열 포매팅
1. %
name = "John" age = 30 print("Hello, %s. You are %d years old." % (name, age))
name = "John"
age = 30
print("Hello, %s. You are %d years old." % (name, age))
--
number = 3.14159
print("소수: %f" % number)
print("소수 (소수점 둘째 자리): %.2f" % number)
%s는 문자열
%d에는 정수 넣어주면 된다.
%f는 float 들어가고 %.nf 해주면 소수점 n째자리까지 출력.
2. str.format()
name = "John"
age = 30
print("Hello, {}. You are {} years old.".format(name, age))
print("Hello, {0}. You are {1} years old.".format(name, age))
중괄호를 먼저 넣은 뒤 마지막에 소괄호와 변수 넣어줌.
인자 위치는 인덱스 사용할 수도 있다.
3. f-string / f를 먼저 써주고 나서 “”안에 중괄호 사용.
#f-string
name = "horse king"
print(f"장충동 왕족발 보쌈 {name}")
num = 3.14157
print(f"소수 {num:.2f}")
조건문 키워드 - if, elif, else
Boolean - True, False 있음(맨 앞글자 대문자)
비교 연산자 - ==, !=, <, >, <=, >= 이렇게 값을 비교한 다음에 True 나 False 반환함.
논리 연산자 - and, or, not
산술 연산자
- / : 나누기 (결과는 항상 실수)
- // : 몫 (정수 나눗셈)
- % : 나머지
- ** : 거듭제곱
비교 연산자
- == : 같음
- != : 같지 않음
- > : 큼
- < : 작음
- >= : 크거나 같음
- <= : 작거나 같음
(=는 항상 뒤에 위치)
할당 연산자(Assignment Operators)
- = : 값을 할당
- += : 값을 더한 후 할당 (예: **x += 1**은 **x = x + 1**과 동일)
- -= : 값을 뺀 후 할당
- *= : 값을 곱한 후 할당
- /= : 값을 나눈 후 할당
- %= : 나머지를 구한 후 할당
- //= : 몫을 구한 후 할당
- **= : 거듭제곱 한 후 할당
(=는 항상 뒤에)
조건문 예시1
US_team = ["일론머스크", "트럼프", "바이든"]
youtuber_team = ["말왕", "김계란", "조코딩"]
guest = ["김정은", "푸틴", "일론머스크", "말왕"]
for i in range(len(guest)):
if guest[i] in US_team:
print(f"Welcome Korea ! {guest[i]} !!")
elif guest[i] in youtuber_team:
print(f"안녕하세요! 유튜버 {guest[i]}님 !!")
else:
print(f"죄송합니다. 입장 불가합니다 {guest[i]}님")
#input은 int나 float로 감싸주지 않으면 str로 인식함
#input함수는 입력값을 str로 저장해줌. int나 float로 감싸줘야한다.
number1 = int(input("손님이 낸 금액 :"))
number2 = float(input("음료 금액 :"))
number = int(number1 - number2)
if number >= 0:
print(f"거스름돈은 {number}원 입니다.")
else:
print("get out of here")
type(number)
#for loop로 팩토리얼 구하기
#팩토리얼 구하기
# 5! = 5*4*3*2*1
number = int(input("숫자를 입력해 주세요."))
output = 1
for i in range(number):
output *= i+1
print(output) #결과값만 알고 싶을때.loop안에서 빼주면됨
#빵주문
# 빵집 쇼핑
# 메뉴
# 고객이 빵주세요. (주문)
# 주인이 여기 있습니다.(줌)
menu = ['카스테라', '소금빵', '족발빵', '단팥빵', '보쌈빵', "주문 끝"]
while True:
print("가게 메뉴")
print(menu)
order = int(input("메뉴를 숫자로 선택해 주세요. 카스테라(0) / 소금빵(1) / 족발빵(2) / 단팥빵(3) / 보쌈빵(4) / 주문끝: 9"))
print(f"{menu[order]}드립니다.")
if order == 5:
break
#배민주문
# 배달의 민족 - 라이더
areas = ['서울', '경기', '부산', '대구']
#배차 지역이 하나씩 나옴.
#내가 배달가고 싶은 지역만 배차 신청 누름
#배차 되면 배달감 >>
#퇴근 누르면 끝!
income = 0
for area in areas:
print(f"{area}로 주문 들어왔습니다.")
answer = input("배달 여부 확인 (y/n): ")
# print(answer)
if answer == 'y':
print(f"{area}로 배송 출발합니다.")
income += 10000
elif answer == 'n':
print(f"{area}배달 기회 날아갔습니다.")
else:
print("퇴근할래요")
print(f"수고하셨습니다. 오늘 수입은 {income}입니다.")
#리스트 comprehension
#리스트 Comprehension
even_numbers = [x for x in range(10) if x % 2 == 0]
print(even_numbers)
이렇게 하면 1부터 10미만의 숫자 중 짝수만 골라서 리스트 한 개를 출력해줌.
[0, 2, 4, 6, 8]
number = 12
a_for = []
for i in range(number):
a_for.append(i+1)
print(a_for)
#comp로 만들기 >> 속도 더 빠르다.
a_comp = [ i+1 for i in range(12)]
print(a_comp)
두 코드 모두 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]을 반환함.
아래 코드가 더 효율적임. (시간도 적게 걸린다함)
a_comp = [ i for i in range(12) if (i % 2) == 0]
print(a_comp)
[0, 2, 4, 6, 8, 10] 나옴. 짝수일때만 반환.
a_c = [i-1 if i%2==0 else i for i in range(10)]
print(a_c)
for문 앞에 조건을 써줄 수도 있다.
#두 개의 리스트 데이터 합쳐서 한 번에 출력하기
# 영화 제목:
movie_titles = [
"어벤져스: 엔드게임",
"인셉션",
"스타워즈: 깨어난 포스",
"타이타닉",
"어바웃 타임",
"라라랜드",
"어벤져스: 인피니티 워",
"해리 포터와 마법사의 돌",
"겨울왕국",
"매트릭스"
]
# 주인공 이름:
main_characters = [
"토니 스타크",
"도미닉 코브",
"레이",
"잭 드로즈",
"팀",
"세바스찬",
"토르",
"해리 포터",
"엘사",
"네오"
]
#zip 사용하면 두 개의 리스트를 엮어서 튜플로 사용할 수 있음.
for title in zip(movie_titles, main_characters):
print(f"{title[0]}의 주인공은 {title[1]}입니다.")
print("----")
for title, character in zip(movie_titles, main_characters):
print(f"{title}의 주인공은 {character}입니다.")
두 코드 모두 다음과 같은 결과가 나옴.
두번째 줄의 코드가 더 가독성이 좋다. 변수를 두 개 써줘서.
어벤져스: 엔드게임의 주인공은 토니 스타크입니다.
인셉션의 주인공은 도미닉 코브입니다.
스타워즈: 깨어난 포스의 주인공은 레이입니다.
타이타닉의 주인공은 잭 드로즈입니다.
어바웃 타임의 주인공은 팀입니다.
라라랜드의 주인공은 세바스찬입니다.
어벤져스: 인피니티 워의 주인공은 토르입니다.
해리 포터와 마법사의 돌의 주인공은 해리 포터입니다.
겨울왕국의 주인공은 엘사입니다.
매트릭스의 주인공은 네오입니다.
참고로 zip으로 묶어서 출력했을 때 결과 / 튜플로 나옴.
for title in zip(movie_titles, main_characters):
print(title)
('어벤져스: 엔드게임', '토니 스타크')
('인셉션', '도미닉 코브')
('스타워즈: 깨어난 포스', '레이')
('타이타닉', '잭 드로즈')
('어바웃 타임', '팀')
('라라랜드', '세바스찬')
('어벤져스: 인피니티 워', '토르')
('해리 포터와 마법사의 돌', '해리 포터')
('겨울왕국', '엘사')
('매트릭스', '네오')