http://keycode.info/ 에서 키코드 int 확인


function ignore(e) {
    e = e || window.event;

    if (e.keyCode == '123') { // F12
	    // F12 버튼 비활성화
        e.returnValue=false;
        e.cancel = true;
    }
	
	if (e.keyCode == '27') { // ESC

	}
}


저작자 표시 비영리 변경 금지
신고


사이트 접속하자마자 자동 재생됨 (순서 랜덤), HTML5 audio(id=player) 위젯 삽입 필요


HTML5 기본 위젯뿐만 아니라 커스텀 플레이 버튼이 있을 경우를 위함 (오디오 소스 플레이하고 재생 중인 곡 정보 얻기)


예) toast + FAB


playinginfo  현재 재생하는 곡 정보

shuffle 함수 링크 (stackoverflow - Jeff)


var player;

// 오디오 파일 리스트
var audioFiles = [
   'music/1.mp3',
   'music/2.mp3',
   'music/3.mp3'
];

//방문할 때마다 순서 다르게
function shuffle(a) {
   var j, x, i;
   for (i = a.length; i; i--) {
	   	j = Math.floor(Math.random() * i);
	   	x = a[i - 1];
	   	a[i - 1] = a[j];
	   	a[j] = x;
   }
}

// 현재 재생 곡 정보 manually 불러오기
var playinginfo;
var lists = [
	'제목1 - 아티스트1',
	'제목2 - 아티스트2',
	'제목3 - 아티스트3'
];

function preloadAudio(url) {
   var audio = new Audio();
   audio.addEventListener('canplaythrough', loadedAudio, false);
   audio.src = url;
}

var loaded = 0;
function loadedAudio() {
   loaded++;
   if (loaded == audioFiles.length){
      // 전부 로드됐으면 플레이
      init();
   }
}

function play(index) {
   player.src = audioFiles[index];
   getSRC();
   player.play();
}

var i = 0;
function init() {
   play(i);

   player.onpause = function() {
       // 커스텀 플레이 버튼 조작 (toPlay Icon)
   };
   player.onended = function() {
       next();
   };
   player.onplay = function() {
	   if (!player.seeking) {
		   // 커스텀 플레이 버튼 조작 (toPause Icon)
	   }
   };
}

function next() {
   i++;
   if (i >= audioFiles.length) {
      i = 0;
   }
   play(i);
}

function getSRC() {
   switch (player.src) {
   case "사이트주소/music/1.mp3": //ex) ttt.com/music/1.mp3
	   playinginfo = lists[0]; // 제목1 - 아티스트1'
	   break;

   case "사이트주소/music/2.mp3":
	   playinginfo = lists[1];
	   break;
   case "사이트주소/music/3.mp3":
	   playinginfo = lists[2];
	   break;
   default:
	   playinginfo = "알 수 없음";
	   break;
   }
}

// 아래 부분은 onload 부분에 추가
// 오디오 목록 셔플
shuffle(audioFiles);

// player 아이디를 가진 오디오 ex) 
player = document.getElementById('player');
for (var i in audioFiles) {
	preloadAudio(audioFiles[i]);
}
// onload 끝



저작자 표시 비영리 변경 금지
신고

※ matplotlib 설치 필요




import networkx as nx
import matplotlib.pyplot as plt

G = nx.Graph()

# 원하는 파라미터 이름 = 실수 (**kwds)
G.add_edge(1, 2, weight=5)
G.add_edge(2, 3, weight=3)
G.add_edge(3, 4, weight=2)
G.add_edge(2, 4, weight=1)
G.add_edge(1, 4, weight=0.5)

# 아래는 그래프로 그리는 법
pos=nx.spring_layout(G)
nx.draw(G, pos=pos, with_labels=True)

# edge 라벨은 weight 값을 가져온다.
labels = nx.get_edge_attributes(G,'weight')

nx.draw_networkx_edge_labels(G,pos,edge_labels=labels)

# 이 py 파일 위치하는 곳에 G.png 저장
plt.savefig("G.png")
plt.show()


저작자 표시 비영리 변경 금지
신고

※ matplotlib 설치 필요


Directed Graph 일 경우, 두 노드에서 굵은 노드 있는 쪽이 방향 가르키는 쪽

ex) 아래 그래프, 노드1노드2양방향성 // 노드2노드3노드2 -> 노드3만 존재




import networkx as nx
import matplotlib.pyplot as plt

G = nx.DiGraph()

# 노드 = 원, 엣지 = 선 (add_node를 안하고 add_edge(1,2)을 해도 노드 1, 2는 자동 생성됨
G.add_nodes_from([1, 2, 3, 4])
G.add_edges_from([(1, 2), (2, 1), (2, 3), (2,4)])

# 라벨 표시안하려면 with_labels 파라미터 지우거나 False
nx.draw(G, with_labels=True)

# 이 py 파일 위치하는 곳에 사진으로 저장
plt.savefig("G.png")

plt.show()


저작자 표시 비영리 변경 금지
신고



a = [1, 2, 3]

a[:] = []  # 결과: a = [], a[:]는 a[0:len(a)]와 같음

del a[:] # 결과: a = []

a.clear()  # 결과: a = [], Python 3.3+


3가지 방법

저작자 표시 비영리 변경 금지
신고