본문 바로가기

카테고리 없음

Likelion Backend School python school (2/21 강의 review)

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)
('어벤져스: 엔드게임', '토니 스타크')
('인셉션', '도미닉 코브')
('스타워즈: 깨어난 포스', '레이')
('타이타닉', '잭 드로즈')
('어바웃 타임', '팀')
('라라랜드', '세바스찬')
('어벤져스: 인피니티 워', '토르')
('해리 포터와 마법사의 돌', '해리 포터')
('겨울왕국', '엘사')
('매트릭스', '네오')