#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))