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.025 Bioinformatics keyword
- 0.025 갤럭시
- 0.025 python
- 0.025 R
- 0.025 시퀀싱장비
- 0.025 Next-generation_sequencing
- 0.025 CLC Genomics Workbench
- 0.013 Illumina
- 0.013
- 0.013 HiSeq
- More suggestions...