본문 바로가기
코딩 공부/파이썬 (혼공단 11기)

[혼공파] 2주차_02-3 ~ 03

by 루담 2024. 1. 12.

 

🎉 🎉 🎉

 

👩🏻‍💻 아아 감사합니당 !!! 

1주차에 비해 2주차는 좀 많이,, 어려워진 것 같다. 잘 이해되지 않는 부분도 많았지만, 확실히 더 흥미로워지긴 했다. 어려운데도 재밌다는 게 가능하구나ㅋㅋ

아무튼 2주차도 활기차게 스타뚜 ~ 🥰

 

 


02-3. 변수와 입력
▷핵심 키워드 - 변수 선언 / 변수 할당 / 변수 참조 / input() / int() / float() / str()

 

 

✍🏻변수: 값을 저장할 때 사용하는 식별자

-> 수학자들이 3.14159265라는 원주율 값을 π라는 기호로 정의해서 사용하는 것과 비슷하다

 

✏️변수 만들기/사용하기

 

👻변수를 활용하는 세 가지 방법

>>>pi=3.14159265
>>>pi
3.14159265

 

변수를 선언하는 방법: 수학자들이 3.14159265라는 원주율 값을 π라는 기호로 정의 했듯이 pi를 "사용하겠다"라고 선언하는 것

 

변수에 값을 할당하는 방법: π=3.14159265이듯이 변수로 사용하겠다고 선언한 pi에 값을 넣는 것, 즉 pi=3.14159265

👉🏻이 때 =기호는 우변의 값을 좌변에 넣겠다, 할당하겠다를 의미

 

변수를 참조하는 방법: π라는 값을 직접적으로 입력하지 않고, π에 3.14159265...이 들어있을 것이라고 가정하는 것 👉🏻 π라고 쓰면 이 안에 들어 있는 값을 쓰겠다는 의미

 

📋변수를 사용하기 위해서는 변수를 선언해야 하는데, 변수 이름을 적으면 그 자체로 사용하겠다는 선언을 하겠다는 것이고, 여기에 =을 입력하고 값을 입력하면 값을 변수에 할당하는 것이 된다

변수=값 (값을 변수에 할당)

>>>pi=3.14159265 (3.14159265를 변수 pi에 저장)

 

📋변수를 참조할 때(선언한 변수를 사용하고 싶을 때)는 참조할 위치에서 변수 이름을 아래와 같이 써준다

👇🏻변수에 저장된 값을 출력한다

변수

👇🏻변수에 저장된 값으로 연산한다

변수+변수

👇🏻변수에 저장된 값을 출력한다

print(변수)

 

🖐🏻직접 해보는 손코딩🖐🏻

#변수 선언과 할당
pi=3.14159265
r=10

#변수 참조
print("원주율=",pi)
print("반지름=",r)
print("원의 둘레=",2*pi*r) #원의 둘레
print("원의 넓이=",pi*r*r) #원의 넓이

-결과

 

✏️복합 대입 연산자

-복합 대입 연산자: 변수를 활용할 때에 기존의 연산자와 조합해서 사용할 수 있는 연산자

+= 숫자 덧셈 후 대입
-= 숫자 뺄셈 후 대입
*= 숫자 곱셈 후 대입
/= 숫자 나눗셈 후 대입
%= 숫자의 나머지를 구한 후 대입
**= 숫자 제곱 후 대입

 

<예제>

number=100
number+=10
number+=20
number+=30
print("number=",number)

-결과

 

📋문자열도 마찬가지로 복합 대입 연산자를 사용할 수 있다

+= 문자열 연결 후 대입
*= 문자열 반복 후 대입

 

<예제>

string="안녕하세요"
string+="!"
string+="!"
print("string:",string)

-결과

 

✏️사용자 입력: input()

-파이썬은 명령 프롬프트에서 사용자로부터 데이터를 입력받을 때 input() 함수를 사용한다

 

👻input() 함수로 사용자 입력받기

-프롬프트 문자열: input 함수 괄호 안에 입력한 내용 / 사용자에게 입력을 요구하는 안내 내용을 의미

>>>input("인사말을 입력하세요>")

-결과

👆🏻실행하면 다음과 같은 문자열이 뜬다. 이렇게 프로그램이 실행 도중에 잠시 멈추는 것을 블록(block)이라고 한다

👉🏻input() 함수가 사용자에게 자료 입력을 요구하면서 코드 진행을 블록하고 있는 것

>>>string=input("인사말을 입력하세요>")
print(string)

-결과

📋input과 같이 함수의 결과로 나오는 값을 리턴값이라고 한다

 

👻input() 함수의 입력 자료형

-자료형을 알아볼 때 type() 함수를 사용한다

 

<앞의 예제 자료형 알아보기>

string=input("인사말을 입력하세요>")
print(string)
print(type(string))

-결과

👆🏻문자열임을 나타내는 'str'

 

<자료형 알아보기2>

number=input("숫자를 입력하세요>")
print(number)
print(type(number))

-결과

👉🏻input() 함수의 결과는 무조건 문자열 자료형

 

🖐🏻직접 해보는 손코딩1🖐🏻

#입력을 받습니다.
string=input("입력>")

#출력합니다.
print("자료:",string)
print("자료형:",type(string))

-결과

 

🖐🏻직접 해보는 손코딩2🖐🏻

#입력을 받습니다.
string=input("입력>")

#출력합니다.
print("입력+100:",string+100)

-결과

👉🏻input() 함수로 받은 자료는 모두 문자열로 저장되므로 "300"+100 (문자열+숫자)는 불가하여 발생한 오류

 

✏️문자열을 숫자로 바꾸기

-input() 함수의 입력 자료형은 항상 문자열이기 때문에 입력받은 문자열을 숫자로 변환해야 숫자 연산에 활용할 수 있다 : 캐스트(cast)

-문자열을 숫자로 변환할 때 사용하는 함수

  • int() 함수: 문자열을 int 자료형으로 변환한다. (int는 정수형을 의미)
  • float() 함수: 문자열을 float 자료형으로 변환한다. (float는 실수형 또는 부동 소수점을 의미)

 

🖐🏻직접 해보는 손코딩1🖐🏻

string_a=input("입력A>")
int_a=int(string_a)

string_b=input("입력B>")
int_b=int(string_b)

print("문자열 자료:",string_a+string_b)
print("숫자 자료:",int_a+int_b)

-결과

👉🏻변환하지 않은 상태에서는 문자열을 연결해 출력 / 정수로 변환한 값에서는 덧셈한 값으로 출력

 

🖐🏻직접 해보는 손코딩2🖐🏻

output_a=int("52")
output_b=float("52.273")

print(type(output_a),output_a)
print(type(output_b),output_b)

-결과

👉🏻"52"와 "52.273" 이었던 문자열이 52와 52.273이라는 int 자료형과 float 자료형의 숫자로 변환됨

 

🖐🏻직접 해보는 손코딩3🖐🏻

input_a = float(input("첫 번째 숫자>"))
input_b = float(input("두 번째 숫자>"))

print("덧셈 결과:",input_a+input_b)
print("뺄셈 결과:",input_a-input_b)
print("곱셈 결과:",input_a*input_b)
print("나눗셈 결과:",input_a/input_b)

-결과

여기 코딩식에서 input_a = float는 되고 input_a=float는 안되던데 띄어쓰기 차이인가 잘 모르겠네

 

👻ValueError 예외

-자료형을 변환할 때 '변환할 수 없는 것'을 변환하려 할 때 ValueError 예외가 발생

 

①숫자가 아닌 것을 숫자로 변환하려고 할 때

int("안녕하세요")
float("안녕하세요")

👆🏻"안녕하세요"라는 문자열은 int() 함수로 변환할 수 없는 값

 

②소수점이 있는 숫자 형식의 문자열을 int() 함수로 변환하려고 할 때

int("52.273")

👆🏻int는 정수형. 부동 소수점이 있는 자료를 정수형으로 바꿀 수 없음

 

✏️숫자를 문자열로 바꾸기

-str() 함수: 다른 자료형의 값을 str() 함수의 매개변수에 넣으면 문자열로 변환된다

 

🖐🏻직접 해보는 손코딩🖐🏻

output_a = str(52)
output_b = str(52.273)
print(type(output_a), output_a)
print(type(output_b), output_b)

-결과

👆🏻숫자 52와 52.273이 str() 함수에 의해 문자열로 변환됨

 

✏️inch 단위를 cm 단위로 변경하기

#숫자를 입력받습니다.
raw_input = input("inch 단위의 숫자를 입력해주세요:")

#입력받은 데이터를 숫자 자료형으로 변경하고, cm 단위로 변경합니다.
inch = int(raw_input)
cm = inch*2.54

#출력합니다.
print(inch,"inch는 cm단위로",cm,"cm입니다.")

-결과

 

 

2-3 chapter 마무리

 

🔎핵심 포인트

-변수 선언은 변수를 생성하는 것, 변수 할당은 변수에 값을 넣는 것

-변수 참조는 변수에서 값을 꺼내는 것

-input() 함수는 명령 프롬프트에서 사용자로부터 데이터를 입력받을 때 사용한다

-int() 함수는 문자열을 int 자료형으로, float() 함수는 문자열을 float 자료형으로 변환한다

-str() 함수는 숫자를 문자열로 변환한다

 

 


02-4. 숫자와 문자열의 다양한 기능
▷핵심 키워드 - format() / upper() / lower() / strip() / find() / in 연산자 / split() / f-문자열

 

 

✏️문자열의 format() 함수

-format() 함수로 숫자를 문자열로 변환할 수 있다

-format() 함수: 문자열이 가지고 있는 함수 / 중괄호{}를 포함한 문자열 뒤에 마침표(.)를 찍고 함수 사용 / 중괄호의 개수와 format 함수 괄호 안 매개변수의 개수는 반드시 같아야 한다

"{}".format(10)
"{} {}".format(10,20)
"{} {} {} {} {}".format(101,202,303,404,505)

 

🖐🏻직접 해보는 손코딩1🖐🏻

#format() 함수로 숫자를 문자열로 변환하기
string_a = "{}".format(10)

#출력하기
print(string_a)
print(type(string_a))

-결과

👆🏻숫자 10의 자료형이 문자열이 됨 / string_a에는 문자열 10이 들어있음

📋format이라는 함수는 {} 기호를 format의 괄호 안에 있는 매개변수로 대체하는 것 / {}의 앞뒤, 기호 사이에 다양한 문자열을 넣을 수 있다

 

🖐🏻직접 해보는 손코딩2🖐🏻

#format() 함수로 숫자를 문자열로 변환하기
format_a = "{}만 원".format(5000)
format_b = "파이썬 열공하여 첫 연봉 {}만원 만들기".format(5000)
format_c = "{} {} {}".format(3000,4000,5000)
format_d = "{} {} {}".format(1,"문자열",True)

#출력하기
print(format_a)
print(format_b)
print(format_c)
print(format_d)

-결과

 

👻Index Error 예외

-IndexError: {} 기호의 개수가 format() 함수의 매개변수 개수보다 많으면 예외 발생

>>>"{} {}".format(1,2,3,4,5)
'1 2'

>>>"{} {} {}".format(1,2)
⚠️오류 발생

 

👆🏻{}가 매개변수보다 많음

 

✏️format() 함수의 다양한 기능

 

👻정수 출력의 다양한 형태

-format() 함수를 사용하면 출력할 정수에 기호를 넣어주거나, 숫자 형태를 다양하게 출력할 수 있다

 

🖐🏻직접 해보는 손코딩1🖐🏻

#정수
output_a = "{:d}".format(52)

#특정 칸에 출력하기
output_b = "{:5d}".format(52) #5칸
output_c = "{:10d}".format(52) #10칸

#빈칸을 0으로 채우기
output_d = "{:05d}".format(52) #양수
output_e = "{:05d}".format(-52) #음수

print("#기본")
print(output_a)
print("#특정 칸에 출력하기")
print(output_b)
print(output_c)
print("#빈칸을 0으로 채우기")
print(output_d)
print(output_e)

-결과

📋{:5d}는 5칸을 빈 칸으로 잡은 것, {:10d}는 10칸을 빈 칸으로 잡은 것

📋{05d}.format(52)는 5칸을 잡고 뒤에서부터 52숫자를 넣은 후, 앞의 빈 곳을 0으로 채운 것 (00052) / 부호가 있을 때는 맨 앞자리를 부호로 채우고 나머지 빈 곳을 0으로 채운다

 

🖐🏻직접 해보는 손코딩2🖐🏻

#기호와 함께 출력하기
output_f = "{:+d}".format(52) #양수
output_g = "{:+d}".format(-52) #음수
output_h = "{: d}".format(52) #양수: 기호 부분 공백
output_i = "{: d}".format(-52) #음수: 기호 부분 공백

print("#기호와 함께 출력하기")
print(output_f)
print(output_g)
print(output_h)
print(output_i)

-결과

📋{:+d}처럼 d앞에 +기호를 붙이면 양수와 음수 기호를 표현할 수 있다

 

🖐🏻직접 해보는 손코딩3🖐🏻

#조합하기
output_h = "{:+5d}".format(52) #기호를 뒤로 밀기: 양수
output_i = "{:+5d}".format(-52) #기호를 뒤로 밀기: 음수
output_j = "{:=+5d}".format(52) #기호를 앞으로 밀기: 양수
output_k = "{:=+5d}".format(-52) #기호를 앞으로 밀기: 음수
output_l = "{:+05d}".format(52) #0으로 채우기: 양수
output_m = "{:+05d}".format(-52) #0으로 채우기: 음수

print("#조합하기")
print(output_h)
print(output_i)
print(output_j)
print(output_k)
print(output_l)
print(output_m)

-결과

📋기호와 공백을 조합할 때 =기호를 붙인다

 

👻부동 소수점 출력의 다양한 형태

-float 자료형 출력을 강제로 지정할 때는 {:f} 사용

 

🖐🏻직접 해보는 손코딩1🖐🏻

output_a = "{:f}".format(52.273)
output_b = "{:15f}".format(52.273) #15칸 만들기
output_c = "{:+15f}".format(52.273) #15칸에 부호 추가하기
output_d = "{:+015f}".format(52.273) #15칸에 부호 추가하고 0으로 채우기

print(output_a)
print(output_b)
print(output_c)
print(output_d)

-결과

 

🖐🏻직접 해보는 손코딩2🖐🏻

output_a = "{:15.3f}".format(52.273)
output_b = "{:15.2f}".format(52.273)
output_c = "{:15.1f}".format(52.273)

print(output_a)
print(output_b)
print(output_c)

-결과

👆🏻15칸을 잡고 소수점을 각각 3자리, 2자리, 1자리로 출력한다 (자동으로 반올림도 일어난다)

 

👻의미없는 소수점 제거

-의미 없는 0을 제거한 후 출력할 때 {:g}를 사용한다

 

🖐🏻직접 해보는 손코딩🖐🏻

output_a = 52.0
output_b = "{:g}".format(output_a)
print(output_a)
print(output_b)

-결과

 

✏️대소문자 바꾸기: upper()와 lower()

-upper() 함수: 저장된 문자열의 알파벳을 모두 대문자로 만든다

-lower() 함수: 저장된 문자열의 알파벳을 모두 소문자로 만든다

>>>a= "Hello Python Programming...!"
>>>a.upper()
'HELLO PYTHON PROGRAMMING...!'
>>>a= "Hello Python Programming...!"
>>>a.lower()
'hello python programming...!'

 

✏️문자열 양옆의 공백 제거하기: strip()

-strip() 함수: 문자열 양옆의 공백을 제거한다

  • strip(): 문자열 양옆의 공백 제거
  • lstrip(): 문자열 왼쪽의 공백 제거
  • rstrip(): 문자열 오른쪽의 공백 제거

 

✏️문자열의 구성 파악하기: isOO()

-문자열이 어떻게 구성되어 있는지 확인 할 때 is로 시작하는 함수를 사용한다

  • isalnum(): 문자열이 알파벳 또는 숫자로만 구성되어 있는지 확인
  • isalpha(): 문자열이 알파벳으로만 구성되어 있는지 확인
  • isidentifier(): 문자열이 식별자로 사용할 수 있는 것인지 확인
  • isdecimal(): 문자열이 정수 형태인지 확인
  • isdigit(): 문자열이 숫자로 인식될 수 있는 것인지 확인
  • isspace(): 문자열이 공백으로만 구성되어 있는지 확인
  • islower(): 문자열이 소문자로만 구성되어 있는지 확인
  • isupper(): 문자열이 대문자로만 구성되어 있는지 확인

 

✏️문자열 찾기: find()와 rfind()

-문자열 내부에 특정 문자가 어디에 위치하는지 확인할 때 find() 함수와 rfind() 함수를 사용한다

  • find(): 왼쪽부터 찾아서 처음 등장하는 위치를 찾는다
  • rfind(): 오른쪽부터 찾아서 처음 등장하는 위치를 찾는다

<예제>

output_a = "안녕안녕하세요".find("안녕")
output_b = "안녕안녕하세요".rfind("안녕")

print(output_a)
print(output_b)

-결과

📋문자열은 가장 앞글자를 0번째라고 센다. 처음 "안녕"은 0번째에 있는 것이고, 두번째 "안녕"은 2번째부터 등장하는 것

 

✏️문자열과 in 연산자

-in 연산자: 문자열 내부에 어떤 문자열이 있는지 확인하는 연산자 / 출력은 True(맞다) 또는 False(아니다)

>>>print("안녕" in "안녕하세요")
True

>>>print("잘자" in "안녕하세요")
False

 

✏️문자열 자르기: split()

-split(): 문자열을 특정한 문자로 자를 때 사용하는 함수

>>>a = "10 20 30 40 50".split(" ")
>>>print(a)
['10', '20', '30', '40', '50']

👆🏻실행 결과로 리스트가 나온다.

 

 

2-4 chapter 마무리

 

🔎핵심 포인트

-format() 함수를 이용하면 숫자와 문자열을 다양한 형태로 출력할 수 있다

-upper() lower() 함수는 문자열의 알파벳을 대문자 혹은 소문자로 변경한다

-strip() 함수는 문자열 양옆의 공백을 제거한다

-find() 함수는 문자열 내부에 특정 문자가 어디에 위치하는지 찾을 때 사용한다

-in 연산자는 문자열 내부에 어떤 문자열이 있는지 확인할 때 사용한다

-split() 함수는 문자열을 특정한 문자로 자를 때 사용한다

-f-문자열을 사용하면 문자열 안에 값을 format() 함수보다 간단하게 삽입할 수 있다

 

 


03-1. 불 자료형과 if 조건문
▷핵심 키워드 - 불 / 비교 연산자 / 논리 연산자 / if 조건문

 

✍🏻한국에서는 Boolean을 ''이라고 표기한다. 불은 오직 True(참)와 False(거짓) 값만 가질 수 있다

 

✏️불 만들기: 비교 연산자

== 같다
!= 다르다
< 작다
> 크다
<= 작거나 같다
>= 크거나 같다

 

<예제>

print(10 == 10)
print(10 != 100)
print(10 < 100)
print(10 > 100)
print(10 <= 100)
print(10 >= 100)

-결과

 

✏️불 연산하기: 논리 연산자

not 아니다 불을 반대로 전환한다
and 그리고 피연산자 두 개가 모두 참일 때 True를 출력하며, 그 외는 모두 False를 출력한다
or 또는 피연산자 두 개 중에 하나만 참이라도 True를 출력하며, 두 개가 모두 거짓일 때만 False를 출력한다

 

👻not 연산자

>>>print(not True)
False

>>>print(not False)
Ture

👆🏻실행하면 단순하게 True와 False가 서로 바뀐다

 

🖐🏻직접 해보는 손코딩🖐🏻

x = 10
under_20 = x < 20 #under_20 = (x < 20)
print("under_20:",under_20)
print("not under_20:",not under_20)

-결과

 

👻and 연산자와 or 연산자

-and 연산자: 양쪽 변의 값이 모두 참일 때 True

좌변 우변 결과
True True True
True False False
False True False
False False False

 

-or 연산자: 둘 중 하나만 참이어도 True

좌변 우변 결과
True True True
Ture False True
False True True
False False False

 

✏️if 조건문

-if 조건문: if 조건문은 조건에 따라 코드를 실행하거나, 실행하지 않게 만들고 싶을 때 사용하는 구문

-조건 분기: 조건을 기반으로 실행의 흐름을 변경하는 것

 

🖐🏻직접 해보는 손코딩🖐🏻

#입력을 받습니다.
number = input("정수 입력>")
number = int(number)

#양수 조건
if number > 0:
    print("양수입니다")
   
#음수 조건
if number < 0:
    print("음수입니다")
   
#0 조건
if number == 0:
    print("0입니다")

-결과

 

✏️날짜/시간 활용하기

 

🖐🏻직접 해보는 손코딩1🖐🏻

#날짜/시간과 관련된 기능을 가져옵니다.
import datetime

#현재 날짜/시간을 구합니다.
now = datetime.datetime.now()

#출력합니다.
print(now.year,"년")
print(now.month,"월")
print(now.day,"일")
print(now.hour,"시")
print(now.minute,"분")
print(now.second,"초")

-결과

토요일 21시 46분 벼락치기,,^^

📋모듈이라는 기능을 활용해서 datetime 기능을 가져온다

📋그런 다음 datetime.datetime.now() 라는 함수로 현재의 시간을 구해 now라는 변수에 대입한다

 

🖐🏻직접 해보는 손코딩2🖐🏻

#날짜/시간과 관련된 기능을 가져옵니다.
import datetime

#현재 날짜/시간을 구합니다.
now = datetime.datetime.now()

#출력합니다.
print("{}{}{}{}{}{}초".format(
    now.year,
    now.month,
    now.day,
    now.hour,
    now.minute,
    now.second
))

-결과

 

🖐🏻직접 해보는 손코딩3🖐🏻

#날짜/시간과 관련된 기능을 가져옵니다.
import datetime

#현재 날짜/시간을 구합니다.
now = datetime.datetime.now()

#오전 구분
if now.hour < 12:
    print("현재 시각은 {}시로 오전입니다!".format(now.hour))
   
#오후 구분
if now.hour > 12:
    print("현재 시각은 {}시로 오후입니다!".format(now.hour))

-결과

 

🖐🏻직접 해보는 손코딩4🖐🏻

#날짜/시간과 관련된 기능을 가져옵니다.
import datetime

#현재 날짜/시간을 구합니다.
now = datetime.datetime.now()

#봄 구분
if 3<= now.month <= 5:
    print("이번 달은 {}월로 봄입니다!".format(now.month))

#여름 구분
if 6 <= now.month <= 8:
    print("이번 달은 {}월로 여름입니다!".format(now.month))
   
#가을 구분
if 9 <= now.month <= 11:
    print("이번 달은 {}월로 가을입니다!".format(now.month))
   
#겨울 구분
if now.month == 12 or 1 <= now.month <= 2:
    print("이번 달은 {}월로 겨울입니다!".format(now.month))

-결과

📋겨울의 경우 12월과 1~2월이므로 or 연산자를 사용해 범위를 연결함

 

✏️짝수와 홀수 구분하기

 

🖐🏻직접 해보는 손코딩1🖐🏻

#입력을 받습니다.
number = input("정수 입력>")

#마지막 자리 숫자를 추출
last_character = number[-1]

#숫자로 변환하기
last_number = int(last_character)

#짝수 확인하기
if last_number == 0\
    or last_number == 2\
    or last_number == 4\
    or last_number == 6\
    or last_number == 8:
    print("짝수입니다")
   
#홀수 확인하기
if last_number == 1\
    or last_number == 3\
    or last_number == 5\
    or last_number == 7\
    or last_number == 9:
    print("홀수입니다")

-결과

📋52에서 number[-1]에 의해 문자열의 마지막 글자를 추출하여 last_character에는 2라는 문자열이 들어간다

📋2를 숫자 자료형으로 변환한 후 last_number에 넣고 비교를 한 뒤 짝수나 홀수 출력 / 2는 짝수이므로 "짝수입니다" 출력

 

🖐🏻직접 해보는 손코딩2🖐🏻

-in 연산자를 활용해 코드를 수정

#입력을 받습니다.
number = input("정수 입력>")
last_character = number[-1]

#짝수 조건
if last_character in "02468":
    print("짝수입니다")
   
#홀수 조건
if last_character in "13579":
    print("홀수입니다")

-결과

코드가 엄청 깔끔해졌다.

 

🖐🏻직접 해보는 손코딩3🖐🏻

-숫자 연산으로 코드 수정

#입력을 받습니다.
number = input("정수 입력>")
number = int(number)

#짝수 조건
if number % 2 == 0: #나눴을 때 나머지가 0이면 짝수니까,,
    print("짝수입니다")
   
#홀수 조건
if number % 2 == 1: #나눴을 때 나머지가 1이면 홀수!
    print("홀수입니다")

-결과

 

 

3-1 chapter 마무리

 

🔎핵심 포인트

-은 True or False를 나타내는 값

-비교 연산자는 숫자 또는 문자열에 적용하며, 대소를 비교하는 연산자

-논리 연산자는 not, and, or 연산자가 있으며 불을 만들 때 사용함

-if 조건문은 조건에 따라 코드를 실행하거나 실행하지 않을 때 사용하는 구문

 

 


[선택 미션]

03-2. if~else와 elif 구문
▷핵심 키워드 - else 구문 / elif 구문 / False 값 / pass 키워드

 

✏️else 조건문의 활용

-else 구문은 if 조건문 뒤에 사용하며, if 조건문의 조건이 거짓일 때 실행되는 부분

 

🖐🏻직접 해보는 손코딩🖐🏻

#입력을 받습니다.
number = input("정수 입력>")
number = int(number)

#조건문을 사용합니다.
if number %2 == 0:
    #조건이 참일 때, 즉 짝수 조건
    print("짝수입니다")
else:
    #조건이 거짓일 때, 즉 홀수 조건
    print("홀수입니다")

-결과

신기하다. 앞에보다 더 간단해질수 있나?싶었는데 더 간단해졌다!

📋조건문이 오로지 두 가지로만 구분될 때 if else 구문을 사용하면 이전의 코드보다 두 배 효율적이다.

 

✏️elif 구문

-세 개 이상의 조건을 연결해서 사용하는 방법

 

🖐🏻직접 해보는 손코딩🖐🏻

#날짜/시간과 관련된 기능을 가져옵니다.
import datetime

#현재 날짜/시간을 구하고
#쉽게 사용할 수 있게 월을 변수에 저장합니다.
now = datetime.datetime.now()
month = now.month

#조건문으로 계절을 확인합니다.
if 3 <= month <= 5:
    print("현재는 봄입니다")
elif 6<= month <= 8:
    print("현재는 여름입니다")
elif 9 <= month <= 11:
    print("현재는 가을입니다")
else:
    print("현재는 겨울입니다")

-결과

 

✏️if 조건문을 효율적으로 사용하기

 

🖐🏻직접 해보는 손코딩1🖐🏻 (학점 조건문 ㅋㅋㅋㅋ😂)

#변수를 선언합니다.
score = float(input("학점 입력>"))

#조건문을 적용합니다.
if score == 4.5:
    print("신")
elif 4.2 <= score < 4.5:
    print("교수님의 사랑")
elif 3.5 <= score < 4.2:
    print("현 체제의 수호자")
elif 2.8 <= score < 3.5:
    print("일반인")
elif 2.3 <= score < 2.8:
    print("일탈을 꿈꾸는 소시민")
elif 1.75 <= score < 2.3:
    print("오락문화의 선구자")
elif 1.0 <= score < 1.75:
    print("불가촉천민")
elif 0.5 <= score < 1.0:
    print("자벌레")
elif 0 < score < 0.5:
    print("플랑크톤")
elif score == 0:
    print("시대를 앞서가는 혁명의 씨앗")

-결과

혁명의 씨앗이 되고자 학점 0으로 임의변경

👆🏻비효율적인 조건문이다. 위에서 이미 제외된 조건을 한 번 더 검사할 필요는 없다.

 

🖐🏻직접 해보는 손코딩2🖐🏻

#변수 선언
score = float(input("학점을 입력하세요>"))

#조건문 적용
if score == 4.5:
    print("신")
elif 4.2 <= score:
    print("교수님의 사랑")
elif 3.5 <= score:
    print("현 체제의 수호자")
elif 2.8 <= score:
    print("일반인")
elif 2.3 <= score:
    print("일탈을 꿈꾸는 소시민")
elif 1.75 <= score:
    print("오락문화의 선구자")
elif 1.0 <= score:
    print("불가촉천민")
elif 0.5 <= score:
    print("자벌레")
elif 0 < score:
    print("플랑크톤")
else:
    print("시대를 앞서가는 혁명의 씨앗")

-결과

귀여우니까 그냥 자벌레 될래,,

👆🏻이미 한 번 비교한 것은 제외하고 작성한 코드 / 하위 값만 검사하고 상위 값은 검사를 생략한 것

 

✏️False로 변환되는 값

-if 조건문의 매개변수에 불이 아닌 다른 값이 올 때는 자동으로 이를 불로 변환해서 처리한다. 따라서 어떤 값이 True로 변환되고, 어떤 값이 False로 변환되는지 알고 있어야 코드를 이해할 수 있다.

 

🖐🏻직접 해보는 손코딩🖐🏻

-숫자 0과 빈 문자열을 if else 조건문의 매개변수에 넣으면 무엇이 실행되는가

print("#if 조건문에 0넣기")
if 0:
    print("0은 True로 변환됩니다")
else:
    print("0은 False로 변환됩니다")
    print()
   
print("#if 조건문에 빈 문자열 넣기")
if "":
    print("빈 문자열은 True로 변환됩니다")
else:
    print("빈 문자열은 False로 변환됩니다")

-결과

 

✏️pass 키워드

-프로그래밍은 전체 골격을 잡아 놓고 내부에서 처리할 내용을 차근차근 만들어 코딩하는 경우가 많다 / 이때 골격은 일반적으로 조건문, 반복문, 함수, 클래스 등의 기본 구문을 말한다

if zero == 0
빈 줄 삽입
else:
빈 줄 삽입

 

🖐🏻직접 해보는 손코딩🖐🏻

⚠️if 조건문 사이에는 무조건 들여쓰기 4칸을 넣고 코드를 작성해야만 구문이 성립되기 때문에 위와 같이 작성한 경우에는 IndentationError 발생

✍🏻(164페이지) 파이썬에서 들여쓰기를 할 때에는 '띄어쓰기 4번'을 한다. Tab 키를 누르면 자동으로 띄어쓰기 네 개를 넣어주는 기능이 있다.

📋pass 키워드 사용 - '아무것도 안 함', '곧 개발하겠음'의 의미

 

🖐🏻직접 해보는 손코딩2🖐🏻

 

 


[기본 미션]

Q3. 사용자에게 태어난 연도를 입력받아 띠를 출력하는 프로그램

#태어난 해 입력
str_input = input("태어난 해를 입력해 주세요>")
#birth_year에서 바로 12 나누어서 밑에서 나머지로 보이게 하기
birth_year = int(str_input) % 12

#'나머지'인 birth_year의 숫자에 따라 다른 띠 출력하기
if birth_year == 0:
    print("원숭이 띠입니다")
elif birth_year == 1:
    print("닭 띠입니다")
elif birth_year == 2:
    print("개 띠입니다")
elif birth_year == 3:
    print("돼지 띠입니다")
elif birth_year == 4:
    print("쥐 띠입니다")
elif birth_year == 5:
    print("소 띠입니다")
elif birth_year == 6:
    print("범 띠입니다")
elif birth_year == 7:
    print("토끼 띠입니다")
elif birth_year == 8:
    print("용 띠입니다")
elif birth_year == 9:
    print("뱀 띠입니다")
elif birth_year == 10:
    print("말 띠입니다")
elif birth_year == 11:
    print("양 띠입니다")

 

<결과 화면>

 

 


3-2 chapter 마무리

 

🔎핵심 포인트

-else 구문은 if 조건문 뒤에 사용하며, if 조건문의 조건이 거짓일 때 실행

-elif 구문은 if 조건문과 else 구문 사이에 입력하며, 세 개 이상의 조건을 연결해서 사용

-if 조건문의 조건식에서 False로 변환되는 값은 None, 0, 0.0과 빈 문자열, 빈 바이트열, 빈 리스트, 빈 튜플, 빈 딕셔너리 등이다

-pass 키워드는 프로그래밍의 전체 골격을 잡아놓고, 내부에 처리할 내용은 나중에 만들고자 할 때 pass라는 키워드 입력

 

 

 

'코딩 공부 > 파이썬 (혼공단 11기)' 카테고리의 다른 글

[혼공파] 6주차_07-2 ~ 08  (0) 2024.02.07
[혼공파] 5주차_06 ~ 07-1  (0) 2024.02.01
[혼공파] 4주차_05  (0) 2024.01.24
[혼공파] 3주차_04  (0) 2024.01.21
[혼공파] 1주차_01-1 ~ 02-2  (0) 2024.01.03