Skip to content

생물정보학 파이썬 호출 #
Find similar titles

Chapter 1. 기초 다지기 #

호출(Calls) #

호출에는 크게 함수 호출과 메서드 호출로 나눌 수 있다. 두 차이는 다음과 같다.

  • 함수: 절차적 프로그래밍에서 사용하는 용어로 한줄 이상의 명령어를 스코프내에서 실행하고 return 문을 만나면 자신을 호출한 명령어의 다음줄로 이동하며 복잡합 프로세스의 기능을 일정부분만 담당함을써 효율적으로 프로그램을 개발한다
  • 메서드: 객체지향 프로그래밍 언어에서 사용하는 언어로 클래스 데이터 타입에 의존적인 함수이며 개념을 잘 이해하기 위하여 멤버 함수라고도 한다. 즉 메서드는 클래서 안에서 사용하는 함수라 보면 된다.

Function calls(함수호출) #

일반적으로 함수는 함수 이름과 함께 괄호로 구성되어 있으며 괄호 안에는 인자가 없거나 하나 이상 콤마(,)로 구분되어 들어간다. 함수를 호출했을 때 그 명령어가 실행되며 어떤 값을 반환한다(return)

함수가 실행되기 이전에 먼저 주어진 인자를 먼저 검사하고 그 결과를 입력인자로 주어지게 된다.각 함수의 인자 개수는 프로그래밍 당시 이미 정해져 있는 경우가 많다. 파이썬 함수는 다음과 같은 len, print 등이 있다.

가장 기본적인 함수부터 살펴보면 다음과 같다.

  • len(arg)은 주어진 인자에서 그 문자열의 길이를 반환한다. 물론 사전이나 배열 같은 경우에도 그 크기를 반환한다.
  • print(args, [sep][endstr])는 주어진 인자와 함께 구분자, 문자열 구분자, 종료 문자 등을 입력하면 그 결과를 출력한다.
  • input()은 사용자가 프롬프트 상에서 입력한 문자열을 읽어 엔터키가 입력되기 전 까지 저장했다가 엔터키가 입력이 되면 그 스트링을 라인으로 읽어 들여 전달한다.

예제는 다음과 같다. TATA의 문자를 읽어 길이인 4를 반환하거나 입력된 문자를 출력하고 사용자가 입력한 값을 읽어들이는 예제이다.

>>> len('TATA')
4
>>> print('AAT', 'AAC', 'AAG', 'AAA') 
AAT AAC AAG AAA
>>> input('Enter a codon: ')
Enter a codon: CGC
'CGC'
  • abs(value)는 입력한 수의 절대값을 반환한다.
  • max(args)은 주어진 인자들 중에 가장 큰 값을 반환한다
  • min(args)은 주어진 인자들 중에 가장 작은 값을 반환한다.

다음은 자료 타입의 변환 해주는 함수들이다.

  • str(arg)은 주어진 인자를 문자열로 변환해준다.
  • int(arg)은 주어진 인자를 수 타입으로 변환한다.
  • float(arg)은 주어진 인자를 float타입으로 변환한다.
  • bool(arg)은 주어진 인자에서 인자가 없어나, 0이거나, 빈 문자열이면 False 그 외는 True를 반환한다.

예제는 다음과 같다.

>>> str(len('TATA')) '4'
>>> int(2.1) 2
>>> int('44') 44
>>> bool('') False
>>> bool(' ') True
>>> float(3) 3.0

마찬가지로 파이썬에서 미리 만들어져 있는 도움말에 관한 함수이다.

  • help()는 대화형 도움말로 진입하고 주어진 인자에 따라 그 결과를 반환한다.
  • help(x)는 입력한 x에 대한 정보를 반환한다

Method calls #

메서드 호출은 위에서 언급하였듯이 클래스 관련 함수이다. 파이썬은 변수를 선언함과 동시에 클래스의 특성을 상속받는다. 따라서 선언된 변수 타입의 특성에 따라 다양한 메서드를 호출할 수 있다. 아래 예제처럼 MNKMDLVADVAEKTDLSKAKATEVIDAVFA'의 문자열로 선언했기 때문에 이에 해당하는 메서드를 호출할 수 있게 된다.

다른 예를 들면 다음과 같다. seq 변수에 문자열 'TATA'를 입력하고 이 변수의 클래스 메서드를 호출하려면 dir()를 사용하면된다. 그러면 다음과 같이 사용 가능한 다양한 메서드를 확인할 수 있다. >>> seq ='TATA' >>> dir(seq) ['add', 'class', 'contains', 'delattr', 'doc', 'eq', 'format', 'ge', 'getattribute', 'getitem', 'getnewargs', 'getslice', 'gt', 'hash', 'init', 'le', 'len', 'lt', 'mod', 'mul', 'ne', 'new', 'reduce', 'reduce_ex', 'repr', 'rmod', 'rmul', 'setattr', 'sizeof', 'str', 'subclasshook', '_formatter_field_name_split', '_formatter_parser', 'capitalize', 'center', 'count', 'decode', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'index', 'isalnum', 'isalpha', 'isdigit', 'islower', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']

실제 사용하자면 주어진 서열에서 'DL' 서열이 몇 번 존재하는지 확인하고 싶다면 count를 사용하면 된다. 사용법은 아래와 같다.

>>> 'MNKMDLVADVAEKTDLSKAKATEVIDAVFA'.count('DL')
>>> 2

문자열의 주요 메서드는 다음과 같다.

  • string1.count(string2[, start[, end]])은 주어진 문자열에서 특정 문자열이 몇 번 있는지 확인하여 그 결과를 반환한다.
  • string1.find(string2[, start[, end]])는 주어진 문자열에서 입력 문자열이 어디에 존재하는지 확인하고 그 인덱스값을 반환한다.
  • string1.startswith(string2[, start[, end]])는 주어진 문자열이 특정 문자열로 시작하는지 확인하여 True, False를 반환한다.
  • string1.strip([string2])는 주어진 문자열에서 개행 문자(공백, \n 등)를 제거한 문자열을 반환한다.
  • string1.lstrip([string2])는 주어진 문자열에서 문자열이 시작하기전 즉 왼쪽 빈 공백을 제거한다.
  • string1.rstrip([string2])는 주어진 문자열에서 문자열이 끝난 오른쪽 빈 공백을 제거한다.

사용법은 다음과 같다.

>>> 'MNKMDLVADVAEKTDLSKAKATEVIDAVFA'.find('DL')
4
>>> 'MNKMDLVADVAEKTDLSKAKATEVIDAVFA'.find('DL', 5) 14
>>> 'MNKMDLVADVAEKTDLSKAKATEVIDAVFA'.find('DL', 5, 12) -1
>>> 'MNKMDLVADVAEKTDLSKAKATEVIDAVFA'.startswith('DL') False
>>> 'MNKMDLVADVAEKTDLSKAKATEVIDAVFA'.startswith('DL', 4) True
>>> 'AAAAATCCCGAGGCGGCTATATAGGGCTCCGGAGGCGTAATATAAAA'.find('TCCGGA') 
>>> 27

Suggested Pages #

0.0.1_20210630_7_v33