제로베이스 데이터 스쿨/일일 스터디 노트

2일차 스터디노트 / 파이썬 데이터 입·출력, 연산자, 조건문 / 제로베이스 데이터 취업 스쿨

김뎀뎀 2023. 1. 5. 01:31

📗 2일차 공부 내용 요약

[ 파이썬 ]

1. 데이터 입·출력 : 데이터를 입력하는 input() 함수, 데이터를 출력하는 print()함수와 format(), 형식문자를 배웠다

2. 연산자 : 산술연산자, 복합연산자, 비교연산자, 논리연산자, Operator 모듈을 배웠다

3. 조건식 : if문, if~else문, if~elif문, 중첩 조건문을 배웠다

 


📖  2일차 공부 내용 자세히

1. 데이터 입·출력

■ 데이터 입력

- input( ) 함수를 통해 사용자로부터 데이터를 입력 받을 수 있다.

- input( ) 함수를 통해 입력받은 데이터는 항상 문자(열) 형이기 때문에, 원하는 자료형이 있다면 형 변환을 해야 한다.

#input() 함수
print('키보드를 통해 데이터를 입력하세요.')
userInputData = input()
print(userInputData)

#input() 함수에 입력 가이드 문구 명시
userInputData = input('키보드를 통해 데이터를 입력하세요')
print(userInputData)

#input() 함수를 통해 받은 데이터는 항상 문자형
userInputData = input('정수를 입력하세요')
print(userInputData) #정수를 입력하세요 - 3
print(type(userInputData)) #<class 'str'>

#input() 함수를 통해 받을 데이터 형 변환하기
userInputData = int(input('정수를 입력하세요')) #정수가 아닌 다른 값을 입력하면 에러가 뜬다
print(userInputData) #정수를 입력하세요 - 3
print(type(userInputData)) #<class 'int'>

■ 데이터 출력

print( ) 함수를 이용해 기본적인 데이터 출력이 가능하다.

-  자동 개행을 없애고 싶다면 end = '  '을 활용하고,  \t 은 탭을, \n은 개행할 수 있다

 

[ 포맷 문자열을 이용한 데이터 출력 ▼ ]

userName = '홍길동'
userAge = '20'

print(f'User name : {userName}') # {} 중괄호 안에 변수 입력
print(f'User age : {userAge}')
print(f'User name : {userName}, User age : {userAge}')

[ format() 함수를 이용한 데이터 출력▼ ]

userName = '홍길동'
userAge = 20

print('User name : {}'.format(userName)) # {} 중괄호 위치에 format에 작성한 변수가 출력됨
print('User age : {}'.format(userAge))
print('User name : {}, User age : {}'.format(userName, userAge))

#format() 인덱스 활용
print('나의 이름은 {0}이고, 나이는 {1}살입니다. 이름 {0}은 아버지께서 지어주셨습니다.'.format(userName,userAge))

[ 형식문자 이용한 데이터 출력▼ ]

%s 문자열
%d 정수
%f 실수
%.nf 소수점 n자리까지 표현
userName = '홍길동'
userAge = 20

print('User name : %s' % userName)
print('User age : %d' % userAge)
print('User name : %s, User age : %d' % (userName,userAge))

 

2. 연산자

■ 연산자 종류

산술연산자 + , - , * , / , %, //  , **

▶n의 제곱근 공식 : n**(1/m)
▶관련 함수
 - 나머지와 몫을 한번에 구하는 divmod( ) 
 - 제곱근을 구하는 sqrt( )
 - 거듭제곱을 구하는 pow( )
할당연산자 = , += , -= , *= , /= , %= , //=

ex) num = num + 1 은 num +=1 로 표현할 수 있다
비교연산자 > , >= , < , <= , == , !=

▶숫자 비교의 연산 결과는 bool(논리형)이다
▶문자는 크고 작음을 비교할 수 있지만, 문자열은 같다와 같지 않다만 비교 가능하다
▶문자와 아스키 코드 변환 함수
 - ord (' ') 문자의 아스키 코드
 - char ( )  아스키코드의 문자
논리연산자 and, or, not

 

[ 산술연산자▼ ]

#국영수 합계와 평균 구하기
kor = int(input('국어 점수 : '))
ing = int(input('영어 점수 : '))
mat = int(input('수학 점수 : '))

total = kor+ing+mat

print('국어 점수 {}'.format(kor))
print('영어 점수 {}'.format(ing))
print('수학 점수 {}'.format(mat))
print('합계 {}'.format(total))
print('평균 {}'.format(total/3))
print('평균 %.2f'%(total/3))

#divmod( )함수
num1 = 10
num2 = 3
result = divmod(num1, num2)

print(f'num1 : {num1}, num2: {num2}')
print('result : {}'. format(result))
print('몫 : {}'. format(result[0])) #[] 안에 출력할 인덱스 넣기
print('나머지 : {}'. format(result[1])) 


'''
<출력결과>
num1 : 10, num2 3
result : (3, 1)
몫 : 3
나머지 : 1
'''

#math모듈, sqrt( )함수, pow( )함수
print('2의 3제곱근 %.2f'%(2**(1/3)))

import math # math 모듈 삽입
print('2의 제곱근 {}'.format(math.sqrt(2)))
print('2의 3제곱 {}'.format(math.pow(2,3)))

[ 비교 연산자▼ ]

#숫자 비교
num1 = 10 ; num2 = 5
result = num1 > num2
print('num1 > num2 : {}'.format(result)) #true

#문자 비교
cha1 = 'A' #65
cha2 = 'B' #83

print('{} > {} : {}'.format(cha1,cha2,format(cha1>cha2)))

#문자와 아스키 코드 변환
print('A -> {}'. format(ord('A')))
print('81 -> {}'.format(chr(81)))

[ 논리 연산자▼ ]

#백신 접종 대상자는 20세 미만 또는 65세 이상자에 한합니다

inputAge = int(input('나이 입력 : '))

vaccin = (inputAge < 20) or (inputAge >= 65)

print('age : {}, result : {}'. format(inputAge, vaccin))

■ Operator 모듈

- operator 모듈을 활용해 연산자 대신 함수를 활용할 수 있다.

import operator

age = int(input('나이 입력 : '))
vaccine = operator.or_(operator.lt(age,20), operator.ge(age,65))
print('age: {}. result :{}'. format(age, vaccine))

 

3. 조건식

■ 조건식

- 조건식은 어떤 조건에 따라 실행이 분기되는 식이다

- A if 조건식 else B ; 조건식의 결과가 True면 A 실행, 그렇지 않으면 B 실행

 

■ 조건문 종류

if 문 단일 조건
if ~ else 문 양자 택일
if ~ elif 문 다자택일(다중조건)

- 실행문은 반드시 들여쓰기를 해야 한다.

- 모든 조건식은 if~else문으로 변경할 수 있지만, 모든 if~else문을 조건식을 변경할 수 있는 것은 아니다.

- if ~elif 문 사용시 순서가 중요하게 고려하거나, 조건 범위를 명시하는 게 좋다

- 조건문 안에 또 다른 조건문이 있을 수 있고, 일반적으로 3단계 이상은 중첩해서 사용하지 않는다.

#A if 조건식 else B

snow = int(input('적설량 : '))

print('적설량 : {}mm, 대설경보 발령'.format(snow)) if (snow>=30) else \
	print('적설량 : {}mm, 대설경보 해제'.format(snow))
    

#if 문
temp = int(input('실내 온도 : '))

hotTemp = 28
coldTemp = 20

if temp >= hotTemp :
    print('냉방 작동!')

if temp <= coldTemp :
    print('난방 작동!')

#if~else문
userAge = int(input('나이 입력 : '))

seniorAge = 65

if userAge >= seniorAge :
    print('무료 대상 승객입니다')
else:
    print('유료 대상 승객입니다')


#if~elif 문
print('계절 : 봄, 여름, 가을, 겨울')

season = input('계절 입력 : ')

if season == '봄':
    print('봄 : Spring')
elif season == '여름':
    print('여름 : Summer')
elif season ==  '가을':
    print('가을 : Fall')
elif season == '겨울':
    print('겨울 : Winter')
else:
    print('검색할 수 없습니다')


#중첩문
print('계절 : 봄, 여름, 가을, 겨울')

season = input('계절 입력 : ')

if season == '봄':
    print('봄 : Spring')
elif season == '여름':
    print('여름 : Summer')
elif season ==  '가을':
    print('가을 : Fall')
elif season == '겨울':
    print('겨울 : Winter')
else:
    print('검색할 수 없습니다')

➰ 2일차 후기

실제 강의를 듣는 시간을 길지 않은데, 직접 코드를 작성해보고 실습하며 하니 시간이 빠듯하다.

오늘 기억에 남는 건..실습 문제를 풀던 중 알게 된 '0은 모든 자연수의 배수이다'라는 것...고등학교 때 배웠던 거 같기도 한데 ^^;;;

3의 배수만 찾아야 되는데  0은 3의 배수가 아닌 줄 알고 제외하는 코드를 짜야 되나 하고 고민하다가, 검색도 해보고 통계학과 친구에게도 물어봐서 깨달았다,,

하여튼 몬가 그래도 이래저래 스스로 코드를 들여다보려 했다는 노력을 해봤다는 걸 새삼 느꼈다.

막히는 부분일 수록 더 기억에 오래 남는다, 그러니 벽에 가로막혀도 기운빠지지 말고 더 잘 배우는 기회라 생각하자는 오늘의 다짐 ~


※본 내용은 제로베이스 데이터 취업 스쿨에서 제공하는 학습 내용에 기반합니다.