전체 글
게시글 수
57개
개인적 메모·요약·정리·자료수집 블로그 😘
파이썬 컴프리헨션
파이썬list1 = [ x로나타낸표현식 for x in x가차례로가질값목록이터러블 ] list1 = [ x로나타낸표현식 for x in x가차례로가질값목록이터러블 if 조건 ] list1 = [ x랑y로나타낸표현식 for x in x가차례로가질값목록이터러블 if 조건 for y … ] 리스트, 집합, 딕셔너리 디스플레이에서; 요소를 일일이 나열하는 대신; 반복과 조건으로 계산된 값들을 넣는다. 학교 다닐 때 수학에서 집합을 표시하는 방법이라고 배운 것 중에 원소나열법과 조건제시법이 있었는데; 흔히 쓰는 [1,2,3]은 원소나열법이고 이건 조건제시법 같다. 컴프리헨션 for절: 반복할 요소 이런 식으로; 어떤 규칙이나 공통요소로 나타내지는 멤버들을 나열하고 싶을 때 l = [ 0**2, 1**2, 2**2, 3.. 2022.07.31. Kaum Kiridjohm파이썬 함수
파이썬def func(a, b, c='C'): print(a,b,c) func(1,2,3) # 1 2 3 func(1,2) # 1 2 C func(1, b='비', c='씨') # 1 비 씨 l = [1,2,3] func(*l) # 1 2 3 def add(x,y): return x+y print(add(2,3)) # 5 함수 파이썬의 함수 함수호출연산을 적용시킬 수 있는 콜러블형 객체 괄호() 붙여서 실행시킬 수 있다는 뜻. 파이썬의 실행 단위인 코드블럭의 일종 함수 정의 def 함수이름( 매개변수 0개이상 ) : 함수바디 함수 바디는 함수 정의 때 실행되지 않고 호출 때마다 실행된다. 이름이 같은 함수를 정의하면 에러는 안 나고 그냥 나중 것으로 덮어써진다. 변수도 새 값으로 걍 덮어써지잖아 매개변수 기본.. 2022.07.31. Kaum Kiridjohm파이썬 while문
파이썬i=0 # 실행 결과 while i < 4: # 0 print(i) # 1 i += 1 # 2 else: # 3 print('ELSE') # ELSE while문 한 번이라도 조건이 틀리기 전까지(표현식이 거짓이기 전까지) 같은 코드를 반복 실행한다. while 표현식: 표현식이 참일 동안 반복 실행될 문장 1개이상 while 표현식: 표현식이 참일 동안 반복 실행될 문장 1개이상 else: 표현식이 거짓일 때 한 번 실행될 문장 1개이상 do-while문은 딱히 없다. while True 해놓고 if 조건: break을 맨 마지막에 하면 그게 그거지 뭐. 파이썬 3.8부터 대입표현식innerLink_38이 생겼다. while 다음에 x := 표현식 식으로 표현식을 즉석에서 변수에 담아 쓸 수도 있습니다.. 2022.07.31. Kaum Kiridjohm파이썬 코딩새
파이썬import this 전통적으로 프로그래밍 언어들에서는 단어를 구분할 때 말고는 띄어쓰기나 들여쓰기는 그냥 보기 좋은 꾸밈일 뿐이었는데; 파이썬은 적절한 들여쓰기가 문법적으로 강제될 뿐 아니라 강제되지 않는 부분에서도 “이렇게 하시오” 하고 가이드를 내놓는다. 들여쓰기 개판 치는 놈들은 의자에 묶어놓고 한달동안 파이썬만 시켜야 한다. 아니 그래도 빈줄 개수 정도는 마음대로 하자고~~~~ 줄 기본적으로 한 줄당 한 문장 x = 1 y = x + 10 print(x) 세미콜론으로 한 줄에 여러 문장. 역슬래시로 여러 줄에 한 문장 한 줄에 여러 문장을 적을 때는 문장 구분할 때 세미콜론을 쓴다. x = 1; print(x) 한 문장을 여러 줄에 걸칠 때는 역슬래시를 쓴다. x = 'hello ' + \ 'w.. 2022.07.31. Kaum Kiridjohm파이썬 이름, 연결, 스코프
파이썬같이보면 좋은 글: 파이썬 변수innerLink_28 이름과 연결 이름은 이름공간(namespace)이라는 특별한 곳에 저장된다. 이름공간은 이름→객체 매핑이다. 파이썬의 대입은 사실 변수에 값을 저장한다기 보단; 그 값을 가진 객체와 이름 사이의 연결(이름이 객체를 가리킨다)을 만드는 것이다. 변수 사용 범위 코드블럭 파이썬 프로그램은 코드 블럭들로 구성된다. 코드블럭인 것들: 모듈 (최상위 코드블럭) 함수 정의 클래스 정의 if문, for문 등 복합문의 코드도 함수 정의, 클래스 정의와 마찬가지로 들여쓰기를 해서 보기엔 비슷해 보이지만; 얘넨 코드블럭은 아니다. 대화형 명령 하나 이름(변수) 종류 어디서 정의됐냐에 따라 내장이름 파이썬 설치하면 원래부터 있는 내장 함수, 내장 상수 등 전역이름 모듈 .. 2022.07.31. Kaum Kiridjohm파이썬 변수
파이썬x = 1 y = func(x) del x 컴퓨터과학이나 다른 언어들에서 변수라는 말을 쓰니까 “파이썬 변수”라고 할 뿐이지; 파이썬에는 변수라기보단 이름과 객체가 있다. 객체 파이썬은 모든 데이터를 객체로서 다룬다. 이름(식별자) 코드에서 그 객체를 쓰려고 부르는 이름 이름과 연결 파이썬에서 변수 x란; x에 해당하는 공간이 메모리에 주어지고 거기에 값이 저장되는 게 아니라; 이름공간 안에 x가 있고 x가 특정 객체를 가리키는 거다. 이름과 연결에 대한 자세한 내용은 여기innerLink_42 이름은 아무 객체나 가리킬 수 있으므로; 결국 언뜻 마치 변수에 자료형이 없는 것처럼 보일 수도 있다. (x=1 했다가 x='hello' 해도 됨) 그러나 객체에는 자료형 즉 클래스가 있는 게 맞다. 당연한 얘기.. 2022.07.31. Kaum Kiridjohm파이썬 비교연산
파이썬비교연산# 연산 결과로 논리값인 True, False를 낸다. 값비교 동등비교 A == B A와 B의 값이 같은가? A != B A와 B의 값이 다른가? (A == B의 반대의 결과.) 대소비교 A B A가 B보다 큰가? A B의 반대의 결과.) A >= B A가 B보다 크거나 같은가? (A < B의 반대의 결과.) nan과 수의 값비교는 False이다. 문자열의 값비교는 문자열의 내장함수 ord()를 써서 사전식으로 비교한다. 멤버십검사 A in B A가 B의 멤버인가? A not in B A in B의 반대의 결과. 여기서 not은 논리연산자 not이 아니고; not in이 한 연산자이다. B에는 리스트나 레인지같은 애들을 자주 넣는다. A, B가 문자열인 경우 A.. 2022.07.31. Kaum Kiridjohm파이썬 try문
파이썬try: 예외가 발생할지도 모르는 코드 except 예외: 해당 예외 발생 시 실행할 내용 except 예외 as 변수: 해당 예외 발생 시 실행할 내용 근데 예외 내용을 변수에 담는다 except: 아무 예외나 발생 시 실행할 내용 else: 예외 아니 발생 시 실행할 내용 finally: 예외발생 하든 말든 실행할 내용 except절은 여러 개 올 수 있다. 발생한 예외에 맞는 except절이 여럿 있어도 그들 중 첫 한 개만 실행된다. 예외 종류 지정하지 않는 except:는 가장 마지막에 온다. except절이 있어야 else절이 있을 수 있다. except절, finally절 둘 중 하나는 꼭 나와야 한다. 2022.07.31. Kaum Kiridjohm지도에 위치정보 표시 예제 (folium, 판다스)
창고 | 예제이 예제가 하는 일 folium 지도 만들기 화장실 정보 엑셀파일 불러오기 지도에 화장실 위치에 마커 추가 지도를 html 파일로 저장 화장실 정보 공공데이터를 파일로 받아놓은 걸 판다스로 읽고, folium으로 지도에 화장실 위치에 마커 표시 # 공중화장실(공공데이터)을 지도에 표시하기 import folium import pandas #(1) 지도 m = folium.Map(location=[35.8584309, 128.5520044], # 대구 zoom_start=13, width=750, height=500 ) #(2) 화장실 정보 엑셀파일 불러오기 # 파일 받는 곳: https://www.localdata.go.kr/lif/lifeCtacDataView.do data = pandas.read_e.. 2022.07.30. Kaum Kiridjohm파이썬 내장형 시퀀스
파이썬l = [10, 'ABC', (2, 3)] for x in l: print(x) 시퀀스 형 다른 언어들에서의 배열에 해당. 시퀀스형들은 모두 이터러블(멤버를 한 개씩 반환할 수 있는 객체)이다. for문에 for 변수 in 시퀀스 머 이렇게 넣어 쓰면 된다. 같이 보면 좋은 글: for문 리스트 list 가변 시퀀스. 리스트 생성 리스트 생성자 list(), list( 이터러블 ) 인자 이터러블과 같은 멤버와 그 순서인 리스트를 생성하고 반환. 리스트 디스플레이 [ 표현식, 표현식, 표현식, … ] 저것들을 멤버로 하는 리스트 생성 [ 컴프리헨션 ] 컴프리헨션 [] 빈 리스트 튜플 tuple 불변 시퀀스 튜플 생성 튜플 생성자 tuple(), tuple( 이터러블 ) 인자 이터러블과 같은 멤버와 그 순서.. 2022.07.20. Kaum Kiridjohm파이썬 논리연산
파이썬논리연산# not A A가 참이면 False, 거짓이면 True를 반환. A and B A가 참이면 B, 거짓이면 A를 반환. A or B A가 참이면 A, 거짓이면 B를 반환. and나 or 연산의 결과는 A, B 중 하나이지, 반드시 True나 False인 건 아니다. not 연산은 True나 False를 반환하는 게 맞다. 공식문서에 따르면 이런 식으로 a가 빈 문자열이면 기본값으로 'hello'를 준다든가 하는 식으로 쓸 수도 있다고 한다. greeting = a or 'hello' 우선순위 비교연산 > not > and > or > 조건표현식 2022.07.20. Kaum Kiridjohm구글 이미지 검색 결과 크롤링 (selenium)
창고 | 예제참고1: https://velog.io/@jungeun-dev/Python-%EC%9B%B9-%ED%81%AC%EB%A1%A4%EB%A7%81Selenium-%EA%B5%AC%EA%B8%80-%EC%9D%B4%EB%AF%B8%EC%A7%80-%EC%88%98%EC%A7%91 참고2: https://velog.io/@sangyeon217/deprecation-warning-executablepath-has-been-deprecated 참고1이 구버전이 되어서 그런지 안 돼서 참고2 등을 보며 수정했다. # 구글 이미지 긁어오기 from selenium import webdriver from selenium.webdriver.common.keys import Keys from selenium.webdrive.. 2022.07.19. Kaum Kiridjohm인자(인수), 매개변수 차이
개념과 철학인자, 인수, argument 함수를 호출할 때 넣는 값 생각해봐! ‘인’이 ‘원인’ 할 때 ‘인’이잖아. 그러니까 인자는 함수 결과의 원인(因)이 되는 녀석(子)인 거지. 그럴듯하쥐?? 매개변수, 파라미터, parameter 인자를 받아서 초기화되는, 함수 안에서 쓰이는 변수. 그러니까 매개“변수”이다. 그럴듯하쥬??function 함수( 매개변수 ){ // 함수 정의 …}함수(인자); // 함수 호출근데 이걸 헷갈려하는 사람이 많은 만큼, 실제로 말을 하다 보면 둘 중 어느 단어를 쓰든 말이 될 때가 많은 듯 ㅋ검색해보니까 인수, 매개변수는 확실한 거 같은데 인자는 검색결과 게시글에 따라 =인수라고도 해석되고 =매개변수라고도 하던데. 그래서 내가 잘못 알고있는 건가 하고 한국정보통신기술협.. 2022.07.07. Kaum KiridjohminnerHTML 편집과 appendChild() 차이
창고 | 예제elem.innerHTML += '어쩌구' 하는 게 document.createElement 하고 그걸 또 여러 함수로 힘들게 클래스 등 세팅 다 한 다음 마지막에 appendChild() 하는 것보다 훨씬 간편해서 appendChild가 쓸모가 있는 건가 했는데. 오늘 드디어 차이점을 발견했어요.자바스크립트에서 A 요소와 그 안에 있는 B 요소를 잡았다고 쳤을 때; A.innerHTML = '어쩌구' 해서 수정해버리면 그 다음엔 B를 수정하지 못하네요.아마 정확히는; A.innerHTML = '어쩌구' 했을 때 새로 생성된, B와 똑같이 생긴 새로운 요소가 문서 안에서 B 대신 자리하고 있어서; 그 다음에는 아무리 B를 조작해도 문서와는 상관 없게 되어버리는 듯.알고 보니까 당연한데. 근데 이 뻔한 걸.. 2022.07.06. Kaum Kiridjohm파이썬 가위바위보
창고 | 예제가위, 바위, 보를 각각 0, 1, 2에 대응시켰다. import random rsp = ('가위', '바위', '보') # 사용자에게서 입력받기 me = int(input('가위(0) 바위(1) 보(2) 중 하나 입력')) # 컴퓨터의 입력 (0,1,2 중 랜덤 정수) com = random.randint(0, 2) # 나와 컴퓨터의 입력을 각각 출력해보기 print('나:', rsp[me], ' / 컴퓨터:', rsp[com]) # 승패 판정 if com == me: print('비겼습니다.') elif (com + 1) % 3 == me: # 승패관계: 0 < 1 < 2 < 0 print('이겼습니다.') else: print('졌습니다.') 2022.06.16. Kaum KiridjohmNode.js 리다이렉션
프로그래밍 잡메모/Node.jsHTTP 상태 코드를 301, 302, 303 중 하나로 하고; 패킷 헤더의 Location 속성에 리다이렉션 할 주소를 넣어 응답한다. /* 주소 '/'에 들어오면 '/login'으로 리다이렉션 */ if( req.url == '/' ){ res.writeHead( 301, { 'Content-Type': 'text/html; charset=utf-8', 'Location': '/login' } ); res.end(); } 2022.06.15. Kaum KiridjohmNode.js 웹소켓 간단 예제
프로그래밍 잡메모/Node.js스펙서버: Node.js클라이언트: HTML 파일 딸랑 하나이 예제가 하는 짓서버를 켠 뒤 클라이언트용 html파일을 열면클라이언트는웹소켓을 연다.서버에게 "안녕하세요" 메시지 보낸다.서버는메시지를 받으면받은 메시지를 콘솔에 표시 후"반갑습니다"를 보낸다.클라이언트는 받은 메시지를 콘솔에 표시한다.예제 코드서버터미널에서 다음을 입력하여 ws 모듈 설치npm install ws서버 코드const MyWebSocket = require('ws');// 웹소켓 모듈 불러오기const wss = new MyWebSocket.Server({ port: 8080 });// 서버 만들기wss.on('connection', function connection( ws ){// 연결이 생기면 ws의 속성들 정의 ws.. 2022.06.13. Kaum Kiridjohm
728x90