프로그램 입출력

 

  1. 함수

    1. 구조와 사용법

      1. 구조: def 함수명(입력값): 수행문

        1. def는 함수를 만들때 사용하는 예약어

        2. 매개변수: 함수에 입력으로 전달 된 값을 받는 변수

        3. 인수: 함수를 호출할 때 전달하는 입력값

      2. 함수의 형태

        1. 일반적인 경우

          1. def 함수이름(매개변수): 수행문 return 결과값

        2. 입력값이 없는 경우

          1. def 함수(): return 결과값

          2. 사용법: 결과값을 받을 변수 = 함수()

        3. 결괏값이 없는 함수

          1. def 함수명(매개변수): 수행문

            1. return이 없으면 결과값이 아니다. print도 수행문의 일부일 뿐이다.

        4. 입력값도 결과값도 없는 함수

          1. 사용법: 함수이름()

      3. 매개변수 사용

        1. 매개변수를 지정해서 호출

          1. ex) result = add(a=3,b=7) <- 순서가 바뀌어도 됨

        2. 매개변수에 초깃값 미리 설정

          1. 함수를 만들때 초기값이 변하는 것이 아니면 매개변수에 초기값을 넣어서 생성

            1. ex) def say_myself(name, old, man=True): 수행문

            2. 초기값의 위치는 맨 마지막에 입력

      4. 입력값이 몇개인지 모를 때

        1. 사용법: def 함수이름 (*매개변수): 수행문

        2. 사용법2: def 함수이름(choice, *매개변수): 수행문

      5. 키워드 파라미터

    2. 특징

      1. 결과값은 늘 하나

        1. 만약 결과값은 언제나 하나여야하지만 2개를 입력하는 경우 -> 두 값이 하나로 뭉쳐지는 튜플로 변환되어 나옴, 에러 안남

        2. 만약 return을 두번 사용하면?

          1. return을 사용하는 순간 함수를 빠져나옴

      2. 함수안의 변수는 함수 안에서만 효력이 있음

        1. 함수 안에서 함수 밖의 변수를 변경하려면?

          1. return 사용

            1. return값을 다시 밖의 변수에 넣어주면 됨

          2. global 명령어 사용

            1. global 변수 선언하면 가능

    3. lambda

      1. def 대신에 간결한 함수를 만들 때

        1. ex) add= lambda 매개변수1,2,...: 매개변수를 이용한 표현식

  2. 사용자 입력과 출력

    1. 입력

      1. input()함수

        1. 사용: 사용자의 입력값을 변수에 입력하고 싶을 때 사용

          1. 입력된 값은 문자이다!

          2. ex) a = input()

        2. 프롬프트에 질문띄우고 입력값 받기: input(‘질문내용’)

          1. ex) old = input(‘how old are you?’

    2. 출력

      1. print 자세히 알기

        1. 클따옴표로 둘러싸인 문자열은 +연산과 동일함

        2. 문자열 띄어쓰기는 콤마(,)로 함

        3. 한줄에 결괏값 입력: end 사용

          1. print(출력값, end=’ ‘)

  3. 파일 읽고 쓰기

    1. 파일 쓰기

      1. open함수 이용: 파일객체 = open(‘파일명’,’파일 열기모드’)

        1. ex) f= open(‘example.txt’,’w’) f.close() -> 결과값으로 파일이 생성

          1. f.close()는 파일을 닫아주는 역할 -> 생략가능

        2. 디렉토리 설정가능: open(‘C:/doit/새파일.txt’,’w’) 

        3. 열기모드(r,w,a)

          1. r: 읽을때만 

          2. w: 파일을 쓸때

          3. a: 새로운내용 추가

      2. 주의: 파일을 쓰기모드로 다시 실행한 경우 기존의 내용이 모두 사라지고 새로운 파일이 생성

      3. 쓰기예제

        1. f = open(‘example.txt’,’w’); for i in range(1,11): data = ‘%d line \n’ %i; f.write(data); f.close()

    2. 파일 읽기

      1. readline() 함수: 파일의 한줄을 읽어옴

        1. readline을 쓰는 경우 무한루프 안에서 한줄씩 읽어오다가 더이상 읽을 라인이 없으면 break

          1. while True: line=f.readline(); if not line: break; print(line)

      2. readlines() 함수: 여러줄을 불러옴

        1. readlines() 함수로 전체를 불러와서 lines 객체로 넣고 for문을 사용하여 line을 한줄씩 읽음

      3. read 함수 이용

        1. data= f.read(); print(data)

    3. 파일에 새로운 내용 추가하기

      1. ‘w’를 사용하면 새로 작성이기 때문에 문제가 생김 -> ‘a’로 수정만 하자!

        1. ex) f = open(‘example.txt’,’a’)

    4. with문과 함께 사용하기

      1. close()를 안 사용해도 된다는 장점

      2. 사용법

        1. with open(‘example.txt’,’w’) as f:

        2. 이하의 블록을 넘어가면 종료

출처: jump to python

'Python > 기초' 카테고리의 다른 글

Pandas 사용 함수  (0) 2022.04.22
각 type별 함수 사용  (0) 2022.04.19
파이썬 나아가기  (0) 2019.09.05
Python 제어문  (0) 2019.09.05
Python 기초 (특징과 데이터형)  (0) 2019.08.29

제어문

 

  1. if문

    1. 기본구조와 특징

      1. 구조 -> if 조건문: 수행문 else: 수행문

        1. 수행문 대신 pass사용하면 아무일도 수행하지 않고 지나감

      2. 특징

        1. 들여쓰기는 필수!

        2. if문 뒤에 콜론(:)으로 마무리

        3. 참과 거짓여부를 확인하는 것

          1. if 참: 수행문

    2. 연산자와 조건

      1. 비교연산자

        1. <,>,==,!=,<=,>=

        2. 비교연산자 후에 True, False값을 내보냄

      2. 이중조건

        1. and, or, not 사용 가능

      3. 값이 포함되어 있는지 조건

        1. in/ not in (리스트, 튜플, 문자열)

    3. 다양한 조건을 판별하는 elif

      1. 구조 -> if 조건문1: 수행문1 elif 조건문2: 수행문2 else:수행문3

        1. elif는 여러개가 들어가도 된다.

        2. 해석: 만일 조건문1이라면 수행문 1을 수행하고, 조건문 1은 아니지만 조건문2라면 수행문2를 수행, 마지막으로 두 조건문 다 해당없으면 수행문3 수행

    4. 조건부표현식

      1. ex) 참 수행문 조건 거짓수행문 -> message=’pass’ if score>=60 else message=’failure’

  2. while문

    1. 기본구조와 특징

      1. 구조 -> while 조건문: 수행문

        1. 조건문이 참일동안만 반복수행

      2. 중간에 빠져나가기

        1. break

      3. 맨 처음으로 돌아가기

        1. continue

      4. 무한루프 구조 -> while True:

  3. for문

    1. 기본구조와 특징

      1. 구조 -> for 변수 in (리스트, 튜플, 문자열): 수행문

        1. 변수가 두개씩 프린트 가능

          1. ex) a = [(1,2), (3,4), (5,6)]

          2. for (first, last) in a: print(first+liat)

          3. 리스트의 요소값이 튜플이기 때문에 각각의 요소가 자동으로 변수에 대입 

      2. 처음으로 돌아가기: continue

    2. for문과 함께 사용하는 range 함수

      1. 숫자 리스트를 자동으로 만들어주는 range함수

        1. 사용법: range(값) -> 0부터 값-1까지 숫자리스트 생성

    3. 리스트 내포 이용하기

      1. append대신에  사용하는 리스트 내포

        1. ex) a = [1,2,3,4]

        2. result = [num*3 for num in a]

        3. print(result)

        4. [3,6,9,12]

      2. if 조건도 추가 가능

        1. ex) result = [num*3 for num in a if num%2==0]

출처: jump to python

'Python > 기초' 카테고리의 다른 글

Pandas 사용 함수  (0) 2022.04.22
각 type별 함수 사용  (0) 2022.04.19
파이썬 나아가기  (0) 2019.09.05
Python 프로그램 입출력하기  (0) 2019.09.05
Python 기초 (특징과 데이터형)  (0) 2019.08.29

==================================

출처: jump to python

==================================

 

파이썬이란?

 

  1. 파이썬은?

    1. 인터프리터 언어(한 줄씩 소스코드를 해석해서 그때그때 실행해 결과를 바로 확인할 수 있는 언어)이다.

  2. 특징

    1. 쉬운 언어

    2. 무료

    3. 속도가 빠르다. C는 더 빠름.(그런 이유로Python 함수들 중 C로 작성된 것들도 많음)

      1. ‘life is too short, you need python’

  3. 파이썬으로 가능한 일

    1. 시스템 유틸리티 제작

    2. GUI 프로그래밍

      1. Tkinter를 주로 사용

    3. C/C++과의 결합

    4. 웹 프로그래밍

    5. 수치 연산 프로그래밍

      1. 적합하지는 않지만 Numpy라는 모듈을 제공하여 빠르게 돌아감

    6. 데이터베이스 프로그래밍

      1. Sybase, Infomix, Oracle, MySQL, PostgreSQL등 데이터베이스에 접근하기 용이한 도구를 제공

      2. pickle은 자료 변형없이 그대로 파일을 저장하고 불러옴

    7. 데이터분석,  사물인터넷

      1. pandas 모듈 이용

  4. 훑어보기

    1. 파이썬은 대화형 인터프리터이다. 

    2. 파이썬은 대소문자를 구분한다.

    3. ‘…’은 아직 문장이 끝나지 않음을 의미한다.

 

데이터형

 

  1. 숫자형

    1. 종류

      1. 정수(integer): 0, 양수, 음수

      2. 실수형(floating-point): 소수점이 포함된 수

        1. ex) 3.5e10, 3.412 등

      3. 8진수나 16진수도 사용가능

    2. 사칙연산

      1. +,-,/,*

      2. 제곱: **

      3. 몫: //, 나머지: %

        1. 몫의 반환값은 정수값만 됨

          1. ex) 7/4=1.75지만 7//4=1

          2.  
  2. 문자열: 문자나 단어들의 집합

    1. 표현

      1. 문자열을 하나로 취급할 때: 작은따옴표로 감싸거나 큰따옴표로 감쌈

        1. ex) “python’s availability”혹은 ‘python”s availability’

      2. 작은따옴표나 큰따옴표를 문자열안에 포함시키고 싶을 때

        1. ex) \큰따옴표 or \작은따옴표 -> 컴퓨터는 문자열을 둘러싸는 기호가 아닌 문자 자체로 인식함

      3. 여러줄을 사용할 때:  \n을 사용해 줄을 바꾸거나 세개의 큰따옴표 혹은 작은따옴표로 감쌈

        1. ex) ‘life is too short, \n we should use python’

        2. ex) ‘’’life is too short, … we should use python’’’

    2. 이스케이프코드: 문자열에서 미리 지정해둔 문자코드

      1. \n: 줄바꿈, \t: 문자열 탭

      2. tip: 이스케이프코드보다 따옴표 세개사용이 깔끔하여 권장

    3. 문자열사칙연산(다른 언어에서 찾기 힘든 부분)

      1. 합치기(concatenation): + 사용

        1. ex) ‘abcd’ + ‘efg’ = ‘abcdefg’

      2. 곱하기: * 사용, 문자열을 두번 반복하라는 의미

        1. ex) ‘abcd’*2 = ‘abcdabcd’

      3. 문자열길이구하기: len()함수

    4. 인덱싱과 슬레이싱

      1. 인덱싱 방법

        1. 파이썬은 0부터 인덱싱해서 마지막은 n-1까지 인덱싱

        2. 인덱싱 중 ‘-’기호는 문자열을 거꾸로 카운트한다는 의미

        3. 공백문자도 문자이므로 인덱싱가능

        4. 문자열은 immutable 자료형이어서 인덱싱으로 문자변경이 불가

      2. 슬레이싱방법

        1. 문자열변수[n,m]: n번째부터 m-1번째까지

    5. 문자열 포매팅(formatting): 문자열에 삽입하기, 포맷코드 사용

      1. 숫자, 변수: %d, 부동소수: &f

        1. ex) ‘apple is %d’ %3

        2. ex) %0.4f% 3.4553443 = ‘3.4553’

        3. %10.4f% 3.4553443 = ‘      3.4553’

      2. 문자: %s, 다른 숫자형을 입력해도 자동으로 문자열로 변환

        1. ex) ‘apple is %s’ %’red’

      3. 두개 이상의 값

        1. ex) ‘apple is %s and %d’ %(‘red’,3)

      4. 포맷코드에 %를 함께 쓰고 싶을 때: %%를 사용 -> %를 문자로 인식

        1. ex) ‘error is %d%%’ %30 = ‘error is 30%’

      5. 정렬하기: 포맷코드 사이에 원하는 값을 입력하면 그만큼의 문자열을 생성하고 오른쪽 정렬을 함

        1. 음수: 왼쪽 정렬

        2. ex) ’%10s’ %’hi’ = ‘        hi’

      6. %와 %d를 함께 쓸 때는 %d%% 이렇게 사용

    6. 모든것을 통합하는 format함수

      1. 한개 값

        1. ex) ‘apple is {0}’.format(3) -> 숫자, 문자, 변수도 대입 가능

      2. 두개 이상의 값

        1. ex)’apple is {0} and {1}. format(‘red’,’10’)

      3. index 숫자 자리에 문자사용 가능

        1. ex) ‘apple is {0} and {color}’.format(‘1’,color=’red’)

      4. 정렬

        1. 왼쪽정렬: {0:<10}

        2. 오른쪽 정렬: {0:>10}

        3. 가운데 정렬: {0:^10}

        4. 공백에 원하는 문자를 넣고 싶을 때: {0:문자^10}

      5. 소수점 표현

        1. ‘{0:0.4f}’.format(3.234235) = ‘3.2342’

      6. f 문자열 포맷팅

        1. f ‘문자열’ 하면 외부 변수를 참조 가능

          1. ex) name = ‘홍길동’,  f’my name is {name}’ = ‘my name is 홍길동’

        2. f’{‘hi’:<10}

        3. f’{name:!<10}’

        4. f’{value:0.4f<10}’

    7. 문자열 내장함수: 문자열이 자체적으로 가지고 있는 함수

      1. 사용법: 문자열 뒤에 점을 찍고 함수를 사용하면 됨

        1. 문자 수 세기: 문자.count(‘수를 셀 문자’)

        2. 문자 찾기

          1. 문자.find(‘찾을문자’): index를 반환, 없다면 -1을 반환

          2. 문자.index(‘찾을 문자’): 없으면 error 반환

        3. 문자 삽입: 삽입할문자.join(‘문자열’)

          1. ex) ‘,’.join(‘abc’) = ‘a,b,c’

        4. 문자열 대문자,소문자화: 문자열.upper(): 대문자, 문자열.lower(): 소문자

        5. 공백지우기: 왼쪽지우기-> 문자열.lstrip(), 오른쪽 지우기 -> 문자열.rstrip, 둘다 지우기 -> 문자열.strip

        6. 문자 대체: 문자열.replace(‘대체당하는 문자’,’대체할문자’)

        7. 문자나누기: 문자열.split() -> 스페이스,엔터,줄바꿈을 기준으로 나눔, 원하는 문자에 따라 나누고 싶으면 함수에 문자를 입력하면 됨

  3. 리스트(list)

    1. 특징

      1. list는 대괄호([]) 안에 쉼표(,)로 요소를 구분 지음

      2. 어떠한 자료형도 포함할 수 있음 -> list안에 list도 가능함

      3. 인덱싱과 슬라이싱

        1. 인덱싱 방법

          1. 문자열과 동일

          2. list안에 list인덱싱: list[][]

            1. 삼중 list도 가능: list [][][]

        2. 슬라이싱방법

          1. 문자열과 동일

          2. list안에 list 슬라이싱: list[][]

    2. 연산

      1. list끼리 더하면 요소끼리가 아니라 전체를 더하는 것

      2. len(list): list의 길이

      3. 문자형이 다른것은 연산하면  type error가 뜸

    3. list 다루기

      1. 수정: list를 인덱싱하여 값을 교환

      2. 삭제: del a[]: 삭제할 값을 인덱싱하여 삭제

    4. 관련 함수들

      1. list.append(값): list에 값 추가, 다른 자료형도 추가 가능

      2. list.sort(): list 정렬

      3. list.index(값): 값에 해당하는 index반환

        1. 값이 없으면 value error를 냄

      4. list.insert(인덱스, 값): 원하는 인덱스 자리에 값을 넣음

      5. list.remove(값): 첫번째로 나오는 값을 지움

      6. list.pop(index): 인덱스 자리 값을 print하고 값을 지워서 반환

      7. list.count(값):요소 세기

      8. list.extend(list): list 확장하기

  4. 튜플(tuple)

    1. 특징: list와 비슷하지만 수정,삭제가 불가능

    2. 대괄호가 아닌 괄호를 사용해서 튜플생성

  5. 딕셔너리(dictionary): 연관배열 혹은 해시형

    1. 구성:  {key:value, key:value, …}

      1. key로 value를 찾아서 사용

      2. 요소삭제: del dic[1]

      3. value에는 어떤 자료형이 들어가도 상관없음

        1. ex) dic = {‘name’=’chaelin’,’hieght’=167,’score’= [1,2,3,4,5]}

    2. 주의사항: key는 동일한 것을 여러개 만들어 놓으면 하나만 인식

    3. 관련 함수

      1. 딕셔너리의 key를 list처럼 만들기: dictionary.keys()

        1. 하지만 이것은 list가 아닌 list형식의 객체 -> 해결법: list(dictionary.keys())

      2. 딕셔너리의 value를 list처럼 만들기: dictionary.values()

      3. key와 value 모두 지우기: dictionary.clear()

      4. key로 value 얻기: dictionary.get(‘key’)

      5. key가 딕셔너리안에 있는지 확인:  key in dictionary

  6. 집합 자료형(set)

    1. 사용법: 객체 = set() -> 비어있는 집합

      1. 안에 list를 넣으면 list숫자로 인식

      2. 안에 만약 list없이 문자열을 넣으면 문자 하나씩 인식

    2. 특징

      1. 중복을 허용하지 않음

      2.  순서가 없음

        1. indexing 불가능 -> list나 tuple로 변환하여 indexing해야함

    3. 사용

      1. 교집합: 집합1 & 집합2

        1. 추가 사용법: 집합1.intersection(집합2)

      2. 합집합: 집합 | 집합2

        1. 추가 사용법: 집합1.union(집합2)

      3. 차집합: 집합1 - 집합2

        1. 추가 사용법: 집합1.difference(집합2)

      4. 값 추가: 집합1.add(값)

      5. 여러값 추가: 집합1.update(list)

      6. 특정 값 제거: 집합1.remove(값)

  7. 불 자료형(boolean)

    1. 참과 거짓자료형

    2. 자료형에도 참과 거짓인 존재

      1. 리스트,튜플,집합은 비어있으면 거짓

      2. 숫자는 0만 거짓

      3. 중요한 예제! -> 사용 예시

        1. a = [1,2,3,4]

        2. while a: print(a.pop())

        3. while문은 참일동안 실행하는데 a가 빈 리스트가 되면 거짓이 되어서 종료 

    3. 참/거짓 여부 확인 함수: bool(데이터)

  8. 변수

    1. 생성

      1. 변수이름 = 변수를 저장할 값 <- C나 JAVA처럼 변수형 설정이 필요없음

      2. 변수가 생성되면서 메모리에 자동으로 위치가 할당됨

        1. 이를 확인하는 함수: id(변수)

    2. 변수 법칙

      1. 변수 복사: 예를 들면, a =[1,2,3]으로 변수를 생성하고 b=a로 하였을 때, a와 b는 다른 것인가? 동일 한 것

        1. id함수를 이용해 확인: id(a)=id(b) -> 의미: 같은 객체 [1,2,3]을 다른 이름 a,b가 다르게 가르키는 것

      2. 다른 것으로 인식시키고 싶을 때

        1. [:] 이용

          1. 복사를 b=a[:] <= 이렇게 사용하면 값을 지정하는 것

        2. copy 모듈

          1. from copy import copy 후에 b= copy(a)

    3. 입력방법

      1. 다수도 가능

        1. ex) a,b = b,a

'Python > 기초' 카테고리의 다른 글

Pandas 사용 함수  (0) 2022.04.22
각 type별 함수 사용  (0) 2022.04.19
파이썬 나아가기  (0) 2019.09.05
Python 프로그램 입출력하기  (0) 2019.09.05
Python 제어문  (0) 2019.09.05

+ Recent posts