Programming/Python

중학생도 이해하는 파이썬 이야기 - 4가지 데이터타입

양국남자 2023. 7. 12. 02:15

조 : 형! 나 오늘 학교에서 파이썬 배운지 2주일 되었어!

 

양 : 아 그래? 우리때는 자바였는데.

 

조 : 이게 되게 문법도 간략하고 배우기도 편해!

 

양 : (아 이제는 좀 편하게 쉬어야지) 학교에서 뭐 배웠는데?

 

조 : 이번에는 파이썬에서 사용되는 데이터 타입 4가지에 대해서 배워봤어!

 

양 : 뭐 권투에서 말하는 잽 스트레이트 훅 어퍼도 아니고 4가지 씩이나 있어? 자바에서는 array, 즉 배열밖에 없었는데 말야. 먼저 뭐가 있는데?

 

조 : 일단 리스트(List) 라는게 있어. List 는 학번, 이름 등 여러개의 데이터를 하나로 저장하는데 쓰여. 예를 들면 studentnumber = [] 하면 새로운 List 가 생기는거야.

 

양 : 자바에서 배열 지정할 때 쓰는 대괄호를 쓰는군. 자바에서는 String[] flops = {'Hazard', 'Pepe', 'Anthony','Richarlison'}; 하는 식으로 지정하는데, 파이썬은 어때?

 

조 : flops 는 아자르, 히샬리송 등으로 봐서 축구 먹튀들인거 알겠는데, String[] 은 뭐야?

 

양 : 아 먹튀들의 이름은 문자로 저장되니까 String 이라고 한거야.

 

조 : 파이썬은 그런 거 필요없어. 그냥 pi = ['원주율', 'π', 3.14, 'pi'] 하는 식으로 지정 안해줘도 그냥 저장해. 물론 숫자연산을 한다면 pi[2]*diameter 식으로 해야만 연산이란게 성립하겠지만. 심지어 List 안에 List 를 넣을 수 있어!

 

양 : 그건 또 뭐야?

 

양국남자가 축빠라서 난대없이 들어온 지루.

 

조 : 예를 든다면 giroud = ["Olivier Giroud", [12,18,9,9]] 라는 리스트가 있다고 해봐.

 

양 : 지루와 지루의 백넘버들이네. 

 

조 : 만일 내가 giroud[0][0] 라고 호출하면 첫번째 원소인 "Olivier Giroud" 의 첫번째 글자인 O 를 출력하게 되.

 

양 : 내가 아스날 시절 지루의 백넘버를 호출하고 싶어서 giroud[1][0] 하면 [12,18,9,9] 하면 12가 출력되고?

 

조: 그런 방식으로 2차원 리스트도 만들 수 있어. [[1,2,3,4,],[5,6,7,8],[9,10,11,12]] 하는 식으로 하면 1에서 12까지의 숫자로 3X4 리스트가 만들어지지 ㅎㅎ

 

양 : 그거는 자바하고 조금 비슷한 거 같아. 파이썬만의 다른 차별점이 또 있어?

 

조: 그 외에 파이썬은 음수 인덱싱을 제공한데. 뭐 난 자주 안써봐서 모르겠지만, list 의 마지막 원소를 호출하려면 list[-1] 식으로 끝에서부터 호출도 가능해. 아 데이터 사이언티스트라는데 형 리스트도 잘 못쓰나보네?

 

양: (참자) 아까 올리비에 지루에서 지루만 받고 싶으면 어떻게 하면 되는거야?

 

조: 그건 giroud[0][-1:-6] 으로 호출하면 얘가 'giroud' 값을 반환할거야. 이런 식의 인덱싱으로 호출은 물론 편집도 가능해. 게다가 insert 나 append 같은 함수들도 있어서 아마 자바같은 옛날 구식 언어에 비하면 편할거야.

 

양: 뭐 그런건 인터넷 치면 요즘 다 나오는 챗GPT 시대니 여기에다가는 적지 않고, 파이썬 사이트에 링크를 걸어두자고.

 

조 : 리스트랑 비슷한 거로는 튜플이 있어. 튜플은 ()소괄호로 지정해.

 

양 : (이녀석 기세가 올랐군) 튜플은 리스트랑 뭐가 다른데?

 

조 : 아까 리스트는 insert 나 append 같은 함수로 편집이 된다 했잖아?

 

양 : 그렇지?

 

조 : tuple 은 그게 안되.

 

넌 그냥 배열이지만 난 편집도 되는 배열이다! 나와 네놈은 상하관계에 있다!

양 : 그럼 튜플은 왜 만들어져있는데? 이거 뭔 원피스 상하관계도 아니고...

 

조: 선생님 말하기로는 튜플이 더 빠르다고 하더라고?

 

양 : 하긴 편집이 안된다 하면 메모리를 따로 지정해 줄 필요가 없겠네. 리스트는 아까 말한 연산용 메모리를 붙여줘야 겠지만. 지금 생각나는 용도로서는 내가 롤 관련 프로그램에서 ('top','jungle','mid','adc',support')하는 식으로 미리 만들어주면 그때 제깍제깍 호출해 줄 수 있겠군. 롤이 심각하게 대격변을 하지 않는 이상 저 포지션 분류는 유효할테니 말이야.

 

조 : 그거 괜찮은 방법이다. 난 활용방법 생각해보지는 못했는데. 튜플도 리스트 처럼 음수로 열람이 되고, 당연하지만. 아 근데 형. 나 곧 윔블던 볼건데 형 같이 볼래? 오늘 조코비치 경기하잖아.