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


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

Pythonのお勉強 Part 24



1 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 01:27:53 ]
Python オフィシャルサイト
www.python.org/
日本Pythonユーザ会
www.python.jp/Zope/
FrontPage - Pythonのお勉強
python.rdy.jp/
前スレ
pc11.2ch.net/test/read.cgi/tech/1201073019/l50

◆関連スレッド
Microsoft IronPython 1.0
pc11.2ch.net/test/read.cgi/tech/1157686822/
Python の宿題ここで答えます Part 1
pc11.2ch.net/test/read.cgi/tech/1153585095/
2ch検索: [python]
find.2ch.net/?BBS=ALL&TYPE=TITLE&STR=python

◆関連リンク
Python 日本語ドキュメント - Pythonistaのお友達
www.python.jp/doc/release/

Pythonのバイブル的書籍
www.amazon.co.jp/dp/4797341815

その前編
www.amazon.co.jp/dp/4797341815


522 名前:デフォルトの名無しさん [2008/03/08(土) 16:24:34 ]
  | .| /./  /      |   | _,,,,||,,,l.,,_ ト      /  | _ |    .|   /
.  | | .| |  l      .| .,-'|.l  .|l .| `|. l     '  /´ /    /   /
  | | |.|  .|      , |´ | .|  | _|,_ l .|      ./  ''`ト  ./  /
  | | |.|  |       |  .| |_,,l-,─-.,_、_ |     /   .λl,/   /
.  |. |. ||  |       .| | /::::l  ヽ `'' |   / ,  ,.ミ,|´|   ./
,,,__.| .| ヘ .|        | .|/ |:i::::::〉., ノl  | /  .//  ∨| /
  `'' ‐ 、l |        .|||l'l:|:|l:::::`':::::i´||  ''    /   ...:::::l..''
      .`ヽ、       |:| ヾl.ヾ::::::::::| .||        :::::::::  l
        .\_    -''lヾ ヘ:、.ヘ;;_;ノ ノレ            .l
          .ヾ=,,,_   .ヘ  ,ヾ_,,=..''´....      _,,,   /
           ヽ .i'`''‐--.〉''´  .ヽ::::::::  _,,, -‐'''´:::::l ./.|      ゲロゲロ!!
.\          ヽ`ニ /     l.   /:::::::::::::::::::::::/ i''ヘ .l
  `ヽ         .l-‐''l      /   .l:::::::::::::::::_;;-ヘ l ヽ ヘ
   ./.`iヽ       .|ヽ|     ./ ,,,,,,,_.ゞ,,, -‐''ヽ. |.| .| ヾ.、.ヽ
  / /|.| ヽ      .| .|    /ヽ     /:::::ヾ .| ,l '| .l.l '|ヽ.、.ヽ
// /./.|,, -'''''''''''''''-.、.'-<    .|  ヽ   /:::::::::lト''´ .| | | .i.| .ヾ.、.ヽ
/ / /./        ヽ,.`   .l   ヽ,'ノ/ ヾ_;;;l.l   |/ .l l |  ヾ.、lヘ
  ./ .//l          i    |    .ヾ   |:::::|.|  .|' l//   i.|| i.|
スクリプト稼働チュウ!

523 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 16:27:06 ]
ちょMonty Python てありなの?w

524 名前:デフォルトの名無しさん [2008/03/08(土) 16:27:20 ]
  | .| /./  /      |   | _,,,,||,,,l.,,_ ト      /  | _ |    .|   /
.  | | .| |  l      .| .,-'|.l  .|l .| `|. l     '  /´ /    /   /
  | | |.|  .|      , |´ | .|  | _|,_ l .|      ./  ''`ト  ./  /
  | | |.|  |       |  .| |_,,l-,─-.,_、_ |     /   .λl,/   /
.  |. |. ||  |       .| | /::::l  ヽ `'' |   / ,  ,.ミ,|´|   ./
,,,__.| .| ヘ .|        | .|/ |:i::::::〉., ノl  | /  .//  ∨| /
  `'' ‐ 、l |        .|||l'l:|:|l:::::`':::::i´||  ''    /   ...:::::l..''
      .`ヽ、       |:| ヾl.ヾ::::::::::| .||        :::::::::  l
        .\_    -''lヾ ヘ:、.ヘ;;_;ノ ノレ            .l
          .ヾ=,,,_   .ヘ  ,ヾ_,,=..''´....      _,,,   /
           ヽ .i'`''‐--.〉''´  .ヽ::::::::  _,,, -‐'''´:::::l ./.|      ゲロゲロ!!
.\          ヽ`ニ /     l.   /:::::::::::::::::::::::/ i''ヘ .l
  `ヽ         .l-‐''l      /   .l:::::::::::::::::_;;-ヘ l ヽ ヘ
   ./.`iヽ       .|ヽ|     ./ ,,,,,,,_.ゞ,,, -‐''ヽ. |.| .| ヾ.、.ヽ
  / /|.| ヽ      .| .|    /ヽ     /:::::ヾ .| ,l '| .l.l '|ヽ.、.ヽ
// /./.|,, -'''''''''''''''-.、.'-<    .|  ヽ   /:::::::::lト''´ .| | | .i.| .ヾ.、.ヽ
/ / /./        ヽ,.`   .l   ヽ,'ノ/ ヾ_;;;l.l   |/ .l l |  ヾ.、lヘ
  ./ .//l          i    |    .ヾ   |:::::|.|  .|' l//   i.|| i.|
スクリプト稼働チュウ! @ 5

525 名前:デフォルトの名無しさん [2008/03/08(土) 16:27:51 ]
  | .| /./  /      |   | _,,,,||,,,l.,,_ ト      /  | _ |    .|   /
.  | | .| |  l      .| .,-'|.l  .|l .| `|. l     '  /´ /    /   /
  | | |.|  .|      , |´ | .|  | _|,_ l .|      ./  ''`ト  ./  /
  | | |.|  |       |  .| |_,,l-,─-.,_、_ |     /   .λl,/   /
.  |. |. ||  |       .| | /::::l  ヽ `'' |   / ,  ,.ミ,|´|   ./
,,,__.| .| ヘ .|        | .|/ |:i::::::〉., ノl  | /  .//  ∨| /
  `'' ‐ 、l |        .|||l'l:|:|l:::::`':::::i´||  ''    /   ...:::::l..''
      .`ヽ、       |:| ヾl.ヾ::::::::::| .||        :::::::::  l
        .\_    -''lヾ ヘ:、.ヘ;;_;ノ ノレ            .l
          .ヾ=,,,_   .ヘ  ,ヾ_,,=..''´....      _,,,   /
           ヽ .i'`''‐--.〉''´  .ヽ::::::::  _,,, -‐'''´:::::l ./.|      ゲロゲロ!!
.\          ヽ`ニ /     l.   /:::::::::::::::::::::::/ i''ヘ .l
  `ヽ         .l-‐''l      /   .l:::::::::::::::::_;;-ヘ l ヽ ヘ
   ./.`iヽ       .|ヽ|     ./ ,,,,,,,_.ゞ,,, -‐''ヽ. |.| .| ヾ.、.ヽ
  / /|.| ヽ      .| .|    /ヽ     /:::::ヾ .| ,l '| .l.l '|ヽ.、.ヽ
// /./.|,, -'''''''''''''''-.、.'-<    .|  ヽ   /:::::::::lト''´ .| | | .i.| .ヾ.、.ヽ
/ / /./        ヽ,.`   .l   ヽ,'ノ/ ヾ_;;;l.l   |/ .l l |  ヾ.、lヘ
  ./ .//l          i    |    .ヾ   |:::::|.|  .|' l//   i.|| i.|
スクリプト稼働チュウ! @ 6

526 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 18:37:37 ]
test

527 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 18:59:03 ]
>>523
まあ広川さんもなくなったしな。

とかなんとかいっちゃったりして。

528 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 19:24:05 ]
荒らし来てるじゃん

529 名前:デフォルトの名無しさん [2008/03/08(土) 20:48:54 ]
まあここまでは俺が作ったpythonスクリプトで生成された人工知NOが自演してたんだがな

530 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 20:59:53 ]
うほ、これWii動かしてんの?



531 名前:デフォルトの名無しさん [2008/03/08(土) 21:04:29 ]
('A`)ウィ

532 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 21:07:17 ]
値読むのは出来てたみたいだけど、入力するのもできるのかなぁ・・・、
まあ、出来てもうれしくないか・・・

533 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 22:01:41 ]
IDLEのエディタでプログラムを更新したあとF5押してもシェルの方に反映されないんだけど何で?

534 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 22:13:59 ]
ごめん、何か反映されてた

535 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 00:49:28 ]
おまえらつまんねぇよ。

面白い奴らはみんな松本に行ってる証拠だな。
氏ねよカども。

536 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 00:52:34 ]
Py3.0って日本語識別子使えるんだね。

なんかすごい危険な予感が。。。
全角()とか全角:とかが識別子に含まれてたらもどうしようもないな。

def 関数:読み取る():
 return input(">>")
def 関数:表示する(文字列:メッセージ):
 print 文字列:メッセージ
変数:文字列:メッセージ = 関数:入力()
関数:表示する(変数:文字列:メッセージ)

とかっていう気持ち悪いのがまかり通るようになる

537 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 00:53:54 ]
そういえば以前識別子に日本語使えないからってPython導入の許可が下りなかった人がいたな
よかったね

538 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 00:54:31 ]
>>535 おとといぐらいまでに面白いレス本当にあった?

539 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 02:19:19 ]
>>536
VBでそんな悪夢を垣間見たことがあるんだが……まさか……orz

540 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 02:32:12 ]
松本かっこよす
デブいけどwww.memelo.org/motocrash5.jpg



541 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 02:35:42 ]
開始するとは
アプリケーション“Finder”について

542 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 02:39:29 ]
bbs.exet.nu/gore/src/1201289908681.jpg

543 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 02:46:00 ]
>>540
janeで見る限り、交通事故?
たぶんグロ画像。

>>542
よく分からない白と茶色の塊が落ちてる。
たぶん汚物画像だと思う。

544 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 02:53:17 ]
しょうがねえ、俺がわざわざポップアップしてみてやったよ。
>>540がバイクの事故でバイクがぐちゃぐちゃ。2人死亡。
>>542はよく見ても良く分からん。人が燃やされてるのか???

545 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 03:03:24 ]
そう。人がコンクリの路上で燃えてる

546 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 03:36:02 ]
motocrashとgoreやし、なんとなく判るやろ

547 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 12:42:11 ]
なんだか著しく堕スレになったなぁ

548 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 12:43:22 ]
そうか、もう春なのか…。

549 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 15:24:47 ]
>>544

>>540 のは一人じゃないかな
上半身と下半身が別々の場所に転がってるように見える



550 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 16:04:19 ]
わざわざ解説されても困る



551 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 16:06:43 ]
グロ画像いらない。
わざわざ人に見せようとするのって心の病気だろ。

552 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 16:12:46 ]
たかがネットで何を

553 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 17:03:04 ]
Windows で Python を使ってみようと思うのですが、
インストール先としては C:\Python25 がでふぉなんだけど
これを変えるといろいろと後で困りますか?
たとえば C:\Program Files\Python25 とか。
たしかにスペースが入っていてマズそうなんですが。

554 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 17:04:39 ]
Vistaでその位置にあると困るかも知れない

555 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 17:12:29 ]
os.path.hogehoge でアクセスしている分には問題ないと思うよ


556 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 17:25:17 ]
XPだし、とりあえずやってみます、というかインスコ完了。
で、また質問君なんですが、これでテキストデータ処理する
スクリプト書いたとして、処理系をまるごと USB メモリに放り込んで
持ち歩くことって可能なんでしょうか?

学校のパソコンで実験データを処理したいのですが、
ネカフェにあるPCのようにがちがちにファイルシステム
のパーミッションつーかACLが閉じられてて、自分の My Documents
以下以外には何も置けないのです。Docuemnt and Settings\自分の名前
直下の他のフォルダやファイルはドメインログオンの
ログオンスクリプトで抹消されてしまいます。

教師いわくExcelの授業でやったろ!Excel使えExcelらしいんですが、
Office 2003 しか入れてくれないくせに実験データ10万行以上
あるよプギャーお前実際に生徒にやらせる前に自分で試してないだろ
プギャー理科と情報の教師で情報交換してないだろプギャー
というかExcelの使い方教えるなら分析ツールの回帰分析とか
ちゃんと数学的に教えろよ数学の教師兼だろプギャープギャープギャー

結局ネットで調べてどっかの大学の授業資料読んだほうがいいじゃんorz

557 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 17:31:01 ]
試してないけど Portable Python ってのがあるよ
ttp://www.portablepython.com/
人柱よろしこ

558 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 17:31:20 ]
telnetしてサーバのpython使う

559 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 17:36:18 ]
>>557
おお、面白そう、試してみます。
>>558
たぶん学校の外にtelnetとかsshとか出て行けないです。

今眺めてたらなんで tcl/tk が・・・
かなり厨房のころにLinuxのカーネルをコンパイルしようと
したときに tcl/tk ベースのGUIを使ったような気が。

560 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 18:06:22 ]
>ちゃんと数学的に教えろよ数学の教師兼だろプギャープギャープギャー

ある一線を超えたら、教官から何か教えてもらえると思わないほうがいい



561 名前:553 mailto:sage [2008/03/09(日) 18:14:51 ]
なんと IronPython なるものもあるみたいっすね
別に.NET好きってわけじゃないけど Visual C++
は普段から使ってるんで操作性がいいならデバッグまでは
IronPython 使って同じスクリプトを実行は python.exe
(pythonw.exeはコンソールウィンドウが出ないだけ?)
という手もあるのかなぁとか思ってます。

562 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 18:19:38 ]
最低限python.exeとpythonXX.dllとmsvcランタイムがあれば動くよ

ライブラリ検索パスをレジストリから取得するのでセットアップしてない状態だと
python.exeと同じディレクトリとpythonXX.zipくらいしかパスが通ってないと思う。
以下のファイルをpython.exeと同じディレクトリに置けば普通に使える
C:\Python25\DLLs\*
C:\Python25\Lib\*
C:\Python25\tcl (これはtcl使ってないからわかんね)

関連づけとかはまあ適当に

563 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 18:22:11 ]
というか、学校の宿題をネットカフェのPCでやろうととてることには誰も言及しないのはなぜだ。

564 名前:553 mailto:sage [2008/03/09(日) 18:31:32 ]
>>563
エカフェでやろうとしてないっす〜
学校のPCがリブートのタビに初期化される仕組みが
ネカフェのと似てるって書いただけっす。
家にあるのは Sempron で組んだ XP SP2 なマシンですよ。
せっかく64ビットOKな世代のSempronにしたのにWindowsは
32ビットでなんか悲しいです。

565 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 19:14:19 ]
あとあれだ、py2exeでバイナリ化 > ポータブルになる

566 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 20:09:58 ]
Python本体
Win32com
py2exe


567 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 21:59:46 ]
Pythonフォルダをコピーして適当なところにペーストし、
c:\/windows/system32/ にある msvc*71.dll をPython.exe と同じフォルダに
置けばどんな環境でもそのまま動く
(別途インストールした Python ライブラリももちろんそのま使える)
パスがをわざわざ通すのが面倒なら、バッチファイルを作ればいい

Python .\hoge.py
PAUSE

と書いたテキストファイルを hoge.bat としておけば、
パス通すとか面倒な事しなくても
ダブルクリックしただけで hoge.py が動く。ファイル名前にある .\ を忘れない事。
PAUSE というのは、スクリプトで例外が発生したときに
トレースバックが表示された瞬間にアプリケーションが終了して
窓が閉じてしまうのを防ぐためのおまじない

568 名前:553 mailto:sage [2008/03/09(日) 23:26:47 ]
皆さんありがとうございます。
ところで本家から落としたWindows版のバイナリを使わせてもらっているのですが、
Pythonってコメント中にはマルチバイト文字って無理でしょうか?
マルチバイト文字と言ってもUTF-8なのですが。


569 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 23:31:04 ]
>>563
日本語で
すが読めないんですか

570 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 23:34:17 ]
>>568
何も問題なし
ただし、環境によっては(たとえWindowsでも)ソースコードの1行目に
#coding: UTF-8
とか書いておかないと、実行しようとしたときに文字コードエラーが起きる





571 名前:553 mailto:sage [2008/03/09(日) 23:37:18 ]
コメントで指定する方法があるんですね。
コマンドラインオプションで指定する方法も探して見ます。

572 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 00:15:43 ]
>571
ttp://www.python.jp/doc/nightly/tut/node4.html#SECTION004230000000000000000



573 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 10:59:07 ]
pythonでCP51932の文字は扱えますか?

574 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 11:07:11 ]
>573
ttp://www.python.jp/doc/nightly/lib/standard-encodings.html

575 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 11:27:28 ]
>>574
dクス

576 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 12:21:34 ]
スレのレベルが上がったような気がする。
合宿が終わったからか?

577 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 12:36:32 ]
おまえのレベルが下がったんだよ

578 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 14:15:21 ]
>>577
ゴメン、意味ワカンネ

579 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 15:24:25 ]
日本語読解能力レベルも下がったんだな

580 名前:デフォルトの名無しさん [2008/03/10(月) 16:49:50 ]
すばらしい
py3.0で日本語識別子試してみたけど、全角記号はちゃんとはじかれる!
これで安心して日本語プログラムできますな



581 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 17:39:58 ]
>>579
「読解能力レベル」ってデコレータをデコレーションする、みたいなもんか?

582 名前:デフォルトの名無しさん [2008/03/10(月) 19:02:05 ]
site-packages/sitecustomize.py で

import sys
sys.setdefaultencoding('utf-8')

ってやればソースコード中にエンコードしていを書かなくても
utf-8 でコメントとか書きまくれるかと思ったんだけど,
だめなんでしょうか.

583 名前:デフォルトの名無しさん [2008/03/10(月) 19:18:28 ]
一応対話的に起動した後で
import sys
sys.getdefaultencoding()
とすると utf-8 と表示されるんですが,

python hage.py ←UTF-8なコメントを含んでいる

と実行すると non-ascii が含まれてる癖に
エンコーディング方法が指定されてないぜ!死ね.
と怒られます.


584 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 19:30:15 ]
>>583
>>570
sys.getdefaultencoding()はunicode(somestring)したときに参照される
なんにしろ相互に変換するときはきちんと把握すること

585 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 20:40:56 ]
{set/get}defaultencoding とソースの文字コードは無関係


586 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 20:44:59 ]
たとえば
SJISのファイルを読んでUNICODEでコンソールに出力するプログラムをUTF-8のソースで書くとこのようになります



587 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 20:47:19 ]
│  ↑
└─┘
おらっしゃあぁぁ!!!
 ∩∧ ∧
 ヽ( ゚Д゚)
   \⊂\
    O-、 )〜
      ∪


588 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 21:01:57 ]
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
sys.setdefaultencoding('cp932')
print unicode(open('日本語.txt', 'rb').read(), 'cp932')


589 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 21:02:38 ]
ああ、ファイル名の文字コードはUTF-8ね

590 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 21:25:15 ]
setdefaultencoding は site.py 実行最後で del されるぞ



591 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 21:30:57 ]
つcodecs.open

592 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 22:01:56 ]
>>591
俺、自前じゃない他人のを読むときは全部それで開けてるわ。
便利だよな。

593 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 22:29:04 ]
codecs.openを知らない奴は入門書も読まない文盲か貧乏人。

594 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 22:36:33 ]
>>580
識別子に使える文字はそれっぽく妥当に決めてる(Unicode.orgが)みたいね
ttp://www.python.org/dev/peps/pep-3131/
ttp://www.unicode.org/reports/tr31/

全角記号が使えなくてちょっと安心した

595 名前:デフォルトの名無しさん [2008/03/11(火) 02:13:50 ]
みなさんパイソン歴どんくらい?

596 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 02:38:59 ]
そういう話はmixiで

597 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 03:04:18 ]
mixiは見るのが面倒。遅いしfeedも無いし。

598 名前:デフォルトの名無しさん [2008/03/11(火) 07:36:36 ]
フィードがないからなんか使わなくなっちゃうんだよな。
たまにマイミクにメッセージ送る程度。

599 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 07:49:34 ]
python-json 3.4

codecs.open
は共存出来ますか?

600 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 08:50:38 ]
codecs.open て unicode(file(filename).read()) に対してどの程度利点がある?



601 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 08:51:37 ]
>>596
暇な窓際オッサンがスレを占拠しててウザいからmixiは嫌い

602 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 09:01:17 ]
>>600
ファイルオブジェクトとして扱える

603 名前:デフォルトの名無しさん [2008/03/11(火) 10:06:10 ]
このスレ的には IronPython もおkって人が多い?
それとも IronPython は異端?

604 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 12:21:46 ]
>>600
後者のほうは Python3 で使えない (unicodeとfile)

605 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 12:41:44 ]
>>603
異端かは知らんが
専用スレはあるようだ
pc11.2ch.net/test/read.cgi/tech/1157686822/l50

606 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 19:57:43 ]
>>603
文法は一緒なんだがライブラリが別物(.NET Fw使うから)なんで
用途的な意味でほとんど別物だと思う、俺が使った感想だと。

607 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 20:02:04 ]
>>606
.Net・・・ファイアーウォール?


608 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 20:11:01 ]
つ、つられないぞっ

609 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 20:42:19 ]
MSのOSでしか使えないスキルというのが、手を出すのをためらう所かな。

610 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 21:17:00 ]
monoも忘れないであげてください



611 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 21:54:00 ]
>>606
そういう人にはFePy

612 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 07:42:08 ]
unicode(file(filename).read())とか書いちゃう奴は入門書を買えない貧乏人か文盲
 
 

 
open()使うかRubyでもやっとけクソ

613 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 07:46:37 ]
貧乏人バカにすんなよ

614 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 08:37:05 ]
巷に出回ってる入門書のすべてでunicode()を扱ってるとでも思ってるんだろうか

615 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 11:37:06 ]
クソ本はクソ人間にも劣る。
codecs.open()を扱っていない入門書など論外である。

616 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 11:47:51 ]
おミンパイはどうなの?

617 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 14:03:28 ]
>>616
書いてあるわけないだろうがボケカス氏ね

618 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 18:33:06 ]
def func1(a,b,c,d):
  中略

関数の呼び出しで第一引数を省略して呼び出すには
どうしたら良いでしょうか?

func1(,"hoge","fuga","piyo")

と書いたら怒られますた。。。

619 名前:618 mailto:sage [2008/03/12(水) 18:39:06 ]
>>> def func1(a,b,c,d):
... pass
...
>>> func1(,"hoge","fuga","piyo")
File "", line 1
func1(,"hoge","fuga","piyo")
^
SyntaxError: unexpected token ','

>>> def func1(a="nyo",b,c,d):
File "", line 1
def func1(a="nyo",b,c,d):
^
SyntaxError: default value must be specified here

はじめの引数だけ省略したいですと… orz

620 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 18:42:41 ]
>>618
答えがあるのかもしれないけど、
普通は、関数を定義する時に、
必須の引数を前に持ってきて、オプションは後ろ

def func(arg1, arg2, arg3=None, arg4=True):
  return True

こうすると、3と4は省略可能



621 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 18:44:29 ]
むり
省略は後ろから順

622 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 18:47:59 ]
それか綺麗じゃないけどその場で適当に何か入れといてから
必要になったときに入れ直したら?
どういうコードが後に続くのかによって何とかなりそうな気もする

623 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 18:48:23 ]
def func1(a='hoge', b='fuga', c='moge', d='piyo'):
 中略

とやって

func1(b='foo', c='bar', d='baz'):
 中略

と呼ぶ手もなくはないがめんどい

624 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 18:53:19 ]
>>618
# python 2.5
import functools
func1p = functools.partial(func1, "第一引数の値")
func1p("hoge","fuga","piyo")

625 名前:618 mailto:sage [2008/03/12(水) 19:01:30 ]
>>620-621
now = time.strftime("%Y/%m/%d", time.localtime(time.time()))
def res(name, mail, time=now, body):
  中略

res("デフォルトの名無しさん","sage",,"本文")

ではなくて、res(,,,"本文")
と書けたら便利そうなのですが、前から省略はできない…
でも引数の順を変えるのは嫌かも…諦めるしかない
d

626 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 19:09:54 ]
>>623
すべての引数にデフォルトの値を割り当てれば
いいのか…

>>> def res(name="デフォルトの名無し",mail="sage",time="2008/03/12",body=""):
... print name,mail,time,body
...
>>> res(body="本文")
デフォルトの名無し sage 2008/03/12 本文

とりあえず解決しますた。
dd

627 名前:デフォルトの名無しさん [2008/03/12(水) 20:11:10 ]
コピペアフィブログの臭いがプンプンだぜ

628 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 21:04:02 ]
IronPython使ってる人なんていたんか

629 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 21:14:11 ]
>>> def res(**kwargs):
...  print kwargs['hoge'] if kwargs.has_key('hoge') else None
...  print kwargs['fuga'] if kwargs.has_key('fuga') else 0
...
>>>
>>> res(fuga=100)
None
100
>>> res(hoge='abc')
abc
0
>>>

630 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 21:22:30 ]
[] if...else...よりはget
更にhas_keyよりはin演算子



631 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 21:58:37 ]
def res(**kwargs):
  print kwargs.get('hoge', None) if 'hoge' in kwargs
  print kwargs.get('fuga', 0) if 'fuga' in kwargs


632 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 22:30:45 ]
**kwargs 出す場面じゃあない
暗黒面への入り口

633 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 23:11:23 ]
肛門臭うぞ

634 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 23:19:05 ]
鼻エスパー?w

635 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 23:21:17 ]
かわいそうな能力w

636 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 00:23:13 ]
import os
print [x for x in os.listdir(u"C:/")]

このやりかたって日本語ファイル名だめなの?

637 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 00:29:17 ]
\x83等のエスケープの事なら避けられない



638 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 00:55:29 ]
Python3000でprintが関数になれば出来るのかね。
強引だけど、map(print, os.listdir('.'))みたいな

639 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 01:03:54 ]
>>636の振った話題に付いて行けない。
このコードだとなにが問題なの?



640 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 01:10:55 ]
それよりみんなさ、引数がたくさんあるメソッドをオーバーライドしたときってどう対処してる?
たとえばGUIクラスがあったとして

class Window:
 def __init__(self, parent, width, height):
  ...

これを継承するでしょ。で、そのとき独自の引数 piyo を追加したい。その時って

class ExWin(Window):
 def __init__(self, parent, width, hegiht, piyo, *args, **kwargs):
  Window.__init__(self, parent, height, *args, **kwargs)
  ...

みたいに律儀にやってる?
でもこれだと、基底クラスの受け取る引数が一つ増えたときにややこしいことになる
それとも、..., piyo=None, *args, **kwargs)
って、キーワードとして追加?
なんにしても、基底クラスの仕様が変化すると、渡すパラメータの順番が狂ってしまう





641 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 02:54:37 ]
日本語コーデックの自動判別モジュール探してたんだけど、よく考えたら
この判定コードで十分じゃね?

jp_codecs = ("euc-jp", "sjis", "utf-8")
jp_patterns = "あいうえお…わをん"

def get_jp_codec(s):
 def tryenc(s):
  for i in jp_codecs:
   try:
    u = s.decode(i)
    yield i, u
   except UnicodeDecodeError:
    pass

 for enc, u in tryenc(s):
  if len(set(jp_patterns) & set(u)) > 0:
   return enc
 return None



642 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 05:01:39 ]
>>641
厳密に言うと、完全ではない。
たとえばEUC-JPとShift_JISは完全に区別することはできなくて、
Shift_JIS なのに s.decode('euc-jp') でエラーにならない場合もある。


643 名前:デフォルトの名無しさん [2008/03/13(木) 13:08:28 ]
全部試してみてエラーが起きないやつを可能性として
全部候補に挙げて,あとはカン,とかどうよ?
nkf なんかはもっとなんか別の統計的手法をつかってるんだっけ?

644 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 13:12:57 ]
シフトJISの半角カタカナ2文字か、EUC-Jの漢字1文字か、が
全く同じバイト列になるから判別不可能。

645 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 19:51:59 ]
Welcome to NISHIO Hirokazu's homepage!

646 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 23:52:55 ]
[i for i in globals().keys()]
と打ち込むと "_[2]" ていう変な識別子が定義されてるんだが、なんだこれは。

647 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 00:11:31 ]
ぐぐったらこんなのがみつかった
aspn.activestate.com/ASPN/Cookbook/Python/Recipe/204297
内包表現で使われる一時変数みたいね

>>> def p(x): print x
...
>>> [x for x in range(5) for _ in [p(locals()['_[1]'])]]
[]
[0]
[0, 1]
[0, 1, 2]
[0, 1, 2, 3]
[0, 1, 2, 3, 4]

# トップレベルのlocals()とglobals()は同じだよね・・・

648 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 00:21:47 ]
>>> dis.dis(compile("[x for x in range(5)]","","eval"))
  1           0 BUILD_LIST               0
              3 DUP_TOP            
              4 STORE_NAME               0 (_[1])
              7 LOAD_NAME                1 (range)
             10 LOAD_CONST               0 (5)
             13 CALL_FUNCTION            1
             16 GET_ITER           
        >>   17 FOR_ITER                13 (to 33)
             20 STORE_NAME               2 (x)
             23 LOAD_NAME                0 (_[1])
             26 LOAD_NAME                2 (x)
             29 LIST_APPEND        
             30 JUMP_ABSOLUTE           17
        >>   33 DELETE_NAME              0 (_[1])
             36 RETURN_VALUE       

さっぱりわからんが_[1]が使われてるみたいだ

649 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 02:21:21 ]
IronPythonだと出ない

650 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 09:14:55 ]
3.0α3でも出なかった



651 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 10:35:10 ]
>codecs.open()を扱っていない入門書など論外である。

>おミンパイはどうなの?

書いてあるよ。
工作員お勧めのはじパイには書いてないけど。

652 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 12:39:53 ]
速pyはどうなの?すごいマイナー臭がするけど。

653 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 13:19:15 ]
初めてのPythonって、オライリーから出てるのが本物?

654 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 14:20:31 ]
黄色い方が偽者

655 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 15:30:10 ]
wanthac.blogspot.com/2007/10/python_27.html

656 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 15:40:40 ]
d.hatena.ne.jp/Cassiopeia/20070602/1180805345

657 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 15:42:33 ]
osksn2.hep.sci.osaka-u.ac.jp/~taku/osx/python/encoding.html
># 日本語の入った文字は、u'....' のように、頭に"u"をつけて、 この文字列がUTF-8で書かれている事を明言します。

大嘘だ罠



658 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 15:45:03 ]
d.hatena.ne.jp/Cassiopeia/20070604/1180900747

659 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 16:08:04 ]
>>636
import os
print repr([x for x in os.listdir(u'c:/')]).decode('unicode-escape')

660 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 18:59:09 ]
工作員お勧めのクソ本のせいで「Pythonは日本語が苦手」という印象が広まってしまっている件。



661 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 19:48:06 ]
初めて日本語処理を書く人は大抵つまずく、という点では正しい。

662 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 20:16:36 ]
そこらへんはJAVAやC#に遅れをとっている所だよね
PerlやRubyよりはマシなんだけども

663 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 20:18:53 ]
>>659
出来ました
激しくありがとうございました

664 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 20:20:25 ]
PPPの中ではunicode化に関しては一番進んでるよな


665 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 20:22:09 ]
Java/C#はそんなに優れてるの?

666 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 20:42:40 ]
特にjavaは秀逸

667 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 20:46:13 ]
Javaってクラス名や変数名日本語可能?

668 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 21:10:48 ]
動物が表紙のウンチ本が全部悪いんだぜ

669 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 00:49:12 ]
フローズンバイナリがよくわかりません。チュートリアルにも
フローズンバイナリに付いて全くといっていいほど情報がないし。。。
なんなの?これ

670 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 01:00:52 ]
>>669
何が分からんのか分からん。



671 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 01:19:15 ]
書いたスクリプトの実行時間(0.5秒)のボトルネックがimport文(9割を占める)でした。
importのオーバーヘッドを小さくするtipsなどないでしょうか?(2.4使用)

スクリプトはCGIにしたいと思っているもので、
色々な種類の小さめの処理(各1ファイル)をサクサク実行したいという状況なのです。

672 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 01:24:55 ]
>>669
サードパーティーモジュールが必要だから
チュートリアルに書いてあるわけがない。

673 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 01:31:32 ]
>671
まさか関数内で import なんてことないよね?
import はモジュールのトップレベルですべし。



674 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 02:05:00 ]
ディスクの空き容量が知りたい時は df を popen() して re.search()?
Windowsではどうするの?

675 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 02:17:29 ]
ctypesでGetDiskFreeSpaceEx呼び出す

676 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 09:12:45 ]
>>674じゃないけどヒントもらったしせっかくなので

from ctypes import *

dirname = ur'c:\\'
GetDiskFreeSpaceExW = windll.kernel32.GetDiskFreeSpaceExW
freeBytesAvailable = c_ulonglong()
totalNumberOfBytes = c_ulonglong()
totalNumberOfFreeBytes = c_ulonglong()
GetDiskFreeSpaceExW(
  dirname,
  byref(freeBytesAvailable),
  byref(totalNumberOfBytes),
  byref(totalNumberOfFreeBytes))
print "free space of %s: %d bytes" % (dirname, freeBytesAvailable.value)

こういうのちょこちょこ書き溜めたら結構なライブラリになるだろうなあ

677 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 09:40:42 ]
ttp://starship.python.net/crew/mhammond/win32/

678 名前:676 mailto:sage [2008/03/15(土) 10:02:11 ]
>>677
d
さっそく書き直したよ

>>> import win32file
>>> win32file.GetDiskFreeSpaceEx(u'c:/')

679 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 11:11:46 ]
おれもやってみたけど
>>676 で帰ってくる値と >>678 で帰ってくる値が微妙に違うw

もちろんその間にdiskは使ってないし
totalNumberOfBytes
の値だけは一緒だから

freeBytesAvailable と totalNumberOfFreeBytes
の値だけが変化してるw

こういうときでも
freeBytesAvailable == totalNumberOfFreeBytes
は常に真なんだな

680 名前:674 mailto:sage [2008/03/15(土) 14:17:33 ]
みなさんありがとう!
Mac OS X と Windows をターゲットにした客先なので
os.name 見て切り替えるしかないですね。

pywin32 でも ctypes でもいいから標準インストールに含まれるようにならないかなーと思ったら
2.5 から ctypes 入ってたのねorz 知らなんだ...



681 名前:636 mailto:sage [2008/03/15(土) 22:24:47 ]
>>659
超ありがとう

682 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 00:01:51 ]
win32com.clientを使いたいんだけど、
'\x83N\x83\x89\x83X\x95\xb6\x8e\x9a\x97\xf1\x82\xaa\x96\xb3\x8c\xf8\x82\xc5\x82\xb7'
なんてエラーメッセージが帰ってきたんです。
これ、何て読むんですか?

683 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 00:03:52 ]
>>> print '\x83N\x83\x89\x83X\x95\xb6\x8e\x9a\x97\xf1\x82\xaa\x96\xb3\x8c\xf8\x8
2\xc5\x82\xb7'
クラス文字列が無効です

確かに見づらい罠。

684 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 00:36:41 ]
>>683
シフトJIS?
utf-8な環境だと????だらけで見れない。

685 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 01:14:11 ]
だな。sjisにdecodeでおk。

686 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 02:10:23 ]
教えてください!
PyDEVでプログラムを書いています。
書いたプログラムを実行するのに「次を実行ボタン」「ダイアログが開く」
「Python実行を選択する」「OKボタン」の順に操作するのが面倒です。
また、「左のツリーからファイルを右クリック」「右クリックメニュー」「実行→」「Python実行」
とメニューを辿っていくのも面倒です。
なんかボタン一発で今開いているファイルを実行する方法はありませんか?

687 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 02:13:01 ]
書いたpyファイルダブルクリックが最速かもな
端末から打つより早いだろうし

688 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 02:44:35 ]
左側のツリー(Pydevパッケージエクスプローラ)で、
開いているファイルをダブるクリックすると、一瞬マウスが砂時計になって、その後何も起こりません。
開いていないファイルをダブるクリックすると、エディタで開きます。
どこでダブルクリック?

689 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 08:16:44 ]
困ったことがあったら、
>>1にリンクされている
聖書を読むべき

690 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 08:29:47 ]
聖書ってお民パイのことか?w



691 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 11:48:19 ]
ITproにPythonの連載がのってた。
itpro.nikkeibp.co.jp/article/COLUMN/20080207/293301/

2回目がSQLObjectだった。

692 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 11:50:43 ]
気軽といいつつLinuxを例にしてるアレか

693 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 11:54:01 ]
SQLAlchemyだったら読みに行くんだが・・・

694 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 13:04:59 ]
datetime.strptime に UnicodeString 渡したらエラーになった…。
str のまま渡すとうまくいく模様。これって変じゃないか?

----
# -*- coding: cp932 -*-
from pprint import pprint
from datetime import datetime

# 成功
pprint( datetime.strptime("2008年3月16日 2:03", "%Y年%M月%d日 %H:%m") )

# 失敗
pprint( datetime.strptime("2008年3月16日 2:03".decode("cp932"), "%Y年%M月%d日 %H:%m".decode("cp932")) )

----

695 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 13:37:00 ]
datetime.datetime.strptimeがunicodeならsys.getdefaultencoding()でstrに変換、という処理を行ってるからのようだ。
time.strptimeはそんなことをしていないので、バグかな?

$ python -S
Python 2.5.2 (r252:60911, Mar 12 2008, 13:36:25)
[GCC 4.2.3 (Ubuntu 4.2.3-2ubuntu4)] on linux2
>>> import sys, time, datetime
>>> sys.getdefaultencoding()
'ascii'
>>> time.strptime(u"2008年3月16日 2:03", u"%Y年%M月%d日 %H:%m")
(2008, 3, 16, 2, 3, 0, 6, 76, -1)
>>> datetime.datetime.strptime(u"2008年3月16日 2:03", u"%Y年%M月%d日 %H:%m")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeEncodeError: 'ascii' codec can't encode character u'\u5e74' in position 4: ordinal not in range(128)
>>> sys.setdefaultencoding('utf-8')
>>> sys.getdefaultencoding()
'utf-8'
>>> time.strptime(u"2008年3月16日 2:03", u"%Y年%M月%d日 %H:%m")
(2008, 3, 16, 2, 3, 0, 6, 76, -1)
>>> datetime.datetime.strptime(u"2008年3月16日 2:03", u"%Y年%M月%d日 %H:%m")
datetime.datetime(2008, 3, 16, 2, 3)

696 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 14:10:24 ]
strptimeのメインの処理は_strptime.strptimeなんだけど、
これを呼ぶPyObject_CallMethodの第三引数formatが違うんだな。
datetime.datetime.strptimeは"ss"になってる(strへの変換)。
time.strptimeは"O"でタプルのまま渡してる。

697 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 16:38:50 ]
>>691
SQLObjectのことをフレームワークと言ってて「ふーん」と思った。

698 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 22:48:46 ]
>>686
Eclipse + Pydev?
F11やCtrl + F11はどうよ

699 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 23:11:59 ]
>>698
レスありがとう。
F11すると「次を実行ボタン」を押したときと同じでダイアログがでてきました。
>>686で書いたのと同じです。Ctrl+F11は何も起こりません。
ソースをちょこちょこ変更して実行して、、、ていうことを繰り返してると、
実行するまでの動作がだんだん煩わしくなってきます。

700 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 23:48:22 ]
どなたか教えてください
t=urllib.urlopen("http://〜〜").read()
print type(t)
とするとstrとなるんですが。
utf-8のサイトの場合 tの型がunicodeになってほしいんです
どうしたらよいでしょうか。
python2.5の場合はstrのままテキストに落としたらutf-8として文字化けせずに表示されるのですが
ironpythonの場合テキストエディタで開いたらASCIIとして認識され文字化けされています。
utf-8としてそのファイルを保存し直しても文字化けしたままです。
解決策ご存じの方いましたらお願いします



701 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 23:52:27 ]
t=urllib.urlopen("http://〜〜").read().decode("utf-8")

702 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 23:58:58 ]
>>700
入門書嫁。

703 名前:700 mailto:sage [2008/03/17(月) 00:39:43 ]
文字化けしない方法自己解決しました。すいません;
ファイルの側をバイナリモードで開いて突っ込むだけでした。
open("hoge","wb")


704 名前:700 mailto:sage [2008/03/17(月) 02:02:00 ]
>>701
ちゃんとレスが表示されてなくて見てませんでした。

それだとAsciiキャラクタじゃないから変換できませんよーってエラーがでます。
ironpythonではutf-8なんて定義されてないって出ました
僕の環境だけでしょうか・・・・?

705 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 10:23:43 ]
>704
ところで Python のバージョンは?

706 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 11:14:09 ]
また文字コードか

707 名前:デフォルトの名無しさん [2008/03/17(月) 11:45:17 ]
文字コードの諸問題もテンプラに入れて初心者が醤油と大根おろしで美味しく食せるようにするべき

708 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 12:33:53 ]
pythonce mobileとpythonce smartphoneってどうちがうんですか?

709 名前:デフォルトの名無しさん [2008/03/17(月) 15:04:11 ]
正直文字コードをうまく扱えないやつはPython使うなといいたい。
Rubyのがはるかに先を行っている

710 名前:デフォルトの名無しさん [2008/03/17(月) 16:00:43 ]
どう先を行っているの?
煽りじゃなくてマジで知りたい。
しかしRubyを学ぶのは断る!



711 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 16:11:21 ]
ほんとどの言語使っても文字コード絡みはネックだなー
Pythonに限った話しじゃないけど、文字コードの仕組みというか原理というかを完全に理解してる方たちは、
悩まずプログラミング出来てますか?

なんかいっつも日本人可哀想だなーって思ってしまう俺がアホなだけ??
一回とことん文字コードについて勉強したほうがいいんかなー

712 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 16:17:39 ]
文字列は基本unicode、strは単なるバイト列(≒I/O用)
なんもややこしいことはない。

713 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 17:54:59 ]
>>711
unicodeへのエンコードモジュールを自分で作ってみ。

714 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 18:14:19 ]
u'ほげほげ' を勝手に UTF-8 だと思い込んでいるひとが意外と多い
それがすべての間違いの元

715 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 19:07:39 ]
>>> a="タ"
>>> if a in "[ぁ-んァ-ン]": print "true"
... else: print "false"

文字列が、ひらがな、もしくはカタカナだと
判定するにはどうしたら良いですか?
上記のだとうまくいかない…

716 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 19:47:50 ]
if a in [c for c in u'ぁ-んァ-ン']: print "true"
 else: print "false"

717 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 20:02:05 ]
>>716
>>> for e in u"ぁ-ん":
... print e,
...
ぁ - ん
>>> for e in [c for c in u"ぁ-ん"]:
... print e
ぁ - ん

できないジャン

718 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 20:07:45 ]
print re.match(ur"[ぁ-んァ-ン]", u"タ") is not None

719 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 20:09:33 ]
>>> for i in unicode('あア亜', 'mbcs'):
print unicodedata.name(i)


HIRAGANA LETTER A
KATAKANA LETTER A
CJK UNIFIED IDEOGRAPH-4E9C


720 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 20:39:32 ]
c = u'タ'
if u'ぁ' <= c <= u'ん' or u'ァ' <= c <= u'ン': print "true"
else: print "false"



721 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 21:20:48 ]
見た感じ、unicodedata使うのが綺麗っぽいかな。

722 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 21:24:56 ]
>>707
おっと、いい天ぷらは塩だけでいけるぜ

723 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 22:06:51 ]
手元のベンチマークだと一文字だと比較 : 正規表現 : unicodedata = 1 : 2 : 2.5くらい
複数文字の文字列だと長ければ長いほど正規表現が抜群に速い
(PythonのループはCと比べてかなり遅い)

724 名前:デフォルトの名無しさん [2008/03/17(月) 22:33:13 ]
py2exe を使った場合、完全にその exe ファイルだけで
動くのでしょうか。それとも何らかの DLL などが必要なんでしょうか。

725 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 02:03:06 ]
DLLも一緒にパックされる

726 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 08:15:55 ]
Python的ヒエラルキーは
汚いけど速い<<<綺麗
汚いけど速い>綺麗だけどかなり遅い
だろ

727 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 13:55:08 ]
www.python.org/dev/peps/pep-0361/
2.6, 3.0の正式リリースは9/3予定だって


728 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 15:25:07 ]
ひげぽんがPythonのネガティブキャンペーンしてる。

最も todo と fix meが多いプログラミング言語は Python かもしれない
d.hatena.ne.jp/higepon/20080317/1205768303

729 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 16:06:56 ]
ToDoが明確になっているのはよいことじゃないかな?
何もないままいい加減なコードを書かれるよりずっとまし。

Pythonの人って被害妄想が強すぎる。だからいじめられるんだよ。

730 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 16:19:40 ]
>>729
同意。ネガキャンというほどの内容でもないよね。



731 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 18:53:31 ]
>>729-730
そうか。社内のPythonハッカーと抗争を始めたのかと早とちりして
しまったよ。

732 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 19:01:10 ]
>>731
西尾さんとは仲いいしそんなことはないっしょ

733 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 19:05:52 ]
>>728
どう見てもなんとなく書いてみました風の記事なんですが

734 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 19:51:59 ]
早とちりしたのは西尾さん本人説。

735 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 19:53:26 ]
>>729
TODOは

現時点ではこのコードは書けない
余裕のある時にやろう
汚いコードを書いていることに対する言い訳

と書いてますよ

736 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 19:56:14 ]
負け犬意識で頭がいっぱいのPython使いに栄光あれ!

737 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 20:02:41 ]
こんなネタでしか盛り上がれないPythonスレの住人はバカだな。
PHPに帰れよ。

738 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 20:13:11 ]
いやいや、Pythonにネガティブだったり無視したりけしからんと
言う奴は、頭でっかちで使えない人とか老害の域に達した技術者に
多いので、Pythonに対する態度でその技術者の成長の余地が測れ
るのよ。

739 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 20:49:51 ]
いやいや、PHPにネガティブだったり無視したりけしからんと
言う奴は、頭でっかちで使えない人とか老害の域に達した技術者に
多いので、PHPに対する態度でその技術者の成長の余地が測れ
るのよ。

740 名前:デフォルトの名無しさん [2008/03/18(火) 20:59:36 ]
ToDoって書いてあったらだめって?
あふぉですか?こいつは。



741 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 21:12:02 ]
誰もだめとは言っていないとおもいますが
あふ(ry

742 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 21:21:22 ]
>>740
にしおさんにそんなこといってはいけませ〜ん!

743 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 21:23:01 ]
質問

list=[('apple', 1),('banana',2),('orange',3)]

タプルの一番目の要素をキーにして
ソートするにはどうしたら良いでしょうか?

744 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 21:26:01 ]
list.sort() でいいじゃん

745 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 21:31:59 ]
listという名前の変数に代入するなと(ry

汎用的なやり方としては(タプルの二番目の要素でソートする例)

L=[('apple', 3),('banana',2),('orange',1)]
L.sort(key=lambda x: x[1])

746 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 21:32:28 ]
>>743
ここ辺りが参考になるかも
ttp://morchin.sakura.ne.jp/effective_python/sort.html

747 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 21:39:41 ]
743みたいなネタで引っかかるやつ、いるよな。
基本的なところで引っかかって先に進めないようなやつは、
フレームワークを使いこなせるようになるまで、100年くらいかかったりするのだろうか。

748 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 22:35:12 ]
作り直した方がマシというフレームワークに
こと欠かさないだろ。

749 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 22:40:15 ]
>>715-717
そもそも、ぁ-んァ-ンはただの文字列。

750 名前:749 mailto:sage [2008/03/18(火) 22:41:32 ]
スマソ。途中で書き込んじゃった。

>>715-717
そもそも、ぁ-んァ-ンはただの文字列。
unicodeの平仮名と片仮名全部出力できれば・・・・・・



751 名前:749 mailto:sage [2008/03/18(火) 22:44:03 ]
>>743
.soat()に第一引数として、関数を与えるとその関数で判定を行います。
判定用関数には二つの引数が渡されるので、
def S:

752 名前:751 mailto:sage [2008/03/18(火) 22:45:38 ]
またやっちまったorz
インデントの習慣で・・・・・・

.soat()に第一引数として、関数を与えるとその関数で判定を行います。
判定用関数には二つの引数が渡されるので、
def S(A,B):
return cmp(A[1],B[1])
とすればおk

753 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 22:48:21 ]
Sorting Mini-HOWTO (和訳)
ttp://www.python.jp/Zope/articles/tips/sorthowto

関数を渡すって言うのがピンとこなかったら
ここでわかるようになるまで頑張っておく価値あり

754 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 22:59:32 ]
>>751-753
この方法は旧式。遅い。

>>745-746
こっちが新式。早い。

つうか新式紹介した後に旧式を紹介してるやつはなんなの?

755 名前:753 mailto:sage [2008/03/18(火) 23:19:38 ]
不勉強でした。許して

756 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 23:24:14 ]
>>745の状況ではlambda使うよりはoperator.itemgetter(1)が好きだな

757 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 23:55:07 ]
ttp://www.python.org/dev/peps/pep-0361/
2.6 と 3.0 は同時リリースなのか

758 名前:sort ⇒ 整列 mailto:sage [2008/03/19(水) 09:14:15 ]
soat() ってナニ?

759 名前:751 mailto:sage [2008/03/19(水) 09:28:55 ]
>>758
sort()だとおもわれ

760 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 09:59:55 ]
>>749-750
for k in range(0x3040, 0x3100):
  try:
    print '%04x, %c' % (k, unichr(k))
  except:
    print '%04x, None' % k





761 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 11:15:10 ]
こんな関数を作ったらどうだろう
def expand_char(s):
    i = 0
    _chr = unichr if type(s) is unicode else chr
    _len = len(s)
    while i < _len:
        if s[i] == '\\':
            yield s[i+1]
            i += 2
        elif i + 2 < _len and s[i+1] == '-':
            for j in xrange(ord(s[i]), ord(s[i+2])+1):
                yield _chr(j)
            i += 3
        else:
            yield s[i]
            i += 1

for i in expand_char(u'ぁ-ん'):
   print '%x: %s' % (ord(i), i)

762 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 13:42:50 ]
type() is じゃなくて isinstance 使えっていつも言ってんだろ
素直に unicodedata 使えよ

763 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 13:55:04 ]
>>762
なんぞそれ

764 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 13:58:06 ]
ininstanceのほうがいいね。しばらく使ってないと忘れるなあ

765 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 17:57:01 ]
isinstanceなら継承関係も考慮してくれるしな

766 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 18:35:41 ]
「入門書も読めないゆとりが集まるスレ」に名前を変更した方がいいな

767 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 19:33:39 ]
「煽り一行書くだけしかできない生産性の無いゆとりが集まるスレ」に名前変えたほうがいいな

768 名前:デフォルトの名無しさん [2008/03/19(水) 19:43:08 ]
人間の頭なんて大差ないんだよ。
やるか、やらないか、それだけの違い。
毎日少しずつでも前進してる奴と、
毎日言い訳を考えて何もしない奴とでは差がついて当然。

たいしたことを思いつこうが、思いつくまいがそんなのどうでもいい。
出来ない奴を馬鹿にする奴はどうせたいした事無いから。
出来ない奴に対して自慢したいだけなんだよ。

やりたい事、目標を見つけて少しでも前進する事。
覚える事がさしあたって100あるなら1つずつ覚えていけばいいだけじゃないか。
一度に100覚えられないから漏れは駄目なんだと思ってるんじゃないのか?
それは天才がやる事であって、凡人は1つずつやっていけば良いんだよ。
努力する癖を習得するんだ。


769 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 20:06:14 ]
挫折なんかしたことないなあ。分からなくなったことはあるが
色々試したりしてずっとやってたら分かったし。

挫折したとか言ってる人は自分で勝手に挫折したと決めている
だけなのでは? 分かるまでずっとやってりゃそのうち分かるよ。
諦めなきゃ良いだけ。

いつまで経ってもできないという場合は本当は自分のやりたく
ないことなのかも知れないけどな。そういう場合はやめてみれば
いい。だがそれを「挫折」と呼んではいけない。それは単に
やめただけだ。


770 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 20:19:24 ]

FizzBuzz問題

1から100までの数字を出力する。ただし、
3の倍数のときは数字のかわりにFizz
5の倍数のときは数字のかわりにBuzz
15の倍数のときは、FizzBuzzと出力する。

これはここの人にはどう捉えられるのかちょっと知りたいな。




771 名前:デフォルトの名無しさん [2008/03/19(水) 20:21:38 ]
>>770
それ、問題か?
hello, world と同じレベルじゃねえか。

772 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 20:21:43 ]
>>770
ガイシュツ

773 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 20:24:04 ]
>>768
1%の才能と99%の努力が大切なのですが

その1%の才能すら持ち合わせていない人が大勢います

あなたもそのうちのひとりであることはほぼ間違いありません


774 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 20:25:11 ]
>>770
簡単すぎて素直な回答を出したら低能だと言われそうで怖い問題。
出題者がビット演算とかトリッキーな回答を要求してるのではないかと
勘繰ってドツボにはまる。

775 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 20:26:28 ]
普通に書いたあとググっていかに短くできるか考え続けるだけ

776 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 20:28:43 ]
>>774
有名なプログラマーもどき除け問題だけどタイプ可能な文字数の制限があったり十進じゃなかったりすると面白いのかな

777 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 20:38:58 ]
コード書くのが好きで飯もいらないときがある、
別にこれで食っていこうとかは思わないけど趣味の範疇ならほんと楽しい。
素人だし下手糞なりに人に教えもしたけど、大体の奴は途中で飽きてやめていく。

そういう奴らは、読解力とか理解力なんかが足りないというか、
自分で調べる気がないというか。
別に馬鹿にしてるわけじゃないけど、そういうこと好きじゃないなら
無理してプログラムなんてやらなくてもいいんじゃないかな?

778 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 20:48:30 ]
プログラミングって、実行させてはエラー出して、その度に調べて、って
根気良く続けるのが重要だと思う。
ちょっと上達してきて、エラー出すのが恐くなって、実行させるのが
億劫になったとき、成長が少し止まった気がした。

「とにかくやってみる」ことは武器の一つだと、小学校のときの先生が言っていた。
何つーか、動くコードを知るだけじゃなくて、動かないコードを知ることも
実は重要なんだよな。
要はエラーを恐れるなってこと。

779 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 21:11:10 ]
なんでID出ないんだろうこの板

780 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 21:13:05 ]
人間だもの
人間だもの
人間だもの

へびお



781 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 21:49:38 ]
[[i,'Fizz','Buzz','FizzBuzz\n'][[3,0,0,1,0,2,1,0,0,1,2,0,1,0,0][i%15]]for i in xrange(1,101)]


782 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 21:54:01 ]
for n in [[i,'Fizz','Buzz','FizzBuzz\n'][[3,0,0,1,0,2,1,0,0,1,2,0,1,0,0][i%15]]for i in xrange(1,101)]: print n,


783 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 21:57:15 ]
print open("answer.txt").read()

784 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 22:02:51 ]
for i in range(100):print i%3/2*"Fizz"+i%5/4*"Buzz"or-~i


785 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 22:04:16 ]
python -c "__import__('webbrowser').open('www.google.com/search?q=python+fizzbuzz&btnI=I%27m+Feeling+Lucky')"

786 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 22:49:43 ]
「入門書を読めない文盲のゆとりがポエムを貼り付けるスレ」に変更しませんか?

787 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 22:50:29 ]
アンチスレと交換するだけでいいと思うよ

788 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 22:56:35 ]
早く恥パイの第3版の和訳だせボケ
もう2.6出てんのに。

789 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 23:03:21 ]
>>788
だから出ないんだって。

ソースな↓
ttp://tinyurl.com/23y5e

790 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 23:06:42 ]
>>770
応用編
「3の倍数と3の付く数字だけアホになり、8の倍数だけ気持ち良くなります」



791 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 23:10:57 ]
>>789
これは信頼できるソースだな

792 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 23:16:23 ]
>>790
俺も言おうと思っていたが先越された

793 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 23:18:58 ]
>>> import urllib2
>>> urllib2.urlopen("tinyurl.com/23y5e").url
'www.bulldog.co.jp/'

794 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 01:01:25 ]
>>792
やっぱり '3' in str(i) がキホン?

795 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 07:51:38 ]
FizzBuzz問題って色んなバージョンあるんだね
ttp://ja.wikipedia.org/wiki/%E6%B8%A1%E8%BE%BA%E9%90%98


796 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 11:57:56 ]
問題をアレンジして
3の倍数および3がつく時、アホになる
に変えてみると?

797 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 12:24:06 ]
for i in range(100):print (i%3/2or(-~i/10==3)or(-~i%10==3))*'Aho'or-~i

798 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 12:28:04 ]
-~i何度も使うならこっちの方が短いね
for i in range(1,101):print (i%3==0or(i/10==3)or(i%10==3))*'Aho'or i


799 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 12:40:04 ]
しね

800 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 14:14:31 ]
x%y==0 は、x%y<1の方が短い
あと、(i/10==3)or(i%10==3)だったら'3'in`i`が短い



801 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 14:20:56 ]
for i in range(1,101):print(i%3<1or'3'in`i`)*'Aho'or i

802 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 14:23:20 ]
for i in range(100):print(i%3/2or'3'in`-~i`)*'Aho'or-~i

803 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 15:10:14 ]
('3'in`-~i`) == ('3'in`~i`)

804 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 16:02:03 ]
くだらね

805 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 16:06:33 ]
strと``ってどう違うの?
測ると``の方がだいぶ速いみたいだけど。

806 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 16:27:25 ]
UNARY_CONVERT と CALL_FUNCTION

807 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 16:32:14 ]
strじゃなくてreprだな

808 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 16:57:31 ]
str は、そのオブジェクトを表す適当な文字列
repr は、そのオブジェクトを表すpython 式

>>> `'a'`
"'a'"
>>> str('a')
'a'
>>> `2**32`
'4294967296L'
>>> str(2**32)
'4294967296'

809 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 18:48:30 ]
>>> [u'ほげ',u'ふが']
[u'\u307b\u3052', u'\u3075\u304c']
>>> `[u'ほげ',u'ふが']`
"[u'\\u307b\\u3052', u'\\u3075\\u304c']"
>>> `[u'ほげ',u'ふが']`.decode('unicode-escape')
u"[u'\u307b\u3052', u'\u3075\u304c']"
>>> print `[u'ほげ',u'ふが']`.decode('unicode-escape')
[u'ほげ', u'ふが']

各行の動作の違いを教えてください

810 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 19:19:51 ]
>>807>>808

なる、reprと同じだったね。
にしても不思議、何度測ってもrep()より``のが速い。



811 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 19:54:57 ]
>>810
速度は>>806が書いてあるように
`` が UNARY_CONVERT のバイトコードだけになるから

812 名前:デフォルトの名無しさん [2008/03/20(木) 20:23:06 ]
IDLEって完全にPython自身で書かれているのか・・・
ってことは自分のプログラムの途中から IDLE
を起動するなんてこともできるのか?

813 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 20:57:48 ]
import wx
app = wx.PySimpleApp(0)
frame = wx.Frame(None, -1, "Hello wxPython World!")
app.SetTopWindow(frame)
frame.Show(True)
app.MainLoop()

> AttributeError: 'module' object has no attribute 'PySimpleApp'

環境ubuntu7.10。wxPythonは入れたが上のエラーが出る。なぜ?

814 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 21:02:57 ]
他にwx.pyがあるんじゃないか?そのスクリプト自体がwx.pyとか

815 名前:813 mailto:sage [2008/03/20(木) 21:05:27 ]
うわ本当だ。。。
その通りです。ありがとう。>>814

816 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 01:58:54 ]
>>811
へー、バイトコードなんて調べた事無かったから>>806 は意味不明でしたw
ようするに最終的にreprを呼ぶコードが出来るんだけど、
``から出来たコードの方が速く処理が終わるのかな。

817 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 01:10:27 ]
wxWidgets にはさ、GUI を XML で記述するってのがあるじゃん。あれと同じ理屈で Tk を YAML で記述するってのは無いかね。。。。yaml がなければせめて XML で。最初は自力で簡単なコーディングしてて
gui_yaml = """
frame1(Frame):
 text: "Hello tk!"
 button1(Button):
  text: Exit
  command: quit
"""
て感じの yaml 形式テキストをつくって
import yaml
dict_ = yaml.load(gui_yaml)
すると、
{"frame1(Frame)": {
  "text": "Hello tk!",
  "button1(Button)": {
   "text": "Exit",
   "command": "quit"
  }}}
ていう辞書になるので、これを適当に解析して name(base_class) という項目を見つけたら指定されたクラスインスタンスを生成して、
command って項目があったら値に対応するメソッドを関連づけて…
みたいな感じで Tk GUI を構築しようとしたんだけど、辞書だと順番が保存されないんで、コントロールを生成する順番に依存する処理の場合に死ぬる事に気づいた。
packするとき、どの順番で pack する?とか。grid 使えば順番非依存になるのかも。

というわけで自分でつくるのあきらめたので、できあいのやつ教えてください。



818 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 01:19:17 ]
もしマトモに yaml -> Tk ビルダ作ったら、みんな使ってくれるかい?



819 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 01:24:56 ]
なんで今更Tkにこだわるのさ

820 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 01:35:39 ]
だって標準ライブラリにくみこまれてるじゃん



821 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 01:46:29 ]
辞書にorder項目を追加するだけじゃね?

822 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 02:13:48 ]
順番を保存するならシーケンスにするしかないよね。
てか辞書じゃ重複できないから、その例ちと変な気が。
Tkだととても軽いというのなら意味は有ると思う。

823 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 02:56:18 ]
import yaml # PyYAML from pyyaml.org/wiki/PyYAML
import Tkinter
import re

def build(parent, dic, commands):
 widget = None
 for key, val in dic.items():
  o = re.match(r"(?P<name>\w+)\((?P<base>\w+)\)", key)
  if o:
   name, base = o.group("name", "base")
   klass = getattr(Tkinter, base)
   widget = klass(parent)
   #widget.pack()
   if parent: setattr(parent, name, widget)
if isinstance(val, dict): build(widget, val, commands)
  elif key == "command":
   parent["command"] = commands[val]
  elif key == "pack":
   parent.pack(**val) if isinstance(val, dict) else parent.pack()
  elif key == "grid":
   parent.grid(**val) if isinstance(val, dict) else parent.grid()
  else:
   parent[key] = val
 return widget



824 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 02:59:55 ]
# テストコード
if __name__ == "__main__":
 gui_dict = yaml.load("""
frame(Frame):
 button1(Button):
  grid: {column: 1, row: 2}
  text: OK
 button2(Button):
  grid: {column: 2, row: 2}
  text: Cancel
 ent1(Entry):
  grid: {column: 1, row: 1}
 ent2(Entry):
  grid: {column: 2, row: 1}
 memo1(Text):
 grid:
""")
commands = {}
app = build(None, gui_dict, commands)
app.mainloop()



825 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 03:03:13 ]
823-824をそのまま貼付けて実行してください。
Entry の textvariable の扱いをどうすればよいかがさっぱり思いつかん。
一貫性を持たせるという意味で "text" でアクセスできればいいんだけど。





826 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 03:35:59 ]
標準にこだわってるくせに
pickle使わずにYAML使う愚


827 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 03:52:49 ]
だって xml より yaml のほうが編集しやすいじゃん。
まあ、たしかに yaml 表現が python の辞書リテラルとほとんど同じだから、
まんま python 式で書いてもいいんじゃ?と思ったのは事実。
だけど文字列を "" で囲まなくて良いのは地味に楽。



828 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 03:55:20 ]
class TestClass(object):
 def __init__(self, i_name):
  _name = i_name

 def __eq__(self, i_other):
  if not isinstance(i_other, TestClass):
   return False
  return self._name == i_other._name

a_key = TestClass('test')
a_dic = {}
a_dic[a_key] = 0

---------------------------------------------------
上のソースコードをPython 2.5.2で実行すると問題ないけど、
Python 2.6a1で実行すると、最後の行でエラーがでたよ。
TypeError: unhashable type: 'TestClass'

Python 2.6以降だと、object.__hash__()は実装されてないものなん?


829 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 04:06:37 ]
>>827
それならさ、
wxPythonのXRCedが吐き出すXMLをYAML化してよ


830 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 04:11:50 ]
>>823
GJ!!
インデント崩れてない?



831 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 04:46:11 ]
# インデント修正+コメント加筆

def build(parent, dic, commands):
 widget = None
 for key, val in dic.items():
  o = re.match(r"(?P<name>\w+)\((?P<base>\w+)\)", key)
  if o: # name(base_class_name) にマッチした場合は新規にウィジェット生成する
   name, base = o.group("name", "base") # 名前とクラス名を取り出す
   widget = getattr(Tkinter, base)(parent) # ウィジェット生成
   if parent: setattr(parent, name, widget) # 親の属性としてウィジェットを追加
   if isinstance(val, dict): build(widget, val, commands) # ウィジェットの設定
  elif key == "command":
   parent["command"] = commands[val] # 呼び出し可能なオブジェクトをコマンドに指定
  elif key == "pack":
   parent.pack(**val) if isinstance(val, dict) else parent.pack()
  elif key == "grid":
   parent.grid(**val) if isinstance(val, dict) else parent.grid()
  else:
   parent[key] = val
  return widget # 最後に生成したウィジェットを返す



832 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 04:50:23 ]
# テストコード
gui_dict = yaml.load("""
frame(Frame):
 button1(Button):
  grid: {column: 1, row: 2}
  text: OK
 button2(Button):
  grid: {column: 2, row: 2}
  text: Cancel
 ent1(Entry):
  grid: {column: 1, row: 1}
 ent2(Entry):
  grid: {column: 2, row: 1}
 memo1(Text):
 grid:
 """)
commands = {}
app = build(None, gui_dict, commands)
app.mainloop()



833 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 20:58:33 ]
このまま進歩してって、数日したらちょっとしたフレームワークが出来上がってそうだ。

834 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 23:40:58 ]
             ____
           /      \
          / ─    ─ \
        /   (●)  (●)  \   ない ない
        |      (__人__)     |
         \     ` ⌒´    ,/
 r、     r、/          ヘ
 ヽヾ 三 |:l1             ヽ
  \>ヽ/ |` }            | |
   ヘ lノ `'ソ             | |
    /´  /             |. |
    \. ィ                |  |
        |                |  |

835 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 23:42:14 ]
思いつきだけで始めたことはたいてい早晩ポシャる
失敗するのはいいのだが、問題なのは、
一度や二度の失敗で学ばない人間がいかに多いかということだ

836 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 00:10:21 ]
Pythonを選んだこと自体が失敗だからなぁ

837 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 00:13:51 ]
歴史から学べるのはただ一つ、
人は歴史から学ばないということだけ
だとばっちゃが言ってた

838 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 01:22:16 ]
つまり韓国に関わっていたら日本は不幸になるってことですね!
さすがばっちゃ!頭いいや!

839 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 01:47:02 ]
>>835
一度や二度の失敗で投げてたら何も作れんぞ。
大事なのは、捨てて作り直す勇気だ。

840 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 03:04:52 ]
自作してる時点でTkの負けだと思いました><
xml使ってないけど。



841 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 03:22:33 ]
出来あがった物が思いの外ショボいと
モチベーションが続かないんだよなぁ

842 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 03:33:50 ]
>>837
φ(..。 )メモシテオコウ

843 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 03:40:18 ]
こういうのは衝動が肝心だと思うんだ。
ガーッと書いて結局没になる、そういう自己満足って大事よ。
あんまりはまるとPC恐怖症になるけど。

844 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 07:13:06 ]
何度やっても同じだよ。
そもそもセンスがないんだから。一生ドカタ暮らし。

845 名前:デフォルトの名無しさん [2008/03/23(日) 09:23:21 ]
一生ドカタできるならまだいいさ。
俺なんかすら干されそうだ。
マァ無能だから仕方ない。
結構なんてするんじゃなかった。
自殺すらできない。保険増額しておこう。

846 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 11:28:05 ]
なんだこの流れ

847 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 11:39:22 ]
流れなのかこれは。

848 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 12:50:59 ]
春は色々湧く季節

849 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 13:28:31 ]
PythonにRubyのPathnameみたいなクラスってないですか?
os.path.hoge(path); os.path.huga(path)が面倒なので
p = Path(path)などとしておいて
p.hoge(); p.huga()とできるような感じのものでいいんですが…
自分でつくるしかないですかね?

850 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 13:37:35 ]
よく意味が分からんがimport os.path as pって意味ではなくて?
別にimport os.pathしてからp = os.pathでもいいけど。



851 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 13:47:44 ]
すまん。Rubyしらんのに適当いうもんじゃなかった

852 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 13:57:32 ]
>>849
標準ではないけど ttp://www.jorendorff.com/articles/python/path/ とか

853 名前:849 mailto:sage [2008/03/23(日) 14:19:38 ]
>>850
>>852
いろいろ検索しても見つからなかったのでないのかと思っていましたが
あるんですね。探し方が悪かっただけで。ありがとうございます!


854 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 14:27:19 ]
>>853
今後もPythonと付き合っていくなら可能な限り標準モジュールを利用した方がいいよ

855 名前:850,851 mailto:sage [2008/03/23(日) 14:46:12 ]
>>853
いや、俺のは違うから。スマン。
RubyのPathnameオブジェクトってのを知らなかったんで
勘違いしたんだよ。

856 名前:849 mailto:sage [2008/03/23(日) 15:07:30 ]
>>854
そういうものなんですかね?
os.pathは使うとき逐一引数にパス名指定しないといけないので面倒なんですよね…
>>852さんに紹介していただいたようなクラスが標準に入ればいいのですが

>>855
ああ、すいません。書き方が悪かったみたいです
>>855さんの回答は今回はちょっと希望に沿うものではなかったのですが
質問したときは回答していただいた方全員にお礼を言いたいと思っているので…


857 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 18:13:25 ]
「できるだけ標準モジュールを使え」はGuideの言葉だっけ?

858 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 19:29:53 ]
>>849
os.stat()を使えば解決しそうだけど

859 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 20:17:05 ]
lambdaで逃げるって手も...ないか。





860 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 21:26:23 ]
Guideって誰?
それどんな道案内?



861 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 22:15:43 ]
>>860
かわいそうなPython使いを
ジョセフ様に認められた清く正しい言語Rubyへの
改宗を促すGuideです。

Pythonを作られたGuidoさんとは別です。

862 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 22:20:26 ]
カルト言語逝ってよし。

863 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 11:42:31 ]
ruby使いは正確悪いことで有名

864 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 13:56:51 ]
お前の性格の悪さも分かった

865 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 14:33:40 ]
>>863
たまには変換候補のことも思い出してあげてください。

866 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 14:37:14 ]
pythonで数値計算はnumpyだけど数式処理は何かあるの?

867 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 17:54:39 ]
しらない

868 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 19:00:16 ]
他人を敬えない人は、他人から敬われることはありません。
日本語が不自由ならなおさら。
良くて一生ドカタ。
たいていはいい年になってから路頭に迷う。
本当にありがとうございました。

869 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 19:10:30 ]
経験者の話は説得力がありますね

870 名前:デフォルトの名無しさん [2008/03/24(月) 23:36:43 ]
なんといつのまにか wxVCLなるものがあるみたいじゃないか。VCLの使い勝手が忘れられない俺がまちのぞんだもの。
だれかpythonバインディング作って



871 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 02:20:38 ]
C++スレにも書いたけど、こっちにもネタ投下してみる。
なるべく短いプログラム書いてみようぜ。

基本問題:
例えば N = 8 としたときに
「この文章には0が1個、1が5個、2が3個、3が2個、
4が1個、5が2個、6が1個、7が1個含まれています」
という文章が生成されるとして、9以下の任意の自然数Nについて
もこのような文章を生成するプログラムを作れ。
解がない場合は「解なし」とする。

発展問題:
Nが10以上の時、解はあるだろうか?



872 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 02:28:43 ]
一応自分の答え(うろ覚え)さらしとく
X = 8
S = ["" for i in range(X)]
found = False
def count(num):
 ret = 0
 for i in S:
  ret += i.count(str(num))
 return ret
def check():
 for i in range(X):
  if count(i)+1 != int(s[i]): return
 found = True
 print "数字の数は", [str(i)+"が"+str(s[i])+"個" for i in range(X)]
def find(depth):
 if depth < 0:
  check()
 else:
  for i in range(X):
   s[depth] = i
   find(depth - 1)
 if not found:
  print "解なし"
 print "終了"

find(X-1)



873 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 02:47:48 ]
ごめん、問題の意味がわからない

874 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 02:53:15 ]
短くしようとしたら総当りになると思う。
それよりもスマートな解き方を探すほうが面白そうだな

875 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 02:58:37 ]
>発展問題:
>Nが10以上の時、解はあるだろうか?

10がn個あります、と言った時の意味がわからない

876 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 03:01:55 ]
どっかの課題丸投げ乙

877 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 03:07:32 ]
変数Nは「」内に影響しないため、Nがどのような値でも
「この文章には0が1個、1が5個、2が3個、3が2個、
4が1個、5が2個、6が1個、7が1個含まれています」
という文章が生成されます。

878 名前:871 mailto:sage [2008/03/25(火) 03:19:09 ]
丸投げじゃないよ。今日仕事中に思いついた問題。

ちなみにNが4のときの解。ようするに N 以上の数を使わない。

「0が1個、1が2個、2が3個、3が2個」

Nが10のときは "10" という部分文字列がいくつ含まれるかって解釈にしようと思う。



879 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 03:57:45 ]
0-2

1-8

2-3

3-3

4-1

5-1

6-1

7-1

8-2

9-1

10-1

880 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 09:57:56 ]
ドウカクカクカク。



881 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 10:34:00 ]
ブラック民パイ読んで、練習でHP作ってるんだけどさあ・・・・HTMLのテンプレートを簡単につくるソフトでいいのってないの?
ホームページビルダー(バージョンふるいのしか持ってない)で作って、置き換え文字を書き加えるとかじゃ・・・・ちょっと使いづらいぜ。

882 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 10:43:31 ]
>>881
HTMLかくんだったら、テキストエディタでおk。
入力補助がついてるのもあるし、なんだったらメモ帳やワードパッドでもいける。

883 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 11:31:43 ]
>>871が基地外にしか見えない

884 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 11:41:05 ]
>881
Nvu
nvudev.com/



885 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 11:42:58 ]
>>883
>>871が見えるおまえは基地外認定

886 名前:866 mailto:sage [2008/03/25(火) 12:03:30 ]
>>866-867
ないのならmaximaのあるcommon lispに乗り換えを決意した

887 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 13:45:09 ]
お昼に見てからやっと >>871 の意味が分かったわ
ちょっと仕事の合間に考えて見るか

888 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 19:05:30 ]
>>871をN<=10(二桁にならない)までで高速化してみた
codepad.org/m5o71GS1

889 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 20:54:01 ]
C++は老害言語。

890 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 22:00:41 ]
>>884
Nvuは開発止まってるから後継ソフトにしようね
KompoZer: kompozer.net/



891 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 23:21:00 ]
回転座標求めるのに
def rot(x, y, radian):
 c = math.cos(radian)
 s = math.sin(radian)
 return x*c - y*s, x*s + y*c

def rot(x, y, radian):
 return math.hypot(x, y) * cmath.exp(radian*1j)
の速度を比べてみると、明らかに複素数使った方が速い。。。が
X, Y成分を取り出す処理を入れると結局始めから三角関数使った方が速い。なんかくやしい。




892 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 23:48:33 ]
x,yはc.real と c.imag で取り出してる?

893 名前:891 mailto:sage [2008/03/26(水) 00:16:01 ]
>>892
ttp://codepad.org/e53Ole56
あれ? デスクトップでやった時と結果が違う。。。。

894 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 03:32:48 ]
rpy.sourceforge.net/
Rをpythonから呼べる
便利そうだがnumpyで直接計算するのと比べてどうなんだ

895 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 03:38:08 ]
modular.math.washington.edu/sage/
pythonの数式処理っぽいのあった

896 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 03:44:09 ]
python -> sage -> maxima -> common lisp
でcommon lispをpythonから呼べるね
もっと単純な方法ありそうな気もするけど


897 名前:デフォルトの名無しさん [2008/03/26(水) 10:45:12 ]
py2exe 使うと使っている標準モジュールが自動的に
同梱されますが、これも丸ごと配布してしまっていいん
でしょうか?というか、py2exe で実行ファイル形式にして
配布するときってライセンス的にどんな制約があるんでしょう?

自分が作ったプログラムも含めてPSFに従わないとだめ?


898 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 13:25:01 ]
PSFはGPLじゃないのでちゃんとPythonの著作者表示があれば自由だったはず

899 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 14:22:28 ]
PSFはライセンスじゃない。

それはそれとして、っ ttp://www.python.jp/pipermail/python-ml-jp/2007-May/004044.html

900 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 14:31:13 ]
>>894
・統計屋の中で流行っている統計手法はいち早くRで誰か実装するので、
自分で書き直す手間は省ける。
・Rになれている人に使いやすい。
・グラフなんかをプロットするとよく落ちる。

ってところかな。



901 名前:デフォルトの名無しさん [2008/03/26(水) 15:45:42 ]
すまんが、cgiのGETとPOSTって両方一度にはつかえないの???

902 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 15:51:19 ]
仕様書嫁

903 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 16:04:25 ]
実装依存で使える場合もあるかもしれないけど、
どこでも動く保証はないっていう感じだったきがする<GET、POST同時
まあ、普通にやめといた方がいいと思う

904 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 19:07:01 ]
>>901
os.environ['QUERY_STRING']に入ってない?

905 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 23:25:33 ]
GET,POSTはHTTPのメソッドの名前。当然どっちかしか使えん。
HTTPの仕様上はPOSTで「?」付URLを呼び出せる。
>>904 の言う通り cgi.parse_qs(os.environ['QUERY_STRING']) でよかったとオモ
POSTされたデータは cgi.parse(sys.stdin) か cgi.FieldStorage()


906 名前:デフォルトの名無しさん [2008/03/26(水) 23:27:08 ]
ttp://www.openplans.org/projects/plone-summer-of-code-2008/project-ideas

ふるって応募を!

907 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 23:31:48 ]
POSTのときにQUERY_STRINGとれない環境もある

908 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 08:08:23 ]
panel = wx.Panel(frm,-1)

こんなんがあって、panelをデストラクタするにはどうすれば良いんでしょうか。
ある状況でパネルを削除したいんですが。

909 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 08:24:14 ]
panel.Destroy()
del panel
じゃね

910 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 08:27:21 ]
おお!できました。
ありがとうございます。



911 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 18:49:43 ]
297 :デフォルトの名無しさん:2007/12/23(日) 02:11:55
>>294=269 か?
メソッドオーバーロードはrubyではできない。こんな感じで自分で処理しなさい
def meth(arg)
 if arg.kind_of?(String)
  puts '文字列'
 else
  case arg
  when Array then puts '配列'
  else puts 'その他'
  end
 end
end

それとrubyの配列(Array)に次元なんて無い。配列が入れ子になってるだけ。

python だと、どう処理を描けば良いですか?

912 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 18:56:45 ]
Pythonでも同じだよ
引数の型とか数を調べて分岐するだけ
というかrubyスレの話題を持ってこられると色々勘ぐりたくなるんだが

913 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 19:27:49 ]
>>912
メソッドオーバーロード python
www.google.co.jp/search?q=%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89%E3%82%AA%E3%83%BC%E3%83%90%E3%83%BC%E3%83%AD%E3%83%BC%E3%83%89%E3%80%80python&hl=ja&lr=lang_ja&start=20&sa=N

たまたまググッたら、それらしいコードが見つかったので
張ってみますた。深い意味はありませんです。。。

def mes(arg):
 if isinstance(arg, str):
  print '文字列'
 elif isinstance(arg, list):
  print '配列'
 else:
  print 'その他'

とか。引数に文字列渡して if arg == '文字列': elif arg == 'リスト': else:
みたいにするのとか。これくらいしか思い浮かばない罠。ご飯食べてくる

914 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 20:30:09 ]
とりあえず思いついた適当なコード
import sys

class OverloadMethod(object):
    functions = []
    def __call__(self, *args, **kwargs):
        for function in self.functions:
            if len(args) == function.func_code.co_argcount:
                return function(*args)
        raise NotImplementedError

def overload(function):
    obj = sys._getframe(0).f_globals.get(function.__name__)
    if obj is None:
        obj = OverloadMethod()
    obj.functions.append(function)
    return obj

if __name__ == '__main__':
    @overload
    def foo(a):
        print a

    @overload
    def foo(a, b):
        print a + b

    foo(1)
    foo(1, 2)

915 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 20:55:23 ]
Guido謹製
www.artima.com/weblogs/viewpost.jsp?thread=101605

916 名前:914 mailto:sage [2008/03/27(木) 21:02:19 ]
スゲーGuidoパパとほとんど一緒じゃん

917 名前:913 mailto:sage [2008/03/27(木) 21:16:33 ]
>>914
def overload(function):
    obj = sys._getframe(0).f_globals.get(function.__name__)
    if obj is None:
        obj = OverloadMethod() # コンストラクタみたい
    obj.functions.append(function) # 関数をストックしてく
    return obj

>>> foo(1) # ストックした関数をポップする
>>> foo(1,2)
>>> foo(1,2,3) <class exceptions.NotImplementedError at 0x000000000000002C>

sys._getframe(0).f_globals のところを globals() にしたら
ironpython でも動作確認取れますた。
dir()で表示されるけど, まだ実装されてないのね…_getframe
ValueError: _getframe is not implemented

annotation で潜らしてポップするか…
勉強になりますた。dくす♪

918 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 02:15:51 ]
>>913
キーワード引数

919 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 03:54:18 ]
www.linux-foundation.jp/modules/tinyd3/index.php?id=20
何か意図的に抜いてるような…

920 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 09:23:04 ]
Pythonだけに見事にハブられてますね



921 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 09:34:12 ]
うわぁ・・・^^;

922 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 12:41:32 ]
エーとおもたがperlも入ってなくね?
どういう基準かよくわからんな


923 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 12:43:15 ]
Perl/PHP/Rubyは二重丸じゃないか

924 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 12:55:46 ]
Pythonの擬似スレッドって、いずれちゃんとしたスレッドになる予定とかってないんですか?

925 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 13:03:26 ]
GILのことなら多分とれないよ

926 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 14:53:41 ]
以前にここに貼ってあったpython チートシートのリンクがみつからない

927 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 16:04:50 ]
www.google.co.jp/search?&q=python+cheat+sheet
www.google.co.jp/search?&q=python+cheat+pdf


928 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 17:01:20 ]
バイナリデータをファイルに書きたく思っています。
例えば4バイト整数10ならば、f.write('\x00\x00\x00\x0a') というように。

上記を、例えば f.write(hoge(10, 4)) で実現できるような
既存の関数hogeのようなものがあれば、ご教示頂けないでしょうか?
IEEE浮動小数点についても同様なものがあれば教えて頂きたいです。


929 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 17:02:41 ]
www.python.jp/doc/release/lib/module-struct.html

930 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 05:46:36 ]
pythonのワンライナーは超絶美的



931 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 08:24:23 ]
urllib2のmultipart/form-dataサポートマダー


932 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 10:05:49 ]
>>931
ドキュメントにツカエネーヨって書いてあるし今更機能仕様を変える気もないんじゃね?
これはもう自分でurllib3を作るしか

933 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 10:08:34 ]
urllib2ってメモリリークするよね?

934 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 15:02:28 ]
python で 宣言できる関数の上限値とかどれくらいなんだろうか?
1万-10万…

10万くらいなら動きそう? メモリ上に保持できる辞書としての
要素数の限界値? (よくわからん)

935 名前:928 mailto:sage [2008/03/29(土) 15:12:30 ]
>>929
おー、これですこういうのです。超速レスありがとうございました!

936 名前:デフォルトの名無しさん [2008/03/29(土) 15:43:27 ]
>>934
import sys

def mksrc(n):
  print """
def %s():
  return %d
""" % ('func%d' % n, n)

if len(sys.argv) < 2 or not sys.argv[1].isdigit():
  print 'usage: hoge.py N'
else:
  for i in range(int(sys.argv[1])):
    mksrc(i)
  for i in range(int(sys.argv[1])):
    print 'print func%d()' % i


$ hoge.py 100001 > fuga.py
$ fuga.py
とりあえず10万は楽勝みたいだ
あとは任せた


937 名前:デフォルトの名無しさん [2008/03/29(土) 16:00:39 ]
100万は死んだ
ファイルサイズにワロス

938 名前:デフォルトの名無しさん [2008/03/29(土) 16:03:39 ]
100万通過

>>937
OSとかメモリ容量とかによるんで内科医


939 名前:デフォルトの名無しさん [2008/03/29(土) 16:18:24 ]
おまいら阿呆だな

まで読んだ







[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

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

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