본문 바로가기

python

파이썬 수업 1일차(모듈 호출방법, print 및 % 출력전달 방식)

#spyder 단축키
# - F9 : 라인단위 실행
# - ctrl + 1 : 라인/선택영역 주석/해제
# - ctrl + 4 : 줄표시로 구분하고 주석
# - ctrl + 5 : 줄표시로 구분 주석 된 것 해제

# 우측 상단에 C:\Users\KITCOOP  // default 디렉토리
# -*- coding: utf-8 -*-
"""
Spyder Editor

This is a temporary script file.
"""
# =============================================================================
# 
# # 모듈 (module)
# -R의 패키지와 같은 개념(함수의 묶음)
# -import 명령어로 모듈 호출 후 함수 사용
# -R과는 다르게 내장 모듈 (함수)도 호출 후 사용
# 
# =============================================================================

# 모듈 호출방법
1)import 모듈명
모듈명.함수명

# 예시

import math
math.trunc(1.98)

2) import 모듈명 as 별칭 #해당 세션에서만 유효
별칭명.함수명

import numpy as np       #이렇게 쓰고 함수 부를때 마다
np.array([1,2,3])

3) from 모듈명 import 함수명
함수명


import pandas as pd
pd.DataFrame({'a1':[1,2,3]})
#이렇게 쓰는것도 편하지만
#정말 자주쓰는 함수는 이렇게 쓰는게 더 편하겠지
from pandas import DataFrame
DataFrame({'a1':[1,2,3]})


4) from math import *    
# math에 있는 모든 함수를 메모리에 올려놓는 것(math같은 경우 가벼운 모듈이라 괜찮지만, numpy같은것들은 무거워서 별로 추천하는 방법은 아님)


# 결론적으로 2번 방법을 가장 추천함.



# print 및 출력 방식
# 1) 출력형식

- %d : 정수 출력 포맷
- %s : 문자열 출력 포맷
- %f : 실수 출력 포맷

# 2) 기본출력
print('abcd')

# 3) % 출력 전달 방식
print('%d' % 1)
print('%d + %d = %d' % (1,2,1+2)) # 1+2 = 3             #순서대로 전달 됨
print('%d 더하기 %d 는 %d 입니다' % (1,2,1+2))
print('%.2f 더하기 %.2f 는 %.2f 입니다' % (1,2,1+2))     #앞에 총 자릿수는 그냥 생략하는게 좋음     # %7.2f 같은 표현 

print('%5d' % 1)   # "    1"
print('%05d' % 1)   # "00001"


#cf .oracle  to_char(hiredate, 'YYYY"년 "MM"월" DD"일"')

# 4) .format 포맷 전달 방식(위치전달 가능)

#.format() 순서에 상관없이 값전달을 위한 메소드
print('{0:d}+ {2:d} = {1:d}'.format(100,300,200))  # 100 + 200 = 300  #위처럼 순서대로 전달하는 방식이 아닌
    #{n-1:출력형식}  :  n번째 값을 출력형식에 맞게 
#이제는 R과 달리 시작번호가 0이라는 점 유의!

# 5) 특수기호 전달
print('\')       # \출력 , 에러발생
print('\\')      # 정상출력 ,  \으로 일반기호화 , escape문자
print('\'')      # '(작은 따옴표도) 마찬가지로     
print('a\nb\nc')  # \n 줄바꿈
# [참고 - 변수 및 상수의 포맷 변경]
a1 = '%.2f' % 1 # 형변환 !!! 활용도 높음  # 파이썬에서는 벡터연산이 안되어서 이런식으로 여러개 바꾸진 못한다     

#벡터 연산이 안된다는 것.

# 산술연산
# - 사칙연산자 가능
# - // : 몫
# - %  : 나머지

9//2   #4(몫)
9%2    #1(나머지)
2**4   #지수표현식   # <R>에서는 2^4 ,2**4 두가지 표현 다 된다.


#형 확인 및 변환
# - int   : 정수 변환
# - float : 실수 변환
# - str   : 문자열 변환
# 날짜 형변환 같은 것은 기본적으로 내장되어 있진 않음

1 + '1' # 묵시적 형 변환 발생 x, 수행 에러
1 + int('1') #형 변환 후 정상 수행

a1 = 1.45
a2 = '2'

type(a1)
type(a2)


# input : 사용자가 입력한 값 가져오기("문자형"으로 가져오기임! )
v1 = input('값을 입력하세요 : ')     # <R>에서 readLine 같은 거
v1 + 1      #에러
type(v1)    #str타입

v1 = int(input('값을 입력하세요 : '))
v1 + 1
type(v1)


# [연습문제]
# 두 수를 입력 받아 아래와 같은 형식으로 출력
# 9를 4로 나눈 몫은 2입니다.
# 9를 4로 나눈 나머지는 1입니다.


a1 = int(input('값 1을 입력하세요 : '))
a2 = int(input('값 2를 입력하세요(나눌 수) : '))

print('%d를 %d로 나눈 몫은 %d 입니다' %(a1,a2,a1//a2))
print('%d를 %d로 나눈 나머지는 %d 입니다' %(a1,a2, a1%a2))

#.format 사용
print('{0:d}를 {1:d}로 나눈 몫은 {2:d} 입니다' .format(a1,a2,a1//a2))
print('{0:d}를 {1:d}로 나눈 나머지는 {2:d} 입니다' .format(a1,a2, a1%a2))