csmoon1010의 SW 블로그

[200711] Python 간단정리 _ 변수 및 수식, 파일 처리 본문

데이터&인공지능/데이터분석(Python)

[200711] Python 간단정리 _ 변수 및 수식, 파일 처리

csmoon1010 2020. 7. 11. 17:25

인턴을 시작하면서 Python을 통한 데이터 분석에 대한 공부가 필요해졌다.

1학년 때 배웠던 '소프트웨어의 이해'를 통해 Python에 대한 간단한 정리를 다시 해보려 한다.

 

1. 변수 및 수식

1) 수식(연산자)

연산 연산자
덧셈 a + b
뺄셈 a - b
곱셈 a * b 
나눗셈 a // b --- 정수나눗셈
a / b --- 실수 나눗셈
나머지 a % b
거듭제곱 a ** b

2) 문자열(string)

: 작은 따옴표(') 또는 큰따옴표(")로 표시한다.

- 특별한 문자인 경우 : \를 사용하여 단순 문자로 간주하도록 함

- 연산 : + (문자열 접합 _ 문자열 끼리), * (문자열 곱하기 _ 문자열 * 숫자)

- 작은따옴표 3개(''') : 여러 줄에 걸쳐 문자열 표현

- 문자열 자르기 : split 함수

a_string = "this is a plain sentence."
a_string.split() #default로 공백을 기준으로 문자열 자르기

b_string = "apple, banana, pineapple, mango"
b_string.split(",")

- 단, 문자열 + 숫자의 형태 불가 [대안 : 매개변수 %, str(숫자)로 변경]

- 출력 포맷 : %d(정수인자), %s(문자/문자열)

s3 = "Python is %d times easier than %s"
print(s3 % (10, "C++"))
print(%d %s %d % (10, 'a', 5))

 

3) 리스트

: 파이썬의 기본적인 자료형. 문자열 혹은 숫자들의 나열 리스트

['seoul', 'tokyo', 'paris']
[1, 3, 5]

- 접합(+), 곱하기(*) 연산 가능

 

4) 출력

print('Hello')
print('Hello' + 'csmoon1010') #접합 가능
print('Hello' , 'csmoon1010') #접합하여 출력됨(빈칸으로 구분된 형태)
print([1, 3, 5] * 2) #곱하기 가능

cf> print(a, end = ' ') : end에 해당하는 문자를 뒤에 붙여서 출력함

 

5) 변수

#변수 = 수식
score = 70

#변수 = 리스트 (요소는 인덱스로 접근)
cities  = ['seoul', 'tokyo', 'paris' 'new york']
print(cities[3])
del cities[3]

6) 입력 받기

: input 함수를 이용한다. 엔터키를 기준으로 한 줄의 문자열 입력 받아 변수에 저장

name = input("이름 입력: ")
score = int(intput("첫 번째 점수 : ")) #type 지정하여 저장

 

7) 수학 함수

- 수학 내장 함수

abs(x) 절대값
bin(x) 정수값을 이진문자열로
int(s, base) 스트링s를 정수로 변환
float(s) 스트링s를 실수로 변환
len(x) 순서열 x의 길이
max(iterable)
max(arg1, arg2, *args)
최대값의 객체 반환
min(iterable)
min(arg1, arg2, *args)
최소값의 객체 반환
pow(x, y) x의 y승
range(stop)
range(start, stop, step)
주어진 범위의 값으로 리스트 생성하여 반환
input(prompt) 표준입력으로 문자열 입력받아 반환
round(number, ndigit) 소수점 이하 ndigit자리까지 남겨 반올림
sorted(iterable, key, reverse) 순서열을 정렬한 사본 생성
sum(iterable, start) start부터 시작해 원소들의 합 구하여 반환

- math 모듈(import math)

math.pi 원주율
math.acos(x)
math.asin(x)
math.atan(x)
코사인, 사인, 탄젠트값을 가지는 각도를 라디안으로 반환(0~3.14 사이)
math.ceil(x) 크거나 같은 값의 가장 적은 정수
math.cos(x)
math.sin(x)
math.tan(x)
라디안 각도 x의 코사인, 사인, 탄젠트값
math.degrees(r) 라디안 각도 r을 도로 변경
math.e 상수 e
math.exp(x) e의 x승
math.fabs(x) x의 절대값 계산, 반환
math.factorial(x) x의 팩토리얼 계산
math.floor(x) 작거나 같은 값의 가장 큰 정수 계산
math.log(x, b) x의 기수 b의 로그값
math.pow(x, y) x의 y승 계산
math.radians(d) 도로 주어진 각을 라디안으로 변경하여 반환
math.sqrt(x) x의 제곱근 계산, 반환

 

2. 파일 처리

1) 파일 읽기

- strip 함수 이용 : '\n'을 제거한 후 반환

def read_file():
    f = open('memo.txt') #파일 열기
    while True:
        line = f.readline() #한줄 읽기
        if len(line) == 0:
            break
        line = line.strip() #strip 함수
        mymemo.append(line)
    f.close()
    
mymemo = []
read_file()
for item in mymemo :
    msg = item + '\n'
    print(msg)

2) 파일 쓰기

- 'w' : 쓰기모드. 새롭게 씀

- 'a' : 추가모드. 기존 텍스트 파일에 추가하는 모드

def write_file():
    f = open('memo.txt', 'w') #파일 열기(쓰기모드)
    for item in mymemo:
        msg = item + '\n'
        f.write(msg) #파일에 쓰기
    f.close()
    
mymemo = []
while True :
    print("Write an item to buy. Input a blank line to exit : ")
    item = input()
    if len(item) == 0 :
        break
    mymemo.append(item)
write_file()
Comments