2주차 진도 : Chapter 02(02-3) - 3
숙제 : 187p 3번 풀고 본인이 태어난 해와 띠를 출력하는 결과값 화면 인증
기간 : 1/3 - 1/19
str_input = input("태어난 해를 입력하세요 : ")
birth_year = int(str_input)
if birth_year % 12 == 0:
print("원숭이 띠입니다")
elif birth_year % 12 == 1:
print("닭 띠입니다")
elif birth_year % 12 == 2:
print("개 띠입니다")
elif birth_year % 12 == 3:
print("돼지 띠입니다")
elif birth_year % 12 == 4:
print("쥐 띠입니다")
elif birth_year % 12 == 5:
print("소 띠입니다")
elif birth_year % 12 == 6:
print("범 띠입니다")
elif birth_year % 12 == 7:
print("토끼 띠입니다")
elif birth_year % 12 == 8:
print("용 띠입니다")
elif birth_year % 12 == 9:
print("뱀 띠입니다")
elif birth_year % 12 == 10:
print("말 띠입니다")
elif birth_year % 12 == 11:
print("양 띠입니다")
변수 자체의 이름을 적어주는 순간 선언된다
참조하고 싶다면 참조할 위치에서 변수의 이름을 적어주면 된다
연산자 | 설명 | 예시 | 결과 |
---|---|---|---|
+= | 덧셈 후 대입 | a += b | a = a + b |
-= | 뺄셈 후 대입 | a -= b | a = a - b |
*= | 곱셈 후 대입 | a *= b | a = a * b |
/= | 나눗셈 후 대입 | a /= b | a = a / b |
//= | 몫 나눗셈 후 대입 | a //= b | a = a // b |
%= | 나머지 연산 후 대입 | a %= b | a = a % b |
**= | 거듭제곱 후 대입 | a **= b | a = a ** b |
&= | 비트 AND 후 대입 | a &= b | a = a & b |
` | =` | 비트 OR 후 대입 | `a |
^= | 비트 XOR 후 대입 | a ^= b | a = a ^ b |
>>= | 비트 오른쪽 시프트 후 대입 | a >>= b | a = a >> b |
<<= | 비트 왼쪽 시프트 후 대입 | a <<= b | a = a << b |
age = input("Enter your age: ")
print(type(age))
출력 : <class 'str'>
A = int("10") #문자열 10을 정수 10으로 반환
print(type(A)) #int형으로 변환한 A
print(A) #A의 값은 10
a = 5
b = 10
a, b = b, a # Swap
print(a) # 출력 10
print(b) # 출력 5
name = "Hee"
age = 20
sentence = "안녕 나는 {}이고 {}살이야".format(name, age)
print(sentence)
출력
안녕 나는 Hee고 20살이야
sentence = "{1}은 {0}보다 큽니다.".format(5, 10)
print(sentence)
출력
10은 5보다 큽니다
A = "{}만원".format(50)
print(A)
print(type(A))
출력
50만원
<class 'str'>
word = "Python"
print("좌측 정렬: {:<10}".format(word))
print("우측 정렬: {:>10}".format(word))
print("가운데 정렬: {:^10}".format(word))
이 외에도 format()를 통한 다양한 포맷팅 가능
text = " Hello, Python! "
print(text.strip()) # 양쪽 공백 제거
print(text)
text = "Hello, Python! Python is fun."
index_1 = text.find("Python")
index_2 = text.rfind("Python")
print(index_1) #출력 7
print(index_2) #출력 15
값 in 시퀸스
# 값이 시퀀스에 "포함되어 있으면" True, 없으면 False 반환
값 not 시퀸스
# 값이 시퀀스에 "포함되어 있지 않으면" True, 있으면 False 반환
text = "Hello, Python!"
print("Python" in text) # True
print("Java" in text) # False
print("Hello" not in text) # False
대부분의 상황에서는 f-string 사용한다 왜 ?
1. 표현식을 입력할 떄마다 str() 로 감싸줘야 해서 귀찮다
2. 문법이 간결 → format()보다 코드가 짧아지기 때문
3. format() 보다 속도가 빠르다
name = "Hee"
age = 99
print(f"안녕하세요, 저는 {name}이고 {age}살입니다.")
# 안녕하세요, 저는 Hee이고 99살입니다.
values = ["Alice", 25, "Seoul"]
print("이름: {}, 나이: {}, 도시: {}".format(*values))
사용 상황 | f-string (f"" ) | .format() (.format() ) |
---|---|---|
Python 3.6 이상 | ✅ 추천 (빠름) | ❌ 가능하지만 비효율적 |
Python 3.5 이하 | ❌ 지원 안됨 | ✅ 추천 (호환성) |
단순한 문자열 포맷팅 | ✅ 추천 (간결) | ❌ 불필요하게 길어짐 |
템플릿 재사용 (저장 후 값 삽입) | ❌ 불편 | ✅ .format() 이 유리 |
딕셔너리/리스트 값 삽입 | ❌ 불편 | ✅ .format(*list, **dict) |
JSON, SQL, HTML 생성 | ❌ 불편 | ✅ .format() 이 적합 |
if 조건:
# 조건이 참(True)일 때 실행할 코드
elif 다른_조건:
# 첫 번째 조건이 거짓(False)이고, 이 조건이 참(True)일 때 실행
else:
# 모든 조건이 거짓(False)일 때 실행할 코드
타입 | Falsy 값 (False로 변환됨) |
---|---|
논리형 (bool ) | False |
숫자형 (int , float , complex ) | 0 , 0.0 , 0j (복소수 0j ) |
문자열 (str ) | "" (빈 문자열) |
리스트 (list ) | [] (빈 리스트) |
튜플 (tuple ) | () (빈 튜플) |
딕셔너리 (dict ) | {} (빈 딕셔너리) |
집합 (set ) | set() (빈 집합) |
NoneType (None ) | None |
사용자 정의 객체 | __bool__() 또는 __len__() 메서드가 False 를 반환하는 경우 |
if True:
pass
# 실행할 코드가 없지만 문법 오류 방지를 위해 사용
변수 개념 ✅
복합 대입 연산자 ✅
input() 함수 ✅
cast의 정의와 종류 ✅
파이썬 튜터 ✅
swap의 정의와 사용 방법 ✅
format() 함수 쓰기 ✅
IndexError 예외 ✅
strip(), lstrip(), rstrip() ✅
is___()함수 역할 ✅
find(), rfind() 함수의 차이와 역할✅
in 연산자 ✅
f-string과 format()함수의 차이 ✅
기본 조건문 사용법 ✅
False로 변환되는 값 ✅
pass 키워드 사용 <-> raise NotImplementedError ✅