Pythonのお勉強 Part42

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
2デフォルトの名無しさん:2011/02/13(日) 22:08:29
以上
3デフォルトの名無しさん:2011/02/13(日) 22:21:10
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。

アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。

                  京都大学霊長類研究所
4デフォルトの名無しさん:2011/02/13(日) 22:40:02
   ┌─┐
   │●│
   └─┤
   _   ∩
  ( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘
5デフォルトの名無しさん:2011/02/14(月) 07:03:02
>>1
6デフォルトの名無しさん:2011/02/14(月) 09:15:04
x sinπr^2
o 4πr^2
7デフォルトの名無しさん:2011/02/14(月) 12:11:34
未だに近所の割と大きな本屋さんにPythonの本が少ないことがなげかわしい
8デフォルトの名無しさん:2011/02/14(月) 12:56:19
import aaa
import bbb
って書いたときと
import bbb
import aaa
って書いたとき、別のエラーが出ます。なんでですか?

前者
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named aaa

後者
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named bbb
9デフォルトの名無しさん:2011/02/14(月) 13:10:45
どっちのモジュールもない
10デフォルトの名無しさん:2011/02/14(月) 13:37:54
上からimport文を実行してくから
11デフォルトの名無しさん:2011/02/14(月) 14:27:41
import __future__ with_statement
を後置きで書くとエラーが出ます
12デフォルトの名無しさん:2011/02/14(月) 14:32:27
>>11
そんなシンタックスは無いだろ。釣りか?
13デフォルトの名無しさん:2011/02/14(月) 14:46:06
14デフォルトの名無しさん:2011/02/14(月) 16:37:35
>>11
こんなん出ましたけど
>>> import fortune
Has anyone realized that the purpose of the fortune cookie program is to
defuse project tensions? When did you ever see a cheerful cookie, a
non-cynical, or even an informative cookie?
        Perhaps inadvertently, we have a channel for our aggressions. This
still begs the question of whether the cookie releases the pressure or only
serves to blunt the warning signs.

        Long live the revolution!
        Have a nice day.
15デフォルトの名無しさん:2011/02/14(月) 17:56:16
>>14
fortune と futureは違うだろ。
16デフォルトの名無しさん:2011/02/14(月) 18:00:36
>>14
アホすww
17デフォルトの名無しさん:2011/02/15(火) 10:45:02
def index(iterable, cond):
 for i, x in enumerate(iterable):
  if cond(x):
   return i
 return None
みたいなのって、標準でないでしょうか。
18デフォルトの名無しさん:2011/02/15(火) 10:57:21
itertools.ifilter(cond, enumerate(iterable))
が近いかなぁ。
19デフォルトの名無しさん:2011/02/15(火) 11:13:53
今pythonのドキュメント見たら組み込み関数のページの先頭に関数一覧が追加されてて地味に改善してるんだなと感心した。
20デフォルトの名無しさん:2011/02/15(火) 14:01:35
前スレの話題ですけど、importの順番で挙動が変わるようなパッケージがあれば教えてください。
>>979
> それは同じだけど、例えば
> from math import *
> from cmath import *
> と
> from cmath import *
> from math import *
> は意味が違うよ。
のようなしょうもない話じゃなくて、
import aaa; import bbb

import bbb; import aaa
で挙動が変わるような例があれば教えてください。
21デフォルトの名無しさん:2011/02/15(火) 14:12:34
bbb.pyがsys.modules["aaa"] = someobjしてる場合とか
22デフォルトの名無しさん:2011/02/15(火) 15:15:02
それぞれが共通のモジュールを読み込んでいて、モジュールの変数を書き換えている場合

例えば、
import sys
sys.path.append('/home/aaa')
23デフォルトの名無しさん:2011/02/15(火) 15:32:00
>>22
なるほど。ありがとうございます。
ほかにはありませんか。こういうときに挙動が変わる、というのをもっと知りたいです。
24デフォルトの名無しさん:2011/02/15(火) 15:52:44
>>23
何でも人から教わるんじゃなくて、
importの原理は前のスレで説明したから
自分で考えるといいよ。
25デフォルトの名無しさん:2011/02/15(火) 19:15:07
FTPサーバのファイルのリストをGUIで表示したいんだけど何か良い関数ないですか?
tkFileDialogじゃサーバのフォルダは指定出来ないみたいなので
26デフォルトの名無しさん:2011/02/15(火) 21:02:53
Pythonで、
x ||= foo()
みたいなのってできないの?
いちいち if not x: x = foo() とかだるいんだけど。
27デフォルトの名無しさん:2011/02/15(火) 21:04:12
x!=foo()
28デフォルトの名無しさん:2011/02/16(水) 01:42:12
>>23
基本的に、副作用伴うものだったら、変わる可能性があると思った方がいい。
あと>>8は、例としてはちょっとアレだが、import文自体が副作用を伴うからモジュールに副作用がなくても動作が変わる例
29デフォルトの名無しさん:2011/02/16(水) 07:54:14
hoge = fuga() if hage else hige

というコードの場合
hage が False のときは fuga() は実行されないんですよね?
30デフォルトの名無しさん:2011/02/16(水) 08:01:43
import hoge if hage else hige
とかも無理っぽいですね
31デフォルトの名無しさん:2011/02/16(水) 08:04:30
>>27
それ代入されないですよね

>>26
x or= foo()
32デフォルトの名無しさん:2011/02/16(水) 08:06:48
>>30
なんかワロタ
33デフォルトの名無しさん:2011/02/16(水) 08:10:39
>>26
x = x or foo()
34デフォルトの名無しさん:2011/02/16(水) 08:41:05
スレ立ててテンプレ連投する奴って暇だよね、偽善者だし
35デフォルトの名無しさん:2011/02/16(水) 08:53:55
>>1












>>34
シーッ
おだてておけば何度でも次スレ立ててくれるから
そう思ってても誰も言及しないんだよ
36デフォルトの名無しさん:2011/02/16(水) 14:52:59
>>26
Rubyist?Pythonでコード書いたことある?
そんなのが必要なことはまずないはずなんだけど。
37デフォルトの名無しさん:2011/02/16(水) 14:54:54
そもそもPythonは英語を書くようにプログラミングできるのが楽しいのにばかだなー
38デフォルトの名無しさん:2011/02/16(水) 18:15:40
Pythonのライブラリリファレンスのショボさはどうにかならんのか。
使い方もよく分からんじゃないか。
39デフォルトの名無しさん:2011/02/16(水) 18:17:04
>>38
Pythonのリファレンスでしょぼかったら、Rubyなどどうなる。
分からないことがあったら、ここで何でも質問するといいよ。
40デフォルトの名無しさん:2011/02/16(水) 18:18:23
>>38
本家の英語版の構成が洗練されていないからどうしようもないよ
問題を感じなくなるまで慣れればいいさ
41デフォルトの名無しさん:2011/02/16(水) 18:21:46
>>39
お〜どうもありがとう。
Rubyのリファレンスはもっと酷いのかw
てっきり日本発の言語だから情報豊富かと思ったんだが
42デフォルトの名無しさん:2011/02/16(水) 18:26:00
マニュアル読んで意味不明の場合は
/usr/lib/python2.x/*.py の import するソースを見るのがお勧めっす

Pythonのソースは読みやすいし、実際にどういう設計になっているのかも分かって勉強になるよぉ
43デフォルトの名無しさん:2011/02/16(水) 18:36:32
>>40
頑張るw

>>42
ちょっとめんどくさいけどそれが良いかもね〜どうもありがとう
44デフォルトの名無しさん:2011/02/17(木) 00:31:21
黒魔術の多いC++やPerlだとソース嫁って言われると嫌だけど、
Python ならむしろ詳細な部分は日本語より判りやすい。
日本語は概要だけで、詳説はコードを嫁でおk
45デフォルトの名無しさん:2011/02/17(木) 00:41:34
少しでも長いソースコードだと Offside Rule を追い掛けるのが辛くて
目がショボショボしてくる
46デフォルトの名無しさん:2011/02/17(木) 01:27:49
python.jpのは見ない方が良いよね
47デフォルトの名無しさん:2011/02/17(木) 01:33:55
>>46
なぜ?
Python 2.6 だから若干古いが、十分使い物になるし、
最近は原文へのリンクもあって、日本語が理解出来ない場合はすぐに
英語に飛べるようになってるよ。
48デフォルトの名無しさん:2011/02/17(木) 01:40:31
またPython信者か。
>>36
>そんなのが必要なことはまずないはずなんだけど。
そう言い切る根拠はなに?君にとって必要なかったから?
49デフォルトの名無しさん:2011/02/17(木) 01:46:04
>>26
x = x or foo()
50デフォルトの名無しさん:2011/02/17(木) 03:27:27
ドキュメントは充実してるけどな。
あれだけで入門書はいらない
51デフォルトの名無しさん:2011/02/17(木) 04:10:08
>>49
それだと
var[1].name = val[1].name or 'default'
がめんどうだよね。面倒というか、同じものが2回繰り返されるのがちょっと。
左辺が短い変数ならいいけど。
せっかく 0 < val[1].value and val[1].value < 1 は 0 < val[1].value < 1 と書けるのに、残念。
52デフォルトの名無しさん:2011/02/17(木) 04:21:06
val[1].nameに0や[]が入っていて涙目、まで読んだ
53デフォルトの名無しさん:2011/02/17(木) 04:21:21
なんか「他の言語ではこんなに短くかけるのに!」ってレスが目立つな
pythonってそんな言語じゃなくね
54デフォルトの名無しさん:2011/02/17(木) 04:29:12
スキルの低い奴はそういう議論しかできないものさ
55デフォルトの名無しさん:2011/02/17(木) 09:14:17
>>47
日本語が間違ってる訳じゃないのに誤訳が多いからかえって混乱する
56デフォルトの名無しさん:2011/02/17(木) 09:16:23
>>51
当然
var[1].name = val[1].name if val[1].name else 'default'
と書きます
57デフォルトの名無しさん:2011/02/17(木) 10:42:04
>>55
見つけたら報告してあげなよ。
翻訳してる側だって日本人のボランティアなんだぜ。
58デフォルトの名無しさん:2011/02/18(金) 02:44:47
O/Rマッパ == IT土方支援ツール
59デフォルトの名無しさん:2011/02/18(金) 18:29:51
>>58
悪かったな!
むかしIronPythonで使えるO/Rマッパがろくに無かったから
自作してまで利用したよ!
60デフォルトの名無しさん:2011/02/18(金) 18:41:34
box battery
61デフォルトの名無しさん:2011/02/18(金) 19:13:30
ORマッパーってSQLテンプレートみたいなの?
62デフォルトの名無しさん:2011/02/18(金) 19:27:48
DBテーブルをクラスに置き換えるようなもの
そのクラス変数になにか書き込むと該当するレコードにその値がインサートされるみたいな

SQLに慣れている人にはおおむね不評だけど
SQLに慣れていない人には重宝される傾向があるよ
63デフォルトの名無しさん:2011/02/18(金) 20:04:29
>>62
分かりやすい解説thx!
64デフォルトの名無しさん:2011/02/18(金) 22:08:32
>>62
>SQLに慣れている人にはおおむね不評だけど
>SQLに慣れていない人には重宝される傾向があるよ

わろす
65デフォルトの名無しさん:2011/02/18(金) 22:34:49
RDBでよく使われるSQLは手続き型や
オブジェクト指向のプログラミング言語とは文法が違うから、
そのままシステムに組み込むと相性がわるいんだよ。

なので、手元ではDB上のレコードをインスタンス化することでアクセスしやすくしている。
レコードのカーソル移動はforループで表現する。
66デフォルトの名無しさん:2011/02/18(金) 22:37:59
それはORMの一部を表現してはいるけど
本質的な話じゃないね
67デフォルトの名無しさん:2011/02/18(金) 22:45:22
RDBMS嫌いだ。
NoSQL万歳。
68デフォルトの名無しさん:2011/02/18(金) 22:47:05
>>66
それでかっこいいことを言ったつもりかね。

SQLとプログラミング言語(Python)が相性がわるいということを説明して、
DB上のデータをPython上のオブジェクトとして扱えるようにしてることを説明している。

これで足りないってなら、難癖付けてないで
自分の言葉で補足してくれればいいじゃん。
69デフォルトの名無しさん:2011/02/18(金) 22:48:07
ACID性が必須なことというのはあるでしょ
関係データベースである必要があるかどうかはまた別だけど

>>65
LINQとかから見ると古い発想に見えるな
70デフォルトの名無しさん:2011/02/18(金) 22:50:58
関係代数。関係論理。ボイスコッド。閉包。うんぬんかんぬん。
全部わすれた。
71デフォルトの名無しさん:2011/02/18(金) 22:53:31
>>69
>ACID性
トランザクション処理は明示的に行うべきで、そこは隠蔽してないよ。

>LINQ
C#で実際そうだったように、言語に対して相当なチューニングが必要。
ま、PythonでもLINQを目指した実装はあるみたいだから、
興味があれば使ってみればいいよ。
72デフォルトの名無しさん:2011/02/18(金) 22:53:48
LINQは、メリットよりも、
言語仕様を複雑にしてることが気掛かり。
73デフォルトの名無しさん:2011/02/18(金) 22:55:12
>>71
あーまぎらわしかったかごめん
ACID性云々は、RDB嫌いNoSQLマンセーつってた人へのレスね
74デフォルトの名無しさん:2011/02/18(金) 22:56:08
ORMで実用レベルに達している物は皆無
75デフォルトの名無しさん:2011/02/18(金) 22:58:19
LINQはヘジスバーグが悪に魂を売った結果。
76デフォルトの名無しさん:2011/02/18(金) 23:00:41
正規化しなくてもいいじゃない。みつお。
77デフォルトの名無しさん:2011/02/18(金) 23:02:37
列指向データベースってなんですか
78デフォルトの名無しさん:2011/02/18(金) 23:20:59
BigTable
79デフォルトの名無しさん:2011/02/19(土) 11:03:04
>>74
>ORMで実用レベルに達している物は皆無
データベースに詳しそうですね。
実は自分でORMを作っているので、参考までに他のORMのどのへんが実用レベルに達してないか、語ってくれませんか。
80デフォルトの名無しさん:2011/02/19(土) 14:28:09
死にたい
81デフォルトの名無しさん:2011/02/19(土) 15:17:52
Pythonの公式サイトに中国語のメニューがあるんだか
いつからあるんだ?
82デフォルトの名無しさん:2011/02/19(土) 15:49:36
svn log -r 13591 https://svn.python.org/www/trunk/beta.python.org
------------------------------------------------------------------------
r13591 | georg.brandl | 2011-01-25 06:36:13 +0900 (Tue, 25 Jan 2011) | 1 line

Add Chinese-language download link leading to the alias /getit that is not blocked by the Great Firewall of China.
------------------------------------------------------------------------
83デフォルトの名無しさん:2011/02/19(土) 17:23:45
Great Firewallが関係してるの?
84デフォルトの名無しさん:2011/02/19(土) 17:51:48
Python 2.6.4 の 6.4 が
ちょうど天安門事件が起きた日なので
金盾で規制されたということらしい。
http://twitbrowser.net/49
85デフォルトの名無しさん:2011/02/19(土) 18:49:46
すごいな
もっとザルかと思ってたけどそんな細かいとこまでフィルターかかってるのか
86デフォルトの名無しさん:2011/02/19(土) 19:06:37
そのへん区別できないのは逆にザルじゃね
87デフォルトの名無しさん:2011/02/19(土) 21:09:57.52
これってSSLで通信しても検閲されちゃうの?
88デフォルトの名無しさん:2011/02/19(土) 21:24:15.00
国外とはHTTPSできない
89デフォルトの名無しさん:2011/02/19(土) 22:05:45.91
>>88
まじ!?
ぱねぇ〜な中国
9036:2011/02/19(土) 23:28:34.76
>>48
俺にとって必要ないってものあるけど、PythonはRubyがnilを返すようなところでは
大体例外を投げるからってのが理由。

どっちがいいかは好みの問題。
91デフォルトの名無しさん:2011/02/20(日) 00:10:19.70
Pythonでマルチスレッドの勉強をしております。

threading.Threadを使って別スレッドで処理を行っているのですが、
メインスレッドとは別で回しているスレッドはどのように処理されるのでしょうか?

別スレッドではループで処理を行っているのですが、そのループの回転が遅く
全力で処理していないように感じます。
92デフォルトの名無しさん:2011/02/20(日) 00:13:20.85
GIL
93デフォルトの名無しさん:2011/02/20(日) 00:14:39.94
>>91
GIL の所為カモね
9491:2011/02/20(日) 00:27:16.44
>>92, 93
ありがとうございます。
http://d.hatena.ne.jp/yatt/20110206/1296967613
こちらのページなどいくつかのページを読んでみました。

具体的にどのようなプログラムか書かせていただきまと、PyGTKを利用したダウンローダを製作しております。
メインスレッドはPyGTKのgtk.main()が走るかとおもうのですが、そこからスレッドを分けてダウンロード処理を
行わせております。
ダウンロードスレッドはバッファサイズごとにループで回しております。
ダウンロードスレッドにはダウンロードサイズをprintするようにしているのですが、全くプリントが行われず、
ファイルサイズも変わらないようなのでダウンロードは行われていないと判断しております。

ですが、当該のプログラムを起動中にC-cでプログラムを中止させようとすると
ダウンロードスレッドが動き出しprintもされ、ファイルサイズも変化します。
これはPyGTKのスレッドが殺されたことで後のスレッドに処理が移るようになったということでしょうか?

また、これはプログラムの処理では解決できないでしょうか?
95デフォルトの名無しさん:2011/02/20(日) 00:35:01.17
>>94
ダウンローダか。

しかもダウンロードのバッファを細かく制御するというのなら、
・そこだけC言語で拡張ライブラリ書く、もしくは同等のライブラリを用意する(libcurlとか)
・threadingでなしにmultiprosessを使う
形でGIL負荷過多を回避するといいんじゃないかな。

GUIのスレッドとダウンロードのスレッドは同一である必要性が全く無いので、
まずその段階でスレッドを分けるだろうけどね。
96デフォルトの名無しさん:2011/02/20(日) 00:40:46.18
>>94
GTK+でマルチスレッドプログラムを書くときは
gtk.main() の前に gtk.gdk.threads_init() を呼ばないといけないらしいよ。
俺も以前これで悩んだ。
9791:2011/02/20(日) 00:40:53.27
>>95
ありがとうございます。
現在multiprosessを調べています。

最後の2行はどう言った意味でしょうか?
引数でダウンロード設定を行えるPythonスクリプトを別に用意して、
os.popenなどで完全に別のプロセスとするということでしょうか?
98デフォルトの名無しさん:2011/02/20(日) 00:42:27.04
ダウンローダごときの並列性でGILは関係ないだろ。
99デフォルトの名無しさん:2011/02/20(日) 00:43:43.95
>>96
たぶん原因これ。
100デフォルトの名無しさん:2011/02/20(日) 00:51:59.56
GILが何なのかも分かってない奴が適当なことを言って初心者を混乱させるの図。
10191:2011/02/20(日) 00:52:12.29
>>96
まさにそれで解決できました。ありがとうございます。

解決はできたのですが、勉強中のため他のアプローチがあれば知りたいと思います。
他にもダウンローダのようなアプリケーションで処理を分割する方法があれば
よろしくお願いいたします。
102デフォルトの名無しさん:2011/02/20(日) 00:58:38.53
マルチスレッドでやるのがセオリー通りだと思う。
わざわざサブプロセス起動したりしないでしょ。
103デフォルトの名無しさん:2011/02/20(日) 01:00:52.06
よし、じゃあ全然分かってない俺に>>101の現象の説明と解決した理由をしてくれよ。
あとGILの説明もよろしく!
104デフォルトの名無しさん:2011/02/20(日) 01:07:47.79
理由: GTKは糞
105デフォルトの名無しさん:2011/02/20(日) 01:10:10.10
apache
106デフォルトの名無しさん:2011/02/20(日) 01:11:36.94
なるほど糞は褒め言葉ってことか。
>>104よ、お前糞だな。
107デフォルトの名無しさん:2011/02/20(日) 01:16:23.98
GILはこのスレのNGワード。
108デフォルトの名無しさん:2011/02/20(日) 01:18:18.49
そんなことより俺の部屋にゲジゲジが出現した怖い。
109デフォルトの名無しさん:2011/02/20(日) 01:43:31.12
ゲジは部屋を綺麗にしてればあまり出ない。
Gの天敵らしいので、(どっちもどっちかもしれんが)それなりに役に立つ虫でもある。
そんなことより>>103よろしく!
110デフォルトの名無しさん:2011/02/20(日) 02:18:18.55
すいません僕もGILってよくわかんないんです。
111デフォルトの名無しさん:2011/02/20(日) 03:59:35.78

どんなジャンルであっても、客層を広げる可能性を持っているのは玄人(くろうと)好みの商品ではない。
素人がカジュアルに楽しめる商品だ。カジュアルな商品こそそのジャンルの間口であって、それを軽んじる
業界は廃(すた)れる。新規の客を弾くからだ。
プロパーに評価される商品が悪いというわけではない。それは業界で確かに必要なものだろう。しかし、
それとは別に新しい客を連れてくる商品を冷遇するような業界は、決して社会のメインストリームにはなれない。
分かりやすいものを軽視する風潮には、商業的に成立するために不可欠な一般客への侮蔑(ぶべつ)がある。
自分の気に入った商品がバカにされるような業界に一体誰が金を落としたいものか。
112デフォルトの名無しさん:2011/02/20(日) 04:05:31.50
素人とか玄人とか変な拘りは要らないから>>103知ってる人は教えてね
113デフォルトの名無しさん:2011/02/20(日) 07:30:17.33
>>94
「ダウンロードスレッド」オブジェクトの「現在のダウンロードサイズ」を取得できるようにしておいて、
GUI絡みのコードは全部メインスレッドに集約しとけば起こらない問題じゃないか?
114デフォルトの名無しさん:2011/02/20(日) 07:49:53.73
>>109
Wikipedia/アシダカグモ
> 昆虫学者安富和男の著書『ゴキブリ3億年のひみつ』によると、
> アシダカグモが2・3匹いる家では、そこに住むゴキブリは半年で全滅するという。
SUGEE
115デフォルトの名無しさん:2011/02/20(日) 08:34:07.52
>>114
でも動きが半端なく速いしデカイよ。初見ならGより怖いと思う。
Python関係ないし>>103を教えてほしいんだが…。
116デフォルトの名無しさん:2011/02/20(日) 09:35:41.65
Qtは糞
117デフォルトの名無しさん:2011/02/20(日) 09:56:17.46
もう俺もお前もみんな糞でいいよ…褒め言葉だから
118デフォルトの名無しさん:2011/02/20(日) 17:11:20.84
Apacheはクソ。複雑すぎ。
MySQLはクソ。複雑すぎ。
世の中はもっとシンプルになるべき。
119デフォルトの名無しさん:2011/02/20(日) 17:26:09.26
「缶詰めの中に缶切りが入っている状態だ」
というフレーズを思いついたのだが、
それを使う場面が思いつかない。
120デフォルトの名無しさん:2011/02/20(日) 17:42:41.78
>>119
You've known already where you are standing.
121デフォルトの名無しさん:2011/02/20(日) 17:47:30.40
訳: こんなになってるって自分でもわかってるんだろ?楽になっちまえよ
122デフォルトの名無しさん:2011/02/20(日) 18:13:57.36
>>119
>「缶詰めの中に缶切りが入っている状態だ」

zip のパスワードがその zip ファイルに入ってるとか?
123デフォルトの名無しさん:2011/02/20(日) 18:26:06.07
この缶詰を作ったのはだれだあっ!?
124デフォルトの名無しさん:2011/02/20(日) 19:56:54.49
Gとゲジが戦ってるところを見たことがないのですがどうすれば見れますか?
125デフォルトの名無しさん:2011/02/20(日) 20:07:18.48
>>121
Translate: Take it easy, you've known already what your standing.
126デフォルトの名無しさん:2011/02/20(日) 20:18:27.79
It wouldn't have been better.
127デフォルトの名無しさん:2011/02/20(日) 20:25:31.36
You must insert a box battery.
128デフォルトの名無しさん:2011/02/20(日) 20:32:54.49
Danger! Danger! High Voltage!
129デフォルトの名無しさん:2011/02/20(日) 20:51:32.31
Why you should insert a box battery at least once in your life.
130デフォルトの名無しさん:2011/02/20(日) 20:55:27.01
Python is battery included, while my anus is a box battery inserted!!!
131デフォルトの名無しさん:2011/02/20(日) 21:07:47.67
what a dirty thread
132デフォルトの名無しさん:2011/02/20(日) 21:12:29.43
明日まとめて荒らし通報していい?
133デフォルトの名無しさん:2011/02/20(日) 22:04:40.28
明日から働く(キリッ
134デフォルトの名無しさん:2011/02/20(日) 22:19:05.57
Врасая гранат!
135デフォルトの名無しさん:2011/02/21(月) 12:34:51.72
最初は10行程度のコードで、そこからいろいろ機能追加でコードが膨らんでいくとき
どんな感じで関数化やクラス化、モジュール化をやっていくのがよい?
またはそんなことする必要ないのかな。
136デフォルトの名無しさん:2011/02/21(月) 13:13:02.14
>>135
ある程度まで作って全体像が見えてきたら、最初から書き直すとよい。

なぜなら、プロトタイプと本番は違うあり方のものだから。
137デフォルトの名無しさん:2011/02/21(月) 13:13:49.82
( ゚д゚)ポカーン
138デフォルトの名無しさん:2011/02/21(月) 13:54:41.04
>>136
超同意

>>135
コードが増えてきたら、関数にする。
関数が増えてきたら、クラスやモジュールにする。
ただ、使い捨てじゃなくて、あとから機能が増えていくのが十分予想できる場合は
あらかじめクラス化・関数化しておく。
あとは、自分でテストしやすい単位に分割することかな。
139デフォルトの名無しさん:2011/02/21(月) 13:56:32.82
>>136はなんて名前の作り方なの?
140デフォルトの名無しさん:2011/02/21(月) 14:06:26.30
>>139
さあ、なんだろうな。
普通にスクラップ&ビルドでいいと思うが。

コード書くのにストレスがかからない
スクリプト言語だからできる芸当とも言える。
141デフォルトの名無しさん:2011/02/21(月) 14:11:00.03
単に個人的な感想じゃねーか
142デフォルトの名無しさん:2011/02/21(月) 14:49:43.07
Python 3.2 released
143デフォルトの名無しさん:2011/02/21(月) 15:24:30.87
3.2リリース記念かきこ
144デフォルトの名無しさん:2011/02/21(月) 16:37:43.07
開発の努力は、標準モジュールおよびPython 3への移植のサポートに注力されました。
ハイライトは:

* unittestモジュールのさらなる改良
* PEP 3147, .pycリポジトリディレクトリ のサポート
* PEP 3149, バージョンタグ付きの動的ライブラリのサポート
* PEP 3148, 並行プログラミングのための 新しい futures ライブラリ
* PEP 384, 拡張モジュールのための安定したABI
* PEP 391, 辞書ベースの logging 設定
* オーバーホールされたGIL実装 -- contentionを減らす
* 拡張されたemailパッケージ -- bytesメッセージを扱う
* 大幅に改善されたsslモジュール -- SSL contexts と certificate hostname matching をサポート
* 設定情報にアクセスするためのsysconfigモジュール
* shutilモジュールへの追加 -- アーカイブファイルのサポートなど
* configparserの多くの改善 -- mapping protocolのサポートなど
* pdb (Pythonデバッガ)の改良
* bytes/string問題に関するたくさんの修正 -- bytes環境 (ファイル名、環境変数)の完全なサポートなど
* 数値演算の整合性/振舞いの多くの修正
145デフォルトの名無しさん:2011/02/21(月) 16:56:15.86
>> * PEP 3147, .pycリポジトリディレクトリ のサポート
これはちょっとうれしい。
146デフォルトの名無しさん:2011/02/21(月) 17:21:18.81
>>135
同じ処理を何度も書いてる(コピペし始めた)なーと思ったらモジュール化のチャンスだ
同じモジュールを別の用途にも使いまわしたいなーと思ったらクラス化のチャンスだ
147デフォルトの名無しさん:2011/02/21(月) 17:22:24.05
>>146
それ、対応が逆じゃね?
148デフォルトの名無しさん:2011/02/21(月) 17:29:30.91
>>147
おれも思った
Pythonの流儀ワカンネ
149デフォルトの名無しさん:2011/02/21(月) 17:40:50.66
関数とモジュールを間違えた説
150デフォルトの名無しさん:2011/02/21(月) 19:01:26.06
関数を共用しようとしたらモジュール化するんだから、良いんじゃね?
151デフォルトの名無しさん:2011/02/21(月) 19:09:29.92
>>145
え! pycファイルって何処に持って行っても動くもんだと思ってた
知らなかったぜ・・・
152デフォルトの名無しさん:2011/02/21(月) 19:39:50.51
>>151
これは、システムに Python 2.5 と 2.6 があるときなんかに、
同じ py のあるディレクトリをモジュール検索パスに登録しちゃうと、
Python 2.5 が 2.5 用の pyc を作って、 Python 2.6 が 2.6 用の
pyc を上書きして、って繰り返しになるのを避けるために pyc を
バージョンごとに分けるのが当初の目的。
pyc が大量発生してウザくならないように __pycache__ というディレクトリに
移動した。

が、それでわりとクリティカルなエンバグしてる > Python 3.2
一部のコードが間違って .py と同じディレクトリに .pyc を作ってしまう。
153デフォルトの名無しさん:2011/02/21(月) 19:51:28.25
LLVMフロントエンドはまだかね。
154デフォルトの名無しさん:2011/02/21(月) 21:32:20.48
*.pycって、2.5と2.6で違うの?
2と3とで違うのは分かるんだけど。
155デフォルトの名無しさん:2011/02/21(月) 21:50:15.06
>>154

$ hd /usr/lib/python2.6/re.pyc | head -1
00000000 d1 f2 0d 0a d8 e0 17 4d 63 00 00 00 00 00 00 00 |.......Mc.......|
$ hd /usr/lib/python2.5/re.pyc | head -1
00000000 b3 f2 0d 0a 5d b6 f2 4c 63 00 00 00 00 00 00 00 |....]..Lc.......|

先頭2バイトがマジックナンバーになっていて
これが違えばバイトコードの互換性がないということです
156デフォルトの名無しさん:2011/02/21(月) 23:54:56.96
>__pycache__ というディレクトリ

これの場所は当然バージョン毎に違う場所だよね?
157デフォルトの名無しさん:2011/02/21(月) 23:59:55.93
158デフォルトの名無しさん:2011/02/22(火) 00:54:25.34
Python 3.3が出たら移行するわ。
159デフォルトの名無しさん:2011/02/22(火) 12:42:37.33
Mac使ってる方どんな環境でPythonプログラミングしてますか?
昔はXcodeでもPython出来たって聞いたのですが
今はObjective-C専用環境になってしまったらしく無理っぽいです。
ちなみに自分はgVimで書いてますがプロジェクト管理をもうちょっと簡単にしたいです。
160デフォルトの名無しさん:2011/02/22(火) 14:11:26.85
>>159
プロジェクト管理とやらをもうちょっと詳しく。なにをどう簡単にしたいのか。
161デフォルトの名無しさん:2011/02/22(火) 15:47:41.23
GNU/ScreenとVimだけでやってる。VimはOmni補完もできるし。
162デフォルトの名無しさん:2011/02/22(火) 19:47:26.80
>>161
(・∀・)人(・∀・)ナカーマ
163デフォルトの名無しさん:2011/02/22(火) 20:52:56.68
vimはPythonとの親和性高いよな。
dd, yy, o, Shift+v, >>, <<
164デフォルトの名無しさん:2011/02/22(火) 20:56:49.33
vim使ってる人ってクリップボードからのペーストってどうやってるの?
インデントが無茶苦茶になるけど
165デフォルトの名無しさん:2011/02/22(火) 20:59:29.61
>>164
:set paste
166デフォルトの名無しさん:2011/02/22(火) 21:22:48.42
ありがとう。ひと手間いるんですね。
167159:2011/02/22(火) 21:24:54.71
>>160
プロジェクト管理はXcodeで使われてる「プロジェクト」って用語のままです。
つまりはアプリケーション管理ですね。
最近iPhoneアプリ作ってるのもあってXcodeを覚えだしたので
Pythonもこれで書けたら便利だなーって思ったのです。Xcodeは無理だったけど
もしかしてMacでPython向けのIDEがあったりするのでかなって思ったのです。
168デフォルトの名無しさん:2011/02/22(火) 21:26:55.17
Vim 慣れてくると、無意識でコマンドが打てるようになってて、
人間すごいって思う。

タッチタイピングも、意識するとどのキーがどこにあるのか
自信を持って答えられないけど、無意識だと全キーをすらすら打てる。

英語の勉強もこれと同じで、あまり考えすぎずに、とにかく神経回路に焼きつけて
反射的にできるようになることを目指すべきなのだろう。

ポエム終り。
169デフォルトの名無しさん:2011/02/22(火) 21:29:22.04
>>164
ぼくは :set noai 派です
170デフォルトの名無しさん:2011/02/22(火) 21:42:09.91
IDEを批判すると老害扱いされて収監される。
171135:2011/02/22(火) 23:23:32.42
>>136,138,146
遅くなったけどレスありがと。
たまにはちゃんとクラス化したりして
モジュールとして再利用できるようキレイに書き直さないといけいなぁと思った。
172デフォルトの名無しさん:2011/02/23(水) 02:00:30.41
EmacsとかPyDevで今まで仕事してたんだけど
この前KomodoとPyCharm試してみたよ。
思った以上に使えるね。

フォーリングが合ってる感じでPyCharmを買ってみた。
173デフォルトの名無しさん:2011/02/23(水) 02:10:01.35
フォーリングが合ってるVimからは浮気できない
174デフォルトの名無しさん:2011/02/23(水) 07:13:39.37
falling down
175デフォルトの名無しさん:2011/02/23(水) 09:04:52.36
>>152 >>154
なるほどー
と言うことはpython2.7で作成したpyoをpython2.6環境にもっていっても動かないかもしれないのか・・・
ちょっと試してみるっす
176175:2011/02/23(水) 09:20:42.77
RuntimeError: Bad magic number in .pyc file とメッセージが出て動かなかったよ
バージョンは2.6とか2.7のメジャー番号だけ合わせればよいのだろうか?
177デフォルトの名無しさん:2011/02/23(水) 11:20:51.07
>>175
動かないっつーか、特定のバージョンのPythonでコンパイルした
Pythonプログラムは、それだけで配布するなら
Pythonインタプリタも一緒に配布せんといかんでしょ。

ライセンス上ということでなしに、純粋にポータビリティーの確保として。
178デフォルトの名無しさん:2011/02/23(水) 11:23:32.04
>>176
バージョン番号の x.y.z は、 x = major, y = minor, z = micro
で、 minor まで一緒なら互換性がある。
179デフォルトの名無しさん:2011/02/23(水) 13:30:41.67
python searchが便利。日本語ドキュメント版誰か作らないかな?
http://goo.gl/BuaS1
180Perl忍者lvl2(悪) ◆M5ZWRnXOj6 :2011/02/23(水) 21:40:44.07
Python使いの技ってなに?
教えてくれないかな?
ぼくに

かっこいい名前のやつない?
マジカルインクリメントみたいな
181デフォルトの名無しさん:2011/02/23(水) 21:47:11.66
>>180
氏ね
182Perl忍者lvl2(悪) ◆M5ZWRnXOj6 :2011/02/23(水) 22:04:42.85
なんで氏ねっていわれなくちゃいけないんだろう

運なんだよねこれも

来未の運理論で検索してね ぼくのブログだから
183デフォルトの名無しさん:2011/02/23(水) 22:07:41.51
糞コテの上にマルチ
184Perl忍者lvl2(悪) ◆M5ZWRnXOj6 :2011/02/23(水) 22:08:33.50
あなたは、運についてしっていますか?
185デフォルトの名無しさん:2011/02/23(水) 22:09:59.85
何言ってんだ。技の名前に決まってるだろ。
理解したなら出てけ。
186Perl忍者lvl2(悪) ◆M5ZWRnXOj6 :2011/02/23(水) 22:12:52.06
ひゅひゅだよ
187デフォルトの名無しさん:2011/02/23(水) 23:00:08.76
以前このスレでPython公式ドキュメントの日本語訳が
進んでないという話があったけど、
今はオンラインで進められるようになってるみたいだね。
こんなサイトがあることを知った。
http://pootle.python.org/pootle/ja/python/
188デフォルトの名無しさん:2011/02/23(水) 23:04:23.52
当然お前らが活躍してるんだろ?
189デフォルトの名無しさん:2011/02/23(水) 23:23:03.66
>>187
それはまだ本格的に運用されていない。
日本語訳プロジェクトは今はGoogle Codeで運用されている。
コミット履歴はこんなもん。
http://code.google.com/p/python-doc-ja/source/list
190Perl忍者lvl2 ◆M5ZWRnXOj6 :2011/02/23(水) 23:31:23.34
120年後の未来では
韓国うまれのチョンソンに馬鹿にされたよPythonは
191デフォルトの名無しさん:2011/02/23(水) 23:50:17.02
>>189
稲田さんは精力的だなあ。
エキスパートPythonプログラミングを
さっき買ってきて、読み始めてるところ。

今のところ目新しい情報は特にはないけど、復習にはなるな。
192デフォルトの名無しさん:2011/02/24(木) 04:35:26.89
http://mail.python.org/pipermail/python-dev/2011-February/108215.html
Python 0.9.0 was released on 20 Feb 1991
Python 3.2.0 was released on 20 Feb 2011

愛されて20年
193デフォルトの名無しさん:2011/02/24(木) 04:38:22.57
>>180
角電池挿入
194デフォルトの名無しさん:2011/02/24(木) 08:22:11.05
>>191
がんばれPython信者!
195デフォルトの名無しさん:2011/02/24(木) 08:25:47.85
LLスレからゴキブリが出てきた
196デフォルトの名無しさん:2011/02/24(木) 08:38:30.88
もう意思表示は済んでるのであとはスルーで
197デフォルトの名無しさん:2011/02/24(木) 16:45:46.90
Wiki的なシステムで翻訳できるようにしてほしい...
198デフォルトの名無しさん:2011/02/24(木) 16:51:07.38
>>197
Wiki的なシステムを使っていて、原文のアップデートとの対応を
ちゃんと管理できてる翻訳プロジェクトってあるんかな?
199デフォルトの名無しさん:2011/02/24(木) 16:51:55.74
>>197
だから187のシステムでできてるって。
しかも汎用のWikiじゃなくて翻訳プロジェクト専用のものが。
200デフォルトの名無しさん:2011/02/24(木) 16:56:24.44
>>187
これでいいんだけど、例えばライブラリリファレンスが全部library.poに
まとめらえてたりするのはいただけない。デカすぎてわけがわからん。
各.rstファイルごとに.poファイルを作ってほしい。
201デフォルトの名無しさん:2011/02/24(木) 17:31:35.19
>>199
これは、Sphinxのi18n機能(開発中)のもののサンプルとして
pootle という翻訳インタフェースをつけたものなんだけど、
実際やってみようと思ったらテキストエディタでゴリゴリ書く方が速いんだよなぁ。

Python 3 からは、Sphinxのi18n機能で翻訳したいと思ってるんだけど、
それまでに使いやすいインタフェースが用意できるかどうかわかんない。
202デフォルトの名無しさん:2011/02/24(木) 18:08:37.04
ライブラリリファレンスの本が出たら売れそうだな
詳しい使い方付きでお願い
203デフォルトの名無しさん:2011/02/24(木) 18:10:13.87
でるよ(えいごで
204デフォルトの名無しさん:2011/02/24(木) 18:12:59.34
日本語でおk!日本語でおk!日本語でおk!
205デフォルトの名無しさん:2011/02/24(木) 18:19:18.21
"Python Modules of the Week"とか
206デフォルトの名無しさん:2011/02/24(木) 18:22:11.98
やっぱりRubyこそ最高だな。
情報も日本語だし本の出版数だって蛇なんか相手にならん
207デフォルトの名無しさん:2011/02/24(木) 19:11:24.98
はいはい、スレ違いスレ違い。
208デフォルトの名無しさん:2011/02/24(木) 19:13:39.28
日本は未来が暗いし、
英語の勉強くらいやっておこうぜ。
209デフォルトの名無しさん:2011/02/24(木) 19:57:18.91
おとこわりだ。
210デフォルトの名無しさん:2011/02/24(木) 20:05:11.68
英語だけで事足りる時代がいつまで続くか分からんしな…
211デフォルトの名無しさん:2011/02/24(木) 20:12:08.49
>>210
よし、俺と一緒にエスペラント始めようぜ。
212デフォルトの名無しさん:2011/02/25(金) 00:58:29.58
>>206
ruby は糞本が多い
213デフォルトの名無しさん:2011/02/25(金) 03:39:59.06
>>212
Pythonも同じようなもんだろ
214デフォルトの名無しさん:2011/02/25(金) 04:54:44.50
>>213
それを言われてはぐうの音も出ない
215デフォルトの名無しさん:2011/02/25(金) 05:22:24.96
本なんてrubyもpythonもいらないんじゃないの?
216デフォルトの名無しさん:2011/02/25(金) 07:44:32.45
国産ゲームでPythonをスクリプトエンジンとして使ってるものってある?
Luaならたくさんあるだろうけど。
217デフォルトの名無しさん:2011/02/25(金) 07:52:52.68
組み込みはLuaのほうが圧倒的に楽だからな〜。
218デフォルトの名無しさん:2011/02/25(金) 10:56:40.25
http://cobra-language.com/
pythonもいいけどcobraもいいね。
219デフォルトの名無しさん:2011/02/25(金) 19:49:33.80
ttp://python3wos.appspot.com/
ここってどの程度正確なんだろう

greenletが赤色になってるけど、ふつーに3.1のインストーラ配布されてるぞ

もっとも、setup.pyでなぜかsetuptoolsを使っているので
ソースからビルドする場合はsetup.pyを修正してdistutils使うように
直さないといけないし
PyCObject_FromVoidPtr()のせいで3.2ではコンパイルエラーになるようだったから、
その辺を考慮してのことなのかな

しかしいつになったら3.xのがメジャーになるのか全然わからんなこりゃ
220デフォルトの名無しさん:2011/02/25(金) 19:55:01.62
Perl6みたいになると思うよ
221デフォルトの名無しさん:2011/02/25(金) 20:11:16.40
If a module is red though it supports python 3 it's because
they don't have the "Programming Language :: Python :: 3" tag.
Consider contacting the maintainer to fix this.
だって。
222デフォルトの名無しさん:2011/02/25(金) 20:14:33.49
Python 3 に 2.x 互換モードとかあればよかったのにね
223デフォルトの名無しさん:2011/02/25(金) 20:16:51.46
>>221
なるほど、そういうことだったのか
サンクス
224デフォルトの名無しさん:2011/02/26(土) 01:08:27.58
NetBeans IDEってPython向きですか?
225デフォルトの名無しさん:2011/02/26(土) 01:10:27.34
Eclipse+PyDevでいいと思うよ
226デフォルトの名無しさん:2011/02/26(土) 04:08:36.03
pythonでもそうでなくても、eclipseよりnetbeansを使ったほうが良いって場合とか無いんじゃね
227デフォルトの名無しさん:2011/02/26(土) 04:23:57.28
eclipseですら過剰装備
228デフォルトの名無しさん:2011/02/26(土) 05:39:37.91
俺はアホなので、
printfデバッグしかできない。
229デフォルトの名無しさん:2011/02/26(土) 05:47:20.87
Python だと焼き畑デバッグがやり辛そうね
230デフォルトの名無しさん:2011/02/26(土) 07:38:12.07
vim で十分だし vim のキーバインドが苦手な人は 普通のエディターで十分
統合環境は生産性を著しく阻害する
231デフォルトの名無しさん:2011/02/26(土) 07:42:44.04
そう云う奴が多いし、その意図も分かるけど、はっきり言ってどっちでもいい
お前のやり方を押し付けるなとしか思わない
232デフォルトの名無しさん:2011/02/26(土) 08:16:35.96
スクリーンエディタは変態すぐる
GUIのvimでたら使う
233デフォルトの名無しさん:2011/02/26(土) 08:21:17.93
節子〜、それもうvimやない、gvimや。
234デフォルトの名無しさん:2011/02/26(土) 08:40:11.30
初心者としては統合環境を使いたいです。vimとかemacsとかはごめん
235デフォルトの名無しさん:2011/02/26(土) 08:58:52.91
            __,,..、、- - - .、、...,,___
       ,,、‐''"~ ̄            ̄``''‐、、
     /                      \
    /                         ヽ
   /                           ヽ
   /  / ~~` '' ‐- 、、 ,,__   __ ,,..、、 -‐ '' "~~\  ヽ
   |  /    __           ̄       __   ヽ  |
  .|  {  ´   ‐- ....__    __... -‐   `   } .|
  .|  〉,,・^'' - .,,      ~  i ~    __,,.- ^`・、.〈  |
./ ̄|  /,/~ヽ、  `'' ‐--‐ ,.| 、‐-‐'' "~   _ノ~\,ヽ | ̄ヽ
| (` | / ヽ,,_____`‐-、_、..,,___ノ八ヽ___,,.._-‐_'"´___,, ノ ヽ .|'´) |
| }.| ./'   \二二・二../ ヽ  / ヽ、二・二二/  'ヽ | { |
.| //| .|          / |  |. \         | |ヽヽ|
.| .| | .|        /    |  |.    \       | | | .|
|ヽ.| |      /     .|  |.     ヽ      .| .|./ .|
 |  .| |     /      |  |        ヽ     |  | /   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ヽ .| |    /       .|  |       ヽ    |  | /  |  用件を
  .ヽ.| |    /     '二〈___〉二`       ヽ   |  |./  <
    | |          `-;-′         |  |     |  聞こうか…
     iヽ|.      ,,... -‐"`‐"`'‐- 、、     |/i       \_________
     |  ヽ     /...---‐‐‐‐‐----.ヽ    /  .|
     |   ヽ.    ,, -‐ ''"~ ~"'' ‐- 、    /   |
    .|    ヽ         !          ./   .|
    ,,|     ヽ.         |        ./     |、
    |\.     ヽ            /     /.|
   .|.  \.      ヽ、____   ___/    /   .|
   '     `            ̄ ̄       ´     '
236デフォルトの名無しさん:2011/02/26(土) 09:58:15.46
vimとかemacsってリファクタリングはどうしてるんだろうっていつも思う
ちまちま手作業でやるんだったら使う気にならないな
237デフォルトの名無しさん:2011/02/26(土) 10:04:40.15
vim程度を満足に使えないスキルのない奴は何やっても駄目だって
238デフォルトの名無しさん:2011/02/26(土) 10:24:58.58
>>237
vimで統合環境とかipythonみたいに補完するのはどうやんの
239デフォルトの名無しさん:2011/02/26(土) 10:27:38.01
vim信者うざいけど、便利に使うにはどうせコマンドプロンプトやターミナルを複数起動することになるから
vimしか使えないという環境でもなければ、無理に使う必要はない
240デフォルトの名無しさん:2011/02/26(土) 10:33:25.75
リファクタリング → 元々ちゃんとコーディングできてない奴がやること、必要ない。
補完 → 無知・無能がコーディングする為の機能、必要ない。
241デフォルトの名無しさん:2011/02/26(土) 10:34:49.36
頭が静的(笑)
242デフォルトの名無しさん:2011/02/26(土) 10:42:32.18
>>239
tmux
243デフォルトの名無しさん:2011/02/26(土) 10:43:32.14
>>240
上は微妙だけど
下は完全に同意
244デフォルトの名無しさん:2011/02/26(土) 10:45:53.74
vimはいつから優越感に浸るためのツールになったんだよクソワロタ
245デフォルトの名無しさん:2011/02/26(土) 10:52:05.25
俺はこんな不便な環境でも仕事やってきたんだぜ

っていうロートルが騒いでるだけだろ。
246デフォルトの名無しさん:2011/02/26(土) 10:57:45.49
>>239
そこはscreenだろう
それとvimの複数起動とか何処の低脳だよTab使えTab
247デフォルトの名無しさん:2011/02/26(土) 10:58:50.58
>>245
vimが不便と思っているうちはまだまだド素人
248デフォルトの名無しさん:2011/02/26(土) 10:59:34.02
Pythonのスレだと思ってたらいつの間にかvim vs IDEの宗教戦争が始まってた
249デフォルトの名無しさん:2011/02/26(土) 11:03:12.33
>>246
vimの複数起動じゃねえよ馬鹿
250デフォルトの名無しさん:2011/02/26(土) 11:03:50.45
エディタ論争は他でやってね
251デフォルトの名無しさん:2011/02/26(土) 11:05:22.78
で結局IDEの何が悪いんだ?
252デフォルトの名無しさん:2011/02/26(土) 11:05:39.87
>>236
Pythonのリファクタリングツールというと多分これ
ttp://rope.sourceforge.net/

ropevimというのも提供されているようだけど、ぐぐってもほとんど情報が
出てこないので、多分誰も使ってない
253デフォルトの名無しさん:2011/02/26(土) 11:07:03.15
>>251
なんも悪くないよ
Python付属のidleだってIDEでしょ
254デフォルトの名無しさん:2011/02/26(土) 11:08:12.54
え?
255デフォルトの名無しさん:2011/02/26(土) 11:09:34.14
馬鹿には無理
256デフォルトの名無しさん:2011/02/26(土) 11:10:23.00
補完はneocomplcacheで我慢できるけどデバッガがなぁ
257デフォルトの名無しさん:2011/02/26(土) 11:12:31.06
>>256
そもそもPythonのデバッガってどれも安定性悪くない?
258デフォルトの名無しさん:2011/02/26(土) 11:14:38.85
>>246
Vimでtab使うくらいならgvimの方がどんだけ便利か
259デフォルトの名無しさん:2011/02/26(土) 11:16:42.43
IDEはコンパイルしてくれるし構文の間違いも指摘してくれるしコードの補完もしたくれて 便利じゃん。
vi厨はCUI操作をひけらかしたいだけ
260デフォルトの名無しさん:2011/02/26(土) 11:17:00.47
デバッガの安定性云々言う香具師はデバッガを使いこなせない低脳
261デフォルトの名無しさん:2011/02/26(土) 11:20:02.34
Pythonでデバッガとか情弱の極みだな
262デフォルトの名無しさん:2011/02/26(土) 11:34:39.78
>>258
マウスとか使っちゃう人なの
263デフォルトの名無しさん:2011/02/26(土) 11:36:16.19
Python厨にVimカッコイイの風潮が強いことは良くわかった。
264デフォルトの名無しさん:2011/02/26(土) 12:05:32.14
pdbでいいだろ
265デフォルトの名無しさん:2011/02/26(土) 12:07:01.78
>>262
使い分けができない人なの
266デフォルトの名無しさん:2011/02/26(土) 12:10:39.48
フロントエンドが欲しいよ
267デフォルトの名無しさん:2011/02/26(土) 12:22:13.38
キーボードから指離したくないというのはある
268デフォルトの名無しさん:2011/02/26(土) 12:23:09.35
>>263
多分もともと言語自体IDEとの相性がJavaや.NETほど良くはないのが
分かりきっているので、不快に思うのだろう
269デフォルトの名無しさん:2011/02/26(土) 12:34:21.33
キーボードから指を離すぐらいなら死を選ぶ・・・らしいよ
270デフォルトの名無しさん:2011/02/26(土) 16:18:18.91
vimでキーボードから手を離さずにタイピングしようが、
マウス使いながら人差し指一本でタイピングしようが、
プログラマの生産性の違いは微々たるものだ。

プログラマの生産性は、もっと知的で深い部分にあるからだ。
271デフォルトの名無しさん:2011/02/26(土) 16:54:34.36
でもGuidoはパックスパワーグローブ使い
272デフォルトの名無しさん:2011/02/26(土) 16:56:10.01
って、いま気づいたけど書き込み時刻の桁が増えてる?
衝突防止かなんかかしら
273デフォルトの名無しさん:2011/02/26(土) 17:08:06.92
TkinterでMenuのOpenがクリックされたらファイルの選択ダイアログを表示させたいのですが、
以下のコードだと起動したと同時にファイル選択ダイアログが出てしまいます。
どうすれば、Openを押したときにこのダイアログを表示するように変更できますか?

import Tkinter
import tkFileDialog

from Tkinter import *
root = Tk()
# create a toplevel menu
menubar = Menu(root)

menubar.add_command(label="Open", command=tkFileDialog.askopenfilenames())

# display the menu
root.config(menu=menubar)
root.mainloop()
274デフォルトの名無しさん:2011/02/26(土) 17:24:25.98
tkFileDialog.askopenfilenamesの関数呼び出しの括弧をとればたぶん動く

askopenfilenamesに引数を渡したものをコールバックとして渡したいなら
defやlambdaでくくったりする
275デフォルトの名無しさん:2011/02/26(土) 17:29:00.30
import Tkinter as Tk
import tkFileDialog

def getfilename():
  tkFileDialog.askopenfilenames()

root = Tk.Tk()
menubar = Tk.Menu(root)
mfile = Tk.Menu(menubar, tearoff=False)
mfile.add_command(label='Open', command=getfilename, underline=0)
menubar.add_cascade(label='File', menu=mfile, underline=0)
root.configure(menu=menubar)
root.mainloop()
276デフォルトの名無しさん:2011/02/26(土) 17:41:27.46
>>274-275
ありがとうございます。
()を付けるとその場で関数が実行されてしまうんですね。
277デフォルトの名無しさん:2011/02/26(土) 17:56:32.41
っていうかどうせ戻り値取得して処理続けるんだからdefでいいだろ
278デフォルトの名無しさん:2011/02/26(土) 18:05:28.36
>>277
もちろんdefで書いてたんですが、その時も()をつけてしまってまして…。
ここに貼るために現象が再現する最小限のものに書き換えさせてもらいました。
279デフォルトの名無しさん:2011/02/26(土) 18:15:46.71
まあ command=sys.exit みたいに一発で決めたい場合もあるしな
command=sys.exit() って書いたら立ち上がった直後に終了とか
280デフォルトの名無しさん:2011/02/27(日) 13:44:51.17
PSFライセンスのコードを改変したものはまたPSFライセンスになるのかな

Pythonの標準ライブラリ /usr/lib/python2.5/hoge.py をちょとだけ変更して
自作アプリと同じディレクトリに改変した hoge.py を置くイメージで
配布したいけどその場合ライセンスがどうなるかよくわからないっす

281デフォルトの名無しさん:2011/02/27(日) 14:42:10.11
>ちょとだけ変更して

普通に継承するだけじゃだめなんか?
282デフォルトの名無しさん:2011/02/27(日) 20:19:48.33
>>281
クラスではなく関数や定数を「継承」する方法があるなら継承でも良いだろう。
283デフォルトの名無しさん:2011/02/28(月) 00:56:16.21
大抵元のモジュールを普通にロード→モンキーパッチでいいんじゃないの
元のソースをあえて弄りたいっていうと、100行ぐらいある関数の1行だけ変えたい
とかそんなんだろうか
284280:2011/02/28(月) 04:58:22.86
>>281-283
レスありがとうございます
継承だけじゃ難しそうだと思っていたのですが、なるほどモンキーパッチという手がありましたね
普段やらないのでまったく選択肢に上がってきませんでした。これでなんとかなりそうです!

それはそうとPythonのライセンス関係を調べていたのですが・・・

PSFライセンスはPythonを利用する際のラインセンスでその日本語訳は以下のURLにあり
http://sourceforge.jp/projects/opensource/wiki/licenses/Python_Software_Foundation_License
PSFライセンスの項目2と項目3をみると、PSFライセンスを改変したらPSFライセンスになるようにも
見受けられます。

一方ドキュメントには http://www.python.jp/doc/nightly/license.html には
「GPL と違い、 変更したバージョンを配布する際に変更をオープンソースにしなくてもかまいません。」
と記載があります。

なんだか矛盾があるような気がして混乱しているのですが >>280 の様な使い方をした場合、
ライセンスがどのようになるのかどなたかご存じないでしょうか
285デフォルトの名無しさん:2011/02/28(月) 05:54:58.92
>>284
Copyrightと変更内容を書けとしか書いていようにみえるんだけど
286デフォルトの名無しさん:2011/02/28(月) 17:03:27.08
http://www.oreilly.co.jp/books/9784873114705/
この本立ち読みしてて思ったんだけど
海外では自然言語処理に一番使われてるのはpythonなの?
287デフォルトの名無しさん:2011/02/28(月) 17:24:51.55
>>286
俺が知ってるのはMITのコンピュータサイエンスの入門にPython使うって聞いた。

5分程度のエロ動画が入った30個ぐらいのzipを
1個1個順番に解凍していって1つのフォルダにまとめるPythonスクリプト作ろうと思ってます。
自分で作ってもいいんですが、どなたか既に作った方いたら公開してもらえないでしょうか?
自分の環境は2.5.5のMacOSXです。
288デフォルトの名無しさん:2011/02/28(月) 19:45:16.50
>>287
Pythonで作るのが目的じゃないなら
シェルスクリプトで外部コマンド使って書いた方が楽じゃない?
OSXだしそれをAutomator化すればスマートかな。
289デフォルトの名無しさん:2011/02/28(月) 19:48:36.02
>>286
らしいよ。
まあ、Linuxなんかほとんどシステム言語的な扱いで
最初からインストールされてるし、OOoとかBlenderとか
フリーウェアでもPythonありきで開発されてるから
当たり前と言えば当たり前なんだけど、日本が特殊なんだろ。
290デフォルトの名無しさん:2011/02/28(月) 20:30:47.67
WebプログラマとUnix系プログラマ以外は、
スクリプト言語(?)に見向きもしない人が大勢いるよね。
ちょっとした自動化をC#とかJavaでがんばって書いてる人を見るとうずうずする。
一度触ってもらえば便利さに驚くと思うのだが。
291デフォルトの名無しさん:2011/02/28(月) 21:06:01.86
Windowsじゃちょっとした自動化が手軽に書きにくいから、UNIX以外の人が興味ないのは自然じゃないの
292デフォルトの名無しさん:2011/02/28(月) 21:24:26.44
>>286
立ち読みは情報の万引き
293デフォルトの名無しさん:2011/02/28(月) 21:25:30.54
>>287
作ったのはあるけどテストしてないのでテスト動画を提供しなさい
294デフォルトの名無しさん:2011/02/28(月) 21:26:16.66
Windowsだと、
拡張子が気になる、パス通すのよりショートカット作るのが主流、コマンドプロンプト使いにくすぎ
で自動化とかのスクリプトはあんまり書こうと思わないな。
295デフォルトの名無しさん:2011/02/28(月) 21:28:53.58
自動化って考え方自体Windowsにはなじまない
ルート書き換えたりファイルコピーするくらいならバッチファイル使うだろうな
296デフォルトの名無しさん:2011/02/28(月) 21:43:16.66
欧米企業: 情報部門がUnixとPythonでサクっと片付ける
日本企業: MOUS保持者(笑)がExcelでクソみたいなVBAを書いて喜んでる
297デフォルトの名無しさん:2011/02/28(月) 21:52:25.33
>>296
このまえNHKニュースで、東証が不正取引監視システムを試作したとか言ってたんだけど、
それが何とExcelのマクロだった。この国は大丈夫なのか...
298デフォルトの名無しさん:2011/02/28(月) 21:53:43.01
まあもう使われることのない技術とはいえ、
PythonとVBA/VBScriptの生産性の差を考えたらぞっとしてくるよな……。
299デフォルトの名無しさん:2011/02/28(月) 21:55:49.19
ほんとOfficeって生産性低いよな
Officeの使用を禁止したら日本のホワイトカラーはかなり生産性あがるよ
300デフォルトの名無しさん:2011/02/28(月) 22:00:50.74
大丈夫、VBAとか使ったらいけないから

自分でマクロを組んで仕事をしていたら先輩に怒られた。先輩「お前、それはズルだから!!」
http://alfalfa.livedoor.biz/archives/51524722.html
301デフォルトの名無しさん:2011/02/28(月) 22:03:08.50
高慢だな
302デフォルトの名無しさん:2011/02/28(月) 22:06:03.44
欧米の研究者: 統計処理からグラフ生成までをPythonとかRで自動化する
日本の研究者: Excelで一生懸命マウスかちかちして喜んでる
これはマジ

303デフォルトの名無しさん:2011/02/28(月) 22:07:02.35
PythonとかRuby使ってたら

先輩「お前、それウルトラCだから」

とかいわれんのかな
304デフォルトの名無しさん:2011/02/28(月) 22:12:10.32
上司「他の人のパソコンで動かない物を作るな」
自分「え、インストールすれば動きますよ・・・」
上司「口答えするな!」
305デフォルトの名無しさん:2011/02/28(月) 22:16:38.25
っpy2exe
306デフォルトの名無しさん:2011/02/28(月) 22:18:49.21
>>302
R言語が使えると言ったらRubyの仕事を振られたでござる
307デフォルトの名無しさん:2011/02/28(月) 23:16:28.87
試しにあとでVBA触ってみようかな。どんな感じなんだろ。
308デフォルトの名無しさん:2011/03/01(火) 00:49:42.84
VBAでPythonを実装すればいい
309デフォルトの名無しさん:2011/03/01(火) 03:04:26.59
いつの間にかRubyスレ抜いてた
310デフォルトの名無しさん:2011/03/01(火) 05:46:14.10
行くぜCIA!
311デフォルトの名無しさん:2011/03/01(火) 08:02:35.65
Debian squeeze で、v3.1 の IDEL で日本語を扱えるのは分かるんだけども、
(Win7で確認) Linux上のIDELで日本語を入力するにはどうしたらいいのだろうか。
scim(?)をいれないダメ?
312デフォルトの名無しさん:2011/03/01(火) 13:24:10.59
>>284
PSFLはBSDスタイルライセンスだから、二次的著作物の利用についてのライセンスを、原著作物のライセンスと同一にする必要がないはず
313デフォルトの名無しさん:2011/03/01(火) 13:53:16.60
Rはcranがいいよね
pythonにも似たようなのあればいいのに
perlはcpanがあるのに
314デフォルトの名無しさん:2011/03/01(火) 14:46:55.64
>>313
PyPIじゃだめなの?
315デフォルトの名無しさん:2011/03/01(火) 15:32:32.43
>>313
PyPIがあるし、そこのリポジトリに対して
easy_installやpypmをかけられるよ。
316デフォルトの名無しさん:2011/03/01(火) 15:53:57.48
くだすれで質問したんですがレスがもらえなかったのでこちらに移します。

PythonでGUIアプリを作るときに、
ツールキットではなくそれをラッピングした
フレームワークって何かありますか?

Webフレームワークのように、アプリケーションを作りやすくする基盤に当たるものです。
317デフォルトの名無しさん:2011/03/01(火) 19:19:25.18
python < R

numpyにできることでRにできないことはない
318デフォルトの名無しさん:2011/03/01(火) 19:21:25.64
Rは汎用性ないから
319デフォルトの名無しさん:2011/03/01(火) 21:17:42.65
numpy < Rゆえにpython < Rとかプログラミングをやる前に論理の勉強からやり直したほうがいい
320デフォルトの名無しさん:2011/03/01(火) 21:41:54.45
winの中で、python使って自動化ってどんなことしてる?
仕事でも、家のことでもいいけど
321デフォルトの名無しさん:2011/03/02(水) 11:24:42.89
自宅のFTP鯖のアップロードとかに使ってる
322デフォルトの名無しさん:2011/03/02(水) 16:00:44.82
https://sites.google.com/site/pyconminijp/reports/videos
PyCon mini JP 2011/01 の講演の動画集。

『Python界隈の翻訳プロジェクト』なんて話題もある。
323デフォルトの名無しさん:2011/03/02(水) 16:54:01.55
>>322
翻訳の話おもしろかった!
324デフォルトの名無しさん:2011/03/02(水) 19:47:48.33
>>319 numpy < Rゆえにpython < Rとかプログラミングをやる前に論理の勉強からやり直したほうがいい

なぜか R の話が出てくると、このように他人を見下して喜んでいる阿呆が何時も出てくる


R で下のように多項式の加減乗除算ができるか?

from numpy import poly1d as p; print p([1,2,3,4]) + p([4,5,6,7,8])
4 3 2
4 x + 6 x + 8 x + 10 x + 12


R で下のように Jacobi の楕円関数が計算できるか?

import scipy.special as ss; print ss.ellipj(0.5,0.6);ss.ellipkinc(0.5,0.6)
(0.46902039497249631, 0.88318733522387172, 0.93167157381767651, 0.48818128077863659)

おまえに、楕円関数が分かるとは思えんが

325デフォルトの名無しさん:2011/03/02(水) 19:50:25.98
それは>>317につけるレスじゃないのか
326デフォルトの名無しさん:2011/03/02(水) 19:52:58.04
>>324
頭悪そう
327デフォルトの名無しさん:2011/03/02(水) 20:20:23.38
>おまえに、楕円関数が分かるとは思えんが
バロス
328デフォルトの名無しさん:2011/03/02(水) 20:54:40.34
フーリエ解析できるの?
329デフォルトの名無しさん:2011/03/02(水) 21:31:47.26
ドキュメント嫁
330デフォルトの名無しさん:2011/03/03(木) 00:41:19.58
numpy.fftとか
331デフォルトの名無しさん:2011/03/03(木) 11:19:16.10
Rをffi経由でpythonから呼べばいいじゃん
誰かそういうの作ってる人いないの?
sageにmaximaはあったけど
332デフォルトの名無しさん:2011/03/03(木) 11:52:53.13
numpy使ってる人って何やってる人なの?
俺にはあまりにも縁遠くて想像できない
333デフォルトの名無しさん:2011/03/03(木) 11:55:29.09
このスレでの以前の所業が
Matzやバトロワスレでネタにされててワロタ。

我ながら今さら見ると恥ずかしいレスをしていたものだ。
質問者の意図を正確に把握できないというのは
よくあることだから仕方ないにしても、
後から見て人から笑われないような回答をするよう
心がけないといけないな。
334デフォルトの名無しさん:2011/03/03(木) 11:56:52.31
>>332
内積とか外積とか出来るから、物理の宿題の計算で使った
335デフォルトの名無しさん:2011/03/03(木) 12:02:37.67
>>332
理系学生が研究で使ってるってのが一番多いんじゃね。
あと本業の研究者。
336デフォルトの名無しさん:2011/03/03(木) 12:11:43.00
NumPy は Cython とかで簡単に高速なC言語で実装した計算を追加できるけど、
R もできるんかな?
337デフォルトの名無しさん:2011/03/03(木) 18:32:06.08
メジャーな言語でCインターフェイスのない言語なんてあるのか
338デフォルトの名無しさん:2011/03/03(木) 18:38:24.39
http://www.okada.jp.org/RWiki/?R%A4%AB%A4%E9%C2%BE%B8%C0%B8%EC%CD%F8%CD%D1
できるが、Pythonでいうctypesみたいなもんで、
Cythonほど手軽では無さそうだな。
339デフォルトの名無しさん:2011/03/03(木) 20:50:04.57
Eclipseでエンコードutf-8で実行したら上手くいくのにシェルコマンド上でpython ***.py で実行するとascii codecs can't encodeになってしまう。。
原因が分かりますでしょうか?
340デフォルトの名無しさん:2011/03/03(木) 21:48:12.12
>>339の質問は取り消します。
スレ汚しすみません
341デフォルトの名無しさん:2011/03/04(金) 10:29:28.89
考えてたのに。。。
一生懸命考えていたのに。。。
342デフォルトの名無しさん:2011/03/04(金) 12:54:56.92
ctypes-opencvの開発の再開はまだか
343デフォルトの名無しさん:2011/03/04(金) 13:14:00.64
>>341
折角なので教えてください
344デフォルトの名無しさん:2011/03/04(金) 13:15:51.12
>>343
やっぱり取り消します
345デフォルトの名無しさん:2011/03/04(金) 15:01:21.56
ズコー
346デフォルトの名無しさん:2011/03/04(金) 16:33:09.92
>>297
そんなことは山根さんに聞いてくれ
347デフォルトの名無しさん:2011/03/04(金) 16:38:39.24
>>339
setdefaultencoding
348デフォルトの名無しさん:2011/03/05(土) 18:26:23.63
win環境でリッチなエディタはありませんか?
補完だとかIDE紛いな機能はあってもなくてもいいです
349デフォルトの名無しさん:2011/03/05(土) 19:07:38.30
pythonに特化したものならpyscripterで十分かと。
俺はnotepad++にプラグイン突っ込みまくって使ってるけど。
350デフォルトの名無しさん:2011/03/05(土) 19:22:50.63
python製のCコードの静的解析ツールってある?
351デフォルトの名無しさん:2011/03/05(土) 19:34:20.45
352デフォルトの名無しさん:2011/03/06(日) 09:20:42.58
>>348
vim, eclise(pydevプラグイン), pyscripter, xyzzy
俺はvimとeclipseを使ってる。
353デフォルトの名無しさん:2011/03/06(日) 09:22:14.87
pが抜けてたorz
354デフォルトの名無しさん:2011/03/06(日) 14:11:20.43
静的単一代入(せいてきたんいつだいにゅう、英: Static Single Assignment form, SSA)形式は、
コンパイラ設計における 中間表現 (IR) のひとつで、各変数が一度のみ代入されるよう定義されたもので
ある。もともとの中間表現における変数は「バージョン」に分割され、全ての変数の定義がバージョンを表現でき
るよう、通例新たな変数は元の名前に添え字を付けて表現される。SSA ではuse-def 連鎖が明示的であり、
連鎖は要素を一つだけ持つ。
355デフォルトの名無しさん:2011/03/06(日) 17:09:17.11
この旅館、高かったでしょ?
(実は半額だったなんて言えない)
356デフォルトの名無しさん:2011/03/06(日) 17:26:43.59
本屋で初ぱい(オライリー)立ち読みしてきた
筋力的に腕が磨かれた気がする
357デフォルトの名無しさん:2011/03/06(日) 17:32:34.78
>>356
みんぱいにはじぱい持ってるけど
みんぱいで簡単な事は組めるレベルになるし
はじぱいでは奥深い部分もわかっていいお
358デフォルトの名無しさん:2011/03/06(日) 18:09:38.28
総じて屑ぱい
359デフォルトの名無しさん:2011/03/06(日) 18:39:20.21
>>356
最新の原著(第4版)は1216ページだよ^^
個人的におすすめなのは、Dive Into Python 3かな。
Webで読めるし
360デフォルトの名無しさん:2011/03/06(日) 18:43:34.44
Pythonなんて本一冊も持ってないけど
入門書を買って独習したCやJavaより使えてるわ
今じゃ速度以外に欠点がなくてPythonしか使わない
361デフォルトの名無しさん:2011/03/06(日) 20:37:54.95
psyco楽しー
362デフォルトの名無しさん:2011/03/06(日) 21:08:55.65
>>360
GUI欲しい時もPythonで十分って感じ?やり方しだいなのかなぁ。
363デフォルトの名無しさん:2011/03/06(日) 21:11:23.75
PythonでのGUIがいまいちわからん;
364デフォルトの名無しさん:2011/03/06(日) 21:12:04.43
guiはqt使うの?
365デフォルトの名無しさん:2011/03/06(日) 21:18:10.77
tkかwxで書いてるけど
どれでもCと比べりゃかなり簡単に作れるんじゃない
366デフォルトの名無しさん:2011/03/06(日) 21:35:02.80
Linax の世界では、C,C++,C#に並んで、主要なGUI開発言語だしね。
367デフォルトの名無しさん:2011/03/06(日) 21:38:40.45
とりあえずどこから(略
368デフォルトの名無しさん:2011/03/06(日) 21:55:03.59
今からGUI勉強するなら、wxpythonとqtとtkとどれがいいだろ?
369デフォルトの名無しさん:2011/03/06(日) 23:08:16.87
こんな画像を保存してあった
http://iup.2ch-library.com/i/i0257380-1299420420.jpg
370デフォルトの名無しさん:2011/03/06(日) 23:54:34.93
>>368
Qt か wx だな。どちらかと言えば Qt
371デフォルトの名無しさん:2011/03/06(日) 23:56:58.17
>>370
勉強するには参考図書などあればいいんだけど
何がいいのかな…
372デフォルトの名無しさん:2011/03/07(月) 04:33:18.15
373デフォルトの名無しさん:2011/03/07(月) 08:24:10.37
>>348
eric4
374デフォルトの名無しさん:2011/03/07(月) 08:27:48.94
IDLEとEclipse+PyDevしかないわ
Winのテキストエディタは使えないものばかり
375デフォルトの名無しさん:2011/03/07(月) 08:29:52.38
>>368
wxPython
376デフォルトの名無しさん:2011/03/07(月) 08:37:45.05
wxで全部事足りるのでドキュメントが少ないPyQtはスルーした
377デフォルトの名無しさん:2011/03/07(月) 09:37:21.69
wxWidgets (C++) の方のドキュメントは Qt4 (C++) に比べると糞だけど
PyQt4 と比べた場合は wxPython の方が充実してるんだよなぁ
378デフォルトの名無しさん:2011/03/07(月) 09:58:13.82
PyScripterとか、シンプルでなかなかいいと思うよ。
379デフォルトの名無しさん:2011/03/07(月) 09:59:49.55
大規模なライブラリに対するラッパーは、
ラッパー自体のドキュメントに頼るんじゃなく、
元のライブラリのドキュメントを読んでから、どうラップされてるかを考えるべき。

Qt、PyQt/PySideのことね。
380デフォルトの名無しさん:2011/03/07(月) 10:18:57.28
C++ で Qt4 使えるようになった後だと
PyQt4 もスラスラ使えるようになったな
それまではさっぱりだった

だけど wx の場合は逆だった

381デフォルトの名無しさん:2011/03/07(月) 10:22:17.58
pythonのスレなのでwxが王道ということですね
382デフォルトの名無しさん:2011/03/07(月) 10:31:06.62
>>381
別にそれでいいと思うよん。
軽量でかつひと通りの機能があるし。
wxの方がお手軽なのは確か。

オレはQtでサポートされてる高度なWidgetや
きれいな描画を求めるからQt系を使うけど。
383デフォルトの名無しさん:2011/03/07(月) 10:43:14.12
高度なWidgetときれいな描画という語彙のなさ…これがQt信者の実態だ。
真人間ならTkinterを使おう、wxなどゴミ以下だ。
384デフォルトの名無しさん:2011/03/07(月) 11:03:22.84
py2exe でまとめて配布しようと思ったときに
wxPython だとほぼ一つの exe で済むんだけど
Tkinter だと標準装備のくせに一つの exe に収まらずに
でっかいディレクトリいっぱい作ってくれるから嫌いになった
Qt は知らん
385デフォルトの名無しさん:2011/03/07(月) 11:31:54.08
pythonに標準装備のくせにわざわざexe化する意味が分からん
wxは別途インストールするのが面倒だからexeにするけど
386デフォルトの名無しさん:2011/03/07(月) 11:49:34.72
Python入れてない相手に「使いたいならPythonインスコしろ」ってか?
そりゃ入れて損するもんじゃないけど、言うこと聞いてくれないやつは多いでしょ
387デフォルトの名無しさん:2011/03/07(月) 12:04:47.85
Windowsでtkとか頭湧いてるな
388デフォルトの名無しさん:2011/03/07(月) 12:59:44.97
Joel Spolsky 「Pythonはアスペルガー症候群ギーク向けの言語」
389デフォルトの名無しさん:2011/03/07(月) 13:01:23.49
Anti-Pythonはレッテル貼りのきな臭い自称言語学者
390デフォルトの名無しさん:2011/03/07(月) 13:45:05.88
まともなGUIライブラリは存在しない。
391デフォルトの名無しさん:2011/03/07(月) 14:52:14.34
WindowsでRubyはアホだが
WindowsでPythonは褒めてやりたい
392デフォルトの名無しさん:2011/03/07(月) 15:25:40.48
いつも「なんで日本は ipv6 にそんなに 熱心なんだ?」とか「なぜ日本じゃ Ruby があんなに流行ってるんだ?」 とか尋かれるたびに、
オレは「歪んだナショナリズムじゃないかなあ…」と 答えてきた。

正直いって、何もしなくてもすでに日本のソフトウェア技術はだいぶ下だと思うけど (実際には「技術はあってもビジョンがない」という印象)、
世界での「ソフトウェア知名度」を上げることだけを目標とするなら、 外人の前に出ると急に弱気になって押しがヨワくなっちまう日本人には
どだいムリな話である (ruby はアメリカ人に広めてもらえるようになってよかったよね)。

結局、日本で Ruby が異常に流行っているのは 「自分自身の感覚をアテにできない人が多い」というだけのことにすぎない。 彼らは他人から
プッシュされたものでないと使う気になれないのである。 これはとても気の毒なことだ。 ま、ファッションも音楽もすべてマスコミに流行らされる国だからよ

しょせん 「きれいな Ruby プログラム」などというのは「おいしいウンコ」のようなものである、

Perl は基本的に書く側のことしか考えていなくて、読者のことを考えた言語ではない (Rubyもそう)。

「通」の気分をあじわう、あるいは仲間が欲しいなら Ruby をおすすめします。 どんなつまらんプログラムでも「Ruby で実装しました」というだけでホメてもらえます。 楽しいですよー。

393デフォルトの名無しさん:2011/03/07(月) 15:33:10.20
うんこうめぇ
394デフォルトの名無しさん:2011/03/07(月) 19:26:34.16
cpenオーサーに日本人すげー沢山いるじゃん
CGI関係では日本が進んでるという話もあるな
395デフォルトの名無しさん:2011/03/07(月) 19:28:34.75
cpen->cpan
396デフォルトの名無しさん:2011/03/08(火) 07:20:58.95
プログラミング = プログラミング言語 だと思っている
アホは総じてラベルが低い。
397デフォルトの名無しさん:2011/03/08(火) 08:58:43.86
>>392
どうしてPython信者はこうキモいんだろう。
398デフォルトの名無しさん:2011/03/08(火) 10:00:02.45
ruby信者のマッチポンプ乙
399デフォルトの名無しさん:2011/03/08(火) 10:14:03.15
ということにしたいのですね
400デフォルトの名無しさん:2011/03/08(火) 11:02:48.87
コンパイラの実装たのしいよ
401デフォルトの名無しさん:2011/03/08(火) 11:12:51.89
RubyとかC++のtemplateとか使うと、
言語の機能をエレガントに使うことに注意が行ってしまって、
本質的なことが全然進まなくなる。
俺がアホなだけかもしれないけど。
402デフォルトの名無しさん:2011/03/08(火) 12:01:44.75
>>401
低能にRubyは使えこなせない。
403デフォルトの名無しさん:2011/03/08(火) 12:08:17.39
ror hacks basements but not elegant
404デフォルトの名無しさん:2011/03/08(火) 12:18:28.27
Win環境でのオススメRADはありますか?
405デフォルトの名無しさん:2011/03/08(火) 12:21:05.90
>>404
PythonにおけるRADとは何ぞや?
406デフォルトの名無しさん:2011/03/08(火) 13:25:03.59
メモ帳.exe
407デフォルトの名無しさん:2011/03/08(火) 14:07:03.02
408デフォルトの名無しさん:2011/03/08(火) 16:10:44.43
>>404
> PythonにおけるRADとは何ぞや?
そのままだけど
C/C++ + MFC におけるRADとは何ぞや? VC++
C/C++ + VCL におけるRADとは何ぞや? BCB
C/C++ + QtSDK におけるRADとは何ぞや? QtCreator
では、Python + xxx におけるRADとは何ぞや?
ということです
xxxの部分はwx,qt,fox,tk,gtk...など
Win環境で快適なRAD環境を構築できるならば気にしません
409デフォルトの名無しさん:2011/03/08(火) 16:30:43.37
PyDevやらPyScripterやらEclipse+Python(なんだっけ?)やら、
色々あるとおもうんだが。

なにか特定の環境の感想を聞くならともかく、
最初の一つを探すならググッたほうが早いんじゃね?
410デフォルトの名無しさん:2011/03/08(火) 16:35:14.44
>Eclipse+Python

それがPyDevじゃなくて?
411デフォルトの名無しさん:2011/03/08(火) 16:35:25.89
ScreenEditor: Any editor without emacs
TextEditor: Any liked: Notepad++, Editra
IDE: IDLE, PyScripter, Eclipse+PyDev
412デフォルトの名無しさん:2011/03/08(火) 19:18:22.52
Why Emacs without?
413デフォルトの名無しさん:2011/03/08(火) 19:44:23.48
python-mode works for me!
wht wrong with it? you suck.
414デフォルトの名無しさん:2011/03/08(火) 20:27:57.41
>>409
ここ2,3日で自分なりに探し試してはいるけど
どれもイマイチなので尋ねてみた次第です。

RADと呼ばれる条件の中で自分が求めるものは
ポトペタ出来るのか
プロトタピング向きか(修正に強いか)
の二つ。

Tkinterのrapyd-tkは扱いづらいのでイマイチ、基本的に遅いので他を探す気になれない
glade,ui,xrcなどのxmlを吐くタイプのものは修正しづらくバインドも面倒
fltk,foxは終わってるようなので選択肢はwxPythonになり
wxGladeは修正はできてもデザイナが扱いづらく不安定
wxFormBuilderは修正がダメ
消去法でVisualWX+エディタとなったけど
VisualWX側が外部エディタでの編集を想定していないので
これもイマイチなんですよね
ソースも公開して無いから弄れないし。
415デフォルトの名無しさん:2011/03/08(火) 20:39:42.94
「RAD」って最近は使わない用語だよね。90年代みたい。
416デフォルトの名無しさん:2011/03/08(火) 20:44:53.22
ポトペタ出来るのかとかさあ…LLでやることじゃなくね
417デフォルトの名無しさん:2011/03/08(火) 20:47:48.51
>>414
それならまず、「GUIアプリの開発」と区切らないとだめだよ。
PythonはCUIもウェブもGUIもできる汎用言語なんだから。

HTMLのフォームでポトペタだってあるわけで。
418デフォルトの名無しさん:2011/03/08(火) 20:51:19.55
>>414
wxGlade は糞
wxPython 使うなら付属の XRCed 使うのが一番良い
419デフォルトの名無しさん:2011/03/08(火) 21:05:23.28
>>415
確かにDelphiやVBなイメージですねぇ
でも他に当てはまる言葉を知らないもので申し訳ない

>>417
GUIの存在しないRAD環境というのは想像できないので
意味が分かんないです、すいません

>>418
修正不要ならxmlからコード生成すればいいんですが
途中で修正したくなった場合にも対応できます?
所謂プロトタイピングにも向きますか?
マージが大変そうなので全部Dockにして場を濁しちゃいそうです
420デフォルトの名無しさん:2011/03/08(火) 21:08:23.74
qtcreator+pysideがいいよ
421デフォルトの名無しさん:2011/03/08(火) 21:15:13.16
>>419
>途中で修正したくなった場合にも対応できます?

当たり前です

だから wxGlade は糞なんです
422デフォルトの名無しさん:2011/03/08(火) 21:25:42.60
>>420
QtCreatorで使えるのかぁ
参考になるサイトなどあれば紹介お願いします

>>421
試してみます
423デフォルトの名無しさん:2011/03/08(火) 21:28:46.46
qtcreatorじゃないやqtdesignerだった
424デフォルトの名無しさん:2011/03/08(火) 21:56:12.58
>>422
ちょろっと試してみました
時間を15分程無駄にしました。
勘弁してください

>>423
試す前に気づいてよかったです
425デフォルトの名無しさん:2011/03/08(火) 21:58:39.96
× >>422
>>421
ミス
426デフォルトの名無しさん:2011/03/08(火) 22:03:30.30
wxはコーディングするのに意味がある
だからC++では糞とされるのだ
427デフォルトの名無しさん:2011/03/09(水) 08:18:37.14
何でおまえらpysideのwin版リリースされてるの教えてくれなかったの・・・
428デフォルトの名無しさん:2011/03/09(水) 10:40:10.99
え?PySideのWindowsバイナリ、3用のが無いじゃん

まさか3系に対応してないの?
ソースからコンパイルしたらいけるんかな
429デフォルトの名無しさん:2011/03/09(水) 10:58:45.20
>>427
pysideのWin版なんてずっと前からあるよ。
むしろPythonライブラリでWindowsに対応してないものなんて未だ見たことない。

>>428
Windowsでビルド通ったようなら記事にしてくれー。
Gentoo Linuxだとビルドが自動化されてるからできたけど、
Windowsだと難易度高すぎて詰んだ。
430デフォルトの名無しさん:2011/03/09(水) 12:48:27.12
前見たのは半年くらい前なんだ
もしかしてその頃からunofficialならあったのか
それならそうと
431デフォルトの名無しさん:2011/03/09(水) 23:41:27.68
駄目だコンパイルできない

誰かPython3.2用のバイナリ作ってくれ
432デフォルトの名無しさん:2011/03/09(水) 23:42:26.28
2to3.py
433デフォルトの名無しさん:2011/03/10(木) 02:50:06.96
>>429
> PythonライブラリでWindowsに対応してないもの

mwlib... 一応がんばってる人はいるみたいなんだが。
http://code.pediapress.com/wiki/wiki/WindowsSetup


434デフォルトの名無しさん:2011/03/10(木) 15:29:50.86
ctypesでwindowsで使えないものがあるとか?
435デフォルトの名無しさん:2011/03/10(木) 21:46:55.86
Python Tools for Visual Studio
An integrated environment for developing Python in VS2010
Supports CPython and IronPython
http://pytools.codeplex.com/
436デフォルトの名無しさん:2011/03/10(木) 22:19:35.28
何そのゴミ
437デフォルトの名無しさん:2011/03/10(木) 22:24:48.93
TextMateみたいなのwindowsにないのかな
438デフォルトの名無しさん:2011/03/10(木) 23:47:12.59
notepad++がまともなインターフェイスだと最高なんだけどね
439デフォルトの名無しさん:2011/03/11(金) 00:11:17.05
PySide、サイトを見てみるとやっぱりPyhton3対応は
今の所無理みたいだな

しかし、今更2系には戻れんし困ったな
440デフォルトの名無しさん:2011/03/11(金) 08:18:03.90
>>437
vimに、プラグイン入れればできるよ。
441デフォルトの名無しさん:2011/03/11(金) 09:41:04.90
RedCarかIntypeみたいだけど
前者はRubyでPCを汚染しないといけないみたい
442デフォルトの名無しさん:2011/03/11(金) 10:54:03.80
>>441
日本語でおk
443デフォルトの名無しさん:2011/03/11(金) 11:12:24.06
どっちかというと442の読解力の方に問題を感じざるを得ないな
444デフォルトの名無しさん:2011/03/11(金) 11:17:14.12
emacsでpython modeが微妙なのは
みんな違う環境使ってるからなんだろうかなあ
445デフォルトの名無しさん:2011/03/11(金) 11:19:31.28
>>443
は?
446デフォルトの名無しさん:2011/03/11(金) 11:42:55.12
>>437
vim
notepad++
intype
emeditor
447デフォルトの名無しさん:2011/03/11(金) 11:59:12.47
>>445
聞いてたとおりruby信者は行間や含みすら読めないバカなんだな
448デフォルトの名無しさん:2011/03/11(金) 12:58:55.31
>>447
え?
449デフォルトの名無しさん:2011/03/11(金) 13:00:23.89
自分の意見が正当と思えないときによく使われる「え?」というレスだが
不愉快極まりないのでやめてほしい、馬鹿は書きこまないでくれ。
450デフォルトの名無しさん:2011/03/11(金) 13:22:37.08
>>449
え?
451デフォルトの名無しさん:2011/03/11(金) 13:45:18.25
えっていう
452デフォルトの名無しさん:2011/03/11(金) 14:42:11.14
ネタじゃなくてガチで今までPythonをフィトンと呼んでた俺に何か質問ありますか
453デフォルトの名無しさん:2011/03/11(金) 14:48:01.71
どこをどう読めばそうなるの
454デフォルトの名無しさん:2011/03/11(金) 14:49:33.89
気持ちはわかる
455デフォルトの名無しさん:2011/03/11(金) 18:44:57.98
phyton
456デフォルトの名無しさん:2011/03/11(金) 18:46:22.21
phycon
457デフォルトの名無しさん:2011/03/11(金) 21:08:29.39
サイコンとガーファンクル
458デフォルトの名無しさん:2011/03/11(金) 23:19:33.45
>>446
vimはスクリーンエディタなので使えなかった
notepad++は全く違う上に最新版では古いプラグインが使えない
intypeは開発が止まっててエディタとしての機能すら提供されていない
emeditorはtextmateのかすりもしなかった、どういう使い方してるの?
459デフォルトの名無しさん:2011/03/11(金) 23:29:13.03
うーむ。

オレは主にEmEditorで開発してる。
純粋に強調表示、入力支援してくれるエディタとして使ってるだけ。
デバッグ機能とかは無い。

プラグインとかで追加できるのかなあ。
460デフォルトの名無しさん:2011/03/11(金) 23:50:31.26
gvimでなんか問題あんの
461デフォルトの名無しさん:2011/03/11(金) 23:56:59.68
>>459
デフォルトのスニペットプラグイン
462デフォルトの名無しさん:2011/03/12(土) 00:24:49.73
適当にぐぐっただけで使ってないけど、これはどうかな。
TextMateのコマンドとスニペットをサポートしているらしい。
http://www.e-texteditor.com/
463デフォルトの名無しさん:2011/03/12(土) 00:25:52.43
たけえよ
そもそも有料ならそれで済むわ
464デフォルトの名無しさん:2011/03/12(土) 00:39:15.97
Eclipseではだめなの?
465デフォルトの名無しさん:2011/03/12(土) 00:41:37.29
阪神大震災の頃から秀丸一筋ですが何か?
466デフォルトの名無しさん:2011/03/12(土) 00:42:12.60
補完とかIDEのような機能はいらんのだよ
467デフォルトの名無しさん:2011/03/12(土) 01:05:45.21
Pythonはあまり大規模な構文がないから、
コードスニペットとかの機能は
あまり欲しいという気はしない。

まあクラスやメソッドのテンプレはあってもいいかも。
468デフォルトの名無しさん:2011/03/14(月) 18:12:43.79
Pythonでファイルをダウンロードして
urllib.urlretrieve()を動かそうとしたんですが、
どのフォルダに指定してもパーミッションエラーになって正常に動作しません。
なにか設定が必要なんでしょうか?

http://pastebin.com/S5HVVHqp
469デフォルトの名無しさん:2011/03/14(月) 19:01:33.24
>>468
http://docs.python.org/library/urllib.html#urllib.urlretrieve
ディレクトリ名じゃなくて、ファイル名を指定するんじゃないか。
"." というファイル名が使えるファイルシステムってあるのか?
470デフォルトの名無しさん:2011/03/14(月) 19:05:27.96
>>469
あ、なるほど。ディレクトリ名じゃなかったんですね。
原因が分からなくてurllib2で実装しなおして既に動くようになってるんですが、
原因が分かってすっきりしました。
ありがとうございます。
471デフォルトの名無しさん:2011/03/14(月) 19:06:49.24
urllib.urlretrieve(url,"./%s" % (url.split("/")[-1]))
472デフォルトの名無しさん:2011/03/17(木) 18:29:13.75
Pythonでアクセスカウンタをつくりたいのですが、gifcat.plのようなものはPythonでありませんか?
473デフォルトの名無しさん:2011/03/17(木) 18:46:51.23
474デフォルトの名無しさん:2011/03/17(木) 19:05:34.96
次に>>472は「鯖にインストールできません」と書き込む
475デフォルトの名無しさん:2011/03/17(木) 19:28:43.68
なんでpython ってfor文がこんな糞なの?
cライクにしろよぼけ
476デフォルトの名無しさん:2011/03/17(木) 19:41:25.79
/* C */
for (i=0; i<10; i++) printf(i);

# Python
for i in range(10): print i

for文で0から9まで表示します
どちらが分かりやすいでしょう?
答え: Python
477デフォルトの名無しさん:2011/03/17(木) 19:48:33.64
>>475
どう糞なのかを具体的に書けよ。
Pythonのforループが、今みたいになっているのはいくつか利点があるから。
・アクセスの効率よさ(インデクシングが必要ないから)
・ミスの減少(上と同様の理由から)
・一貫性(必要なインターフェイスがあれば、様々なオブジェクトに適用できる)
それに、Cライクで書きたいときは、range関数使えばいいだろ。
478472:2011/03/17(木) 19:59:23.23
>>473
すみません。手元の環境では使えたのですが、
>>474のいうとおりレンタルサーバで使えませんでした
479デフォルトの名無しさん:2011/03/17(木) 20:07:46.52
現在のC系言語の多くはforeachのたぐいを持ってるし
C++ユーザなら
for (std::vector<T>::const_iterator it = foo.begin(); it = foo.end(); ++it)
とか毎回書くのが嫌すぎてBOOSTやQtに頼ったり自家製マクロを使ったり
あるいは関数的オナニーが好きすぎてfor書いたら負けとか思ってるに違いないので
>>475は今時珍しいCしか知らないひとなのかな

480デフォルトの名無しさん:2011/03/17(木) 20:33:12.75
日本人なら、 enumerate の綴りが覚えにくいのは仕方ない。
481デフォルトの名無しさん:2011/03/17(木) 21:57:53.02
最近GAEのためにPythonばっかり書いてたら、
Perlを書くのが面倒になってしまった。
Flaskたんかわいいお
482デフォルトの名無しさん:2011/03/17(木) 23:59:06.89
きも
483デフォルトの名無しさん:2011/03/18(金) 05:32:46.29
>>476
cは0から始まって10より小さい間って明示されてるけど
pythonは0-9なのか1-10なのか分からんぞなもし
484デフォルトの名無しさん:2011/03/18(金) 06:11:27.84
じゃあ、
for i in range(0,10,1): print i
って書けばいいでしょ
485COBOL最強:2011/03/18(金) 08:03:38.39
IDENTIFICATION DIVISION.
PROGRAM-ID. CNT001.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 CNT PIC 9(3) VALUE 0.
PROCEDURE DIVISION.
PERFORM 10 TIMES
ADD 1 TO CNT
DISPLAY "COUNT = " CNT
END-PERFORM
STOP RUN.
486デフォルトの名無しさん:2011/03/18(金) 08:04:44.08
>>484
0から10までの11回?
487デフォルトの名無しさん:2011/03/18(金) 09:21:07.16
>>486
for i in (0,10):

for(i=0; i<10; i++){

どっちも同じ
488デフォルトの名無しさん:2011/03/18(金) 10:18:26.53
ありがたいことにrange(初期, 継続, 加算)でCの基本for文を使える他にも
listを取ることによって他の形のfor文にも使えてこれひとつで事足りる
つまり一貫性のあるコードが書けるということ
489デフォルトの名無しさん:2011/03/18(金) 11:49:34.22
次のバージョンは 3.11
490デフォルトの名無しさん:2011/03/18(金) 13:00:25.27
下載の次は"ダウンロード"が追加されるのか
491デフォルトの名無しさん:2011/03/18(金) 13:10:32.21
メルトダウン
492デフォルトの名無しさん:2011/03/18(金) 16:43:09.88
>>491
無神経な奴だな
493デフォルトの名無しさん:2011/03/18(金) 23:31:47.97
不謹慎上等
494デフォルトの名無しさん:2011/03/19(土) 00:09:01.10
Download >>
下載 >>
おとす >>
495デフォルトの名無しさん:2011/03/19(土) 00:15:17.72
日本人は中国人と違って英語が堪能だからな
496デフォルトの名無しさん:2011/03/19(土) 00:23:20.93
what have you here, korean?
497デフォルトの名無しさん:2011/03/19(土) 06:40:38.26
>>476
0 から 9 まで表示します

というのが一番解りやすいけど、
Pythonでこういう表記できるの?
498デフォルトの名無しさん:2011/03/19(土) 06:56:36.66
Pythonを知ってる人にとってfor i in range(10)はイディオムだから
これで十分わかりやすいんだけど
どうしても似たように書きたければfor i in range(0, 10)
499デフォルトの名無しさん:2011/03/19(土) 07:05:03.03
ただでさえ少ない日本のpython利用者が
今回の地震で何割か減ったかと思うと心が痛みます
みなさまのご多幸をお祈りします
500デフォルトの名無しさん:2011/03/19(土) 10:36:46.79
算数もできないのかよ
501デフォルトの名無しさん:2011/03/19(土) 14:59:43.11
GPLなモジュールがあるのですが、これをimportしたプログラムはGPLにしないといけないんえですか?
502デフォルトの名無しさん:2011/03/19(土) 16:24:59.18
>>501
スレ違い。まあGPLの原理上はそうなる。
503デフォルトの名無しさん:2011/03/19(土) 17:05:37.08
bsdでもapacheでもそのへんならなんでもよいかと
現実的には一緒に配布しなけりゃなんでもいい
504デフォルトの名無しさん:2011/03/19(土) 17:17:54.39
あ、間違えた、プログラムか。なら全体的にはGPLになるか。
505デフォルトの名無しさん:2011/03/19(土) 17:21:29.21
プログラムだからといって、一緒に配布するとは限らない。
py2exe で import してるライブラリもまとめて配布するなら、
GPLにしないといけない。
まとめないのであれば、何でも好きなライセンスを使ってOK。
506デフォルトの名無しさん:2011/03/19(土) 17:57:47.90
python付属のライブラリでGPLのがあるって言うこと?
507デフォルトの名無しさん:2011/03/19(土) 19:15:01.17
>>506
標準ライブラリ込みで全体がPythonライセンスで配布されてるのに、
GPLのライブラリなんて含んでる訳ないだろ。
508デフォルトの名無しさん:2011/03/19(土) 23:46:03.00
いや、sslモジュールはOpenSSLを使っていて、OpenSSLは一部GPLだから、
それを除外しないとGPLになるはず。
なので、Python Licenseで Python を再配布したかったら、OpenSSLから
GPLを除外したものを作るか、sslモジュール自体を除外する必要がある。

それはさ置き、>>505は、PyQt4みたいな非標準ライブラリについて想定して
書いていた。
509505=508:2011/03/19(土) 23:48:16.83
ごめん、OpenSSLがGPLを含んでると言うのは勘違いだったみたい。
510デフォルトの名無しさん:2011/03/20(日) 21:57:13.09
ninja-ide試そうと思ってBrewでqtインスコしてるんですが
makeを1時間ぐらいやってます。こういうものなんでしょうか?
511デフォルトの名無しさん:2011/03/21(月) 00:25:43.44
VimのデフォルトのPythonハイライトでappendってハイライトされますか?
512デフォルトの名無しさん:2011/03/21(月) 00:34:10.15
されない
513デフォルトの名無しさん:2011/03/21(月) 02:31:55.75
Perlで
while ( $hoge = $geho)
というのは、Pythonではどう書けばいいのでしょうか?
514デフォルトの名無しさん:2011/03/21(月) 03:38:05.71
式中の代入は出来ないので
while True:
というwhile(1)相当のものや
for ... in ...:
foreach相当のものなんかで対処してください
515デフォルトの名無しさん:2011/03/21(月) 04:12:26.04
>>513
Pythonのプログラムの構成は、こういう風になってる。
式 < ステートメント < モジュール < プログラム
代入とwhileループはステートメント。
ステートメントは式で構成されてる。
while 〜:
の〜の部分には、whileステートメントの構成要素の式でなければダメ。
ステートメントを式として使うことはできない。
だから、代わりの方法は少し冗長だが、

hoge = geho
while hoge:
 # ...
 # whileの終端
 hoge = geho

hoge = True
while hoge:
 # whileの先頭
 hoge = geho
 # ...

while True:
 hoge = geho
 if not hoge:
  break
516628:2011/03/21(月) 05:59:22.62
>>512
なんでされないんでしょう?
517デフォルトの名無しさん:2011/03/21(月) 08:42:22.61
何でされないことに疑問を感じるのか疑問
518デフォルトの名無しさん:2011/03/21(月) 08:48:23.47
appendはリストのメソッドなのでハイライトしてもいいと思うのですが
519デフォルトの名無しさん:2011/03/21(月) 09:00:13.59
>>518
では、Vimの設定ファイルを変更してappendをハイライトするようにしてください
やり方はスレ違いなのでググれ
520デフォルトの名無しさん:2011/03/21(月) 12:54:48.35
pythonはじめようと思ったらいきなりpython2とpython3の選択に迫られた
521デフォルトの名無しさん:2011/03/21(月) 13:03:01.72
とりあえずどっち選んでも死ぬようなことはないけどPython2でいいかと
3のビューオブジェクトとかバイト列と文字列きっちり分けるあたり
プログラミング初心者には少しとっつきにくいし
522デフォルトの名無しさん:2011/03/21(月) 15:26:22.29
みずほやばいね。
日本のシステム開発ってつくづくレベルが低いんだな。
アメリカ様に作ってもらえよ。
523デフォルトの名無しさん:2011/03/21(月) 15:26:49.05
誤爆
524デフォルトの名無しさん:2011/03/21(月) 17:01:20.28
python2もstrとunicodestrの区別が慣れるまで判りにくいので
初心者向けにはpython3のがいいな
525デフォルトの名無しさん:2011/03/21(月) 19:05:29.85
日本語人間に勧められた言語じゃない
そもそも日本語が簡単に扱える言語なんて少ない
526デフォルトの名無しさん:2011/03/21(月) 19:49:54.35
日本語だってシンプルに記述することはできる。
自由度が高いので、バカが使うとメチャクチャになる。
Perlみたいなもん。
527デフォルトの名無しさん:2011/03/21(月) 19:51:51.27
Python3なら、日本語の識別子でだって
Pythonプログラムは書けるわけだが。
ただしそれが読みやすいかどうかは話は別。
528デフォルトの名無しさん:2011/03/21(月) 22:36:53.63
だからと言って、ひまわりはプログラマーが発狂する言語だと思うがなw
プログラマーが日本語人間であることがそもそも間違いだ
529デフォルトの名無しさん:2011/03/21(月) 22:40:38.85
英語が母国語の人間にとって普通のプログラム言語はどう見えているのだろう、といった疑問
530デフォルトの名無しさん:2011/03/21(月) 23:19:44.16
FORTORUNなんかは、英語話者からすると可読性が高すぎて、
英語を入力したら勝手にコンピューターが答えを出してくれるものと
勘違いした学生が表れた、ナンテエピソードはあるな。
531デフォルトの名無しさん:2011/03/21(月) 23:23:04.42
フォートゥランなんて聞いたことのない言語だ
532デフォルトの名無しさん:2011/03/21(月) 23:24:33.53
FORTRANだた
533デフォルトの名無しさん:2011/03/21(月) 23:36:28.10
パンチカードの時代にFortranコンパイラを作った人間には畏怖しかない。
534デフォルトの名無しさん:2011/03/22(火) 08:12:50.06
会社の倉庫にパンチカードの収納箱あるわ
落書きだらけだったけど
535デフォルトの名無しさん:2011/03/22(火) 11:40:07.85
Pythonとjavascriptでwebサイト作るのって変?
536デフォルトの名無しさん:2011/03/22(火) 11:54:05.27
はい
537デフォルトの名無しさん:2011/03/22(火) 14:54:07.48
google app engine をそのまま自分のサーバーで動かせるフレームワークないのか?
web.pyに拡張したらいけないかなあ
538デフォルトの名無しさん:2011/03/22(火) 17:45:25.84
>>537
自鯖で動かすのは大変かな
appscale - Open Source Platform for Google AppEngine Apps
http://code.google.com/p/appscale/
539デフォルトの名無しさん:2011/03/22(火) 19:32:36.89
国粋主義指向言語RubyがJIS規格になったようです。
540デフォルトの名無しさん:2011/03/22(火) 19:48:46.33
JISのJはジャンクのJ
541デフォルトの名無しさん:2011/03/22(火) 21:23:42.22
JIS規格になって何か良いことあるの?
542デフォルトの名無しさん:2011/03/22(火) 21:43:25.84
自慢できる
543デフォルトの名無しさん:2011/03/22(火) 21:50:43.11
>>535
問題ない
むしろ推奨
544デフォルトの名無しさん:2011/03/22(火) 21:51:34.63
>>537
100%互換じゃないけど
GAEの開発環境をそのままWSGIで動かせば動く
545デフォルトの名無しさん:2011/03/22(火) 21:55:13.45
>>537
GAE が使い物にならないと悟ったときに
脱出するために自鯖でエミュレートした
俺俺FWならある
546デフォルトの名無しさん:2011/03/23(水) 13:24:05.78
perlってperl/tkでGUIが扱えるじゃん。
pythonもGUIが扱えるの?
547デフォルトの名無しさん:2011/03/23(水) 13:31:13.82
Perl/Tk相当のTkinterが標準添付
標準添付以外だとwxPython, PyQt, PySideなんかもある
548デフォルトの名無しさん:2011/03/23(水) 13:35:06.26
え、標準でGUIが使えるんだ、じゃpythonのがいいな。
perl/tkってプログラムサイズに制限があるらしくて、ある程度大きくなると
ファイルを分割しないといけないので不便。

PyQt ってQtなのこれも良さそうだね。
549デフォルトの名無しさん:2011/03/23(水) 13:59:21.60
perl使用者の知能指数が計り知れるな
550デフォルトの名無しさん:2011/03/23(水) 18:04:29.17
いま PySide1.0.0 ビルドしてみたら、
バグがだいたい消えてまともになってた。
betaの頃は酷かったのだが。
551デフォルトの名無しさん:2011/03/23(水) 18:13:31.45
おっ、Windowsで普通にビルドできるようになったの?
552デフォルトの名無しさん:2011/03/23(水) 22:19:24.20
>>551
Windows用はバイナリで配布されてるよ。
553デフォルトの名無しさん:2011/03/23(水) 22:26:01.79
>>552
Python製のアプリを単体でバイナリ配布するとき、
周辺ライブラリも含めてVisual Studioによるビルドで統一したいのよ。
554デフォルトの名無しさん:2011/03/24(木) 00:52:25.40

【2ch激論】ダム板が統合・廃止へ!人気スレ「また騙されてダム板に…」がなくなる?
http://kamome.2ch.net/test/read.cgi/river/1299720645/
555デフォルトの名無しさん:2011/03/26(土) 02:16:15.60
>>548
Tkなんてあってないようなもんだぜ。wxPythonつかっときなさい。
556デフォルトの名無しさん:2011/03/26(土) 15:06:04.36
GTKより100倍マシ
557デフォルトの名無しさん:2011/03/26(土) 15:42:01.06
wxpythonとかねえよ
558デフォルトの名無しさん:2011/03/26(土) 17:31:36.60
Qtは糞
559デフォルトの名無しさん:2011/03/26(土) 17:46:33.64
wxは良いね
560デフォルトの名無しさん:2011/03/27(日) 11:22:02.27
Qtは糞
561デフォルトの名無しさん:2011/03/27(日) 13:27:53.90
素のtkはアレだがtkinter(tix)はなかなか良いと思うが。
562デフォルトの名無しさん:2011/03/30(水) 16:55:28.16
Pyscripter 使いたいんだが、キーバインドをemacsにできないのがなぁ。
誰か Pyscripter の emcas 化をした人いない?
563デフォルトの名無しさん:2011/03/30(水) 18:30:33.82
>>562
なんでemacsで開発しないの?
564デフォルトの名無しさん:2011/03/30(水) 18:59:02.64
>>563
なんかxyzzyだと固まるんよ…
565デフォルトの名無しさん:2011/03/30(水) 19:16:14.76
Pythonを勉強したくて3落としたんだ。
問題集ができたら初心者の仲間入りできるかな?
566デフォルトの名無しさん:2011/03/30(水) 23:54:09.17
>>563
Emacsのpython-modeでググッてから言ってくれないか?
567デフォルトの名無しさん:2011/03/31(木) 10:45:18.83
>>565
問題を解くより、自分で何か適当な小物ツールでも作ってみた方が
習得するには近道だと思うよ。Pythonに限った話じゃないけど。
568デフォルトの名無しさん:2011/03/31(木) 10:56:03.80
>>566
何か問題でもあるの?
569デフォルトの名無しさん:2011/03/31(木) 14:57:25.62

拡散お願いします

がんばれ東京電力! 左翼の反原発運動に負けるな! - SANK-shikanaiの日記
http://d.hatena.ne.jp/SANK-shikanai/20110327
570デフォルトの名無しさん:2011/03/31(木) 23:31:44.29
天災

すでに知ってる人もいるかもだが、いままでの報道と真逆な発言がなされている
放射能は微弱であれば健康に良い、逆に福島の土地は肥沃になりブランド化するなど
様々な意見があるのはいいが、こと人命に関わることだからハッキリしてほしい
全般的に世界初や海外の学者が認めた他者は間違ってるなどを声高らかに演説し
刷り込みの如く繰り返されまるでカルトか企業研修に似た雰囲気だ

低線量率放射線療法 これで癌も治るそうだ 信じるか信じないかはあなた次第です

稲 恭宏( いな・やすひろ )博士 東京大学 大学院 医学系研究科 病因・病理学/免疫学 専攻 博士課程修了。博士(医学)。
東京大学 医学博士で病因・病理学、免疫学者。 『 低線量率放射線療法 』の発見確立者で、 放射線の医学的科学的真実を証明した世界的権威の医学英文論文多数。
福島原発事故の医学的科学的真実: テレビニュース報道
>http://www.youtube.com/watch?v=qXgsQ_nwyLA
放射能が人体へ及ぼす影響について正しい知識を!無知な報道や国の情報、噂に振り回されないで!
福島原発事故の医学的科学的真実: 稲 恭宏博士 緊急特別講演
>http://www.youtube.com/watch?v=PQcgw9CDYO8
>http://www.youtube.com/watch?v=8ONbhHHBlVk
>http://www.youtube.com/watch?v=c1R0D82JHzI
>http://www.youtube.com/watch?v=X6K4M-ytivQ
>http://www.youtube.com/watch?v=28QPwHkjnPo
>http://www.youtube.com/watch?v=24Jq7H9AevA

原発のこと知りたいやつ これだけは見てくれ・・ (特に3からが面白い)  たのむ! そして皆に伝えてください!
いかに東電と国に洗脳されてきたかわかる
http://www.nicovideo.jp/watch/sm13917247 福島原発の。。1
http://www.nicovideo.jp/watch/sm13917836 福島原発の。。2
http://www.nicovideo.jp/watch/sm13921405 福島原発の。。3
http://www.nicovideo.jp/watch/sm13922853 福島原発の。。4
http://www.nicovideo.jp/watch/sm13925734 福島原発の。。5
http://www.nicovideo.jp/watch/sm13925801 福島原発の。。6
【みんなもこの動画宣伝してけろ】
571デフォルトの名無しさん:2011/04/01(金) 18:01:45.68
ほんとウザいなカス
572デフォルトの名無しさん:2011/04/02(土) 01:18:26.41
>>570
そいつは出鱈目学者だからこれ以上リンク貼るな
573デフォルトの名無しさん:2011/04/03(日) 10:11:08.87
忍法帖まとめ

忍法帖は名前欄に
!ninja
とすれば出てくる。
って最近知った。どれどれ

●だか買うと最終書き込みから5分経過すればレベルが一つ上がるらしい。
そうじゃない人は24時間経過すればレベルが一つ上がるらしい。
あと、cookieの設定がうまくいってないとレベルが上がらないらしいから、
何日たってもレベル0,1の場合はHap cookieの設定をチェックだ。

レベル10以上になると
Lv=NN,xxxP『T』
ってなってスレ立てできるようになるらしい。
574 忍法帖【Lv=13,xxxPT】 :2011/04/03(日) 12:08:48.35
いまさら?
575 忍法帖【Lv=38,xxxPT】 :2011/04/03(日) 13:32:37.66
おそすぎワロタ
576 忍法帖【Lv=1,xxxP】 :2011/04/03(日) 14:06:42.99
test
577 忍法帖【Lv=16,xxxPT】 :2011/04/03(日) 14:31:16.02
あは
578デフォルトの名無しさん:2011/04/03(日) 15:41:24.99
自作のPythonアプリで
プラグイン機構を用意したいんだけど、
yapsyを使うのが普通なのかな?
579デフォルトの名無しさん:2011/04/03(日) 16:10:02.80
俺はzcmlやらなんやらをメチャクチャにカスタマイズした結果普通にimportすればいいという結論を得た
580デフォルトの名無しさん:2011/04/03(日) 16:20:20.11
>>579
プラグインは他の方に開発してもらって
それを受け入れるという趣旨なのでファイル名も分からないし、
インターフェイスも申告してもらったのを動的に取得する形が必要なんですよ。

zcmlかあ。Zope系はPythonの中でも独立した勢力、という感じなんだけど、
依存ライブラリ一杯、なんてことにならないんでしょうかね。
zc.buildoutだけは使うつもりだけど。
581デフォルトの名無しさん:2011/04/03(日) 16:36:40.06
>ファイル名も分からないし、
これは普通だろうな
単に__import__()つかえばいいだけじゃね

>インターフェイスも申告してもらったのを動的に取得する形が必要なんですよ。
これはよくわからんっていうか無駄に面倒くさそうなアーキテクチャだな

普通は特定の名前の関数(register()とか)を作ってもらってホスト側でそれを呼ぶか
逆にホスト側で公開してる関数をプラグイン側でimport時に走るコードで
読んでもらうかじゃね
582デフォルトの名無しさん:2011/04/03(日) 16:57:25.05
pylonsを勉強し始めたんだけどいろんなサンプル見ても各コントローラでコミット文を書いてるだけどそういうもん何でしょうか トランザクションマネージャーみたいのものってないのしょうか
583デフォルトの名無しさん:2011/04/03(日) 17:38:38.06
584デフォルトの名無しさん:2011/04/03(日) 19:13:57.69
>>580
普通のモジュールとしてimportできればいいだけで
後のこと考えると妙な実装にしない方がいいよ
そもそもPythonのコードが書ける前提なら変な縛りはいらない
585デフォルトの名無しさん:2011/04/03(日) 19:57:25.62
>>581,584
まだ調査してる段階なので。
最終的にはどのpluginフレームワークを
使うかを決めないといけないけども。

・アプリ本体側で、プラグインのインターフェイスを決める
・プラグイン作者はインターフェイスに沿ってプラグインを作成
・アプリは起動時に決まったフォルダを調べてインストール済みのプラグインを列挙
・ユーザーに列挙したプラグインを選択して使えるようにする
・プラグインはアプリの配布サイトにsetup.pyでアップロードできるようにする
・エンドユーザーはプラグインをアプリ自体かeasy_installでインストールできるようにする
・プラグインはpluginディレクトリに裸かzipファイルで設置される

こんな感じを想定中
586デフォルトの名無しさん:2011/04/03(日) 20:06:25.20
>>585
plugins = {}
sys.path.append(プラグインのディレクトリ)
for plugin in os.listdir(プラグインのディレクトリ):
  pluginpath = プラグインのディレクトリ + '/' + plugin
  if plugin.endswith('.py'):
    try:
      module_name = plugin.replace('.py','')
      module = __import__(module_name)
      dic = module.get_plugin_info()
      plugins[module_name] = dic
    except:
      pass

自分はこんな感じで実装してみた。get_plugin_ingo()はプラグインのクラスとかバージョンとかの入った辞書を返す
プラグインは特定のディレクトリに.pyファイルをつっこむだけ。
587デフォルトの名無しさん:2011/04/03(日) 20:10:16.25
なんか誤字とか要らない行があったりしてすまん
ソースからコピペしたら改行が無視されたから手打ちしてこの結果だよ...
588デフォルトの名無しさん:2011/04/03(日) 20:18:56.32
>>585
そんなら、>>586が書いてるように標準の__import__()、ないしimpで十分
589デフォルトの名無しさん:2011/04/03(日) 20:26:23.18
plugpyが参考にならかも
590デフォルトの名無しさん:2011/04/03(日) 20:34:36.10
>>586-588
どうもありがと。
そのコードだけだと単独の*.pyしか対応できないのでちょっと困るね。
GUIがxmlで分かれてたりするし、
共有ライブラリを含んでたりする場合も考えられるので。

考慮すべきことはまだ色々とあるようなので、もう少し煮詰めてみることにする。
591デフォルトの名無しさん:2011/04/03(日) 21:02:02.42
!ninja
ここが書き込み専用スレの後継になったの?
592デフォルトの名無しさん:2011/04/04(月) 05:36:43.10
eric って開発環境どうなの
593デフォルトの名無しさん:2011/04/04(月) 10:41:52.95
仕事でウェブサイトを作るんだが、web.pyとflaskってどっちがいいの?
flaskがメジャーな存在になりそうなら、flaskにしたいんだけど。
ちなみにPython自体、ほとんど経験ない。
594デフォルトの名無しさん:2011/04/04(月) 11:37:47.48
flaskの方がいい
595デフォルトの名無しさん:2011/04/04(月) 13:42:15.91
>>593
Flask使ってるけど使いやすいよ。
覚えることもそうはないし。
596デフォルトの名無しさん:2011/04/04(月) 14:14:49.80
vimには劣るかな
597デフォルトの名無しさん:2011/04/04(月) 15:08:39.87
>>593
GAEだったらwebapp使えるけどね
598デフォルトの名無しさん:2011/04/04(月) 16:26:44.32
vim使うときはタブ型ターミナルが便利だな
なんでもっと早く教えてくれなかったんだ
599デフォルトの名無しさん:2011/04/04(月) 17:19:17.53
webappってwebobの薄いラッパーだろ
600デフォルトの名無しさん:2011/04/04(月) 17:41:21.47
>>593
flaskってのはよく知らないが、少なくともweb.pyは
プロダクションコードを書くためのものではないと思う。
601デフォルトの名無しさん:2011/04/04(月) 17:52:27.96
タブ型ターミナルって…gnome-terminalもkonsoleも
xfceのTerminalもLXTerminalも
OSXのTerminalもタブ機能あるような
602デフォルトの名無しさん:2011/04/04(月) 18:01:52.46
>>601
気づかなかったわ。基本的にWindowsしか使わないから
603デフォルトの名無しさん:2011/04/04(月) 18:04:52.11
>>593
仕事のわりにアバウトだなw
どういう特性のサイトだかも分からんし
無経験に近いPythonを選んだ理由も見えないし
メジャーどころも他にDjangoとかweb2pyとか色々あるよ
まあ仕事ならもっと真面目にリサーチしたほうがいいんでないの
604デフォルトの名無しさん:2011/04/04(月) 18:06:22.57
>>602
Windowsならgvimの--remote-tab-silent使ってタブ開いてもいいんじゃないの
ああリモートにsshする時の話か
605デフォルトの名無しさん:2011/04/04(月) 19:31:01.59
gvimならフルスクリーンでウィンドウ分割したほうがいい
606デフォルトの名無しさん:2011/04/05(火) 02:20:05.66
>>593
web2pyにしとけ
607デフォルトの名無しさん:2011/04/05(火) 06:32:16.24
>>604
windowsにもタブ型コマンドプロンプトあったわ。Consoleってやつ入れてみた
これシェルも設定出来るみたいだからpowershellに変更した。良かった良かった
608デフォルトの名無しさん:2011/04/05(火) 08:15:07.39
つipython
609 忍法帖【Lv=6,xxxP】 :2011/04/05(火) 08:35:09.64
忍者ー、にんにん
610デフォルトの名無しさん:2011/04/05(火) 14:16:59.36
>>> datetime.datetime.now().isoformat()
'2011-04-04T22:15:45.820146'

こうやって作った文字列をdatetime objectに戻すにはどうしたらよいのでしょうか?
datetime クラスを見ても 'parse' とおぼしき文字は見つかりませんでした。
611デフォルトの名無しさん:2011/04/05(火) 14:22:59.37
自己レス

ググったらくだスレが引っかかった

>>932, 933
ちょっと修正
dt = datetime.strptime('2010-01-01 01:01:01.123456', '%Y-%m-%d %H:%M:%S.%f')
microsecondが書式指定文字列に入ったのはPython2.6以降なんで注意
http://docs.python.org/library/datetime.html#strftime-behavior
612デフォルトの名無しさん:2011/04/05(火) 14:24:33.94
>>610
python 日付 文字列
でググれ。

http://blog.livedoor.jp/matssaku/archives/50252714.html
613デフォルトの名無しさん:2011/04/05(火) 14:27:30.72
614デフォルトの名無しさん:2011/04/05(火) 14:42:59.26
皆様の優しさに泣いた。
ありがとうございます。
615デフォルトの名無しさん:2011/04/05(火) 23:34:33.46
Webサイトにアクセスして例えば自動的に株取引とかさせようとするならどうするんでしょうか?
サイトのHTMLソース見て方法を考えてるんですがどうやってpostするのか検討もつかない
616デフォルトの名無しさん:2011/04/06(水) 00:00:39.48
urllib2
617デフォルトの名無しさん:2011/04/06(水) 00:12:52.10
>>616
なるほど大体の検討がつきましたありがとうございます。
618デフォルトの名無しさん:2011/04/06(水) 00:34:21.73
オライリーでpython本の和訳が出そうな気配ってありますか?
・初めてのpython(4th)
・Cookbook(3rd)
あたりの和訳が進行中情報あったら教えてください
619デフォルトの名無しさん:2011/04/06(水) 01:07:41.39
普段Linuxを利用しており、GUIアプリケーションはPyGTKで作成しております。

知り合いに頼まれてWindows向けにアプリケーションを作ることになったのですが、この板のPython関連のスレッドを見ているとPyGTKは他OS(Windows, Mac)では色々と難があるとよく見ます。
具体的にはどのような問題があるのでしょうか?

アプリケーションは、Pythonでソケットから送られてくるデータをTreeViewに表示するログビューアのようなものです。
そのログに名前をつけたりするので少量の文字入力も行ないます。
620デフォルトの名無しさん:2011/04/06(水) 01:12:36.10
Qtは糞
621デフォルトの名無しさん:2011/04/06(水) 01:19:20.29
>>619
GTK+は伝統的にWindows版の対応がいい加減だった。
GIMPも落ちまくりだった。

2.20あたりからだいぶ安定化してきたんじゃないかな。
GIMPが落ちるという話もあまり聞かなくなったし。

一般的にはwxPythonやPyQtの方がよく使われてると思うよ。
大昔はTinkerだったらしいけど。
622デフォルトの名無しさん:2011/04/06(水) 02:36:05.11
>>619
PyGTKをWindowsで動かしたことないから間違ってるかもしれないけど、
GTKのライブラリを別途入れないと動かない
昔は不安定だった
見た目がWindowsアプリケーションと結構違う(Qtもだけど)

WxPythonだとpy2exeしたときに別途ライブラリを入れなくて済むからお勧め
ただ、LinuxとWindowsで若干挙動が異なったりするから注意
623デフォルトの名無しさん:2011/04/06(水) 16:22:01.36
3系に対応してくれればwxも使うんだがのう。
元のwxWidgetsのメジャーアップ待ちなんかね。あれだいぶAPI変わるらしいが。
624デフォルトの名無しさん:2011/04/06(水) 18:00:26.44
PyGTKは3K対応?
625デフォルトの名無しさん:2011/04/06(水) 21:03:09.42
IRCのライブラリ調べてたらPythonの対応バージョンが1.6以降ってのがあるんだけど、2.7でも問題なくうごく?
626デフォルトの名無しさん:2011/04/06(水) 21:14:57.40
1.6は何かの間違いだろう
READMEや実際のコード見たほうがいいよ
627デフォルトの名無しさん:2011/04/08(金) 16:32:37.81
virtualenvのpython3対応きてた
628デフォルトの名無しさん:2011/04/09(土) 14:33:34.38
pypanがあった
629デフォルトの名無しさん:2011/04/10(日) 00:03:00.74
最近python触りだしたんだが、lambdaが残念仕様だな…
javascriptのfunctionみたく何でもできればいいのに

後、代入と評価が同時にできないのも残念…
630デフォルトの名無しさん:2011/04/10(日) 00:05:49.36
ttp://www.python.org/getit/
左メニューにここのリンクのとこだけ漢字なんだけど
チョンに書き換えられちゃった系?
631デフォルトの名無しさん:2011/04/10(日) 00:09:49.36
今更そのネタかよ…
632デフォルトの名無しさん:2011/04/10(日) 00:17:16.16
韓国人が漢字に書き換えると発想する男の人って
633デフォルトの名無しさん:2011/04/10(日) 00:29:34.49
グレート・ギャツビー対応だよ
634デフォルトの名無しさん:2011/04/10(日) 02:41:27.10
>>629のネタはアホよけに必要
635デフォルトの名無しさん:2011/04/10(日) 03:09:31.23
>>81-
636デフォルトの名無しさん:2011/04/10(日) 09:34:57.82
自分で調べるとかしないんだな、クズって
637通報オタク君:2011/04/10(日) 13:52:45.18
>amachang 今粛々と民事刑事の方面で進めています。一応、すべて証拠として保存しなければいけないので、冗談でも今はこのスレに変なこと書き込まないでください。
>2011/01/28


http://hibari.2ch.net/test/read.cgi/prog/1291518728/

>1 :amachang撲滅振興協議会:2010/12/05(日) 12:12:08
> amachangが憎い・・・・amachangが許せない・・・・

> ククク・・・・クククククク・・・・・
> クックックックックックックッ・・・・・
> クー、クー、クー、クー、クー、クー・・・・・
>
> もう許せない。
> もはや沸き上がる滅意を抑えることが出来ない!!!
638デフォルトの名無しさん:2011/04/10(日) 17:26:03.41
>>629
lambdaは関数の中身が本当にコンパクトなときに使う。

eachっぽいのはforもしくは内包で、ファイル自動クローズ等はwithで、
そして、なんといってもPythonにはデコレータがある。

代入と評価については確かにそうだが、その代わりキーワード引数が使える。
639デフォルトの名無しさん:2011/04/10(日) 18:05:54.17
>>629
一応関数のネストは出来るので、lambdaに関しては関数内def使えやというのが
Pythonの流儀だな。
JavaScriptのfunctionみたいな、入れ子でstatementを含むようなexpressionが
Pythonにないのは多分構文上の理由。
つまり、非フリーフォーマットで、ブロックをインデントで示し、
ブロック終端をしめすはっきりした字句構造があるわけでもないので、
そうした構文を許容しにくいのだろう。
640639:2011/04/10(日) 18:13:40.99
代入が式かどうかなんだけど
多分>>629
(funcall (setf f #'+) (setf x 5) 6)
みたいなコードを書きたいわけではないと思うので、
Cユーザがつまづきそうな例として
while ((c = getchar()) != EOF)
みたいな例を考える

これをPythonにwhileで直訳しようとすると、代入が式でないお陰で
確かに冗長になるんだけど、これはPythonでは
for c in iter(getchar, EOF)
のように書けるのを知ってれば多少は不満は減るはずよ
641デフォルトの名無しさん:2011/04/10(日) 19:20:23.01
>>630
天安門でぐぐれ
642デフォルトの名無しさん:2011/04/11(月) 00:11:17.31
この問題が
https://www.spoj.pl/problems/PALIN/
これで通らない
http://ideone.com/v9x2H

結果はtime limit exceededなんだけど、間違った答えを出力させようとしても
wrong answerになってくれなくて、出力までたどり着いてないのかなとも思うけど
ループなしでそこまで遅くないはずだし分からない
どこかで止まるようなところあるかな

これは他の人が公開してた正解の1つで、入出力はこんな感じでいいはずなんだけど
http://ideone.com/KMXI5
643デフォルトの名無しさん:2011/04/11(月) 01:03:53.18
具体的にwhatをhow入力したの?
明日は晴れるかな
644デフォルトの名無しさん:2011/04/11(月) 01:08:00.83
プログラミングコンテストサイトのテストケースが何かなんて分からないよ
645デフォルトの名無しさん:2011/04/11(月) 06:33:00.92
>>642
p1 = list(b1) # b1って文字列だよね?
ans += ''.join(p1)
p1.reverse()
ans += ''.join(p1)

この処理は、

ans += b1 + b1[::-1]

って書ける。そもそも ans += じゃなくて ans = でいいはず。
''.join(rev(list(b1))) > b2:
の部分も、 b1[::-1] > b2: って書ける。

raw_input() は、最後に改行が入力されるかどうか判らんから、
import sys ってやっておいて、 sys.stdin.readline().strip()
のほうがいいと思う。
646デフォルトの名無しさん:2011/04/11(月) 06:43:28.47
コードが滅茶苦茶醜いのは分かってて、
なんで通らないのかの質問なんだけど
下のはraw_input()で通るんだけど、入出力でどこに違いがある?
647デフォルトの名無しさん:2011/04/11(月) 07:02:12.14
>>646
raw_input() じゃなくて、単に入力が大きいだけじゃない?
648デフォルトの名無しさん:2011/04/11(月) 07:04:13.18
行列を逆にするのは知らなかったけど
場合分けを行き当たりばったりでコピペしながら書いたから
p1とかはlist(str(int(b1) + 1))とかもあってそれと同じ形になってるだけ
あと+= を = に書き換えたら
>>> a = ""
>>> a += "".join(["abc"])
>>> a += "".join(["def"])
>>> a
'abcdef'
>>> a = ""
>>> a = "".join(["abc"])
>>> a = "".join(["def"])
>>> a
'def'
で答えが変わるんだけど
649デフォルトの名無しさん:2011/04/11(月) 07:04:59.31
あ、行列じゃなくて配列
650デフォルトの名無しさん:2011/04/11(月) 07:11:26.22
あ、確かにそのようだ
途中を数値にキャストしたり出来ないのか、全部文字列で扱わないと
651デフォルトの名無しさん:2011/04/11(月) 07:46:14.74
なんでプロファイラ使って自分でテストしないの?
http://www.python.jp/doc/release/library/profile.html
652デフォルトの名無しさん:2011/04/11(月) 08:02:45.16
知らないから。まあそれを馬鹿にしてるんだろうけど
653デフォルトの名無しさん:2011/04/11(月) 09:23:10.99
>>648
>>645 は b1 + b1[::-1] への書き換えをしてるんだから、ans = で良いだろ。
その例で言えば
>>> a = "abc" + "def"
>>> a
'def'
だ。
654デフォルトの名無しさん:2011/04/11(月) 09:25:06.62
>>653
間違えた。 最後は 'abcdef' で。
>>649
配列じゃなくて文字列のまま処理してる。
655デフォルトの名無しさん:2011/04/11(月) 09:27:18.38
それは見たら分かる
問題番号が最初のほうだったからやってたけど、他の問題見たら難しい方だった
今は簡単なのからやってる。もういいよ
656デフォルトの名無しさん:2011/04/11(月) 09:27:50.08
>>648
念の為にいっておくけど、
>>> ''.join(list('abc'))
'abc'
>>> ''.join('abc')
'abc'
だよ。リストにする意味が全くない。
多分、時間オーバーしてるのは無意味にリストと文字列の間の変換を繰り返してるから。
657デフォルトの名無しさん:2011/04/11(月) 09:30:58.67
もういいって言ってんのに。
根本的な原因はそこじゃないから、それを訂正しても通らないんだって
658デフォルトの名無しさん:2011/04/11(月) 09:32:43.49
>>657
根本的な問題って、 time limit exceeded なんだろ?
効率的なコードを書くテクニックが本質だと思うが?
659デフォルトの名無しさん:2011/04/11(月) 09:34:49.33
馬鹿には無理
660デフォルトの名無しさん:2011/04/11(月) 09:36:22.20
たまにはいいことを言うのな
661デフォルトの名無しさん:2011/04/11(月) 09:42:02.33
>>658
だから、根本的に間違っててt元のコードを改善してもしかたないから
後からもう一回ゼロから書きなおすってことだよ
今のやつはそもそも桁数的に無理だったから最初から突込みどころがずれてた
662デフォルトの名無しさん:2011/04/11(月) 09:45:03.35
これはひどい
663デフォルトの名無しさん:2011/04/11(月) 09:47:38.50
O(N)のコードなのに変換で時間オーバーとかアホか
664デフォルトの名無しさん:2011/04/11(月) 11:32:57.76
時間オーバーの原因は str <> list の変換じゃなくて、 str<>intの変換だな。
文字列型から数値型への変換はO(N)じゃないから。
%timeit int('1'*1000000)
1 loops, best of 3: 9.29 s per loop
665デフォルトの名無しさん:2011/04/11(月) 11:38:39.00
その前にintの範囲に入ってないから
666デフォルトの名無しさん:2011/04/11(月) 12:01:10.11
>>665
Python の int() はintの範囲外だと自動でlongに拡張してくれるから、
それは問題にならないよ。
Python3 だとそもそも int が long に統合されてるし。
667デフォルトの名無しさん:2011/04/11(月) 12:14:35.27
ロングには範囲がないのか
668デフォルトの名無しさん:2011/04/11(月) 13:25:21.77
>>667
多倍長整数。JavaでいうBigInteger。
669デフォルトの名無しさん:2011/04/11(月) 14:13:54.94
Javaで言われても知らんし
こっちは玄人専用みたいだから初心者スレの方に誘導してくれれば良かったのに
670デフォルトの名無しさん:2011/04/11(月) 14:40:11.43
素人を弄りからネタを探すのも玄人の遊びの一つ
671デフォルトの名無しさん:2011/04/12(火) 08:37:06.09
センス無いヤツには
お前には無理って言ってやれよ
ゴミコードの生産とか放射性物質の流出並みに犯罪だから
672デフォルトの名無しさん:2011/04/12(火) 23:08:36.30
>>671
「並みに」とはお優しいことで。

正確には「より悪質な」だろ。

放射性物質には半減期と崩壊系列ってのがあって、何にもしないままでも時間が経つだけで放射能は弱くなっていく。
一方、ゴミコードには半減期は無いんだぜ?
673デフォルトの名無しさん:2011/04/12(火) 23:23:59.17
それでもフリーマン教授なら…フリーマン教授ならなんとかしてくれる
674デフォルトの名無しさん:2011/04/12(火) 23:24:57.31
うまいことを言ったつもりだろうが実に寒い
675デフォルトの名無しさん:2011/04/13(水) 00:10:56.68
ゴミコード見なきゃいけないような劣悪な環境で作業しなきゃいけない自分を改善すべきだな。
676デフォルトの名無しさん:2011/04/13(水) 00:44:27.85
pass
677デフォルトの名無しさん:2011/04/13(水) 20:19:39.93
立てた

【Perl,PHP】LLバトルロワイヤル16【Ruby,Python】
http://hibari.2ch.net/test/read.cgi/tech/1302692765/
678デフォルトの名無しさん:2011/04/13(水) 21:20:40.04
そんなスレどうでもいい
679デフォルトの名無しさん:2011/04/14(木) 20:25:28.34
",".join([1,2,3])に慣れない…
680デフォルトの名無しさん:2011/04/14(木) 20:32:02.98
"".join([s1, s2, s3])を山ほど書くからそのうち慣れるよ
681デフォルトの名無しさん:2011/04/14(木) 20:40:24.71
"".join([s1, s2, s3])を山ほど書いてたら
可笑しいと思って設計を見直すべき時期
682デフォルトの名無しさん:2011/04/14(木) 20:55:09.76
>>> join = ''.join
>>> join(['a', 'b', 'c'])
'abc'
683デフォルトの名無しさん:2011/04/14(木) 20:59:31.11
言われてみればそんな山ほどは書かないな
684デフォルトの名無しさん:2011/04/14(木) 21:14:05.23
>>679
でも意味的には自然じゃない?
685デフォルトの名無しさん:2011/04/14(木) 21:41:19.72
個人的には文字列のメソッドでもリストのメソッドでも違和感だなあ
関数が一番しっくりくる気がする
686デフォルトの名無しさん:2011/04/14(木) 22:01:36.36
>>684
joinがメッセージだと考えると、「おい文字列、このリストをお前で区切ってつなげてくれ」ってことだよね
いきなり「おい文字列」って呼びかけてるのがヘンな気がする、いつから居たんだよって感じで
処理の対象として何かをしてほしいのは、リストの側で、区切り文字は付随的なものだから
リストに「おい、おまえらちょっとひとつになれ」っていうほうが自然な気がする
687デフォルトの名無しさん:2011/04/14(木) 22:04:15.48
>いつから居たんだよ

今自分で創ったインスタンスに呼びかけてる
全然変じゃない
688デフォルトの名無しさん:2011/04/14(木) 22:05:40.92
>>686 はRuby厨
689デフォルトの名無しさん:2011/04/14(木) 22:33:23.20
>>687
言われてみるとインスタンスがある以上メソッドを呼ぶ点は問題ないと思った

じゃあ文字列くんを呼びだしてるとこが唐突すぎてコードのストーリーがおかしなことになってる感じがするのかなあ
(おっぱいバニーを召還してjoinしてもらうのにくらべたら)それほど不自然だと思ってるわけじゃないけどさ
690デフォルトの名無しさん:2011/04/14(木) 22:33:38.85
>>686
言いたいことはよくわかるがまあ慣れろ

.NETだとString#Join()(静的メソッド)で
String.Join(",", data)
とか書くが、あんま変だと思わないだろ

これは第一引数(デリミタ)とクラスが同じなので、
Pythonではデリミタをレシーバにしてしまって
",".join(data)
と書かせることで、冗長性を減らしてる、一種の合理化ということで納得しろ
すぐ慣れる

ちなみに俺が「言いたいことはよくわかる」のは、join()を結局reduce()の特殊例と
見ているからだ、多分あんたもそうなんだろう
reduce()で上のjoin()と等価なものを書くと
reduce(lambda x, y: x + ',' + y, ['a', 'b', 'c'])
になるが、reduce()は明らかにシークエンスやiterableを対象とする手続きだからな

Pythonのreduce()は関数的だが、ScalaやRubyやGroovyのような言語では
reduce/fold/inject演算は勿論シークエンスだのリストだのに対する演算になる
691デフォルトの名無しさん:2011/04/14(木) 22:39:34.80
str.join(",", ["1", "2", "3"])

なるほど
これなら飲み込みやすい
692デフォルトの名無しさん:2011/04/14(木) 22:45:44.68
これは目からうろこが落ちたわ。何かしらのFAQに入れるべき
693デフォルトの名無しさん:2011/04/15(金) 00:28:26.28
文字列のコンストラクタで self を省略してるだけだろ
FAQ も糞もないわ
694デフォルトの名無しさん:2011/04/15(金) 00:35:14.17
ちょっと意味不明な人がいますが気にせず続けていきましょう^^
695690:2011/04/15(金) 01:02:21.70
str.join(",", data)
から考えると納得がいってもらえたみたいだけど、なんでstr側に寄せて
iterable側に寄せないかというと、Pythonではiterableは具体的な型ではなくて
ただのダックタイピングプロトコルだから、そもそもiterableにリスト処理っぽい
操作を持たせる、といったことはできないからだ
だから、iterableに対する操作は全部関数になってる(reversed()やsorted()など)

iterableのような明白な概念を具体的なオブジェクト/型としては表現しないわけだから
非OOっぽくみえるだろうけど、これがPythonの流儀
利点としては、iterableな何かを作るときはiteratorを返す__iter__()という関数だけ
作ればよくて、特定の型を継承する必要が無い
要は単純にダックタイピングであり、縛りが少なく間口が広い
ジェネリック志向って奴だ
696デフォルトの名無しさん:2011/04/15(金) 01:10:50.66
>>> ':'.join("123456")
'1:2:3:4:5:6'

むしろリストの名前空間に文字列として連結するメソッドがある方が気持ち悪いんだが。
[[1,2],(3,4)].join() => [1,2,3,4] ならまだ許せる。
697デフォルトの名無しさん:2011/04/15(金) 01:34:25.24
>>696 plus
むしろ・・・
> >>> ':'.join("123456")
> '1:2:3:4:5:6'

["123456"].join(:) => [:].join("123456")
698デフォルトの名無しさん:2011/04/15(金) 01:41:20.45
>>> [[].join("123456")
  ↑
ERROR
699デフォルトの名無しさん:2011/04/15(金) 01:42:31.77
>>> []].join("123456")
  ↑
ERROR
700デフォルトの名無しさん:2011/04/15(金) 01:54:25.08
>>696
Python はどちらかというと Java よりの汎用的なプログラミング言語を
目指しているから型と名前空間の分離を意識しないと気持ち悪いかも
しれないけど、Ruby はどちらかというと Perl よりの整理されていること
よりも便利さを重視する言語だからリストに文字列連結があっても気持ち悪くない。
701デフォルトの名無しさん:2011/04/15(金) 02:15:05.42
>>700
Rubyは組み込みライブラリからしてテキスト処理を相当に重要視してるからな
配列も文字列を前提にしたメソッド持ってても何ら不思議じゃない

逆にPythonだと関数のが自然だと思う
702デフォルトの名無しさん:2011/04/15(金) 02:28:16.58
いちおうPythonistaだが、joinの件はどっちもキモいと思うな。

というかArray#joinは文字列の連結ではなく、格納されてるオブジェクトを
+演算子でつなぐみたいのだったらいいのに。

>>701
確かにそう考えるとRubyはあんまりキモくないか。
RubyってPerlの完全な上位互換を目指してるようにも見えるし。
703デフォルトの名無しさん:2011/04/15(金) 04:03:45.71
神が人間によく似ているように、完全にオブジェクトと線引きできるクラスなんて存在しないんじゃないの
そういう潔癖を求めるとinterfaceだらけになったりしない?
704デフォルトの名無しさん:2011/04/15(金) 04:20:11.86
神が人間によく似ているように?
705デフォルトの名無しさん:2011/04/15(金) 05:17:38.96
ネ申は人間です
706デフォルトの名無しさん:2011/04/15(金) 05:34:37.47
>>705
ネ申を冒涜すると天罰が下って津波が来る…かも…
707デフォルトの名無しさん:2011/04/15(金) 06:01:52.96
str(seq)の場合もじれつ化はseq自身がやるんだから、join(',', seq)でseq.__join__()になるのもありじゃんってことか?
708デフォルトの名無しさん:2011/04/15(金) 06:53:19.84
ネ申は人間が作った存在です
709デフォルトの名無しさん:2011/04/15(金) 07:29:53.38
俺もそういうことを言いたくて仕方ない時期があったよ
710デフォルトの名無しさん:2011/04/15(金) 07:40:36.12
昔、頭の悪い奴が作っていた間違った解説サイトによく載っていた手法だろう。
まんまと騙されたんだね。
711デフォルトの名無しさん:2011/04/15(金) 09:34:25.28
気に入らないならlist拡張しろよ、カス
712デフォルトの名無しさん:2011/04/15(金) 16:01:30.76
そうだね
リストのアルゴリズムなんだからリストに混入したらいい
上の例で言うと list.join(['a', 'b', 'c'], ',') にして ['a', 'b', 'c'].join(',')かw

理屈にあうようにメソッド名を変えてもいいんだし
PHPなんか関数だから implode() <-> explode() であっさりしたもんだよ
713デフォルトの名無しさん:2011/04/15(金) 16:30:58.88
その理屈はおかしい
714デフォルトの名無しさん:2011/04/15(金) 16:50:51.15
pass
715デフォルトの名無しさん:2011/04/15(金) 22:15:01.06
>>695
なるほどーダックタイプってそういう意味だったんだ
チュートリアル読んで、型制約無いからインターフェイスいりませんよってことかと思ってた
716デフォルトの名無しさん:2011/04/16(土) 00:33:19.03
本のコードの写経作業にうんざりしてきた。
でも読むだけじゃ知識にならないよね
717デフォルトの名無しさん:2011/04/16(土) 00:52:05.85
写経するにしても
丸暗記じゃだめだよ
718デフォルトの名無しさん:2011/04/16(土) 01:17:37.27
写経なるものが流行りだしのはここ数年だよな。
あれって意味あるのか?
719デフォルトの名無しさん:2011/04/16(土) 01:51:55.02
いや昔からあったよ
どっちにしても、写して終わりじゃなくて
写したのをコピーして自分なりに改造して遊ぶと少し身に付くかなと思う
写すだけだと本当に純粋な意味でコーダーにしかならない
720デフォルトの名無しさん:2011/04/16(土) 02:28:46.83
コーダーって詳細設計書を見てコーディングできる人間だよ。
写経はどっちかというとキーパンチャーに近い。
721デフォルトの名無しさん:2011/04/16(土) 03:42:15.09
なるほど、キーパンチャーかw
722デフォルトの名無しさん:2011/04/16(土) 18:43:52.22
詳細設計書なんてなかった
723デフォルトの名無しさん:2011/04/16(土) 23:31:35.52
>>716
自分は本は電子版で買って、コードはコピペ
そこから気になる部分を改変してみて挙動を確かめるって方法で勉強してる
724デフォルトの名無しさん:2011/04/17(日) 00:01:49.04
>>716
意外に、タイプして書き写すということ自体がいい勉強になるんだよね。
コピペだと、効率はいいけど身には付きにくい感じがする。
725デフォルトの名無しさん:2011/04/17(日) 08:46:09.04
>>723
気になる部分を自分で見出せないヤツが多いのでその勉強法は他人に勧めるものではないな
俺すげー、と自慢したいなら別だけど
726デフォルトの名無しさん:2011/04/17(日) 09:05:13.33
気になる部分というか、コピペコードって
コピペした後に改造欲とか出てこない?
その時点での知識をフル動員して改造してみると
少しは頭に入るようになると思う
727デフォルトの名無しさん:2011/04/17(日) 09:20:01.85
それが俺すげーに感じるというほうがおかしい。
728デフォルトの名無しさん:2011/04/17(日) 10:31:12.84
>>726
出てこないヤツが多いって話をしてるんだろ?
729デフォルトの名無しさん:2011/04/17(日) 12:40:32.98
そんな奴は写経のごとくポチポチ打ちこんでも
コードの意味なんか考えないよ。
730デフォルトの名無しさん:2011/04/17(日) 12:50:39.19
写経を考えながらやってた坊さんも少ないだろうけどな
731デフォルトの名無しさん:2011/04/17(日) 13:00:28.15
関数をコピペするときは入力と出力が分かれば内部構造はどうでもいいだろ
732デフォルトの名無しさん:2011/04/17(日) 14:11:51.24
最初にやりたいことがあって、それを実現するコードを書く方が勉強になるよ
733デフォルトの名無しさん:2011/04/17(日) 14:24:12.71
>731
勉強モードとそうじゃない場合で意味が違うけど

>730
むしろ文字通りの写経だったらアルゴリズムとかでなく言葉なので
必然的に言葉をかみしめながらやることになると思うが?
734デフォルトの名無しさん:2011/04/17(日) 16:44:33.17
「乾電池同梱」哲学だが、どうしても使いたいライブラリもチラホラ。
と言う事でBeautifulSoupを使ってみたサンプル。ソースはグチャグチャだけどご勘弁。
ttp://code.google.com/p/getekikara/

djangoも他で使ってみたけど自分で書いたコード(+テンプレート)は100行そこら......



735デフォルトの名無しさん:2011/04/17(日) 17:32:27.61
プログラミング「言語」をなめんなww
736デフォルトの名無しさん:2011/04/17(日) 18:25:25.74
>>735
ペロペロ。意味分からん。
737デフォルトの名無しさん:2011/04/17(日) 20:16:53.53
pass
738デフォルトの名無しさん:2011/04/17(日) 20:24:06.75
>>730
素人ならともかく、坊さんなるなら
お経はその意味まで含めて勉強するもんだと思うぞ
739デフォルトの名無しさん:2011/04/17(日) 20:46:26.40
__builtins__
740デフォルトの名無しさん:2011/04/17(日) 20:50:34.24
insert this
741デフォルトの名無しさん:2011/04/17(日) 23:16:33.57
結局言語の勉強ばっかりしてるんじゃなくて何か作ってみるのが一番勉強になるんだけどそれが見つからないし意欲も湧かない時点で俺オワタ。
じゃあ何のためにプログラミング勉強したんだって言われそうだけど
742デフォルトの名無しさん:2011/04/18(月) 00:16:07.56
そんなキミにはProjectEulerをオススメだ!
743デフォルトの名無しさん:2011/04/18(月) 00:21:52.36
>>741
お前こそ写経プログラミングでもしてろww
で、面接でプログラミングできます(キリッとでも言っときゃ中小企業なら就職できる
744デフォルトの名無しさん:2011/04/18(月) 00:35:43.98
まぁよく言うオセロとか電卓とか作る気がしないのは分からんでもない
745デフォルトの名無しさん:2011/04/18(月) 00:53:41.39
題名があれだし、Rubyだけどこれ本としては面白いのでこれ移植するといい勉強になるかも。
適度に遊びっぽくて無意味だけど楽しいお題ってなかなかないよね。

恋するプログラム―Rubyでつくる人工無脳 秋山 智俊
ttp://www.amazon.co.jp/dp/4839917299/
746デフォルトの名無しさん:2011/04/18(月) 01:57:45.20
>>741
cvs -nq update
の結果からModifyのファイルだけ、ファイル名と絶対パス、実行ディレクトリからの相対パス、タイムスタンプを出力するの作って!
対象はcc,hh,Makefileだけとしてください。

なんてのは?単に自分が欲しいだけなんだけど。
747デフォルトの名無しさん:2011/04/18(月) 07:20:47.67
>>746
欲しいものを自分で作らんと勉強にならんよ。
748デフォルトの名無しさん:2011/04/18(月) 08:59:17.74
まったくならないとは言わないけど、吸収は悪そうだな
749デフォルトの名無しさん:2011/04/18(月) 13:09:46.35
地震速報システムの情報を受信するにはどうすれば良いですか?
750デフォルトの名無しさん:2011/04/18(月) 13:36:59.42
ラジオのスイッチを入れる
751デフォルトの名無しさん:2011/04/18(月) 13:38:38.15
>>749
ついったーの@eew_jpをフォロー。python-twitter とかいうのを使うそうだ。

またはガラケーを買ってくる。
752デフォルトの名無しさん:2011/04/18(月) 13:54:32.77
tweepyおすすめ
753デフォルトの名無しさん:2011/04/18(月) 15:51:16.54
perlのflockに相当するものないですか
754デフォルトの名無しさん:2011/04/18(月) 15:54:08.71
755デフォルトの名無しさん:2011/04/18(月) 15:56:38.51
なまずの設定方法を変えたいんだけどソース落ちてないですか?
震源地との距離震度じゃなくて現在地の予想震度に
756デフォルトの名無しさん:2011/04/18(月) 15:57:41.48
>>755
誤爆
757デフォルトの名無しさん:2011/04/18(月) 20:27:08.67
>>745
この筆者亡くなったよね。
758デフォルトの名無しさん:2011/04/18(月) 22:04:40.42
秋山瑞人のお兄さんだな。
あれ以降彼も新作ださなくなちゃったなあ。
759デフォルトの名無しさん:2011/04/19(火) 20:58:36.00
EGFマダー
760デフォルトの名無しさん:2011/04/19(火) 21:09:46.77
さあ俺と一緒にラ板に帰ろう
761デフォルトの名無しさん:2011/04/19(火) 21:41:31.71
マラ板
762デフォルトの名無しさん:2011/04/20(水) 15:29:44.79
Pythonで動画ファイルの読み書きって何かいいライブラリないですかね?

pyffmpeg
FFVideo
Pyglet+AVbin

は試しました。
Windows環境にてmp4動画のデコードが正常に行なえたことを確認できたのは
pyffmpegのみ。しかしnumpy/PILの画像データに変換する段階が遅すぎるので、
他の選択肢がないか調査しているところです。
763デフォルトの名無しさん:2011/04/21(木) 03:10:34.18
pdfのページの回転とか左右開きのカスタマイズをこの言語で自動的にやりたいのですが、なにか手掛かりはないものでしょうか。スキャンした文書を一括処理したいのです。
764デフォルトの名無しさん:2011/04/21(木) 06:09:33.35
pypdf
765デフォルトの名無しさん:2011/04/21(木) 08:04:42.81
>>762
Windows限定でいいなら
http://forum.doom9.org/showthread.php?t=153248

avisynth用のスクリプトエディタだけど、Pythonで書かれてる
このなかのavisynth.pyを利用すれば、Pythonでavisynthの全ライブラリが利用出来る

avisynthをそのまま使ったほうが早そうだけど
766デフォルトの名無しさん:2011/04/21(木) 13:09:07.06
pythonでC拡張モジュール書いているんですが、
python script上で作成したattrの値をC拡張モジュール上で取得するためのメソッド、
マクロが分からず困っています。
python3のドキュメントのどこら辺に書いてあるのでしょうか?
767デフォルトの名無しさん:2011/04/21(木) 14:05:28.09
768766:2011/04/21(木) 14:17:26.26
>>767
ありがとうございます、そのものずばりでした。

# Python v3.2 documentation »
# Python/C API Reference Manual »
# Abstract Objects Layer »
Object Protocol

PyObject* PyObject_GetAttr(PyObject *o, PyObject *attr_name)¶
Return value: New reference.

Retrieve an attribute named attr_name from object o. Returns the attribute value on success, or NULL on failure. This is the equivalent of the Python expression o.attr_name.

PyObject* PyObject_GetAttrString(PyObject *o, const char *attr_name)¶
Return value: New reference.

Retrieve an attribute named attr_name from object o. Returns the attribute value on success, or NULL on failure. This is the equivalent of the Python expression o.attr_name.
769デフォルトの名無しさん:2011/04/21(木) 14:25:09.70
>>766
Cythonがおすすめ。
770デフォルトの名無しさん:2011/04/21(木) 14:32:49.08
>>769
以前どこかで見たような気がしますが、
ちょっと詳しく調べてみます。
771デフォルトの名無しさん:2011/04/21(木) 14:33:45.86
Cython使うと多少は速度落ちるの?
772デフォルトの名無しさん:2011/04/21(木) 14:36:14.49
>>771
直接コンパイルするんじゃなくて
Cソースをジェネレートするので、
そのソースコードを見れば何やってるのかすぐわかるよ。
773デフォルトの名無しさん:2011/04/21(木) 14:46:05.98
ドキュメント読まずに書くとかすげーなww
774デフォルトの名無しさん:2011/04/21(木) 15:24:09.65
>>773
???誤爆???
775デフォルトの名無しさん:2011/04/21(木) 19:42:18.58
>>765
これはいいプログラムですね!
avisysthのインターフェイスであることもさることながら、
Pythonインタプリタ込みのWindowsアプリを作る際の模範例となっている。

実はpyexeのsetup.pyのいい書き方が無くて困ってたところでした。
776デフォルトの名無しさん:2011/04/21(木) 20:00:03.47
GetAttrぐらいドキュメント読めばすぐ見つかるでしょ
777デフォルトの名無しさん:2011/04/22(金) 09:11:00.84
EC2まだ回復しねえのかよ!
もうEC2捨てるわ
778デフォルトの名無しさん:2011/04/22(金) 15:49:13.57
Pythonを勉強し始めたのでHelloWorldを書いてみました
記号とか数字とかがよくわからないので.,()とアルファベットしか使えませんでした
Pythonって誰が書いても綺麗に書けると聞いたんですけどコード自体は長くなってしまうものなんですね
ちょっと残念です

print(str().join(list((chr(sum((ord(min(str(NotImplemented))),str(True).find(min(str(None)))))),
list(str(True)).pop(),
min(str(Ellipsis).replace(min(str(Ellipsis).swapcase()).lower(),list(str(Ellipsis)).pop()).swapcase()).lower(),
min(str(Ellipsis).replace(min(str(Ellipsis).swapcase()).lower(),list(str(Ellipsis)).pop()).swapcase()).lower(),
max(str(None)),
chr(pow(str(Ellipsis).count(list(str(Ellipsis)).pop()),len(str(False)))),
chr(sum((ord(max(str(True))),str(Ellipsis).count(list(str(Ellipsis)).pop())))).upper(),
max(str(None)),
max(str(True).replace(max(str(True)),list(str(True)).pop())),
min(str(Ellipsis).replace(min(str(Ellipsis).swapcase()).lower(),list(str(Ellipsis)).pop()).swapcase()).lower(),
list(str(NotImplemented)).pop(),
chr(sum((pow(str(Ellipsis).count(list(str(Ellipsis)).pop()),len(str(False))),len(max(str(None))))))))))
779デフォルトの名無しさん:2011/04/22(金) 23:58:40.49
できるPythonプログラマはこう書く。
print('Hello World!')

780デフォルトの名無しさん:2011/04/23(土) 09:08:07.84
>>778
=も覚えたら、一気に楽になるぞ

t=type(str(), (), dict())
t.HelloWorld=None
print(list(sorted(dir(t), reverse=True)).pop())
781デフォルトの名無しさん:2011/04/23(土) 09:12:10.16
明晰さがうりなのに、結局Perlめいたぐちゃぐちゃコードを書いてだめな仕事するやつってほんとにいるよね。
782デフォルトの名無しさん:2011/04/23(土) 10:38:01.05
>>778
   ___l___   /、`二//-‐''"´::l|::l       l! ';!u ';/:::l ', ';::::::l ';:::::i:::::
   ノ l Jヽ   レ/::/ /:イ:\/l:l l::l   u   !. l / ';:::l ', ';:::::l. ';::::l:::::
    ノヌ     レ  /:l l:::::lヽ|l l:l し      !/  ';:l,、-‐、::::l ';::::l::::
    / ヽ、_      /::l l:::::l  l\l      ヽ-'  / ';!-ー 、';::ト、';::::l:::
   ム ヒ       /::::l/l::::lニ‐-、``        / /;;;;;;;;;;;;;ヽ!   i::::l:::
   月 ヒ      /i::/  l::l;;;;;ヽ \             i;;;;;;;;;;;;;;;;;;;l   l::l:::
   ノ l ヽヽノ    /:::l/:l /;;l:!;;;;;;;;;',               ';;;;;;;;;;;;;;;;;ノ    l:l::
      ̄ ̄    /::::;ィ::l. l;;;;!;;;;;;;;;;;l            `‐--‐'´.....:::::::::!l
   __|_ ヽヽ   /イ//l::l ヽ、;;;;;;;ノ....      し   :::::::::::::::::::::ヽ /!リ l
    | ー      /::::l';!::::::::::::::::::::  u               ', i ノ l
    | ヽー     /イ';::l          ’         し u.  i l  l
     |       /';:';:!,.イ   し    入               l l U
     |      /,、-'´/ し      /  ヽ、   u    し ,' ,'  l
     |        /l し     _,.ノ     `フ"       ,' ,'  ,ィ::/:
     |       /::::::ヽ       ヽ    /     し ,' ,' / l::
     |      /::::::::::::`‐、 し      ',  /    u   ,、-'´  l,、-
     |      ``‐-、._::::::::::` ‐ 、     ',/       , -'´`'´ ,-'´
     |      _,、-‐'"´';:::::::::イ:l';:::` ‐ 、._____,、-‐'"´  u /
   | | | |    \ l::/ l::::::/リ ';:::::lリ:::::l';:::l l:l:::::l\  u /
783デフォルトの名無しさん:2011/04/23(土) 10:55:47.00
受けると思って必死に書いたのに失笑しかされない>>778さん(´・ω・)カワイソス
784デフォルトの名無しさん:2011/04/23(土) 10:58:13.51
Perlスレとかなら面白がられただろうけど
Pythonってあんまりそういう文化がないからなあ
785デフォルトの名無しさん:2011/04/23(土) 11:38:51.03
>>778
この条件だとこういう力技も可能なのでちょっとイマイチ……
print str().join(map(chr,map(sum,zip(map(len,(((),(),(),()),((),),
((),(),(),(),(),(),(),()),((),(),(),(),(),(),(),()),
((),(),(),(),(),(),(),(),(),(),()),
((),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),()),
((),(),(),(),(),(),(),(),(),(),()),((),(),(),(),(),(),(),(),(),(),(),(),(),()),
((),(),(),(),(),(),(),()),())),
(len(((),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),
(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),
(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),
(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),
(),(),(),(),(),(),(),(),(),()))
for x in range(len(((),(),(),(),(),(),(),(),(),()))))))))
786デフォルトの名無しさん:2011/04/23(土) 11:47:30.91
>>785
卵切らしてたの思い出した。
787デフォルトの名無しさん:2011/04/23(土) 12:09:08.74
788デフォルトの名無しさん:2011/04/23(土) 13:55:13.62
なんだLispか
789デフォルトの名無しさん:2011/04/23(土) 13:58:43.70
PythonとLispとどっちを学ぶのがいいの?
790デフォルトの名無しさん:2011/04/23(土) 13:59:58.17
pythonに決まってるだろ。
791デフォルトの名無しさん:2011/04/23(土) 15:00:35.12
Lispの括弧を全てタブに置換すればスマートになる
792デフォルトの名無しさん:2011/04/23(土) 21:45:58.81
>>778を見てアホかこいつ、、、と思ってたが、>>785-786の卵にワロタ
793デフォルトの名無しさん:2011/04/23(土) 21:47:37.98
python3.2をローカルに入れているのです、サーバがpython2.5にしか対応しておりません
pythonでCGIをおこなう場合、ただ単にHTMLを出力するだけなら以下のコードで問題ないでしょうか?
POSTやGETなどの動的なものなどは一切使いません
ただHTMLを出力するだけです


#!/usr/bin/python
# -*- coding: utf-8 -*-
print "Content-Type: text/plain"
print """
<html>
省略
</html>
"""
794デフォルトの名無しさん:2011/04/23(土) 21:51:43.81
3.xからprintは関数になってる
795デフォルトの名無しさん:2011/04/23(土) 21:58:53.45
>>793
print "Content-Type: text/plain"
print
print """

にして空行間にはさまないとダメ
796デフォルトの名無しさん:2011/04/23(土) 21:59:59.52
改行いれないとだめでした
ありがとうございます
797デフォルトの名無しさん:2011/04/23(土) 22:22:56.88
python2.7にしたらTkinter入ってなかったのでこれを気に違う奴に
しようと思うんですがどれが良いでしょうか?
どちらかといえば簡単なやつの方が良いんですが
798デフォルトの名無しさん:2011/04/23(土) 22:58:47.19
pyQt vs wxPythonの闘いが始まった
799デフォルトの名無しさん:2011/04/23(土) 23:05:17.96
PythonでデスクトップGUIだと…
800デフォルトの名無しさん:2011/04/23(土) 23:06:56.26
WindowsバイナリのPython 2.7.1だけど普通にTkinter入ってたけどな
801デフォルトの名無しさん:2011/04/23(土) 23:13:44.24
まあどれも似たようなもんだな
802デフォルトの名無しさん:2011/04/23(土) 23:14:56.47
>>780
ためしに打ち込んでみたらほんとにハローワールド出てきた
なにこれすごい(*´ω`*)
803デフォルトの名無しさん:2011/04/23(土) 23:14:58.58
pythonはコンソールだろjk
804デフォルトの名無しさん:2011/04/23(土) 23:22:05.75
とりあえず日本語の解説が多いwxPythonにしようと思います。
ありがとうございました〜
805デフォルトの名無しさん:2011/04/23(土) 23:24:30.50
てぃーきんた
806デフォルトの名無しさん:2011/04/23(土) 23:26:50.89
>>799
どういうこっちゃ
807デフォルトの名無しさん:2011/04/24(日) 03:37:41.71
>>799
Linux環境だと割と当たり前にGUIアプリ書くのに使われてるぞ
管理用ツールなんかもPython製だったりして
Python無しでは成り立たないディストリビューションもいくつかあるよ
808デフォルトの名無しさん:2011/04/24(日) 03:37:48.80
うきゃー
809デフォルトの名無しさん:2011/04/24(日) 06:54:35.60
webインターフェイスにすればいいじゃん。

http://localhost

810デフォルトの名無しさん:2011/04/24(日) 07:09:33.00
pythonの拡張モジュールを作成しているのですが、
よく分からないことがありますので質問させて下さい。

以下のように、c fileとpy fileでモジュールの名前を
二重に設定するようになっているのは何故なのでしょうか?
そうしなければならない背景とはどんなものだったのでしょうか?
---------------------------------------------------------------
spam.c
static struct PyModuleDef spammodule = {
PyModuleDef_HEAD_INIT,
"spam", /* name of module */
spam_doc, /* module documentation, may be NULL */
-1, /* size of per-interpreter state of the module,
or -1 if the module keeps state in global variables. */
SpamMethods
};
---------------------------------------------------------------
setup.py
from distutils.core import setup, Extension

module1 = Extension('demo',
sources = ['demo.c'])

setup (name = 'PackageName',
version = '1.0',
description = 'This is a demo package',
ext_modules = [module1])
811デフォルトの名無しさん:2011/04/24(日) 13:13:50.44
>>810
Cで書いたインターフェイスの詳細をPythonでラップして隠蔽するため。
普通はC側をdemoじゃなくて_demoにしたりする。
812デフォルトの名無しさん:2011/04/24(日) 13:21:46.22
単純にCのパースができないからだと思うんだが
813デフォルトの名無しさん:2011/04/24(日) 21:13:43.16
>>810
setup.pyに書く方は成果物の名前になる。import文はファイルパス、ファイル名を元に動作するので重要。
PyModuleDefの名前はimport後、コードから
使うので名前を変えるとモジュールにある関数とか引けなくなる。
試してみるといいよ
814デフォルトの名無しさん:2011/04/25(月) 02:58:30.21
spam.c内のPyModuleDefの方は、
demo.__name__
とした時に、
"spam"
といった具合に表示されたので、
__name__の名前として使われているようでした。

import時のmodule名は、setup.pyの
extensionに書いた名前が使われるようでした。

setup.pyのextensionに書いた名前を元にspam.cの
Py_Init_XXX()
関数を呼び出しているようでした。
ここの名前はextensionとPy_Init_XXX()で一致させないといけないようでした。

egg infoの名前として、setup.pyの
setup()に書いた名前が使われていました。
wc -l /HOME/USER/local/lib/python3.2/site-packages/PackageName-0.0-py3.2.egg
-inf
10
815デフォルトの名無しさん:2011/04/25(月) 07:08:07.56
だからそう言ってるじゃない...
816デフォルトの名無しさん:2011/04/25(月) 07:23:21.63
ありー。。。
私がうまく理解できていなかったんですね。
今の私では、>>813にそこまで書いてあるとは思いませんでした。
折角の親切なのに受けきれなくて申し訳ありませんでした。
817デフォルトの名無しさん:2011/04/26(火) 10:55:45.16
>>> import numpy as np
>>> np.frompyfunc(lambda x: -x,1,1)(np.arange(10))
array([0, -1, -2, -3, -4, -5, -6, -7, -8, -9], dtype=object)
>>> np.vectorize(lambda x: -x)(np.arange(10))
array([ 0, -1, -2, -3, -4, -5, -6, -7, -8, -9])
818デフォルトの名無しさん:2011/04/26(火) 10:58:54.94
【上の続き】
numpyの質問ですが、vectorizeはいいとして、frompyfuncの返す型がおかしいです。
計算の途中でもdtypeをintであることが保証される方法はありますか?
(数値計算に使うので、最後の結果を型変換するとかはなしで)
819デフォルトの名無しさん:2011/04/26(火) 11:21:16.87
なにやりたいのかさっぱり分からん
820デフォルトの名無しさん:2011/04/26(火) 11:25:40.38
frompyfuncではdtype=objectになってしまっていますが、
vectorizeはdtype=int32か何かです。
どこで勝手にobject型に変換されてしまったのか不明なのです。
821デフォルトの名無しさん:2011/04/26(火) 11:29:35.32
np.frompyfuncで変換されたんだろ
822デフォルトの名無しさん:2011/04/26(火) 11:41:19.48
>>> np.frompyfunc(lambda x: -x,1,1, dtype=aaaint)(np.arange(10))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'aaaint' is not defined
>>> np.frompyfunc(lambda x: -x,1,1, dtype=int)(np.arange(10))
array([0, -1, -2, -3, -4, -5, -6, -7, -8, -9], dtype=object)

dtypeをintと指定しても
dtype=object
だねー。予想と違った。
私にも分からん。有識者の回答を待ってくれ。
俺も参考にさせてもらう。
823デフォルトの名無しさん:2011/04/26(火) 11:46:13.65
>>> np.vectorize(lambda x: -x, dtype=int)(np.arange(10))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: __init__() got an unexpected keyword argument 'dtype'
>>> np.vectorize(lambda x: -x, dtype=int32)(np.arange(10))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'int32' is not defined
>>> np.vectorize(lambda x: -x)(np.arange(10))
array([ 0, -1, -2, -3, -4, -5, -6, -7, -8, -9])
>>> np.vectorize(lambda x: -x)(np.arange(10)) [0]
0
>>> type(np.vectorize(lambda x: -x)(np.arange(10)) [0])
<class 'numpy.int32'>
>>> np.frompyfunc(lambda x: -x,1,1, dtype=int)(np.arange(10))
array([0, -1, -2, -3, -4, -5, -6, -7, -8, -9], dtype=object)
>>> type(np.frompyfunc(lambda x: -x,1,1, dtype=int)(np.arange(10))[0])
<class 'int'>
>>> type(np.frompyfunc(lambda x: -x,1,1)(np.arange(10))[0])
<class 'int'>

こんな事になったよ。
値の型はintみたいだよん
824デフォルトの名無しさん:2011/04/26(火) 11:51:55.70
>>> np.array([0, -1, -2, -3, -4, -5, -6, -7, -8, -9], dtype=object)
array([0, -1, -2, -3, -4, -5, -6, -7, -8, -9], dtype=object)
>>> np.array([0, -1, -2, -3, -4, -5, -6, -7, -8, -9], dtype=int)
array([ 0, -1, -2, -3, -4, -5, -6, -7, -8, -9])
>>> type(np.array([0, -1, -2, -3, -4, -5, -6, -7, -8, -9], dtype=int)[0])
<class 'numpy.int32'>
>>> type(np.array([0, -1, -2, -3, -4, -5, -6, -7, -8, -9], dtype=object)[0])
<class 'int'>
>>> type(np.array([0, -1, -2, -3, -4, -5, -6, -7, -8, -9], dtype=int32)[0])

おまけ。成仏しろよ
825デフォルトの名無しさん:2011/04/26(火) 11:54:04.80
>>> type(np.array([0, -1, -2, -3, -4, -5, -6, -7, -8, -9], dtype=numpy.int32)[0])
<class 'numpy.int32'>
826デフォルトの名無しさん:2011/04/26(火) 11:57:07.17
matlabの参考書読みながらやってみたとき
from pylab import *でmatlabの組み込み関数とかも結構自然に使えたけど
本格的にやるならfreematの方が楽だった
pylabはpythonに慣れてる人の電卓代わりにはなるけど
827デフォルトの名無しさん:2011/04/26(火) 12:04:35.38
質問者です。別件になりますが、
type(nary[0])

nary.dtype
の型が違うというのは、どういうことでしょうか・・・;
いずれにせよ、ありがとうございました。
大変参考になりました。
828デフォルトの名無しさん:2011/04/26(火) 12:07:59.91
frompyfunc使った瞬間にnumpyの外に出ちゃって、
numpyの世界からみるとネイティブのintは(python) objectにしか見えない
って感じでしょうかね。
829デフォルトの名無しさん:2011/04/26(火) 12:18:23.27
あと、本格的にやるなら他の言語使うので、大丈夫です。
型付けが静的なのは痛い。
830デフォルトの名無しさん:2011/04/26(火) 12:34:03.92
>>827
dtypeがnumpy.int32のやつは、内部のレイアウトが
CやJavaの整数のネイティブ配列みたいなもんになってるはず
つまり実際32bit整数が生のままフラットに並んでいて効率がいい

dtypeがobjectのときは、要素をそのまま格納しフラットに並べるのではなく
Pythonのobjectの参照が格納されている
Javaで言うObjectの配列と同じでCで言えばポインタ配列にあたる
何でも入れられるし、Pythonは動的型だからそれぞれの要素がちゃんと型を持ってる
上の例ではそれがたまたまint型なわけだけど、
メモリレイアウトや効率性は天と地ほども違う

あとは勿論、Pythonのintだとオーバーフローはせず自動でlongに拡張されるだとか、
そういう違いは色々あるだろう
831デフォルトの名無しさん:2011/04/26(火) 13:47:42.50
print numpy.frompyfunc.__doc__

Notes に frompyfunc は常に PyObject の配列を返すと書かれてます
numpy.frompyfuncのソースには /* Keyaords are ignored for now */
832デフォルトの名無しさん:2011/04/26(火) 14:47:28.41
色々ありがとうございました。
実装のことを全く知らずに使うのが不安だったのですが、これで枕を高くして眠れます。
833デフォルトの名無しさん:2011/04/26(火) 15:24:29.36
>>822-824
位は自分で試してみて欲しかったよ。
プログラム自体初心者なの?
今度は自分で色々試してみてね。
それが伸びるコツだから。
834デフォルトの名無しさん:2011/04/27(水) 14:29:58.35
この問題を Python で解くとどうなりますか?
http://googledevjp.blogspot.com/2011/04/google-code-jam-2011.html
835デフォルトの名無しさん:2011/04/27(水) 14:41:03.02
言語は関係ない
836デフォルトの名無しさん:2011/04/27(水) 16:00:57.06
>>834
https://gist.github.com/943827
適当に考えてみた。
ループじゃなくてうまく剰余を使った方法があるかもしれないけど、
ループでも十分な時間で解けてしまった。
本当にこんなんで良いんかな?
837デフォルトの名無しさん:2011/04/27(水) 16:17:28.43
インタラクティブモードでだけ読み込まれる設定ファイルとかないですかね。
rubyだと ~/.irbrc っつーのがあるんですけど、同じようにインタラクティブモードの
ときだけ設定したいことがありまして。
なおいちいち「ruby使え」ってのはなしでお願いします。
838デフォルトの名無しさん:2011/04/27(水) 16:22:16.08
839838:2011/04/27(水) 16:23:36.68
PYTHONSTARTUPを使ってTAB補完を有効にする例
http://www.python.jp/doc/nightly/library/rlcompleter.html
840デフォルトの名無しさん:2011/04/27(水) 16:58:22.23
>>838-839
さんくす!

841デフォルトの名無しさん:2011/04/27(水) 19:22:32.52
解決したようだけど。。。
ipython使うとTAB補完もともと有効だし、自動インデントもあるし、いい感じだよ。
842デフォルトの名無しさん:2011/04/27(水) 22:49:14.10
ipythonで何も無いとこでタブ押すとlsみたいな表示になるのどうにかならんの
あの機能いらいないんだが
843838:2011/04/27(水) 22:51:31.71
>>842
IPythonの開発版使ってるけど、何もないところでTAB押してもカレントディレクトリの補完はなくなってる。
844デフォルトの名無しさん:2011/04/27(水) 23:37:18.58
>>841
インタラクティブモードでの設定ファイルについての質問なのに
なぜipythonをすすめるのかまったく意味不明
845デフォルトの名無しさん:2011/04/27(水) 23:57:20.01
>>844
irbに対するものは、pythonではなくipythonだから。
それに、環境変数で設定するよりは.ipythonrcとかで設定した方が便利だろ。
846デフォルトの名無しさん:2011/04/28(木) 00:08:47.52
WScript.shellでpythonスクリプトを実行したときに
スクリプト内の変数の値を指定して実行したいのですが
外部からスクリプト内にある変数の値を指定して実行することはできるんでしょか
847デフォルトの名無しさん:2011/04/28(木) 01:10:22.74
locals().get(name, globals().get(name, None))
eval(name)
848デフォルトの名無しさん:2011/04/28(木) 14:53:07.33
perl だと eval ってセキュリティホールで嫌われてるけど
python の場合ってどうなの?
849デフォルトの名無しさん:2011/04/28(木) 15:10:47.35
データの汚染具合による
850デフォルトの名無しさん:2011/04/28(木) 15:17:56.78
言語関係なく信頼できないデータ実行しなきゃいいだけ
851デフォルトの名無しさん:2011/04/28(木) 15:24:19.28
セキュリティの問題については↑で終了
スタイルの問題としては、evalは最後の手段、という感じは
言語を問わずある気はする

もっともPythonも標準ライブラリ見るとメタプログラミング目的で
平然とexec使ってたりするけどな
852デフォルトの名無しさん:2011/04/28(木) 16:37:34.68
使ってもいい名前のホワイトリスト(辞書)を作った方がいい
shellで渡す引数は、sys.argvから。

標準ライブラリで使われてるexec/eval/compile等はテストやデバッグ向けのが多いよ
テンプレートからコードを生成して・・・みたいなのはnamed_tupleくらいじゃないかな。
853デフォルトの名無しさん:2011/04/28(木) 17:30:22.37
ありがとう
854デフォルトの名無しさん:2011/04/28(木) 17:44:29.25
どういたしまして
855デフォルトの名無しさん:2011/04/28(木) 18:02:12.25
namedtupleの実装はどうにかならんのかアレ
856デフォルトの名無しさん:2011/04/28(木) 18:17:41.83
別にどうしても使わないといけないようなライブラリというわけでもなし。
857デフォルトの名無しさん:2011/04/28(木) 18:20:27.19
evalについては、こんな感じ。python3の話題だが、2でもそこらへんは同じ。
http://diveintopython3-ja.rdy.jp/advanced-iterators.html#eval
858デフォルトの名無しさん:2011/04/28(木) 18:42:04.31
>A シェルコマンドの無制限な実行は、恒久的な結果を招く可能性がある。

恒久的な結果 → 不可逆的な結果

>eval()は悪

eval()は悪 → eval()はevil

859デフォルトの名無しさん:2011/04/28(木) 21:09:24.34
>>856
どうしても使わないといけないなんていわないよぜったい
860デフォルトの名無しさん:2011/04/28(木) 22:39:00.45
>855

execしてるのはともかく、実行フレームからの情報参照してるのはなんとかなんないかなとは思う
861デフォルトの名無しさん:2011/05/01(日) 16:50:20.00
PyArg_ParseTupleAndKeywords(args, kwds, "y#|i", kwlist, &buf, &index));
とやって、Python scriptからの値を拡張ライブラリ内で受け取っているのですが、
script上で128, 192, 256等を渡しても、
拡張ライブラリ側では 16, 24, 32 のように、
index の値を8で割った値が格納されてしまいます。

さっぱり、訳が分からず困っています。
何故なんでしょうか?
862デフォルトの名無しさん:2011/05/01(日) 17:16:04.12
>>861
y#で文字列と長さを受け取るんだろ?
オプションとあわせて一つ足り無くないか?
863デフォルトの名無しさん:2011/05/01(日) 23:07:12.19
ttp://code.google.com/p/html5lib/
こんなんあったのか、知らんかった
864デフォルトの名無しさん:2011/05/01(日) 23:23:28.94
>>862
ご指摘の通り、引数が足りていませんでした。
PyArg_ParseTupleAndKeywords(args, kwds, "y#|i", kwlist, &buf, &buflen, &index));
としたところ、うまく動くようになりました。

ありがとうございました。
865デフォルトの名無しさん:2011/05/02(月) 01:05:50.23
def count(n):
while True:
yield n
n=n+1

def prime(g):
p = g.next()
yield p
gg = prime(g)
while True:
n = gg.next()
if n%p != 0: yield n
else: pass

g = prime(count(2))
for i in range(200):
print g.next()

素数を出力するジェネレータを作ったのですが、
再帰の深さが深くなるとエラーが出るようなのです。
ソースをどのように変更すればこのようなエラーは出なくなりますか?

RuntimeError: maximum recursion depth exceeded
866デフォルトの名無しさん:2011/05/02(月) 01:10:14.85
>>865
インデントが潰れて読めないから、
これを使ってみて。
http://pastebin.com
867デフォルトの名無しさん:2011/05/02(月) 01:16:01.98
>>866
安価越しには見えるから。専ブラで工夫すれば大丈夫
868デフォルトの名無しさん:2011/05/02(月) 01:35:32.81
>>867
みんながその機能持った専ブラ使ってると思うなよ。
少なくとも p2 だと安価ごしでも普通にインデント潰れて見える。
むしろアンカーごしだとインデントが見えるのって、プレビュー機能のバグだろ。
869デフォルトの名無しさん:2011/05/02(月) 01:40:01.60
元はバグだろうけど、便利だからそのまま仕様にした感じじゃね
870デフォルトの名無しさん:2011/05/02(月) 01:40:27.62
バグだろうがなんだろうが見えたもん勝ちだろうが
871デフォルトの名無しさん:2011/05/02(月) 01:47:14.36
俺が見えないんだから意味ねえだろ
872デフォルトの名無しさん:2011/05/02(月) 01:51:09.31
>>865
>>> import sys
>>> sys.getrecursionlimit()
1000
>>> sys.setrecursionlimit(10000)
>>> sys.getrecursionlimit()
10000
873デフォルトの名無しさん:2011/05/02(月) 04:21:24.80
874865:2011/05/02(月) 09:13:16.90
2chでは改行が表示されないようなので、ソースだけ外部サイトに置いて、
再度質問させていただきます。

■質問

素数を出力するジェネレータを作ったのですが、
再帰の深さが深くなるとエラーが出るようなのです。
末尾再帰最適化すればエラーは出ないのかもしれませんが、
どのように書きなおせば良いかわかりません。
どうかお知恵をお授けください。

■ソース

http://pastebin.com/uaM4bF9z

■エラー

RuntimeError: maximum recursion depth exceeded
875865:2011/05/02(月) 09:48:23.84
>>872
再帰深度が深くならない様な実装が望ましいと考えます。
しかし、それは別として、参考になりました。
ありがとうございます。
876デフォルトの名無しさん:2011/05/02(月) 11:55:01.47
>>874
primeの中でprimeを呼び出す実装だと再帰が深くなるのは避けられないだろうね
メモ化使っていいなら↓
http://pastebin.com/Dtx6yEfd
877デフォルトの名無しさん:2011/05/02(月) 12:16:30.84
CPythonのコンパイラは末尾再帰最適化はやってくれない
activestateのcookbookにデコレータで末尾再帰をループに展開する方法が幾つか載ってるけど、
多分、ジェネレータの場合にはそのまま使えません。

ちなみにメモ化に相当するのをifilterでやってるのが>>872
p.__rmod__ は x % p 、フィルタ内で使ってるので剰余が0の値は読み飛ばされる
878デフォルトの名無しさん:2011/05/03(火) 22:51:02.81
ユニコードで出力してもWriteConsoleW呼んでくれないのか
879デフォルトの名無しさん:2011/05/03(火) 23:17:36.75
subprocess.PopenでサブプロセスとPIPE処理しているんだけど、
stdin,stdout,stderrを全部PIPEで受け取っておかないと、
本体側のコンソールにサブプロセスの出力がバイパスされてしまっているように見えます。

これって毎回3つともPIPEで有効にしておかないといけないんですかね?
880デフォルトの名無しさん:2011/05/04(水) 10:47:32.64
>>879
UNIXなら/dev/nullにリダイレクトすれば子プロセスの出力を捨てられるが。

null = open("/dev/null, "w")
p = Popen(("/bin/ls", "/"), stderr = null, stdout = null)

WindowsでもNULで同じことが出来ると思うが、試したことはない。
881デフォルトの名無しさん:2011/05/05(木) 01:43:33.00
list = []
list.append( {"hoge": "foo", "huga": "bar"})

なぜこれがダメなのでしょうか?
882デフォルトの名無しさん:2011/05/05(木) 01:54:28.82
どうダメって言われた(書いてあった)か書かなきゃ
とりあえずは組み込み関数にlistって関数があるから
883デフォルトの名無しさん:2011/05/05(木) 02:53:48.86
自分が把握してない組み込み関数なんてどうせ使わないんだから上書きして良いじゃん
884デフォルトの名無しさん:2011/05/05(木) 04:55:15.10
組み込み関数が思わず上書きしてしまいそうな名前になってることが悪いと思うんだよね。
listとかlenとかsetとか。
885デフォルトの名無しさん:2011/05/05(木) 05:02:50.52
listとsetはともかくとして、lenはPythonicじゃないかもね。
lengthとか。

できればグローバルな関数じゃなくて
組み込みメソッドのほうが良かった。
886デフォルトの名無しさん:2011/05/05(木) 07:00:21.31
細かい事ばかりだけど、その他は・・・

( 後のスペースが不要、: と , の後ろにはスペースが必要(理由はPEP8を読もう)

何のリストか判るように変数名は具体的な判り易い名前をつけよう。
但し、一時変数の場合は、lst, dct や L, S, D って名前が使われる慣習(悪習?)がある。
でも、なるべく避けたほうが良い。

保守性を考慮するなら、辞書は各キー・値を一行毎に書くと追加・削除し易い。

定数なら直接リテラルとして記述した方がよい。
881の例の場合appendは不要で、初期化の際に [{"hoge": "foo", "huga": "bar"}] で済む。
887デフォルトの名無しさん:2011/05/05(木) 07:00:53.49
>>885
度々言われるよね、それ。

import this とかで言及されてたはずの一貫性にのみ着目してみると

メソッドだと、ユーザが作るクラスにおいて統一が取れない。
あるクラスでは要素数を得る同様メソッドとして .size() や .count() を実装するかもしれない

組み込み関数 len(obj) で obj.__len__() を呼び出すという規約を設けることで
利用者は len(obj) だけ覚えればよく、 obj.length なのか obj.size なのかを調べる必要がない
クラス実装者は必要であれば __len__()をオーバーライドすれば良い。って枠組みを与えている。

メソッドの方が良かったってのは、恐らくメソッドチェインに慣れ親しんでるからじゃないかな。
前置と後置での思考が切り替わってないと、エディタでカーソルを戻さないって煩わしさはあるとは思う。
多言語行き来してると特に。でも、どちらが Pythonicかと言うと len() だと思う。

多くの組み込み関数や演算子の殆どが オブジェクトの同名の特殊メソッドを呼び出してるだけという事からも。
lengthだけメソッドにして特別扱いするより、一貫させた方がダックタイピングの利点をより広く活かせる。
888デフォルトの名無しさん:2011/05/05(木) 07:59:08.96
FAQ曰く
The major reason is history.
889デフォルトの名無しさん:2011/05/05(木) 08:21:20.35
lenは名前が問題だと思うの
890デフォルトの名無しさん:2011/05/05(木) 12:30:15.36
891デフォルトの名無しさん:2011/05/05(木) 12:38:21.30
>>890
たしかに、 obj.length() だと戻り値が整数型だって保証がないし、
人によってはpropertyにしちゃって obj.length にしちゃうかも
しれないからな。
数学的に慣れ親しんだ書き方だから分かりやすいという理由も、
X の代わりに使えるのは X.sum じゃなくて sum(X) だし、
|S| の代わりなら S.length じゃなくて len(S) のほうが良いだろうな。
892デフォルトの名無しさん:2011/05/05(木) 13:15:33.00
893デフォルトの名無しさん:2011/05/05(木) 13:20:30.90
length()がいいな〜
894デフォルトの名無しさん:2011/05/05(木) 14:37:52.17
長げーよ
895デフォルトの名無しさん:2011/05/05(木) 14:54:48.86
それが良いんじゃん
短い名前は変数名とか仮引数名とかで使いたいよ
896デフォルトの名無しさん:2011/05/05(木) 15:02:54.25
Javaじゃあるまいし、糞長い名前とかLLでは論外
897デフォルトの名無しさん:2011/05/05(木) 15:58:33.98
a, b = line[0], line[1] if line[0] >= line[1] else line[1], line[0]

これなんでダメなん?
898デフォルトの名無しさん:2011/05/05(木) 16:01:04.66
あ、なるほど。自己解決しますた
899デフォルトの名無しさん:2011/05/05(木) 18:26:36.37
>>897,898
自己解決したようで何よりだが、経緯を書いても罰は当たらんと思うぞ。

a, b = line[0], line[1] if line[0] >= line[1] else line[1], line[0]

a, b = line[0], (line[1] if line[0] >= line[1] else line[1]), line[0]
左辺のタプルが二つの要素なのに右辺が三つで帳尻が合わないからエラーになっとるわけだ。

ちゃんと期待通りの動作をさすには、三項演算子が「タプル」を返すように書けばいい。
a, b = (line[0], line[1]) if line[0] >= line[1] else (line[1], line[0])
900デフォルトの名無しさん:2011/05/05(木) 18:28:08.81
こういう奴がドヤ顔で現れるって確信してたわ。自己解決したって言ってんだろ。殺すぞ
901デフォルトの名無しさん:2011/05/05(木) 18:34:19.48
その発言、通報できるぞ
通報しようか?
902デフォルトの名無しさん:2011/05/05(木) 18:39:52.08
おねがいします
903デフォルトの名無しさん:2011/05/05(木) 18:40:35.67
今回のその発言自体は実は通報できないよ

でも安易に「殺す」とか書いちゃう人は
いつか本当に通報可能な発言しちゃう可能性が高いな
904デフォルトの名無しさん:2011/05/05(木) 18:44:14.22
おねがいします
905デフォルトの名無しさん:2011/05/05(木) 18:58:57.56
>>900
ついでに東尋坊なり青木ヶ原なりでこの問題も「自己解決」しちまえよw
906デフォルトの名無しさん:2011/05/05(木) 22:26:42.73
自決しました
907デフォルトの名無しさん:2011/05/05(木) 23:24:45.51
やっと死んだか・・・
908デフォルトの名無しさん:2011/05/06(金) 08:54:15.13
初心者なのですが今参考にしているスクリプトでb'\r\n'という記載があるのですが

実行してみるとこの部分でエラーになります。

bの文字を外すと動くのですがこの記載の意味がわかりません。bはバイナリかなにかですか?

2.4の環境で作成したいのでもし古い書き方もありましたら教えていただけますか

よろしくお願いします。
909デフォルトの名無しさん:2011/05/06(金) 08:59:42.60
bは3.xでのbytesリテラルだから、2.xではいらないよ。
910デフォルトの名無しさん:2011/05/06(金) 09:10:05.48
>>909
さっそくありがとうございます。
911デフォルトの名無しさん:2011/05/06(金) 18:35:33.80
GAEの検索ロジックを考えなくてはいけません。お知恵をお貸しください。
実装はGAEですが、ロジックの問題なのでここで質問させてください。
条件をグループ可するとおおまかに4つのグループがあります。
A-B-C-D
ただし、それぞれ数が可変です。
A B C D
  B1C1 D1
    C2
さらにどれかがひとつもない場合もあります。
A B  D
  B1 D1
GAEではOR検索できないのですべての条件で検索を実行してマージしなければならないです。
4つのネストしたループでやろうとしましたが、Bグループがない場合やDグループがない場合を
考えていたら頭が混乱してしまいました。
解法のお手本などありましたら、教えてください。
よろしくお願いします。
912デフォルトの名無しさん:2011/05/06(金) 19:26:56.99
>>911
4フィールドあるレコード型、という認識でいいのかい?
単純にA,B,C,Dの値を適当にキャプションつけた上で
1つ文字列として連結してEのフィールドに入れておいた上で、
条件式を与えて全文検索すればいいんじゃね?
GAEはよく知らんけどもともと検索エンジン用のDBなんだからそれくらいできるでしょ。
913デフォルトの名無しさん:2011/05/06(金) 19:43:16.75
いまいち内容が理解できてないけど
GQL使わずにfilter複数回使ってそれぞれの条件をかければいいんじゃない?
914デフォルトの名無しさん:2011/05/06(金) 19:48:08.32
>>911
意味わからん
質問の意味がちゃんと他人にわかるように整理しる

多分その整理の過程で自分で気づくのではと思う
915デフォルトの名無しさん:2011/05/06(金) 20:54:25.71
>>912
単にルート探索みたいなものと考えていただいた方がいいです。
検索方法ではなく、いろいろな検索条件をもれなくANDで
つなげていく最終的には文字列が欲しいだけです。
>>913
GQLにするかfilterにするか以前に全部のパターンで組み合わせを網羅する方法がわからないのです。
>>914
おっしゃる通りですね。
A B C D
  B1C1 D1
    C2
の場合
A-B-C-D
A-B-C-D1
A-B-C1-D
A-B-C1-D1
A-B-C2-D




-がANDだとするとこのようにすべてを網羅する文字列を得たいのです。
ただし、B・C・Dはあったりなかったり複数だったりします。
BCDはリストだと考えて頂ければいいのかな。この説明が不足でした。

再度お願いいたします。
916デフォルトの名無しさん:2011/05/06(金) 20:59:15.65
補足です。

A-B-C-D

A-B-C-D1

A-B-C1-D

A-B-C1-D1

A-B-C2-D

これを一行ずつ実行して最終的には行をORで連結したように集合の和をとります。
すべてを網羅といいましたが、縦列を結合する必要はありません。
917デフォルトの名無しさん:2011/05/06(金) 21:15:07.34
どれかがなかったとき、どうなるの?
たとえば、ABDのみがあってCがなかったとき、

(i)
A-B-D
のみ

(ii)
なにもなし

(iii)
A-B-D
A-B
B-D
A-D
A
B
D

どれ?
918デフォルトの名無しさん:2011/05/06(金) 21:15:14.54
A,B,C,Dそれぞれのリスト(?)にダミーを1つづつ追加して総当りするとか
ダミーはあとで除去
919デフォルトの名無しさん:2011/05/06(金) 21:25:13.13
>>917
(i)です。
そこが一番めんどうなところです。
920デフォルトの名無しさん:2011/05/06(金) 21:26:39.38
>>918
あ!そうか!ダミーをスキップしちゃえばいいんですね!

他にオブジェクト志向っぽいやり方とかpythonぽいやり方なければそれで行けそうですね
921917:2011/05/06(金) 22:20:36.12
じゃあ、こんなのでいいかな。
http://codepad.org/14xlKE4R
922デフォルトの名無しさん:2011/05/06(金) 22:22:49.57
>>884
>組み込み関数が思わず上書きしてしまいそうな名前になってることが悪いと思うんだよね。
>listとかlenとかsetとか。

あるある〜
fileという組み込み関数があるのを知った時はほんと困った。やめてほしい。
openだけでいいじゃん。openがあるのになんでfileなんかあるんだよ。
あとはstrとかminとかmaxも変数名に使いたいからよく困る。

その点、PHPやPerlは関数名と変数名とがかぶることが決してないから、
よけいなことに煩わされないので便利。
923デフォルトの名無しさん:2011/05/06(金) 23:19:25.98
fileって、組み込み関数なの?
intもstrもfileも、あくまで型名だと思ってた。
924デフォルトの名無しさん:2011/05/06(金) 23:32:37.44
3.x では __builtins__ のfile はなくなるけどね。
2.x ではそれぞれ用途が違った
openは組み込みの関数、fileは型(継承したりできる)
925デフォルトの名無しさん:2011/05/06(金) 23:33:12.26
>>923
型でもあるし、組み込み変数でもある。

>>>type("string") == str
True
で判定できるし、
>>>str(123)
''123'
と変換できる。
fileは1行ごとに返してくれるジェネレータ的な動きをする。
open().readline() と同じ。
突っ込み歓迎。
926デフォルトの名無しさん:2011/05/06(金) 23:34:43.14
型名すら簡単に上書きできてしまうからなあ。
まあ上書きしたとしても、影響はそのモジュール内ですむけど。
組み込みの関数や型の名前を全部把握してないと、知らずに上書きして困ることになるのがちょっとなあ。
927デフォルトの名無しさん:2011/05/06(金) 23:59:13.20
>>925
型を、関数の呼び出しのようにすると、その型のインスタンスを生成するってだけじゃないの?

>>> type(str)
<type 'type'>
>>> type(file)
<type 'type'>
>>> type(open)
<type 'builtin_function_or_method'>
>> str.__new__(str, 0)
'0'
>>> int.__new__(int, 'A', base=16)
10
928デフォルトの名無しさん:2011/05/06(金) 23:59:49.32
>>922
Perlは$a,$bがちょっと…
929デフォルトの名無しさん:2011/05/07(土) 00:02:02.37
>>928
ていうか、$a, $bが受け入れられるんだったら、
ローカル変数は_a, _bって自分ルール作ってしまえば組み込みのとはかぶらないよね。
Pythonicじゃない()からおすすめしないけど
930デフォルトの名無しさん:2011/05/07(土) 00:05:18.60
>>925
openはfile型を呼んでるだけで、
open/file双方が返すオブジェクトは同じ、file型だよ。

型判定は
OK: isinstance(obj, file)
NG: isinstance(obj, open)
931デフォルトの名無しさん:2011/05/07(土) 00:07:06.99
>>926

Pythonはモジュールも型もクラスも全部同じ名前空間。

でも、モジュールのグローバル変数で型名上書きってないと思うけど?
慣習的にグローバル変数は大文字にするし。
関数内でなら、スコープは限定的なので、知らずに上書きして困ることはまずないよ。
932デフォルトの名無しさん:2011/05/07(土) 00:23:50.00
>>927
type()はちょっと特殊で
1引数の場合は obj.__class__ に当たるものを返すだけで、新たなインスタンスが作られてるわけではない
3引数の場合は クラスを生成して返す。

他の組み込み型については概ねその通りで。型キャストなんかにも使える。
933デフォルトの名無しさん:2011/05/07(土) 00:44:37.09
>>921
なるほど!こんなモジュールあるんだ。
内部を参考にしてみます。

いろいろヒントを頂いたのでなんとかやってみます。
ありがとうございました!
934デフォルトの名無しさん:2011/05/07(土) 02:37:22.01
ffmpegをpipe越しに使って1フレームごとの処理をPythonでやろうとしてるんだけど、
bitmapイメージの数珠つなぎになったものを
pipeから読み込んで1枚ずつ切り出さないといけない。
ctypesを駆使して1枚分のデータを1個のstring変数として
切り出すところまではいったんだけど、
そこからPIL.Imageのインスタンスにするところで詰まった。
Image.open()はファイル名もしくはファイルポインタしか受け取ることが出来なくて、
しかも勝手に16バイト読み進めてしまう。
PIL.BitmapImagePluginに読み込ませたいんだけど、
何とかならんものだろうか。

あるいは、もっと簡単な方法はないですかね。
935デフォルトの名無しさん:2011/05/07(土) 02:47:30.77
StringIO(cStringIO)を使えよ
936デフォルトの名無しさん:2011/05/07(土) 04:30:29.00
文字列に入ってるのがピクセルデータのみならImage.fromstring
937デフォルトの名無しさん:2011/05/07(土) 14:56:25.53
>>922
lenやminやmaxは関数なので、length()やminimum()やmaximum()でよかった。
strやlistやdictは型なので、StrやListやDictでよかった。
こうすれば、lenやmaxやminやstrやlistやdictをローカル変数として使っても何の問題もなかった。
そういうちょっとした気遣いが、Pythonには欠けている。
938デフォルトの名無しさん:2011/05/07(土) 15:16:34.51
気に入らないなら別にPython使わなくてもいいのよ? ん?
939デフォルトの名無しさん:2011/05/07(土) 15:18:36.11
そんな糞長い名前とかアホやん?
940デフォルトの名無しさん:2011/05/07(土) 15:33:29.71
lenはともかく、min/maxはそんなに頻繁に使う関数じゃないだろ。
941デフォルトの名無しさん:2011/05/07(土) 15:43:42.46
PerlやPHPの$nameが許せるなら
Pythonでname_するのも許せそうなものだけど
942デフォルトの名無しさん:2011/05/07(土) 16:03:06.87
>>937
自分が定義する関数をその糞長いやつにしろよw
943デフォルトの名無しさん:2011/05/07(土) 16:14:47.98
minimumって打つと指が絡まるわ。
こんなん絶対打ちたくない。
944デフォルトの名無しさん:2011/05/07(土) 19:30:21.02
True, False = False, True
945デフォルトの名無しさん:2011/05/07(土) 19:42:47.15
>>930
open()がfileオブジェクトを返すだけなら、fileだけでよかった。
できればFileにしてくれればもっとよかった。
file = File(filename)
あるいは
file = File(filename).open()
と書けたらいいのに。

>>940
うん、そんなに頻繁に使うような関数でないから、長い名前でもいい。
というか、頻繁に使わないものは長い名前のほうがいい。

>>939
minimumやmaximumは7文字。
対して、それよりよく使うenumerate()は9文字、isinstance()は10文字、classmethodは11文字。
939のいう通りなら、minやmaxよりよく使う関数にこんな長い名前をつけたPythonはアホということだな。

946デフォルトの名無しさん:2011/05/07(土) 20:21:16.93
つまりPythonがアホってことでこの議題は終了だな
947デフォルトの名無しさん:2011/05/07(土) 20:27:55.55
>>945
バトロワスレが落ちて暇なんですね。わかります

しかしこのスレもひとごとでは
948デフォルトの名無しさん:2011/05/07(土) 20:53:23.77
俺も、なんでfileで開けるのにopenを廃止しないのか不思議なのだが。

>>945
fileなんて変数名付けるくらいならfでいいだろ。
短けりゃいいってもんじゃないとは思うが、minimum, maximumはアホっぽい。
949デフォルトの名無しさん:2011/05/07(土) 21:08:28.88
>>945,>>948
open()はファクトリ。
fileのコンストラクタを直接呼び出すのは推奨されてないよ。

2.xでは同じfile型のオブジェクトが返ってくるけど、
ファイルには書き込み・読み込み・追加・テキスト・バイナリと色々なモードがある。
3.xではそれぞれ別の型のオブジェクトが返ってくる。
950デフォルトの名無しさん:2011/05/07(土) 21:11:14.17
>>948
じゃあ長さの変数名は?
951デフォルトの名無しさん:2011/05/07(土) 22:26:12.56
うざいから誰かバトロワスレ建ててくれないかなぁ
俺は駄目だった
952デフォルトの名無しさん:2011/05/07(土) 22:34:19.36
pythonなんて過疎スレなんだからどんどん続けろ
953デフォルトの名無しさん:2011/05/07(土) 22:36:49.74
てゆうか、くだスレと統合しろ
基準があいまいなレベル分けなんて意味が無い
分けるんなら、ノーベル賞受賞者かそうでないかで分けろ
954デフォルトの名無しさん:2011/05/07(土) 22:56:38.74
>>949
なるほど。確かに全部が全部file型である必要はないね。
955デフォルトの名無しさん:2011/05/07(土) 23:11:51.44
【Perl,PHP】LLバトルロワイヤル17【Ruby,Python】
http://hibari.2ch.net/test/read.cgi/tech/1304777379/
956デフォルトの名無しさん:2011/05/07(土) 23:23:06.61
>>955
957デフォルトの名無しさん:2011/05/08(日) 02:33:49.92
Pythonに慣れている人は一時変数にlistとかsetとかlenとか付けようとすら
思わないから、Pythonコミュニティでは問題になること無いけど、
Pythonをメインに使っているわけじゃないユーザーには問題だよな。

ローカル変数でグローバルの名前を覆ったところで、実際に問題になることは
少ないから、被るまでは気にしないことにしてる。
実際、Pythonの標準ライブラリでもよくfileとかってローカルで名前上書き
してるし、あんまり気にしないでも大丈夫。
958デフォルトの名無しさん:2011/05/08(日) 07:59:11.20
かぶったまま放置してて、後になってから気づいて直すケースが多いな。
直さなくても__builtins__呼び出せばいいんだろうけど、さすがにそれはやりたくないし……
959デフォルトの名無しさん:2011/05/08(日) 08:49:40.73
何らかのシーケンス的なものを渡されて
それを直接編集してNoneを返す関数を書くとして
編集前にその長さを一時保存しておきたい…って場合
どんな変数名つけます?
lenってのはナシで
960デフォルトの名無しさん:2011/05/08(日) 09:03:51.77
size
961デフォルトの名無しさん:2011/05/08(日) 09:31:00.77
>>960
なるほど
962デフォルトの名無しさん:2011/05/08(日) 11:04:48.71
length
963デフォルトの名無しさん:2011/05/08(日) 11:29:16.83
foolen
964デフォルトの名無しさん:2011/05/08(日) 11:50:50.01
N: Number of elements
L: Length
Z or z: なんとなく数学的に |A| を代入するときに選べそうな名前だから
965デフォルトの名無しさん:2011/05/08(日) 12:37:39.09
Lだとリストのような気がする
966デフォルトの名無しさん:2011/05/08(日) 14:39:20.16
>>948
> fileなんて変数名付けるくらいならfでいいだろ。
そんなわけない。
f = file('hogehoge')
ならfはファイルオブジェクトであることがわかるけど
def load(f)
ではfが何なのかまるでわからないから
def load(file)
のほうがいい。
あるいは
f = gethogehoge() # 何を返しているのか不明
file = gethogehoge() # たぶんファイルオブジェクトを返しているのだろう
とかね。
一文字変数は乱用すべきじゃない。
967デフォルトの名無しさん:2011/05/08(日) 14:50:19.10
foo(file)

ファイルオブジェクトなのかファイル名なのか
ドキュメント見るまではっきりしないので(両方受け付ける場合が多いけど)

foo(f)

これでもいいなあと思う
968デフォルトの名無しさん:2011/05/08(日) 14:50:27.03
>>957
grepしてみたところ、一時変数で組み込みと名前被ってるのかなりあった。
他の多少大きなライブラリでも同様で、fileへの代入とかは比較的よく見られた。ちょっと意外。
そういえば、PEP8にもGoogle Pythonスタイルガイドにも、組込と被る変数名への言及はないよね。

>>958
もし、意図的に被らせる場合は __builtin__ (スペル 's' なし) を import して使う。
例: codec.open

組み込みと被るのは wappar関数やその引数 とかで API を一致させたい場合かな。
一時変数で組み込みの名前を使いたい場合なんかは、基本的にリファクタリング対象としてる。

>>959
一時変数の場合は、そもそもそれ自体が不要な場合が多いけどね。post_len, ori(g)_len、
長めのライフサイクルを持つ場合は、例えば original_header_length と略さず名前を付けます。

>>964
自分の場合、一文字の変数名は、汎用的な操作をする関数や、抽象を扱う場合に使います。(アルゴリズム等)
具体的な名前を付けるよりは記号として扱う方が適切だと思うので。用途としても数学的。
969デフォルトの名無しさん:2011/05/08(日) 15:51:44.38
>>967
>foo(file)
>
>ファイルオブジェクトなのかファイル名なのか
>ドキュメント見るまではっきりしない

えーっ、まじでいってんの?
ファイル名とるならfoo(filename)かfoo(path)でしょ。
file = "file.html"
のように自明な場合はまだしも、ファイル名をとるのにfoo(file)はないよ。


970デフォルトの名無しさん:2011/05/08(日) 16:08:59.82
>>969
なあ、ちょっとこいつを見てくれ。どう思う?

os.execl(path, arg0, arg1, ...)
os.execle(path, arg0, arg1, ..., env)
os.execlp(file, arg0, arg1, ...)
os.execlpe(file, arg0, arg1, ..., env)
os.execv(path, args)
os.execve(path, args, env)
os.execvp(file, args)
os.execvpe(file, args, env)
971デフォルトの名無しさん:2011/05/08(日) 17:00:43.56
>>970
それ、unix側のライブラリで使われている名前をそのままもってきただけでしょ。
man execl とかしたらでてくる。
もともとのunixで使われていた名前がよろしくないうえに、それをそのまま持ってきただけのPythonもよろしくない。
972デフォルトの名無しさん:2011/05/08(日) 17:06:04.58
>>971
>もともとのunixで使われていた名前がよろしくないうえに
関数名が無駄に短い省略形なのは昔のリンカの制限とかがあるから仕方がない
それにここで問題にしているのは引数の"file"のほうじゃないの

Unixのシステムコールとしては、引数の"file"はとくに何の問題もないはずだ
Pythonと違ってそれは何かと衝突するわけでもないし
pathとfileを使い分けているのはexecp系はPATH環境変数をサーチしてくれるので
フルパスを提供する必要が無い、という意図が込められている
973デフォルトの名無しさん:2011/05/08(日) 17:29:04.13
>>972
いやだからmanしてみればわかるけど、pathやfileっていう引数名がunixからそのまま持ってきてるだけ。
関数名のことをいってるんじゃない。
974デフォルトの名無しさん:2011/05/08(日) 17:30:08.69
>>972
そこはfileじゃなくてcommandのほうがいい名前だよね。fileという名前にする必要がない。
975デフォルトの名無しさん:2011/05/08(日) 17:30:51.43
>>973
引数名に力点を置いているなら
>もともとのunixで使われていた名前がよろしくないうえに
この理由を説明してもらおうか?

Pythonでよろしくない理由は明らかだが
976970:2011/05/08(日) 17:48:07.54
>>971
>>969と同一人物のレスとは思えないので漏れはレスしないよ
>>969の主張が思い込みであると示すには>>970で充分だ
977デフォルトの名無しさん:2011/05/08(日) 18:14:28.07
馬鹿しかいないな
978デフォルトの名無しさん:2011/05/08(日) 18:15:20.35
変数名 'file' は、他の組込の名前と被る場合より実際の影響範囲は狭いと思う

fileを直接呼び出すのは 2.x の時点で非推奨だし、
3.xで組み込みの 'file' はなくなる。

isinstance(obj, file) は、テスト以外では使われない。
実際のコードでは StringIO かもしれないので、厳密な型チェックはしない、
型チェックするとしても hasattr(obj, 'write') だけとか、 2.6 以降は isinstance(obj, io.BaseIO)

組み込み関数をハイライトしてくれるエディタで、あれ?と思う程度、
fileにファイル名(文字列)いれてると、コンテキスト無視の補完では誤った候補をだしてしまうかもしれない、くらいじゃないかな。
979デフォルトの名無しさん:2011/05/08(日) 18:21:10.26
名前付けに関してはconventionも重要だと思う

"file"ではfilelike objectかpathか分からないという話が>>967にあったけど
Unixのシステムコールならfd、stdioならfpみたいなのがほぼデフォで
fileならpathだと考えていい
980979:2011/05/08(日) 18:23:42.20
まあでもCの世界ならそもそも型宣言見れば一発なんだが……

逆に言うと、動的型言語の名前は静的型より重要だしより気を配るべきじゃないのか
という話に
981デフォルトの名無しさん:2011/05/08(日) 18:57:33.20
三位決定戦だな
982948:2011/05/08(日) 20:10:57.32
>>966
fileなんて変数名も、多用すべきでないいい加減な変数名だから、fでいい。
fileなんてふざけた変数名を使って満足するくらいなら、もっとまともな変数名付けろ、という意味で書いたのだが。

ファイルオブジェクトであることを明示とか、ハンガリアン記法じゃあるまいし。
できるなら整数にintって変数名つけんのかよ。
983デフォルトの名無しさん
ローカルで使う一時変数とラッパ関数の引数名で
シチュエーションを別けて考えたほうがいいんじゃない?
こういう場合は元のAPIに合わせた方が自然だと思うけどなぁ。>システムコール類

>ファイル関連の変数
自分の場合、Pythonでは
stream, file_name (basename部分のみ), file_path と使いわけてる。


>>982
>整数の変数名にint
さすがにないだろうと思ってたけど、さっき標準モジュールをgrepした時に発見した。>uuid