<학습내용 요약>
개요
PyCharm
변수
자료형
데이터 입출력
format()과 형식문자
연산자
조건식, 조건문
워낙 예전부터 파이썬을 건드려 봤다가 한눈 판 시간이 많아서 파이썬 강의 초반부는 큰 무리없이 복습하는 개념으로 공부를 진행했다. 아래는 개념적인, 또는 실용적인 부분에서 기록 해놓으면 유용할 것 같아 적어둔 내용들이다.
인터프리터 언어
파이썬은 인터프리터 언어다. 컴파일 과정을 거칠 필요 없이 각각의 코드가 실시간으로 변환되는 만큼 유연하게 사용이 가능하다.
키워드
많은 프로그래밍 언어들이 그렇듯, 이미 언어에서 할당된 키워드들을 변수명으로 사용할 수 없다. 키워드를 확인하고 싶다면 아래 코드를 이용하면 된다.
import keyword
print(keyword.kwlist)
자료형 type
데이터 입출력 input()
모든 입력 데이터는 str으로 입력된다.
특정 자료형의 데이터가 필요할 경우 형변환 해야 한다.
inputData = float(input('prompt here'))
format 문자열을 이용한 데이터 출력
print(f’string, {variable_here}’))
format() 함수를 이용한 데이터 출력
print('여기다 쭉 쓰고, {}, 이런 식으로..' .format(variable_here))
형식 문자를 이용한 데이터 출력
print('텍스트 중간에 이런 식으로 %.2f 하면 됨' % variable_here)
연산자
(사진출처: 제로베이스 데이터 취업 스쿨 강의 자료)
코딩의 가장 기본이 되는 친구들. 몇 개는 전에 쓰던 MATLAB과 차이가 있어 조금 더 익숙해질 필요가 있겠다.
추가적인 노트
import math
square_root = sqrt(x)
power_of = pow(x, n)
아래 연습 문제를 다른 계산법으로 접근해 보았다.
문제: 아들이 엄마한테 용돈을 받는데, 첫 달에는 200원을 받고 매월 이전 달의 2배씩 인상하기로 했다. 12개월째 되는 달에는 얼마를 받을 수 있는지 계산해 보자.
(사진출처: 제로베이스 데이터 취업 스쿨 강의 자료)
# 내 코드
t1_money = 200
month = 12
t12_money = t1_money * (2**(month-1))
print(t12_money)
복합 연산자를 사용해서 코드를 더 간단하게 사용 가능하다 (아래)
(사진출처: 제로베이스 데이터 취업 스쿨 강의 자료)
논리연산자는 비교적 간단하지만 굉장히 핵심적인 개념.
Operator 모듈을 사용해서 연산자를 똑같이 활용할 수 있다. 그 외에도, 수학 연산과 난수 관련된 함수들이 있다. 이번 강의에서는 연산자 관련 함수들만 소개되었는데, 아직까지는 기본 연산자들에 비해 코드가 길어지는 느낌만 있고, operator 모듈을 쓰면 어떤 이점이 있는지 잘 모르겠다.
(사진출처: 제로베이스 데이터 취업 스쿨 강의 자료)
(실습하면서 발견한 작은 디테일) 아래 예제에서 1의 자리 숫자가 3의 배수인지 확인하는 라인에서(맨 마지막 줄), 만약 1의 자리 숫자가 0이라면 이 코드는 이것을 True (3의 배수)로 출력하는 오류가 있을 것 같다. 따라서 이 코드에 추가 논리 연산을 통해 0이 3의 배수로 판단되는 경우를 제외시켜야 한다.
(사진출처: 제로베이스 데이터 취업 스쿨 강의 자료)
# 내 코드
print('1st number 3: {}' .format(operator.and_(operator.mod(num1, 3) == 0, operator.gt(num1, 0))))
조건문
여기도 MATLAB과 소소한 차이점들이 존재한다. 파이썬이 더 편한 것 같다. 예를 들어, 변수 할당 라인에 ';' 안 넣어도 되고, 특히 중첩 조건문의 코드블럭 끝에 'end' 안 넣어도 되는 거!! 이거 디버깅할 때 은근히 성질 긁는다. 반면 파이썬은 알아서 코드블럭의 끝을 인식해주는 게 고맙다.
# 조건문
result = 'yes' if x > 0 else 'no'
# 같은 조건문을 if/else로 표현
if x > 0:
result = 'yes'
else:
result = 'no'
개인적으로는 후자가 더 읽기 편하다. 또한, 반대로 if/else문을 조건문으로 표현하는 것이 불가능한 경우다 있다(예를 들어, 코드블럭 안에서 변수 할당이 이루어질 경우). 이런 이유로 if/else문을 주로 사용하는 것이 더 용이할 듯 하다.