Harigami
ログイン
Harigamiは、ログイン不要のコード共有サービスです。コードの投稿後に発行されるURLでコードを共有できます。
PythonやRubyなど一部の言語は、投稿後にオンラインで実行することもできます。
誰でも無料で使えて、広告もありません。コードレビューやスニペットの代わりに使ってみてください。


詳細設定
+
anonymous タイトルなし
Java
class Test extends StatelessWidget {
  final void Function(String value) callback;

  Test(this.callback);
  @override
  Widget build(BuildContext context) {
    return TextField(
      onChanged: callback,
    );
  }
}
  • 0
  • 1
anonymous タイトルなし
Java
class Test extends StatelessWidget {
  void Function(String value) callback;
  @override
  Widget build(BuildContext context) {
    return TextField(
      onChanged: callback,
    );
  }
}
  • 0
  • 0
anonymous タイトルなし
Python
class Protein:
    def __init__(self, protein_name, sequence):
        self.protein_name = protein_name
        self.sequence = sequence

class Peptide(Protein):
    def __init__(self, protein_name, sequence, start, end):
        super().__init__(protein_name, sequence)
        self.peptide_name = ''
        self.start = start
        self.end = end
    def set_peptide_name(self):
        self.peptide_name = self.protein_name + '[' + str(self.start) + '-' + str(self.end) + ']'

peptides = []

for pro in proteins:
    for start, end in itertools.combinations(range(len(pro.sequence)+1), 2):
        print(pro.protein_name)
        print(pro.sequence[start:end])
        peptides.append(Peptide(pro.protein_name, pro.sequence[start:end], start+1, end))

for pep in peptides:
    pep.set_peptide_name()

class modPeptide
  • 0
  • 1
anonymous Adruino IDE経由でDigiSparkのパリピセッションベース
PlainText
#include <Adafruit_NeoPixel.h>
#define BUTTON_PIN   2
#define PIXEL_PIN    0    //セッションベースに仕込んだGRB LED接続ピン
#define PIXEL_COUNT 12    //LEDの数=12個
Adafruit_NeoPixel strip = Adafruit_NeoPixel(PIXEL_COUNT, PIXEL_PIN, NEO_GRB + NEO_KHZ800);    //NeoPoxelの諸処理

bool oldState = HIGH;  //直前のボタン状態保持
int showType = 0; //ボタン押下回数カウンタ
int x = 0;

void setup() {
  pinMode(BUTTON_PIN, INPUT_PULLUP);
  strip.begin();  //必須
  strip.show();   // Initialize all pixels to 'off'
  //↓↓↓起動後の(割とどうでもいい)演出↓↓↓
  colorWipe(strip.Color(0, 0, 255), 0);//青
  for(int i=0;i<3;i++){
    colorWipe(strip.Color(0, 0, 0), 50);//黒(off)でワイプ
    delay(500);
    colorWipe(strip.Color(32, 64, 0), 50);//赤橙でワイプ
    delay(500);
  }
  colorWipe(strip.Color(0, 0, 0), 50);//黒(off)でワイプ
  delay(500);
  colorWipe(strip.Color(3, 2, 5), 0);//弱い白でワイプ
}

void loop() {
  bool newState = digitalRead(BUTTON_PIN);  //ボタン状態の取得

  if (newState == LOW && oldState == HIGH) {//ボタン押下によるHighからLowへの変化検知
    delay(20);  //押して離す僅かな間の時間稼ぎ
    newState = digitalRead(BUTTON_PIN);   //delayを経てなおLowなら「押された」とみなす
    if (newState == LOW) {
      showType++;                         //「押された」ならshowType変数を増やす
    }
      if (showType == 1){
        for(int i =0;i<5;i++){rainbowCycle(0);}
        for(int i =0;i<1;i){
        rainbow(50);
        if(digitalRead(BUTTON_PIN) == LOW){
          showType++;i++;
          colorWipe(strip.Color(127, 0, 0), 0);//緑でワイプ
          colorWipe(strip.Color(1, 1, 1), 50);
          continue;
          }
        }
       }
      if (showType >= 2){
        showType=0;                       //showType変数が一定値以上なら0にリセット
    }
  }

  // Set the last button state to the old state.
  oldState = newState;
}

//LED点灯スイッチ関数================================================================
//switchで制御しているためパターン毎にループがなされない問題あり
void startShow(int i) {
  switch(i){
    case 0: colorWipe(strip.Color(255, 255, 255), 50);    // White
            break;
    case 1: colorWipe(strip.Color(255, 0, 0), 50);  // Green
            break;
    case 2: colorWipe(strip.Color(0, 255, 0), 50);  // Red
            break;
    case 3: colorWipe(strip.Color(0, 0, 255), 50);  // Blue
            break;
    case 4: theaterChase(strip.Color(127, 127, 127), 50); // White
            break;
    case 5: theaterChase(strip.Color(127,   0,   0), 50); // Green
            break;
    case 6: theaterChase(strip.Color(  0, 127,   0), 50); // Red
            break;
    case 7: theaterChase(strip.Color(  0,   0, 127), 50); // Blue
            //rainbow(20);
            break;
    case 8: colorWipe(strip.Color(  0,   0,   0), 50);
            //rainbowCycle(5);
            break;
    case 9: theaterChaseRainbow(1);
            break;
  }
}
//LED点灯パターン関数郡==================================================================================
void colorWipe(uint32_t c, uint8_t wait) {
  for(uint16_t i=0; i<strip.numPixels(); i++) {
      strip.setPixelColor(i, c);
      strip.show();
      delay(wait);
  }
}
void rainbow(uint8_t wait) {
  uint16_t i, j;

  for(j=0; j<256; j++) {
    for(i=0; i<strip.numPixels(); i++) {
      strip.setPixelColor(i, Wheel((i+j) & 255));
    }
    strip.show();
    delay(wait);
  }
}
void rainbowCycle(uint8_t wait) {
  uint16_t i, j;

  for(j=0; j<256; j++) {
    for(i=0; i< strip.numPixels(); i++) {
      strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) & 255));
    }
    strip.show();
    delay(wait);
  }
}
void theaterChase(uint32_t c, uint8_t wait) {
  for (int j=0; j<10; j++) {  //do 10 cycles of chasing
    for (int q=0; q < 3; q++) {
      for (int i=0; i < strip.numPixels(); i=i+3) {
        strip.setPixelColor(i+q, c);    //turn every third pixel on
      }
      strip.show();
     
      delay(wait);
     
      for (int i=0; i < strip.numPixels(); i=i+3) {
        strip.setPixelColor(i+q, 0);        //turn every third pixel off
      }
    }
  }
}
void theaterChaseRainbow(uint8_t wait) {
  for (int j=0; j < 256; j++) {     // cycle all 256 colors in the wheel
    for (int q=0; q < 3; q++) {
        for (int i=0; i < strip.numPixels(); i=i+3) {
          strip.setPixelColor(i+q, Wheel( (i+j) % 255));    //turn every third pixel on
        }
        strip.show();
       
        delay(wait);
       
        for (int i=0; i < strip.numPixels(); i=i+3) {
          strip.setPixelColor(i+q, 0);        //turn every third pixel off
        }
    }
  }
}

uint32_t Wheel(byte WheelPos) { //rainbow関数で使用
  WheelPos = 255 - WheelPos;
  if(WheelPos < 85) {
   return strip.Color(255 - WheelPos * 3, 0, WheelPos * 3);
  } else if(WheelPos < 170) {
    WheelPos -= 85;
   return strip.Color(0, WheelPos * 3, 255 - WheelPos * 3);
  } else {
   WheelPos -= 170;
   return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0);
  }
}
  • 0
  • 1
anonymous タイトルなし
C
int digitalPin0 = 3;
int digitalPin1 = 5;
int digitalPin2 = 6;
int digitalInputPin0 = 7;
int analogInputPin0 = 3;

void setup(){
  pinMode(digitalPin0, OUTPUT);
  pinMode(digitalPin1, OUTPUT); 
  pinMode(digitalPin2, OUTPUT);
  pinMode(digitalInputPin0, INPUT);

 Serial.begin(9600);
}

int b;

void loop(){
  int d = digitalRead(digitalInputPin0);
  int e = analogRead(analogInputPin0);
  digitalWrite(digitalPin0,LOW);
  digitalWrite(digitalPin1,LOW);
  digitalWrite(digitalPin2,LOW);
  b = 0;

  while(d == 0){
    b++;
    if(b == 20){
      digitalWrite(digitalPin0,HIGH);
      int e = analogRead(analogInputPin0);
      // if(e>=1)ですか?
      if(e > 1)
        // b=0はbに0を代入、b==0はbが0かどうか判定するだけでbの値は変わらない
        b == 0;
    
    }else if(b == 40){
      digitalWrite(digitalPin1,HIGH);
      int e = analogRead(analogInputPin0);
      if(e > 1)
        b == 0;
    }else if(b == 60){
      digitalWrite(digitalPin2,HIGH);
      int e = analogRead(analogInputPin0);
      if(e > 1)
        b == 0;
    }
  }
}
  • 0
  • 1
anonymous タイトルなし
Python
>>> import pickle
>>> l=[1, 2, "three", "four"]
>>> ps=pickle.dumps(l)
>>> print ps
(lp0
I1
aI2
aS'three'
p1
aS'four'
p2
a.
>>> pl=pickle.loads(ps)
>>> print pl
[1, 2, 'three', 'four']
  • 0
  • 1
anonymous ペンギンさん
Python
# 1
n = int(input("何羽?:"))
penguin_data = {}

# 2
for i in range(n):
    name = input(str(i+1)+"羽目の名前:")
    print("ε( ミ' ・)>")
    slide = float(input("何m滑った?:"))
    print("_ε( ミ' ・)>♪")
    penguin_data[name] = slide

# 3
# 辞書からスライド距離だけ取り出してリスト化
slide_list = list(penguin_data.values())

slide_mean = sum(slide_list) / n
slide_max = max(slide_list)
slide_min = min(slide_list)

print("平均は " + str(slide_mean) + " m/羽です.")
print("最大値は " + str(slide_max) + " m, 最小値は " + str(slide_min) + " mです.")

# 4
upper = (slide_min+3*slide_max)/4
lower = (slide_max+3*slide_min)/4
# リスト内包表記を使った
center_penguins = [k for k,v in penguin_data.items() if lower <= v <= upper]

if center_penguins:
    print("真ん中付近にいるのは" + ', '.join(center_penguins) + ", の" + str(len(center_penguins)) + "羽です.")
else:
    print("真ん中付近にいるのは, いません.")
  • 0
  • 0
anonymous VBA で 辞書型 (連想配列, HashMapともいう)を使う例
VBA
Option Explicit
Sub sample()
  Dim V4 As String
  Dim V5 As Object
  Dim V6 As Object
  Dim LastRow As Long
  Dim i As Long
  Dim key As String
  ' 画面更新を一時停止
  Application.ScreenUpdating = False
  ' 検索用の辞書
  Set V5 = CreateObject(“Scripting.Dictionary”)
  Set V6 = CreateObject(“Scripting.Dictionary”)

  ' 4列目の最終行を取得
  LastRow = Sheet(2).Cells(Rows.Count,4).End(xlUp).Row
  ' 検索用辞書を作成
  For i = 1 To LastRow
    V4 = Sheet(2).Cells(i,4)
    If V4 <> "" Then
      V5.Add V4, Sheet(2).Cells(i,5).Value
      V6.Add V4, Sheet(2).Cells(i,6).Value
    End If
  Next

  ' Sheet(1)の最終行を取得
  LastRow = Sheet(1).Cells(Rows.Count,1).End(xlUp).Row
  For i = 1 To LastRow
    key = Sheets(1).Cells(i, 5).Value
    If V5.Exists(key) Then '辞書に検索語が存在するか確認
      Sheets(1).Cells(i, 6).Value = V5.Item(key)
      Sheets(1).Cells(i, 7).Value = V6.Item(key)
    End If
  Next
  ' 画面更新を再開
  Application.ScreenUpdating = True
end Sub
  • 0
  • 1
(  ◜ᴗ¯) タイトルなし
C
#define N 3
#define EPS 1.0e-8

/* 第26行で定義している余因子を求める関数を宣言し, calc_determinant関数でこの関数を使用できるようにする */
double calc_cofactor_determinant(int n, double matrix[][n], int row, int column);

/* n*n行列の行列式を余因子から求める */
double calc_determinant(int n, double matrix[][n]) {
	int i, j;
	if (n < 3) {
		return n == 2 ? matrix[0][0] * matrix[1][1] - matrix[0][1] * matrix[1][0] : 0;
	} else {
		double determinant = 0;
		for (i = 0; i < n; i++) {
			determinant += matrix[i][0] * calc_cofactor_determinant(n, matrix, i, 0);
		}
		return determinant;
	}
}

/* n*n行列matrixのrow, column成分の余因子を求める */
double calc_cofactor_determinant(int n, double matrix[][n], int row, int column) {
	int i, j, add_index_i = 0, add_index_j = 0;
	double cofactor[n - 1][n - 1];
	for (i = 0; i < n; i++) {
		if (i == row) { // column行の成分は無視する
			continue;
		}
		add_index_j = 0;
		for (j = 0; j < n; j++) {
			if (j == column) { // row列の成分は無視する
				continue;
			}
			cofactor[add_index_i][add_index_j] = matrix[i][j];
			add_index_j++;
		}
		add_index_i++;
	}
	return ((row + column) % 2 == 0 ? 1 : -1) * calc_determinant(n - 1, cofactor);
}

/* n*n行列matrixの逆行列inversedを求める */
int calc_inverse_matrix(double matrix[][N], double inversed[][N]) {
	int i, j;
	double determinant = calc_determinant(N, matrix); // matrixの行列式
	if (determinant == 0) { // 行列式が0であった場合はエラー処理
		printf("determinant is 0");
		return 0;
	}
	/* ji成分の余因子から逆行列のij成分を求める */
	for (i = 0; i < N; i++) {
		for (j = 0; j < N; j++) {
			inversed[i][j] = calc_cofactor_determinant(N, matrix, j, i) / determinant;
		}
	}
	return 1; // 逆行列が正常に作られたことを示す
}
  • 0
  • 0
anonymous タイトルなし
Python
f13form.html

<html>
<head>
<meta http-equiv=”content-type” content=”text/html;charset=utf-8″> </head>
<body>
<form action=”/cgi-bin/find13f.py” method=”GET”> 13日の金曜日が何日あるかを探します。<br /> 西暦を入力してください :
<input type=”text” name=”year” />
<input type=”submit” name=”submit” />
</form>
</body>
</html>

find13f.py

#!/usr/bin/env python
# coding: utf-8

import cgi
from datetime import datetime

html_body = u”””
<html><head>
<meta http-equiv=”content-type” content=”text/html;charset=utf-8″>
</head>
<body>
%s
</body>
</html>”””

content=”

form=cgi.FieldStorage()
year_str=form.getvalue(‘year’, ”)
if not year_str.isdigit():
content=u”西暦を入力してください”
else:
year=int(year_str)
friday13=0
for month in range(1, 13):
date=datetime(year, month, 13)
if date.weekday()==4:
friday13+=1
content+=u”%d年%d月13日は金曜日です” % (year, date.month)
content+=u”<br />”

if friday13:
content+=u”%d年には合計%d個の13日の金曜日があります” % (year, friday13)
else:
content+=u”%d年には13日の金曜日がありません”

print (“Content-type: text/html;charset=utf-8″)
print ((html_body % content).encode(‘utf-8′))

f13form.py

#!/usr/local/bin/python
# coding: utf-8

import cgi
from datetime import datetime

html_body = u”””
<html>
<head>
<meta http-equiv=”content-type” content=”text/html;charset=utf-8″ />
</head>
<body>
<form method=”POST” action=”/cgi-bin/find13f.py”>
西暦を選んでください:
<select name=”year”>
%s
</select>
<input type=”submit” />
</form>
%s
</body>
</html>”””

options=”
content=”

now=datetime.now()
for y in range(now.year-10, now.year+10):
if y!=now.year:
select=”
else:
select=’ selected=”selected”‘
options+=”<option%s>%d</option>” % (select, y)

form=cgi.FieldStorage()
year_str=form.getvalue(‘year’, ”)
if year_str.isdigit():
year=int(year_str)
friday13=0
for month in range(1, 13):
date=datetime(year, month, 13)
if date.weekday()==4:
friday13+=1
content+=u”%d年%d月13日は金曜日です” % (year, date.month)
content+=u”<br />”

if friday13:
content+=u”%d年には合計%d個の13日の金曜日があります” % (year, friday13)
else:
content+=u”%d年には13日の金曜日がありません”

print (“Content-type: text/html;charset=utf-8¥n”)
print ((html_body % (options, content)).encode(‘utf-8’))
  • 0
  • 1