오늘은 python기초에 대해서 포스팅 하도록하겠습니다.
python은 R과 마찬가지로 요즘 핫한 프로그래밍 언어라는것을 알 수가 있습니다.
tensorflow나 pytorch와 같은 머신러닝을 할때는 필수적으로 알고있어야 하는 언어중 하나입니다.
R과 다른 점은 생각 보다 많은데, 이건 나중에 정리해서 올리도록 하겠습니다.
1.사칙연산
R과 마찬가지로 사칙연산이 됩니다.
>>> 1+1
2
>>> 1/2
0.5
>>> 1/3
0.3333333333333333
>>>
R과는 다르게 문자도 합칠 수가 있습니다.
>>> 'a'+'b'+'c'
'abc'
>>>
섞어서 합치게 되면 에러가 납니다. (string + float=error)
>>> 'a'+2
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: can only concatenate str (not "int") to str
>>>
2. 변수 지정
R과 마찬가지로 변수를 지정할 수 있습니다.
변수끼리 합할수도 있습니다. 이때에는 사칙연산과 마찬가지로 같은 타입만 가능합니다.
>>> a='1234'
>>> b='bio'
>>> b+a
'bio1234'
>>> a=10
>>> b=400
>>> a+b
410
>>>
변수의 경우 R과는 다르게 변수안에 있는 글자들을 변경할 수가 있습니다.
>>> a='Korean_Bioinformatics'
>>> len(a)
21
>>> a[1]
'o'
>>> a[0]
'K'
>>>
len() = 변수의 개수나, list안에 개수를 세어줍니다.
R에서는 위에서 a를 a=c('Korean_Bioinformatics')라고 인식을 하기 때문에 length를 사용하게 되면 1이 나옵니다.
그러나 python에서는 'Korean_Bioinformatics'를 그대로 인식하기 때문에 21개라는 내부의 개수가 나왔습니다.
그리고 위에서 R과 python의 차이점을 하나 더 볼 수가 있는데, 변수의 순서입니다.
R에서는 순서를 1부터 시작하지만, python에서는 0부터 시작합니다.
즉 변수에서 개수를 셀 때, R은 첫번째것을 1로 python은 0부터 시작합니다.
3. 자료구조
주로 많이 사용되거나 기본적인 자료 구조들은 다음과 같습니다.
list, dict,tuple
3-1. list
R에서 벡터가 있다면, python에서는 list가 있습니다. (tuple도 비슷한 특징이 있긴합니다만.. 차이가 있습니다.)
변수지정에서 a='Korean_Bioinformatics'의 개수가 21개로 나왔지만, list를 이용하면 R에서의 결과와 같이 나올수가 있습니다.
>>> a=['Korean_Bioinformatics']
>>> a
['Korean_Bioinformatics']
>>> len(a)
1
>>>
list안에 값들을 바꿀수도 있습니다.
>>> a[0]='Korean_Bio'
>>> a
['Korean_Bio']
>>>
list안에 값들을 추가 할수도 있습니다. 이때는 append를 사용합니다. 그리고 특징적인 것은 R과 다르게 다른 타입의 값도 추가로 넣을 수가 있습니다.
>>> a.append('Tistory')
>>> a
['Korean_Bio', 'Tistory']
>>> a.append(123)
>>> a
['Korean_Bio', 'Tistory', 123]
>>>
3-2. dict
dictionary의 경우 사전이라고 생각하시면됩니다. 짝짓기! 라고 생각하셔도되고, R에서 list가 비슷한 역활을 합니다.
dictionary의 경우 key, value로 나누어 집니다.
>>> dic={'Korea':'Bioinformatics','Korean':'Bio'}
>>> dic['Korea']
'Bioinformatics'
>>>
위에서 보시면 key:value으로 구성되어 있고, {}로 묶여있습니다.
dict에서 key,value값들만을 보기위해서는 다음과 같이 하면됩니다.
>>> dic.keys()
dict_keys(['Korea', 'Korean'])
>>> dic.values()
dict_values(['Bioinformatics', 'Bio'])
>>>
key를 이용해서 dictionary값을 지울 수도 추가할 수도 있습니다.
>>> del dic['Korea']
>>> dic
{'Korean': 'Bio'}
>>> dic['Korea']='Bio1234'
>>> dic
{'Korean': 'Bio', 'Korea': 'Bio1234'}
>>>
주의점은 key가 같은 경우는 합쳐지거나, 마지막 값을 받습니다.
>>> dic={'Korean': 'Bio', 'Korea': 'Bio1234'}
>>> dic['Korea']='Bio4321'
>>> dic
{'Korean': 'Bio', 'Korea': 'Bio4321'}
>>> dic={'Korea': 'Bio', 'Korea': 'Bio1234'}
>>> dic
{'Korea': 'Bio1234'}
>>>
3-3. tuple
튜블을 제가 잘 쓰지는 않지만, 특징은 그냥 값을 변경할 수가 없는 list라고 생각하시면 됩니다.
>>> a=('d',1)
>>> a
('d', 1)
>>> len(a)
2
>>> a[0]
'd'
>>> a[0]='e'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
>>>
아직까지 사용을 잘 안해봐서 유용할때가 딱히 없었던것 같습니다.
지금까지 파이썬 기초를 포스팅 해보았습니다. 기초의 경우 이런 것이 있구나 정도로만 넘어가시고,
실전에서 사용하다보면 특징들을 더 잘 알 수가 있게 됩니다.
R과의 차이점 (오늘 배운것 중에)
R | python |
사칙연산은 숫자만 | 사칙연산은 같은 데이터타입이면 가능하다. (string은 +,*만 가능) |
변수 default는 변수 = c('값') (length(변수)=1) | 변수=값 (len(변수)= 값내의 개수) |
변수 셀 때 시작은 1부터 | 변수 셀 때 시작은 0부터 |
'기본적인프로그래밍 > python' 카테고리의 다른 글
[Python] 파이썬 pip 설치 속도 올리기! (2) | 2020.11.09 |
---|---|
[Python] Mortal Fibonacci Rabbits (0) | 2020.11.07 |
[Python,rosalind] Rabbits and Recurrence Relations (2) | 2020.11.05 |
[Python] Data science - numpy 기초 (1) (0) | 2020.07.13 |
[Python] 기초 (for, while,def,lambda,if) (1) | 2020.07.06 |
댓글