공부/파이썬 2021. 10. 24. 15:56

20211024 점프 투 파이썬 - 05-2 모듈

05-2 모듈 

요거도 사실 별거 없다.

대화형 인터프리터로 작성한게 아니라 

py 파일로 작성한 파이썬 코드를 다른 파일에서 사용할수 있는 방법

 

#모듈이름은 미리 작성한 py파일에서 확장자인 .py를 제거하고 쓴다.

import  모듈이름

#모듈이름 뒤에 .을 붙이면 특정 함수만 가져온다?

#mod.py에 있는 testShow 함수를 가져오고 싶다면 

import mod.testShow

#. 안쓰고 특정 함수만 가져다 쓰고 싶으면

from 모듈이름 import 모듈의함수이름

#mod1.py 파일에 있는 add랑 sub라는 함수를 가져다 쓰고 싶으면

from mod1 import add, sub

#mod2.py  파일에 있는 모든 함수를 가져다 쓰고 싶으면

from mod2 import *

 

import 시 문제점중 하나가

해당 py 파일에 작성한 모든 코드가 import // c로 얘기하면 include 되는거랑 같다.

import 한 코드가 원래의 py파일에서 실행된건지 아닌지 구분해서 실행하는 방법

if __name__ == "__main__" :

으로 __name__이란 파이썬 내부에서 사용하는 변수를 검사하면

현재 실행된 파일이 import 된건지 원래의 코드인지 알 수 있다.

 

물론 import 로 모듈을 불러온 경우 함수만이 아니라 변수나 클래스도 사용 가능하다.

 

파일 import 는 기본적으로 같은 디랙토리 내에서 가능하지만 os환경변수를 사용해서 path를 설정하거나

import sys 를 통해 파이썬이 설치, 연관 되어 있는 디렉토리를 한번에 설정하고 import 할 수도 있다

import sys

import mod

이런식.

공부/파이썬 2021. 10. 11. 16:52

20211011 점프 투 파이썬 - 05-1클래스

05-1 클래스

이건 별거 없다. 그냥 C++에서의 클래스랑 비슷

클래스란건 결국 변수저장+전용함수 가 합쳐진 개체의 틀

 

class 클래스명 :

    def 함수명( 변수1, 변수2, 변수3...) :

        함수내용

        함수내용

    def __init__(변수1) : #클래스 초기화 함수는 이름 고정

        초기화 함수

 

함수명에서 첫 변수1 은 자기자신을 의미한다.

 

class test_class :

    def test_func( self, bbb ) :

        self.aaa = bbb

    def test_func_2(self) :

        print(self.aaa)

a = test_class()

b = test_class()

a.test_func( 20 )

b.test_func( 30 )

a.test_func_2()

b.test_func_2()

#20

#30

 

상속이나 매서드 오버라이딩은 그냥 쓰면 된다

 

class 부모클래스 :

    내용1

class 자식클래스(부모클래스):

    내용2

 

클래스 변수는 클래스 자체에서 공용으로 쓰는 변수

클래스 변수도 공용으로 쓰다가 개별로 쓰면 개별 영역이 됩니다

class AAA :

    gBBB = 10000

a = AAA()

b = AAA()

print(a.gBBB, b.gBBB)

AAA.gBBB = 10

print(a.gBBB, b.gBBB)

a,gBBB = 100

print(a.gBBB, b.gBBB)

 

# 10000 10000

# 10 10

# 100 10

공부/파이썬 2021. 10. 4. 14:01

20211004 점프 투 파이썬

04-2 사용자 입력과 출력

 

#input 콘솔 입력

# num2 는 input 내 스트링 출력 후 프롬프트 표시

num = input()

num2 = input("숫자를 입력하시오 : ")

 

#print 용법 추가 큰따옴표

#띄어쓰기는 콤마로

#print 시 맨뒤에 자동으로 붙는 줄바꿈은 end = "스트링" 으로 변경가능

print( "aa" "bb" "cc")

print( "aa", "bb", "cc")

print( "aa" , end= "--")

print( "bb" , end= "--")

# aabbcc

# aa bb cc

# aa--bb--

 

04-3 파일 읽고 쓰기

 

#기본순서는 (새로 생성하거나 기존의) 파일을 열고, 파일에 읽거나 쓰고, 파일을 닫는다.

#open 옵션은 'w' - 쓰기만, 'r' - 읽기만, 'a' - 기존파일의 맨뒤에 추가

#새로 파일이 생성되더라도 파일 경로를 생성해 주진 않는다.

f = open("드라이브경로/경로/경로.../파일명.확장자", 'w')

f.close()

 

#파일에 내용 쓰기, 읽기 1

# write, readline 한줄씩 읽기 #문제는 줄바꿈 문자까지 포함해서 읽는다.
file_test = open("c:/python/file/새파일.txt", 'w') #경로 생성은 안한다.
for i in range(3):
    data = "%d 번째 줄입니다.\n" % i
    file_test.write( data )
file_test.close()
file_r = open("c:/python/file/새파일.txt", 'r')
while True:
    line = file_r.readline()
    if not line : break    # 무한루프로 돌면서 더이상 읽을 라인이 없으면 break로 루프 탈출
    print(line , end=" ")
file_r.close()
#0 번째 줄입니다.
#1 번째 줄입니다.
#2 번째 줄입니다.

 

#파일에 내용 쓰기, 읽기2

# writelines, readlines 리스트 통째로 쓰고 읽을때도 리스트에 한번에 넣기

file_test = open("c:/python/file/새파일.txt", 'w') #경로 생성은 안한다.
data_lines = ["0번째 줄입니다.\n","1번째 줄입니다.\n","2번째 줄입니다.\n"]
file_test.writelines( data )
file_test.close()
file_r = open("c:/python/file/새파일.txt", 'r')
lines = file_r.readlines()
for line in lines  :
    print( line , end="   a ")
file_r.close()
#0 번째 줄입니다.
#  a 1 번째 줄입니다.
#  a 2 번째 줄입니다.
#  a

 

#파일에 내용 쓰기, 읽기3

# read 파일 통째로 읽기.

# with as 문을 사용하면 with 블록을 벗어나는 순간 자동으로 파일변수가 close 된다


file_r = open("c:/python/file/새파일.txt", 'r')
data = file_r.read()
print( data )
file_r.close()
#####################################
with open("c:/python/file/새파일.txt", 'r') as file_r:
    data = file_r.read()
    print( data )

#위의 두 문단은 거의 동일한 결과 출력

 

#완전 번외

#sys 모듈을 사용해서 python 파일명.py 에 매개 변수 추가하기

import sys
args = sys.argv[1:]
for i in args:
    print(i)

# python 파일명.py aa bb cc dd
# aa
# bb
# cc