혼공파

혼공파 2주차~😊

오쟝 2023. 7. 11. 19:40

<숫자>

숫자에는

정수형 : 소수점 없는 숫자 (710, 906)

실수형 : 소수점이 있는 숫자 (7.28, 1.64)

이 있습니다.

 

type 함수로 숫자의 자료형을 보게 되면 정수는 int 실수는 float이 나오는 것을 확인할 수 있습니다~!

 

  • 숫자 연산자

숫자 연산자에는

+ : 덧셈

- : 뺄셈

* : 곱셈

** : 제

/ : 나눗셈 (++ 정수 나누기 연산자 // : 숫자를 나누고 소수점 이하의 자릿수를 뗀 후 정수만 남기는 연산)

% : 나머지 연산

연산자 확인

  • 연산자 우선 순위

연산자는 우리의 연산과 동일하게 *과 /가 우선 순위이고 +와 -를 나중에 연산합니다. 헷갈릴 때는 (  )로 묶으면 (  ) 안의 연산이 우선 순위가 되기 때문에 쉽게 연산할 수 있습니다~

 

** 당연히 숫자와 문자열은 연산이 불가능!! **

 

chapter 2-2 확인 문제

1. 오른쪽의 예시를 보고 숫자 자료형을 나타내는 단어를 써 보세요.

--> 정수형(int), 실수형(float)

 

2. 숫자에 적용할 수 있는 연산자입니다. 의미를 보고 왼쪽 연산자 항목에 기호를 써 보세요.

--> +, -, *, /, //, %, **

 

3. 다음 프로그램의 실행 결과를 예측해 보세요.

# 기본적인 연산
>> 15 + 4 = 19
>> 15 - 4 = 11
>> 15 * 4 = 60
>> 15 / 4 = 3.75

 

4. 3462를 17로 나누었을 때의 몫과 나머지를 구하는 프로그램입니다. 빈칸을 채워 완성해 보세요.

print("3462를 17로 나누었을 때의 몫과 나머지를 구하는 프로그램입니다. 빈칸을 채워 완성해 보세요.")
print("- 몫:", 3462/17)
print("- 나머지:", 3462%17)

 

5. 다음 코드의 실행 결과를 예측해 보세요.

>> 0
>> 4

 

<변수>

변수란 값을 저장할 때 사용하는 식별자입니다.

 

  • 변수를 활용하는 방법

변수를 선언하는 방법 : 변수를 생성하는 것

변수에 값을 할당하는 방법 : 변수에 값을 넣는 것

변수를 참조하는 방법 : 변수에 넣어둔 값을 꺼내는 것

 

변수 활용 예시

  • 복합 대입 연산자

+= : 숫자 덧셈 후 변수에 대입

-= : 숫자 뺄셈 후 변수에 대입

*= : 숫자 곱셈 후 변수에 대입

**= : 숫자 제곱 후 변수에 대입

/= : 숫자를 나눈 몫을 변수에 대입

%= : 숫자를 나눈 나머지를 변수에 대입

기본 사칙연산의 복합 대입 연산자 예시

** 문자열도 복합 대입 연산자 사용이 가능!!!! (+=, *=만 사용 가능) **

 

  • 사용자 입력 

사용자가 입력을 할 때는 input()을 사용합니다!!!

*** 변수 = input("입력받을 때 사용할 문장")

input()으로 입력받은 변수의 type은 숫자를 입력해도, 불을 입력해도 str이 나오게 됩니다! 

그래서~ 이번에는 문자열을 숫자로 바꾸는 법에 대해서 알아봅시다~~

 

  • 문자열을 숫자로 바꾸기

*** 새로운 변수 = int(바꿀 변수)

*** 새로운 변수 = float(바꿀 변수)

이렇게 문자열을 숫자로 바꿀 수 있습니다~~

이것을 input에 응용을 하면~

이렇게 str이 아닌 int로 입력받을 수 있습니다~~!!

** 숫자가 아닌 것을 int로 변환하려고 하면 오류 발생~

    소수점이 있는 숫자를 int로 변환하려고 하면 오류 발생~ **

 

  • 숫자를 문자열로 바꾸기

*** 새로운 변수 = str(바꿀 변수) 

이렇게 int가 str로 변환이 됩니다~!

 

chapter 2-3 확인 문제

1. 다음은 변수에 값을 할당하기 위한 구문입니다. 빈칸에 알맞은 기호를 써 보세요.

--> 변수이름 = 값

 

2. 다음은 숫자에 적용할 수 있는 복합 대입 연산자입니다. 설명을 보고 왼쪽 연산자 항목에 기호를 써 보세요.

--> +=, -=, *=, /=, %=, **=

 

3. 문자열을 숫자로 변환하는 함수, 숫자를 문자열로 변환하는 함수입니다. 설명을 보고 알맞은 함수 이름을 넣어 보세요.

--> int(), float(), str()

 

4. 다음 코드는 inch 단위의 자료의 입력받아 cm 단위를 구하는 예제입니다. 빈칸에 알맞은 내용을 넣어 코드를 완성해 주세요. (1inch = 2.54cm)

str_input = input("숫자 입력> ")
num_input = float(str_input)

print()
print(num_input, "inch")
print((num_input * 2.54), "cm")

 

5. 원의 반지름을 입력받아 원의 둘레와 넓이를 구하는 코드입니다. 빈칸에 알맞은 내용을 넣어 코드를 완성해 주세요.

str_input = input("원의 반지름 입력> ")
num_input = int(str_input)
print()
print("반지름: ", num_input)
print("둘레: ", 2 * 3.14 * num_input)
print("넓이: ", 3.14 * num_input ** 2)

 

6. 프로그램을 실행했을 때 문자열 두 개를 입력받고 다음과 같이 출력하는 프로그램이 있다고 가정합니다. 굵은 글씨로 되어 있는 부분은 사용자 입력입니다.

a = input("문자열 입력> ")
b = input("문자열 입력> ")

print(a,b)
c = a
a = b
b = c
print(a,b)

 

  • 문자열의 format() 함수

*** "{  }".format(대괄호 안에 넣을 내용) 

** 반드시 {  }의 개수와 format 속의 매개변수의 개수가 같아야한다!! 더 많으면 상관 X 더 적으면 오류 **

사용 예시

  • format() 함수의 다양한 기능

정수

{:숫자d} : 숫자칸 만큼 민 다음 뒤에서부터 내용을 넣어줌

{:0숫자d} : 밀고 남은 빈 칸에 0을 넣어줌

{:+d} : 양수, 음수 기호를 표현

{: d} : 기호 공백

+ > 0 > 숫자

 

실수

{:숫자f} : 숫자칸 만큼 민 다음 뒤에서부터 내용을 넣어줌

{:0숫자f} : 밀고 남은 빈 칸에 0을 넣어줌

{:+f} : 양수, 음수 기호를 표현

{:숫자.숫자1f} : 숫자칸 만큼 민 다음 소수점은 숫자1만큼 표현

{:g} : 의미없는 소수점 제거

 

  • 대소문자 바꾸기

대문자 : upper()

소문자 : lower()

*** 변수.upper() / 변수.lower() 

 

  • 문자열 양옆의 공백 제거 - strip()

*** 변수.strip() ***

 

  • 문자열의 구성 요소 파악하기

isalnum() : 문자열이 알파벳 또는 숫자로 구성되어 있는지 확인

isalpha() : 문자열이 알파벳으로만 구성되어 있는지 확인

isidentifier() : 문자열이 식별자로 사용할 수 있는 것인지 확인

isdecimal() : 문자열이 정수로만 구성되어 있는지 확인

isdigit() : 문자열이 숫자로 인식될 수 있는지 확인

isspace() : 문자열이 공백으로만 구성되어 있는지 확인

islower() : 문자열이 소문자로만 구성되어 있는지 확인

isupper() : 문자열이 대문자로만 구성되어 있는지 확인

 

  • 문자열 찾기

find() : 왼쪽부터 문자열 찾기

rfind() : 오른쪽부터 문자열 찾기

같은 집 글자도 find()를 쓰는지 rfind()를 쓰는지에 따라서 달라짐!!!

 

in 연산자 : 문자가 문자열에 들어있는지 확인

*** 문자 in 문자열 

 

  • 문자열 자르기 - split()

(  ) 안에 있는 문자를 기준으로 문자열을 자름

*** 문자열.split("문자") 

첫 번째 문자열은 공백을 기준으로, 두 번째 문자열은 /을 기준으로 잘라짐

 

  • f-문자열

*** f'문자열{표현식}문자열' 

 

chapter 2-4 확인 문제

1. 다음 format() 함수 중에서 오류가 발생하는 경우를 골라 보세요.

--> ③

2. 함수와 그 기능을 연결해 보세요.

--> ①-ⓓ    ②-ⓑ    ③-ⓐ    ④-ⓒ

3. 다음 코드의 빔칸을 채워서 실행 결과처럼 출력해 보세요.

a = input("> 1번쨰 숫자:  ")
b = input("> 2번째 숫자:  ")
print()

print("{} + {} = {}".format(int(a), int(b), int(a)+int(b)))

 

4. 다음 프로그램의 실행 결과를 예측해 보세요.

>> A 지점:HELLO
>> B 지점: hello

 

도전 문제!!!

1. 구의 부피와 겉넓이

a = int(input("구의 반지름을 입력해주세요: "))
print("= 구의 부피는 {}".format((a**3)*(4/3)*3.141592))
print("= 구의 겉넓이는 {}".format(4*3.141592*a**2))

 

2. 피타고라스의 정리

a = float(input("밑변의 길이를 입력해주세요:  "))
b = float(input("높이의 길이를 입력해주세요:  "))
print(f"= 빗변의 길이는 {(a**2 + b**2)**(1/2)}입니다.")

 

<조건문>

조건문에는 불(True와 False)만 들어갈 수 있습니다!!

불이 나오는 연산자로는

비교 연산자 : >, >=, <, <=, ==, !=

논리 연산자 : not , and, or

and or
True True True True True True
True False False True False True
False True False False True True
False False False False False False

 

  • 조건문 작성 방법

*** if 불:

        True일 때 실행할 문장 

 

++ 날짜/시간 활용 

datetime 모듈을 이용해 오전/오후를 구분~!!
datetime 모듈을 이용해 사계절을 규분~~~

++ 짝수와 홀수 구분하기 

비교 연산자를 사용해서 짝수/홀수 구분
in 연산자를 사용해서 짝수/홀수 구분
나머지 연산자를 사용해서 짝수/홀수 구

 

chapter 3 확인 문제

1. 비교 연산자를 사용한 조건식입니다. 결과가 참이면 True를, 거짓이면 False를 적어 보세요.

--> False, True, False, True, True, False

 

2. 다음 세 개의 예제 중 "참입니다"를 출력하는 것은 몇 번 예제인가요?

--> 3번

 

3. 다음 상황들은 선택 조건으로 and 및 or 연산자를 적용하고 있습니다. 어떤 연산자가 사용 되었을까요? and 연산자라면 'a', or 연산자라면 'o'를 괄호 안에 적어 보세요.

--> and, and, or

 

4. 사용자로부터 숫자 두 개를 입력받고 첫 번째 입력받은 숫자가 큰지, 두 번째 입력받은 숫자가 큰지를 구하는 프로그램을 다음 빈칸을 채워 완성해 보세요. 

a = int(input("> 1번째 숫자:  "))
b = int(input("> 2번째 숫자:  "))

if a>b:
	print("처음 입력했던 {}가 {}보다 더 큽니다.".format(a, b))
if a<b:
	print("두 번째로 입력했던 {}가 {}보다 더 큽니다.".format(b, a))

 

<if ~ else와 elif 구문>

  • if ~ else 구문

if 조건문의 조건이 거짓일 때 else가 실행

*** if 조건식:

         실행할 문장

     else:

         실행할 문장

if ~ else를 이용한 숫자 비교!!

 

  • elif 구문

여러개의 조건을 연결해서 사용하는 구문

*** if 조건식:

         실행할 문장

     elif 조건식:

         실행할 문장

     ...

     (else:

         실행할 문장)

elif 구문을 이용한 점수 계산~!!!!

 

 

chapter 3-2 확인 문제

1. 다음 코드의 실행 결과를 예측해 빈칸에 결괏값을 입력하세요. 아래의 코드는 모두 같고 입력 결과가 다른 경우입니다.

--> 12

--> 5

--> X

 

2. 다음 중첩 조건문에 논리 연산자를 적용해 하나의 if 조건문으로 만들어주세요.

if 10 < x < 20:
	print("조건에 맞습니다.")

 

기본문제

3. 사용자에게 태어난 연도를 입력받아 띠를 출력하는 프로그램을 작성해 주세요. 작성 시 입력 받은 연도를 12로 나눈 나머지를 사용합니다. 나머지가 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11일 때 각각 원숭이, 닭, 개 , 돼지, 쥐, 소, 범, 토끼, 용, 뱀, 말, 양띠입니다.

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("양 띠입니다.")

 

도전 문제!!!!!!!

1. 조건문을 사용해서 한 마디 대화를 나눌 수 있는 프로그램을 만들어 보세요. 간단하게 "안녕" 또는 "안녕하세요"를 입력하면 프로그램이 "안녕하세요" 정도의 인사를 할 수 있게 해 보고, "지금 몇 시야?" 또는 "지금 몇 시예요?"처럼 시간을 물어보면 시간을 응답하게 구현해 보세요.

import datetime

now = datetime.datetime.now()

a = input("입력: ")

if a == "안녕" or a == "안녕하세요":
    print("안녕하세요")
elif a == "지금 몇 시야?" or a == "지금 몇 시예요?":
    print(f'지금은 {now.hour}시입니다.')
else:
    print(a)

 

2. 본문에서 홀수 짝수를 구분하는 방법에 대해 배웠습니다. 이를 응용해서 숫자를 입력하면 그 숫자가 2, 3, 4, 5로 나누어 떨어지는지 확인하고 출력하는 프로그램을 구현해 보세요.

a = int(input("정수를 입력해주세요: "))
if a%2 == 0:
    print("{}는 2로 나누어 떨어지는 숫자입니다.".format(a))
else:
    print("{}는 2로 나누어 떨어지는 숫자가 아닙니다.".format(a))
if a%3 == 0:
    print("{}는 3으로 나누어 떨어지는 숫자입니다.".format(a))
else:
    print("{}는 3으로 나누어 떨어지는 숫자가 아닙니다.".format(a))
if a%4 == 0:
    print("{}는 4로 나누어 떨어지는 숫자입니다.".format(a))
else:
    print("{}는 4로 나누어 떨어지는 숫자가 아닙니다.".format(a))
if a%5 == 0:
    print("{}는 5로 나누어 떨어지는 숫자입니다.".format(a))
else:
    print("{}는 5로 나누어 떨어지는 숫자가 아닙니다.".format(a))

 

'혼공파' 카테고리의 다른 글

혼공파 6주차..!  (0) 2023.08.16
혼공파 5주차!!! 😋  (0) 2023.08.06
혼공파 4주차~😁  (0) 2023.07.25
혼공파 3주~~🫡🫡  (0) 2023.07.17
혼공파 1주차~🤓  (0) 2023.07.10