2일차 스터디노트 / 파이썬 데이터 입·출력, 연산자, 조건문 / 제로베이스 데이터 취업 스쿨
📗 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의 배수가 아닌 줄 알고 제외하는 코드를 짜야 되나 하고 고민하다가, 검색도 해보고 통계학과 친구에게도 물어봐서 깨달았다,,
하여튼 몬가 그래도 이래저래 스스로 코드를 들여다보려 했다는 노력을 해봤다는 걸 새삼 느꼈다.
막히는 부분일 수록 더 기억에 오래 남는다, 그러니 벽에 가로막혀도 기운빠지지 말고 더 잘 배우는 기회라 생각하자는 오늘의 다짐 ~
※본 내용은 제로베이스 데이터 취업 스쿨에서 제공하는 학습 내용에 기반합니다.