Pythonのお勉強 Part22at TECH
Pythonのお勉強 Part22 - 暇つぶし2ch369:347
07/12/20 22:42:20
def makecounter():
number=[0]
def _makecounter(x):
if x=="init":
number[0]=0
elif x=="inc" :
number[0] +=1
elif x=="dec" :
number[0] -=1
return number[0]
return _makecounter
counter=makecounter()
print counter("init")
print counter("inc")
print counter("dec")

>>226からのリンク先を見てクロージャでカウンタ作れました。
pythonってクロージャの中の変数書きかえれないので
numberに無名配列のポインタを入れてそこを操作するって感じなんですね。
mapの中に副作用持ちのlambda式入れられないとかlispとはかなり違うんだな。
うーん、pythonってなんか変w

370:デフォルトの名無しさん
07/12/20 23:53:17
>>> t = ('foo', 1, 'bar', 2, 'baz', 3, )
>>> dict(zip(t[::2], t[1::2]))
{'baz': 3, 'foo': 1, 'bar': 2}


371:デフォルトの名無しさん
07/12/21 00:25:11
forとかwhileの中で関数作るとクロージャの回避が結構面倒だな
デフォルト引数に入れて解決した

>>369
なんでclassにしないの?

372:347
07/12/21 00:42:06
>>371
lispに馴れてるのでとりあえずクロージャを作ってみたかったのです。

373:デフォルトの名無しさん
07/12/21 00:50:24
>>367,368,370
サンクス。
特に370の方法はいいな。


374:デフォルトの名無しさん
07/12/21 13:35:27
generatorをenumerateすると、generatorとして作った意味がないことに気づいたんですが、
generator用のenumerateみたいなのは標準では付いてないんですかね?

375:デフォルトの名無しさん
07/12/21 13:40:01
>>374
izip + count

376:374
07/12/21 13:55:47
ごめ、調べてたら、すでにenumerateはリスト返してなかった・・・
どうもバージョンの古い脳内pythonの話だったポイ・・・orz

377:デフォルトの名無しさん
07/12/21 14:59:36
pythonてコードの前部分で定義した関数しか呼び出せないの?
phpですら定義の順番に関係なく呼べるのに・・・

378:デフォルトの名無しさん
07/12/21 15:14:56
そうか

379:デフォルトの名無しさん
07/12/21 15:19:46
スクリプト言語のくせにそんなのイモすきない?
みんな許せるの?

380:デフォルトの名無しさん
07/12/21 15:27:07
組込みクラスにメソッドを追加したいのですがどうやればいいのですか?

class int:
 def fuga(self):
   return "fugafuga"

じゃ無理みたいです

381:デフォルトの名無しさん
07/12/21 15:42:06
>>380
・Rubyでやれ
>>337

382:デフォルトの名無しさん
07/12/21 15:46:02
その前になんでそんなことしたいのか、だ

383:デフォルトの名無しさん
07/12/21 16:29:55
>>379
それはエラーになってほしい人もいるからなんじゃない?
Pythonが変数と関数の名前空間が一緒なのと関係あるのかな。
ちなみにRubyもエラーになる。PerlとJavascriptとHaskellはオッケー。

>>382
えー既存クラスにメソッド追加って普通にしない?

384:デフォルトの名無しさん
07/12/21 16:32:04
自前のにならたくさんやるがなぁ

385:デフォルトの名無しさん
07/12/21 16:39:35
ちなみにどうするんですか?チュートリアルを読んだのですがよくわかりませんでした><

386:デフォルトの名無しさん
07/12/21 17:01:28
def fuga(i):
return "fugafuga"

print fuga(42)

387:デフォルトの名無しさん
07/12/21 17:10:12
『Pythonで学ぶプログラム作法』買ってみた
今から読んでみる

388:デフォルトの名無しさん
07/12/21 17:43:48
>>376,383

モジュールがロードされるタイミングでいろいろしたい人がいるからじゃない?

if os.name == "nt":
 def pathnomalization(p):
  ほげほげ
else:
 def pathnomalization(p):
  ふがふが

みたいなコード書いたことあるけど。

389:デフォルトの名無しさん
07/12/21 17:49:09
>>386
全然違うんですけど・・・。
Pythonianの人って、標準とは別名のメソッドを呼びたくなったらどうするんですか?

390:デフォルトの名無しさん
07/12/21 18:04:06
関数使うよ

391:デフォルトの名無しさん
07/12/21 18:13:47
>>389
PEPを書く

392:デフォルトの名無しさん
07/12/21 18:20:21
>>391
ひえーマジすか
Pythonは禁欲的だと聞いていましたがこれほどとは・・・

メソッド定義にself書いたり、気持ち悪い規則が多いなあ
rubyに比べてリスト内包表記と、ライブラリが多いことと解釈系がやたら速いのと、
endを馬鹿みたいに書かなくていいのとhelp()が好きだけど、他はとにかく不便だなあ。
どの言語もいいところと悪いところがありますね。

393:デフォルトの名無しさん
07/12/21 18:24:16
標準とは別名のメソッド呼びたくなる状況がわからん件

394:デフォルトの名無しさん
07/12/21 18:27:01
なんか気持ちイーらしい

395:デフォルトの名無しさん
07/12/21 18:53:41
意味のないことに固執したがるのはバカの特徴だな。

396:デフォルトの名無しさん
07/12/21 18:55:07
一つの言語でやり方を覚えたらそこから抜け出せなくなる脳は不便だ
精進

397:デフォルトの名無しさん
07/12/21 19:26:07
self批判するやつがいるがthisとか暗黙の変数がいきなり出てくる言語とかあり得ないキモイ正気を疑う
反論は認める

398:デフォルトの名無しさん
07/12/21 19:49:03
質問させてください
HTMLParserってShift-jisのページでも使えますか?
urllib2.urlopenで取得した2chのメニュー(左フレーム)をそのままfeedしたら
junk charactersがなんとかってエラーがでました

399:デフォルトの名無しさん
07/12/21 19:53:52
>>398
不可能ではないけどキミにはムリ。

400:デフォルトの名無しさん
07/12/21 20:03:16
unicodeに変換しる。
もっても解析は出来ないと思う。
タグを振ってくれると楽なんだがなぁ。


401:デフォルトの名無しさん
07/12/21 20:06:07
>>397
Σ(´Д` ) 工エー。せっかくスクリプト言語なのに・・・
_doc__とか__name__とかもダメなの?どっちかというと、printキーワードとかのほうが
キモいけどなあ。おまえそれどっから呼んでるのかと。

402:デフォルトの名無しさん
07/12/21 20:06:35
>>398
ずばりなのがココにあるけど
URLリンク(www.freia.jp)

403:デフォルトの名無しさん
07/12/21 20:12:30
>>398
再現コード貼ってちょ

404:デフォルトの名無しさん
07/12/21 20:40:40
>>401
printはビルトイン関数になるし早くなれ
__name__,__file__,__builtins__はモジュールを生成する側がglobalsに突っ込んでるその辺はすまんかった

405:デフォルトの名無しさん
07/12/21 22:43:44
>>377
>pythonてコードの前部分で定義した関数しか呼び出せないの?
>phpですら定義の順番に関係なく呼べるのに・・・
通常は
def main():
 f()
 g()
def f():
 print 'foo'
def g()
 print 'bar'

main()
と書くから、だれも問題と思ってない。

>>379
>スクリプト言語のくせにそんなのイモすきない?
>みんな許せるの?
PHPのは関数の定義、Pythonは関数を生成して変数へ代入、Rubyは関数定義文の実行。
スクリプト言語といえど、それぞれ根本的に思想が違うんだから、どうしようもない。
それが分からないお前がいちばんあわれ。





406:デフォルトの名無しさん
07/12/21 22:45:35
全ての動的言語はLispのスキンにすぎない

407:398
07/12/21 23:10:37
>>399,400,402,403
レスありがとうございます
>>402 に書いてある方法で成功しました
というかこのページ開いてたのに下まで見てなかった・・・
お騒がせしてすいません

408:デフォルトの名無しさん
07/12/22 04:50:36
>>379
>>401
「スクリプト言語」に限定したことではなくルールの問題に過ぎない

409:デフォルトの名無しさん
07/12/22 11:20:43
pythonでオブジェクトのインスペクトってどうやるんですか?

410:デフォルトの名無しさん
07/12/22 11:36:56
>405
よくある相互入れ子型の再帰の練習問題みたいなのを
書こうとして「アレ?どうやんだっけ?」と思ったことはある…

411:デフォルトの名無しさん
07/12/22 11:37:19
インスペクト?
Rubyのobj.inspectのことだとするなら
呼出側はrepr(obj)。自作クラスに定義したいならdef __repr__(self):で。

412:デフォルトの名無しさん
07/12/22 12:03:01
>>411
それです
ありがとうございました
inspectモジュールのところ見て(?o?)となってました

413:デフォルトの名無しさん
07/12/22 12:49:56
EOFをあらわすエスケープシーケンスってないんですか?

414:デフォルトの名無しさん
07/12/22 16:34:57
false

415:デフォルトの名無しさん
07/12/22 18:10:56
>>413
これのこと?
'\x00'
'\0'

416:デフォルトの名無しさん
07/12/22 19:26:25
>>413
DOSじゃないなら、ないんじゃない?
'¥0'は文字列の終わりであって、EOFはまた意味が違うからね。

417:デフォルトの名無しさん
07/12/22 19:31:59
EOFなんて聞いたのは.mag以来だ

418:デフォルトの名無しさん
07/12/22 19:36:16
>>410
> よくある相互入れ子型の再帰の練習問題みたいなのを

それは問題なく何の工夫もなく書ける
関数定義の位置が関係するのは関数やメソッドの外から呼ぶ場合

419:デフォルトの名無しさん
07/12/22 20:23:13
2.3だと
2 << 30が-2147483648なんだけど、
2.5だと2147483648Lになる。

こうなる理屈は分かってるんだけど、
2.2以前の32 bitを前提としたcodeを2.5に移植するときに、
どうやったらうまく動くんでしょうか。

>>185を参考にして
int((2 << 30) & sys.maxint)
としても、結果は0になってしまう。

420:デフォルトの名無しさん
07/12/23 01:08:24
海外じゃ今月はこんな話題で盛り上がっていたみたいだね。
"Python" is not a good name, should rename to "Athon"

421:デフォルトの名無しさん
07/12/23 01:14:29
よく分からないけど下ネタ?

422:デフォルトの名無しさん
07/12/23 01:47:22
URLリンク(groups.google.co.jp)

これかね、

423:デフォルトの名無しさん
07/12/23 02:42:01
>>419
>>> hex(sys.maxint)
'0x7fffffff'
>>> hex(2 << 30)
'0x80000000L'


424:デフォルトの名無しさん
07/12/23 09:40:55
pythonて使用メモリの上限を作ることできますか?
スクリプトと思って気軽に書いてたら永久ループがあったみたいで
out of memoryになってしまい
その影響でmysqlのファイルがぶっ壊れててんやわんやでした(; ;)

425:デフォルトの名無しさん
07/12/23 11:16:32
>>424
OSの仕事。
ulimitしとけ

426:419
07/12/23 12:55:39
>>423
strになっちゃいますよね。
そこからどうすればいいですか?
int()もstring.atoi()もhexになっちゃうと効かないようで。

427:デフォルトの名無しさん
07/12/23 14:31:50
>>426
移植元のコードの意図に寄るんじゃない?

428:デフォルトの名無しさん
07/12/23 14:49:54
よくわからんけど、
eval or int(str, 16) ?

429:デフォルトの名無しさん
07/12/23 14:51:44
先週1週間python-3000に投稿が無かったそうですね。py3大丈夫か?
年末だから忙しいだけかな・・・

430:デフォルトの名無しさん
07/12/23 15:21:56
>>429
アーカイブを見る限り投稿はあるみたいだけど。
順調に開発が進んでいるから投稿する必要がないだけじゃないかな。

まあリリース10日前になって作者が「これ以外に問題点はありますか?」なんていう頓珍漢なメールを投げる、
プロジェクトよりは大丈夫だろwww

431:423
07/12/23 18:15:32
>>426
sys.maxintはMSBをsignにしてるから31bits分しかonにならないと言いたかったんだが分かって貰えなかったようで
マスクしたいなら決め打ちでやれ
intが16bits幅のCコンパイラでビルドされたpythonがあるかも知れないぞ

432:デフォルトの名無しさん
07/12/24 00:24:36
Python でオンラインオセロ大会できないかな?
WEBにスクリプトを投稿すると、
それまでに投稿されている全てのスクリプトと自動的に勝負が進行して、結果がでるみたいな。

433:デフォルトの名無しさん
07/12/24 00:31:46
>>432
そういうプログラムを是非pythonで!

てか「初めてのPython」って本買ったんだが、
いまだにクラスすら出てこないorz

434:デフォルトの名無しさん
07/12/24 00:34:37
Pythonで世界征服できないかな?
WEBにスクリプトを投稿すると、
世界中のサーバをハックしまくって意のままにコントロールできる、みたいな。


435:デフォルトの名無しさん
07/12/24 00:36:19
class Com:
 def step(board):
  """
  board は int[10*10] の配列からなり、
  0行(列)と9行(列)はセンチネルとして常にゼロを保持する
  実際に勝負に使うのは1行(列)から8行(列)の部分。
  -1, 0, 1 の値をとり、0は何もない状態、-1と1はそれぞれ石が置かれている状態を示す
  step 関数が呼ばれたら自分が次ぎに置くX, Y 値をタプルで返す
  ”””
  raise "This method is an abstract"


classOothello:
 m0 = __import__("com0.py")
 m1 = __import__("com1.py")
 com = m0.Com()
 com_ = m1.Com()
 board = [0]*10*10
 while True:
  x, y = com.step(board)
  if x, y == 0, 0:
   print "PASS"
  else:
   board.put(x, y)
  com, com_ = com_, com


  
  



436:デフォルトの名無しさん
07/12/24 00:57:25
Pythonでワンライナーってできる?

437:デフォルトの名無しさん
07/12/24 01:26:47
質問の意味が分からん

438:デフォルトの名無しさん
07/12/24 01:52:58
一行プログラムの事じゃないか



439:デフォルトの名無しさん
07/12/24 02:04:14
perl -eって意味ならpython -c

440:デフォルトの名無しさん
07/12/24 02:08:43
>>439
ありがと。

-cで、普通複数行で書くようなプログラムも1行で書ける?
行の区切りがどうなるのかなと思って。
Pythonはインデント使うから。

441:デフォルトの名無しさん
07/12/24 02:18:25
>>433
俺もその本買って勉強してるが
分厚すぎてめちゃくちゃ重い
机から落として足直撃したときはちょっと泣いた

442:デフォルトの名無しさん
07/12/24 02:34:34
>>440
普通に書けばおk

tests% python -c "f = [1,2,3,4,5]
for i in f :
 if i % 2 == 0 :
  print 'even'
 else :
  print 'uneven'
print 'ところで今日はクリスマスイブですよ、おまえら'"
uneven
even
uneven
even
uneven
ところで今日はクリスマスイブですよ、おまえら


443:デフォルトの名無しさん
07/12/24 04:03:03
>>442
ちっとも一行じゃないワンライナーだね(w。

>>440 じゃないけど、
勉強になりました。ありがとう。

444:デフォルトの名無しさん
07/12/24 06:27:43
いままで Ruby 使ってたんだけど
Python に乗り換えることにする
とりあえず windows の方は
拡張子 .rb で python 起動されるようにした


445:デフォルトの名無しさん
07/12/24 06:29:57
コマンドラインから入力することをワンライナーって言うの?

pythonは、対話型実行が良くできてるから、どんな小さい実験とかでも、
対話型を起動させたほうが良いような気がする。

446:デフォルトの名無しさん
07/12/24 06:32:13
>>444
.py で python が起動されるようにしたほうが良いと思うよ

447:デフォルトの名無しさん
07/12/24 06:34:23
>>446
Windowsならインストール時にそうなってるんじゃないか

448:デフォルトの名無しさん
07/12/24 06:42:37
なんか海より深い勘違いをしてそうだな

449:デフォルトの名無しさん
07/12/24 07:49:35
.rb については今までの負の資産があるので
結構色んな所から呼んでるんですよ
(CGIで後悔してたりとか別のコマンドから利用してたりとか)
しばらくはファイル名はそのまま残しておかないとまずいので
.rb をスケルトンにしてそこから .py 呼んで delegate でもいいんですけど
直接 .rb のナカミを python コードにしてしまった方が早いかなと

450:デフォルトの名無しさん
07/12/24 07:54:32
>>449
ココはあなたのチラシの裏ではありません

451:デフォルトの名無しさん
07/12/24 07:58:05
ln -s hoge.py hoge.rb
で一発ジャマイカ

452:419
07/12/24 09:39:25
>>427, 428, 431
レスありがとうございます。

32bit目まで使う必要があるプログラムです。
ビット演算した結果は、fctrl.ioctl()の第二引数に与えます。

0x80000000L => 0x7fffffff
というような変換さえできればいいんですが、
普通2.5だとどうやって32bitの演算をCのように行うんでしょうか。

>>431
>intが16bits幅のCコンパイラでビルドされたpythonがあるかも知れないぞ
自分の環境でデバイスの操作を考えているので、
他環境では動かなくても大丈夫です(動けばなお良い)
ただし、現在2.3で運用しているんですが、
将来的に2.5で動かそうと改造を考えており、
そのためにLの扱いで躓いています。

453:デフォルトの名無しさん
07/12/24 11:18:23
2<<30がどう使われてるかがわからない。30は変数?即値?
変数だとすると、2<<28,2<<29まではビットはひとつしか立ってないが、
2<<30==0x7fffffffということは、最上位ビットの関係でいきなりビットが
反転するがそれでいいの?即値ならそれこそ0x7fffffffを直接使うところだと思ふ。

454:デフォルトの名無しさん
07/12/24 11:35:43
def c_like(n):
if n & (1 << 31):
n = (1 << 31) - (n % (1 << 31)) - 1
return int(n)

print hex(c_like(0x80000000L))

455:デフォルトの名無しさん
07/12/24 11:36:08
def c_like(n):
    if n & (1 << 31):
        n = (1 << 31) - (n % (1 << 31)) - 1
    return int(n)

print hex(c_like(0x80000000L))

456:デフォルトの名無しさん
07/12/24 11:38:47
>>452
コードに問題がある。書き直せ。

457:デフォルトの名無しさん
07/12/24 12:12:37
たしかに、

>2.3だと
>2 << 30が-2147483648なんだけど、

この動作に本質的に依存したコードってなんか危ない気がする・・・

458:419
07/12/24 12:18:33
>>453-456
元は
URLリンク(pyv4l.sourceforge.net)
なんですが、これをちょこちょこ自分で書き直したものです。
LinuxのCのheaderをそのまんま移植したものなので、
ベタ書きで書き直すとメンテが大変になるので避けたいところ。

こっから落とせます。
URLリンク(internap.dl.sourceforge.net)

Python 2.3だと、
>>> import video4linux
>>> help(video4linux)
(snip)
VIDIOCGAUDIO = -2144963056

2.5だと、
VIDIOCGAUDIO = 2150004240L

となります。

>>454-455
それだと、0x7fffffffを取り出せますが、
long longじゃなくてlong intにしたいんです。
2147483647ではなく-2147483648にしたい。

459:デフォルトの名無しさん
07/12/24 12:59:33
>long longじゃなくてlong intにしたいんです。

これでわかった。

Python 2.5.1 (r251:54863, Apr 18 2007, 08:51:08) [MSC v.1310 32 bit (Intel)] on
win32
Type "help", "copyright", "credits" or "license" for more information.
>>> (-2147483648) & (1 << 31) == (1 << 31)
True

def c_like(n):
    if (1 << 31) <= n < (1 << 32):
        n = -n
    return int(n)

print c_like(0x80000000L)

460:デフォルトの名無しさん
07/12/24 13:31:00
>>449
rubyのどこが気に入らなかったんですか?
pythonはじめたばかりですが
組み込みオブジェクトにメソッド追加したりできるところとか
rubyも魅力的だと思うんですが

461:デフォルトの名無しさん
07/12/24 13:34:18
また君か

462:デフォルトの名無しさん
07/12/24 13:46:01
またって?
rubyに関する質問したのは初めてですよ

463:デフォルトの名無しさん
07/12/24 13:48:26
また(空気の読めないRuby厨)君か

464:デフォルトの名無しさん
07/12/24 14:18:42
>>463
いくらなんでも無理ありすぎw

465:デフォルトの名無しさん
07/12/24 14:45:44
他の言語はじめたばかりじゃわからないだろうから
わかるまで黙ってると良いと思います

466:デフォルトの名無しさん
07/12/24 16:03:41
この板なんでID無いの?

467:デフォルトの名無しさん
07/12/24 16:35:20
技術系の板なので、誰がレスしたかよりもレスの中身を重視しているから

468:デフォルトの名無しさん
07/12/24 17:16:31
Ⅲとか機種依存文字がページに含まれてると
UnicodeDecodeError: 'shift_jis' codec can't decode bytes in position 176-177: illegal multibyte sequence
となって上手くいきません。

import urllib
uconn = urllib.urlopen('URLリンク(pc11.2ch.net)')

for e in uconn.readlines():
    e = unicode(e, 'sjis')
    elem = e.rstrip(u'\r\n').split(u'<>')
    print ''.join(elem)

一度ローカルに保存してテキストエディタなどでutf-8に変換する以外で
この問題を回避する方法はあるでしょうか?

469:デフォルトの名無しさん
07/12/24 17:19:46
>>275
㌧㌧でこけました

UnicodeDecodeError: 'shift_jis' codec can't decode bytes in position 169-170: illegal multibyte sequence

470:デフォルトの名無しさん
07/12/24 17:26:19
Windowsなら'shift_jis'の代わりに'cp932'を使う。とか?

471:デフォルトの名無しさん
07/12/24 17:26:43
>>468
sjisをcp932でいけるんじゃね

472:468
07/12/24 17:39:02
事故解決

新キャラクタセット cp932 / eucjpms
URLリンク(www.mysql-partners-jp.biz)
PHPからMySQL4.1とか5.0とか5.1とかに接続すると文字化けする : ::yossy.blog::
URLリンク(yossy.iimp.jp)
PHPで「髙(はしごたか)」「﨑(たつさき)」が文字化ける(2) : ::yossy.blog::
URLリンク(yossy.iimp.jp)

sjis != cp932
cp932 == sjis + NEC 特殊文字 + NEC選定IBM特殊文字 + IBM特殊文字

なんですね。
というかweb上のサービスはいい加減UTF-8に統一しようよ…

473:デフォルトの名無しさん
07/12/24 18:23:47
>436
python ワンライナー で具具レバ… 超人に会えるでしょう

474:デフォルトの名無しさん
07/12/25 01:29:30
>>468
e = unicode(e, 'sjis', 'replace')
e = unicode(e, 'sjis', 'ignore')

475:デフォルトの名無しさん
07/12/25 02:38:16
>>474
逃げちゃだめだろw


476:デフォルトの名無しさん
07/12/25 03:11:09
拡張子をpywにして
os.system('dir > d.txt')
を実行すると一瞬だけ
DOS窓が立ち上がるんですが
これを出さずに実行する事は可能でしょうか?

477:デフォルトの名無しさん
07/12/25 03:22:05
>>472
ユニコードは漢字文化圏を尊重せずに文字数切り詰めて"統合"したりするから
統一しようにもできないわけで。
コンピュータ中心に世の中回ってる訳じゃないからね

478:デフォルトの名無しさん
07/12/25 04:02:27
>>476
パイプ

479:468
07/12/25 04:17:49
>>474-475 >>477
㌧くす

URLリンク(diary.atzm.org)
何でreplaceやらignoreなんてオプション指定があるんかなと不思議に思って
調べてみたら、フィルタリングするような用途で便利なんですね。
というかクロスプラットフォームを意識するとsjis+replaceで書いた
ほうが汎用性がありそうでした > unicode(elem, 'sjis', 'replace')


480:デフォルトの名無しさん
07/12/25 05:46:02
Python2.5.1のインストーラー版を使っていますがC拡張モジュールをコンパイルするにはVS2003がないと駄目ですか?
VS2008かMingwでコンパイルしたいんですが。

481:デフォルトの名無しさん
07/12/25 06:11:21
The Art of UNIX Programmingに
スピードが必要な時には、PythonはCのプログラムに変換できる
というようなことが書かれていたのですが
どうやればいいですか?

482:デフォルトの名無しさん
07/12/25 06:13:01
FILE* とかやりとりするとダメなんだっけ
オレはDDKに入ってるmsvc8相当でコンパイルしてるけど

483:デフォルトの名無しさん
07/12/25 11:26:55
>>476
import subprocess
subprocess.call("dir > d.txt", shell=True)

484:デフォルトの名無しさん
07/12/25 11:28:45
>>480
漏れはVC6でCOM利用モジュール作って使ってるけど、問題なく使えてる。

485:デフォルトの名無しさん
07/12/25 13:04:47
ところで公式で配布されてるのは何でコンパイルしてるん?
[MSC v.1310 32 bit (Intel)]
1310言われても分からない


486:デフォルトの名無しさん
07/12/25 13:11:14
>>485
VC6 Ver12.00
VC2002 Ver13.00
VC2003 Ver13.10 *これ
VC2005 Ver14.00
VC2008 Ver15.00



487:デフォルトの名無しさん
07/12/25 13:47:31
>>480
MinGW (gcc 3.2.3) で拡張モジュールのコンパイルできてるよ。

488:デフォルトの名無しさん
07/12/25 17:22:32
>>478
>>483
無事に解決する事が出来ました。
ありがとうございました。

489:デフォルトの名無しさん
07/12/25 22:10:44
>>480
URLリンク(python.matrix.jp)


490:デフォルトの名無しさん
07/12/26 01:42:49
Python 使える無料スペースってどこかに無い?

491:デフォルトの名無しさん
07/12/26 01:46:48
xrea

492:デフォルトの名無しさん
07/12/26 01:56:59
seq0 = seq1
seq0[:] = seq[:]
seq0 = [i for i in seq1]
seq0=[]; for i in seq1: seq0.append(i)
ってどれも同じ処理してる?

493:デフォルトの名無しさん
07/12/26 02:17:26
処理は見たまんまでちがうし結果も異なる。
seq0 = seq1は同一オブジェクトを指すことになるが
他はリストを再構築してるので異なるオブジェクト(コピー)になる。

494:デフォルトの名無しさん
07/12/26 04:41:10
seq0[:] = seq[:]

495:デフォルトの名無しさん
07/12/26 06:49:25
seq0 = seq1
浅いコピー

seq0[:] = seq[:]
普通のコピーになってるが、seq0が初期化されてる必要がある。

seq0 = [i for i in seq1]
普通のコピー

seq0=[]
for i in seq1: seq0.append(i)
普通のコピー

496:419
07/12/26 08:48:24
最終的に、演算子を自分で定義しました。
レス下さった方々、ありがとうございました。

class int32(int):
def __int2long(self, n):
if n >= 0:
return long(n)
else:
return long(0xffffffff - n - 1)

def __long2int(self, n):
if n & 0x80000000: # negative
return int(-2**31 + (n & 0x7fffffff))
else: # positive
return int(n & 0x7fffffff)

def __and__(self, y):
return self.__long2int(self.__int2long(self) & self.__int2long(y))

def __or__(self, y):
return self.__long2int(self.__int2long(self) | self.__int2long(y))

def __lshift__(self, y):
n = self.__int2long(self) << y
return int32(self.__long2int(n))

def __rshift__(self, y):
n = self.__int2long(self) >> y
return int32(self.__long2int(n))


497:デフォルトの名無しさん
07/12/26 08:52:16
>>490
オマエのパソコン

498:デフォルトの名無しさん
07/12/26 10:52:27
>>496
>>> from ctypes import c_int as int32
>>> 2 << 30
2147483648L
>>> int32(2 << 30).value
-2147483648


499:419
07/12/26 11:18:35
>>498
ああ、そんなのがあるんですか。
ありがとうございます。知りませんでした。

ただ、2.3でも2.5でも動くようにしたいので、
2.3が消え去るまでは>>496の方法でやろうと思います。

500:デフォルトの名無しさん
07/12/26 16:00:50
2.3が消え去るまでって・・・

オレなんか未だに 1.5.2 で動くコードを書かされてる。
つまり消えない。

501:468
07/12/26 16:53:04
そういえば最近読んだironpythonの本にも>>474
encodeとdecodeの書式で取り扱うみたいに書いて
あったな…物忘れが激しすぎな罠㌧

>>500
ちょっと関連するかもしれないのだけど
PyrexとCythonのコードdiff取って読んでみたら
なんとなくだけどCython微妙

三項演算子、切捨て除算、#ifdef、+=、とか対応してる
けど、なんかコードが助長になってると思う。
error_goto_if_null() とか module.py_result() とか

isingmodel: pyising.pyx@4ecf71b2c0b0
URLリンク(hg.sharesource.org)
Cに変換する用途なんだからそんなの別にいいじゃんとか
言われると、その通りだとは思うけどさ

というかPyrexのドキュメントがわかりにくすぎるのが
いけないと思うんだ。わかりやすく書こうよ... orz

502:デフォルトの名無しさん
07/12/26 16:58:29
ごめん#IfdefはPyrexでも対応してるな

503:デフォルトの名無しさん
07/12/26 20:27:19
>>501
わかりにくすぎる

504:デフォルトの名無しさん
07/12/27 02:07:45
質問です
コードを読むときのエディタは
何を使ってますか?

505:デフォルトの名無しさん
07/12/27 02:20:06
ファイル単位で読むときはVim
プロジェクト単位で読むときはEclipseかな。
われながらつまんない回答だとおもう。

506:デフォルトの名無しさん
07/12/27 08:12:03
自分用ライブラリってどこに配置するのがいいですか?

507:デフォルトの名無しさん
07/12/27 08:38:58
>>506
どこでもいい。$HOME/lib/pythonとか。
あとは$PYTHONPATHを設定するだけ。

508:デフォルトの名無しさん
07/12/27 09:08:54
djangoでファイルのアップロード試してみたんですが
50MBくらいまでならなんとか平気で動くんですけど
100MB近くになるとサーバー自体が重たくなって
500MBクラスのものを試すと数十分固まったあげく
最後にエラーで中断されてしまいます
python恒例のオンメモリで全部処理する罠にはまってるのでしょうか?
どなたかうまく回避しているかたがいらっしゃいましたら教えていただけないでしょうか



509:デフォルトの名無しさん
07/12/27 09:26:10
え…pythonってオンメモリで全部処理するの…?

510:デフォルトの名無しさん
07/12/27 10:08:37
実装依存の問題を言語のせいにするのはゆとり教育の弊害?

511:デフォルトの名無しさん
07/12/27 10:15:25
ヒソヒソ( ゚д゚)パイソン(゚д゚ )オンメモリ…

512:デフォルトの名無しさん
07/12/27 10:20:58
話がよく分からんのだがディスクスワップのこと?
OSの仕事だと思うんだけど


513:デフォルトの名無しさん
07/12/27 10:36:03
これはひどい
URLリンク(www.youtube.com)

514:デフォルトの名無しさん
07/12/27 11:48:07
python の source を色つきでカッコよく印刷するのって
何を使ってますか?

できれば unix 環境で使えるもの希望

515:デフォルトの名無しさん
07/12/27 14:48:57
聞いた場所が間違ってたようですので移動します

516:デフォルトの名無しさん
07/12/27 15:38:31
>>515
つEmacs

517:デフォルトの名無しさん
07/12/27 16:34:17
py2htm

とかてきとーにいってみる

518:516
07/12/27 17:16:51
アンカー間違った
>>514
つEmacs

519:デフォルトの名無しさん
07/12/27 17:22:04
>>517
あー、難しく考えてた。
htmlとcss使えばいいのか。


520:デフォルトの名無しさん
07/12/27 18:42:24
>>519
PyXR: Package c:\python24\lib\site-packages\win32\lib
URLリンク(pyxr.sourceforge.net)

とか見た目がよいかんじなのでおすすめ

[pythonpath]
usePythonpath = 0
exclude =
include = c:\Python25\Lib\xml

という具合にsetting.cfgに指定してあげてpython webserver.pyで
URLリンク(localhost:8088)にアクセスすればすぐ試せるよ

excludeとincludeの指定の仕方がワケわからんからはまると思うけど
たぶん簡単にできるかも。というか俺が知りたい…>>指定の仕方

なんかexcludeで弾いてやらないとsite-pacage下の全ファイルを
ドキュメントに変換し始めて止まらなくなったりすることが…

## pageText.pyも関係あるみたいだったので追記
if __name__ == '__main__':
    pt = pageText("/pysrc", write=open("output.htm", "w").write)
    pt.writeFileText("c:\\python25\\lib\\xml\\__init__.py")
    #pt.writePathText("/c/python25/lib/")
    #pt.writeRootText()

521:デフォルトの名無しさん
07/12/27 23:14:07
>>514
a2ps --prolog color がオヌヌメ。


522:デフォルトの名無しさん
07/12/28 05:57:41
reprって何の略ですか?

523:デフォルトの名無しさん
07/12/28 08:24:53
representation(表現)

524:デフォルトの名無しさん
07/12/28 08:42:33
ありがとうございます

525:デフォルトの名無しさん
07/12/28 09:07:44
環境変数PYTHONPATHをpythonコード内で設定しても効かないのでしょうか?
import os
os.environ['PYTHONPATH'] = パス
って感じにしてからimportしてるのですが
うまくimportできません。
コード内でモジュールサーチパスを指定するにはどうしたらいいですか?

526:デフォルトの名無しさん
07/12/28 09:32:02
sys.path

527:デフォルトの名無しさん
07/12/28 09:47:48
>>526
ありがとうございました

528:デフォルトの名無しさん
07/12/28 12:17:29
MatchObjectオブジェクトとか
RegexObjectオブジェクトとか
くどくね?
何でオブジェクト二回言うの?

529:デフォルトの名無しさん
07/12/28 12:58:47
SCSIインターフェース

530:デフォルトの名無しさん
07/12/28 13:28:40
ということは Object を略して O にすればそんなに気にならなくなるわけだな

MatchO オブジェクト

マッチョ!!

531:デフォルトの名無しさん
07/12/28 13:56:36
>>529
たしかにSCSIインターフェイスっておかしいね

532:デフォルトの名無しさん
07/12/28 14:02:12
リストの末尾への追加が
list.append('hoge')か
list += ['hoge']しかないのって冗長じゃね?
PHPなら
$list[] = 'hoge'
という書き方ができる。
PHPより冗長ってどんだけ~

533:デフォルトの名無しさん
07/12/28 14:15:58
>>531
おかしくはない。

534:デフォルトの名無しさん
07/12/28 14:59:41
import~と
from~import~の使い分けってどうやってますか?
何かコツなどあれば教えて下さい。

535:デフォルトの名無しさん
07/12/28 15:05:45
>>508
Python はリスト処理言語なんだから
そんな低レベルな用途に使っちゃ遺憾

536:デフォルトの名無しさん
07/12/28 15:19:30
ageてるのはみんな釣りなん?

537:デフォルトの名無しさん
07/12/28 15:26:50
urllib.urlopen()でwikipediaのページを取得すると、
Error: ERR_ACCESS_DENIED
というエラーになります。
どうも拒否られているみたいです。
urllib.urlopen()を使ってwikipediaを取得するにはどうしたらいいですか?

538:デフォルトの名無しさん
07/12/28 15:27:23
>>534
後で読みやすい方で書けばおk

from A import X, Y
これは、ソースの先頭を見たときに X と Y を使っていることが分かる。

import A
これだとソース本文を見たときに
A.hoge()
A.boge()
といった処理がAに依存していることが分かる。


539:537
07/12/28 15:43:49
urllibの説明に
現在のところ、以下のプロトコルだけがサポートされています: HTTP、 (バージョン 0.9 および 1.0)
と書かれていました。今時http1.0!?
これってバーチャルホストすらできないプロトコルですよね
もう古いのかと思い
urllib2にしたら、403 forbiddenになりました
googleは問題なく取得できるのですが…
pythonはwikipediaに嫌われている?

540:デフォルトの名無しさん
07/12/28 15:50:46
>pythonはwikipediaに嫌われている?
自分の力量不足をpythonのせいにしやがって。
氏ねよ屑。
User-agentを送ってないから弾かれているだけだろ。


541:デフォルトの名無しさん
07/12/28 16:19:11
>>540
確かにUAをセットしたら取得できました
ありがとうございました

542:デフォルトの名無しさん
07/12/28 16:21:34
HTTPライブラリでデフォのUser-Agentがないのもめずらしなとおもって試してみたら
デフォの"User-Agent: Python-urllib"がブラック扱いされてるようだぜ?
とりあえず>>540は便所掃除で風説の流布は勘弁してやる。

543:デフォルトの名無しさん
07/12/28 16:33:53
やっぱり嫌われてるんじゃん・・・
ブラック扱いってどんだけ~
グイドがgoogleの従業員だからか

544:デフォルトの名無しさん
07/12/28 17:05:24
pyscripterでコード書いてるんですが
エディタ部の色が白いので目が痛いです
色をかえる方法あったら教えて下さい

545:デフォルトの名無しさん
07/12/28 17:08:48
pythonでアタックツール書いた奴がいるんじゃね?

546:デフォルトの名無しさん
07/12/28 17:11:03
uaなんていくらでも詐称可能だから
ブラックリスト入りさせることにどれだけの効果があるのか疑問
やはり嫌がらせ的なものとしか考えられない・・

547:デフォルトの名無しさん
07/12/28 17:39:29
cgiの拡張子を.spamにしたのが効いたんじゃね

548:デフォルトの名無しさん
07/12/28 18:04:49
ホワイトリスト方式なんじゃねーの?

549:デフォルトの名無しさん
07/12/28 18:15:26
pythonに限らず、libwww-perlとかもけっこう弾かれているそうな
URLリンク(www.hazama.nu)

550:デフォルトの名無しさん
07/12/28 18:21:03
>>540
wwwwww

551:デフォルトの名無しさん
07/12/28 23:23:35
Pythonでユニコード文字列という場合、文字コードのutf-8とはまったく関係ないのでしょうか?
一般的にはunicodeの実装がutf-8ですよね?

552:デフォルトの名無しさん
07/12/29 00:23:34
>>551
全く関係ないことはないが、関係ない。
unicodeは文字コード、utf-8はエンコーディング方式。

553:デフォルトの名無しさん
07/12/29 00:24:03
Googleの次はWikipediaか。
バーボン送りにしとけ。

554:デフォルトの名無しさん
07/12/29 00:28:59
from
って予約後?

555:デフォルトの名無しさん
07/12/29 00:32:24
うん

556:デフォルトの名無しさん
07/12/29 00:34:32
>>551
>Pythonでユニコード文字列という場合、文字コードのutf-8とはまったく関係ないのでしょうか?
関係ない。
Pythonでいうユニコード文字列は unicode object と
u'foo' / u'\u1234' 形式のリテラル表現あたりのこと。

>一般的には unicode の実装が utf-8 ですよね?
PerlやRubyとかのエンコーディングはね。
Pythonは UCS-2かUCS-4。
Windows, JavaはUTF-16。
(Python以外はうろ覚えだけど)

557:デフォルトの名無しさん
07/12/29 00:40:34
>>> import keyword
>>> "from" in keyword.kwlist
True

558:デフォルトの名無しさん
07/12/29 02:49:52
>>549
uaを変更することすら出来ない程低レベルなスパマーが多いから
uaのフィルタリングも一定の有効性はあるってことかな

559:デフォルトの名無しさん
07/12/29 08:57:17
>>552 >>556
ありがとうございます。
確認できて安心しました。

unicode(text, "utf-8")
utf-8の文字列をユニコード文字列に変換する

とかで混乱してましたがすっきりしました。


560:デフォルトの名無しさん
07/12/29 09:06:44
他言語だと
長い文字列を、改行を挟んで記述することがありますが
pythonだと改行が意味を持つのでうまく出来ません

$str = "hogehogehoge" .
"mogemogemoge" .
"pogepogepoge"

みたいな記述法をpythonでするにはどうしたらいいですか?

561:デフォルトの名無しさん
07/12/29 09:17:26
>>560
.の変わりに\を使う

562:デフォルトの名無しさん
07/12/29 09:25:53
>>561
oh
ありがとうございました

563:デフォルトの名無しさん
07/12/29 10:21:33
>>558
つまり >>540 は spammer を増やした訳だな

564:デフォルトの名無しさん
07/12/29 11:47:19
ドキュメンテーション文字列って、文字列だから、
中間コードにされても実際にメモリは占有するよね?
コメントの方がよくね?

565:デフォルトの名無しさん
07/12/29 12:22:35
対話環境でhelp()で見れるという利点もある。
まあメモリの占有が問題になるほど大量にドキュメントを書くこともないだろうし。

566:デフォルトの名無しさん
07/12/29 12:25:13
>>564
勝手に -OO オプションでも付けてろよ

567:デフォルトの名無しさん
07/12/29 13:35:32
PythonでCGI書いてるんですが、コンソールにログを出力する方法はないでしょうか?
今は
print "Content-type: text/html;charset=utf-8\n"
の後に出力してHTMLを返すようにしてるんですがこれだと面倒なので・・・

568:デフォルトの名無しさん
07/12/29 15:34:06
content-type:~

書かなかったらCGIじゃないじゃん

569:デフォルトの名無しさん
07/12/29 16:25:33
デバッグで途中の変数の値とか表示させたいだけなんですが。

570:デフォルトの名無しさん
07/12/29 16:32:38
CGIなのにコンソール?

571:デフォルトの名無しさん
07/12/29 16:33:43
WinならOuptutDebugStringに出してODSモニタで見られそうなもんだが
具体的には知らん。

572:デフォルトの名無しさん
07/12/29 17:00:11
>>567
def debug_msg(msg):
  open('/tmp/debug.log', 'a').write('** debug: ' + msg + '¥n')
を定義して debug_msg('var='+repr(var)) とかして使う。
そしてコンソールで
tail -f /tmp/debug.log
とすれば、デバッグメッセージが表示される。
本格的にするにはloggerかなんかを使うんだろうけど。

573:デフォルトの名無しさん
07/12/29 17:15:37
>>569
cgitbって言うの使えば、エラー起きた前後の関係ありそうな変数の中身
自動で表示してくれるよ。

import cgitb; cgitb.enable()

574:デフォルトの名無しさん
07/12/29 18:40:08
>>572
closeはいつすればよいですか?

575:デフォルトの名無しさん
07/12/29 18:44:46
>>572
flush はいつすればよいですか?

576:デフォルトの名無しさん
07/12/29 19:08:48
質問。
ファイルからバイナリデータを読み込んで
1バイト毎の数値のリストとして扱いたいんですが
文字列から数値への変更方法がわかりません。
すいませんが教えてください。

577:デフォルトの名無しさん
07/12/29 19:10:57
chr ord

578:デフォルトの名無しさん
07/12/29 19:24:48
>>577
ありがとうございます! できました!

579:デフォルトの名無しさん
07/12/29 19:37:23
>>574-575
どちらもしなくていいですよ

580:デフォルトの名無しさん
07/12/29 20:12:20
>>574-575
def debug_msg(msg):
open('/tmp/debug.log', 'a', 0).write('** debug: ' + msg + '\n').close()

581:デフォルトの名無しさん
07/12/29 20:20:13
そもそも毎回open()するのが。。。
CGIならstderrに出せばWebサーバのログに残るし
たいがい出力先もサーバの設定で変えられる。

582:デフォルトの名無しさん
07/12/29 20:25:23
Pythonで動くRubyやPerlって誰か作ってないかな。すごく欲しくなってきた。
変態っぽい環境だけど、将来需要ありそうな予感。

583:デフォルトの名無しさん
07/12/29 21:35:12
変態的という以外の利点を教えてくれ

584:デフォルトの名無しさん
07/12/29 21:46:26
execvで充分

585:デフォルトの名無しさん
07/12/29 21:57:31
>>583
Linux/Unixの各所に残っている腐れ縁のPerlのツールをPythonで
動かせれば、Perl猿人を入れなくて済む。
それとCRubyよりCPythonの方が規模というか依存が少ないので
小が大を兼ねる状態になっていい感じと思った。

これが実装できればグーグルに入社できるかもね!

586:デフォルトの名無しさん
07/12/29 22:09:21
>>582
Rubyなんて絶対に必要ないだろwww

587:デフォルトの名無しさん
07/12/30 00:35:14
Is perl interpreter that written in python perl or python ?

588:デフォルトの名無しさん
07/12/30 00:58:34
>>587
その英語ネイティブに言っても通じないわ(wwwwwwwwwwwwwwwwwww

589:デフォルトの名無しさん
07/12/30 01:16:02
ネイティブが書かない英語だが、「まるでわからん」と言い出すネイティブがいたら、
そいつは単なる馬鹿か、あるいは「レスって何ですか?」とか言っちゃうタイプだな。

590:デフォルトの名無しさん
07/12/30 01:22:30
わかりやすく2文に分けろ。

591:デフォルトの名無しさん
07/12/30 01:26:14
perl interpriterの後は
that(which) is written in Python か
writenn in Python
じゃね?
それと、Per、Pythonみたいな固有名詞は大文字から始めるんだぜ。
 
 
 
おまいの英語、中学生からやり直した方がよくね?

592:デフォルトの名無しさん
07/12/30 01:27:24
>>589
文法的に間違っている英語が分からないと馬鹿呼ばわりされるのか.
よい勉強になったよ.

593:デフォルトの名無しさん
07/12/30 01:28:39
なんつーか・・・ム板ってスルー力ゼロだよな・・・

594:デフォルトの名無しさん
07/12/30 01:47:30
高卒の俺が考えてみた。添削おね。
Is it Perl or Python which is a Perl interpreter written in Python?
冗長だから、Is it Perl or Pythonで一回切りたい。見出しっぽく。
Is it Perl or Python, a Perl interpreter written in Python?
みたいな書き方っていかんのだろうか。

URLリンク(jp.youtube.com)

595:デフォルトの名無しさん
07/12/30 02:03:08
インタプリタがどの言語か、ってとこから可笑しいだろ…

596:デフォルトの名無しさん
07/12/30 02:12:26
いや、そんな直訳で受け取られても…。
>>587>>582に対する皮肉として書かれたんだろうし。

597:デフォルトの名無しさん
07/12/30 02:15:56
文法的に間違っている英文なんて直訳すらできないだろ(wwwwwwwwwwwwww

598:デフォルトの名無しさん
07/12/30 02:23:46
firefoxでURLを開くことを試しています。環境はUbuntu7.04です。
成功
os.system("firefox URLリンク(yahoo.co.jp)<)"])
subprocess.call(["firefox", "URLリンク(yahoo.co.jp)<)")
os.spawnlp(os.P_NOWAIT, "firefox", "URLリンク(yahoo.co.jp)")
なぜspawnだとうまくいかないのでしょうか。

599:デフォルトの名無しさん
07/12/30 02:25:17
>>596
だから中学生からやりなおせって(WWWWWW

600:デフォルトの名無しさん
07/12/30 03:49:15
print 'a','b'

ってやるとaとbの間に空白が入って「a b」って出力されるけど
この空白を挿入させないようにする方法ってありませんか?

601:デフォルトの名無しさん
07/12/30 03:55:36
print 'a' + 'b'
区切りで半角スペースが入るのは仕様ってどっかに書いてた。

602:デフォルトの名無しさん
07/12/30 04:15:01
>>601
トンクス。
仕様なら諦めます。

603:デフォルトの名無しさん
07/12/30 04:19:54
printうんぬんの話題を見てて思うのだが、
これって対話モード時のリターン値の"表示"の延長であって、
プログラムの"出力"用途じゃない希ガス。


604:デフォルトの名無しさん
07/12/30 04:54:00
>>598
質問からは少しずれるけど
標準ライブラリにwebbrowser.open(url)っていうのがあるよ。
2.5からはブラウザのタブにも対応してる。

605:デフォルトの名無しさん
07/12/30 07:25:37
前スレ
スレリンク(tech板)

547 :デフォルトの名無しさん:2007/11/18(日) 21:51:04
printで一文字ずつ表示させると、間にスペースであいてしまうのはなぜ?

例)
x="hoge"
for y in x:
print "%c" % ord(y),

出力:
h o g e

548 :デフォルトの名無しさん:2007/11/18(日) 21:56:38
print i, j, k, l としたときに見やすいから


549 :デフォルトの名無しさん:2007/11/18(日) 22:10:06
printは主にデバッグ用だから


くっつけたいなら、print''.join("%c" % ord(y) for y in x)

550 :デフォルトの名無しさん:2007/11/18(日) 22:15:11
sys.stdout.write()でもいいよ


606:デフォルトの名無しさん
07/12/30 13:20:54
Python3.0では

print(1,2,3) # 1 2 3
print(1,2,3,sep='') # 123
print(1,2,3,sep='|' # 1|2|3

607:デフォルトの名無しさん
07/12/30 14:34:19
)

608:デフォルトの名無しさん
07/12/30 14:37:01
python で書かれた 2ch ブラウザってありますか?

609:デフォルトの名無しさん
07/12/30 14:46:45
昔あったな

610:デフォルトの名無しさん
07/12/30 16:02:26
webprogramを書くにあたっての
python特有の強みって何ですか?

611:デフォルトの名無しさん
07/12/30 16:03:10
特にありません

612:デフォルトの名無しさん
07/12/30 16:56:29
WebアプリケーションでPHPとPythonどっちがいい?

613:デフォルトの名無しさん
07/12/30 17:16:26
PHPに決まってるだろハゲ

614:デフォルトの名無しさん
07/12/30 17:23:36
PHPはなんちゃって仕様が多すぎていややもう

615:デフォルトの名無しさん
07/12/30 17:24:11
あえて挙げるならASP

616:デフォルトの名無しさん
07/12/30 17:31:46
>>614
kwsk

617:デフォルトの名無しさん
07/12/30 20:52:49
外人のPythonの発音がどうしてもパイパンにしか聞こえません><

618:デフォルトの名無しさん
07/12/30 21:04:20
>>617
耳がわるいもしくは脳内エロ辞書が充実しすぎ。

619:デフォルトの名無しさん
07/12/30 21:13:01
>>480
VS2008だとRuntimeErrorが発生してVS2003でコンパイルしてくださいというエラーメッセージが表示される。

620:デフォルトの名無しさん
07/12/30 21:17:56
>>600どれでも好きなの使へ
print 'a''b'
print 'a' 'b'
print 'a'+'b'
print '%s%s'%('a','b')

621:デフォルトの名無しさん
07/12/30 22:07:35
Microthreadを使いたいんだけど、Stackless Pythonとgreenletだとどれぐらい速度が違うの?
たぶんStacklessのほうが速いと思っているんだけど。

622:デフォルトの名無しさん
07/12/30 22:15:48
>>612
URLリンク(q.hatena.ne.jp)

623:デフォルトの名無しさん
07/12/30 22:18:22
またruby厨かよ、もういいよ

624:デフォルトの名無しさん
07/12/31 10:02:20
pythonでmdbに接続するにはどうしたらいいのでしょうか?
win32com?

625:デフォルトの名無しさん
07/12/31 10:12:03
「pythonで」の「で」って何よって話

import win32com.client
import adodb

OpenOffice.org Scripting with Python



626:デフォルトの名無しさん
07/12/31 10:28:03
説明不足ですまんこ

pythonを使ってMSAccessを操作したいのです。
INSERTなどはどうしたらいいのでしょう?

ちなみにみなさん開発環境ってなに使ってます?
やっぱりテキストエディタ?


627:デフォルトの名無しさん
07/12/31 10:33:38
>>626
URLリンク(xwave.exblog.jp)

628:デフォルトの名無しさん
07/12/31 10:46:12
pythonからmdb操作とか需要ないのかね・・・

説明少なすぎて解りません。
実力がないだけか

629:デフォルトの名無しさん
07/12/31 10:50:58
win32comで繋ぎに行くだけであとはVBからやるのと大差ないんだが
そのwin32comの説明が少ないという罠

単にDB使いたいだけならSQLite使っちゃうしね

630:デフォルトの名無しさん
07/12/31 11:14:25
既にmdbを使用してる状況なのでSQLLiteっていう選択肢はないので・・・

詳しい説明が掲載されている場所はないですかね?

631:デフォルトの名無しさん
07/12/31 11:18:44
つか、何が分からんのか分からん。

632:デフォルトの名無しさん
07/12/31 12:07:24
URLリンク(xwave.exblog.jp)

633:デフォルトの名無しさん
07/12/31 12:22:37
cn = win32com.client.Dispatch('ADODB.Connection')
cn.Open('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.mdb')
cn.Execute(u"insert into 日本語テーブル (fileda, fieldb, 日本語フィールド) values (%d, '%s', '%s')" % (5, '6', u'七'))
rs = win32com.client.Dispatch('ADODB.Recordset')
rs.Open(u'select * from 日本語テーブル', cn, 1, 3)
while not rs.EOF:
print '%d, %d, %s, %s' % (rs.Fields('id').Value, rs.Fields('a').Value, rs.Fields('b').Value, rs.Fields(u'日本語フィールド').Value, )
rs.MoveNext()
rs.Close()
cn.Close()

634:デフォルトの名無しさん
07/12/31 12:54:31
おぉ、コード書いてもらえると解りやすか!

pythonはじめたばかりだけど、みんなどんな用途に使ってる?

635:デフォルトの名無しさん
07/12/31 13:09:58
バッチ処理に関数計算機にGUIアプリにwebアプリに…
ようするになんでも。

636:デフォルトの名無しさん
07/12/31 15:07:17
テキスト処理周りでいろいろ。

637:デフォルトの名無しさん
07/12/31 18:19:39
単調な作業とかをこなすときに、小さなツールガリガリ書いてる


638:デフォルトの名無しさん
07/12/31 19:22:50
僕たちが従事するドカタ仕事には欠かせないアイテムですね!

639:デフォルトの名無しさん
07/12/31 20:43:29
俺はドカタ仕事はJava使ってるので
Python弄ってると心が癒される

640:デフォルトの名無しさん
07/12/31 20:58:23
>>639
ドカタ乙(wwwwwww

641:デフォルトの名無しさん
07/12/31 21:29:41
>>639
会社で年越しでつか?

642:デフォルトの名無しさん
07/12/31 21:52:43
そうです

643:デフォルトの名無しさん
07/12/31 22:03:04
使い捨ての低賃金労働者が、会社で年越しか。
Pythonで憂さ晴らしでもしないと、やってられないよね。

644:デフォルトの名無しさん
07/12/31 22:12:36
職業人はマ板いってくれんか

645:デフォルトの名無しさん
07/12/31 22:14:06
そうそう。
ここはニートでPython覚えればGoogleに入れると信じて疑わないメルヘン専用のスレですよ。

646:デフォルトの名無しさん
07/12/31 23:07:05
x メルヘン
o メンヘル


647:デフォルトの名無しさん
07/12/31 23:32:03
幾スレにも渡ってメルヘンと書き続けて来た>>645
よいお年を

648: 【大吉】 【233円】
08/01/01 00:07:51
ことよろ


649: 【ぴょん吉】
08/01/01 00:09:32
ことしもPythonよろ

650:デフォルトの名無しさん
08/01/01 00:11:36
あけおめ
Python3000とそれに隠れがちなPython2.6に期待

651:デフォルトの名無しさん
08/01/01 00:22:47
会社で年越しでつ
ことよろ

652:デフォルトの名無しさん
08/01/01 04:45:59
Python2.99999....とかで止まらないかなぁ。

653:デフォルトの名無しさん
08/01/01 05:41:10
2.999... という循環小数は 3 と等しいんだぞ。

654:デフォルトの名無しさん
08/01/01 05:44:51
2.9.6
2.9.7
2.9.8
2.9.9
2.9.9.1
2.9.9.2
...
2.9.9.9
2.9.9.9.1
...
2.9.9.9.9


655:デフォルトの名無しさん
08/01/01 06:10:11
2.999....999...
==
3.1.0 !!!

656:デフォルトの名無しさん
08/01/01 07:31:33
おめでとうございます

657:デフォルトの名無しさん
08/01/01 09:02:20
>>655
それはない

2.6の次の2.7で2.xシリーズは終わりで、
メンテナンスリリースが2.7.1.8.2.8... という妄想ならしたことある

658:デフォルトの名無しさん
08/01/01 09:25:33
なにそのMETAFONT

659:デフォルトの名無しさん
08/01/01 13:56:21
>>652
それはRubyで期待しろwww

660:デフォルトの名無しさん
08/01/01 21:27:28
py***/&+

661:デフォルトの名無しさん
08/01/02 18:23:26
defFnRule = "([0-9][0-9])__(.*)"
ldir = os.listdir( os.getcwd() )
for fn in ldir:
  chk = re.match( defFnRule, fn )
  if chk != None :
    matchList = re.findall( defFnRule, fn )
    newName = matchList[0] + "_" + matchList[1]
    print "New:>> [%s]" % newName

こんなコード書くと、
newName = matchList[0] + "_" + matchList[1]
ここで怒られるんだが…
連結できるのはstrではなくタプルだ…って意味が良く分からんのですが…。

662:デフォルトの名無しさん
08/01/02 18:48:30
>>> import re
>>> L = re.findall('(\d\d)__(.*)', '00__foo.txt')
>>> L
[('00', 'foo.txt')]
>>> L[0] + '_'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: can only concatenate tuple (not "str") to tuple

663:デフォルトの名無しさん
08/01/02 19:07:16
>>662
ありがとう。いろいろいじってて、どうも根本的に二重リスト?みたいになってるのは理解した。

    n0 = matchList[0][0]
    n1 = matchList[0][1]
    newName = n0 + "_" + n1
    print "New:>> [%s]" % newName

こんな感じで稼働するのは確認。
でも、なんで二重になったのか、よくわからん。
python、悪くない感触なんだけど…うーん。

664:デフォルトの名無しさん
08/01/02 19:10:33
newName = chk.group(1) + "_" + chk.group(2)

665:デフォルトの名無しさん
08/01/02 19:45:40
>>663
defFnRule内に複数のグループがあるから

>>> import re
>>> re.findall("(.)(.)", "123456789")
[('1', '2'), ('3', '4'), ('5', '6'), ('7', '8')]

666:デフォルトの名無しさん
08/01/02 20:11:31
>>663
つまりこんな感触だといいわけだなw

re_once : あるかないかだけの正規表現モジュール(新規)
re : re_onceに加えてnまで使える正規表現モジュール(既存)


ついでにfor、rangeとかも増やした方がいいな

for_once : 0(実行しない), 1(1回だけ実行)
for_n : 0(実行しない), 1(1回だけ実行), n(n回実行)

range_0() : []を返す
range_1() : [0]を返す
range_n(n) : [0,1,2...n-1]を返す


667:デフォルトの名無しさん
08/01/02 20:11:39
>>664も書いてるように
いっぺんre.match()して結果chkを得てるのに
またre.findall()するのは如何なものか。

668:デフォルトの名無しさん
08/01/02 20:16:38
>>661
ldirとかchkとか、わざわざ変数用意するの読みづらくね?

669:デフォルトの名無しさん
08/01/02 21:06:21
その前に正規表現をコンパイルしろよ

670:デフォルトの名無しさん
08/01/02 22:21:47
>>661
どこ出身だ
なんかmicrosoftのコードを思い出すんだが

671:デフォルトの名無しさん
08/01/02 22:24:30
二重になってる理由は、つまり正規表現の処理対象にListが取れるから、でいいのかなぁ
いや、>>665見ると違うなぁ…。というか、これは俺が正規表現良く分かってないのも原因かな。

>>669
ごめん。でもファイル名の一括変更やるだけの作り捨てscriptだし、ついでにお試しでpython使っただけだから。
>>668
否定しないw
>>667
言われてみればその通りだなぁ。
要は条件に合わないファイルを無視しようとして、なんとなく書いてたらああなっただけで、他意はない。


672:デフォルトの名無しさん
08/01/02 22:25:51
>>670
色々。C++、Java、PHPとか。
でも出身という話になると…N88BasicとかVBとかってあたりかも。
とりあえず、動いたんで、もう消えまする。
ありがとうございました。>皆様

673:デフォルトの名無しさん
08/01/02 22:43:24
re.match でコンパイルされてキャッシュされるからいいじゃない

674:デフォルトの名無しさん
08/01/02 23:30:38
>>673
前から気になってたんだけど、re.matchとかre.searchってコンパイルした正規表現をキャッシュしてくれるのかな?
それってどっかに書いてある?

675:デフォルトの名無しさん
08/01/02 23:41:02
ソースに書いてある。


676:デフォルトの名無しさん
08/01/02 23:42:27
re モジュール見るとキャッシュしてるね
ただ _MAXCACHE = 100 を越えるとキャッシュを全てクリアするようになってる

677:デフォルトの名無しさん
08/01/02 23:43:01
re.py:

_cache = {}
_cache_repl = {}

_pattern_type = type(sre_compile.compile("", 0))

_MAXCACHE = 100

def _compile(*key):
    # internal: compile pattern
    cachekey = (type(key[0]),) + key
    p = _cache.get(cachekey)
    if p is not None:
        return p

678:デフォルトの名無しさん
08/01/03 11:01:39
keyの計算の手間ぶん損してない?

679:デフォルトの名無しさん
08/01/03 16:19:59
>>671
4. パターンにもっと力を
URLリンク(www.python.jp)
Python reモジュールで使える正規表現演算子
URLリンク(www.kt.rim.or.jp)

>>> p = re.compile('(a(b)c)d')
>>> m = p.match('abcd')
>>> m.group(0)
'abcd'
>>> m.group(1)
'abc'
>>> m.group(2)
'b'

>>> m.groups()
('abc', 'b')

グルーピングまわりで躓いてると思う。match とか search の項目は
解説してるとこ多いけど よく使う findall はあまり解説されてない罠。
findall は厳密には正規表現にはカテゴライズされないからか…

680:679
08/01/03 16:50:03
>>671
URLリンク(kazamachi.blogspot.com)
>具体的には、ElementPathはXPathを分解するのにre.filndall()メソッドを使ってリスト
>の要素としてタプルが含まれていることを期待しているのですが、IronPython 1.0.1の
>re.findall()メソッドはリストのみを返すためにエラーとなります。

ごめんたぶんグルーピング関係ないw

681:デフォルトの名無しさん
08/01/03 17:12:25
なんという不思議レス

682:679
08/01/03 18:41:20
>>> re.findall("(.)(.)", "123456789") ## [Tuple(g(0),g(1)),…]
[('1', '2'), ('3', '4'), ('5', '6'), ('7', '8')]

>>> re.findall("((.)(.))", "123456789") ## [Tuple(g(0),g(1),g(2)),…]
[('12', '1', '2'), ('34', '3', '4'), ('56', '5', '6'), ('78', '7', '8')]

>>> re.findall("(..)", "123456789") ## [g(0),…]
['12', '34', '56', '78']

やっぱグルーピング関係あるかも orz

683:デフォルトの名無しさん
08/01/03 18:43:39
>>681
俺も勉強中なんよ(爆)
スルーしる

684:デフォルトの名無しさん
08/01/03 19:05:09
ヒント: help(re.findall)

685:デフォルトの名無しさん
08/01/03 19:15:09
>>682
グループの数によって変わる。
グループなし、グループ一つはマッチリストかグループリスト
>>>re.findall('test','testtesttest')
['test', 'test', 'test']
>>>re.findall('(tes)t','testtesttest')
['tes', 'tes', 'tes']
複数のグループはグループをタプルで返してマッチしたものをリストで返す
>>> re.findall('(t)e(s)t','testtesttest')
[('t', 's'), ('t', 's'), ('t', 's')]

686:デフォルトの名無しさん
08/01/03 19:24:47
((.)(.)) グルーピングが三つ揃っておっPython

687:デフォルトの名無しさん
08/01/03 22:32:54
誰か使いやすい開発環境教えてちょんまげ


688:デフォルトの名無しさん
08/01/03 22:43:52
Pythonじゃないけど
某スレで脳内環境が最強だと話題になってた

689:デフォルトの名無しさん
08/01/03 22:45:37
クセのある環境ばかりで使いづらい
みんなどんな環境?

690:デフォルトの名無しさん
08/01/03 23:06:50
>>689
テキストエディタ(emacs or vi)

691:デフォルトの名無しさん
08/01/03 23:10:37
クセありすぎだろそれ

692:デフォルトの名無しさん
08/01/03 23:47:05
俺もvimなんだけど。最初はバカにしてたけど、
pythonに限って言うとかなり使いやすい。

693:デフォルトの名無しさん
08/01/03 23:53:56
idleとpydevを使ってます
idleは軽くていいんだけど、補完がpydevに比べるといまいち
ただpydevはstdinとかのエンコーディングがNoneになっていて
文字コードの変換とかしたらこけて、その解決法が良く分からないのが難しい
このスレのPert20にその話題が出ているみたいなんですけど、誰か>>1のまとめサイトに
アップしていただけないでしょうか?

694:デフォルトの名無しさん
08/01/04 00:11:24
>>692 vimで補完できる??

695:デフォルトの名無しさん
08/01/04 00:23:08
俺はxyzzyでpy-modeだな

696:デフォルトの名無しさん
08/01/04 02:41:50
ソースの中に日本語書かないならPythonWinで結構用が足りてる。

697:デフォルトの名無しさん
08/01/04 03:52:45
>>694
もちろん。

698:デフォルトの名無しさん
08/01/04 05:01:34
>>594
ようつべわらた

699:デフォルトの名無しさん
08/01/04 05:36:55
みなさん4tabですか?2tabですか?

700:デフォルトの名無しさん
08/01/04 05:51:50
デパは0.5mgでも4tabだと爆睡しちゃうので2tが限界かな

701:デフォルトの名無しさん
08/01/04 08:13:08
>>697
vimの補完てomni?

702:デフォルトの名無しさん
08/01/04 09:36:03
いろいろ試したけどPyDevの補完が最強

703:デフォルトの名無しさん
08/01/04 09:36:24
>>699
4タブ

704:デフォルトの名無しさん
08/01/04 10:22:11
>>702
Eclipseって起動もっさりしてね?

705:デフォルトの名無しさん
08/01/04 10:28:31
どんなIDEでも基本的にはモッサリしてる

706:デフォルトの名無しさん
08/01/04 10:35:09
Eclipseはプラグインしだい。
何も入ってないのを立ち上げたらびっくりするほど速かった。
立ち上げただけで何も出来なかったけど。

707:デフォルトの名無しさん
08/01/04 11:40:23
How many projects do you open in same workspace ?

708:デフォルトの名無しさん
08/01/04 13:24:54
>>707
14

709:デフォルトの名無しさん
08/01/04 13:25:59
Zero, I mean I'm on wintervacation NOW (wwwwwww.

710:デフォルトの名無しさん
08/01/04 14:11:25
みんなemacsかviだと思ってた
・・しかしpythonをeclipseで書くって凄いな。想像したことも無い
なんか嬉しい事ある?起動もっさりでイラつかない?


711:デフォルトの名無しさん
08/01/04 15:48:38
>>710
CVSとかsvnとかとの連携が楽>eclipse

712:デフォルトの名無しさん
08/01/04 17:32:56
>>711
710はソースコード管理をしない人なんだよ。
その必要がないんだろう。
なぜなら(ry

713:デフォルトの名無しさん
08/01/04 18:29:14
emacs にも pcvs とか psvn とかあるのに…


714:デフォルトの名無しさん
08/01/05 01:11:59
>>710
さすがにviはないな。vimは良いと思うけど。

>>712
EclipseはJavaでは使うけど、他の用途では便利だとはおもわんなぁ。
cvs/svnクライアントも別にIDE連動である必要って感じないし。

でもまぁPythonはスクリプト言語にしては開発環境充実してるよね。
そうやってどれがいいとか選べるのも面白い。

715:デフォルトの名無しさん
08/01/05 01:45:36
vi

716:デフォルトの名無しさん
08/01/05 10:53:04
>>704
朝起きたら一度起動してずっとそのままだから

717:デフォルトの名無しさん
08/01/05 12:47:17
「経験上、ほとんどのプログラマは以下の『宗派』のいずれかに分類される」

経験カルト 最適化カルト 簡単カルト 高速カルト
不確実性カルト 完璧カルト カーゴ・カルト

URLリンク(slashdot.jp)

718:デフォルトの名無しさん
08/01/05 15:37:07
俺は完璧カルトか・・・

719:デフォルトの名無しさん
08/01/05 17:12:43
元記事読んだけど、自分は簡単カルトだった。
Uncertainty Cultはカルトというよりはただの慎重派のような・・

720:デフォルトの名無しさん
08/01/05 20:23:07
macでpythonを始めました.
IDLEで日本語を扱えるようにするにはどうすれば良いですか?
お願いします

721:デフォルトの名無しさん
08/01/05 20:26:57
質問板で聞いてきます
スレ汚しすいませんでした

722:デフォルトの名無しさん
08/01/06 11:51:13
これから勉強するならバージョン3系と2系どっちがいい?

723:デフォルトの名無しさん
08/01/06 12:05:00
>>722
いまから始める程度の知識ならどちらも変わらない罠

安定しているor手に入っている処理系を使えばよかろ

724:デフォルトの名無しさん
08/01/06 12:51:39
3で勉強は無理

725:デフォルトの名無しさん
08/01/06 12:54:13
Py2.0 から Py3.0 への移植に当たって
/ 演算子の挙動変更が一番怖い。
気づかぬところで何かが起こりそうだ

726:デフォルトの名無しさん
08/01/06 14:23:15
>>725
Introduction to Crunchy tutorial video - Crunchy - Learn: programming_tools, demonstration, open-source, cross-platform, interpreter, Python, interactive
URLリンク(showmedo.com)

切り捨て除算//が、普通の除算/になるんだっけか
どこに書いてあるんだ3.0の仕様とか,よくわからん

727:デフォルトの名無しさん
08/01/06 14:45:04
この辺りじゃね?
URLリンク(www.python.org)
URLリンク(docs.python.org)

728:デフォルトの名無しさん
08/01/06 15:19:41
py3000のやること、やらないことリスト
URLリンク(www.python.org)
URLリンク(www.python.org)

729:デフォルトの名無しさん
08/01/06 16:06:13
Alarm clock と表示されて終了してしまう場合,
何が問題でしょうか?
どの部分が問題なのかわからないので対処できずに困っています

730:デフォルトの名無しさん
08/01/06 16:17:37
再現コードが張られないので対処できずに困っています

731:デフォルトの名無しさん
08/01/06 16:40:00
>>726


732:デフォルトの名無しさん
08/01/06 18:36:24
「みんなのpython」 という本を買ったのですが
52pくらいで既に何をしてるか意味がわかりません。
そんな僕でも↑で挙げられていた「pythonで学ぶプログラム作法」
を理解することができるでしょうか?
他にも初心者に分かりやすい入門書があれば教えてください。

733:デフォルトの名無しさん
08/01/06 19:16:54
>>732
Pythonの前に一般常識や日本語を勉強した方がいいと思うぜ。

734:デフォルトの名無しさん
08/01/06 19:27:53
>>732
その本はたぶん一番易しい部類に入る。
もう一冊入門書を買うのは無駄だから、
何がわからないのか整理してからここで質問すべし。
あと対話型シェルでサンプルコードを試すこと。

735:732
08/01/06 20:51:17
ありがとうございます!
頑張って理解できるようにしてみますっ!

736:デフォルトの名無しさん
08/01/06 22:45:38
便乗
初めてのPython買ったんですが、
表紙の絵の意味がわかりません。
なぜねずみなんですか?

737:デフォルトの名無しさん
08/01/06 22:51:34
Pythonクックブック(ウサギ)と並んで、蛇の獲物説が過去スレで言われていたな。

738:デフォルトの名無しさん
08/01/06 22:53:22
日常の細々とした用途なら最初の50ページくらいで間に合うんだよ。
イテレータとかオブジェクト指向とかわざわざ使うこともない

739:デフォルトの名無しさん
08/01/06 23:09:59
プログラミングPythonはヘビだからそれで我慢しる
あとはPythonシリーズ全部ヘビだと見分けが付かなくてよろしくないってのもあるかと

>>738
なんて本の最初の50ページ?

740:デフォルトの名無しさん
08/01/06 23:12:52
>最初の50ページ
初めてのPythonならビルトインオブジェクトの項にすら入っていないな

741:デフォルトの名無しさん
08/01/06 23:37:56
みんPyで確認したらリスト操作の途中だった。
116ページまでは頑張ってみましょう。
みんPyは用例不足なんで、説明の手際はいいけど
プログラムが初めての人にはイメージ沸きにくいね

742:デフォルトの名無しさん
08/01/07 02:53:09
ちょっと端末の再起動をpythonでやりたいのですが、どう書いたらいいのか教えてください

743:デフォルトの名無しさん
08/01/07 02:59:56
>>742
> ちょっと端末の再起動
ここをもっと環境含めて明示的に書いたら教えてくれるかも。

744:デフォルトの名無しさん
08/01/07 03:11:32
携帯のsymbianってOS積んでるX01NKなんです。他のNOKIAでも同じなんですが。。。
WMだと.netで簡単にできたのですが、pythonでもやろうとおもって適当に連想できるコマンドで書いても再起動できないのでどのように書いたらいいのかと思いまして


745:デフォルトの名無しさん
08/01/07 03:20:22
X01NKって法人向け専用でしょ?
会社の端末で遊ぶんじゃありません。

746:デフォルトの名無しさん
08/01/07 03:25:46
いえ、個人で買いましたよ。何せ学生ですからw

747:デフォルトの名無しさん
08/01/07 03:31:46
URLリンク(slashdot.jp)


748:デフォルトの名無しさん
08/01/07 03:48:04
ありです。
でも、それだと、ネットワーク越しのPCを再起動する方法っすよね?オイラがやりたいのは携帯自体を再起動させる方法なんす

749:デフォルトの名無しさん
08/01/07 06:03:15
対象は決まってるんだし、元の方法からその指定部分削れる分、
かえって楽なコードじゃないかと思った俺素人

750:デフォルトの名無しさん
08/01/08 11:28:43
PyDev使ってる方で、IronPython 設定できた方いらっしゃいませんか?
設定しようとすると 以下のエラーが出ます。
...
eclipse\plugins\org.python.pydev_1.3.10\PySrc\interpreterInfo.py, line 15, in Initialize

  File , line 0, in __import__##4

ImportError: No module named os

調べてみたところ 環境変数 IRONPYTHONPATH に %PYTHONPATH%\Lib を 設定すると出来るらしいのですが、ダメでした。
参考:URLリンク(sourceforge.net)

よろしくお願いします。

環境
  WinXP
  Eclipse 3.3.1.1
  PyDev 1.3.10
  CPython2.5.1
  IronPython1.1



751:750
08/01/08 11:51:45
>>750 です。
パソコン再起動したらできました。
Eclipse を 再起動してもできなかったのに。。。

スレ汚しごめんなさい

752:デフォルトの名無しさん
08/01/08 14:08:48
>>751
ランチャーとかから起動すると、
ランチャーが起動したときの環境変数しかみなかったりするよ。

753:デフォルトの名無しさん
08/01/08 15:20:14
×ランチャー
○ローンチャ

754:デフォルトの名無しさん
08/01/08 21:04:52
>>753
△ゲンマイチャ

755:デフォルトの名無しさん
08/01/08 21:13:50
燃えるお兄さん?コアすぎるだろ常考

756:デフォルトの名無しさん
08/01/08 21:16:17
>753
◎launcher

757:デフォルトの名無しさん
08/01/09 01:04:00
Δ隠されし 禁断の ゲンマイチャ

758:デフォルトの名無しさん
08/01/09 01:18:25
>>752
☆ラウンチャの男

759:デフォルトの名無しさん
08/01/09 04:50:25
ロケットローンチャ

760:750
08/01/09 07:23:53
>>752

それだ!
ランチャ使ってます。
なるほど、以後気を付けます

ありがと!

761:デフォルトの名無しさん
08/01/09 08:40:55
CでPythonの独自クラスを定義して、さらにそれを継承したクラスもCで記述する場合って、
継承とかどうやるの?
URLリンク(www.python.jp)
URLリンク(www.python.jp)
を見ながらやってるんだけど、継承して作る場合がいまいち良く分からない。

例えば、継承元クラスの構造体が
typedef struct {
PyObject_HEAD
PyObject *first;
PyObject *last;
int number;
} Noddy;
だったとして、これを継承したクラスを作りたい場合は
typedef struct {
 Noddy noddy;
 int mydata;
} NoddyEx;
でいいのかね? そのうえで、継承元 Noddy の PyTypeObject である noddy_NoddyType を
noddy_NoddyExType の tp_base に指定すればいいんだよね。
ただその場合、 tp_alloc とかの実装はどうなるんだろうか。今のところゼロで初期化して
継承元の設定を使ってるけど、NoddyEx で新たに確保しなきゃならない項目がある場合に
どう書いていいのかよくわからん。

762:デフォルトの名無しさん
08/01/09 08:47:14
あと、
def __init__(self, A, B=0, *args, *kwargs):
 SUPERCLASS.__init__(self, *args, **kwargs)
 ...
に相当するコードをCで書く場合、*args と **kwargs の処理ってどうやってる?

int b=0;
PyObject* kw = PyDict_New();
PyDict_Update(kw, kwargs);
PyObject* val = PyDict_GetItemString("B", kw);
if (val) {
 b = PyInt_AsLong(val);
 PyDict_DelItemString(val);
}

て感じで、キーワード辞書のコピーを取っておいて、必要な値を pop してから
残骸を SUPERCLASS.__init__ (に相当するC関数)に渡す?

763:デフォルトの名無しさん
08/01/09 08:50:10
まちがえた
PyObject* val = PyDict_GetItemString(kw, "B");
if (val) {
 b = PyInt_AsLong(val);
 PyDict_DelItemString(kw, "B");
}


764:デフォルトの名無しさん
08/01/09 09:20:42
ローンチャ・ストラトス

765:デフォルトの名無しさん
08/01/09 12:15:58
質問失礼します。

def ptest( *a ):
  for b in a: print b,
  print ""

上記の関数呼び出しを、

ptest( "a=", 1, " b=", 2 )
ptest( "a=%d,%s" %( 1, "hoge" ) )

などではなく、通常のprint文のように、

ptest "a=", 1, " b=", 2
ptest "a=%d,%s" %( 1, "hoge" )

としたいのですが、どうしたら良いでしょうか?
分かる方お願いします。

766:デフォルトの名無しさん
08/01/09 12:29:52
できないよ。考え直すといいよ。

767:デフォルトの名無しさん
08/01/09 12:49:54
URLリンク(gihyo.jp)

768:デフォルトの名無しさん
08/01/09 12:53:13
>>765
関数呼び出しと文はまったく別物。文は自分では作れない。

769:765
08/01/09 13:29:31
>>766
>>768
勉強になりました。
ありがとうございました。

770:デフォルトの名無しさん
08/01/09 13:32:44
>>761
boost.pythonじゃだめなの?
URLリンク(d.hatena.ne.jp)


771:デフォルトの名無しさん
08/01/09 16:58:23
>>765
ruby

772:デフォルトの名無しさん
08/01/10 02:57:18
pythonにおける変数名等の標準的な命名規則って何ですか?

773:デフォルトの名無しさん
08/01/10 03:02:13
>>772
PEP 8 -- Style Guide for Python Code
URLリンク(www.python.org)

774:デフォルトの名無しさん
08/01/10 03:25:17
/bin/sh シェルのバッククォートを置き換える
URLリンク(www.python.jp)
これってshより複雑になってないですか?
もっとシンプルに`command`を実現することはできないのでしょうか?

775:デフォルトの名無しさん
08/01/10 03:27:34
>>772
URLリンク(www.oldriver.org)

776:デフォルトの名無しさん
08/01/10 03:30:08
コマンドの出力を取りたいだけならcommands.getoutput('command')でいいんでない

777:デフォルトの名無しさん
08/01/10 03:37:06
>>776
こんなのあったんですね
ありがとうございました

778:デフォルトの名無しさん
08/01/10 06:25:05
>>774
URLリンク(python.matrix.jp)
>>> args = ['python', '-c', 'print raw_input()']
>>> from subprocess import Popen, PIPE
>>> proc = Popen(args, stdin=PIPE, stdout=PIPE, stderr=PIPE)
>>> proc.stdin.write('input text')
>>> proc.stdin.close()
>>> proc.wait()
0
>>> print proc.stdout.read()
input text

>>> print proc.stderr.read()

>>>


779:デフォルトの名無しさん
08/01/10 06:28:48
より現実的な例ではこうなるでしょう:

try:
retcode = call("mycmd" + " myarg", shell=True)
if retcode < 0:
print >>sys.stderr, "子プロセスがシグナルによって中止されました", -retcode
else:
print >>sys.stderr, "子プロセスが終了コードを返しました", retcode
except OSError, e:
print >>sys.stderr, "実行に失敗しました:", e


780:デフォルトの名無しさん
08/01/10 10:02:17
>>777
PEP 8を知らない奴がPythonやるなよ

781:デフォルトの名無しさん
08/01/10 10:34:43
>> 780
「愚かな一貫性は小人物に憑いたおばけである」

782:デフォルトの名無しさん
08/01/10 10:50:01
おばけ(wwwwwwwww
幼稚園児かよ(wwwwwwwwwwwwwwwwwwwwwwwwwwwww

783:デフォルトの名無しさん
08/01/10 10:57:02
おばけ。
おばけ怖いね。たしかに怖い。
愚かな一貫性を捨ててPerlをやることにするよ。

784:デフォルトの名無しさん
08/01/10 11:08:49
おばけより人間の方が怖い

785:デフォルトの名無しさん
08/01/10 11:12:54
まんじゅうもこわい。
ついでにお茶もこわいんだけど。

786:デフォルトの名無しさん
08/01/10 14:13:05
>>775
>プログラミングにおける推奨案
> - ソースコードは Python の実装(PyPy、Jython、IronPython、Pyrex、
> Psyco など)ごとの欠点を引き出さないように書くべきである。たとえば、
> CPython が a+=b や a=a+b などの文字列連結をインプレイス処理して、効
> 率よく動作する実装に依存してはならない。これでは Jython での動作が遅く
> なってしまう。パフォーマンスに敏感な部分では、''.join() を使うべき
> である。こう書いておけば、様々な実装において、連結処理は線形時間で
> 処理できる。

PythonSpeed
URLリンク(newworld.ddo.jp)

合わせて読みたい。

787:デフォルトの名無しさん
08/01/10 15:17:15
Pythonの文字列って不変だから、+=演算子の振る舞いはあくまで
  s = s + "hoge"
  s = s.add("hoge")
であって
  s.add("hoge")
では無いんだよな。

Pythonを始めたころは+=演算子ないのかよと思っていたら
仕様拡張されて文字列にも適用されたけど、
今になって思えば失敗な気がする。
(何で当時の俺はまんせーしてたんだか…)


788:デフォルトの名無しさん
08/01/10 16:01:26
>>782
別に幼児語じゃないぞ。

789:デフォルトの名無しさん
08/01/10 19:29:49
問題はおばけではなく小人物の方だからな
つまりどこに行っても同じ

790:デフォルトの名無しさん
08/01/10 21:22:38
はいはい。
おばけこわい。小人物こわい。

791:デフォルトの名無しさん
08/01/10 21:41:20
>>789
このねちっこさは小人物の仕業だろ常識的に考えて(wwwwww

792:デフォルトの名無しさん
08/01/10 22:22:58
>>786
PEP8の次にくるようにブックマークしたー

って、setオブジェクトってなんだよ…(しょっぱなで躓く)

793:デフォルトの名無しさん
08/01/10 22:39:49
>>787
In Java, we had well known it's difference same as 'String / StringBuffer'.


794:デフォルトの名無しさん
08/01/10 22:59:28
英語ダメな人キタコレwww

795:デフォルトの名無しさん
08/01/10 23:10:09
Would you please correct it?

796:デフォルトの名無しさん
08/01/10 23:34:39
とりあえず日本語でおk

797:デフォルトの名無しさん
08/01/10 23:38:47
どこから直して良いのかわかんないけど・・・
とりあえず過去完了は昔のある出来事以前のことをあらわすので
そこを現在完了に変えて、ついでに時制の一致とかも考えて・・・
You'd know it as defference between String and StringBuffer in Java.
ぐらいじゃないの?

798:デフォルトの名無しさん
08/01/10 23:39:28
It totally SUCK !!

799:デフォルトの名無しさん
08/01/10 23:40:41
sucksな。

800:デフォルトの名無しさん
08/01/10 23:46:24
「愚かな一貫性は小人物に憑いたおばけである」


801:デフォルトの名無しさん
08/01/10 23:58:18
kinnnen mare ni miru kuso sure no nagare

802:デフォルトの名無しさん
08/01/11 00:05:30
>>801
典型的なクソレス

803:デフォルトの名無しさん
08/01/11 01:11:53
>「おろかな一貫性は、・・
調べてたら元ネタがあった。

"A foolish consistency is the hobgoblin of little minds, adored by little
statesmen and philosophers and divines. With consistency a great soul has
simply nothing to do." - Ralph Waldo Emerson

(愚かな一貫性というものはちっぽけな精神にひそむお化けで、ちっぽけな
政治家や哲学者や聖職者達に崇められるものだ。偉大なる魂は一貫性など
とは全く無縁である。 - ラルフ・ワルド・エマソン)

割と有名な引用らしい。(知らんかったけど

804:デフォルトの名無しさん
08/01/11 04:42:52
質問させて下さい
python2.5+Vista環境でpywin32(Python for Windows extensions)を導入してみました
ところが付属Demoを実行すると次のようなエラーが出ます

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "c:\python25\lib\site-packages\pywin32-210.0004_s-py2.5-win32.egg\win32com\__init__.py", line 5, in <module>
import win32api, sys, os
ImportError: No module named win32api

3時間あれこれしてみたのですが一向に分かりません
包含関係はwin32api∈pywin32だと思うのですが・・・
何か初歩的な設定ミスなどしているのでしょうか

原因の思い当たる方どうぞご教示願います


805:デフォルトの名無しさん
08/01/11 05:08:56
>>797
Thank you so much.


806:デフォルトの名無しさん
08/01/11 05:15:14
>>804
URLリンク(starship.python.net)
For some overviews of the Win32 API as exposed to Python,
see URLリンク(www.python.org)




807:デフォルトの名無しさん
08/01/11 05:18:10
URLリンク(www.python.org)
Win32all, Mark Hammond's add-on for the regular Python installer
(also including the Win32 API, COM support, and Pythonwin),
is available from the pywin32 project on SourceForge.
URLリンク(sourceforge.net)


808:デフォルトの名無しさん
08/01/11 06:35:50
>>804
eggの中身はzipだからpeなwin32api.pydは標準ではインポートできない
setuptoolsもインポートの拡張してなかったと思うし

というかそのeggファイルって非公式なものなんじゃ

809:804
08/01/11 10:54:55
>>806-808
egg排除してインストーラを使ってインストールし直したら
できました! みんなありがとう!!! 大感謝です!!!

今回の件でeasy_installやeggの特性も少し分かったので
スレタイ通り勉強になりました。今後も精進します。押忍



810:デフォルトの名無しさん
08/01/11 22:02:13
>>803
こっちのことわざで言えば

君子豹変す

あたりのことかな。

811:デフォルトの名無しさん
08/01/11 22:31:57
Jinsei iro iro


812:デフォルトの名無しさん
08/01/11 22:46:35
URLをパースして分解してくれるようなライブラリはありますか。

813:デフォルトの名無しさん
08/01/11 22:48:22
君子豹変す
小人面を革む (易経)

814:デフォルトの名無しさん
08/01/11 22:49:54
>>812
urlparse

815:デフォルトの名無しさん
08/01/11 22:57:39
で、結局怖いのは小人物なのか? それともおばけ(苦笑)なのか?

816:デフォルトの名無しさん
08/01/11 23:57:07
馬鹿な突っ込みしちゃったのが心のささくれになってるのはわかるけど、
おばけにこだわってるのはもう君だけだから、無理に苦笑とかしても、ログ遡られて「ああこの子ね」となるだけかと。

817:デフォルトの名無しさん
08/01/12 00:04:31
>>816
小人物乙(ww

818:デフォルトの名無しさん
08/01/12 01:22:01
即レスw

819:デフォルトの名無しさん
08/01/12 01:34:38
子供は寝ろよ

820:デフォルトの名無しさん
08/01/12 02:38:16
小人閑居して不善を為す

821:デフォルトの名無しさん
08/01/12 02:49:09
馬鹿の考え休むに似たり

822:デフォルトの名無しさん
08/01/12 03:29:59
生兵法は怪我の元

823:デフォルトの名無しさん
08/01/12 06:34:36
URLリンク(journal.mycom.co.jp)
JythonでDjangoが動いたようです。

824:デフォルトの名無しさん
08/01/12 07:16:04
>より最新のバージョンに対応したJythonの登場はそうとおい未来の話ではなさそうだ。

あと1年くらいか


825:デフォルトの名無しさん
08/01/12 12:18:35
花よりだんご

826:デフォルトの名無しさん
08/01/12 15:26:24
花よりだんごより金

827:デフォルトの名無しさん
08/01/12 15:41:16
それにつけても金の欲しさよ

828:デフォルトの名無しさん
08/01/12 16:41:28
談合三兄弟

829:,,・´∀`・,,)っ-○◎●
08/01/12 16:51:25
 

830:デフォルトの名無しさん
08/01/12 20:02:35
Py3.0では set がリテラル表記できると聞きましたが。。。。。。。
あたらしい文法増えるってことかい?

831:デフォルトの名無しさん
08/01/12 23:52:32
>>830
{'増', 'え', 'る', 'よ'}

{i for i in 'さらに、setとdictの'}
{k: v for k, v in enumarate('内包表記も。')}

832:デフォルトの名無しさん
08/01/13 01:42:26
pypyっていいね

833:デフォルトの名無しさん
08/01/13 02:38:35
{} を 空dict にするか 空set にするかという議論もあったようだけど、空dict になったらしい。
個人的には 空set の方がよかった。

834:デフォルトの名無しさん
08/01/13 07:48:25
>>833
無意味に後方互換性を崩すあんたのセンスを疑う。

835:デフォルトの名無しさん
08/01/13 08:31:58
>>831
Yさん、ご苦労様です

836:デフォルトの名無しさん
08/01/13 10:12:27
>>835
Yさんて誰よ

>>833-834
{} == set()
{:} == dict()
が自然じゃないかなぁ、と思ってた

確かに後方互換性がネックなんだけどね

837:デフォルトの名無しさん
08/01/13 11:56:25
pythonって、dictの要素を繰り返すのに
for k, v in dct.iteritems(): print k, v
としますけど、なんで
for k, v in dct: print k, v
でできるようにしなかったんでしょう?
for v in dct: print v
としたら、キーが表示されました。
どうせなら、next()で(k, v)が返されればいいのに。

838:デフォルトの名無しさん
08/01/13 13:15:05
for k, v in dct.items(): print k, v

839:デフォルトの名無しさん
08/01/13 14:41:03
for k in dct: print k, dct[k] じゃだめなんか

840:デフォルトの名無しさん
08/01/13 14:55:21
if k in dict: ....との一貫性のため、
だと思ってたけど。

841:デフォルトの名無しさん
08/01/13 16:41:24
>>840
あ、そう、それだ、
そういうのを Guido は、if k in dict と for k in dict がライムする(韻を踏む(?))と表現しているね。
URLリンク(mail.python.org)

842:デフォルトの名無しさん
08/01/13 16:42:28
Pythonの開発環境はIDLEで充分ですか?
まだPythonは初心者ですが

843:デフォルトの名無しさん
08/01/13 17:08:30
学習段階ならぶっちゃけメモ帳でも

844:デフォルトの名無しさん
08/01/13 17:14:30
いやさすがにメモ帳は

最低でも複数行をまとめてインデントしたり
コメントアウトできるエディターは必要

845:デフォルトの名無しさん
08/01/13 17:47:11
>>843-844
ありがとうございます
探してみます

846:デフォルトの名無しさん
08/01/13 18:29:17
pythonで入力フォームを作っているのですが、
入力値のチェックで全角のみ許可する場合は
どのようにすればいいのでしょうか?

正規表現でどのように書けばいいのでしょう?
お願いします

847:デフォルトの名無しさん
08/01/13 18:37:26
文字コード総合スレ part3
スレリンク(tech板)


848:デフォルトの名無しさん
08/01/13 19:09:38
>>846
正規表現ライブラリの動作をかんがえると
簡潔にできないなら別に正規表現にする必要はないかと。
Unicodeに統一させるのは前提として
文字単位で確認するようなコードをこさえればいいと思う。
速度求めるようなもんでもなさそうだし。


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch