Pythonのお勉強 Part37

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
2デフォルトの名無しさん:2010/03/13(土) 17:00:43
3デフォルトの名無しさん:2010/03/13(土) 17:08:06
4デフォルトの名無しさん:2010/03/13(土) 17:09:38
5デフォルトの名無しさん:2010/03/13(土) 17:25:36
6デフォルトの名無しさん:2010/03/13(土) 17:28:55
7デフォルトの名無しさん:2010/03/13(土) 18:55:28
pass
8デフォルトの名無しさん:2010/03/13(土) 19:54:17
実装各種

Python2.6 (C言語実装、よく分からない人はこれ)
ttp://www.python.org/

Python3.1 (C言語実装、バージョンの違いを理解している人用)
ttp://www.python.org/

Jython2.5 (Java実装)
ttp://www.jython.org/

IronPython2.6 (C#(.NET)実装)
ttp://www.codeplex.com/IronPython
9デフォルトの名無しさん:2010/03/13(土) 20:05:56
cと連携するときってctypesとCythonどっちがいい?
10デフォルトの名無しさん:2010/03/13(土) 20:28:59
swig
11デフォルトの名無しさん:2010/03/13(土) 21:06:22
>>1-8
12デフォルトの名無しさん:2010/03/13(土) 21:11:38
cyclone
13デフォルトの名無しさん:2010/03/13(土) 23:40:25
Bython
14デフォルトの名無しさん:2010/03/14(日) 00:58:30
C#
15デフォルトの名無しさん:2010/03/14(日) 01:21:30
今日はπthonの日
16デフォルトの名無しさん:2010/03/14(日) 01:47:56
前スレRとの比較にはすごい興味あり
17デフォルトの名無しさん:2010/03/14(日) 01:59:26
3.14 15926
18デフォルトの名無しさん:2010/03/14(日) 04:03:29
pypy 1.2 release
19デフォルトの名無しさん:2010/03/14(日) 05:13:24
974 デフォルトの名無しさん [sage] 2010/03/13(土) 11:04:22 ID: Be:
PyPy Status Blog: Introducing the PyPy 1.2 release
ttp://morepypy.blogspot.com/2010/03/introducing-pypy-12-release.html

パイパイ!
20デフォルトの名無しさん:2010/03/14(日) 07:39:11
>>1
おっぱい
21デフォルトの名無しさん:2010/03/14(日) 07:43:10
pypyってなんです?
22デフォルトの名無しさん:2010/03/14(日) 10:58:28
Python 2.5.4 です

>>> '1.5'.isdigit()
False
>>> '15'.isdigit()
True
>>> '-15'.isdigit()
False

1.5 は仕方ないとして
-15 は digit ではないのでしょうか?
あと -15 でも True になるような判定方法でふさわしいものがあったら教えてください orz
23デフォルトの名無しさん:2010/03/14(日) 11:26:04
>>21
Pythonで書かれたPythonの処理系。詳しくは以下。
http://codespeak.net/pypy/dist/pypy/doc/
24デフォルトの名無しさん:2010/03/14(日) 11:32:46
>>22
isdigitは0123456789かどうかを調べるもので+,-,.は偽
数値かどうかは int("-15"), float("1.5") して ValueError の例外がでたら偽
25デフォルトの名無しさん:2010/03/14(日) 11:34:25
C#最高って何故かここでよく見るが
RUBYならともかくC#はPYTHONが対抗言語と言う位置づけと感じているのか?
26デフォルトの名無しさん:2010/03/14(日) 11:35:07
>>22
いいことを教えてやろう

'+15'.isdigit() も False だ
27デフォルトの名無しさん:2010/03/14(日) 11:39:10
>>25
ネタにマジレスかこいい
28デフォルトの名無しさん:2010/03/14(日) 11:39:38
int('- 5') は OK なのに float('- 5') はエラーになるんだよね...

29デフォルトの名無しさん:2010/03/14(日) 11:43:43
節操ないなw
30デフォルトの名無しさん:2010/03/14(日) 11:59:33
>>27
マヂレスつか素朴な疑問なんだが
31デフォルトの名無しさん:2010/03/14(日) 12:20:47
>>30
スレ立てるまでもない質問スレで Python を猛烈プッシュしてる人が居たから
呼び込んじゃったんだろう
32デフォルトの名無しさん:2010/03/14(日) 12:22:59
ハッカーがプッシュしてるんだから間違いない
33デフォルトの名無しさん:2010/03/14(日) 12:32:06
>>24
いちいち実行してみて例外出たらやり直しとか
Java みたいで格好悪くて納得できません
int('hoge', default=0) とか
int('fuga', errors='ignore') とか
なんで標準で無いんですか?
34デフォルトの名無しさん:2010/03/14(日) 12:33:14
一生C#でTryParseしてればいいよ
35デフォルトの名無しさん:2010/03/14(日) 12:36:02
そんなアホなコード誰も書かないから大丈夫だよ
36デフォルトの名無しさん:2010/03/14(日) 12:40:08
>>30
コンパイルが必要な時点で、普通は比較対象から外れるよね
個人的にはREPLが無いのが決定的
MonoにはREPLあるみたいだけど
サーバ側での運用ってことであれば、対抗馬になるのかな?
string.formatの書式でC#をパクっちゃってるのも
C#厨を勢いづけてるのかもしれない

>>16
俺も興味あるなぁ
Rは全然使った事ないけど
Python (x, y)よりも優れた適用領域があるなら試してみたい
37デフォルトの名無しさん:2010/03/14(日) 13:04:47
Pythonと比較するならF#だろうな
こっちはスクリプトだし.NET使えるし
38デフォルトの名無しさん:2010/03/14(日) 13:20:59
F#スクリプトはいいね
あれがどのWindowsでもデフォで動くようになって
LL標準添付のライブラリを備えればいうことなし
39デフォルトの名無しさん:2010/03/14(日) 13:32:34
つまりF#最高
40デフォルトの名無しさん:2010/03/14(日) 13:37:06
逝ってよし
41デフォルトの名無しさん:2010/03/14(日) 13:44:54
>>33
それはPythonが実用的な言語ではないから
実用性が欲しいのならF#をお薦めする
42デフォルトの名無しさん:2010/03/14(日) 13:47:50
pass
43デフォルトの名無しさん:2010/03/14(日) 14:07:20
>>28
両方エラーになるけど?
44デフォルトの名無しさん:2010/03/14(日) 14:14:44
>>33
default=0 は判るけど、 errors='ignore' したらその関数の結果はどうなるの?

「実行して例外出たら」というのは、基本的にそういうポリシーでやってる。
なんでそんなポリシーなのかというと、
1. 先行チェック関数と実行関数の二つが必要になると、それだけ要素が増える
2. 先行チェックの関数を用意しても、実行用関数でチェックが不要になるわけではない。
3. 先行チェックだけが必要になる場合はあんまりない。

if int.tryparse(s):
 x = int(s)
else:
 x = 0
と書くのと、
try:
 x = int(s)
except ValueError:
 x = 0
と書くのと比べて、別に格好悪い事なんてなんにもないし。
45デフォルトの名無しさん:2010/03/14(日) 14:25:47
x = int(s) if int.tryparse(s) else 0
46デフォルトの名無しさん:2010/03/14(日) 14:38:01
>>45
tryparseなのに真偽しか返さないのはおかしくないか
47デフォルトの名無しさん:2010/03/14(日) 14:40:54
>>44だった...
48デフォルトの名無しさん:2010/03/14(日) 14:42:25
>>45
確かに、3項演算子が使えるのは便利だね。
でも、そのためだけに int.tryparse() を実装するのはやり過ぎ。

try文も3項演算子作ろうよっていう話が少し前に Python-dev や Python-idea で
流れたけど、例外のタイプを複数利用したい場合とか、汎用的に使える物を
きれいな構文にするのが難しくてまとまらなかった模様。

複数の文字列に対して繰り返し実行する必要がある場合は、その場合に応じて
関数作れば良いしね。手軽に関数を作れるのがPythonの良いところなんだから。

def toint(s, default=0): try: return int(s) except Exception: return default
x = toint(a)
y = toint(b, 1)
z = toint(c)
49デフォルトの名無しさん:2010/03/14(日) 14:43:58
>>47
あー、名前をC#から拝借したんだけど、checkparsable()の方が好み?
真偽を返すのは、
if int.tryparse("0")
が偽にならないため。
50デフォルトの名無しさん:2010/03/14(日) 14:46:57
>>48
ありがとうございました
5148:2010/03/14(日) 14:54:08
あー、 try-except の部分、一行じゃ書けなかった。3行必要だ。
def toint(s, default=0):
    try: return int(s)
    except Exception: return default
52デフォルトの名無しさん:2010/03/14(日) 14:55:36
>>43
Python3.1だとintの方もエラーになるけど、2.6だとならない
53デフォルトの名無しさん:2010/03/14(日) 15:10:11
>>48
またコンビニ野郎かよ
そういう奴が居るからPythonは低速って言われるんだよ
54デフォルトの名無しさん:2010/03/14(日) 15:11:09
そろそろ2.6にアップグレードしてもよかと?
55デフォルトの名無しさん:2010/03/14(日) 15:15:50
せんとすはいつまで2.4なのかねぇ
56デフォルトの名無しさん:2010/03/14(日) 15:17:48
>>53
こーゆー作業をしている部分はユーザーの入力チェックとか
設定ファイルの読み込みとかボトルネックじゃない事がほとんどだから
実行時間を気にする必要ないよね?

Pythonは低速とか、誰が非難してるの?
速度が必要な部分は拡張モジュール書けばいいんだし、
ボトルネック以外の部分が多少遅くても問題ない。
57デフォルトの名無しさん:2010/03/14(日) 15:20:36
話は変わるけど、Pythonはほんとに低速
58デフォルトの名無しさん:2010/03/14(日) 15:22:19
>>56
>速度が必要な部分は拡張モジュール書けばいいんだし、
>ボトルネック以外の部分が多少遅くても問題ない。

今時は動的言語も仮想マシンと実行時コンパイルが当たり前になって来たからな。
メソッド呼び出しとか真偽判定みたいな内部機能は拡張じゃどうしようもないし。
59デフォルトの名無しさん:2010/03/14(日) 15:48:45
まだやってたのか
60デフォルトの名無しさん:2010/03/14(日) 19:18:59
せんとすは2.6にアップグレードしてもよか
61デフォルトの名無しさん:2010/03/14(日) 19:43:03
する意味ないからしないんだろう。
必要なら/usr/localに入れればいい。
62デフォルトの名無しさん:2010/03/14(日) 20:23:14
CentOS の新しいメジャーバージョンが早く出てくれないと、いろんな主要ライブラリで
Python 2.4 のサポートを切る動きが出てこない。
有名なライブラリにテスト済みのパッチを送るためにローカルにPython 2.4, 2.5, 2.6, 3.1,
trunk, py3k を全部入れるのは面倒だ。
63デフォルトの名無しさん:2010/03/14(日) 21:06:50
OSの根幹にかかわる部分をpythonで書くのは不安だ
perlじゃなぜダメなんだ
64デフォルトの名無しさん:2010/03/14(日) 21:12:34
>>63
なぜPythonだと不安なんだ?
65デフォルトの名無しさん:2010/03/14(日) 21:16:22
はっきり言って根幹じゃないほうが好きに弄れて気楽だな
66デフォルトの名無しさん:2010/03/14(日) 22:27:20
CentOSはRHELクローンなので
RHELがPythonのバージョンを変えない限り変わらない
んで、そのRHELの実験的な実装の意味合いを持つFedoraでは
Python 2.6に移行済みでPython 3.xも同時にインストール可能となっている

なんで、RHEL6が登場するまで待てば、自然とPython 2.6になる

>>65
RedHat系はyumも含めてPythonがシステムツールに入り込んでるから
確かに、気軽に/usr配下にライブラリとか入れれないよね
まぁ、61の言うとおり『入れんな』ってことなんだろうけど
67デフォルトの名無しさん:2010/03/14(日) 22:51:22
OSの根幹にかかわる部分をperlで書くのは不安だ
Rudyじゃなぜダメなんだ
68デフォルトの名無しさん:2010/03/14(日) 22:56:01
virtualenvがあるから /usr/lib/python2.4 以下にライブラリをインストールなんて
必要ないし、新しいPythonを使いたかったら /usr/local/python2.6 にでも
インストールすればいい。
69デフォルトの名無しさん:2010/03/14(日) 23:04:22
windows使えば解決
70デフォルトの名無しさん:2010/03/14(日) 23:38:12
>16
前スレ 999 だけどリロードしないで激しく時差ぼけレスしちまったぃ

まあゆるーく続けますか(matplotlibスレの方がいいかも?)。

numpy,R,matlab等のそれぞれの比較早見表見つけた
(使い分ける人向け? っぽいので普通はあまり意味がないかも)
http://mathesaurus.sourceforge.net/

ぐぐって遭遇した1,2年前の話題
Python+Scipy+Matplotlib vs Matlab?
http://news.ycombinator.com/item?id=363096
71デフォルトの名無しさん:2010/03/14(日) 23:38:54
文句あるなら根幹はCで書け
72デフォルトの名無しさん:2010/03/14(日) 23:44:21
C は良い言語だよな。メモリ空間の隅々まで自由自在にアクセス出来るし。
73デフォルトの名無しさん:2010/03/14(日) 23:47:10
逆に言うとCPUやレジスタは隠蔽してるので、Cで手に入る自由はメモリだけだな
結局現存するほとんどのOSの機能がCによって提供されてるってのが
Cの力だと思っている
74デフォルトの名無しさん:2010/03/14(日) 23:56:43
もうわけワカメw
75デフォルトの名無しさん:2010/03/15(月) 00:44:09
73www
76デフォルトの名無しさん:2010/03/15(月) 01:04:47
アセンブラが無いと話にならんな
77デフォルトの名無しさん:2010/03/15(月) 04:56:14
テカテカ
78デフォルトの名無しさん:2010/03/15(月) 05:21:04
まだやってたのか
79デフォルトの名無しさん:2010/03/15(月) 20:26:41
例外処理ってのは、通常の処理手順とは異なる手順で処理するときに使うもんだよ。
引数がintの時も同じように計算して返すのに、なんでわざわざ例外処理でやるんだ。

普通の条件分岐で十分だろ。
80デフォルトの名無しさん:2010/03/15(月) 21:04:47
まだやってたのか
81デフォルトの名無しさん:2010/03/15(月) 21:11:20
Ruby スレで GUI が無いって騒いでるな
82デフォルトの名無しさん:2010/03/15(月) 21:14:12
Python は wxPython の日本語の紹介がけっこうあるからなぁ。
83デフォルトの名無しさん:2010/03/15(月) 21:38:27
wxPythonも2~3年くらい前はあまり見なかった
wxRubyは当時も今もあまり見ない
wxPythonの利用者の方が増えてるってことだよね
84デフォルトの名無しさん:2010/03/15(月) 21:45:19
>>79
じゃあ、int('fdasl')と入力したときに、どういう風に返せば満足なの?
0返すなんて糞仕様は勘弁だからな。
85デフォルトの名無しさん:2010/03/15(月) 22:12:26
def parseInt(s, default=None):
  try:
    return int(s)
  except ValueError:
    return default

みたいなのをたぶん前スレで誰かが言ってた
いづれにしても、自分で関数作ればよかろう
86デフォルトの名無しさん:2010/03/15(月) 22:21:36
>>79
「例外は本当に例外的な場合にだけ使う」って、誰が言い出したのか知らないけど、
真っ赤なウソだよ。

例えば、ファイルを開くときに、ファイルが存在しなかったら IOError を出すけど、
開こうとする前に os.path.exists(filename) して存在を確認してもパーミッション等の
条件で開けないかもしれない、HDDがリードエラーを出すかもしれない、
チェックしたときはあったファイルが開こうとしたときに絶妙なタイミングで消えるかも
しれない、etc... で、事前チェックしても例外処理は外せない。なら、事前チェックと
例外チェック両方するより例外だけチェックする方が合理的。

特にPythonは、 for i in x: でも中で StopIteration 例外が飛んでるくらい、例外を
気軽に使う言語。
87デフォルトの名無しさん:2010/03/15(月) 22:23:46
parseInt('0', 0)とか考えるとやっぱいらないかな
ってこの話題前にもあったね

Pythonのお勉強 Part35
http://pc12.2ch.net/test/read.cgi/tech/1253535109/395
88デフォルトの名無しさん:2010/03/15(月) 22:32:49
>>86
エラーは全部例外でいいと思うんだよな
89デフォルトの名無しさん:2010/03/15(月) 23:03:32
発生した例外を処理しないと必ず止まるってのは本当にありがたい
たまにCで書くとつくづく思う
90デフォルトの名無しさん:2010/03/16(火) 00:36:29
try:
 raise SyntaxError()
except SyntaxError:
 print 'foo'
は期待通りに動作するのに、
try:
 @ # <- syntax error
except SyntaxError:
 print 'foo'
は動作しないんだなぁ。。

文法ミスがあった時点でそれ以降のスクリプトの内容の解釈は不可能だから当然なんだけど、なんか気持ち悪い。
91デフォルトの名無しさん:2010/03/16(火) 00:45:51
print "hello"
@ # <- syntax error

これでhelloと表示されないのが気持ち悪いか?
92デフォルトの名無しさん:2010/03/16(火) 02:30:59
多重ループを抜けるのに例外を使うのはどう?
93デフォルトの名無しさん:2010/03/16(火) 02:35:50
ええでしょう
94デフォルトの名無しさん:2010/03/16(火) 09:13:41
ええー
95デフォルトの名無しさん:2010/03/16(火) 10:28:35
>>91
後ろでもそうなるのか。ほう。
syntax errorで動かないことはいいのだが、ユーザがSyntaxErrorをraiseできるのはどういう解釈なんだ?
96デフォルトの名無しさん:2010/03/16(火) 10:32:23
>>95
「普通はユーザーが使う物じゃないから」なんて理由で、一部の例外オブジェクトを
catchできるけどraiseできないみたいなヘンな制限を付けてないだけだろうな。
raise KeyboardInterrupt だろうがなんだろうができるけど、普通はしない。

普通じゃない場合としては、プラグインシステムのあるアプリで、プラグインに
SyntaxErrorが起こるようなスクリプトをぶち込まれた場合をテストするために
あえてraiseするとかかなぁ。
97デフォルトの名無しさん:2010/03/16(火) 10:55:51
>>90
「気持ち悪い」理由が俺にはさっぱりわからん
単に、エラーを含む可能性のあるPythonコードを実行時に解釈したいのなら
eval・compile系が使えるけど

>>92
多重ループどころか、列挙の停止はいつもStopIteration例外じゃないか
98デフォルトの名無しさん:2010/03/16(火) 11:34:51
>>97
こういうことだろ。
class TajuuloopNukeru(Exception):
  pass
try:
  for i in someiter:
    for j in someiter2:
      if somecond:
        raise TajuuloopNukeru # ここで一気にループを抜けるために例外を投げる
except TajuuloopNukeru:
  pass
99デフォルトの名無しさん:2010/03/16(火) 11:39:59
>>98
いや文意は分かってるよ
別に多重じゃなくてもどうせ列挙の脱出にはいつもStopIterationが使われてるんだから
好きにすれば?ってこと
100デフォルトの名無しさん:2010/03/16(火) 11:48:04
例外はgotoの代わりに仕えって死んだじいちゃんが言ってた
101デフォルトの名無しさん:2010/03/16(火) 12:15:10
イテレータの中で要素を動的にパースするときとか
自分用の小さいスクリプトだったら例外で抜けちゃうな
まあ、先にリスト作っとけって話なんだけど、楽なんで
102デフォルトの名無しさん:2010/03/16(火) 12:35:31
先にリストを作ると、長大に要素を含む可能性のあるイテレータの処理が重くなったりすると思うんだ。
103デフォルトの名無しさん:2010/03/16(火) 13:11:30
多重ループならそれこそジェネレータ使えよ
104デフォルトの名無しさん:2010/03/16(火) 13:14:06
と言ってはみたがイテレータの中でraise StopIteration使っても同じことだな
よく読んでなかった
105デフォルトの名無しさん:2010/03/16(火) 17:23:38
例外やgotoはpythonに限った話じゃないと思うんだが
その辺現状のマジョリティとしてはどういう見解なの?
なんか昔はgotoに拒絶反応示す人がいたように思うんだが
106デフォルトの名無しさん:2010/03/16(火) 17:29:20
It is Easier to Ask for Forgiveness than Permission.
107デフォルトの名無しさん:2010/03/16(火) 21:34:05
intのparseの例は、.NETのNullable型や関数型のOption型みたいなものがあれば
それで返せば、という気がしなくもない

例外やgoto云々は完全に言語によるのでは
少なくとも非常に手続き的だとは言える
C++界隈だと、別の理由で例外を過度に多用するなというコンセンサスがある気がする
108デフォルトの名無しさん:2010/03/16(火) 23:26:33
辞書のgetにもdefaultがあるんだからデフォルト値指定ができてもいいと思うけどなー
あとoption型なんかは動的型ならNone返せばいいだけなので問題はそこじゃないと思う
109デフォルトの名無しさん:2010/03/17(水) 00:02:56
>>108
int() に default をつけてしまうと、こんどは例外を投げられなくなってしまう。
例えば、defaultのデフォルト値がNoneだとすると、「int()に変換できるハズ」と
思い込んで返り値チェックを省略すると数値オブジェクトを期待している場所に
Noneが入った状態で、その後のどこかでエラーが起こるか何かを壊してしまう。
例外なら、「ハズ」の思い込みと違うことが起こっても帯域脱出してくれるので、
「ハズ」の部分でチェックを省略できる。

辞書に [] と .get() があるように、int()と別の関数として用意するのはアリ。
アリだから、 >>51みたいな関数を用意すれば良い。
組み込み名前空間を汚してまで組み込む必要が認められなかったので
組み込み関数にはなって無いだけ。
110デフォルトの名無しさん:2010/03/17(水) 00:12:17
int(hoge, default=None) ができれば・・・
try:
  fuga = int(hoge)
catch:
  〜〜


fuga = int(hoge, default=None)
if fuga is None:
  〜〜
3行になる!
ああ、石を投げないで!
111デフォルトの名無しさん:2010/03/17(水) 00:34:46
じゃなくて、
try:
  fuga = int(hoge)
catch:
  fuga = 0

を考えてる時に例外使うのは素直じゃないだろということだろ
112デフォルトの名無しさん:2010/03/17(水) 00:37:42
一瞬pythonスレじゃないのかとおもった
113デフォルトの名無しさん:2010/03/17(水) 00:42:44
>>110
単にデフォルトで潰したいときも、パース不能のときも、それで済むなあ
まあこういうのはユーティリティ関数を自分で書けば事足りる程度の話ではあるが
114デフォルトの名無しさん:2010/03/17(水) 00:45:42
>>111
それが素直じゃないと思うなら、まずその幻想を打ち壊す!

いや、「素直じゃない」なんてなんの根拠もない個人的感想は
全く気にしない言語だから。
例外投げる方がシンプルで、例外投げない方を別に用意しても
大して利益がないのであれば、例外なげない関数なんて用意しないよ。

>>110
int() はただの関数じゃなくて型だから、Noneを返すなんて仕様は有り得ない。
default を追加するなら int と別の関数を用意する必要がある。
でも、組み込み関数をその程度の要望では増やさない。
115デフォルトの名無しさん:2010/03/17(水) 00:47:45
>>113
だから、>>109で言っているように、
fuga = int(hoge)
の一行が
fuga = int(hoge, default=None)
if fuga is None:
    raise ValueError("hoge is not integer")
の3行に増えるんだって。
116デフォルトの名無しさん:2010/03/17(水) 00:55:44
default の初期値は「未指定」でいいじゃない。
PyArg_ParseTupleAndKeywords()の書き方次第でNoneではない「未指定」のデフォルトにできるじゃんね。

int('abc') → ValurError
int('abc', 16) → 2748
int('abc', default=None) → None
117デフォルトの名無しさん:2010/03/17(水) 01:13:30
>>116
「未指定」なんてオブジェクトはない
あと、>>114で言っているように int() が None を返しちゃダメ。
intかintと上位互換のlongを返さないと。
118デフォルトの名無しさん:2010/03/17(水) 01:22:55
>>117
そういうオブジェクトはないけど、
def to_int(val, **kwargs):
 if 'default' in kwargs:
  pass
みたいな処理はできるってことを言いたいんじゃないかなぁ。

intがint以外のインスタンス返す仕様になってほしいとはまったくもって思わんけど。
119デフォルトの名無しさん:2010/03/17(水) 01:34:12
ビルドインを増やすのが嫌なら
int.parse(string)ってスタティックメソッドを作ればいいんじゃないかな
120デフォルトの名無しさん:2010/03/17(水) 01:47:14
>>117
それだと、今度は (val [, base [, default]]) という順序引数が使えなくなるね。
intが例外を投げる関数としてあるんだから、int以外の関数を使うなら
defaultは普通にNoneがデフォルト値の引数で良いんだよ。
問題は、大して利点無くビルトインを増やすこと。

>>119
うん、どうしてもdefaultが欲しいなら、それが一番Pythonicだね。
残る問題は、今のところ組み込み型にはstaticmethodが無いという事だけだ。
int.parseのためだけに組み込み型のstaticmethodを用意するのはやっぱり
無いだろうけど、他にも組み込み型staticmethodの要求が増えてきたら
ついでに int.parse が入るかも。
121デフォルトの名無しさん:2010/03/17(水) 06:21:49
def int(s, exception=True, default=0):

みたいに定義しといて
exception=False
で使ったときだけdefaultを返せば良いと思う
122デフォルトの名無しさん:2010/03/17(水) 09:33:17
型の変換はバリデータとかでさっくりやるんじゃねえの?
typeにstaticmethod追加するとかバカか?
123デフォルトの名無しさん:2010/03/17(水) 10:18:34
>>122
えっ
124デフォルトの名無しさん:2010/03/17(水) 10:24:44
>>122
元の要求は明らかに
unicode(s, 'utf-8', errors='ignore')
あたりからの類推だろうし、別にそんなに変な話じゃないと思うが
125デフォルトの名無しさん:2010/03/17(水) 10:32:41
別ディレクトリにある.pyファイルをimportしたい時って、sys.pathを直接いじるのが一般的なの?
126デフォルトの名無しさん:2010/03/17(水) 10:38:56
メインプログラムのサブディレクトリに配置すれば良いじゃん
127デフォルトの名無しさん:2010/03/17(水) 11:03:58
__import__() を使おう
128デフォルトの名無しさん:2010/03/17(水) 12:36:00
>>124
たしかにunicodeはencodingやerrrosを指定できるけど戻り値は必ずunicode型だろ
int(hoge, default=None)みたいにint以外返せるのはおかしい
129デフォルトの名無しさん:2010/03/17(水) 12:36:50
おいおい、まだやってたのか
130デフォルトの名無しさん:2010/03/17(水) 12:41:03
unicode のつもりが None が入ってるときはあるし
str のつもりが None が入ってるときもある
int のつもりの変数に None が入ってても何もおかしなことではない
そもそも型宣言がないんだから
131デフォルトの名無しさん:2010/03/17(水) 12:46:14
>>130
変数側の問題じゃなくて、int()の戻り値の問題。

int や str みたいな型は関数形式で呼び出してインスタンスを作るけど、
assert isinstance(sometype(), sometype)
という暗黙の了解があるの。

引数が悪くてその型の値を返せないときは例外を投げるべき。
132デフォルトの名無しさん:2010/03/17(水) 12:48:40
sqlite3 とかでレコード取り出したときに str だと思ってたのに None が入ってるときがあるね
133デフォルトの名無しさん:2010/03/17(水) 12:49:47
sがstrだとして
s.decode('utf-8')
みたいな使い方をしてるときに
sがNoneで例外出ると萎える
134デフォルトの名無しさん:2010/03/17(水) 13:35:54
上では
int(s) -> parseできなければ例外
int(s, base) -> 同じ
int(s, default=...) -> parseできなければdefaultを返す
int(s, base, default=...) -> 同じ

こういう感じの話をしてたんだと思うが
default=を指定しなければ今と全く同じだし
parse不能なケースはデフォルト値で置き換えでいい場合は
try/exceptを含む4行程度のコードが式一つ圧縮できるわけだろ

default=Noneと「わざわざ」指定してNoneが返った場合の対応を「しない」のは
さすがに考えにくいんじゃないの
135デフォルトの名無しさん:2010/03/17(水) 13:43:13
>>134
だから、int()にint以外のオブジェクトを返させるなって。
136デフォルトの名無しさん:2010/03/17(水) 14:03:13
というか可能性としてはint.parseの方がよっぽど高いだろうに
コンストラクタでやろうとするほうが議論の中心になるのが納得できない
まぁ意固地なヤツのせいで議論にすらなってないわけだが
137デフォルトの名無しさん:2010/03/17(水) 14:11:10
本家フォーラムで話さない時点で可能性の話をしても意味ないと思うの
138デフォルトの名無しさん:2010/03/17(水) 14:34:45
別に正直どうでもいいが
つまり>>134がint()じゃなくてint.parse()でなければ特にケチをつける
理由は無いということ?
139デフォルトの名無しさん:2010/03/17(水) 14:35:28
×int.parse()でなければ
○int.parse()であれば
140デフォルトの名無しさん:2010/03/17(水) 14:49:34
>>138-139
int()と別にint.parse()を用意するのであれば、今度は例外を投げる必要がなくて、
default=0かdefault=Noneで良い。
というのが >>120 に既出
141デフォルトの名無しさん:2010/03/17(水) 14:58:20
なるほど
142デフォルトの名無しさん:2010/03/17(水) 21:11:41
誰か話まとめて
143デフォルトの名無しさん:2010/03/17(水) 21:29:45
Ruby最高
144デフォルトの名無しさん:2010/03/17(水) 22:22:10
int.parse() は int がオブジェクトじゃないからクラスメソッドが使えないって話

>>134 なら
ちゃんと

>default=Noneと「わざわざ」指定してNoneが返った場合の対応を「しない」のは
>さすがに考えにくいんじゃないの

と断ってあるので

>>135 みたいな突っ込みをする香具師はただのKYアホだと思う
145デフォルトの名無しさん:2010/03/17(水) 22:23:30
>>134 最高
146デフォルトの名無しさん:2010/03/17(水) 23:08:43
parse_intでも自作しろよ
147デフォルトの名無しさん:2010/03/17(水) 23:13:10
仮にintにdefualtがある場合、defaultの型がint,longでないときに例外出せばいい
148デフォルトの名無しさん:2010/03/18(木) 01:52:28
結局今の仕様通り、例外処理が一番スマートってことかな?
149デフォルトの名無しさん:2010/03/18(木) 01:53:55
int()が関数でなく型(のコンストラクタ?)だってのは理解してるので、
必ずしも int を拡張しなくてもよいんだけど、
Battery includedを唱うPythonで、プロジェクト起こすたびに
同じ関数を作ってるのがちょっぴりイヤ。
どこか適当なモジュールに xint() とか parseInt() とか入れてくれないかな。
150デフォルトの名無しさん:2010/03/18(木) 02:08:03
>>149
そんな頻繁にparseInt使いたくなるか?
intに直せないかもしれない未知の文字列をintにしたいときってどういう場合だ?
直せなかったときの対処は0入れるとか、None入れるとかで本当に適切なのか?
その場でエラー出した方がいいんじゃないの?
151デフォルトの名無しさん:2010/03/18(木) 02:13:29
大抵の場合は
n = int(s) if isdigit(s) else None
で十分。符号とか前後スペースとか考えると面倒くさくなるが。
152デフォルトの名無しさん:2010/03/18(木) 02:44:49
なんでこんなに粘着アンチは毎日ネガキャンに必死なんだろうな
周囲の環境を否定することでしか自我を保てない哀れな野郎だ
153デフォルトの名無しさん:2010/03/18(木) 03:29:35
珍しくPythonスレが伸びてるからみんな暇つぶしで付き合ってるんじゃないの
154デフォルトの名無しさん:2010/03/18(木) 03:58:42
>>152
愚痴しか言えないお前もなw
155デフォルトの名無しさん:2010/03/18(木) 09:21:21
イベントにしか興味がなくて仕事をしない不思議な動物を飼っておく余裕はなくなったのだよ。
156デフォルトの名無しさん:2010/03/18(木) 09:26:36
がんばれアイちゃん
157デフォルトの名無しさん:2010/03/18(木) 09:31:32
292 デフォルトの名無しさん [sage] 2010/03/18(木) 07:15:50 ID: Be:
    なんでこんなに粘着アンチは毎日ネガキャンに必死なんだろうな
    周囲の環境を否定することでしか自我を保てない哀れな野郎だ

293 デフォルトの名無しさん [sage] 2010/03/18(木) 09:29:56 ID: Be:
    >C#は糞
    >http://pc12.2ch.net/test/read.cgi/tech/1246520657/l50
    >711 名前: デフォルトの名無しさん [sage] 投稿日: 2010/03/18(木) 02:50:41
    >なんでこんなに粘着アンチは毎日ネガキャンに必死なんだろうな
    >周囲の環境を否定することでしか自我を保てない哀れな野郎だ

    >C#終了のお知らせ
    >http://pc12.2ch.net/test/read.cgi/tech/1200796178/l50
    >292 名前: デフォルトの名無しさん [sage] 投稿日: 2010/03/18(木) 07:15:50
    >なんでこんなに粘着アンチは毎日ネガキャンに必死なんだろうな
    >周囲の環境を否定することでしか自我を保てない哀れな野郎だ


    www
158デフォルトの名無しさん:2010/03/18(木) 10:12:26
>>149
予めあったらいいね。chomp とかもね
159デフォルトの名無しさん:2010/03/18(木) 10:20:55
rstrip
160デフォルトの名無しさん:2010/03/18(木) 11:00:20
>>159 いちいち rstrip("\r\n") と書くのがめんどい
161デフォルトの名無しさん:2010/03/18(木) 11:17:55
じゃあ外出て彼女でも作れよ
162デフォルトの名無しさん:2010/03/18(木) 11:20:17
>>160
てめぇPerlに喧嘩売ってんのか
163デフォルトの名無しさん:2010/03/18(木) 11:23:11
>>160
改行は削除したいがtrailing spaceは保存したいケースってそんなに多いかなあ
164デフォルトの名無しさん:2010/03/18(木) 11:33:02
ほんの数タイプ削減するためだけに、 parseInt や chomp を別に用意する必要は無い。
165デフォルトの名無しさん:2010/03/18(木) 11:51:08
>>151
つまり、符号や前後スペースの問題等を考慮すれば、結局
def int_parsable(s):
 try:
  int(s)
  return True
 except:
  return False
のような馬鹿馬鹿しいものを書くことになるわけでしょ

現実のプログラムで
ValueError: invalid literal for int() with base 10: ....
が最適なエラーメッセージだと考える人はいないだろうし
自分しか使わないオモチャをのぞけば、デフォルトの例外投げっぱなしが
最適解であることはむしろ稀なんじゃないの
166デフォルトの名無しさん:2010/03/18(木) 11:59:17
わらた
167デフォルトの名無しさん:2010/03/18(木) 12:02:23
>>165
そんなばかばかしい関数書かないよ。
ユーザーが入力した文字列を利用するなら、
try:
    x = int(s)
except Exception:
    # ユーザーにメッセージを表示
# x を使った処理

で十分。
>>151みたいな書き方をすることはない。
168デフォルトの名無しさん:2010/03/18(木) 12:06:39
>>167
try〜exceptを含む4つの文より、一つの式のほうが簡潔な上に、
抽象化された構造に取り込みやすいこともあるんじゃないの
>>151の右辺は式だからね

ああ書きたければ、isdigit()では不十分なので
int_parsable()が必要になる、ということ
169デフォルトの名無しさん:2010/03/18(木) 12:08:28
これが日本のレベル
170デフォルトの名無しさん:2010/03/18(木) 12:09:25
>>153
それもこれも、みんな俺の努力の賜でね
171デフォルトの名無しさん:2010/03/18(木) 12:10:04
下手な回復されるよりは例外出される方がマシじゃん
172デフォルトの名無しさん:2010/03/18(木) 12:11:27
そして
ValueError: invalid literal for int() with base 10: ....
を印字して終了するわけか
173デフォルトの名無しさん:2010/03/18(木) 12:32:04
>>168
>>151みたいに書いたって、その後で
if n is None:
    # ユーザーにまともなエラーメッセージを表示
ってやったら三行じゃん。

>>165でエンドユーザーに対してエラーメッセージを表示することについて
言っているけど、Noneなんて入れっぱなしにしたら

TypeError: unsupported operand type(s) for +: 'NoneType' and 'int'

みたいなエラーがその後のどっか別の場所で出て、エンドユーザーにとって判りにくいどころか
プログラマにとってもいつint以外のオブジェクトが入ったのか探す必要が発生するわけだが。
174デフォルトの名無しさん:2010/03/18(木) 12:36:33
>>173
int_parsable()では、デフォルト値でいい場合に
n = int(s) if int_parsable(s) else default
で済み、明らかに少ないし、

Value Error以外の、もっと有用なメッセージを出力したい場合も
if not int_parsable(s): raise ほげException(有用なメッセージ)
の1行で済むよ
175デフォルトの名無しさん:2010/03/18(木) 12:38:20
つまり、防御的に書かない書き捨てコードの
...
n = int(s)
...

に対して、
...
if not int_parsable(s): ....
n = int(s)
...

と一行はさむだけで防御的になるわけだ
176デフォルトの名無しさん:2010/03/18(木) 12:52:46
仕事しろよこの穀潰しが
177デフォルトの名無しさん:2010/03/18(木) 12:54:36
>>174
デフォルト値で良い場合は >>51 で良いし、
例外メッセージを書き換えたい場合は

def int_parse(s, msg):
    try:
        return int(s)
    except Exception:
        raise HogeException(msg)

とした方が良いな。
このあたりはアプリケーション毎に違うんだから自分で書いたらいい。
178デフォルトの名無しさん:2010/03/18(木) 14:31:51
春休みになるとここまで雰囲気が変わるのかよ
179デフォルトの名無しさん:2010/03/18(木) 14:34:58
社内ニートも加わってさらにひどいことに.
180デフォルトの名無しさん:2010/03/18(木) 15:26:30
つーか、まだやってたのか
181デフォルトの名無しさん:2010/03/18(木) 15:40:43
質問です。

Pythonのコマンドラインを起動して、「3+4」と入力すると「7」が帰って来ます。
この「7」って__doc__とか__name__のどこかに格納されているのでしょうか?

また、「7」の型を判定することは可能でしょうか?
182デフォルトの名無しさん:2010/03/18(木) 15:44:04
何が聞きたいのかさっぱりわからん

$ python
Python 2.6.4 (r264:75706, Jan 25 2010, 09:01:01)
[GCC 4.4.2 20091208 (prerelease)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 3+4
7
>>> _
7
>>> type(_)
<type 'int'>
>>>
183デフォルトの名無しさん:2010/03/18(木) 15:50:08
#型の判定
isinstance(7,int)
True
isinstance("7",int)
False
#数値型に変換できるかの判定
"7".isdigit()
True
"'7'".isdigit()
False
184デフォルトの名無しさん:2010/03/18(木) 16:08:33
>>182-183
「_」と「typeやisinstance」がまさに知りたかった情報です。

ありがとうございます。

でも不思議なのですが、dir()しても「_」というオブジェクトは見つかりません。
「_」の情報はどこに定義されているのでしょうか?
185デフォルトの名無しさん:2010/03/18(木) 16:15:47
__builtins__._
186181:2010/03/18(木) 16:28:45
>>185
納得しました。
ありがとうございます。
187デフォルトの名無しさん:2010/03/18(木) 16:45:25
この春厨は同じ春厨でも筋のいい春厨だから仲良くな。
188デフォルトの名無しさん:2010/03/18(木) 18:05:51
皆さんいかがお過ごしでしょうか。
ストレス解消に煽りに来ている方、十分な睡眠を取って煽ってくださるようお願い申し上げます。
風邪を引く前の予防が肝心です。日々の鍛錬を怠らないようにして下さい。
暇つぶしに来ている方、時間を決めて一時間ごとに十五分から二十分くらいの休息を取られた方が良いと思います。
時間は限られています。あなたの人生はあなたの物ですが、一日中インターネットに没頭している、これはいかがな物でしょうか。
インターネットはあなた様の健康に悪影響を及ぼす可能性があります。
マルチしている方、人を忘れないでください、すべてはたくさんの人の多大な努力と膨大な時間を費やして出来た物でありますが故に、
そのような行為は非人道的行為にあたります。なお九十割はスクリプトで出来ているので、気軽に質問してください。マルチはいけません。
さて、私がこのような事をなぜ申し上げますかというと、この度Goのビルドに成功したが故に存じ上げる次第でございます。
よくよく冷静に考えると、このような開発段階にあり、現段階では実用に適していない「ぼくのかんがえたさいきょうのげんご」は
プログラミング言語の学習に適さないと判断させていただきました。今後ますますのご健康とご活躍をお祈り申し上げます。
189デフォルトの名無しさん:2010/03/18(木) 18:27:07
長文は縦読みかどうかしか確認しないのが俺のジャスティス(キリ
190デフォルトの名無しさん:2010/03/18(木) 19:15:58
>>188
特定しました
191デフォルトの名無しさん:2010/03/18(木) 21:08:19
>>175
それ、1行挟むだけで済ませようと思ったらreturnかexitくらいしか入らないんじゃない?
192デフォルトの名無しさん:2010/03/18(木) 21:09:15
>>191
raiseもいれられるお!
193デフォルトの名無しさん:2010/03/18(木) 21:15:19
ってかマジレスすると、
その1行が想定している意味は、すぐ上の>>174を読めば分かる
194デフォルトの名無しさん:2010/03/18(木) 21:16:55
なんてかpersable()がないのは、変換する必要がない場面で変換可能かを調べる必要が滅多にないこと、
変換する必要がある場面で例外にしてはいけない合理的理由が特に見当たらないこと、その2点に集約されてる気がする。
(Python
195デフォルトの名無しさん:2010/03/18(木) 21:23:01
途中で書き込んでしまった。すまそ

(pythonでは例外使うことに抵抗がなく、むしろ積極的に使っている節がある。
それに、何もかもを1行で書きたいという欲求に、Guideは全然興味を示してない。
多分、三項演算子ができたのも、論理演算子を組み合わせた直感的でない方法取られるよりはマシとの判断)

str.indexとstr.findが両方あることを考えるに、
intが例外を返すのが直感的でない、例外を返さないことに意義がある場面が十分ありうるのなら、
既にparse_intは取り入れられてるはずだろう。
196デフォルトの名無しさん:2010/03/19(金) 01:08:04
>>195
strにfindとindexの2種類合ってintには無い理由の大きな理由は、 str.find と str.index が
メソッドなのに対して str は組み込み型だからだと思うよ。
197デフォルトの名無しさん:2010/03/19(金) 01:52:26
>>196
確かにそれも大きいとは思うが、それこそparse_intにすればいいって話になってくる。
一応、変換手段が複数ある例として、
str(u'abc')があるのにu'abc'.encode('ascii')が用意されているといったケースがある。
(これは、どっち使ってもUnicodeEncodeError例外が出うるけど)
198デフォルトの名無しさん:2010/03/19(金) 02:34:10
ignoreが付いてるんだから
int()にもignoreがあればいいのにって話
199デフォルトの名無しさん:2010/03/19(金) 02:52:29
いい加減そういうモジュール作るとか俺々Python作るとかすればいいじゃん
なんのためのOSSだ
200デフォルトの名無しさん:2010/03/19(金) 03:15:23
>>197
最初から int に加えて parse_int みたいなのを加える事を言ってる。
"メソッド" はクラスの名前空間に属するけど、 int() に並べて parse_int() を追加しようとすると
組み込みの名前空間を汚しちゃう。

>>198
ignore付けたら何を返せばいいの? 0 だと "0" を問題なくパースできたのと見分けがつかないよ。
201デフォルトの名無しさん:2010/03/19(金) 03:38:07
>>198
だから、んなもんあってもバカがバカな使い方してバグ増やす以外に何のメリットもないと。
202デフォルトの名無しさん:2010/03/19(金) 07:51:51
>>200
>ignore付けたら何を返せばいいの? 0 だと "0" を問題なくパースできたのと見分けがつかないよ。

もちろんそれでいい
そのためのignoreなんだから

u'hoge'.encode('fuga', errors='ignore')
だって問題なくエンコードできたのと区別つかないでそ?
203デフォルトの名無しさん:2010/03/19(金) 08:06:34
型変換とエンコードを一緒にされちゃいました
204デフォルトの名無しさん:2010/03/19(金) 09:08:52
語るに堕ちたなw
エンコードっつても
unicodeとstrの型変換だぞ
205デフォルトの名無しさん:2010/03/19(金) 10:25:08
ゆるしてやれ
206デフォルトの名無しさん:2010/03/19(金) 11:00:26
Pythonではもともとstr型があったところにunicode型が導入されたという歴史的経緯がある
Python3では文字列型がunicode型に統一されている
以上のようなことから、unicode <-> strの型変換は特殊な位置づけにあると思う
207デフォルトの名無しさん:2010/03/19(金) 11:14:34
Python3でもstrのコンストラクタで相変わらずerrors='ignore'と書けるわけだが…

それ、strのコンストラクタにerrors="ignore"と書けるのは良くて
intではダメ、という合理的な論拠や説明にはちっともなってなくね?
「特殊」ってつまり何?
なんかのマジックワードか何か?
208デフォルトの名無しさん:2010/03/19(金) 11:16:48
>>200
str(b'\xff', errors='ignore')
''が返るね、問題なくパースできたのと見分けがつかないよね

なんつうか前から思っていたが、しばしばPython信者の擁護は見苦しくて妄信的だね
209デフォルトの名無しさん:2010/03/19(金) 11:19:32
まあ ignore を「敢えて」指定するのは
> 問題なくパースできたのと見分けがつかないよね
を覚悟の上でやっているわけで。

違う型を返しているわけでもないし
210デフォルトの名無しさん:2010/03/19(金) 11:21:06
>>209
よく読もう
例えば>>200の最後の文は滑稽でしかないということだよ

strのことは忘れたかのように、握り潰せるインタフェースは邪悪だと
彼らは主張していたわけだからね
211デフォルトの名無しさん:2010/03/19(金) 11:51:48
まだこんなくだらない話を続けているのか。
Pythonの仕様に文句があるなら、作者の見てるとこで言えよ。
こんなとこで言っても変更される可能性は0だろう。

それでも駄目なら、自分で新しい言語を作ればいい。
212デフォルトの名無しさん:2010/03/19(金) 11:53:07
2chやこのスレの存在意義を問うレスが来ました
そろそろ春だなあ厨も来る頃ですね
213デフォルトの名無しさん:2010/03/19(金) 11:53:39
春厨は書き込みのすべてが滑稽
214デフォルトの名無しさん:2010/03/19(金) 11:58:46
>>202
>>>200
>>ignore付けたら何を返せばいいの? 0 だと "0" を問題なくパースできたのと見分けがつかないよ。
>
>もちろんそれでいい
>そのためのignoreなんだから

いや,この仕様はないわ、滑稽
型変換に失敗したときに0を返すべきかどうかは実装依存だし、
「じゃあdefaultをつけようぜ! xxにはあるじゃん!」
などと付け足すとしたら恥の上塗り

ぜんぜんPythonicじゃないよ
215デフォルトの名無しさん:2010/03/19(金) 11:59:59
頑張るねえ
216デフォルトの名無しさん:2010/03/19(金) 12:02:40
>>210
>彼らは主張していたわけだからね

脳内には300人の「彼ら」が居るわけだね。
217デフォルトの名無しさん:2010/03/19(金) 12:05:47
おまえらレベル高すぎ
218デフォルトの名無しさん:2010/03/19(金) 12:07:03
>>216
2人以上いるときは複数形を使うのが正しいんだよ
君は日本語の勉強からやりなおしたほうがいいんじゃないかな
219デフォルトの名無しさん:2010/03/19(金) 12:24:23
春厨はなかまになりたうそうにこっちをみている

なかまにしますか?
220デフォルトの名無しさん:2010/03/19(金) 12:44:40
そういう実装は色々と問題があるから
エラー吐かせてるのに何で不毛な議論するの?
221デフォルトの名無しさん:2010/03/19(金) 13:04:32
unicodeとstrの変換は、途中で例外出されたときに手動でハンドリングするのが難しい。
intは簡単だから、オプションを必要と言う主張が弱いだけ。
222デフォルトの名無しさん:2010/03/19(金) 13:12:03
>>214
def int(str, , errors='strict', default=0):
で定義して erros='ignore'
223デフォルトの名無しさん:2010/03/19(金) 13:13:49
途中で送ってしまった

>>214
def int(s, base, errors='strict', default=0):
で定義して erros='ignore' のときは default (もちろん変更可能) を返せば良い
224デフォルトの名無しさん:2010/03/19(金) 13:15:04
,ひとつ多くね?
225デフォルトの名無しさん:2010/03/19(金) 13:29:42
>>223
221
226デフォルトの名無しさん:2010/03/19(金) 13:31:25
「じゃあdefaultをつけようぜ! xxにはあるじゃん!」
などと付け足すとしたら恥の上塗り
227デフォルトの名無しさん:2010/03/19(金) 14:38:15
そろそろ次の話題マダー? ちんちん
228デフォルトの名無しさん:2010/03/19(金) 14:45:59
メールの MIME-multipart のデコードをしようと思っているのですが
Content-encoding と実際のデータのエンコードが違っているときがあります
適切に文字コードを判断してデコードするにはどのようにプロ倉民すればよいでしょうか
出力は UNICODE に統一出来ていれば良いです
229デフォルトの名無しさん:2010/03/19(金) 15:06:29
1. もちついてタイピングする事
2. 右見て左見てもう一度右見て気をつけて渡る
230デフォルトの名無しさん:2010/03/19(金) 15:16:09
ι''ゃぁ、次の話題。

a = [2,2,5,6,3,8,9] とかいうリストがあって、これを "," 区切りの文字列にしたいな、と思ったとき
a
",".join(a)
",".join(map(str, a))
の順番でタイプすることが多いんだけど、この順番だとキャレットが行ったり来たりしてちょっとストレス感じます。

lambda が入ったりして少し複雑な文とかでも、最終的に書かなければいけない順番と
頭で考える順番が全然イコールになってなくて、イライラっとするんだけどこういう事って結構ない?
231デフォルトの名無しさん:2010/03/19(金) 15:48:18
Lispなら構文木は簡単に弄れるよ
232デフォルトの名無しさん:2010/03/19(金) 16:40:03
py使いならXMLでやるんじゃね
知らんがな
233デフォルトの名無しさん:2010/03/19(金) 16:49:34
UNICODE必要な処理はperlをパイプで呼び出して処理すればいいじゃん
234デフォルトの名無しさん:2010/03/19(金) 16:50:37
235デフォルトの名無しさん:2010/03/19(金) 16:55:54
python使いならYAMLしか選択がない
236デフォルトの名無しさん:2010/03/19(金) 16:57:31
pythonの原型らしいbootというのがいまだに使われてるプロジェクトがあった
bootってpythonとどこまで互換あるんだろ
237デフォルトの名無しさん:2010/03/19(金) 18:10:03
>>234
PythonもLispもOCamlも全部やればいいと思うよ!
238デフォルトの名無しさん:2010/03/19(金) 20:55:28
>>230
Pythonでは、リストやジェネレータの内包表記があるからmapはあんまり使う必要がない。
",".join(str(n) for n in a)
って書き方だと、ちょっとは書きやすくなるんじゃないかなぁ。
239デフォルトの名無しさん:2010/03/19(金) 20:59:16
>>208
変換できない文字は引数で指定した通りignoreした上で、変換可能な文字はすべて何ら問題なく変換している。
それは極めて正当な処理だ。

240デフォルトの名無しさん:2010/03/19(金) 21:12:01
>>238
','.join(str(n) for n in a)
','.join(map(str, a))
元のほうが短くないか?
241デフォルトの名無しさん:2010/03/19(金) 21:19:36
>>238
str(n) の n って for n で初めて意味が決まるので、
内包表記も頭から順番に書いていくには素直な順番じゃないなぁと思う。
内包表記に if が出てきたり多重ループになってたりすると
読んでも理解しづらいし、書きたいときも手が止まる。
242デフォルトの名無しさん:2010/03/19(金) 21:29:18
perlでは処理できる日本語がpythonで処理できないのは
UTFに変換できない文字が入ってるから?
それ以外のケースってある?
243デフォルトの名無しさん:2010/03/19(金) 21:30:35
>>242
処理できなかったのって具体的にどんな奴
244デフォルトの名無しさん:2010/03/19(金) 21:33:25
エンコーディングにsjisを指定しているのなら、cp932にしたら
幸せになるかもしれない
euc-jpを指定しているのなら、euc_jisx0213にしたら幸せになるかもしれない
245デフォルトの名無しさん:2010/03/19(金) 21:50:30
>>242
お前の脳が日本語を処理出来ないことは良くわかった
246デフォルトの名無しさん:2010/03/19(金) 22:54:20
>>240
ごめ、長さのこと考えてなかった。

そのへん気になる人は、
','.join(str(n) for n in a)よりは','.join(map(str, a))の方が短く、
','.join(map(lambda n:str(n+1), a))よりは','.join(str(n+1) for n in a)の方が短いことを考えながら使い分けるとよい。

>>241
あまりに複雑な内包表記が読みづらいことは認める。

後置での読み書きは慣れの問題だとは思うが、Pythonは内包表記も三項演算子も後置的で、慣れないとPythonは使い辛いのかもしれない。
(cond ? true_value : false_valueをpythonでは true_value if cond else false_valueってかく)

意味、というか値が後で決まる件に関しては、関数だって定義したときには引数の値決まってないじゃん、って思うといいよ。
「とりあえず、str(n)する。で、そのnってのは...のことで」という読み方をすると割と読めるんじゃないかなぁ。

書くときは、自分の中で、シーケンスの中身を表す変数ってのがだいたい固定化してきたら書きやすくなる。
例えば俺はrange(10)の中身だとiで、文字列ならsで、整数ならnで、とりあえず何か要素ならelemって書くことが多い。
247デフォルトの名無しさん:2010/03/19(金) 22:58:41
殺伐としていた本スレになにがあった
248デフォルトの名無しさん:2010/03/20(土) 02:14:51
内包表記とかS式とかって、日本語の語順と逆だから違和感があるよね。
やっぱ、FORTHかな。
249デフォルトの名無しさん:2010/03/20(土) 13:20:48
日本語と比べて違和感が、などと言っている英語駄目なエンジニアに未来はないけどね。
250デフォルトの名無しさん:2010/03/20(土) 13:22:46
>>248
スタックマスターハケーン
251デフォルトの名無しさん:2010/03/20(土) 13:27:21
>>249
Shut your fuckin' mouth!!!!!
252デフォルトの名無しさん:2010/03/20(土) 14:26:55
# 空白と改行を消す。
s = s.replace( "\n", "" ).replace( " ", "" );
こんな書き方しないとダメなの?
253デフォルトの名無しさん:2010/03/20(土) 14:32:26
s.translate(None, " \n")
254デフォルトの名無しさん:2010/03/20(土) 15:25:26
ボクチムは英語で罵倒できるほど英語ができるんだけど日本語と比べて違和感が
などと言っている奴はエンジニアである前に人間として駄目だけどね
255デフォルトの名無しさん:2010/03/20(土) 15:32:27
>>254
Take a flying fuck
256デフォルトの名無しさん:2010/03/20(土) 23:28:00
WiresharkのビルドにPythonが必須なんだが
Cygwin同梱のPythonではダメでWin32ネイティブのものが
インストールされてる必要がある
http://www.wireshark.org/docs/wsdg_html_chunked/ChSetupWin32.html#ChSetupPython
PerlはCygwin版で良いのにPythonは何故ダメなのか不思議

どうせWin32ネイティブのPythonが必要なら
Perlやbashその他もろもろをPythonで置き換えて
Cygwinインストール不要にして欲しい

subversionやNSISは仕方がないとして
Perl, bash, bison, flex, diff, patch, wget, unzip
なんかはPythonで置き換えられるよね?
257デフォルトの名無しさん:2010/03/21(日) 07:35:03
そもそも関数が前置記法で欧米的。
日本語的とか言ってるような奴はそこから批判すべき。
258デフォルトの名無しさん:2010/03/21(日) 07:43:31
>>257 LLスレで好きなだけやっとれ
259デフォルトの名無しさん:2010/03/21(日) 09:45:11
いいじゃん、Pythonはオランダ語的ってことで。
len(s)はV1語法で、s.join(l)はV2語法だよ。
260デフォルトの名無しさん:2010/03/21(日) 10:43:27
>>257
単にOO風の記述と関数的な記述が入り乱れてるから混乱するって話じゃねーの?
261デフォルトの名無しさん:2010/03/21(日) 11:13:15
これがPython文法だと言われれば別に反発する気が起きない。
昔は強制インデント文法だけ取り上げられてマゾ言語と言われてたが
最近はあんまり言われなくなったなぁ。

今はモジュール・クラス・関数の命名の統一のなさがどうにも気になる。
Python4できっちり整備して欲しい。
262デフォルトの名無しさん:2010/03/21(日) 11:20:57
母語がなんであれ、人間の思考は SOV の語順が一番自然というのを聞いたことがある。
絵を見せて、パントマイムでそれをつたえるという作業をさせると、SOVの順の人が一番多いのだそうだ。
263デフォルトの名無しさん:2010/03/21(日) 11:23:25
naming style を統一しなかったのは、まずJavaやPosixみたいな既存の関数の
port版はそっちと名前を合わせたほうが使いやすいから統一しない、統一しないの
であれば、古いからっていう理由だけでpep8に従ってないモジュールのインタフェースを
無理に変える必要も無いよね−、という考えでそのままになってる。

パッケージ名だけは小文字で統一された。それ以外の分は、Threadingモジュールみたいに
段階的にエイリアスを定義しては古い方をdeprecated扱いにする・・・を繰り返して、
ゆっくり移行していくと思うよ。Python4から!みたいに線引きすると移行がしづらくなるから。
264デフォルトの名無しさん:2010/03/21(日) 23:27:03
>>256
yaccやlexって標準添付ライブラリで置き換えられるんだっけ?
265デフォルトの名無しさん:2010/03/22(月) 17:39:35
LL言語なんてperlがあれば十分なのに,なんで
RubyだのPythonなんてものができたんだ?
266デフォルトの名無しさん:2010/03/22(月) 17:51:04
perlがキモいから
267デフォルトの名無しさん:2010/03/22(月) 18:02:16
perlがゴミだから
268デフォルトの名無しさん:2010/03/22(月) 18:56:42
いあPerlもPythonも必要
ゴミはRuby
269デフォルトの名無しさん:2010/03/22(月) 18:59:49
どうぞどうぞ。
270デフォルトの名無しさん:2010/03/22(月) 19:03:55
いやそれ以前にLispがあったのになんでPerlなんてできたんだ?
271デフォルトの名無しさん:2010/03/22(月) 19:05:42
PerlとPythonとtclは要るな
make testで使われてる事が多いから

rubyは要らね
272デフォルトの名無しさん:2010/03/22(月) 19:08:49
>>270
()//////
273デフォルトの名無しさん:2010/03/22(月) 19:09:32
ちがった。
\\\\\\\\
274デフォルトの名無しさん:2010/03/22(月) 20:12:29
>>271
たしかに
そこにrubyを含めると
rubyのテストをしないといけなくなる
275デフォルトの名無しさん:2010/03/22(月) 20:17:15
>>274
は?
276デフォルトの名無しさん:2010/03/22(月) 20:27:24
なにそれこわい
277デフォルトの名無しさん:2010/03/22(月) 20:27:38
ひ!
278デフォルトの名無しさん:2010/03/22(月) 20:36:43
rubyは好事家が趣味でコッソリ使う言語だよな
日本でこんなに広まったのがそもそもの間違い
279デフォルトの名無しさん:2010/03/22(月) 21:31:14
RPGツクールとかいうブラック企業が制作したソフトウェアに組み込まれた言語だからな
280デフォルトの名無しさん:2010/03/22(月) 22:04:15
RPGツクールは同コンセプトでもっとまともなものが出てもいい
言語別ゲーム用ライブラリは敷居が高すぎる
あ、敷居が高いからいいのか
281デフォルトの名無しさん:2010/03/22(月) 22:09:16
RPGツクールは知らんがDANTE98とチャイムズクエストは神
282デフォルトの名無しさん:2010/03/22(月) 23:59:57
Pythoneerだな
283デフォルトの名無しさん:2010/03/23(火) 03:05:02
NetHackのGUIをpythonで作ってください
284デフォルトの名無しさん:2010/03/23(火) 03:10:40
どうぞどうぞ
285デフォルトの名無しさん:2010/03/23(火) 17:15:47
Python 2.6.5/3.1.2リリース
http://sourceforge.jp/magazine/10/03/23/048255
286デフォルトの名無しさん:2010/03/24(水) 00:40:22
他のLL言語との比較は
http://pc12.2ch.net/test/read.cgi/tech/1267553581/
でやれ
287デフォルトの名無しさん:2010/03/24(水) 00:46:19
どうぞどうぞ
288デフォルトの名無しさん:2010/03/25(木) 12:26:27
python26_d.lib
ってどこか落ちてないのか
289デフォルトの名無しさん:2010/03/25(木) 12:46:59
自分でデバグビルドすれば作れるし
自分でビルドしないのなら特に用のないファイルじゃないの?
290デフォルトの名無しさん:2010/03/25(木) 13:39:36
>>289
pythonを部品として使ってるプロジェクトがビルドできない
291デフォルトの名無しさん:2010/03/25(木) 13:49:24
>>290
ああ、それをデバグビルドしたくて、デバグ版はpython26_d.libにリンクするように
なってるわけな
実際にデバッガで動かそうと思ったら、それだけじゃなくて色々いると思うよ
最低限python26_d.dll、あとネイティブモジュール(pyd)も全部_d版が必要

そのプロジェクトは誰が作ったの
赤の他人?
292デフォルトの名無しさん:2010/03/25(木) 14:14:25
sourceforgeってpythonなんだ
293デフォルトの名無しさん:2010/03/25(木) 17:22:33
pythonのWebフレームワークでロードバランスなど負荷分散方法が組み込まれてるのってある?
294デフォルトの名無しさん:2010/03/25(木) 21:22:22
>>293
Zopeが入ってるっぽいが
295デフォルトの名無しさん:2010/03/25(木) 22:55:03
Zope(笑)
296デフォルトの名無しさん:2010/03/26(金) 00:39:06
最近は何が流行りなんだdjangoか
GAEのおかげでpython使ってる人は増えてるみたいだけど
297デフォルトの名無しさん:2010/03/26(金) 00:57:22
298デフォルトの名無しさん:2010/03/26(金) 05:30:23
わかってて引用してるだろ?w
299デフォルトの名無しさん:2010/03/26(金) 12:33:37
djangoはロードバランスできないのか?
300デフォルトの名無しさん:2010/03/26(金) 13:01:05
無茶いうな
301デフォルトの名無しさん:2010/03/26(金) 19:54:37
>>293
Pylonsに入ってるっぽい
302デフォルトの名無しさん:2010/03/26(金) 20:47:33
なんでWebフレームワークで負荷分散するんだよ?
フロントにnginx使って、バックにDjangoを複数立ち上げておけよ。
303デフォルトの名無しさん:2010/03/26(金) 23:42:54

JTHONやCPYHONなどパイソン関連用語が多くて

学習する前に混乱しそうなんですけど、難しくないですか?

304デフォルトの名無しさん:2010/03/26(金) 23:49:46
>>303
両方綴り間違ってるから釣りっぽいけど、
どの言語も同じようなもんだし、最初は気にする必要もない
305デフォルトの名無しさん:2010/03/27(土) 15:11:37
Jythonで作ったスクリプトをコンパイルして
classファイルやjarファイル作りたいんだけどどうやるの?
306デフォルトの名無しさん:2010/03/27(土) 15:24:51
ctypesとswigどっちがいいんだろう
OpenCVにデフォでついてるswigがなんか嫌なんだけど
307デフォルトの名無しさん:2010/03/27(土) 18:30:41
>>306
原因不明のエラーが出ても気にならないならOpenCvSwing版でもいいが
ちゃんと使いたいならcvtypesとか使ったほうが安心できる
ROI使えないとかpython仕様じゃない実装されてる風だったり
かなりストレスたまる
308307:2010/03/27(土) 18:31:27
下げそこないスマソ
309デフォルトの名無しさん:2010/03/28(日) 00:11:15
cvtypes ってなんですか
310デフォルトの名無しさん:2010/03/28(日) 01:20:23
http://code.google.com/p/ctypes-opencv/
自分はこれを使ってた。
swig版やcvtypesと違ってちゃんとメモリを自動的に開放してくれるから便利だった。
311デフォルトの名無しさん:2010/03/28(日) 01:42:27
ひょっとすると ctypes-opencv のことを略して cvtypes と言うのですか?
312デフォルトの名無しさん:2010/03/28(日) 01:44:16
opencvでPyPIれ
313デフォルトの名無しさん:2010/03/28(日) 01:46:09
Related Python wrappers for OpenCV
OpenCV has its own swig-based Python wrapper. However, it has conflicts
in memory management between C/C++ and Python, and hence is not suitable
for large projects. It is also particularly hard to maintain and develop.

Another project called CVtypes was pioneered by Michael Otto and is
currently maintained by Gary Bishop
(at http://wwwx.cs.unc.edu/~gb/wp/blog/2007/02/04/python-opencv-wrapper-using-ctypes/).
The wrapper is based on ctypes. It supports a large set of OpenCV's
functions and a limited set of OpenCV's structures.

I used to provide some improvements to CVtypes here and there. While
Gary Bishop was a kind professor, I felt not so nice to keep asking him
to update his code. Therefore, I decided to branch from his CVtypes,
and the result is this project. ctypes-opencv supports a fairly complete
set of OpenCV's structures and functions. More importantly, I have put
a lot of efforts in making ctypes-opencv faster, better memory-managed,
and easier to use, by not only adopting but also improving the pythonic
interface introduced by OpenCV's developers. Nevertheless, credits should
also go to OpenCV developers, and CVtypes' authors and contributors.
I intend to eventually merge back to Gary Bishop's CVtypes when the project
is mature enough.
314デフォルトの名無しさん:2010/03/28(日) 03:53:26
>>302
Ruby on RailsだとMongrelとかいうのが負荷分散してくれるみたいなんだけど
Pylonsにも似たような機能はあるのかな
315デフォルトの名無しさん:2010/03/28(日) 04:02:08
OpenCV2.0のswigもメモリー漏れあるのだろうか
316デフォルトの名無しさん:2010/03/28(日) 04:26:56
>>314
tornado使えばwsgi対応のフレームワークは全て出来るんじゃないかな
317デフォルトの名無しさん:2010/03/28(日) 06:22:50
Visual StudioのExpress版でIPython出してくれたら本気出す
318デフォルトの名無しさん:2010/03/28(日) 07:24:30
>>314
Mongrelでも一緒だ。
複数のMongrelを立ち上げて、フロントはApacheかnginxみたいなリバースプロクシを使って
負荷分散する。
319デフォルトの名無しさん:2010/03/28(日) 13:26:50
ロードバランシングはフレームワークのレベルで行う事ではないってことか
320デフォルトの名無しさん:2010/03/28(日) 13:34:04
振り分けクンを前に置くのが普通だと思っていたぜ・・・LBするくらいの環境なら。
321デフォルトの名無しさん:2010/03/28(日) 20:44:16
しかしDjangoの日本語テキストって本当に少ないな

Pythonとセットで始めたいけど英語読めないから無理だわ・・・
322デフォルトの名無しさん:2010/03/28(日) 21:14:15
DjangoはTurboGearsやPylonsより圧倒的に日本語情報多いと聞いたが
323デフォルトの名無しさん:2010/03/28(日) 21:18:02
ドジャンゴは本まで出てるしな
324デフォルトの名無しさん:2010/03/28(日) 21:30:42
Djangoはソースコードも追いやすいし書籍無しでいけるんじゃね
Railsは俺のレベルでは無理だった
325デフォルトの名無しさん:2010/03/28(日) 22:03:14
ドジャンゴじゃなくてダンジョーだろ
326デフォルトの名無しさん:2010/03/29(月) 02:03:56
日本のドジャンゴとゾープユーザは糞だよな
327デフォルトの名無しさん:2010/03/29(月) 02:06:04
初めまして、糞です
328デフォルトの名無しさん:2010/03/29(月) 02:10:24
ぼくはPHPからダンジョーでパイソンに興味を持ちまして、相変わらず糞コードを書いてますウンチです
329デフォルトの名無しさん:2010/03/29(月) 07:48:46
330デフォルトの名無しさん:2010/03/29(月) 12:32:51
OpenCVに限定しない一般の場合でも
swigよりctypesが推奨ってことでいいのだろうか
331デフォルトの名無しさん:2010/03/29(月) 12:43:50
ctypesはパフォーマンスがあまりよろしくないみたいだから
既存のライブラリ利用→ctypes
新規で作成→swig
がいいかなと思ってる

あと使った事ないけどPyCXXが面白そう
332デフォルトの名無しさん:2010/03/29(月) 15:58:22
SIP は?
333デフォルトの名無しさん:2010/03/29(月) 20:31:40
Boost.Pythonってのもある
334デフォルトの名無しさん:2010/03/29(月) 20:44:39
Pyrex/Cython
335デフォルトの名無しさん:2010/03/29(月) 20:44:50
cython
336デフォルトの名無しさん:2010/03/29(月) 21:55:41
Python/C APIだけで書く人はいないのか
337デフォルトの名無しさん:2010/03/29(月) 22:21:45
>>336
bazaarその方向を目指してるようだ
338デフォルトの名無しさん:2010/03/30(火) 18:14:47
Pythonどころかプログラミング自体初心者ですが、
Pythonの勉強はPython設計者本人が書いたという「Pythonチュートリアル第2版」でしようと思ってます。
大丈夫ですよね?
339デフォルトの名無しさん:2010/03/30(火) 20:57:12
駄目です
340デフォルトの名無しさん:2010/03/30(火) 21:03:42
無駄です
341デフォルトの名無しさん:2010/03/30(火) 21:10:51
童貞です
342デフォルトの名無しさん:2010/03/30(火) 21:15:14
ひどい
343338:2010/03/30(火) 21:16:05
なぜですか?
344デフォルトの名無しさん:2010/03/30(火) 21:24:07
プログラミング初心者用ではないからじゃないかなぁ
まあ、別に読んでも害はないけど
文句は言うな!
345デフォルトの名無しさん:2010/03/30(火) 21:25:53
もう買っちゃったのなら三章から読んでいって
わけわかんないところは読み飛ばせばなんとかなるよ!

たぶん
346デフォルトの名無しさん:2010/03/30(火) 21:26:19
>>343
みんぱい
はじぱいは?
347デフォルトの名無しさん:2010/03/30(火) 21:28:06
はじぱいは悪くないけど信者がキモいよ。
348デフォルトの名無しさん:2010/03/30(火) 21:28:52
>>338
みんぱいいいよみんぱい
349デフォルトの名無しさん:2010/03/30(火) 21:30:34
みんぱいはいいけどアンチがキモイよ
350デフォルトの名無しさん:2010/03/30(火) 21:36:49
みんなのぱいぱい
351デフォルトの名無しさん:2010/03/30(火) 21:36:56
ゆえにプログラミング初心者向けのPython書籍はございません
352デフォルトの名無しさん:2010/03/30(火) 22:20:47
川の向こうでRubyが手招きしている
353デフォルトの名無しさん:2010/03/30(火) 22:22:48
三途の川?
354デフォルトの名無しさん:2010/03/30(火) 22:28:13
荒川だな
355デフォルトの名無しさん:2010/03/30(火) 22:32:23
みんなのPythonのひどさ。
http://tabesugi.net/memo/2006/a1.html#070018
356デフォルトの名無しさん:2010/03/30(火) 22:37:52
Rubyずきには申し訳ないが、
Rubyがもし日本で生まれていなければ悩むことなく、みなPythonを選択し、
もっと日本のPythonコミュニティが発展していたのかもしれないとおもうと、
なんか複雑な気分だなあ。
357デフォルトの名無しさん:2010/03/30(火) 22:38:21
な,アンチキモいだろ?
358デフォルトの名無しさん:2010/03/30(火) 22:40:23
>>357
にいやまはああいう芸風なんだよ(w
359デフォルトの名無しさん:2010/03/30(火) 22:52:33
pythonの肩持つ気はないがrubyってそんな日本人に支持されてるのかね?
360デフォルトの名無しさん:2010/03/30(火) 23:07:06
大型の書店にいってPythonとRubyの書籍の比率をみればあきらかだろ。
361デフォルトの名無しさん:2010/03/30(火) 23:10:47
悩んだ末にRubyとRailsの本3冊かって全部読んだけど
結局なじめなくてPythonやってる
362デフォルトの名無しさん:2010/03/30(火) 23:13:12
dive into なんかは、ただで読めるだろ
363デフォルトの名無しさん:2010/03/30(火) 23:16:20
いままでは最初にバイブル本を読破してから
プログラミングに一気にとりかかるのが自分のやりかただったけど、
Pythonは本読む必要もなかった。
ドキュメントのグーぐるで十分。それくらい楽勝な言語。
364デフォルトの名無しさん:2010/03/30(火) 23:21:30
Rubyで初めてプログラミング始める人は理解しやすいのだろうが
javaとかC#とかやってるとRubyは凄く気持ち悪い
365デフォルトの名無しさん:2010/03/30(火) 23:53:36
Tutorialだけで十分。
日本語訳は正確じゃなかったり、くどかったりすることもあるので、オリジナルを読むのが吉。
366デフォルトの名無しさん:2010/03/30(火) 23:58:35
俺もC++とJavaから来たが、PythonよりRubyのほうが書いてて気持ち良いなぁ。
でも、他人が書いたソース読むんなら、断然Pythonだな。
367デフォルトの名無しさん:2010/03/31(水) 00:08:03
[The ruby sniffer]
whenever they have ruby coding, they stay focus to what ruby.
that doing is like sniffing ruby code, actually, they might sniff ruby code.
why... I guess because that is goddamn flaw of ruby.
how flaw, I could answer... exactly they are like sniffer.
368デフォルトの名無しさん:2010/03/31(水) 01:09:14
PILで作った画像をsaveするときに
ファイルではなくメモリ上のバッファに
出力したいのですが、具体的には

im = Image.new('RGBA', (sizex, sizey))
im.putpixel((x, y), color)
...
#im.save('hoge.gif') ←ここのかわりに
s = StringIO.StringIO()
im.save(s)

あとで s.read() で別の部分に使うような感じです

s のところが f = open('hoge.gif', 'wb') みたいに
file オブジェクトなら正常に動作するのですが
StringIO だと (file オブジェクト互換のつもり) 書き込めません
やはり file オブジェクトにしか出力出来ないのでしょうか?
369デフォルトの名無しさん:2010/03/31(水) 01:22:16
im自体をメモリ上に持つのはだめなの?
一応tostringっていうメソッドはあるみたいだけど
370338:2010/03/31(水) 01:31:57
Tutorialって日本語訳として出版されたものでないと、
書籍の形にはなってないんですか?
371デフォルトの名無しさん:2010/03/31(水) 01:41:29
You can use a file object instead of a filename.
In this case, *** you must always specify the format. ***
The file object must implement the seek, tell, and write methods, and be opened in binary mode.
372デフォルトの名無しさん:2010/03/31(水) 01:42:36
>>368
im.save(s, 'gif')
かな。format指定しないとダメと思う。
fileオブジェクトの場合は .name の拡張子から
フォーマット判断してくれる(たしか
373デフォルトの名無しさん:2010/03/31(水) 01:48:12
>>369
ありがとうございます
tostring() だと pixel 部分の sequence のみ?とか良くわからないデータになってしまいます
所謂ファイルに出力されるそのままのイメージでバイナリでメモリ上に持ちたかったので・・・

>>371
ありがとうございます
解決しました

s = StringIO.StringIO()
im.save(s, 'gif')

でうまくいきました
そのあと試しに

s.seek(0)
open('hoge.gif', 'wb').write(s.read())

とやったら同じファイルが作成されました
374デフォルトの名無しさん:2010/03/31(水) 01:50:31
>>372
ありがとうございます
リロードずれたので行き違いになってしまいました
結果は >>373 の通りです
375デフォルトの名無しさん:2010/03/31(水) 13:31:34
初心者的な質問で申し訳ありませんが
a = open("hage.txt", "r")
for b in a.readlines():
fugafuga
a.close()
と書くのと
for b in open("hage.txt", "r").readlines():
fugafuga
と書くのと(close書かない&ファイルオブジェクトの参照を変数に持たない)
どっちが良いですか?
376デフォルトの名無しさん:2010/03/31(水) 14:06:20
readlinesすると全部読み込んでメモリ上に乗ってしまうから
バカでかいファイルを読み込むと死ねます。

ということで、
with open("hoge.txt") as f:
  for line in f:
    fugafuga
がいいと思います。
こう書くとwithのブロックが終わった直後に f が自動でcloseされます。
377デフォルトの名無しさん:2010/03/31(水) 19:44:36
for line in open("hoge.txt"):
  fugafuga
378デフォルトの名無しさん:2010/03/31(水) 20:21:13
ファイルの最後3行だけ読みたいときに perl だと
open(F, "tail -3 /hoge/fuga/hage.txt | ");
while(<F>){
print $_;
}
みたいな書きかたが出来たと思いますが
python だとどう書けばよいのでしょうか?
379デフォルトの名無しさん:2010/03/31(水) 20:46:56
380デフォルトの名無しさん:2010/03/31(水) 20:48:45
pipeがやりたいならsubprocess.Popenだけど、もっとPythonicな方法がありそう

import subprocess
path = "tail -3 lazy.py"
f = subprocess.Popen(path, stdout=subprocess.PIPE).stdout
for line in f:
print line,
f.close()
381デフォルトの名無しさん:2010/03/31(水) 20:50:46
空白置換すんの忘れてた……

import subprocess
path = "tail -3 /hoge/fuga/hage.txt"
f = subprocess.Popen(path, stdout=subprocess.PIPE).stdout
for line in f:
     print line,
f.close()
382デフォルトの名無しさん:2010/03/31(水) 21:31:07
(´゚ c_,゚`)プッ
383デフォルトの名無しさん:2010/03/31(水) 23:34:05
pipe使わないならこんな感じか?

limit = 3
lis = []
for line in open('/hoge/fuga/hage.txt ', 'r'):
  if len(lis) >= limit:
    lis[:-limit+1] = []
  lis.append(line)
print ''.join(lis)
384デフォルトの名無しさん:2010/04/01(木) 01:26:32
tailは前から読み込んで捨てていくんじゃなくて、後ろから読みながら指定行をゲットしたい。
385デフォルトの名無しさん:2010/04/01(木) 01:45:36
>>383
前から全部読むにしても、せめてdeque使ったほうがいいな

file-like objectがseekableなら、
ttp://stackoverflow.com/questions/136168/get-last-n-lines-of-a-file-with-python-similar-to-tail
この辺で
386デフォルトの名無しさん:2010/04/01(木) 02:25:17
>>380
できました
ありがとうございました

subprocess.Popen で気になるのは
stdout だけ close() してるので
stdin とか stderr とかは close() 書かなくても大丈夫なのかどうかってことです
387デフォルトの名無しさん:2010/04/01(木) 02:28:50
>>378
PythonスレにPerlのコードを貼るな
汚いから誰も見たくないだろう
388デフォルトの名無しさん:2010/04/01(木) 05:01:16
正直に言うとlinux環境だとちょっとしたプログラムなら
ついperlで書いてしまうんだよ、ごめんね
389デフォルトの名無しさん:2010/04/01(木) 05:24:19
>>388
ゆる
390デフォルトの名無しさん:2010/04/01(木) 08:47:21
>>388
一人でこっそり書くなら許す
391デフォルトの名無しさん:2010/04/01(木) 12:46:13
>>388
ぜったいにゆるさない
392デフォルトの名無しさん:2010/04/01(木) 12:55:37
>>388
Perlのコードを人に見せるなんて、
おな(ryを人に見せるのと同じだ!!
393デフォルトの名無しさん:2010/04/01(木) 13:37:37
perlの様なもので殴られた後があり
394デフォルトの名無しさん:2010/04/01(木) 14:55:27
sageに入ってるpythonはデフォで色々入ってるのはいいけど
日本語通らないね
395デフォルトの名無しさん:2010/04/01(木) 15:53:18
2.4 以前は糞
396デフォルトの名無しさん:2010/04/01(木) 17:03:54
Tutorialって日本語訳として出版されたものでないと、
書籍の形にはなってないんですか?
397デフォルトの名無しさん:2010/04/01(木) 17:06:26
Pythonスレで聞くのもなんだが、LL内で1つ覚えるならPython?
Perlに劣ってることってある?
398デフォルトの名無しさん:2010/04/01(木) 17:07:13
Pythonのバイブル本って何なんですか?
Cでいうカーニハン&リッチー的な
399デフォルトの名無しさん:2010/04/01(木) 17:10:34
そんなものはねえ
400デフォルトの名無しさん:2010/04/01(木) 18:29:20
>>397
Perlキモイ、Ruby氏ねな俺でもPythonがベストとは言わない
Pythonよりも目標に向いてる言語があるならそっち使った方がよい
401デフォルトの名無しさん:2010/04/01(木) 18:30:55
>>397
起動が遅い。
Webプログラミング以外の用途も考えているのなら、
Pythonを進めるが。
402デフォルトの名無しさん:2010/04/01(木) 18:37:27
今までプログラム書いたことないなら
Perl より Python の方を薦めるよ
いきなり Perl から始めると変な癖つくからね
403デフォルトの名無しさん:2010/04/01(木) 18:50:42
まぁスクリプト言語学びたいならLinux使えよ
スペックあるならWinでもVMWare使えばいいし
404デフォルトの名無しさん:2010/04/01(木) 18:52:50
Linuxを学びたいならLinuxを学べばいいが、
スクリプト言語を学ぶのにわざわざOS環境まで用意する必要は無い。
405デフォルトの名無しさん:2010/04/01(木) 18:56:47
>>398
信者と言われそうだがはじぱいなんかそれに近いんじゃないか?
406デフォルトの名無しさん:2010/04/01(木) 18:59:15
東京キャビネットにperlとrubyのバインディングあるのにpythonがないのは何で?
LL言語間とWebプログラミングに派閥みたいなもがあるのかな?
407デフォルトの名無しさん:2010/04/01(木) 19:05:01
>>460
pytc
408デフォルトの名無しさん:2010/04/01(木) 19:10:01
>>397
1つ覚えるならPerlじゃないか?
どこのWebサーバ借りても大抵は最新のが使えるのは有りがたい。
Pythonはいまだに2.3なんてとこもある。

ただし、PythonにはGAEという無料で使える最強のサーバが存在するので、
自分で1からWebサービス作りたいとかならPythonが有利ではある。

ぶっちゃけ、1つ覚えたら他のなんてリファレンス片手に1日で使えるようになるから、
何を覚えるかなんて気にしなくていい。
409デフォルトの名無しさん:2010/04/01(木) 19:13:06
Perl Rubyはライブラリの充実度や汎用性からいってにありえないな。
日本はWebプログラミング中心に語れることがおおいから
Pythonに人気無いんだと思う。
410デフォルトの名無しさん:2010/04/01(木) 19:15:08
日本語が不自由だということはよくわかった
411デフォルトの名無しさん:2010/04/01(木) 19:15:47
Pythonに人気がないのはRubyの作者が日本人でみんなそっちに流れていくからじゃないのか
412デフォルトの名無しさん:2010/04/01(木) 19:20:03
いや日本ではWeb以外のプログラマにスクリプト言語がまだまだ普及して無いからだと思うよ。
ハード系エンジニアで面倒なときにPythonつかうことがあるんですが、
こっちの世界の人はC/C++書いてるくせにスクリプト言語といっても通じない人が多いんです。
413デフォルトの名無しさん:2010/04/01(木) 19:34:24
そういう奴らはbashすら使えないクズだろ
414デフォルトの名無しさん:2010/04/01(木) 19:37:34
まあクズだね。
自分シェルスクリプトなんてやらないけど。
VHDLとかハード記述言語は本業なので使えるけど。
415デフォルトの名無しさん:2010/04/01(木) 19:40:44
Pythonが教育で使われてるのはコードが綺麗で変な癖がないというのもあるだろうけど、
ほかのスクリプト言語が応用範囲が狭すぎるってのがでかいな。
研究用途ではPerlが一部あるけど、Rubyなんてほとんどないのでは?
PythonはPerlやRubyだけでなくてJavaなどとも競合している言語です。
Webだけで言語の優劣論はできないと思うよ。
416デフォルトの名無しさん:2010/04/01(木) 19:43:51
だからPythonもPerlもJavaも使えるようになれよ
こんな所で駄レスしてる間に覚えられるっつーの
417デフォルトの名無しさん:2010/04/01(木) 19:53:07
アプリケーションのモジュール書くという実際の要求があって
採用されてるのがPythonだった俺に選択の自由はなかった
418デフォルトの名無しさん:2010/04/01(木) 19:55:39
Pythonは研究用途でも使われてますよ
419デフォルトの名無しさん:2010/04/01(木) 19:56:54
いつも書くたびに思うがサーバーサイドのスクリプト言語の中ではPythonが1番いいよね。
420デフォルトの名無しさん:2010/04/01(木) 19:57:24
Python も Ruby もこの世に存在していなくて
HTML すら無かった時代だったから
Pascal とか C くらいしか魅力なかったな
FORTRAN や COBOL は論外
421デフォルトの名無しさん:2010/04/01(木) 20:00:06
論外と思う言語でも使わざるを得ないときもある。
大体最近の言語は文法を把握してコードがかけるようになるより、
ライブラリ把握してつかいたおうほうが時間がかかる。
422デフォルトの名無しさん:2010/04/01(木) 20:00:17
Lispでいいから
423デフォルトの名無しさん:2010/04/01(木) 20:04:51
>>416
そんなのわかった上で書いてるんだろう。
そもそもスクリプト言語なんてがんばって覚えるほどのものでもないだろう。
どうせ使うときにすぐ覚えられるんだからな。
どんな言語をつかってもだめなやつはだめ。
424デフォルトの名無しさん:2010/04/01(木) 21:43:21
dbist_wininstでつくったらしい.exeってサイレントインストールできないのかな?
install directoryも編集できないしちょっと困る
425デフォルトの名無しさん:2010/04/01(木) 21:57:29
setuptools入れて
python -m easy_install 424のexe
が一番楽だと思う。オプションである程度ディレクトリとかいじれる
426デフォルトの名無しさん:2010/04/01(木) 22:18:23
easy_installに渡すのはすごくいい案!と喜んでやってみたら
share/ にデータつくるやつとかpost_installで.bat作るやつとか(ipython)は
無視されちゃいました。
でも柔軟なアイディアをありがとう
427デフォルトの名無しさん:2010/04/01(木) 22:30:11
別にPythonのスレなんだからPythonいいよねぇ
みたいな話がでてきてもいいと思うんだが、
よくないと思ってるのに使ってる人が多いのかここは…w
初学者を追い払おうと変なやつが常駐しているみたいにみえる。
428デフォルトの名無しさん:2010/04/01(木) 22:41:40
yam install -y (python-)[hoge]の方が楽だよね
429デフォルトの名無しさん:2010/04/01(木) 22:51:05
>>426
setuptoolsはinstall_script/pre_install_scriptオプションに対応してないね
メタデータをexeに埋め込んでるけど探そうともしてないみたい
430デフォルトの名無しさん:2010/04/01(木) 23:27:20
pass
431デフォルトの名無しさん:2010/04/01(木) 23:29:02
http://github.com/reverie/autolib
これネタなのかな
発想は面白いと思うんだけどw
432デフォルトの名無しさん:2010/04/02(金) 01:46:13
Pythonの本は何が決定版なの?
433デフォルトの名無しさん:2010/04/02(金) 01:54:51
今年発売されるExpert Python Programming
434デフォルトの名無しさん:2010/04/02(金) 03:42:22
今から勉強するならPython 3がいいですよね?
でも人気のある本はだいたい2が主流で、3は2との違いを最後のほうに少し解説しているだけのようです。
どうすればいいでしょうか?
435デフォルトの名無しさん:2010/04/02(金) 03:44:38
本とか関係なしに2がいいよ
436デフォルトの名無しさん:2010/04/02(金) 05:33:55
python3は最新版じゃなくて永遠の実験場
437デフォルトの名無しさん:2010/04/02(金) 07:06:04
Google App Engineとxreaが2だからずっと2でしか書いてない
438デフォルトの名無しさん:2010/04/02(金) 07:17:18
みんなのpythonとはじめてのpythonどっちがいいですか?
439デフォルトの名無しさん:2010/04/02(金) 13:00:21
とりあえずみんなのPython買えば?
440デフォルトの名無しさん:2010/04/02(金) 13:05:57
>>438
君はみんなのPythonが似合ってると思うよ

http://twitter.com/mopemope/status/11461863638
441デフォルトの名無しさん:2010/04/02(金) 13:08:00
はじめての Python は
「初ぱい」と「恥ぱい」の二種類あるから要注意
後者は糞
442デフォルトの名無しさん:2010/04/02(金) 13:14:17
>>440
真実と嘘の区別が付かないひとは 2ch に向かない
443デフォルトの名無しさん:2010/04/02(金) 14:31:15
linuxのyum使うとwinでいちいちexe落とすの面倒になるな
もうwinのサポート切っちまうか
444デフォルトの名無しさん:2010/04/02(金) 14:39:26
どうぞどうぞ
445デフォルトの名無しさん:2010/04/02(金) 17:11:33
Macportsの壊れっぷりはなんとかならないのか
446デフォルトの名無しさん:2010/04/02(金) 21:39:43
*BSD涙目6ぷぎゃー9
447デフォルトの名無しさん:2010/04/03(土) 01:59:24
>>440
みっともねーw
448デフォルトの名無しさん:2010/04/03(土) 03:08:04
Python環境作るとき真っ先にeasy_installを入れるんだけど、
標準に入れない理由ってなんだろ。
449デフォルトの名無しさん:2010/04/03(土) 03:34:53
python自体の機能じゃないからかな
知らんけど
450デフォルトの名無しさん:2010/04/03(土) 03:57:23
>>426
きちんと調べたけどwininst-*.exeにくっつけたリソースとかは探してた
でもpre_install_script/install_scriptは呼んでない
DATA/*以下を無視してるし、eggに全部固めるというポリシーなんだと思う

>>448
setuptools/distutilsはカオスさ半端ないし、上に書いてみたいに仕様が違ったりするし
誰もやりたがらないんじゃないの
451デフォルトの名無しさん:2010/04/03(土) 10:53:05
Tarek Ziade ががんばってる。
Python 2.7 では easy_install が標準に入るはず。
しかもアンインストールもできるようになるはず。
452デフォルトの名無しさん:2010/04/03(土) 10:58:59
わあいわあい
453デフォルトの名無しさん:2010/04/03(土) 13:30:06
>Python 2.7 では easy_install が標準に入るはず。

これはどうでもいいけど

>しかもアンインストールもできるようになるはず。

こっちはありがたい
454デフォルトの名無しさん:2010/04/03(土) 16:41:52
2.7なんてあるのか
2系は2.6で終わりかと思ってた
455デフォルトの名無しさん:2010/04/03(土) 16:44:49
456デフォルトの名無しさん:2010/04/04(日) 04:50:39
>>451
easy_installを標準にするんならpypiを使い易いようにして欲しい。
457デフォルトの名無しさん:2010/04/05(月) 14:16:48
458デフォルトの名無しさん:2010/04/06(火) 19:33:05
datetime.utcnow() でつくったdatetimeを、JSTに変換して出力したいんですが
どうしたらいいでしょうか。

>>> from datetime import datetime
>>> dt = datetime.utcnow()
>>> dt.strftime('%Y-%m-%d %H:%M:%S %Z')
'2010-04-05 00:09:44 ' # JST に変換して出力したい

マニュアルよんでもわけわかめです。
459デフォルトの名無しさん:2010/04/06(火) 19:41:51
>>> from datetime import datetime
>>> dt = datetime.utcnow()
>>> tz = datetime.now() - datetime.utcnow()
>>> tz
datetime.timedelta(0, 32400)
>>> dt + tz
datetime.datetime(2010, 4, 6, 19, 40, 18, 922000)
>>> (dt + tz).strftime('%Y-%m-%d %H:%M:%S %Z')
'2010-04-06 19:40:18 '
460デフォルトの名無しさん:2010/04/06(火) 19:47:22
なんかインチキっぽいな
461デフォルトの名無しさん:2010/04/06(火) 19:55:19
大丈夫
462デフォルトの名無しさん:2010/04/06(火) 22:32:50
JSTって分かってるんだったら
datetime.timedelta(0, 60*60*9)
でいいのでは?
463デフォルトの名無しさん:2010/04/06(火) 23:31:37
そりゃそうだ
464デフォルトの名無しさん:2010/04/06(火) 23:32:46
レンサバだと datetime.now() が何返すか判らんからなwww
465デフォルトの名無しさん:2010/04/07(水) 00:16:10
サーバーサイドでユーザーのlocaleはpytzとかで自前解析だねえ
466デフォルトの名無しさん:2010/04/07(水) 06:34:07
>>458
Pythonは標準ではタイムゾーン関係のクラスが用意されていないので、
class JST(datetime.tzinfo):
def utcoffset(self,dt):
return datetime.timedelta(hours=9)
def dst(self,dt):
return datetime.timedelta(0)
def tzname(self,dt):
return "JST"
みたいに自分で定義して、datetime.astimezone(JST())でJSTにする。
467デフォルトの名無しさん:2010/04/07(水) 08:44:34
(´・ω・`)
468デフォルトの名無しさん:2010/04/07(水) 10:27:50
だれかが一覧を書いてくれればOKってこと?

サマータイムとかがうざくて面倒すぎるのかな
469デフォルトの名無しさん:2010/04/07(水) 15:20:28
PyPyってGoogleのプロジェクトだったの?知らなかった。
http://google-opensource.blogspot.com/2010/04/pypy-12-released.html
470デフォルトの名無しさん:2010/04/07(水) 15:38:30
それ読むとGoogleが金出してるみたいね
471デフォルトの名無しさん:2010/04/08(木) 12:21:50
>>458
ドキュメントに載ってたこれをコピペして
class FixedOffset(tzinfo):
"""Fixed offset in minutes east from UTC."""

def __init__(self, offset, name):
self.__offset = timedelta(minutes = offset)
self.__name = name

def utcoffset(self, dt):
return self.__offset

def tzname(self, dt):
return self.__name

def dst(self, dt):
return ZERO

JST = FixedOffset(9*60, "JST")
でいいのかな。
472デフォルトの名無しさん:2010/04/08(木) 18:07:54
>>468
ttp://www.python.jp/doc/release/lib/module-datetime.html
>世界各国における時刻の修正に関する法則は合理的というよりも政治的なものであり、全てのアプリケーションに適した標準というものが存在しないのです。

日本でも夏時間を導入するなんて議論がしょっちゅう行われているしねぇ。
今JSTを定義しても、数年後には変わっている可能性がなくもない。
473デフォルトの名無しさん:2010/04/08(木) 18:27:37
理解できない。
JSTそのものを変更するんじゃなくて、
サマータイム版の標準時(JST-SummerTime)を導入すればいいだけじゃん。

てか「規格」ってそういうもんだろ?
IPがv4からv6になるかもしれないから、
ネットワーク関連のクラス入れないよとかありえないだろ?
474デフォルトの名無しさん:2010/04/08(木) 20:02:32
>>473
っつーか日本が中共に飲み込まれたら
JST自体なくなってしまうかも試練ぞ
475デフォルトの名無しさん:2010/04/08(木) 20:27:26
>>474こういうのいらないから誰か引き取って
476デフォルトの名無しさん:2010/04/08(木) 21:04:16
いらないです(´;ω;`)
477デフォルトの名無しさん:2010/04/08(木) 21:07:23
■AA対応チェック

┏━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃   ┌───────────────┐             ┃
┃   │ .右のAAのズレない環境が標準モナ.|             ┃
┃   └──y────────────‐┘             ┃
┃  ∧_∧         |     |\|/ |     |   |   ┃
┃ ( ´∀`)         | ∧ ∧  |/⌒ヽ、| ∧_∧ | ∧∧ |   ┃
┃ (     つ          |(,,゚Д゚)||,,゚ Θ゚)|(; ´Д`)|(=゚ω゚)|   ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━┛
   |  |               コソッ|  |
   |  |∧_∧ ジー        ∧_/.|  |  __
   |_|´◛ω◛`)         .(´◛ω|_| .[lШШl]
   |  | o【◎】           (  o|  | (´◛ω◛`) ジー
   | ̄|―u'              `u. | ̄||| | | | |
   """"""""         """"""""""""""""


        ┏━┯━━━━━━━━━━━━━━━━━━━━━━━┓
  ┏━━┻━┥       _,,..                          ┃
  ┠────┤ ⊂⊃  /,' 3~~\ ⊂.⊃                        ┃
  ┗━━┳━┥..............,,,,傘傘傘::::::::傘傘傘.............       おてもと      ┃
        ┗━┷━━━━━━━━━━━━━━━━━━━━━━━┛


        ┏━┯━━━━━━━━━━━━━━━━━━━━━━━┓
  ┏━━┻━┥      (⌒-⌒)      お食事処 仔熊庵        ┃
  ┠────┤ ⊂⊃  (・(ェ)・ ) ⊂⊃                     ┃
  ┗━━┳━┥..............,,,,傘傘傘::::::::傘傘傘.............       おてもと      ┃
        ┗━┷━━━━━━━━━━━━━━━━━━━━━━━┛
478デフォルトの名無しさん:2010/04/08(木) 23:06:41
おてもと二つはきれいに揃ってるが一番上の看板は微妙にまっすぐじゃない。。。
俺の環境は標準じゃないようだ。ちなみにV2C。
479デフォルトの名無しさん:2010/04/08(木) 23:09:50
monospaceフォントにしろ
480デフォルトの名無しさん:2010/04/08(木) 23:15:29
>>478
16ptにしてもズレる?
481デフォルトの名無しさん:2010/04/08(木) 23:33:35
>>479 480
pt16だす。なんか色々試したけど揃わない
なんか線の太さが1.0だとすると0.1とか0.2とかってくらいに微妙にずれてるんだわ
内側の「標準モナ.| 」←こいつもなんか微妙にずれてるし
とりあえずスレちなんで色んな所まわって勉強してきます
ありがとん
482デフォルトの名無しさん:2010/04/08(木) 23:34:25
俺もV2Cでズレる(2ドット位だけど)
まぁスレチ
483デフォルトの名無しさん:2010/04/09(金) 04:42:59
   ┌─┐
   │●│
   └─┤
   _   ∩
  ( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘      おっぱい!おっぱい!
484デフォルトの名無しさん:2010/04/09(金) 17:22:43
Python 3 プログラミング徹底入門は評判どうなんでしょうか。
買った方いらしたらどんなもんか教えてください。
485デフォルトの名無しさん:2010/04/09(金) 17:26:13
本屋やってますが仕入れません
486デフォルトの名無しさん:2010/04/09(金) 18:45:50
OS:windows
バージョン:python3.1
標準のIDLEの使用に関して、
環境変数IDLESTARTUP(PYTHONSTARTUP)を設定していくつか初期設定を
した上で動かしたいです。
しかしながら、上記環境変数を設定して、該当ファイルを配置しても、
ファイルの中身がIDLEに反映されません。
python shellであれば、PYTHONSTARTUPのファイルの内容が反映されます。

Windows版のIDLEは何か別に設定する必要があるのでしょうか。
487デフォルトの名無しさん:2010/04/09(金) 19:10:10
この文は語学の観点から見まして非常に難解で抽象的です。
>標準のIDLEの使用に関して: IDLEの使用に関しての記載はないようです
>環境変数IDLESTARTUP(PYTHONSTARTUP): 括弧を使っての「又は・或いは」の表現は理解できません。
>初期設定をした上で: 固有名詞には独自の定義が必要です。=抽象的
>上記環境変数: そういった記載は存在しません=解釈:環境変数名と値
>該当ファイル|ファイルの中身: 文をあからさまに難解にする原因となっていると推測されます。
488デフォルトの名無しさん:2010/04/09(金) 19:18:48
どっちもどっちって感じだなw
何だよ語学的な観点って
489デフォルトの名無しさん:2010/04/09(金) 19:43:18
setup.py
490デフォルトの名無しさん:2010/04/09(金) 19:45:52
間違えた
こっち
sitecustomize.py
491デフォルトの名無しさん:2010/04/09(金) 20:37:04
>>487
センスはいいけど、それをここでいわないでくださいよ。
ていうか、そこまでやって回答なしですか?

ちなみに、
>初期設定をした上で: 固有名詞には独自の定義が必要です。=抽象的
は、抽象的じゃなくて、あえていうなら曖昧ですよ。
個体の抽象は個体のクラスと同義だからね。
492デフォルトの名無しさん:2010/04/09(金) 20:40:18
そもそも、いちいち意味論を完全にして書き込みなんかしない。
493デフォルトの名無しさん:2010/04/09(金) 21:01:28
sitecustomize.pyでググッたらわかりましたが、
これもIDLEでは反映されないです。
494デフォルトの名無しさん:2010/04/09(金) 21:06:45
idleを-sオプション付けて起動しなきゃ駄目じゃない?
495デフォルトの名無しさん:2010/04/09(金) 21:20:25
-sオプションをつけても反映されないです。

とりあえず、PyShell.pyでロードしているみたいなので、
PyShell.pyを読み解いてなんとかします。
どうもどうも。
496デフォルトの名無しさん:2010/04/09(金) 22:17:26
自分で出来ゐなら質問しないで下さい。うざいだけです。
497デフォルトの名無しさん:2010/04/10(土) 00:57:32
出来い…?
498デフォルトの名無しさん:2010/04/10(土) 01:00:42
出来ゑ
499デフォルトの名無しさん:2010/04/10(土) 09:48:52
'はじめてのpython'に書いてあったことなんだけど
res = []
for x in range(5):
 if x%2 == 0:
  for y in range(5):
   if y%2 == 1:
    res.append((x,y))

print res
//(0, 1), (0, 3), (2, 1), (2, 3), (4, 1), (4, 3)
をfilterとmap関数で表現したいのですが

print map(lambda x:map(lambda y:(x,y), filter(lambda x:x%2==1, range(5))), filter(lambda x:x%2==0, range(5)))
//[[(0, 1), (0, 3)], [(2, 1), (2, 3)], [(4, 1), (4, 3)]]
てな感じで配列具合がうまいこと出来ません。
どうしたら良いのでしょう?
500デフォルトの名無しさん:2010/04/10(土) 10:20:56
501デフォルトの名無しさん:2010/04/10(土) 10:51:45
reduce(lambda x, y: x + y, map(lambda x: map(lambda y: (x, y), range(1, 5, 2)), range(0, 5, 2)))
502デフォルトの名無しさん:2010/04/10(土) 11:06:01
非実用的な動的コードを書くのはやめて下さい。
even = filter(lambda x: x%2 == 0, range(5))
# 0-5の偶数をリストとして返します
odd = filter(lambda x:x%2==1, range(5))
# 0-5の奇数をリストとして返します
print map(lambda x:map(lambda y: (x, y), odd), even)
# これを内包表記で表現すると原因が分かります。
[[(x, y) for y in odd] for x in even]
# この場合は以下の通りに書き換えれば配列の具合が良くなります
res = []
[[res.append((x, y)) for y in odd], for x in even]
print res

# 或いは
res = []
map(lambda x:map(lambda y:res.append((x,y)), filter(lambda x:x%2==1, range(5))), filter(lambda x:x%2==0, range(5)))
503デフォルトの名無しさん:2010/04/10(土) 11:13:00
print (lambda x,y,z: '%s, %s, %s'%((lambda x,y: '%s, %s'%(x,y))(*x),(lambda x,y: '%s, %s'%(x,y))(*y),(lambda x,y: '%s, %s'%(x,y))(*z)))(*map(lambda x:map(lambda y:(x,y), filter(lambda x:x%2==1, range(5))), filter(lambda x:x%2==0, range(5))))
504デフォルトの名無しさん:2010/04/10(土) 11:16:39
わらた
505デフォルトの名無しさん:2010/04/10(土) 11:17:20
>>502
こういうのは一行に拘るから意味があるのであって
二行以上でいいなら出来るのは当たり前で楽しくない

↓以下一行野郎うぜーのレス
506デフォルトの名無しさん:2010/04/10(土) 11:18:17
どうみても、役には立たないな。
理論とは適当に折り合いをつけてプログラムしろぐらいの意味しかないだろ。
507デフォルトの名無しさん:2010/04/10(土) 11:27:45
>>505
499の質問にはそういった事は書いて居ないと言うことは
君には協調性も知性もないということだな。
そして君はここから出ていくべきだ。
508デフォルトの名無しさん:2010/04/10(土) 11:32:47
1行にまとめる場合はlambdaを使う必要はないし、むしろ使うのはタブーだ
499ならまだしも、505はPython道を理解できてないし、それかただのperl流れの初心者であると推測できる
509デフォルトの名無しさん:2010/04/10(土) 11:49:15
>>499
ようは、mapをネストするとリストのリストになってしまうわけだ。
>>501のようにreduce使えばリストに戻せるが、mapとfilterでそれをする方法は少なくとも俺は知らない。

mapのネストをしないように気をつけて書いてみたら、こういう風になった(もっといい方法求む)
つまり5進数で考えて、10(5)の位をx、1の位をyに置いた。
map(lambda x:(x//5, x%5), filter(lambda x: (x//5)%2 == 0 and (x%5)%2 == 1, range(5*5)))

ただ、pythonではmap使うくらいなら内包表記をすることが推奨されている。
それだと、回りくどい方法を考えなくても素直にこう書ける。
[(x, y) for x in range(5) for y in range(5) if x%2 == 0 if y%2 == 1]
510デフォルトの名無しさん:2010/04/10(土) 12:02:38
どう見ても内包表記向きの問題だが、それを使わないのなら
flatmapを使うのが定石
Pythonにはないけど、
flatmap = lambda f, xs: sum(map(f, xs)), [])
のように定義すればよい

flatmapを使うと、以下のようになるよ
flatmap(
  lambda x: map(lambda y: (x, y),
                filter(lambda x: x % 2 == 1, range(5))),
  filter(lambda x: x % 2 == 0, range(5)))
511デフォルトの名無しさん:2010/04/10(土) 12:03:38
ああごめん
flatmap = lambda f, xs: sum(map(f, xs), [])
こうね
512デフォルトの名無しさん:2010/04/10(土) 13:43:40
おまえらって文法で遊んでるだけじゃね?
513デフォルトの名無しさん:2010/04/10(土) 13:46:58
初心者に変なこと刷り込むわけでもないし別にいいじゃん
514デフォルトの名無しさん:2010/04/10(土) 13:47:26
失せろクズ
515デフォルトの名無しさん:2010/04/10(土) 14:07:03
>>512
Lispスレで言ってこい。
516デフォルトの名無しさん:2010/04/10(土) 14:11:28
>>512
おい
ム板の核心を突くのはよせ
517デフォルトの名無しさん:2010/04/10(土) 14:16:39
>503
518デフォルトの名無しさん:2010/04/10(土) 14:37:53
>>512
それ以外にプログラミングやる意味あるの?
519デフォルトの名無しさん:2010/04/10(土) 14:40:44
よくわかんないけど、流れで
>>512
520デフォルトの名無しさん:2010/04/10(土) 14:43:47
whenever you use python
521デフォルトの名無しさん:2010/04/10(土) 21:26:06
csvファイルを開くときに

filename=input("Open File Name? >")
x=csv.reader(open("c:\data\filename.csv"))

csvファイルは、c:\data内へ確実に置くとして任意のファイル名を入力させて認識させるにはどうすればいいかわかる方おしえて下さい。
(o_ _)o))
522デフォルトの名無しさん:2010/04/10(土) 21:31:19
open("C:/data/%s.csv" % filename, "w")
523デフォルトの名無しさん:2010/04/10(土) 21:32:08
filename=input('Open File Name? >')
x=csv.reader(open(u'c:/data/%s.csv'%unicode(filename)))

os.path.join()もある
524デフォルトの名無しさん:2010/04/10(土) 21:34:15
Open File Name?
って何語だよ
525デフォルトの名無しさん:2010/04/10(土) 21:38:16
他のスレで聞いて
526デフォルトの名無しさん:2010/04/10(土) 21:38:36
>>522
>>523
ありがとうございます。
527デフォルトの名無しさん:2010/04/10(土) 21:39:13
os.path.join() は絶対パスを優先するので os.path.basename() を通した方がいい
>>> os.path.join(r'C:\data', r'D:\data\hoge.csv')
'D:\\data\\hoge.csv'
>>> os.path.join(r'C:\data', os.path.basename(r'D:\data\hoge.csv'))
'C:\\data\\hoge.csv'
528デフォルトの名無しさん:2010/04/10(土) 21:54:57
>>527
ありがとうございます。(o_ _)o))
529499:2010/04/11(日) 00:05:39
>502
>507
すみません私の不足で誤解が生じたみたいで。
余興程度の質問でした。内包表記のほうがいいとゆうのは理解しております。
perlのTMTOWTDIに悪影響を受けている初心者なのでちょっとした好奇心でした。

>501
>509
>510
ネスト抜けるにはreduce必須だったりするんですね。
いろいろ勉強になりました。ありがとうございます。
530デフォルトの名無しさん:2010/04/11(日) 00:34:42
reduceって嫌われてる?
531デフォルトの名無しさん:2010/04/11(日) 00:41:58
マイナーだから使われてないが正確ではないかと
532デフォルトの名無しさん:2010/04/11(日) 01:10:27
>>530
>>509だが、>>499にはfilterとmapで、と書いてあったからreduce使うのを避けたが、むしろ俺は結構好き。

python3ではGuidoが「美しくない」って理由だけでfunctools送りになったらしいが、ループ回すよりずっと美しくなることだって多い。
そのまま残すか、代替の美しい表記法を作ってから削除、という形にしてほしかった。まぁ、このはなしはスレ違いだろうが。
533デフォルトの名無しさん:2010/04/11(日) 01:21:59
>>530
そんなことないんじゃないの

sum()はreduce()の劣化版みたいなもんだし、
map()もリスト一個でいいんなら
def map(f, xs): return reduce(lambda x, y: x.append(f(y)) or x, xs, [])
でreduce()から簡単に作れる

Guidoが嫌っているのは確かかもな
534デフォルトの名無しさん:2010/04/11(日) 01:38:17
関数型言語風の低レベルなビルディングブロックとしてreduceが有用なのは判るが、
Pythonとしてはより読みやすい+使いやすい高レベルな関数や機能で90%以上の需要を満たしているから、
reduceはあまり使われないし、使う場合だけfunctoolsから持ってこいという扱いをされる。
535デフォルトの名無しさん:2010/04/11(日) 01:42:58
map/reduce/filter使い出すときりがないからな
functoolsに分離したのは正解だと思う
__fuiltins__ はできるだけ綺麗な方がいいし
536デフォルトの名無しさん:2010/04/11(日) 02:52:03
pythonでLINQ使える?
537デフォルトの名無しさん:2010/04/11(日) 20:05:30
   ┌─┐
   │●│
   └─┤
   _   ∩
  ( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘      おっぱい!おっぱい!
538デフォルトの名無しさん:2010/04/11(日) 21:49:19
>>535
map, filterは内包表記に置き換え可能だよ。
ぶっちゃけ、内包表記だって、ちょっと複雑になると解読困難になる。
539デフォルトの名無しさん:2010/04/11(日) 22:28:53
ky現る
540デフォルトの名無しさん:2010/04/12(月) 00:10:55
>535
フ、フルチン?
541デフォルトの名無しさん:2010/04/12(月) 00:17:38
ちょっとわらった
542535:2010/04/12(月) 00:36:30
ホントなんでこんなタイポしたんだろう
543デフォルトの名無しさん:2010/04/12(月) 03:26:30
はるか過去のこのスレで
野太いティンポがぱいそんぽいって
誰かが言ってたのを思い出した
>>535 はそのひとか?
544デフォルトの名無しさん:2010/04/12(月) 08:17:59
みんなごめん
もうだめだ
会社の貯金も半年後には底をつく
大口の顧客がこの景気で調子悪いのが原因なんだ
みんなごめん
本当にごめん
545デフォルトの名無しさん:2010/04/12(月) 09:47:11
逝ってヨシ
546デフォルトの名無しさん:2010/04/12(月) 14:33:49
これが本とのデフォルトの名無しさん
547デフォルトの名無しさん:2010/04/12(月) 14:35:01

setup.py install
の形式でしか提供してない自分のパッケ0時あるんだけど
pypi
にした方が便利なの?
548デフォルトの名無しさん:2010/04/12(月) 15:16:02
"パッケ0時"の検索結果 1 件中 1 - 1 件目 (0.11 秒)
549デフォルトの名無しさん:2010/04/12(月) 15:51:56
パッケ0時 -> パッケージ
550デフォルトの名無しさん:2010/04/12(月) 16:13:03
テンキ0使えよ
551デフォルトの名無しさん:2010/04/12(月) 20:12:14
ああ、0とーの誤爆か。
今更気がついたw。
552デフォルトの名無しさん:2010/04/12(月) 20:43:24
テンキーなんて使わないだろ。
553デフォルトの名無しさん:2010/04/12(月) 21:11:53
よそでやれ
554デフォルトの名無しさん:2010/04/13(火) 07:33:37
上のほうのタイムゾーンの話だけど、処理を自分で作らないで
dateutil を入れてほしい(でないとすぐ「日本でしか動かない」
プログラムが量産されちゃうんだよね……)。

dateutil が標準で入っていないのは、データの更新が早すぎる
とかいう政治的な理由だったはず。
555デフォルトの名無しさん:2010/04/13(火) 08:48:38
タイムゾーンなんて、民主党が子ども手当みたいに無理矢理「来年からサマータイム導入」とか
言ったら本当に導入されちゃうくらい、不安定だからな。
標準ライブラリに入れるのは難しいだろ。

プログラマは普段からUTC使ったら良いと思うよ。
556デフォルトの名無しさん:2010/04/13(火) 09:40:10
dateutilよりpytz使おうぜ
557デフォルトの名無しさん:2010/04/13(火) 16:14:10
やっぱりwebだけはrubyにしようかね
バージョン間の互換性ないのがすごい嫌だけど
558デフォルトの名無しさん:2010/04/13(火) 16:37:36
>>557
なんで「やっぱり」になるのかさっぱり判らん。
DjangoやTG2、Kayで何か不満?
559デフォルトの名無しさん:2010/04/13(火) 17:06:02
むしろサーバー的にRubyは駄目だろ
560デフォルトの名無しさん:2010/04/13(火) 20:04:52
http://sourceforge.jp/magazine/10/04/12/0751213
easy_installが標準に入るんじゃなかったのか?
561デフォルトの名無しさん:2010/04/13(火) 20:07:31
>>560
ごめん、嘘だった。
Python3.3から標準。
それまでは、夏頃にdistutils2がリリースされて、それをインストールすると
標準ライブラリを置き換えるようになるはず。
インストーラはpipが推奨されるようになるかも。
562デフォルトの名無しさん:2010/04/13(火) 21:34:55
>>559
なんでサーバー的にダメなんだ?
563デフォルトの名無しさん:2010/04/13(火) 21:45:14
Pythonなら標準で入ってるからとかかな?
564デフォルトの名無しさん:2010/04/13(火) 22:10:55
>>562
遅いからじゃないかな
565デフォルトの名無しさん:2010/04/14(水) 14:05:19
Pythonより数倍遅いのはいただけないねえ
566デフォルトの名無しさん:2010/04/14(水) 15:18:25
Ruby はメモリも食うしな
567デフォルトの名無しさん:2010/04/14(水) 17:19:08
つーかrubyは動作が不安だろ
568デフォルトの名無しさん:2010/04/14(水) 20:51:02
あれだ
そもそもこのスレでRubyを出しちゃいけなかったと思うんだ
569デフォルトの名無しさん:2010/04/14(水) 21:57:07
python厨とruby厨が仲直りするスレって昔あったよね
570デフォルトの名無しさん:2010/04/14(水) 22:02:51
厨は天敵への偏見に使うものだと認識されているよ
日本語の基礎すら出来てないようだね
571デフォルトの名無しさん:2010/04/14(水) 22:06:04
    ヘ⌒ヽフ
   ( ・ω・) dd
   / ~つと)
572デフォルトの名無しさん:2010/04/14(水) 23:01:13
>>555
UTC使うのが当たり前なマだけしか使わないならいいんだけど、
そんなこと考えもしないバカがバカやらかすからそれじゃダメ。
ttp://www.itmedia.co.jp/news/articles/0811/19/news051.html
573デフォルトの名無しさん:2010/04/14(水) 23:03:40
>>570
使い方として間違ってない気がするが、それはこの際どうでもいい。
ネットスラングの誤用で日本語の基礎力疑われるのか。
インターネットも身近になったものだ。
574デフォルトの名無しさん:2010/04/14(水) 23:05:17
文系はこれだから
575デフォルトの名無しさん:2010/04/15(木) 11:27:06
>>561
つまりこれからはpipでパッケージ書くのが推奨ってことでいい?
576デフォルトの名無しさん:2010/04/15(木) 11:51:31
スラングこそ基礎力が試されるだろ
>>505みたいな基礎力がない奴が短縮化するとアホみたいなコードが出来る
577デフォルトの名無しさん:2010/04/15(木) 11:53:09
>>575
pip はタダのインストーラで、distutilsやsetuptoolsの置き換えではなく、
setuptoolsの中のeasy_installだけの置き換え。
パッケージ作る人が使うのは、現時点ではdistributeが推奨で、distutils2 1.0が
リリースされたらそちらが推奨になる。

現時点だと、pipだとeggをインストールできないので、eggに依存しているもの
(Tracプラグインとか)はeasy_installを使わないといけない。
なので、まだコミュニティ全体の方針としてpipが推奨されている訳はない。
pipにも良いところがあるけど、使い分けが面倒だから俺はeasy_installを使っている。
578デフォルトの名無しさん:2010/04/15(木) 21:19:53
__(ダブルアンダースコア)の名前修飾ルールについての質問です。

class Foo:
__x = 100
def func(self):
return self.__x
Foo().func() # (1)これはOK
def func(self):
return self.__x
Foo.func = func
Foo().func() # (2)これはダメ

この原因を教えて欲しいです。そもそも__xは_Foo__xという
名前に変えられてしまうのに、何故(1)のときにエラーにならないのか不明です。
クラス定義が終了した瞬間に、すべての__で始まる名前(呼出側も)書き換える、
ということなのでしょうか。
579デフォルトの名無しさん:2010/04/15(木) 21:24:17
>>578
Yes。関数名だけじゃなくて、全部の __ が置き換えられる。
でも、 __ は非推奨。 _ だけ使えば良い。
580デフォルトの名無しさん:2010/04/15(木) 21:27:33
インデントがorz
class Foo:
 __x = 100
def func(self):
 return self.__x
Foo().func() # (1)これはOK
def func(self):
 return self.__x
Foo.func = func
Foo().func() # (2)これはダメ

すみませんでした。
581デフォルトの名無しさん:2010/04/15(木) 21:31:55
>>579
ありがとうございます。__はprivate(サブクラスへの隠蔽)で、_は
protected(外部への隠蔽)として使う。また、普段はprotectedで十分なので_を使う。
ということでよろしいでしょうか。

サブクラスで自由なアトリビュートを持たせられるようにするために、
この名前修飾ルールがあるのですよね。
582デフォルトの名無しさん:2010/04/15(木) 21:35:26
>>> class Foo:
... __x = 100
... def func(self):
... return self.__x
...
>>> Foo().func()
100
>>> vars(Foo())
{}

>>> class Hage:
... def __init__(self):
... self.__x = 200
... def func(self):
... return self.__x
...
>>> Hage().func()
200
>>> vars(Hage())
{'_Hage__x': 200}

この違いは何でしょう?
583デフォルトの名無しさん:2010/04/15(木) 21:40:50
Fooの__xの方はインスタンス変数でなくてクラス変数
vars(Foo), vars(Hoge)もみるといいと思う
584581:2010/04/15(木) 21:45:21
>>582
Fooでの__xはクラスのアトリビュートでインスタンスからは間接的に参照される。
Hageでの__xはインスタンスに直接所属するアトリビュート、ですよね。

P.S.
以下のコードで呼出側も修飾されることがわかりました。
>>> class Foo:
... __x = 100
... def func(self, other):
... return other.__x
...
>>> Foo().func(Foo())
100

Pythonってよくできていますね。Javaのprivateと全く同じです。
585デフォルトの名無しさん:2010/04/15(木) 21:46:32
文系乙
586581:2010/04/15(木) 21:50:45
>>585
理系大学生です。でも物理の成績は悪いので、文系頭かもしれません。
587デフォルトの名無しさん:2010/04/16(金) 11:10:11
確か、完全に隠蔽するつもりはGuidoにはなかったよね。
隠蔽しなかったら、わかる人には便利だし、わからないのに使う人はタダのバカだから放っとけばいいって話だったかと。
588デフォルトの名無しさん:2010/04/16(金) 11:34:09
やべー
いままで自分が作ったクラスのメンバ全部 self.hoge って書いてた
これからは self._hoge を使わなきゃ
589デフォルトの名無しさん:2010/04/16(金) 18:42:08
Python 2.6.2のcsv書き出しについて質問です。

x=csv.writer(file(csvfile.csv,"wb"))としたとき
x.writerow(["あああ","いいい","ううう"])
と出力させたところ、生成されたcsvはメモ帳などで表示させればきちんと表示されているんですが
excelで表示させたところ文字化けします。
utf-8から、shift-jisで出力させる方法を教えて欲しいのですが。dialect='excel'としてもエラーを吐きます;
590デフォルトの名無しさん:2010/04/16(金) 19:42:56
x.writerow([u"あああ",u"いいい",u"ううう"])
591デフォルトの名無しさん:2010/04/16(金) 19:44:26
やってみます。ありがとうございます。
592デフォルトの名無しさん:2010/04/16(金) 19:48:19
駄目みたいです
もっと調べてみます。すみませんでした。
593デフォルトの名無しさん:2010/04/16(金) 20:08:25
u"あああ".encode('shift-jis')
594デフォルトの名無しさん:2010/04/16(金) 20:43:01
>>593
ありがとうございます。
レスに気付かないまま夢中でやってました;
いったん、unicodeでutf-8からunicodeへ変換して→encodeでunicode→shift-jisへ変換して無事に解決しました。
リスト化しているので、for文を使用し手前で変換しておいて吐き出すようにしようと思います。

>>590 >>593 ヒントありがとうございました。
595デフォルトの名無しさん:2010/04/16(金) 20:48:01
"あああ".decode('utf-8').encode('cp932')
596デフォルトの名無しさん:2010/04/16(金) 20:52:46
最近打ち合わせでは分かり切ったことは飛ばして話を進めているのに
知識として持っててあたりまえのことを質問する馬鹿が増えた
597デフォルトの名無しさん:2010/04/16(金) 21:52:39
Pythonで日本語の出力とか使うつもりなら
3.x使うか他の言語にした方がいいよ
598デフォルトの名無しさん:2010/04/16(金) 22:16:22
そんなばなな
599デフォルトの名無しさん:2010/04/16(金) 23:12:52
勉強会やるやる詐欺。
600デフォルトの名無しさん:2010/04/17(土) 01:54:13
>>594
codecsは使えない?
601デフォルトの名無しさん:2010/04/17(土) 11:07:50
>>597
同意。
2.xは本格的に文字列処理するには面倒だし、3.xでかなり変更されてるのに今更本格的に覚えるのもバカバカしいよね。
602デフォルトの名無しさん:2010/04/17(土) 11:57:50
rubyを使えば解決だね!
603デフォルトの名無しさん:2010/04/17(土) 12:30:45
>>602
うん。本格的な文字列処理とか正規表現とかやりたいんだったらruby使えばいいと思う。

エンコードの問題の他にもPythonは文字列処理のしにくさを抱えている。
rubyやらがどうなってるかは知らんが、Pythonでは文字列は変更不可能な型だから破壊的な処理ができなくて、
一文字でも変更しようと思ったらインスタンスを作り直すことになる。
604デフォルトの名無しさん:2010/04/17(土) 12:52:04
じゃあperlでいいや
605デフォルトの名無しさん:2010/04/17(土) 14:03:37
変更可能な文字列型があるのはともかく
デフォルトの文字列が変更可能なのはダメだろ……
606デフォルトの名無しさん:2010/04/17(土) 14:11:55
ruby使うぐらいならperlの方がまだマシだな
607デフォルトの名無しさん:2010/04/17(土) 14:59:11
ruby って結局 perl の汚いところと C++ の汚いところを両方引き継いでるよね www
608デフォルトの名無しさん:2010/04/17(土) 15:42:44
from ctypes import *
s = "aaaaa"
get_charptr = lambda s, pos: c_char_p(memset(s, 0, 0) + pos)
memset(get_charptr(s, 2), ord('b'), 2)
print s
# ===> aabba

まったく推奨しないが、こういう変換方法もないわけではない。
609デフォルトの名無しさん:2010/04/17(土) 16:03:03
>>608
流石にそれでctypes使うのは行き過ぎじゃないのかな
大抵arrayでいいと思う
610デフォルトの名無しさん:2010/04/17(土) 16:43:15
以下のようにlistにして変更して最後に''.joinとかはどうだろうか。
ham = list('ham')
ham[1] = 'm'
ham = ''.join(ham)
611デフォルトの名無しさん:2010/04/17(土) 17:10:32
>>609
>一文字でも変更しようと思ったらインスタンスを作り直すことになる。
への反例だろ
612デフォルトの名無しさん:2010/04/17(土) 17:13:43
>>610
それはインスタンスを作り直すことになるだろ

第一listは文字列じゃないし
613デフォルトの名無しさん:2010/04/17(土) 17:15:49
アイライクシーライク
614デフォルトの名無しさん:2010/04/17(土) 17:27:22
>>611
は?arrayってinplaceで変更できるでしょ
x = array.array('c')
x.fromstring('abcde')
x[4] = 'D'
とか
615デフォルトの名無しさん:2010/04/17(土) 18:13:08
arrayは文字列じゃない
616デフォルトの名無しさん:2010/04/17(土) 18:15:25
っつーか「インスタンスの作り直し」の意味が判ってないアホがいるなw
617デフォルトの名無しさん:2010/04/17(土) 18:15:27
ああ、Stringがimmutableな世界で、StringBuilderみたいなものも
使わない方向で考えたわけね
やっと意味分かった、すまんかった
618デフォルトの名無しさん:2010/04/17(土) 18:18:53
>>614
先生!
s が変わりません!

>>> import array
>>> s = 'hogehogefugafuga'
>>> x = array.array('c')
>>> x.fromstring(s)
>>> x[4] = 'D'
>>> x
array('c', 'hogeDogefugafuga')
>>> s
'hogehogefugafuga'
619デフォルトの名無しさん:2010/04/17(土) 18:20:13
>>618
うん、意図を誤解してた
「C風にinplaceなバイト列の編集がしたい」という話だと思っていて、
immutableなstringを「弄る」ことを本質だと思ってなかった
620デフォルトの名無しさん:2010/04/17(土) 18:23:55
>>619
先生ごめん
reload してなくて入れ違いになった
621デフォルトの名無しさん:2010/04/17(土) 21:51:30
文字列がimmutableなのは別にかまわん。
問題は、時々EUCのdecodeに失敗すること。
面倒でかなわんぜ。
622デフォルトの名無しさん:2010/04/17(土) 21:54:10
ignore指定すりゃええが
623デフォルトの名無しさん:2010/04/17(土) 21:56:07
>>621
euc_jpを使っているのなら
euc_jisx0213を使えば少しマシになるかも
624デフォルトの名無しさん:2010/04/18(日) 00:50:08
>>622
今はそうしてる。
エラーがあったかわからないのが困るが…

>>623
ありがとう。試してみるよ。
625デフォルトの名無しさん:2010/04/18(日) 02:02:18
〜が変になるね
626デフォルトの名無しさん:2010/04/18(日) 02:18:45
誰がマッピングを間違えたんだろうな
627デフォルトの名無しさん:2010/04/18(日) 02:42:56
カと力が間違われなくてよかったな
628デフォルトの名無しさん:2010/04/18(日) 14:05:07
decimalってデフォルトだと四捨五入するらしいんですが
精度を2に設定した下記の計算では切り捨てられています。
これはどういうことでしょう??本来ならDecimal("2.1")になると思うのですが・・・。

>>> import decimal
>>> decimal.getcontext().prec = 2
>>> a = decimal.Decimal(str(1.01))
>>> b = decimal.Decimal(str(1.04))
>>> a + b
Decimal("2.0")
629デフォルトの名無しさん:2010/04/18(日) 14:20:01
decimal.Decimal(str(1.01+1.04))
>Decimal("2.05")
decimal.getcontext().prec = 3
a = decimal.Decimal(str(1.01))
b = decimal.Decimal(str(1.04))
a + b
>Decimal("2.05")
630デフォルトの名無しさん:2010/04/18(日) 14:24:27
>>> decimal.getcontext()
631デフォルトの名無しさん:2010/04/18(日) 14:25:54
途中で投稿してしまったが、
python decimal 四捨五入
でGoogle検索すればデフォルトで四捨五入されるなんてことはないと分かるはず
632デフォルトの名無しさん:2010/04/18(日) 14:30:10
食いつきのいいえさだな
633デフォルトの名無しさん:2010/04/18(日) 14:32:30
食いつきのいい餌ってなんだよ
餌は生きたサメでアジでも釣るのか?
634デフォルトの名無しさん:2010/04/18(日) 14:34:58
635デフォルトの名無しさん:2010/04/18(日) 14:39:58
>>628
Pythonライブラリリファレンスのやつは読んだ?
DecimalはFAQもあるからそれ読んだほうがいいよ
636デフォルトの名無しさん:2010/04/18(日) 14:48:25
pygameの64bitピルドのパージョンはリリーズされてるんですかね?
637628:2010/04/18(日) 16:49:02
>>631
ありがとうございます。四捨五入では無いですね。
オライリーのPythonクックブックに四捨五入って記載されていたので。。。
638デフォルトの名無しさん:2010/04/18(日) 16:56:34
ひどすwww
639デフォルトの名無しさん:2010/04/18(日) 17:01:57
>>637
四捨五入されるなんてどこにも書かれてないぞwww
ttp://www.python.jp/doc/pdf/release/tut.pdf
640デフォルトの名無しさん:2010/04/18(日) 17:04:38
>>637
立ち読みすればわかるけどクックブックは初心者向けの章がごっそり削られてるから初心者は買わないほうがいい
641628:2010/04/18(日) 18:03:39
642デフォルトの名無しさん:2010/04/18(日) 21:10:09
Decimal.quantizeのオプションで指定すれば四捨五入してくれる
643628:2010/04/18(日) 22:51:21
>>641
2枚目の写真横向きで撮ればよかった。こういうセンスが足りないんだよなぁ
644デフォルトの名無しさん:2010/04/18(日) 22:56:22
は?
645デフォルトの名無しさん:2010/04/18(日) 22:59:58
pythonの公式オフ会に参加した奴いる?
646デフォルトの名無しさん:2010/04/19(月) 01:54:45
単三電池の方なら参加されたのではないでしょうか
647デフォルトの名無しさん:2010/04/19(月) 03:10:40
彼は単二電池を入れることができるまでに成長しました
648デフォルトの名無しさん:2010/04/19(月) 15:14:02
質問です
Pythonではglobal変数を関数内では更新できない
らしいことをようやくながらおぼろげに理解しました

複数の関数内にて更新すべきglobal変数を多く抱えている場合
これらの全てにglobal宣言していくしかないのでしょうか?
649デフォルトの名無しさん:2010/04/19(月) 15:15:50
うん
650デフォルトの名無しさん:2010/04/19(月) 15:23:31
>>649
そすか
こりゃ1から書き直した方が良いのかもしれん…
651デフォルトの名無しさん:2010/04/19(月) 15:37:00
module にするだけでも楽になるよ
652デフォルトの名無しさん:2010/04/19(月) 16:12:17
そういう場合は自分はまとめてクラスにしてしまう。

けど何か負けたような気がするのも確か。
653デフォルトの名無しさん:2010/04/19(月) 17:14:00
辞書にすればいいんじゃね?
辞書をグローバルに置くと、辞書そのものは変更できないけど
要素は(グローバル宣言しなくても)好き勝手に変更出来る。
654デフォルトの名無しさん:2010/04/19(月) 17:24:03
なんのためのクラスだよ
静的クラス使えばよし
655デフォルトの名無しさん:2010/04/19(月) 17:44:47
静的クラスってなんだよ
monostateパターンのことか?
656デフォルトの名無しさん:2010/04/19(月) 17:49:08
クラス変数と静的メソッドを併用しろってことでhそ
657デフォルトの名無しさん:2010/04/19(月) 17:55:22
で、そのクラス変数をglobalに置いて(ry
658デフォルトの名無しさん:2010/04/19(月) 17:57:05
マジレスすると
globals.py
とかを作ってそこに全部global変数書く

他のコードから使うときは
import globalsして、
全部
globals.foo
でいい
global文要らなくなる
659デフォルトの名無しさん:2010/04/19(月) 18:10:40
今は角電池くらいがちょうどいいです。
660デフォルトの名無しさん:2010/04/19(月) 18:16:07
>>658
正解
661デフォルトの名無しさん:2010/04/19(月) 18:25:21
昔は電池と言っただけでこのスレがあっというまに埋まったのに
662デフォルトの名無しさん:2010/04/19(月) 18:46:19
突拍子もないセンスもないので廃れました
663デフォルトの名無しさん:2010/04/19(月) 18:49:42
ぼるたんの電池おっきいです。
664デフォルトの名無しさん:2010/04/20(火) 00:12:00
ぼるたん?
665デフォルトの名無しさん:2010/04/20(火) 00:17:13
>>658
別ファイルに隔離することも目的の一つならいいんだけど、そうでないなら
globals()['foo']
でよくね?
666デフォルトの名無しさん:2010/04/20(火) 00:33:45
>>665
毎回そんな風にタイプしたくないべ
667デフォルトの名無しさん:2010/04/20(火) 01:03:14
>>666
g = globals()
g['foo'] = 'foooo'
print foo
# ==> foooo
668デフォルトの名無しさん:2010/04/20(火) 02:03:10
>>658
pylonsのg.(グローバル変数),h.(ヘルパー関数),c.(コンテキスト)みたいな使い方だろ。
こんな感じだったっけ。

globals.py:
class Globals: a = 1
g = Globals()


app.py:
from globals import g

g.b = 2

def hoge():
    print g.a, g.b
    g.c = g.a + g.b
    g.a = 4

hoge()
print g.a, g.b, g.c

グローバル変数を余所で書き換えたり、定義するのはアレだが例なので。
実際のg.はグローバル定数として使って、リクエスト毎にc.(コンテキスト)を処理していく感じ。
669デフォルトの名無しさん:2010/04/20(火) 10:48:27
XMLを処理するには何がお勧めでしょうか? 色々と選択肢があって
迷います。 使い方としてはデータモデルを定義したXML(たぶんW3C XML Schema)を
読み込み、そのツリーを辿りながらテンプレートエンジンCheetahを使って
コード生成するという考えでいます。

選択肢としてはlxmlとElementTreeがあるように思えますが、他にもありますでしょうか? 
使っているのはPython 2.4なのですが、ElementTreeは2.5で標準装備になったという事で、
これがベストだと判断されたという事でしょうか?
670デフォルトの名無しさん:2010/04/20(火) 11:01:50
せやで!
671デフォルトの名無しさん:2010/04/20(火) 11:24:00
ElementTree は小さすぎるので、自分は全部 lxml だけれど、
ElementTree で処理がすむならそれでいいと思う。
速度や機能が不足したら lxml を入れれば、移行は大して
手間がかからないし。
672669:2010/04/20(火) 11:33:08
>>671
なるほど。 ということはElementTreeはlxmlのサブセットという理解で
いいのですね。 
673669:2010/04/20(火) 11:53:32
>>671
ちなみにRPMパッケージでもないかなと探し始めたらlibxml2ライブラリに付属するPython
バインディングでlibxml2-pythonというパッケージがインスコされている事に気づきました。

これはあまり主流ではないのでしょうか? 
674デフォルトの名無しさん:2010/04/20(火) 12:41:25
yaml使えや
675デフォルトの名無しさん:2010/04/20(火) 15:43:32
Yaml知りませんでした。 参考にさせていただきます。
676デフォルトの名無しさん:2010/04/20(火) 16:08:02
>>669
amara Gnosis_Util

Cheetahは今時ありえない。spitfireなりchameleon.genshiなり使ったほうがいいかと
677デフォルトの名無しさん:2010/04/20(火) 16:48:54
>>676
>amara
っげ、また選択肢が(汗)

> Gnosis_Util
あの、ググったら3ヒットだったんですがw これ全部ネタじゃないでしょうね?

>Cheetahは今時ありえない。spitfireなりchameleon.genshiなり使ったほうがいいかと

そうだったんですか! いや、それぞれのサイトを見てると流行り廃りの実感は良く分かりませんね.
Cheetahは今でもある程度頻繁にアップデートされているので廃っているとは感じませんでした。
テンプレートの文法のコンパクトさが気に入ってたのですが。

薦められた他のも検討してみます。
678デフォルトの名無しさん:2010/04/20(火) 17:21:51
日本語のみ検索でググるとは言わんだろ
679677:2010/04/20(火) 17:44:41
>>677
あ、Gnosis-utilsで沢山ヒットしましたw。 英語環境でwww.google.comで
ググってますがgnosis_utilは本当に3ヒット。 
680デフォルトの名無しさん:2010/04/20(火) 17:54:05
アンダーバーの意味はモジュール名だろ
というかそれをスペースで区切って検索するのが普通だろ
681デフォルトの名無しさん:2010/04/20(火) 18:36:06
648です。一応事後報告だけ
モジュールでどうにかしようとするもダメ
リストや辞書なら行けそうとあたりを付けたがダメ
モジュールに辞書置いてどうにか動きましたとさ

もっと早くここに戻ってれば良かったorz
参考意見を見ながらもうちょっと色々試してみます
どもでした
682デフォルトの名無しさん:2010/04/20(火) 18:49:25
>>681
クラス使えって散々いわれてるだろ。

class Foo: pass
Foo.bar = 1
Foo.baz = 2

これなら用途ごとに分けられるし、スタティックメソッドで処理書けたりと便利。
683デフォルトの名無しさん:2010/04/20(火) 23:25:46
過去のスレも見てればわかるが
時期によっては変なレスつける奴が多い
グローバル変数にglobalsだとか辞書だとかなんて初めて聞いたわ
684デフォルトの名無しさん:2010/04/20(火) 23:30:10
誰にでも初めてはあるさ
少しずつ成長していこう
685デフォルトの名無しさん:2010/04/20(火) 23:42:37
>>683
class使えってのはもう出てたから、別のを出したまでだ。
686デフォルトの名無しさん:2010/04/21(水) 01:49:38
There's more than one way to do it!
687デフォルトの名無しさん:2010/04/21(水) 06:51:25
more than one way ということは 1 つとは限らないから
There's じゃなくて There are じゃないのかな
688669:2010/04/21(水) 08:31:56
>>676
結論としてはお勧め頂いたパッケージはどれも2年ほどアップデートがされておらず、
半死亡状態と判断しました。 今のところドキュメントも整っており、最近もリリースが
行われているlxml+Cheetahで行こうと思います.
689デフォルトの名無しさん:2010/04/21(水) 09:52:30
過去のスレ読んでない奴は初心者スレ行けってことですね
690デフォルトの名無しさん:2010/04/21(水) 20:54:04
691デフォルトの名無しさん:2010/04/21(水) 21:05:54
There's なのは知ってるんだけど
文法上なんでそうなるのってことだろう

>>687
http://q.hatena.ne.jp/1183288572
http://www.biseisha.co.jp/lab/lab1/24.html
692デフォルトの名無しさん:2010/04/21(水) 21:08:21
不可算名詞じゃね?
693デフォルトの名無しさん:2010/04/21(水) 22:47:36
one way って数えてるんですけど
694デフォルトの名無しさん:2010/04/21(水) 22:49:53
one wayは色んな道って意味だろ
まさかoneを1と解釈してる訳じゃないだろうな?
695デフォルトの名無しさん:2010/04/21(水) 22:50:44
http://en.wikipedia.org/wiki/There's_more_than_one_way_to_do_it
696695:2010/04/21(水) 22:51:57
すまん、既出だったな
697デフォルトの名無しさん:2010/04/21(水) 22:57:44
>>691
勉強になりました
ありがとうございました
698デフォルトの名無しさん:2010/04/21(水) 23:01:26
699デフォルトの名無しさん:2010/04/24(土) 10:06:43
組込言語として使う場合なんだけど、
C++のクラスとかをPython側
に公開するのに
オススメなバインダーとかありますか?
700デフォルトの名無しさん:2010/04/24(土) 10:36:05
ctypes
swig
cython
701デフォルトの名無しさん:2010/04/24(土) 10:47:43
>>699
boost.python
702デフォルトの名無しさん:2010/04/24(土) 10:49:11
ExtensionじゃなくてEmbeddingだよね
boost.pythonがいいんじゃないの
ttp://wiki.python.org/moin/boost.python/EmbeddingPython
703702:2010/04/24(土) 10:50:06
かぶった
704デフォルトの名無しさん:2010/04/24(土) 12:26:44
>>700-702
さんくす
boost.pythonすごいですね これ使ってみます
705デフォルトの名無しさん:2010/04/24(土) 12:58:17
みんなのPythonのWebアプリ編って2.6でも大丈夫でしょうか?
706デフォルトの名無しさん:2010/04/24(土) 14:17:44
ok
707デフォルトの名無しさん:2010/04/24(土) 22:50:02
http://www.python.org/dev/peps/pep-3146/
これCPythonが大量にメモリーを食うようになるということ?
708デフォルトの名無しさん:2010/04/24(土) 22:52:25
今時メモリ使用量を気にするようなやつはクソか鯖缶のヘタレ野郎だけだ。
709デフォルトの名無しさん:2010/04/24(土) 22:58:19
なるほど、おれがメモリ使用量を気にする理由がわかった
710デフォルトの名無しさん:2010/04/24(土) 23:28:08
バイナリでかすぎだろ>>Unladen Swallow
711デフォルトの名無しさん:2010/04/24(土) 23:34:26
>>710
LLVMがでかいんじゃないの?
712デフォルトの名無しさん:2010/04/25(日) 00:25:42
>>711
そうらしいけどpy2exeとかで配布しにくくなるなあ
713デフォルトの名無しさん:2010/04/25(日) 00:29:02
今時ファイル容量を気にするような
714デフォルトの名無しさん:2010/04/25(日) 11:00:55
なんか実行速度が1.N倍程度のオーダーなのに
バイナリが10倍オーダー、起動時間も遅くなるってシロモノに見えるのは
気のせいか
715デフォルトの名無しさん:2010/04/25(日) 12:01:47
ベイジアンフィルタが酷いことになってるなww

将来性はあるのかもしれないが、少なくとも現状では入れる価値があるようには見えない。
716デフォルトの名無しさん:2010/04/25(日) 12:28:50
PyPyの方が速いね
http://speed.pypy.org/overview/
717デフォルトの名無しさん:2010/04/27(火) 15:16:22
>>710,714
生成バイナリの大きさとかどれぐらいの速度向上したとか詳細を教えていただけると
もう足を向けて寝たりしません。お願いします。
718デフォルトの名無しさん:2010/04/27(火) 15:39:34
psycoで十分な気がしますわ
719デフォルトの名無しさん:2010/04/27(火) 15:42:26
PyPyとかPsycoとか仕事でも使う?
客先に納品するような商品に普通に使われているものだろうか
720デフォルトの名無しさん:2010/04/27(火) 17:53:01
>>719
youtubeはpsycoを使っている
721デフォルトの名無しさん:2010/04/27(火) 20:20:22
>>719
組み込みLinuxのビルドツール、bitbakeはPythonで書かれててPsycoを使っている。
商品自体に組み込む訳ではないが. 
722デフォルトの名無しさん:2010/04/27(火) 23:21:25
a.pyをダブルクリックして直接起動させると普通に動作しますが
PyRun_SimpleFileなどで起動させようとすると動作しません
直接起動とプログラムで関数から起動させるのとではどう違うのでしょう
723デフォルトの名無しさん:2010/04/28(水) 00:38:21
Pythonでオブジェクト指向とWEB関係のプログラミングの勉強をしたいんですけど
その辺が解説してあるpythonの書籍ありますか?Cは一通りやりました
724デフォルトの名無しさん:2010/04/28(水) 01:11:44
>>722
Pythonのソース落としてみたほうが早いんじゃない
main.cとpythonrun.c
main.cでやっている仕事のどれかが、a.pyにとって必要なんでしょ
725デフォルトの名無しさん:2010/04/28(水) 01:20:22
>Pythonでオブジェクト指向
その意気はいいんだけど、動的型付の言語だとカプセル化や多態性(ポリモーフィズム)のメリットが見えづらいような気がするんだ。
そういう部分はJavaあたりで補習しといた方がいいかもしれない。
726デフォルトの名無しさん:2010/04/28(水) 01:22:26
>>725
カプセル化はともかく、ダックタイピングは十分過ぎるほど多態だと思う

ま、「OO学びたい」が主要な動機なら、俺もPythonが最適だとは思わんけど
マルチパラダイム言語だしね
727デフォルトの名無しさん:2010/04/28(水) 01:28:56
確かにダックタイピングは多態だけど、制限のない多態だけ見て多態性の本質が理解出来るとは思えないな。
728デフォルトの名無しさん:2010/04/28(水) 01:33:49
>>727
「多態性の本質」って何?

「継承を使って実行時ポリモーフィズムを実現している言語が
たまたま多い」という以上の意味が俺には見えないけど
729デフォルトの名無しさん:2010/04/28(水) 03:31:55
Smalltalk勉強しとけよ
ifとか大昔に見たときに感動した
730デフォルトの名無しさん:2010/04/28(水) 05:27:59
本屋でPythonの初心者向けの新しい本見掛けたんですが、評判はどうなん?
タイトル忘れた・・・「○○○○Python」だったとおも。
ぱらっと見た感じだと悪くなさげだったけど。
731デフォルトの名無しさん:2010/04/28(水) 05:29:10
pythonスタートブックだった・・・
732デフォルトの名無しさん:2010/04/28(水) 10:38:43
Pythonの本全般は全部ダメって頭に入れとけよ
あとPythonはネットの社会主義前線にある言語だから調べればどうにでもなる
まぁ強いていうならオススメの本は英語の参考書かな。
733デフォルトの名無しさん:2010/04/28(水) 10:59:27
勉強会詐欺の人って最近何してるの?
734デフォルトの名無しさん:2010/04/28(水) 11:24:13
Pythonなんて入門書必要ないだろ
公式チュートリアルで理解できないなら
時間の無駄だからプログラミング自体やめればいいよ
735デフォルトの名無しさん:2010/04/28(水) 12:06:14
>>734
素朴な疑問。お前なんでここにいんの?
736デフォルトの名無しさん:2010/04/28(水) 12:39:35
勉強会詐欺・・・
737デフォルトの名無しさん:2010/04/28(水) 13:01:40
下手の横好きもいるだろうから
俺は時間の無駄だと思わないけどな。
738デフォルトの名無しさん:2010/04/28(水) 13:04:47
>>735
他に居場所がないんだ、そっとしておいてやれ。
739デフォルトの名無しさん:2010/04/28(水) 13:08:47
初心者どうこうの話はくだすれでやればいいのに
740デフォルトの名無しさん:2010/04/28(水) 13:29:58
>>739
ここって隔離スレじゃなかったの?
くだスレのほうが技術的な内容話してるけど
741デフォルトの名無しさん:2010/04/28(水) 13:33:07
レベルの低いスレですね(^ω^)
742デフォルトの名無しさん:2010/04/28(水) 13:56:50
信者がウザイ初めてのPythonもDive into Pythonも,古いという悪評があるよね。
743デフォルトの名無しさん:2010/04/28(水) 14:14:03
最近もちょっとした騒ぎになってるね

Dive Into Python Must Die
ttp://oppugn.us/posts/1272050135.html

作者の反論、というかコメント
MarkPilgrim comments on Dive Into Python Must Die
ttp://www.reddit.com/r/programming/comments/bv9gt/dive_into_python_must_die/c0oqask
744デフォルトの名無しさん:2010/04/28(水) 14:31:15
Guidoは恥パイが嫌いらしいな
745デフォルトの名無しさん:2010/04/28(水) 14:35:19
なんか見たことあるURLだと思ったらこの人か
746デフォルトの名無しさん:2010/04/28(水) 15:23:45
キモオタ信者涙目(ww
747デフォルトの名無しさん:2010/04/28(水) 16:02:46
>>743
下のコメントでDive into Pythonの人とA Byte of Pythonの人が揃って
Python3誰も使ってねえ誰も気にしちゃいねえってしょんぼりしてるのが気になった
そこまでひどい状況なんだろうか

Zedはどうでもよかった
748デフォルトの名無しさん:2010/04/28(水) 16:14:56
3のメリットがいまいち分からんです
749デフォルトの名無しさん:2010/04/28(水) 16:16:35
Zedさんも今、入門書を書いてるところなんだね
Learn Python The Hard Way
ttp://learnpythonthehardway.com/home

練習問題中心、読者参加型の本になるみたい
750デフォルトの名無しさん:2010/04/28(水) 16:36:07
俺的Py3k
printが関数になります
execが関数になります
unicode文字列が標準です
終わり
751デフォルトの名無しさん:2010/04/28(水) 16:55:25
>>740
アンチすれが一番よかったと感じる
752デフォルトの名無しさん:2010/04/28(水) 17:01:10
>>749
5、13章、あとがきがいいね。タイトルも好みだ
今後も中の人のやる気が続けばいいけどw
753デフォルトの名無しさん:2010/04/28(水) 17:08:29
webの情報で〜とか言ってる人はドグラマグラを青空文庫から読んだりするのかな
インデックスから目的の項目に飛べるのは良いけど、本とは区別されるべきだろ
754デフォルトの名無しさん:2010/04/28(水) 17:14:16
debianとかcygwinとか、まだ2.5なんだよな
これが2.6になったら、少しずつ移行作業をはじめようかと思うけど
ipythonだのnumpyだのPILだの、どっちみちまだまだ未対応の奴が多すぎ
755デフォルトの名無しさん:2010/04/28(水) 17:56:39
変わり者の意見を本気にする奴は痛い目を見て当然。
756デフォルトの名無しさん:2010/04/28(水) 18:03:09
lxmlは3に対応してた
757デフォルトの名無しさん:2010/04/28(水) 18:27:24
誰かBeautifulSoupをバージョンアップしろよ。
はくしろよぼけ。
758デフォルトの名無しさん:2010/04/29(木) 01:55:47
僕の肛門に単三電池入れてくれれば
BeautifulSoupバージョンアップを対応考えてもらってもいいよ
759デフォルトの名無しさん:2010/04/29(木) 02:19:51
http://www.dotup.org/uploda/www.dotup.org846936.jpg…@
http://www.dotup.org/uploda/www.dotup.org846937.jpg…A
http://www.dotup.org/uploda/www.dotup.org846953.jpg…B
原点にピボットがある@をY軸回りに90度回転させると
Aのように移動の値はズレずに回転の値だけ変わってしまいます。
座標変換を行うことで、移動の値をBのようにしたいのですが
その変換公式など教えて頂けたら大変喜ばしいです。お願い致します。
760デフォルトの名無しさん:2010/04/29(木) 02:24:59
>>759
少し前に別のスレで見たけど、なんでPythonのスレにまで来てるんだw
761デフォルトの名無しさん:2010/04/29(木) 02:52:30
どうして良いのか本当に何も分からないもので…
762デフォルトの名無しさん:2010/04/29(木) 03:30:22
> 誰かBeautifulSoupをバージョンアップしろよ。
自分でできるだろうそれぐらい
763デフォルトの名無しさん:2010/04/29(木) 06:31:09
移動ベクトルx回転行列
764デフォルトの名無しさん:2010/04/29(木) 09:52:25
(cosθ, -sinθ, 0)
(sinθ, cosθ, 0)
(0, 0, 1)
765デフォルトの名無しさん:2010/04/29(木) 10:31:16
勉強会詐欺の人は元気なのかな。
766デフォルトの名無しさん:2010/04/29(木) 12:44:26
詐欺詐欺
767デフォルトの名無しさん:2010/04/29(木) 12:50:38
pass
768デフォルトの名無しさん:2010/04/29(木) 14:00:16
>>757
あるにはあるっぽいよ。
769デフォルトの名無しさん:2010/04/29(木) 14:53:53
soupとかいいからlxml入れて
770デフォルトの名無しさん:2010/04/29(木) 15:10:19
9*9の盤を二次元配列とみなして
二点間a(x0 , y0) b(x1 , y1)
ab線上の座標をすべて変数cに置き換える
できる矩形内を全て変数cに置き換える
という作業をしたいです
そういう関数があるなら誘導などお願いします
771デフォルトの名無しさん:2010/04/29(木) 15:20:34
>ab線上の座標をすべて変数cに置き換える

どうとでもとれる
もう少し具体的に

>できる矩形内を全て変数cに置き換える

辺は含むのか?
772デフォルトの名無しさん:2010/04/29(木) 15:27:24
>ab線上の座標
では縦、横およびy=±0.5xの45度系(?)、の三種類

>辺は含むのか?
含みます

な感じでお願いします
773デフォルトの名無しさん:2010/04/29(木) 15:31:21
>>770
そういう関数は作らないとない。
774デフォルトの名無しさん:2010/04/29(木) 15:36:52
>すべて変数cに置き換える
というのがよくわからんのだが、リストかイテレータでもつくって列挙出来るようにしろってことか?
775デフォルトの名無しさん:2010/04/29(木) 15:47:06
>>773
そうですか
こりゃ自分で頑張るしかないんですかね

>>774
□□□□
□□□□
□□□□
□□□□

□□□□
□□□●
□□●□
□●□□
もしくは
□□□□
□●●●
□●●●
□●●●
こんな感じにしたいです
776デフォルトの名無しさん:2010/04/29(木) 15:57:25
関係のない話題は無視な
777デフォルトの名無しさん:2010/04/29(木) 16:13:54
>>776
アルゴリズムの話ってスレチなんだっけ?
宿題スレとか?
778デフォルトの名無しさん:2010/04/29(木) 16:21:08
>>776
スレチだったら申し訳ない
勉強って書いてるんでてっきりそういうスレなんだと
自作しろってことなんで以後ROMります

ちなみにここは何を語り合うスレという認識で?
779デフォルトの名無しさん:2010/04/29(木) 16:26:03
このスレは超排他的だよ。俺が前書き込んだ時もくだすれ行けとかなんとか
780デフォルトの名無しさん:2010/04/29(木) 16:29:40
テンプレにその辺きっちり書けば良いんじゃ?
781デフォルトの名無しさん:2010/04/29(木) 17:08:59
>>770
((min(x0, x1), min(y0, y1)), (max(x0, x1), max(y0, y1)))の矩形にcをセットするだけじゃん?
782デフォルトの名無しさん:2010/04/29(木) 17:25:39
アルゴリズムの話はPythonと関係ねぇーよ
783デフォルトの名無しさん:2010/04/29(木) 17:26:29
pass
784デフォルトの名無しさん:2010/04/29(木) 17:30:46
numpyのhogeって関数使えばいいって回答期待したらそれは別にここで良いんじゃないの?
785デフォルトの名無しさん:2010/04/29(木) 17:43:47
>>781
ありがとうございます。参考にします
786デフォルトの名無しさん:2010/04/29(木) 18:30:06
>>784
そういう線で行くと、numpyのclip使えるかもね。
787デフォルトの名無しさん:2010/04/29(木) 19:54:23
>>786
了解です
まずはnumpyの情報仕入れてきます
788デフォルトの名無しさん:2010/04/29(木) 21:38:03
勉強会詐欺はPythonに関係ありますか?
789デフォルトの名無しさん:2010/04/29(木) 22:30:25
勉強会詐欺ってなに?
790デフォルトの名無しさん:2010/04/30(金) 02:26:39
>>789
rubyのやつじゃね?
791デフォルトの名無しさん:2010/04/30(金) 12:35:40
pass
792デフォルトの名無しさん:2010/04/30(金) 12:51:06
ruby厨がまた荒らしてるのか
793デフォルトの名無しさん:2010/04/30(金) 19:57:30
>>792
単三電池厨の間違いだな。
794デフォルトの名無しさん:2010/04/30(金) 20:02:14
単三電池とはずいぶん丸くなったもんだな(形状的な意味で)
795デフォルトの名無しさん:2010/04/30(金) 20:06:37
pass
796デフォルトの名無しさん:2010/04/30(金) 22:43:43
バッテリ付属を体で実践するとは、本気の詐欺師ですね。
797デフォルトの名無しさん:2010/05/01(土) 00:17:14
文字コードをUTF-8にして[print u"こんにちは"」とうっても
SyntaxError: (unicode error) 'utf8' codec can't decode byte 0x82 in position 0: unexpected code
とでてユニコード文字列が表示されませんなぜでしょうか?
798デフォルトの名無しさん:2010/05/01(土) 00:28:03
Shift_JISでソースコード保存したからだろ
799デフォルトの名無しさん:2010/05/01(土) 01:39:53
今時ShiftJISなんて使ってんの?
800デフォルトの名無しさん:2010/05/01(土) 02:59:38
ShiftJISが許されるのは小学生までだよねー
801デフォルトの名無しさん:2010/05/01(土) 03:59:00
>>797
必ず誤解するひとがいるんだけど
文字コードのUTF-8と
print u"ほげ" のUNICODEは
イコールではない
802デフォルトの名無しさん:2010/05/01(土) 05:26:29
u"" なんか使うくらいなら、3.0使え
803デフォルトの名無しさん:2010/05/01(土) 06:33:48
>>802
短絡的で思慮の足りないレスすんなよ
804デフォルトの名無しさん:2010/05/01(土) 10:42:02
pass
805デフォルトの名無しさん:2010/05/01(土) 11:24:22
>>801
はあ???
806デフォルトの名無しさん:2010/05/01(土) 11:32:10
PythonではShift_JISなんて書かないぞ。
CP932だ。
厳密に言うと少し差異はあるけどな。
807デフォルトの名無しさん:2010/05/01(土) 11:33:37
>>805
え?知らなかったの?

unicode型の内部実装はUTF-16だが、内部実装の話はさておき
str型は(UTF-8なりなんなり、対応するcodecで書かれた)バイト列で、
unicodeはユニコード文字の集合。

lenとか使ってみたら違いが分かる。
808デフォルトの名無しさん:2010/05/01(土) 11:34:43
>>806
PythonでもShift_JISはコーデックとして用意されてるよ。ちゃんとCP932とは別の物として。
けれど逆に混乱招いてるだけな気がしなくもない。
809デフォルトの名無しさん:2010/05/01(土) 11:49:07
>>807
UCS-4でコンパイルするオプションがあるぞ
810デフォルトの名無しさん:2010/05/01(土) 12:10:58
>>808
そもそもShift-JISにMSが拡張したものがcp932なので、
混乱を招いているとしたらそれはPythonではなくて機種依存拡張文字を追加したMSの責任。

たとえば、@はShift-JISでは使えなくて、cp932では使える。
811デフォルトの名無しさん:2010/05/01(土) 12:49:49
>>810
全角丸数字や全角ローマ数字がこの世から消えてほしいと願うばかり。
こいつらのせいで、組版で余計な気を使わないといけない。
812デフォルトの名無しさん:2010/05/01(土) 15:05:55
>>810
そうなんだけど、cp932じゃダメでsjisを使う必要があるときなんてあんまりないのだから、
Shift_JISはcp932の別名にして、本来のShift_JISはShift_JIS_strictとかなんとか別名つけてくれた方がよかったかも。

>>809
だから、内部表現は別にどうでもいいんだって。なんなら、UTF-8でもいいし、できるもんならsjisでもいい。
内部表現に関わらず、strとunicodeは全くの別物。
813デフォルトの名無しさん:2010/05/01(土) 15:30:57
>>807
unicode型がUTF-16としてサロゲートペアの処理をするようになったのはいつ頃からだ?
814デフォルトの名無しさん:2010/05/01(土) 15:52:20
>>812
IAEAで名前が定義されているんだから、普段使う使わないを元に勝手に命名を弄る方が
余計混乱すると思うよ。
815デフォルトの名無しさん:2010/05/01(土) 16:22:45
いい加減すれ違いだけど
HTMLでcharset=Shift_JISって書いてあるのは見ても
charset=cp932って書いてあるのは見たことがないな
816デフォルトの名無しさん:2010/05/01(土) 16:35:59
IAEAじゃ国際原子力機関になってまうがな
http://ja.wikipedia.org/wiki/IANA
817デフォルトの名無しさん:2010/05/01(土) 16:46:21
>>815
俺が利用しているカード会社の利用明細確認ページが、
昔charset=cp932だった(今はutf-8)。
818デフォルトの名無しさん:2010/05/01(土) 17:25:03
>>798
違うだろwww
coding: utf-8を書いてない。
819デフォルトの名無しさん:2010/05/01(土) 17:41:39
>>818
utf-8でdecodeしようとしてエラーになっているから、
ソースに # coding: utf-8 のような記述があるか、もしくは
defaultencodingがutf-8に設定されている。

「こ」はsjisで \x82\xb1 なのだが、
0バイト目の\x82をutf-8でdecodeできないと言っているので、
ソースコードがsjisになっている可能性が高い。

というわけだワトソン君。
820デフォルトの名無しさん:2010/05/01(土) 18:00:48
>>815
そりゃcp932なんて名前はIANA文字集合に定義されてないからな
Windows-31Jが正しい
もっともWidows-31Jの意味でShift_JISが使われていることが大半だが

ttp://www.iana.org/assignments/character-sets
821デフォルトの名無しさん:2010/05/01(土) 21:04:47
>>820

>>814 への皮肉だったんだが
822デフォルトの名無しさん:2010/05/01(土) 21:07:33
ああそうか、そりゃすまんかったw
823814:2010/05/01(土) 21:49:48
悪い、いろんな意味でダメダメだな。
Pythonのcodec名がIANAで定義されている名前にしているという意味じゃなくて、
IANAで定義済みの名前に別の文字コードを割り当てないという意味だったんだ。

http://docs.python.org/library/codecs.html#standard-encodings
ここ見たら判るとおり、Windows系はcpXXXで統一されてる。
824デフォルトの名無しさん:2010/05/01(土) 22:00:29
つまり >>814 == >>805
825デフォルトの名無しさん:2010/05/01(土) 22:52:00
pass
826814:2010/05/01(土) 23:33:10
>>824
いや、 >>805 は知らない
827デフォルトの名無しさん:2010/05/02(日) 01:20:36
くだらんことでPythonに対する
意味の分からんレスをするなら
みんなで単三電池をアナルに挿入しようぜ!
828デフォルトの名無しさん:2010/05/02(日) 06:09:07
そうだ!
勉強会詐欺でもいいから、みんなで集まって寂しい気持ちを紛らわそうぜ!
829デフォルトの名無しさん:2010/05/02(日) 10:02:47
PloneとかZopeとか、表現しづらいがそこらへんは近づき辛いものがあるな
830デフォルトの名無しさん:2010/05/02(日) 10:23:10
「コミュニティ」とか痛いだけだっつーの
831デフォルトの名無しさん:2010/05/02(日) 10:35:37
初心者お断り、経験者でも顔知らない人はお断りだからねえ
それとたまにMLで質問者を叩いてたりしてたし、
ここで変に煽ったこと書いている人たちはそこら界隈の人らじゃないかと思ってしまう
832デフォルトの名無しさん:2010/05/02(日) 14:42:11
むしろ叩かれた人たちじゃね?
833デフォルトの名無しさん:2010/05/02(日) 15:16:20
pylabの作成したepsがtype3フォントを含んでて
texにうまく貼れない
834デフォルトの名無しさん:2010/05/02(日) 16:44:53
モジュールのせいにするな、お前のコーディング能力が低いんだ。
835833:2010/05/02(日) 17:02:21
答えはまだか?
836デフォルトの名無しさん:2010/05/02(日) 17:33:12
staticmethodとclassmethodの違いってなんでしょうか?
837デフォルトの名無しさん:2010/05/02(日) 17:44:22
instancemethod 対象としてのインスタンスを引数にとる。
classmethod 対象としてのクラスを引数にとる。
staticmethod 対象がないので引数なし。
838デフォルトの名無しさん:2010/05/02(日) 18:04:03
なるほど
839デフォルトの名無しさん:2010/05/02(日) 19:17:50
PythonよりJavaのがいいよねえ
840デフォルトの名無しさん:2010/05/02(日) 19:19:56
うん
841デフォルトの名無しさん:2010/05/02(日) 19:24:22
えっ
842デフォルトの名無しさん:2010/05/02(日) 20:01:32
定義済例外の数はJavaのが圧倒的に多いからな
843デフォルトの名無しさん:2010/05/02(日) 23:25:43
>>842
だな。NullPointerExceptionなんて例外ほどクールなのを見たことが無いぞ。
是非ともPythonにもつけるべきだ。
844デフォルトの名無しさん:2010/05/02(日) 23:28:57
そんなの簡単じゃん。さっさと作って配布してよ
845デフォルトの名無しさん:2010/05/02(日) 23:39:03
>>844
class NullPointerException(Exception):
 pass

はい、できたできた
846デフォルトの名無しさん:2010/05/02(日) 23:42:27
     )、._人_人__,.イ.、._人_人_人
  <´  ぬ る ぽ 返 し て っ !  >
    ⌒ v'⌒ヽr -、_  ,r v'⌒ヽr ' ⌒
// // ///:: <   _,ノ`' 、ヽ、_ ノ  ;;;ヽ  //
///// /::::   (y○')`ヽ) ( ´(y○')    ;;|  /
// //,|:::     ( ( /    ヽ) )+     ;| /
/ // |:::     +  ) )|~ ̄ ̄~.|( (       ;;;|// ////
/// :|::       ( (||||! i: |||! !| |) )      ;;;|// ///
////|::::    +   U | |||| !! !!||| :U   ;;; ;;;| ///
////|:::::       | |!!||l ll|| !! !!| |    ;;;;;;| ////
// / ヽ:::::       | ! || | ||!!|    ;;;;;;/// //
// // ゝ:::::::: :   | `ー----−' |__////
847デフォルトの名無しさん:2010/05/03(月) 00:05:00
>>843 >>845 >>846
がっ
848デフォルトの名無しさん:2010/05/03(月) 10:22:35
>>797ですがどうすればソースコードを変更させることができるの
でしょうか?
849デフォルトの名無しさん:2010/05/03(月) 10:35:27
>>848
文字コードをUTF-8にした、の意味が分からないんだけど、
UTF-8で保存したならなんで'こ'の頭に0x82が出てくるわけ?

もしmskanjiなのに頭にcoding: utf-8付け足しただけでUTF-8にしたつもりになってるのなら、
UTF-8で保存しなおすかcoding: mskanji に直すかどっちかにする。
850デフォルトの名無しさん:2010/05/03(月) 11:40:56
>>848
それ構文エラーになってる、そして本当にソースをutf-8で保存したか?
文字コードを変えてテキストファイルを保存出来るエディタとかで確認&再保存してからもう一度試してみれば?
多分、何か混乱してて間違えてる予感

ソースファイル自体のエンコード、
pythonに伝える自分の文字コード、
printなどに渡す文字の文字コード ※← 蛇足だけどここでの文字コードについては、例えば u"ほげ" でのUnicode型と、"" だけど中身が Unicode文字列って2種類ある

これらは全部別の存在だよ
851デフォルトの名無しさん:2010/05/03(月) 11:43:15
意味がわかりません。
もう少しきちんとした日本語でお願いします。
852デフォルトの名無しさん:2010/05/03(月) 11:45:33
>>851
幼稚園児向けに話すのは大変ですよ。前提知識が足りないでしょうから
853デフォルトの名無しさん:2010/05/03(月) 11:47:43
Pythonって未だに日本語使用厳しいのか

改善すれば日本でもRubyより流行ると思うんだが
854デフォルトの名無しさん:2010/05/03(月) 12:04:39
>>853
Pythonはまともに日本語扱えない。
扱える言語はRubyだけです。
855デフォルトの名無しさん:2010/05/03(月) 12:09:08
Rubyだけだよな、まともなLLは。
856デフォルトの名無しさん:2010/05/03(月) 12:10:23
# -*- coding: HOGE -*-
と書いたとすると
"日本語" は HOGE でエンコードされているとみなされる
u"日本語" は "日本語".decode("HOGE") と同じ
857デフォルトの名無しさん:2010/05/03(月) 12:12:11
コードに日本語を入れること自体好きじゃない
858デフォルトの名無しさん:2010/05/03(月) 12:12:48
>>854
RubyはWindowsでUNICODEのファイル名へのアクセスが出来ない
859デフォルトの名無しさん:2010/05/03(月) 12:13:34
>>853
うそを書くな
860デフォルトの名無しさん:2010/05/03(月) 12:16:10
ここで
ソースは sjis で保存されているにも関わらず
# -*- coding: utf-8 -*-
と書いたとすると
"日本語(実はsjis)" は utf-8 でエンコードされているとみなされる
u"日本語" は "日本語(実はsjis)".decode("utf-8") と同じ
861デフォルトの名無しさん:2010/05/03(月) 12:16:49
Py3kが期待されるけど現状では大体以下に気をつければいい

・ソースファイルの先頭に文字コードを指定しないとソースファイルには ASCII 文字以外使えない
・ソースファイルに記述した非 ASCII 文字は全て str 扱いと考える
・unicode 文字列をソースファイルに記述するときは u'あいう' ではなく u'\u3042\u3044\u3046' と記述する
・関数に文字列を渡すときは unicode 型で渡す。str に変換するのはエラーが起きてからでいい

とにかく文字列型には unicode 使えばおけ。それで例外出すのはその関数なりモジュールなり作った奴がバカ
862デフォルトの名無しさん:2010/05/03(月) 12:17:41
バカばっか
863デフォルトの名無しさん:2010/05/03(月) 12:18:04
>>860
保存方法を間違えるなよ
日本語の多くの書籍が書かれてるTeXだってそんなことしたらちゃんとコンパイル出来ない
864デフォルトの名無しさん:2010/05/03(月) 12:18:44
話について行けないからって>>862みたいなこと言うのはどうかと思う
865デフォルトの名無しさん:2010/05/03(月) 12:21:24
>>853
自分が何の文字コード使ってるか分からないバカにとっては、Pythonでの日本語使用は難しいと思う。
それは規定路線で、3.xでも変わらないばかりかむしろ強化される。

文字コードのことを考えないで文字を扱いたい人は、Rubyでもなんでもいいから他行ってくれ。
866デフォルトの名無しさん:2010/05/03(月) 12:23:24
>>864
いや別に>>861程度の話題なら余裕なんだけど
この前くだスレでcsvがUTF-8しか扱えねえwwwって話になったのに
どや顔で unicode 使えばおkってどうなのよと思ってさ

というかバカばっかってお約束なんだ
867デフォルトの名無しさん:2010/05/03(月) 12:25:17
>>866
馬鹿にしか見えないからやめた方が良いよ
868デフォルトの名無しさん:2010/05/03(月) 12:26:20
>>866
本気で何言ってるのか分からない
869デフォルトの名無しさん:2010/05/03(月) 12:27:02
>>851
あきらめてSmall BASICとかに移動したほうがいい
870デフォルトの名無しさん:2010/05/03(月) 12:41:04
総合するとRuby最強でFA?
871デフォルトの名無しさん:2010/05/03(月) 12:42:13
pythonスレに湧くruby信者(笑)
LLスレでrubyは無いって結論出ただろ
872デフォルトの名無しさん:2010/05/03(月) 12:44:52
Pythonという外国製の言語を学ぶ奴はどうかしてると思うが
873デフォルトの名無しさん:2010/05/03(月) 12:46:36
>>870
Rubyはガラパゴス情弱専用言語だよ
874デフォルトの名無しさん:2010/05/03(月) 12:46:39
なでしこ でも学んでろよ
875デフォルトの名無しさん:2010/05/03(月) 12:47:35
どっちもやればいいよ
簡単な言語なんだし
876デフォルトの名無しさん:2010/05/03(月) 12:49:20
Pythonはインデントが気持ち悪い。
というか言語仕様における欠陥だよあれは
Rubyのコードブロックの扱いは神。
877デフォルトの名無しさん:2010/05/03(月) 12:51:04
でも遅いんでしょう
878デフォルトの名無しさん:2010/05/03(月) 12:52:59
pythonスレに湧くruby信者(笑)
LLスレでrubyは無いって結論出ただろ
879デフォルトの名無しさん:2010/05/03(月) 12:53:44
Rubyに対する嫌がらせだろ
880デフォルトの名無しさん:2010/05/03(月) 13:03:25
>>872
お前WindowsとかLinuxとかMacOS使ってないの?
881デフォルトの名無しさん:2010/05/03(月) 13:06:34
>>876
   end
  end
 end
end
end
882デフォルトの名無しさん:2010/05/03(月) 13:08:16
Pythonスレを荒らすとPythonファンのMatzに破門されるぞ
883デフォルトの名無しさん:2010/05/03(月) 13:13:31
メインソースに日本語入れるなよな
言語ファイルとして定数にでもしとけ
884デフォルトの名無しさん:2010/05/03(月) 13:27:46
matz kimoi-
885デフォルトの名無しさん:2010/05/03(月) 14:07:36
activepythonと本家を共存させることって出来る?
886デフォルトの名無しさん:2010/05/03(月) 14:10:52
共存させてなんかメリットがあるの?
887デフォルトの名無しさん:2010/05/03(月) 14:36:57
>>866
>いや別に>>861程度の話題なら余裕なんだけど
>この前くだスレでcsvがUTF-8しか扱えねえwwwって話になったのに
>どや顔で unicode 使えばおkってどうなのよと思ってさ

なんかまるで utf-8 が unicode じゃないと言ってるみたいに見えるけど
気のせいか?
888デフォルトの名無しさん:2010/05/03(月) 14:44:09
>>886
samurizeでpythonスクリプトを使うにはactivepythonが必要らしいけど、普通にプログラミングするときは本家を使いたい
889デフォルトの名無しさん:2010/05/03(月) 14:45:31
>>887
文脈的にそのunicodeってPython2.Xの「unicode型」のことだろうから
その突っ込みはおかしい
エンコーディングやキャラクタセットじゃなくて、型の話だろ

もっとも、くだスレでそんな話出てたっけ?とは俺も思ったが
csvライブラリに関しては、
「UTF-8しか扱えない」じゃなくて
「unicodeに対応してないのでstrしか扱えない」の間違いだろう
890デフォルトの名無しさん:2010/05/03(月) 14:48:02
>>887
少なくとも python 2.x なら
utf-8 が unicode じゃない
とう理解で良いと思う
891デフォルトの名無しさん:2010/05/03(月) 14:53:27
PythonではCで実装された標準/外部ライブラリが多く
Cで書かれた奴はstr/unicode両者に対してダック的に動作してくれないものも
多いので、>>861は楽観的過ぎる意見に見えるな

ライブラリが単純にchar*を期待している場合は、デフォルトのエンコーディングで
unicodeから変換されるので、その変換で例外が出ない場合は
すぐに気づかない場合がある

作った奴がバカってのもな
CStringIOとかcsvとか、れっきとした標準ライブラリからしてそうだし

「テキストは全部Unicode」が徹底されているJavaや.NET系の言語に比べたら
初心者にとっての落とし穴はずっと多いと思うよ
892デフォルトの名無しさん:2010/05/03(月) 15:09:52
初心者向けっていう文句自体が落とし穴っぽくて胡散臭い
893デフォルトの名無しさん:2010/05/03(月) 15:28:41
ところが奥さん、これを教育用言語と言い直すと―――?
あら不思議!あんなにしつこかった胡散臭さがこんな綺麗に取れてしまいました!
894デフォルトの名無しさん:2010/05/03(月) 15:32:42
べーしっくもきょういくげんごでした
895デフォルトの名無しさん:2010/05/03(月) 15:40:33
もうJythonとIronPythonだけでいい
896デフォルトの名無しさん:2010/05/03(月) 16:00:18
IronPython使うぐらいならBooのが面白そう
897デフォルトの名無しさん:2010/05/03(月) 16:08:10
IronPythonってLL言語のメリットを潰してるだけじゃん
クロスプラットフォームじゃないアプリなんてゴミだし
898デフォルトの名無しさん:2010/05/03(月) 16:08:55
ウェブプログラミングにはPythonは向かない。
Python3kでの発展に目を向けよう
899デフォルトの名無しさん:2010/05/03(月) 16:14:59
>>898
>ウェブプログラミングにはPythonは向かない。

cgi.FieldStorage() しか使ったことがない人はそう言う印象持つみたいだけど
それだけで向かないって決め付けるのは馬鹿のすることだよ
900デフォルトの名無しさん:2010/05/03(月) 16:47:05
>>853-856
perlもよろしくね
901デフォルトの名無しさん:2010/05/03(月) 17:15:17
>>899
たしかにあれは微妙だ。なんとかならんのかなぁ。
902デフォルトの名無しさん:2010/05/03(月) 17:38:59
Python3kに期待する。
903デフォルトの名無しさん:2010/05/03(月) 17:43:24
perlのcpanになんでもあるからpythonから乗り換えるか迷う今日このごろ
904デフォルトの名無しさん:2010/05/03(月) 17:49:18
Perlはやめとけ
あれは呪いの言語だ
905デフォルトの名無しさん:2010/05/03(月) 17:51:18
perl使いが本気で書いたコードを指で3回なぞると
窓ガラスが割れると言われている
906デフォルトの名無しさん:2010/05/03(月) 17:58:49
呪いで思い出したけどPythonってBlack Perlみたいなお遊びコードってないのかな
907デフォルトの名無しさん:2010/05/03(月) 18:35:20
>>906
Rubyじゃないと無理だよ
908デフォルトの名無しさん:2010/05/03(月) 21:14:41
>>903
その乗り換えだけはありえない。
909デフォルトの名無しさん:2010/05/03(月) 21:18:57
仕方なくという場合なら、ありえなくもない
910デフォルトの名無しさん:2010/05/03(月) 22:02:54
というわけでRubyに乗り換えませんか?
911デフォルトの名無しさん:2010/05/03(月) 22:05:02
その理由がない
912デフォルトの名無しさん:2010/05/03(月) 22:09:56
つまりこのスレの住人は、ルビーよりも大蛇モンドを望みます
913デフォルトの名無しさん:2010/05/03(月) 22:12:32
大蛇モンドか、苦しいな
914デフォルトの名無しさん:2010/05/03(月) 22:13:54
>>910
なるほど、Rubyのが優れているのか・・・
915デフォルトの名無しさん:2010/05/03(月) 22:54:58
俺はperlとpython,lispは使うけどrubyだけは無いな
916デフォルトの名無しさん:2010/05/03(月) 22:58:24
というかpython、rubyはどちらかで良いって感じだから、このスレでruby使ってる奴なんて少ないだろ
917デフォルトの名無しさん:2010/05/03(月) 23:00:02
「乗り換え」っていうか、使いたければ両方使えばいいだろ
「それしかできない」ようなことがある言語は、いずれにしても残るぞ
EmacsのためのLispとかなw
918デフォルトの名無しさん:2010/05/03(月) 23:03:38
LLはそれしか出来ないじゃなくて、より手軽にって意図が多いだろ
919デフォルトの名無しさん:2010/05/03(月) 23:08:53
>>918
まあね
JavaScriptははっきりそれ系だけど
920デフォルトの名無しさん:2010/05/03(月) 23:24:47
ActionScriptはFlash製品のもの
VBAはOffice製品のもの
JavaScriptはブラウザのもの
Pythonは・・・ ぱ、pyてょんは・・・
921デフォルトの名無しさん:2010/05/03(月) 23:25:55
知らんけど、3DCG屋さんにはPython結構重要なんじゃないの
922デフォルトの名無しさん:2010/05/03(月) 23:28:58
MayaとかBlenderはPythonかな。そう言えば
あと組み込みインタプリタとして色々使われたりするよな
923デフォルトの名無しさん:2010/05/03(月) 23:55:00
yum
924デフォルトの名無しさん:2010/05/03(月) 23:55:40
吹けば飛ぶような環境しかないな
925デフォルトの名無しさん:2010/05/04(火) 00:17:33
吹いてみなよ
926デフォルトの名無しさん:2010/05/04(火) 00:21:58
TkinterでGUI作ってるよね?(´・ω・`)
927デフォルトの名無しさん:2010/05/04(火) 01:00:00
wxpython
928デフォルトの名無しさん:2010/05/04(火) 01:37:36
pyqt
929デフォルトの名無しさん:2010/05/04(火) 03:15:14
pygame
930デフォルトの名無しさん:2010/05/04(火) 03:25:00
oppy
931デフォルトの名無しさん:2010/05/04(火) 04:08:20
hoppyは低カロリー低糖プリン体0
932デフォルトの名無しさん:2010/05/04(火) 10:27:09
時代はRubyか
933デフォルトの名無しさん:2010/05/04(火) 10:47:29
CGに限らず、製品の組み込み言語としてPythonが使われている例は多い。
ビックリするほど多い。
934デフォルトの名無しさん:2010/05/04(火) 11:11:16
もうruby(Rails)の時代は終わったから
ruby厨はとっとと巣にお帰り
935デフォルトの名無しさん:2010/05/04(火) 11:20:31
もうpython()の時代は終わったから
936デフォルトの名無しさん:2010/05/04(火) 11:23:11
Railsではやっぱだめだなあ、と思った人がScalaを選ぶことはあっても
Pythonを選ぶ、ということは無いだろうけどね
LL系は弱点一緒だし
937デフォルトの名無しさん:2010/05/04(火) 11:24:24
あんまりこのスレって、スレタイ通りの内容って出てこないよな
過去スレ追うか他見た方がいいんだろうなw
938デフォルトの名無しさん:2010/05/04(火) 11:26:53
PythonはLinuxにほぼ標準で入ってるし
まだまだ使われるだろうけどな
939デフォルトの名無しさん:2010/05/04(火) 12:20:21
Railsではやっぱりダメで、結局T4テンプレートでがしがしVBで作った
Microsoft Chart Controlがつおい
940デフォルトの名無しさん:2010/05/04(火) 12:53:17
akiraが暴れてるな
941デフォルトの名無しさん:2010/05/04(火) 13:07:08
VBが気持ち悪くてRubyに興味が無いので俺はC#に移動したけど諸般の事情からC/C++に戻って一部をスクリプト制御で外出しにしたかったから連動しやすいPythonにまた戻ってきた
942デフォルトの名無しさん:2010/05/04(火) 15:08:25
CG関係に強いのはscipyの存在があるから? ってわけでもない?
943デフォルトの名無しさん:2010/05/04(火) 15:21:13
>>942
全然関係無いと思う
埋め込み可能なスクリプティング言語なら何でもよくて
Pythonでなければいけない理由は特にないんじゃないの
逆にPython「でもいい」のは、ゲームほどリソースの制約がないから

CG屋さんにとっては、全部JavaScript/ActionScript系にしてくれた方が
良かったかもなw
どうせAdobeはそっちだし
944デフォルトの名無しさん:2010/05/04(火) 15:28:14
>CG屋さんにとっては、全部JavaScript/ActionScript系にしてくれた方が
>良かったかもなw
>どうせAdobeはそっちだし

上で出てたCGってキーワードは多分3DCG。2D界隈しか知らないのか
945デフォルトの名無しさん:2010/05/04(火) 15:28:44
Unix系のパッケージマネージャはほとんどPythonだし
BlenderのスクリプトもPythonだしOOoのマクロもPythonだし
Pythonの需要は無くならないだろ
日本じゃこれ以上普及しないだろうけど
RubyとかPythonからScalaに行く人って他の言語やったことないんだろ
946デフォルトの名無しさん:2010/05/04(火) 15:38:40
あとゲームの埋め込み言語ってあらかたPython
947デフォルトの名無しさん:2010/05/04(火) 15:41:05
えろげもPythonで作られているの?
948デフォルトの名無しさん:2010/05/04(火) 15:42:15
>>946
Luaとか無視ですか
949デフォルトの名無しさん:2010/05/04(火) 15:45:15
> Unix系のパッケージマネージャはほとんどPythonだし
apt系は違うっしょ
それにパッケージマネージャってユーザスクリプティングの対象じゃないし
950デフォルトの名無しさん:2010/05/04(火) 15:48:14
>>943
そこで例に出すなら AdobeじゃなくてAutodeskだろ、と思ったら既に書かれていたでござる
3DCG方面って知らない人やっぱ多いみたいだな
951デフォルトの名無しさん:2010/05/04(火) 15:48:19
ttp://www.satori.org/2009/03/the-engine-survey-general-results/

Python厨って本当に馬鹿だよな
952デフォルトの名無しさん:2010/05/04(火) 15:53:08
本スレに湧くアンチほど馬鹿はいないから安心
953デフォルトの名無しさん:2010/05/04(火) 15:54:05
都合が悪いとすれ違いかw
本スレで大嘘つくほうが邪悪だろw
954デフォルトの名無しさん:2010/05/04(火) 15:55:46
えっ「Python厨って本当に馬鹿だよな」って自虐なの?
955デフォルトの名無しさん:2010/05/04(火) 15:56:15
Sourceエンジン最強だわ
Unrealは欠陥だらけ、Cryは描写範囲外の処理でガクガクになるという糞仕様
956デフォルトの名無しさん:2010/05/04(火) 16:00:46
957デフォルトの名無しさん:2010/05/04(火) 16:13:06
本スレで大嘘ってなんだ? そんなことあったの?
958デフォルトの名無しさん:2010/05/04(火) 16:15:57
959デフォルトの名無しさん:2010/05/04(火) 16:23:03
今さらだけどここ本スレだったんだな
960デフォルトの名無しさん:2010/05/04(火) 16:25:32
python使ってる人たちのレベルがよく表れてるスレですね
961デフォルトの名無しさん:2010/05/04(火) 16:27:38
いいからruby使えよ
962デフォルトの名無しさん:2010/05/04(火) 16:27:49
ジ・ゴールデンウィーク
963デフォルトの名無しさん:2010/05/04(火) 16:29:40
end
964デフォルトの名無しさん:2010/05/04(火) 16:29:44
965デフォルトの名無しさん:2010/05/04(火) 16:30:23
966デフォルトの名無しさん:2010/05/04(火) 16:30:48
ブラクラ貼るなカス
967デフォルトの名無しさん:2010/05/04(火) 16:31:24
みんなでRubyに移住しようぜ!
968デフォルトの名無しさん:2010/05/04(火) 16:58:37
ruby厨必死だな
あんな気持ち悪くてストレスの溜まる言語頼まれてもお断りだ
rubyを使うぐらいならSmalltalkの勉強してる方がためになる
969デフォルトの名無しさん:2010/05/04(火) 17:03:22
両方使わざるをえない俺は勝ち組
970デフォルトの名無しさん:2010/05/04(火) 17:05:43
C++が一番好きです
971デフォルトの名無しさん:2010/05/04(火) 17:07:42
結論としてはRuby最強でFA?
972デフォルトの名無しさん:2010/05/04(火) 17:07:43
一応1.8.6入れてあるけど自分用に使うことは無いな
973デフォルトの名無しさん:2010/05/04(火) 17:13:39
RubyってPerlの出来損ないみたいなもんだしな
974デフォルトの名無しさん:2010/05/04(火) 17:26:21
Rubyとかお遊び言語で実用性ないじゃん
975デフォルトの名無しさん:2010/05/04(火) 17:28:13
作者自体が最強だなんて思ってないのに信者は何がしたいんだよ
976デフォルトの名無しさん:2010/05/04(火) 17:43:15
趣味で遊んでる分にはいいんだけど実際に使うには危なっかしい言語だしな
RoRなんかで広まってしまったのがまずかった
977デフォルトの名無しさん:2010/05/04(火) 17:53:00
わかったからここでやれ
http://pc12.2ch.net/test/read.cgi/tech/1249737531/l50
978デフォルトの名無しさん:2010/05/04(火) 17:58:40
じゃなくてアンチpythonスレにアンチ、つまりruby信者を誘導してよ
ruby最強伝説とかpythonには関係ないから
979デフォルトの名無しさん:2010/05/04(火) 18:01:18
手段を選ばないRubyアンチがRubyの評判を落とすためにやってるんだよ
980デフォルトの名無しさん:2010/05/04(火) 19:37:10
>>797なんですけども何回もすみません
# -*- coding: utf-8 -*-と打ったあと
print u"こんにちは"とうってもやはりエラーがでてしまいます。
なぜなのでしょうか・・・ソースコード変更とぐぐってみてやってみたのです
がどうしてもエラーがかわりません
981デフォルトの名無しさん:2010/05/04(火) 19:44:20
あんたがエディタでソースコードをUTF-8じゃなくてCP932で保存してるのが問題
これ以上はエディタの使い方の問題だから板違い
982デフォルトの名無しさん:2010/05/04(火) 19:44:50
どんな開発環境?
983デフォルトの名無しさん:2010/05/04(火) 19:46:18
utf-8 を shift_jis か cp932 に置き換えればいいだろ
984デフォルトの名無しさん:2010/05/04(火) 19:49:03
>>797
>文字コードをUTF-8にして

ってUTF-8で保存しているという意味じゃなくて、
一行目に# -*- coding: utf-8 -*-と書いたという意味なの?
985デフォルトの名無しさん:2010/05/04(火) 19:52:45
>>980
http://www5f.biglobe.ne.jp/t-susumu/library/tpad.html

で、tpad093.exe (681KB) (インストーラ付き) をダウンロードして
インストール。

# -*- coding: utf-8 -*-
print u"こんにちは"

と入力して[ファイル]→[文字/改行コード指定保存]で
文字コードを UTF-8 にして保存。
986デフォルトの名無しさん:2010/05/04(火) 19:57:10
僕はサクラエディタちゃん。キーワード強調のために一手間要るけど。
というか実はeclipse+Pydev。これが一番便利。
987デフォルトの名無しさん:2010/05/04(火) 19:57:35
パソコンの初心者板いけよ
それかせめてくだすれでやれ
988デフォルトの名無しさん:2010/05/04(火) 19:58:51
なんかマルチっぽくなってごちゃごちゃするから途中からくだすれにやってもね
どうせみんな両方見てんだろうし
989デフォルトの名無しさん:2010/05/04(火) 20:09:51
頭悪い奴はプログラミング禁止な
990デフォルトの名無しさん:2010/05/04(火) 20:19:53
>>989が自らプログラミングを断ちました。さようなら
991デフォルトの名無しさん:2010/05/04(火) 20:28:08
>>797なんですけども何回もすみません
# -*- coding: utf-8 -*-と打ったあと
print u"こんにちは"とうってもやはりエラーがでてしまいます。
なぜなのでしょうか・・・ソースコード変更とぐぐってみてやってみたのです
がどうしてもエラーがかわりません
992デフォルトの名無しさん:2010/05/04(火) 20:28:48
>>797なんですけども何回もすみません
# -*- coding: utf-8 -*-と打ったあと
print u"こんにちは"とうってもやはりエラーがでてしまいます。
なぜなのでしょうか・・・ソースコード変更とぐぐってみてやってみたのです
がどうしてもエラーがかわりません
993デフォルトの名無しさん:2010/05/04(火) 20:29:28
>>991
http://www5f.biglobe.ne.jp/t-susumu/library/tpad.html

で、tpad093.exe (681KB) (インストーラ付き) をダウンロードして
インストール。

# -*- coding: utf-8 -*-
print u"こんにちは"

と入力して[ファイル]→[文字/改行コード指定保存]で
文字コードを UTF-8 にして保存。
994デフォルトの名無しさん:2010/05/04(火) 20:29:28
>>797なんですけども何回もすみません
# -*- coding: utf-8 -*-と打ったあと
print u"こんにちは"とうってもやはりエラーがでてしまいます。
なぜなのでしょうか・・・ソースコード変更とぐぐってみてやってみたのです
がどうしてもエラーがかわりません
995デフォルトの名無しさん:2010/05/04(火) 20:30:08
>>797なんですけども何回もすみません
# -*- coding: utf-8 -*-と打ったあと
print u"こんにちは"とうってもやはりエラーがでてしまいます。
なぜなのでしょうか・・・ソースコード変更とぐぐってみてやってみたのです
がどうしてもエラーがかわりません
996デフォルトの名無しさん:2010/05/04(火) 20:32:10
>>850 に全部書いてあるのに
997デフォルトの名無しさん:2010/05/04(火) 20:59:43
うめ
998デフォルトの名無しさん:2010/05/04(火) 21:00:27
u
999デフォルトの名無しさん:2010/05/04(火) 21:01:40
>>797なんですけども何回もすみません
# -*- coding: utf-8 -*-と打ったあと
print u"こんにちは"とうってもやはりエラーがでてしまいます。
なぜなのでしょうか・・・ソースコード変更とぐぐってみてやってみたのです
がどうしてもエラーがかわりません
1000デフォルトの名無しさん:2010/05/04(火) 21:02:26
>>797なんですけども何回もすみません
# -*- coding: utf-8 -*-と打ったあと
print u"こんにちは"とうってもやはりエラーがでてしまいます。
なぜなのでしょうか・・・ソースコード変更とぐぐってみてやってみたのです
がどうしてもエラーがかわりません
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。