목록PYTHON (15)
Wisdom’s Cloud
지금까지 배운 내용들을 Final 20제를 통해서 마지막으로 점검해보도록 하자!! Q1 문자열 바꾸기 # 다음과 같은 문자열이 있다. a:b:c:d # 문자열의 split와 join 함수를 사용하여 위 문자열을 다음과 같이 고치시오. a#b#c#d >>> a = "a:b:c:d" >>> b = a.split(":") >>> b ['a', 'b', 'c', 'd'] >>> c = "#".join(b) >>> c 'a#b#c#d' Q2 딕셔너리 값 추출하기 # 다음은 딕셔너리의 a에서 'C'라는 key에 해당하는 value를 출력하는 프로그램이다. >>> a = {'A':90, 'B':80} >> a['C'] Traceback (most recent call last): File "", line 1, in ..
정규 표현식 정규 표현식(Regular Expressions)은 복잡한 문자열을 처리할 때 사용하는 기법으로, 파이썬만의 고유 문법이 아니라 문자열을 처리하는 모든 곳에서 사용한다. 따라서 정규 표현식을 사용하면 코드가 상당히 간결해지며, 만약 찾으려는 문자열 또는 바꾸어야 할 문자열의 규칙이 매우 복잡하다면 정규식의 효용은 더 커지게 된다. (소비되는) 메타 문자 정규 표현식에서 사용하는 메타 문자(meta characters)에는 다음과 같은 것들이 있으며, 메타 문자란 원래 그 문자가 가진 뜻이 아닌 특별한 용도로 사용하는 문자를 말한다. . ^ $ * + ? { } [ ] \ | ( ) 문자 클래스 [ ]: 문자 클래스로 만들어진 정규식은 '[ ] 사이의 문자들과 매치'라는 의미를 갖는다. 즉 정..
[실습 1] 구구단 만들기 함수의 이름은? GuGu로 짓자 입력받는 값은? 2 출력하는 값은? 2단(2, 4, 6, 8, ..., 18) 결과는 어떤 형태로 저장하지? 연속된 자료형이니까 리스트! >>> def GuGu(n): ... result = [] ... i = 1 ... while i >> print(GuGu(2)) [2, 4, 6, 8, 10, 12, 14, 16, 18] [실습 2] 3과 5의 배수 합하기 입력받는 값은? 1부터 999까지(1000 미만의 자연수) 출력하는 값은? 3의 배수와 5의 배수의 총합 생각해 볼 것은? 하나. 3의 배수와 5의 배수는 어떻게 찾지?..
sys sys 모듈은 파이썬 인터프리터가 제공하는 변수와 함수를 직접 제어할 수 있게 해주는 모듈이다. 명령 행에서 인수 전달하기 - sys.argv # C:/doit/Mymod 디렉터리에 argv_test.py라는 이름으로 다음과 같은 파이썬 프로그램을 작성한다. import sys print(sys.argv) # 명령 프롬프트 창에서 mymod 디렉터리로 들어간 뒤 다음과 같이 실행한다. C:/doit/Mymod> python argv_test.py you need python ['argv_test.py', 'you', 'need', 'python'] # python 명령어 뒤의 모든 것들이 공백을 기준으로 나뉘어서 sys.argv 리스트의 요소가 되는 것을 확인할 수 있다. 강제로 스크립트 종료하기..
abs # abs(x)는 어떤 숫자를 입력받았을 때, 그 숫자의 절댓값을 돌려주는 함수이다. >>> abs(3) 3 >>> abs(-3) 3 >>> abs(-1.2) 1.2 all # all(x)는 반복 가능한 자료형 x를 입력 인수로 받으며 이 x가 모두 참이면 True, 거짓이 하나라도 있으면 False를 돌려준다. # 여기서 반복 가능한 자료형이란 for문으로 그 값을 출력할 수 있는 것을 의미한다. 리스트, 튜플, 문자열, 딕셔너리, 집합 등이 있다. >>> all([1, 2, 3]) True >>> all([1, 2, 3, 0]) False any # any(x)는 x 중 하나라도 참이 있으면 True를 돌려주고, x가 모두 거짓일 때에만 False를 돌려준다. all(x)의 반대이다. >>> ..
예외 처리 프로그램을 만들다 보면 수없이 많은 오류를 만나게 된다. 물론 오류가 발생하는 이유는 프로그램이 잘못 동작하는 것을 막기 위한 파이썬의 배려이다. 하지만 때때로 이러한 오류를 무시하고 싶을 때도 있다. 이를 위해 파이썬은 try, except를 사용해서 예외적으로 오류를 처리할 수 있게 해준다. 오류 예외 처리 기법 # try, excetp문 # try, excetp만 쓰는 방법(오류 종류에 상관없이 오류가 발생하면 except 블록을 수행한다.) try: ... except: ... # 발생 오류만 포함한 except문(오류가 발생했을 때 except문에 미리 정해 놓은 오류 이름과 일치할 때만 except 블록을 수행한다.) try: ... except 발생 오류: ... # 발생 오류와 ..
패키지 패키지(Packages)는 '.'을 사용하여 파이썬 모듈을 계층적(디렉터리 구조)으로 관리할 수 있게 해준다. 예를 들어 모듈 이름이 A.B인 경우에 A는 패키지 이름이 되고, B는 A 패키지의 B 모듈이 된다. 간단한 파이썬 프로그램이 아니라면 이렇게 패키지 구조로 파이썬 프로그램을 만드는 것이 공동 작업이나 유지 보수 등 여러 면에서 유리하다. 또한 패키지 구조로 모듈을 만들면 다른 모듈과 이름이 겹치더라도 더 안전하게 사용할 수 있다. 패키지 만들기 # C:/doit 디렉터리 밑에 game 및 기타 서브 디렉터리를 생성하고 .py 파일들을 다음과 같이 만들어 보자. # 각 디렉터리에 __init__.py 파일의 내용은 일단 비워 둔다. C:/doit/game/__init__.py C:/doi..
모듈 모듈이란 함수나 변수 또는 클래스를 모아 놓은 파일을 말하며, 다른 파이썬 프로그램에서 불러와 사용할 수 있게끔 만든 파이썬 파일이라고도 할 수 있다. 우리는 파이썬으로 프로그래밍을 할 때 굉장히 많은 모듈을 사용하며, 다른 사람들이 이미 만들어 놓은 모듈을 사용할 수도 있고, 우리가 직접 만들어서 사용할 수도 있다. 모듈 만들기 # mod1.py def add(a, b): return a + b def sub(a, b): return a - b 모듈 불러오기 # import는 이미 만들어 놓은 파이썬 모듈을 사용할 수 있게 해주는 명령으로, # 현재 디렉터리에 있는 파일이나 파이썬 라이브러리가 저장된 디렉터리에 있는 모듈만 불러올 수 있다. # import의 사용 방법은 .py 확장자를 제거한 '..
클래스 클래스(class)란 똑같은 무엇인가를 계속해서 만들어 낼 수 있는 설계 도면(과자 틀)이고, 객체(object)란 클래스로 만든 피조물(과자 틀을 사용해서 만든 과자)을 뜻한다. 클래스로 만든 객체들은 객체마다 고유한 성격을 가진다. 과자 틀로 만든 과자에 구멍을 뚫거나 조금 베어 먹더라도 다른 과자에는 아무 영향이 없는 것과 마찬가지로 동일한 클래스로 만든 객체들은 서로 전혀 영향을 주지 않는다. 클래스는 함수나 자료형처럼 프로그램 작성을 위해 꼭 필요한 요소는 아니지만, 프로그램을 작성할 때 클래스를 적재적소에 사용하면 프로그래머가 얻을 수 있는 이익은 상당하다. class 클래스 이름: 수행할 문장1 수행할 문장2 ··· 클래스 안에 구현된 함수는 다른 말로 메서드(Method)라고 부르며..
파일 생성하기 파일 객체 = open(파일 이름, 파일 열기 모드) 파일 열기 모드 설명 r 읽기 모드 - 파일을 읽기만 할 때 사용 w 쓰기 모드 - 파일에 내용을 쓸 때 사용 (해당 파일이 존재할 경우 원래 있던 내용이 모두 사라지고, 해당 파일이 존재하지 않으면 새로운 파일이 생성됨) a 추가 모드 - 파일의 마지막에 새로운 내용을 추가할 때 사용 파일을 쓰기 모드로 열어 출력값 적기 # writedata.py f = open("C:/doit/새파일.txt", 'w') for i in range(1, 11): data = "%d번째 줄입니다.\n" %i f.write(data) f.close() 프로그램의 외부에 저장된 파일을 읽는 여러 가지 방법 # readline 함수 사용하기 f = open(..