본문 바로가기
기본적인프로그래밍/python

[Python] 기초 기능 (사칙연산, 변수지정, 자료구조(list,dict,tuple))

by 인포메틱스 2020. 7. 6.
반응형

오늘은  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부터
728x90
반응형

댓글