[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2chのread.cgiへ]
Update time : 05/09 18:56 / Filesize : 160 KB / Number-of Response : 749
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

くだすれPython(超初心者用) その4



1 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 19:25:51 ]
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますが、
お礼は Python の布教と初心者の救済をお願いします。

エラーを解決したいときはエラー表示や環境を略さずに書き込んで下さい。
騙りが頻発しています。質問する方は一時的なトリップをつけることを検討して下さい。
次スレは >>950 辺りで

前スレ
くだすれPython(超初心者用) その3
pc12.2ch.net/test/read.cgi/tech/1232055225/

関連スレ
Pythonのお勉強 Part33
pc12.2ch.net/test/read.cgi/tech/1240678081/

449 名前:デフォルトの名無しさん mailto:sage [2009/07/18(土) 22:14:17 ]
フローチャートを書けばすぐわかることだろうに

450 名前:デフォルトの名無しさん mailto:sage [2009/07/18(土) 22:17:00 ]
flo'u tʃɑ':(r)t

451 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 00:14:08 ]
クラスの中で変数を宣言したいのですが、

self.unko = 0

で、いいんでしょうか?

452 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 00:15:18 ]
はいそれで大丈夫です
外部アクセスを防ぎたい場合はself.__unkoとしてください

453 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 00:31:21 ]
ありがとうございます!

外部アクセスを防ぐ、ということは宣言した後予期せぬ状況で中身が書き換わるのを防ぐ、ということでしょうか?

454 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 01:45:38 ]
no

455 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 02:03:46 ]
うーんどういうことなんでしょう。
内容を事ある毎に変化させていくパラメータとして使いたいので普通に宣言すれば良いと思っているのですが、それで問題ないでしょうか?

456 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 02:18:34 ]
no

457 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 02:21:19 ]
>>455
余計なことを言って混乱させてすいませんでした
self.__unko
のように先頭に__を付けると外部アクセスのできないいわゆるprivate変数の様な感じになります



458 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 02:36:23 ]
C言語で言うとstaticをつけたりつけなかったりという話なのでしょうか?


459 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 04:27:42 ]
no

460 名前:デフォルトの名無しさん mailto:sage [2009/07/21(火) 20:34:26 ]
python楽しいお

461 名前:デフォルトの名無しさん [2009/07/21(火) 22:20:03 ]
python 面白いよね
ショボイのしかまだ書けないけど、(きっと今後もw)
日々の作業が楽で、楽しくなるようなコードが書けるまで勉強するのだ
インタラクティブシェルだけで勉強してたら、ショボーンだけど、ファイルに書き出しとかになると
ちょっとプログラムって感じで楽しい

462 名前:デフォルトの名無しさん mailto:sage [2009/07/22(水) 11:39:00 ]
Python、神のごときライブラリが色々あって面白いすね。

463 名前:デフォルトの名無しさん mailto:sage [2009/07/22(水) 12:51:38 ]
python組み込みのhash関数って完全ハッシュ関数ですか?
衝突しませんか?

464 名前:デフォルトの名無しさん mailto:sage [2009/07/22(水) 14:25:58 ]
>>462
新参の俺にbeautifulsoup意外詳しく

465 名前:デフォルトの名無しさん mailto:sage [2009/07/22(水) 15:00:29 ]
_mssql、VisualBasic.netでADO.netとか何だったんだろうと。
pyExcelerator、Excelネイティブのファイルが簡単に出来たですよ。
reportlab、PDFが(ry
Barcode for Python、bzr branch lp:barcodesforpython/beta、バーコードが(ry
最近、データベースからの書類生成は全部Pythonで書いてます。

466 名前:デフォルトの名無しさん mailto:sage [2009/07/22(水) 16:45:56 ]
searchとmatchの挙動の違いを詳しく解説してくれる方いませんか?

467 名前:デフォルトの名無しさん mailto:sage [2009/07/22(水) 16:52:14 ]
re.match("foo", s) == re.search("\Afoo", s)



468 名前:デフォルトの名無しさん mailto:sage [2009/07/22(水) 18:29:48 ]
match(r'foo',unko)のようにrオプション付けるとどういう効果があるのでしょうか?

469 名前:デフォルトの名無しさん mailto:sage [2009/07/22(水) 18:34:06 ]
www.python.jp/doc/release/lib/module-re.html

470 名前:デフォルトの名無しさん mailto:sage [2009/07/22(水) 18:34:22 ]
>>468
www.python.jp/doc/release/tut/node5.html#SECTION005120000000000000000

471 名前:デフォルトの名無しさん mailto:sage [2009/07/22(水) 18:43:29 ]
findを忘れないで

472 名前:デフォルトの名無しさん mailto:sage [2009/07/22(水) 19:00:55 ]
よくわかりました!
ありがとうございます''

473 名前:デフォルトの名無しさん mailto:sage [2009/07/22(水) 23:42:42 ]
>>463
なわけないだろ。

474 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 09:00:30 ]
>>473
明確に記載されている資料があればお願いします

475 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 09:06:50 ]
www.python.jp/doc/release/lib/module-hashlib.html

476 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 09:08:54 ]
どのソースに書いてあるかドキュメントに書かれていればいいんだがなー
組み込み関数だとgrepしてもノイズ多くてゲンナリ

477 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 09:11:08 ]
memo
ttp://mail.python.org/pipermail/python-dev/2003-June/036556.html
ttp://stackoverflow.com/questions/793761/built-in-python-hash-function
ttp://www.unixuser.org/~euske/doc/python/python-lisp-j.html



478 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 09:23:01 ]
>>475
それじゃないww

479 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 09:29:32 ]
help(hash)したら書いてあるだろうが

480 名前:476 mailto:sage [2009/07/23(木) 10:22:52 ]
>>479
俺へのレスじゃなくて>>463へのレス?
やってみたけど、どちらにしても書いてなかった

481 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 10:28:17 ]
Summer holidays

482 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 10:47:47 ]
機能性文盲はつらいよ

483 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 10:52:46 ]
いいからやってみろよ
上で求められてるような情報は出てこないから

484 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 11:00:18 ]
求められてるのって、完全hashかどうかだよな?
> Return a hash value for the object. Two objects with the same value have
> the same hash value. The reverse is not necessarily true, but likely.
明快に書いてあるよな、「逆は真とは限らない」って。

485 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 11:08:54 ]
hash()の入力の値域と出力の値域を比較すれば見当がつくじゃまいか
出力は整数なんだから衝突せずにすむ入力の範囲はせいぜいそれと同程度だ

Python 2.6.2 (r262:71605, Apr 14 2009, 22:40:02) [MSC v.1500 32 bit (Intel)] on
win32
>>> hash(0)
0
>>> hash(1)
1
>>> hash(-1)
-2
>>> hash(-2)
-2

486 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 11:39:32 ]
>>484
完全ハッシュって双方向に一意なんだっけ
って複数のキーで同一の値が取れたら完全ハッシュじゃないもんな

487 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 11:41:55 ]
>完全ハッシュって双方向に一意なんだっけ

no

>って複数のキーで同一の値が取れたら完全ハッシュじゃないもんな

no



488 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 12:00:32 ]
えっ

489 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 12:42:36 ]
>> 完全ハッシュって双方向に一意なんだっけ
>
> no
>

no

>> って複数のキーで同一の値が取れたら完全ハッシュじゃないもんな
>
> no

no

490 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 12:44:34 ]
> no
no

なんだよおまえらww

491 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 12:55:19 ]
> なんだよおまえらww
neet

492 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 13:22:51 ]
なんなんだこのスレ

493 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 13:23:49 ]
衆議院議員をめざしている人が、
本当のところどう思っているのか、
きいてみよう。
ttp://moderator.appspot.com/?hl=ja#16/e=9df89
"名前を連呼するだけの選挙宣伝カーを、「スパム認定」して禁止しませんか?"
Lambda  

494 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 16:24:25 ]
>>474
Python 自体のソースを見るのが確実かと。
svn.python.org/view/python/trunk/Python/bltinmodule.c?revision=73776&view=markup
の builtin_hash() が組み込み関数の hash() に相当する。
svn.python.org/view/python/trunk/Objects/object.c?revision=73076&view=markup
に PyObject_Hash() の定義がある。

495 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 23:07:08 ]
ソースやドキュメントなんて読むまでもないだろ。

もし仮に完全ハッシュだとしたとしたら
論理的に考えてhash関数の引数はシーケンスでないとならない。
そうなってないんだから当然hashは完全ハッシュじゃない。
たまには頭使わないと腐るぞ。

496 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 23:10:25 ]
そもそも「ハッシュ」の意味さえ知っていれば、あんな疑問は湧かないはず

497 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 23:31:09 ]
>>495
> 論理的に考えて
Python的に考えて、でしょ
型によって全く扱いが違う関数なんて
他の言語ではありふれてるわけで。
スレタイ読める?



498 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 23:35:19 ]
例えば数値なら桁毎のシーケンスの生成なんて簡単なことだし

499 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 23:43:40 ]
スレタイ読めるなら
いちいち「Python的に」なんて書かなくても補完できるはずなのにね。

500 名前:デフォルトの名無しさん mailto:sage [2009/07/24(金) 00:12:47 ]
>>498
桁毎のシーケンスって何?
整数型のbit数毎に異なるテーブルを用意する"なら"
整数型の完全ハッシュが作れるってこと?
条件を絞れば完全ハッシュなんていくらでも作れるに決まってるだろ?
たとえば同一性を判定するためだけのハッシュとか、
ある種のFSでファイル名をキーとするハッシュとか。

自分こそスレタイ読めるなら、型によってとか他の言語ではとか
勝手に条件付け加えないでくれ。

501 名前:デフォルトの名無しさん mailto:sage [2009/07/24(金) 00:15:53 ]
釣り針でかいなw

502 名前:デフォルトの名無しさん mailto:sage [2009/07/24(金) 00:18:49 ]
そんなもんがあるとして、少なくとも、引数の範囲とかも引数にしないと無理なんじゃまいか?

503 名前:デフォルトの名無しさん mailto:sage [2009/07/24(金) 00:27:01 ]
引数の範囲?bitwidth?

504 名前:デフォルトの名無しさん mailto:sage [2009/07/24(金) 00:28:27 ]
朝生はじめるよー

505 名前:デフォルトの名無しさん mailto:sage [2009/07/24(金) 19:38:43 ]
    ┌─┐
    │●│
    └─┤
   _   ∩
  ( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘      おっぱい!おっぱい!


506 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 15:51:39 ]
Output folder: C:\DOCUME~1\user\LOCALS~1\Temp
Install dir for actual installers is C:\DOCUME~1\user\LOCALS~1\Temp
"Target CPU handles SSE2"
"Target CPU handles SSE3"

XPにnumpyインストールしようとしたらこうなったんだけどどうしたらいいんだ?




507 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 16:04:23 ]
あーインストーラー保存せずにそのまま実行したらできました



508 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 16:22:10 ]
おれ、C:\temp\downloadsになんでもダウンロードして実行する癖あるんだけど、
俺の場合そうはならなかった気がするな?

509 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 22:07:06 ]
Mac OS X + Python2.5です
ファイルの出力なのですが、
f = open('hoge', 'w')
f.write('line 1\n')
としても改行されません・・・
なにか間違って理解しているのでしょうか?

510 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 22:10:45 ]
> write( str)
>
> 文字列をファイルに書き込みます。戻り値はありません。
> バッファリングによって、flush() または close() が呼び出されるまで
> 実際にファイル中に文字列が書き込まれないこともあります。

511 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 22:13:29 ]
失礼しました。
close() はしているのですが、
ファイルには
line 1\n
と出力されてしまいます・・・

512 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 22:17:15 ]
f = open('hoge', 'w')
f.write('line 1\n')
f.close()

こちらでは再現できない。

513 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 22:19:47 ]
原因が少しわかりました・・・
PyDev(Eclipse)を使っていたのですが、\がバックスラッシュにならないようですorz
コンソールからvi で編集しなおして\(バックスラッシュ)で改行されました。
これはPyDevの挙動がオカシイんですかね、それとも仕方ないんでしょうか?

514 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 22:27:11 ]
>>509
脊髄反射でバッファリングだと思ってしまった。ごめん

macのyen signには癖があるって話を聞いたことがある
% od -tx1 hoge して結果を貼ってみて

515 名前:511 mailto:sage [2009/07/26(日) 22:29:39 ]
解決しました
Macに不慣れなので知らなかっただけで、通常に¥キーを押すと円記号、バックスラッシュを入力する場合はOption + ¥キーを押すようです。
ターミナルの場合は強制的にバックスラッシュなのかな?

516 名前:デフォルトの名無しさん [2009/07/26(日) 22:35:46 ]
pythonで皆さんどんなことしてるんですか?
具体的に何をしてるか教えて下さい。

517 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 23:40:35 ]
pass



518 名前:デフォルトの名無しさん mailto:sage [2009/07/27(月) 00:10:59 ]
ナニしてるんだろうねぇ

519 名前:デフォルトの名無しさん mailto:sage [2009/07/27(月) 01:55:52 ]
>>516
お仕事に使えるよ?
ユーティリティ色々、前はVB.NETだったけど今は大概Pythonで書いてる。
この間は、ftpサーバーの状態をチェックして警報ショートメッセージ出すのを書いた。

520 名前:デフォルトの名無しさん mailto:sage [2009/07/27(月) 02:39:53 ]
Windowsアプリ作ってるよ。
Thinkpadとか、ツール類がPython使ってるから検索するとPython関連ファイルが
沢山入ってる。
バージョン古いし、ツール類の大半要らないからアンインストールして自分で最新の
Python入れるけど。

521 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 09:48:56 ]
Python のコマンドラインシェルや、iPython 等で
タブ幅(tabstop)を指定するにはどうすればよいですか?


522 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 16:54:50 ]
a = [' ','a',' ','b',' ','c',' ']
のように空白を要素に持つlistがあります.
このlistから空白要素を全部削除するのに,
for a in range(a.count(' ')):
a.remove(' ')
と書いているのですが,もっとスマートに書けないでしょうか.


523 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 17:01:33 ]
a = [i for i in a if a != " "] とか?

524 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 17:02:34 ]
a = [' ','a',' ','b',' ','c',' ']
print filter(lambda x: x != ' ', a)

or

a = [' ','a',' ','b',' ','c',' ']
print [x for x in a if x != ' ']

525 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 17:02:52 ]
[e for e in a if e != ' ']
filter(lambda x: x != ' ', a)

526 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 17:04:35 ]
>>524
ケコーンしようぜ

527 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 17:05:28 ]
filterって関数があるんですね.ありがとうございました.



528 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 17:06:31 ]
全然スマートにみえないんだが気のせいかな?

529 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 17:22:53 ]
リストそのものの書き換えと、リストから要素を除いた新しいリストを作るののどちらをやりたいんだ?

530 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 17:25:32 ]
>>528
filterとかlambaとかスマートというか自己満足だよね

531 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 17:27:06 ]
lambdaはともかくfilterはできる子

532 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 17:33:19 ]
>>531
>filterはできる子

そういうことにしたいのですね。

533 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 17:36:59 ]
全然スマートにみえないんだが気のせいかな?

534 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 17:38:18 ]
全然スマートにみえないんだが気のせいかな?

535 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 17:44:34 ]
reduce(lambda x, y: x + ([y] if y != ' ' else []), ' a b c ', [])

536 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 17:45:22 ]
reduceって関数があるんですね.ありがとうございました.

537 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 17:52:20 ]
[i for i in ''.join(a).split(' ') if i]

or

filter(lambda x: x, ''.join(a).split(' '))




538 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 18:01:52 ]
filter(' '.__ne__, [' ','a',' ','b',' ','c',' '])

539 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 18:17:50 ]
それいいね

540 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 18:53:54 ]
一行野郎め

541 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 20:18:26 ]
Tkinterで書いたものをwxで書き直してます。DnDが要件にあったので。
wxは初めてです。

wxってウィジェットの位置とかサイズを指定しますが、
あれって環境によってフォントサイズが変わったりした場合、
重なったり、端が切れちゃったりしないんですかね。

TKライクに並べて行けば自動的にサイジングしてくれる
配置のやり方があれば教えていただけないでしょうか。

sizerでどうにかするんだろうとは思うのですが、具体的なや
り方に行き当たっていない状態です。

あと、TKでいうところのLabelFrameってwxにはないんでしょうか。
現状StaticBoxとStaticTextで似たようなことしてます。

よろしくお願いします。

542 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 20:20:36 ]
XRCed

543 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 20:21:18 ]
Sizer

544 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 21:13:43 ]
>>540
なんてすばらしい日本語訳かと思ったら
こんなに市民権を得てるとは。。。
www.google.co.jp/search?q=%88%EA%8Ds%96%EC%98Y

545 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 22:19:10 ]
python 一行野郎ってジャンルはまだ無いのな

546 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 22:56:33 ]
インデントのおかげで一行で書くのはむずかしいからな

547 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 01:06:56 ]
>>544
いつ頃、どこで生まれた訳なんだろうな。
俺が初めて知ったのは『Effective Perl』の邦訳版で、これが10年前の本だけど。



548 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 01:12:39 ]
Rubyしかないよなあ

549 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 02:46:47 ]
>>516
C言語で書いたシミュレーションプログラムに Python で GUI を付けたり、シミュレーションの
一部で新しいことを試したいとき(例えばある方程式を解く時にニュートン法が有効かどうか確か
めたいときなど)に Python で試作プログラムを書いてみたりしています。

先日、線形計画問題を解く必要があって Python でシンプレックス法を書きました。線形計画問題
というのは、「製品Aには材料Sが3個、材料Tが2個必要で、製品BにはSが1個、Tが4個必要です。
Aは100円、Bは150円で売れます。手元にはSが40個、Tが30個あります。売上金を最大にするには
AとBを何個ずつ作るのが最適でしょうか?」というような問題のことです。この場合、未知の変数は
Aの個数とBの個数の2つなので手作業で解いてもいいのですが、未知の変数が増えるとたいへん
なので適当な計算方法で解きます。シンプレックス法はその1つです。で、Python の float 型で
計算したら計算誤差のせいか問題によっては計算が収束しませんでした。そこで、アルゴリズム
本体はそのままで、入力値(シンプレックス表の要素)のデータ型を fractions.Fraction クラス
に変えたところ、うまく解けるようになりました。Fraction クラスは有理数(分子と分母が整数で
表された分数)を実装したクラスで、float に比べて遅いですが計算誤差がありません。アルゴ
リズムはそのまま変更なしで、入力値のデータ型を変えただけで収束が改善されたので感激しま
した。他の言語(たとえばC言語)でも計算に使うデータ型を変えられるようにプログラムを作る
ことはできますが手間がかかります。その点で Python ははるかに手軽で強力だと思いました。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<160KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef