반응형

Python 29

[파이썬 기초] 유사 딕셔너리 defaultdict() 활용법

defaultdict()는 딕셔너리를 만드는 dict클래스의 서브클래스이다. 작동하는 방식은 거의 동일한데, defaultdict()는 인자로 주어진 객체(default-factory)의 기본값을 딕셔너리값의 초깃값으로 지정할 수 있다. 숫자, 리스트, 셋등으로 초기화 할 수 있기때문에 여러 용도로 사용할 수 있다. 기본적인 작동방식을 살펴보면 >>> from collections import defaultdict # 외부함수이기 때문에 import 해야한다. >>> int_dict = defaultdict(int) >>> int_dict defaultdict(, {}) # 디폴트값이 int인 딕셔너리 위와 같이 설정을 하면 값을 지정하지 않은 키는 그 값이 0으로 지정된다. >>> int_dict['k..

IT 2023.02.08

[python] 웹 스크래핑 코드 ( 아주 짧은거 )

파이썬을 알고나서 좋은점은 간단한 프로그램들을 쉽게 만들어볼 수 있다는겁니다. 웹에 강의노트를 좀 받아야 할 일이 생겼는데, 페이지를 클릭해보니, 줄바꿈도 없이 화면가득 텍스트만 나옵니다. 멘붕이죠. 불연듯 웹스크래핑을 해서 줄바꿈기호만 넣어줘도 낫겠다는 생각이 들더군요. 그래서 위와 같이 소스코드를 작성해 봤습니다. 민망한 코드긴 하지만 30분만에 작성한것 치고는 그래도 생각한것만큼 돌아가네요. 점점 나아지리라고 믿습니다.

카테고리 없음 2020.01.28

[파이썬 기초] 함수

함수는 코드 재사용을 위해 주로 쓰인다. 여러번 반복해서 처리하는 작업들을 하나의 함수로 만들어놓고, 그 작업이 필요할때마다 함수를 호출해서 처리하는 식이다. 파이썬 지원하는 함수를 살펴보자. len() 함수는 파이썬에서 시퀀스(문자열, 리스트.. 등)의 갯수를 알려주는 함수다. 사용법은 다음과 같다. 이런 함수 없이 매번 인자의 갯수를 세야 한다면, 많은 코드들이 필요할 것이다. 파이썬에서 함수를 만드는것은 아주 쉽다. 파이썬에서 함수를 제대로 쓰는것은 아주 어렵다. 오늘은 파이썬에서 아주 중요한 요소인 함수에 대해 알아보자. * 함수정의 def 함수명(매개변수): 표현식 return return값 구분 필수/선택 설명 def 필수 함수생성 명령어 함수명 필수 함수가 어떤일을 하는지 표현할 수 있는 이..

IT 2019.04.11

[파이썬 기초] 셋 컴프리헨션

파이썬 자료구조인 셋을 컴프리헨션을 이용해 생성해보자. 사용법은 다음과 같다. { 표현식 for 표현식 in 순회가능객체 } 얼핏보면 아래 딕셔너리 컴프리헨션과 형식이 비슷하다. { 표현식 : 표현식 for 표현식 in 순회가능객체 } 표현식 중간에 콜론(:)이 있는것을 제외하고는 양식이 비슷하다. 헷갈리지 말자. 예제1) 1 부터 9까지 홀수의 셋 1. range(10)을 통해 1~9까지의 수를 n에 할당 2. if 문으로 n%2 == 1 인 값만을 추출 3. 추출된 값으로 셋 생성 예제2) 셋 생성 시 같은 값을 여러번 부여하면 어떻게 될까? 리스트로 [1,2,2,3,3,3,4,4,4,4] 와 같이 값을 부여한다면... 실행해보자 당연히 리스트는 중복값을 허용하지 않기 때문에 {1,2,3,4} 라는 ..

IT 2019.04.10

[파이썬 기초] 딕셔너리 컴프리헨션

앞서 리스트 컴프리헨션을 이용하여 여러가지 리스트 자료구조를 만들어보았다. 딕셔너리도 컴프리헨션으로 간단하게 생성 할 수 있다. 수식은 다음과 같다. {키 : 값 for 표현식 in 순회가능객체(list, set, range() 등) } if문을 이용하여 값을 걸러내고 싶다면 다음과 같이 사용한다. {키 : 값 for 표현식 in 순회가능객체(list, set, range() 등) if (앞의 표현식을 이용한 조건) } 수식이 너무 어려워 보이니 예제를 살펴보자. 예) 먼저 키가 정수이고, 값이 정수의 제곱인 딕셔너리를 만들어보자. 편의상 0~4까지만 해보자. 결과값은 아래와 같이 출력될 것이다. 결과 딕셔너리 = {0:0, 1:1, 2:4, 3:9, 4:16} 1) for문 이용 2) 딕셔너리 컴프리헨..

IT 2019.04.09

[파이썬 기초] range() 함수로 여러가지 숫자 리스트 만들기

파이썬에서 숫자리스트를 만들때 range() 함수를 이용하면 쉽게 만들 수 있습니다. range()함수의 사용법은 다음과 같습니다. range(start, stop, step) 슬라이스와 비슷하게 동작합니다. start는 시작값, stop은 종료값, step은 증가 값이 됩니다. 슬라이스처럼 stop값은 제외됩니다. stop-1 값까지 만들어지죠. 예제를 보도록 하겠습니다. 어떻게 출력되는지 나타내기 위해서 리스트 생성함수 list() 를 사용해서 리스트를 만들었습니다. 1. range() 에 인자를 하나만 준 경우 위와 같이 range(3) 처럼 하나의 값만을 인자로 주면, start 값은 0, step은 1 로 자동설정 됩니다. 주어진 값은 stop 값으로 쓰이는거죠. 그래서 결과값이 [0, 1, 2..

IT 2019.04.03

[파이썬 기초] 여러 시퀀스를 같이 반복(순회)하기 - zip()

for 문을 이용하면 리스트와 같은 시퀀스를 순회할 수 있다고 했었다. 그러면 어러개의 리스트를 같이 순회할 수는 있을까? 당연히 있다. zip() 함수를 사용하면 여러 시퀀스를 한꺼번에 순회하면서 처리할 수 있다. 아래 프로그램을 살펴보자. last_name에는 성이 3개 있고, first_name에는 이름이 3개가 있다. 이것을 zip()으로 묶어 for문에 넣어주면 아래와 같이 각각 쌍으로 출력이 된다. last_name[0] + first_name[0] last_name[1] + first_name[1] last_name[2] + first_name[2] 아주 간단하게 여러 시퀀스를 반복해서 사용할 수 있다. 그러면 프로그램에서 리스트의 갯수가 다를 경우에는 어떻게 될까? 아래 프로그램을 살펴보면..

IT 2019.04.02

[파이썬 기초] python 명령 실행 시 버전 3이 실행되게 만드는 방법

파이썬 2버전이 기본적으로 깔려있는 컴퓨터에서 파이썬3버전을 설치했습니다. 터미널에서 "python" 이라고 프로그램을 실행시키면 2버전이 기본적으로 실행됩니다. 파이썬 3버전을 실행시키려면 "python3" 이라고 실행을 해야하죠. 전 3버전을 쓰고 싶어서 무식하게 계속 "python3"로 실행시키고 있었습니다. 근데 3버전을 기본으로 실행시키는게 너무 간단하더라구요. .bash_profile 파일을 열어서 alias만 설정해주면 됩니다. 한번 해볼까요? 1. vim으로 .bash_profile 파일을 엽니다. vim .bash_profile 2. .bash_profile에 alias 설정을 합니다. alias python="python3" 3. 설정을 저장하고 나와서 다시 파이썬을 실행해 봅니다. 아..

IT 2019.02.23

[파이썬 기초] for문으로 순회하기

파이썬에서 리스트에 있는 내용 전체를 출력해야 할 때가 있습니다. 지금까지 배운 방법으로는 while문을 이용해 돌아가면서 리스트의 내용을 출력 할 수 있을것 같습니다. 간단한 예를 살펴보겠습니다. weeks라는 변수에 아래와 같이 요일이 입력돼 있습니다. weeks = ['월', '화', '수', '목', '금', '토', '일'] while문을 이용해서 각각의 항목을 출력해 보겠습니다. 출력값은 아래와 같이 나옵니다. while문에서는 변수 i를 인덱스로 이용해서 리스트의 값을 출력하고 있습니다. 중간의 len함수는 weeks에 몇개의 값이 들어있는지 알려줍니다. len(weeks)의 값은 7이 나옵니다. weeks의 경우 값이 7개이기 때문에 0부터 시작하는 인덱스의 최종값은 6이됩니다. weeks..

IT 2019.02.12

[파이썬 기초] while 반복문

while은 특정한 구역(들여쓰기가 되어 있는)을 반복할 수 있는 명령어다. 우리는 프로그램에서 반복문을 사용함으로써 코드를 간결하고 명확하게 작성할 수 있다. 구구단을 출력하는 프로그램을 만들어보자. 9단까지 하면 힘들 수 있으니, 2단만 만들어보자. 반복문이 없을때 어떤식으로 구현할 수 있을까?? print('2*1=',2) print('2*2=',4) print('2*3=',6) print('2*4=',8) print('2*5=',10) print('2*6=',12) print('2*7=',14) print('2*8=',16) print('2*9=',18) 2*1= 2 2*2= 4 2*3= 6 2*4= 8 2*5= 10 2*6= 12 2*7= 14 2*8= 16 2*9= 18 이렇게 한줄 출력할 때..

IT 2019.01.04
반응형