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


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

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



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

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

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

関連スレ
Pythonのお勉強 Part31
pc11.2ch.net/test/read.cgi/tech/1230821097/

2 名前:デフォルトの名無しさん mailto:sage [2009/01/16(金) 06:34:11 ]
◆関連リンク
Python の Home Page
www.python.org/

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

最新版直リン - 2.Xが推奨。3.Xはライブラリやドキュメントが使えないことも
www.python.org/download/

Python のコーディングガイド PEP8
www.python.org/dev/peps/pep-0008/

Python のコーディングガイド PEP8 - 日本語訳
www.oldriver.org/python/pep-0008j.html

日本語文字列コード問題まとめ
python.matrix.jp/tips/string/encoding.html

インタラクティブモードのエンコード
python.matrix.jp/tips/compatibility/interact_encoding.html

3 名前:デフォルトの名無しさん mailto:sage [2009/01/16(金) 06:35:15 ]
テンプレを多少改変しました。あと色々あるのでしょうが python.jp と書籍へのリンクは日本語ドキュメントをのぞいて省きました。
文句とかテンプレ改良とか次スレに向けてぼちぼちやっていきましょう。

4 名前:デフォルトの名無しさん mailto:sage [2009/01/16(金) 07:08:12 ]
       //
     /  /   パカッ
     //⌒)∩__∩
    /.| .| ノ     ヽ
    / | |  ●   ● |     
   /  | 彡  ( _●_) ミ  まピョーん☆
   /  | ヽ  |∪|  /_
  // │   ヽノ  \/
  " ̄ ̄ ̄ ̄ ̄ ̄ ̄(..ノ


5 名前:デフォルトの名無しさん mailto:sage [2009/01/16(金) 07:15:04 ]
>>3
ありがとう!!
GJ!!!!

6 名前:デフォルトの名無しさん mailto:sage [2009/01/16(金) 14:28:12 ]
2.5.2 on FreeBSD環境です
5つの値を任意に変えられる関数は、なんでしょうか?
import sys
print sys.getfilesystemencoding()
print sys.stdin.encoding
print sys.stdout.encoding
print sys.stderr.encoding
print sys.getdefaultencoding()
実行結果
US-ASCII
US-ASCII
US-ASCII
US-ASCII
ascii

7 名前:デフォルトの名無しさん mailto:sage [2009/01/16(金) 15:47:29 ]
>> sys.getfilesystemencoding()
プラットフォームと言語に依存しているはずで通常は変更する必要はない
>> sys.stdin.encoding
>> sys.stdout.encoding
>> sys.stderr.encoding
環境依存でPythonランタイムや埋め込んでいるアプリケーションが用意する。stdin/stdout/stderrは上書きできる
>> sys.getdefaultencoding()
sitecustomize.py で sys.setdefaultencoding()

できれば >>3 の後ろ2つも参照してくれ

8 名前:デフォルトの名無しさん mailto:sage [2009/01/16(金) 15:48:05 ]
× できれば >>3 の後ろ2つも参照してくれ
○ できれば >>2 の後ろ2つも参照してくれ

9 名前:デフォルトの名無しさん [2009/01/16(金) 16:45:09 ]
日本語のエンコードについて教えてください。
お願いします。

10 名前:デフォルトの名無しさん mailto:sage [2009/01/16(金) 17:21:38 ]
>>7,8
うーん
>>7
> >> sys.stdin.encoding
> >> sys.stdout.encoding
> >> sys.stderr.encoding
> 環境依存でPythonランタイムや埋め込んでいるアプリケーションが用意する。stdin/stdout/stderrは上書きできる
具体的な例文を書いてもらえませんか?
ググっても、例文が出てこなくて、困っています

とりあえず、sitecustomize.pyに下のを書いてみた
軽く試したところ、思うように動作するので、この設定で騙し騙しやってみようと思います
reがちゃんと動くのか、まだ試してないけど・・・

from encodings import aliases
aliases.aliases['us_ascii'] = 'euc_jp'

import sys
sys.setdefaultencoding('euc_jp')



11 名前:デフォルトの名無しさん mailto:sage [2009/01/16(金) 20:46:14 ]
if x == undefined:
  x = "Foo"
みたいなことがしたいんですがどうすればいいですか?

x = x or "Foo"
x or x = "Foo"
x = x if x else "Foo"
if not x:
  x = "Foo"
if x != None:
  x = "Foo"

どれもダメでした
LLって難しい…

12 名前:デフォルトの名無しさん mailto:sage [2009/01/16(金) 21:04:18 ]
>>> vars().has_key('hoge')
False
>>> hoge=4
>>> vars().has_key('hoge')
True

13 名前:デフォルトの名無しさん [2009/01/16(金) 21:05:52 ]
>>4


14 名前:デフォルトの名無しさん [2009/01/16(金) 22:05:10 ]
ユニコード相当の8ビット文字列とユニコード文字列はなぜ別に扱われるのですか。


15 名前:デフォルトの名無しさん mailto:sage [2009/01/16(金) 22:10:51 ]
UnicodeとUTF-8の違いは?
pc11.2ch.net/test/read.cgi/tech/1177930957/

16 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 04:01:52 ]
Ubuntu on VMware、クソワロタ
2週間ぐらいpython on cygwinと日本語関係で悩んでいたけど
あっさり解決しそうだw

VMware用仮想マシン | Ubuntu Japanese Team
ttp://www.ubuntulinux.jp/products/JA-Localized/vmware

>>前スレの942
>Cygwinを使う明確な理由があるならともかく
>そうでないならUnix環境の劣化コピー

もっともだけど、なんかなあと思っていたけど
求めていた解が前スレの942のまんまでした

17 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 04:08:06 ]
>>16
VirtualBoxでもUbuntuのイメージが用意されてるよ。
VMWareより、VirtualBoxの方がデスクトップ弄ってる時は素直に動いてくれる。


18 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 04:33:35 ]
>>17
そうだね
VirtualBoxは、サクサク動作でいいよね

いや、それがVMWareもかなりすんなり使えて、ビックリしている
VMwareのバージョンは、1年前ぐらいのヤツなんだけどなあ
Cent OSとか、いろいろ試したときにこんな機能あったっけかな・・・
プログラミングとあんまり関係ないけど、サウンド関係とかも使えるのが好きなんだよなあ
動作は、ちょっともっさりだけど、触り慣れているVMWareにします

19 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 06:16:20 ]
Ubuntuは馬鹿用だからなぁ

20 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 06:18:15 ]
coLinuxとかandLinuxが高速




21 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 06:19:17 ]
すれち

22 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 09:01:30 ]
希望の動作した

23 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 13:14:29 ]
常駐させるならcoLinuxだな。

24 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 01:13:17 ]
>>4
こんなAAで爆笑してしまった・・

25 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 05:06:54 ]
∫x/x-1 dx
t=x-1とし
∴x=t+1 また dt=dx

∫t+1/t dt
=∫1+(1/t) dt
=t + log|t|
=x-1 + log(x-1)

正答は最初に部分分数分解してx + log(x-1)ですが
上記の場合なにが違ってるんでしょうか?

26 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 08:02:42 ]
誤爆乙

27 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 09:08:30 ]
誤爆じゃありませんが。
何が違っているんでしょうか。

28 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 10:08:53 ]
積分定数

29 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 13:05:24 ]
答えが出せないってことは、Pythonスレの人のレベルが相当低いんですねえ。
ありがとうございました。

30 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 13:40:23 ]
正しい板に質問を投げることができない奴が来るくらい低いな。



31 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 13:47:45 ]
>>28 が答えだということも分からないくらいレベルが低いようだな。

32 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 13:59:24 ]
最近、本当に知りたくて質問してる人の割合が低すぎる気が

33 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 17:18:41 ]
>>25
=∫1+(1/t) dt
=t + log|t| + C
=x-1 + log(x-1) + C
=x + log(x-1) + C

34 名前:デフォルトの名無しさん [2009/01/18(日) 22:08:28 ]
『Pythonで学ぶ大学数学』って本があったら面白そうと思ってしまった。

35 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 23:03:40 ]
英語だったら、ありそうだね

36 名前:デフォルトの名無しさん [2009/01/18(日) 23:31:50 ]
スクリプトファイルとモジュールの違いは何ですか?
教えてください。

37 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 23:52:06 ]
Pythonでは同じ扱いです

関数も何も定義せず、
べた書きしてたらモジュールにはなりえない
(オブジェクトへのリファレンスは除く)

38 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 04:11:08 ]
Pythonでtestfirstコード書くのに標準的なのはありますか

39 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 17:29:49 ]
ちょっといいですか

40 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 18:03:15 ]
>>39
おまえはだめだ



41 名前:デフォルトの名無しさん [2009/01/19(月) 18:22:23 ]
>>1の和訳チュートリヤルに嘘ばっかり書いてあるな
print 'Hello, world!'
ってやってもエラーになる
嘘ばっかだなと思って
英語のほうを見たら
print ('Hello, world!')
って書いてあったので
そのとおりやったらできた。
>>1はうそつき超汚染人だ!

42 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 18:26:26 ]
3.0乙

43 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 18:26:36 ]
そりゃまあ 2.X 用のチュートリアルだからな

44 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 18:35:43 ]
>>41
チュートリアルにprint 'Hello, world!'なんて書かせる項目なんてなかったと思うが
というか、普通にprint 'Hello, world!'で通るだろ

あと嘘ばっかりについてkwsk上げてもらおうか

45 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 18:36:45 ]
>>38
doctestとか
>>41
1に和訳へのリンクなんてないけどな

46 名前:デフォルトの名無しさん [2009/01/19(月) 18:39:03 ]
>>41
ttp://pc11.2ch.net/test/read.cgi/tech/1230821097/264-266

47 名前:デフォルトの名無しさん [2009/01/19(月) 18:40:37 ]
>>44
2厨乙

48 名前:デフォルトの名無しさん [2009/01/19(月) 19:00:01 ]
>>46
>39

49 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 19:11:01 ]
2.xでprint文を使うとして、一応、3.0のことも考えて
L = ('spam',('pypy','thth'))
print(L)
と書いたほうがいいの?

50 名前:デフォルトの名無しさん [2009/01/19(月) 19:12:44 ]
def print(hoge):
print hoge



51 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 19:40:03 ]
>>50
予約語

52 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 19:51:15 ]
2to3で変換できるからそのままでいいと思うが、
2.6なら from __future__ import print_function してもよい

53 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 19:57:30 ]
print_function 使ってる場合
2to3で変換されますか

54 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 21:06:22 ]
・What’s New In Python 3.0 ? Python v3.1a0 documentation
ttp://docs.python.org/dev/3.0/whatsnew/3.0.html
・Python3000 - TSNETWiki on TextWorld
ttp://text.world.coocan.jp/TSNET/?Python3000
・もっと知りたいPython3000:第1回 Python 3.0の思想と意義|gihyo.jp … 技術評論社
ttp://gihyo.jp/dev/feature/01/python3000/0001?page=1
> また,3.x系の開発と共に,少なくとも数年は2.xの開発が続くことが予告されています。
> Guido自身,「Python 3が広まるのは3.1か,もしかしたら3.2の頃だろう」と言っています。
> ユーザの移行に関しても,明確なビジョンが示されています。
・「Python 3.0」の正式版がリリース--Python 2シリーズとは非互換 - builder by ZDNet Japan
ttp://builder.japan.zdnet.com/news/story/0,3800079086,20384848,00.htm


55 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 23:16:11 ]
騙り多すぎだなこの板。

56 名前:デフォルトの名無しさん [2009/01/20(火) 12:15:52 ]
webpy.org/cookbook/forms
ここのサンプルの f = register_form() の意味が分かりません.

一般に class A のインスタンス a を呼び出す a() と
Python ではどんな意味があるのでしょうか?
インスタンスのアドレス(参照というかハンドルのIDみたいなもの?)は
変わっているようです.ということはクローンが得られてるのでしょうか?

C++ のように operator() をオーバーロードして
ファンクタになっているということなのでしょうか?

57 名前:デフォルトの名無しさん [2009/01/20(火) 12:19:28 ]
すんまそん、パッケージのソースながめたら

def __call__(self, x=None):
  o = copy.deepcopy(self)
  if x: o.validates(x)
  return o

って書いてありました。子ね俺。

58 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 12:47:43 ]
You should not die.

59 名前:デフォルトの名無しさん [2009/01/20(火) 16:48:25 ]
importってなんなの?しぬの?

60 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 20:03:00 ]
importanceの略です



61 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 20:05:23 ]
impotenceですねわかります

62 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 20:55:11 ]
3文字の総当り

chars = 'abcdefg'

for char1 in chars:
  for char2 in chars:
    for char3 in chars:
      word = char1+char2+char3
      print word

これを

word_list = create_word_list(3, 'abcdefg')
word_list = create_word_list(4, 'hijklmnop')

のような感じで好きな長さで生成する関数「create_word_list」をどうかきますか?
知恵を貸してください。よろしくおねがいします。

63 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 21:31:24 ]
2.6/3.0ならitertools.combinations

64 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 22:04:23 ]
www.usamimi.info/~mirrorhenkan/2ch/python/prog1/read.php/1126073956/
ここの187-193で拾った
>>> def combi(a, b):
... if isinstance(a[0], tuple):
... return [x + (y,) for x in a for y in b]
... else:
... return [(x, y) for x in a for y in b]
...
>>> def combination(*l):
... return reduce(combi, l)
...
>>> def create_word_list(n, s):
... l=[xrange(len(s)) for i in xrange(n)]
... c=combination(*l)
... return [''.join([s[i] for i in t]) for t in c]
...
>>> create_word_list(2, 'abc')
['aa', 'ab', 'ac', 'ba', 'bb', 'bc', 'ca', 'cb', 'cc']
>>> create_word_list(3, 'abcd')
['aaa', 'aab', 'aac', 'aad', 'aba', 'abb', 'abc', 'abd',
'aca', 'acb', 'acc', 'acd', 'ada', 'adb', 'adc', 'add',
'baa', 'bab', 'bac', 'bad', 'bba', 'bbb', 'bbc', 'bbd',
'bca', 'bcb', 'bcc', 'bcd', 'bda', 'bdb', 'bdc', 'bdd',
'caa', 'cab', 'cac', 'cad', 'cba', 'cbb', 'cbc', 'cbd',
'cca', 'ccb', 'ccc', 'ccd', 'cda', 'cdb', 'cdc', 'cdd',
'daa', 'dab', 'dac', 'dad', 'dba', 'dbb', 'dbc', 'dbd',
'dca', 'dcb', 'dcc', 'dcd', 'dda', 'ddb', 'ddc', 'ddd']

65 名前:62 mailto:sage [2009/01/21(水) 00:22:26 ]
>>63
ごめんなさい、バージョン思いっきり忘れてました。2.5を使用してます。

>>64
すごすぎます。
内容がまったく理解できてないけど、実現できました。
ありがとうございます!

66 名前:デフォルトの名無しさん [2009/01/21(水) 08:04:39 ]
あるクラス変数が定義されているかどうかを調べるのって
どうすればいいのでしょうか?

__init__ の中で、あるクラス変数が定義されていなければ
そこで定義する、既に定義されていたらなにもしない、
という挙動をしたいと思っています。

「定義」という言葉が適切かどうかわかりませんが・・

67 名前:デフォルトの名無しさん [2009/01/21(水) 08:47:58 ]
>>> class a:
... hoge=2
... def __init__(self):
... print a.__dict__.has_key('hoge')
... print a.__dict__.has_key('fuga')
...
>>> class a:
... hoge=2
... def __init__(self):
... fuga=3
... print a.__dict__.has_key('hoge')
... print a.__dict__.has_key('fuga')
... print a.__dict__.has_key('hage')
...
>>> b=a()
True
False
False

68 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 08:54:52 ]
>>66
pc11.2ch.net/test/read.cgi/tech/1230821097/21-27

69 名前:デフォルトの名無しさん [2009/01/21(水) 09:02:33 ]
>>> class a:
... hoge=2
... def __init__(self):
... fuga=3
... self.hage=4
... print a.__dict__.has_key('hoge')
... print a.__dict__.has_key('fuga')
... print a.__dict__.has_key('hage')
... print a.__dict__.has_key('moge')
... print self.__dict__.has_key('hoge')
... print self.__dict__.has_key('fuga')
... print self.__dict__.has_key('hage')
... print self.__dict__.has_key('moge')
... print self.__class__.__dict__.has_key('hoge')
... print self.__class__.__dict__.has_key('fuga')
... print self.__class__.__dict__.has_key('hage')
... print self.__class__.__dict__.has_key('moge')
...
>>> b=a()
True
False
False
False
False
False
True
False
True
False
False
False

70 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 09:25:21 ]
has_keyはもうやめよーぜ



71 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 10:05:07 ]
>>> l=['hoge','fuga','hage','moge']
>>> class a:
... hoge=2
... def __init__(self):
... fuga=3
... self.hage=4
... print [k in a.__dict__ for k in l]
... print [k in self.__dict__ for k in l]
... print [k in self.__class__.__dict__ for k in l]
...
>>> b=a()
[True, False, False, False]
[False, False, True, False]
[True, False, False, False]

こうですか?

72 名前:デフォルトの名無しさん [2009/01/21(水) 10:10:22 ]
>>> l=['hoge','fuga','hage','moge']
>>> class a:
... hoge=2
... def __init__(self):
... fuga=3
... self.hage=4
... print [k in a.__dict__ for k in l]
... print [k in self.__dict__ for k in l]
... print [k in self.__class__.__dict__ for k in l]
... print [k in vars() for k in l]
...
>>> b=a()
[True, False, False, False]
[False, False, True, False]
[True, False, False, False]
[False, True, False, False]
>>> 'fuga' in vars()
False

fugaは何処へ消えたんだろうと思った俺アフォ杉orz

73 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 11:33:25 ]
>>> [hasattr(a, k) for k in l]
[True, False, False, False]
>>> [hasattr(b, k) for k in l]
[True, False, True, False]

74 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 13:29:20 ]
なんかみんなすごいねw
その遊びについていけね

75 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 22:38:07 ]
>>65
spamメールのアドレス生成とか
パスワードクラッキングとかに
使われそうですねだめですよ

76 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 01:46:53 ]
ただの組み合わせ演算のコードだろ。
素因数分解のコードの質問でもしたら「RSAの解読に使われそうですね」
とか言うのか?w

77 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 02:06:42 ]
そうですね
RSAはあと2年もたないと言われていますが

78 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 09:05:46 ]
>>77
> RSAはあと2年もたないと言われていますが

ソース。てか何ビットのRSA?

79 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 11:30:08 ]
2010問題のこと?

80 名前: ◆UNKOVIP9RM [2009/01/22(木) 14:32:44 ]
RSAのソース出してみろよこら

md5と勘違いしてね?



81 名前: ◆UNKOVIP9RM [2009/01/22(木) 14:43:21 ]
ソースだせばいいのか

(`・ω・´)つ ttp://www.flickr.com/photos/kahoo/349021137/

とっとけ。

82 名前: ◆UNKOVIP9RM [2009/01/22(木) 14:44:49 ]
ttp://itpro.nikkeibp.co.jp/article/Keyword/20090119/323069/

「1024ビット以下の・・・」ってのが抜けてました。

ごめんなさい。

吊ってきます。

83 名前: ◆UNKOVIP9RM [2009/01/22(木) 14:45:53 ]
>>82
分かったならよし

84 名前: ◆UNKOVIP9RM [2009/01/22(木) 14:48:04 ]
>>83
おまえうざい

85 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 15:52:47 ]
Python/Tkでソースの間違いを見つけられないのですが、
探してもらってもいいですか?

86 名前: ◆UNKOVIP9RM [2009/01/22(木) 16:59:17 ]
うんこ食わせろ

87 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 23:22:12 ]
””   ””
 ̄   ̄
  ,,

88 名前:デフォルトの名無しさん [2009/01/23(金) 18:29:44 ]
辞書やリストを str() で文字列として表示させるとき
(あるいは print 「文」で表示するとき)
文字列をシングルクォートではなくダブルクォートで
囲ませる方法ってありませんか?

そういう出力をするように __str__() を再定義
するしかないものでしょうか?

89 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 18:53:13 ]
>>> s={'abc':'def','ghi':['jkl','mno'],"pqr":["stu"],"vwx":"yz"}
>>> s
{'pqr': ['stu'], 'abc': 'def', 'vwx': 'yz', 'ghi': ['jkl', 'mno']}
>>> import json
>>> json.write(s)
'{"pqr":["stu"],"abc":"def","vwx":"yz","ghi":["jkl","mno"]}'

90 名前:デフォルトの名無しさん [2009/01/23(金) 18:56:43 ]
ううむ,json っすか.
import json となると 2.6 系にしなきゃだめか・・・
検討してみます.ありがとうございました.



91 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 20:43:44 ]
ttp://pypi.python.org/pypi/simplejson/

92 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 21:30:35 ]
>>90
ごめん 2.5 で↓これ入れて使ってた
python-json 3.4
ttp://pypi.python.org/pypi/python-json
メリットはソースが json.py しかないのでインストールする手間が不要w
日本語はUTF-8しか通らないみたいだけど
json.read, json.write しか使わない分には充分いけてる

93 名前:デフォルトの名無しさん [2009/01/23(金) 21:42:52 ]
みんなのpythonを読んだあと、
次に何を読んだらいいですか?
中級ぐらいの参考書ってありますか?

94 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 22:18:40 ]
実技

95 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 22:37:28 ]
>>93
なんでそんなに読みたいの? 何が目的?

96 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 22:45:09 ]
>>93
黒い方

97 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 23:04:43 ]
あの、みんなのpythonに書かれている標準ライブラリってそれを利用するのに必要な基礎知識がなかったとしても必ず覚えるべきなんでしょうか。
もしその作業が後回しにしてもとりあえずは支障のない程度のものであるのでしたら標準ライブラリについての勉強を後回しにして他の勉強を始めたいのですけれども

98 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 23:09:38 ]
いちいち覚える必要ねえよそんなもん
必要に応じてリファレンスマニュアル見て使えりゃ十分だろ

99 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 23:19:31 ]
有難う御座います。気が晴れました

100 名前:デフォルトの名無しさん [2009/01/23(金) 23:52:50 ]
setuptools でスクリプトとして a.py を指定してしまうと
easy_install で /usr/bin/ 直下に a.py がコピーされて,
アンインストールしたい時に困りませんか?

easy_install ってアンインストールの機能は
提供してくれていませんよね?




101 名前:デフォルトの名無しさん [2009/01/24(土) 00:36:41 ]
easy_uninstall

102 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 05:20:45 ]
>>97
覚える必要ないけどライブラリリファレンスのインデックスだけでも
目を通しておくと後で損しないかも

103 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 05:56:32 ]
何故以下のプログラムでabcdと並ばないのか教えてください
import Tkinter as Tk
class unko:
def __init__(self):
self.root = Tk.Tk()
frame = Tk.Frame(self.root)

l = Tk.Label(frame, text="a ")
l.grid(row=0, column=0, stick=Tk.N+Tk.E+Tk.S+Tk.W)
l = Tk.Label(frame, text="b ")
l.grid(row=1, column=0, stick=Tk.N+Tk.E+Tk.S+Tk.W)
login_button = Tk.Button(text="c")
login_button.grid(row=2, columnspan=2, stick=Tk.N+Tk.E+Tk.S+Tk.W)
l = Tk.Label(frame, text="d ")
l.grid(row=3, column=0, stick=Tk.N+Tk.E+Tk.S+Tk.W)
frame.grid(row=1, padx=2, pady=2, stick=Tk.N+Tk.E+Tk.S+Tk.W)
def main(self):
self.root.mainloop()

if __name__ == "__main__":
unko().main()


104 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 07:20:30 ]
>>103
login_button = Tk.Button(text="c")
 ↓
login_button = Tk.Button(frame, text="c")


105 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 08:38:14 ]
0.txt 、 1.txt 、 2.txt  ・・・  x.txt

というテキストファイルを新規に作ってそこに何か書き込みたいんですけど、どうしたらいいでしょうか?

0〜xまで
open('0.txt','w+')
open('1.txt','w+')
open('2.txt','w+')
...
って書き込むのは避けたいんです


106 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 08:45:33 ]
[open("%d.txt" % i, 'w+') for i in range(x)]

107 名前:デフォルトの名無しさん [2009/01/24(土) 08:49:33 ]
文字列に簡易的なスクランブルをかけるライブラリーってありますか?
本格的なものでなくてかまわないのですが。
自分のデスクトップ検索に不用意に引っ掛からないようにしたいだけなので。
単純にbase64でも掛けておけとも考えたのですがもう少し冗長度を下げたいです。

108 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 10:07:24 ]
>数学的思考法
1 答えはあるので、問題の条件を吟味して、解法を見抜いてしまう
2 大抵は厨房の幾何問題で解けてしまう
3 答え合わせをする

>数学者的思考法
1 たいていは答えがでないほうがおおい
2 くりかえされた手法はあっさりすてる
3 べつのみかたで問題をたてなおす

109 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 10:51:42 ]
>>106
ダンケ

110 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 20:23:41 ]
>>107
英数字のみならrot13とか
日本語文字混じるならurllib.quoteとか



111 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 20:57:33 ]
>>107
zlibで圧縮

112 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 20:58:13 ]
>>107
適当な定数で xor

113 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 23:13:15 ]
かとるみてえかべ並らかぎみ

114 名前:デフォルトの名無しさん [2009/01/24(土) 23:33:24 ]
文字の境界を判別する処理ってどのように作りますか?

115 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 00:04:22 ]
もうちょっと曖昧でない表現を頼む

116 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 00:55:39 ]
文字/の/境界/を/判別/する/処理/ってどのように/作/りますか/?
もうちょっと/曖昧/でない/表現/を/頼/む

ということ
それとも

文字の/境界を/判別する/処理って/どのように/作り/ます/か/?
もうちょっと/曖昧でない/表現を/頼む

ということ


117 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 01:00:17 ]
形態要素解析+Pythonでググっ鱈こんなのが出て来た
ttp://d.hatena.ne.jp/kinneko/20040119/p3
ttp://d.hatena.ne.jp/kinneko/20040120/p10
ttp://pc11.2ch.net/test/read.cgi/tech/1193354806/727-772
ttp://pc11.2ch.net/test/read.cgi/tech/1193354806/
ttp://www2.atpages.jp/mirror/2ch/python/prog1/read.php/1061640768/
ttp://www.paken.org/diary/200209/diary.html#3


118 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 01:16:07 ]
MeCab

119 名前:デフォルトの名無しさん [2009/01/25(日) 01:20:39 ]
>>115
エンコードされた日本語の文字の処理です。
文字列を分割したり置換するときに文字の境界を適切に判別しないと文字化け
が起こると聞いたので詳しく知りたいです。

120 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 01:44:24 ]
>>119
Unicodeにすればおk



121 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 13:53:52 ]
>>119
Ruby/Perl/PHPはそうらしいけどPythonは2.5以降なら大丈夫

122 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 15:37:59 ]
Pythonの内部使用文字リテラルをUnicodeにするっていう
移行手順は比較的すんなりいったけど、↑の三言語はけっこうめんどくさい

123 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 17:22:45 ]
そんなわけない。特にRubyは利用者のことを考えた
スムーズな移行方法をとってる。pythonより上。

124 名前:デフォルトの名無しさん [2009/01/25(日) 17:24:21 ]
kwsk plz

125 名前:デフォルトの名無しさん [2009/01/25(日) 18:14:01 ]
>>123
俺も知りたい

126 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 18:48:40 ]
てーか、CSI(Code Set Independent)を墨守してI18N化したLLってRuby以外にあるのか?

127 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 19:12:27 ]
Python3

128 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 19:25:47 ]
CSIってBSDのCitrusとかでやってる奴だよな
PerlやPythonはUCSベースだからCSIではないっしょ

129 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 19:30:13 ]
内部コードとして特定の文字コードが仮定できないと
現実的には不便極まりないように思えるが……


130 名前:デフォルトの名無しさん [2009/01/25(日) 19:58:28 ]
Ruby厨ってどうしてこんなに気持ち悪いの・・・



131 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 20:04:15 ]
python厨のが気持ち悪いよ。日本で使ってる人いないのになんでつかうの

132 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 20:09:32 ]
Rubyでもshebangのあとに
# -*- coding: utf-8 -*-
書いてるコード見るけど
書いた方が良いというか書くべきなんだよね?

133 名前:デフォルトの名無しさん [2009/01/25(日) 20:10:50 ]
内部使用文字リテラルとは無関係

134 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 20:12:51 ]
誰か日本語処理の比較して
php5,perl6,python3,ruby1.9

135 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 20:14:26 ]
>>104
遅くなりましたがどうもありがとうございました。

136 名前:デフォルトの名無しさん [2009/01/26(月) 00:06:05 ]
データの性質によって処理の内容を変える仕組みとは具体的にどういうことですか?

137 名前:デフォルトの名無しさん [2009/01/26(月) 00:43:16 ]
3 + 6 -> 9
'A'+'B' -> 'AB'


138 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 07:49:30 ]
お勧めのOSを教えてください

139 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 08:17:50 ]
FreeBSD

140 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 08:23:46 ]
>>139
はあ?あなたもしかしてRuby厨ですか?



141 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 09:15:01 ]
すまん
Rubyスレと間違えたw

142 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 10:10:24 ]
PythonのUnicode文字列は、UTF-16とUTF-32の2種類あるよ。
UTF-32は、1 code point = 1文字 になってるけど、UTF-16だと
サロゲートペアのときに 2 code point = 1文字 になるから注意が必要。

この問題は、Windowsの〜W系APIとか、Javaや.NETの文字列も
同じ問題を抱えている。
というか、Windowsの〜W系APIとの親和性や、Javaや.NETでの
効率を考えて、UTF-16を許可しているという面もある。

143 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 10:11:06 ]
「2種類ある」というのは、Pythonをビルドするときの設定で選べるって事ね。
Pythonを使うときに2種類から選べるわけではない。

144 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 12:59:19 ]
sys.maxunicode

UCS-2かUCS-4かがわかる

145 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 13:21:19 ]
しかし、なんでUnicodeみたいな糞仕様作ったんだろうな。

146 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 14:42:31 ]
その前の仕様がShiftJISみたいなクソ仕様とかEUCみたいな
日本語と中国語の区別がつかない仕様とかISO-2022みたいな
無闇に拡張性ばかりある仕様とかそんなのばかりだったから

147 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 14:50:59 ]
無理だって言ってるのに
2バイト固定長の文字コードにしようとしたから。

148 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 15:14:54 ]
Rubyだけだよなあ、安全に文字コード扱える言語は。

149 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 15:57:44 ]
もう20年も経ったんだからそろそろ見直すべき

150 名前:デフォルトの名無しさん [2009/01/26(月) 16:02:44 ]
YEN SIGN問題
Shift_JISではJIS X 0201における円記号 "\" が0x5Cに置かれている。
これをUnicodeのマッピングに合わせるとYEN SIGN (U+00A5) にマップされる。
しかし、0x5CはASCIIではバックスラッシュ "\" に相当し、
C言語などのエスケープシーケンスに使われる事から、
この文字のコードを変更すると問題が起きる。
そのためUnicodeを利用するアプリケーションはU+007F以下のコードに関しては
移動させないという暗黙のルールができている。
そうなると、Unicode環境では円記号がバックスラッシュの表示に
変わってしまうように思われるが、これは日本語用のフォントデータの
0x5Cの位置には円記号の字形を当ててしまうことで対処している。
これによって、それまでの文字コードを使用していたときと同じ感覚で
円記号を用いることができる。
この問題は日本語環境に限った事ではない。もともと、ISO646上で0x5Cを
含む数種の文字は自由領域(バリアント)として各国での定義を認めていた。
そのため、日本語以外でもASCIIでバックスラッシュに相当するコードに
異なる記号を当てているケースが多い。例えば、韓国ではウォン記号
(WON SIGN, U+20A9, "₩") である。




151 名前:デフォルトの名無しさん [2009/01/26(月) 16:04:16 ]
WAVE DASH - FULLWIDTH TILDE問題
JIS X 0221規定のJIS X 0208とJIS X 0221の対応表では、
波ダッシュはWAVE DASH (U+301C, "〜") に対応させているが、
マイクロソフトはWindowsのShift_JISとUnicodeの変換テーブルを作成する際に、
JIS X 0208において1区33点に割り当てられている波ダッシュ "〜" を、
Unicodeにおける全角チルダ (FULLWIDTH TILDE, U+FF5E, "〜") に割り当てたため不整合が生じる。
この結果、Mac OS等のJIS X 0221準拠のShift_JIS ⇔ Unicode変換テーブルをもつ処理系と、
Windowsとの間でUnicodeデータをやり取りする場合、文字化けを起こすことになる。
そこでWindows以外のOS上で動くアプリケーションの中には、CP932という名前で
マイクロソフト仕様のShift_JISコード体系を別途用意して対応しているケースが多い。
この原因とされているUnicode仕様書の例示字形の問題に関しては、
波ダッシュ#Unicodeに関連する問題を参照すること。
また、マイクロソフトは同様にEM DASH (U+2014, "—") をHORIZONTAL BAR (U+2015, "―") に、
DOUBLE VERTICAL LINE (U+2016, "‖") をPARALLEL TO (U+2225, "‖") に、
MINUS SIGN (U+2212, "−") をFULLWIDTH HYPHEN-MINUS (U+FF0D, "−") に
割り当てており、これらの変換時にも問題が起こる。Windows VistaやMicrosoft Office 2007に
付属するIMEパッドの文字一覧におけるJIS X 0213の面区点の表示は、上記の文字についても
JISで規定されているものと同じマッピングを使用している。


152 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 16:05:53 ]
無理やり2バイトに当て嵌めようとしたとかそういうレベルじゃなくて
それ以前のもっと根源的な問題
(従来のいくつかの文字コードでの問題点がなんら改善されていない)

153 名前:デフォルトの名無しさん [2009/01/26(月) 16:07:32 ]
へんな文字コードをさらに増やしただけ

154 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 17:18:32 ]
pythonがだめな言語であることがよくわかりました。

155 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 18:43:29 ]
これから始めようと思ってるんだけど2.6と3.0どっちがいいの?

156 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 18:49:48 ]
>>155
好き勝手できるのなら3.0



157 名前:デフォルトの名無しさん [2009/01/26(月) 19:21:36 ]
2.5

158 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 19:40:47 ]
2.6

159 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 19:45:47 ]
2.71828182845904523536

160 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 19:51:24 ]
e



161 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 20:29:51 ]
METAFONT乙

162 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 20:32:14 ]
またruby厨が荒らしてるのか

163 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 21:17:09 ]
またruby厨が荒らしてるのか

164 名前:デフォルトの名無しさん [2009/01/26(月) 21:22:20 ]
py乙

165 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 21:23:04 ]
しかし、なんでUnicodeみたいな糞仕様作ったんだろうな。

166 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 21:25:40 ]
python.jp のサイトの python ダウンロードリンクは
どう読んでも python 初心者向けなのに初心者用じゃない説明
日本語を扱うために別途 codec ダウンロードが必要な気がしてくる


167 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 21:32:25 ]
「初めてのかたへ」とあるから「Pythonのダウンロード」行ってみると
www.python.jp/Zope/download/pythoncore
ここの左側のコンテンツに目立つように
「日本語環境用インストーラ(Win32)・・・」
っていうのがあって嫌でも目に入ってくる
www.python.jp/Zope/download/pythonjpdist
もうこれを入れなきゃ恥じマラ内みたいな

どっかに断り書きが一言でもあれば
不要だということが分かって良いのに

168 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 21:40:43 ]
頼むから少しは>>2を見てくれ

169 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 21:51:57 ]
馬鹿ですね分かります

170 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 21:53:57 ]
頼むから少しは>>2を見てくれ



171 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 21:56:18 ]
>>167
まあそれは言いがかりだけど
ダウンロードページ左のコンテンツの内容が古過ぎなのは同意
Python for Windows Extensions なんか見ても
www.python.jp/Zope/download/win32all
2.3までしかないしww
やる気あんのか?とは思う


172 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 21:57:19 ]
頼むから少しは>>2を見てくれ

173 名前:デフォルトの名無しさん [2009/01/26(月) 22:03:28 ]
日本語のエンコードについて教えてください。
お願いします。

174 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 22:06:01 ]
はじぱい 第2版 (2004/11) \5,040
www.amazon.co.jp/products/dp/4873112109/
はじぱい原著 3rd Edition (2008/07/16) $26.39
www.amazon.com/Learning-Python-3rd-Mark-Lutz/dp/0596513984/

日本語の第3版って安価で出る予定ある?

175 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 22:28:20 ]
またruby厨が荒らしてるのか

176 名前:デフォルトの名無しさん [2009/01/26(月) 22:34:32 ]
>>144
>>> import sys
>>> sys.maxunicode
65535

177 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 22:46:27 ]
>maxunicode
>Unicode文字の最大のコードポイントを示す整数。この値は、オプション設定
>でUnicode文字の保存形式としてUSC-2とUCS-4のいずれを指定したかによって
>異なります。

178 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 22:50:36 ]
UCS-2 だな

179 名前:デフォルトの名無しさん [2009/01/27(火) 01:37:32 ]
for a in range(10):
return a
でエラーが出るのはなぜですか?


180 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 01:51:55 ]
SyntaxError? IndentationError?



181 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 07:00:08 ]
またruby厨が荒らしてるのか

182 名前:デフォルトの名無しさん [2009/01/27(火) 09:51:27 ]
>>180
SyntaxErrorです。

183 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 09:59:39 ]
>>> for a in range(10):
... return a
...
File "<stdin>", line 2
SyntaxError: 'return' outside function

184 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 11:57:07 ]
>>182
意味がわかりません。
>>183
なんですかそれ?

185 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 15:36:37 ]
>>184
SyntaxErrorです。

186 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 15:58:28 ]
for a in range(10):
yield a
でエラーが出るのはなぜですか?

187 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 16:54:47 ]
>>185
エスワインタックスエッロラー?
なんですかそれ?

188 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 13:24:24 ]
++++[>++++[>+++++>++++>+++++>+++++<<<<-]<-]>>-----.>+.>+++.>-.

189 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 02:22:55 ]
Python好きなんだけど命名規則はそろえてほしい

190 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 03:16:26 ]
関数やメソッド名にCamelcase使っちゃいけないのはどうして?
_を使うよりもタイプしやすいんだけどな。



191 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 03:54:23 ]
自分しか使わないんだったら使えばいい

192 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 05:57:24 ]
BeautifulSoupとかキャメルなのが気になる
あと_で区切るとこと区切らないとこってなんか決まりある?
dict.has_keyは区切ってるのにdict.iterkeysとか区切らないのはなんで?

193 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 08:21:54 ]
きちんとした命名規則に則ってるのは3.0のライブラリからだろ
2.Xまでは標準ライブラリですらバラバラだし
BeautifulSoupとかの野良ライブラリは従う必要ない
has_keyは3.0で廃止だから存在を忘れろ

194 名前:デフォルトの名無しさん [2009/01/29(木) 16:07:38 ]
python でオブジェクトがある属性を持つかどうかって
どのようにして調べるのが良いのでしょうか?
__dict__ にしてキーを持つかどうかですか?

195 名前: ◆UNKOVIP9RM [2009/01/29(木) 16:15:55 ]
>>194
下駄を履けば良いんじゃない

196 名前: ◆UNKOVIP9RM [2009/01/29(木) 16:25:34 ]
>>195
おまえもしかしてgetattrのことか?

197 名前: ◆UNKOVIP9RM [2009/01/29(木) 16:26:12 ]
>>196
だったらなんだよカス

198 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 16:35:38 ]
↑こういうのって草民ってやつ?
ほんとうにきもちわるいんだねはきそう

199 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 18:01:33 ]
モンティパイソン精神を忘れるな!

200 名前:デフォルトの名無しさん [2009/01/30(金) 06:25:13 ]
pydoc で関数の引数に対する説明も表示させるって
できるんでしょうか?関数を定義するときに
それぞれの引数に対するドキュメント文字列(docstring)を
設定できればいいなと思っているのですが。



201 名前:デフォルトの名無しさん [2009/01/30(金) 07:02:28 ]
func("ほげほげほげほげ", ["はげはげはげはげ", "長い文字列長い長い"], xxx="シシシシシシシシシシ", yyy="パパパパパパパパパパパパパパ"

のように、しばしば文や関数呼び出しが長くなることがありますが、
これは途中で改行していいんでしょうか?というのは Python って
インデントが意味を持つので、じゃぁ適当に改行したとして
インデントはどうすりゃいいんだよ!と悩んでいます。

202 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 08:06:58 ]
>>> '
SyntaxError: EOL while scanning single-quoted string
>>> "
SyntaxError: EOL while scanning single-quoted string
>>> """
"""
'\n'
>>> (
    )
()
>>> [
    ]
[]
>>> {
    }
{}
>>> int(
     1
     )
1

203 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 08:47:00 ]
>>> def hoge(fuga, hage):
... '''hoge(fuga:FUGA, hage:HAGE)HOGE'''
... return 1
...
>>> help(hoge)
Help on function hoge in module __main__:

hoge(fuga, hage)
hoge(fuga:FUGA, hage:HAGE)HOGE


204 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 08:51:44 ]
>>201
問題なし
>>> def func(a, b, xxx='hoge', yyy='fuga'):
... print a, b, xxx, yyy
...
>>> func("ほげほげほげほげ", ["はげはげはげはげ", "長い文字列長い長い"], xxx="シ
シシシシシシシシシ", yyy="パパパパパパパパパパパパパパ")
ほげほげほげほげ ['\x82\xcd\x82\xb0\x82\xcd\x82\xb0\x82\xcd\x82\xb0\x82\xcd\x82\
xb0', '\x92\xb7\x82\xa2\x95\xb6\x8e\x9a\x97\xf1\x92\xb7\x82\xa2\x92\xb7\x82\xa2'
] シシシシシシシシシシ パパパパパパパパパパパパパパ
>>> func("ほげほげほげほげ", ["はげはげはげはげ",
... "長い文字列長い長い"
... ], xxx="シシシシシシシシシシ",
... yyy="パパパパパパパパパパパパパパ")
ほげほげほげほげ ['\x82\xcd\x82\xb0\x82\xcd\x82\xb0\x82\xcd\x82\xb0\x82\xcd\x82\
xb0', '\x92\xb7\x82\xa2\x95\xb6\x8e\x9a\x97\xf1\x92\xb7\x82\xa2\x92\xb7\x82\xa2'
] シシシシシシシシシシ パパパパパパパパパパパパパパ
>>>

俺はそんなことよりもインタラクティブモードで
リストの日本語が出ないことの方が問題だと思っている

205 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 13:02:15 ]
>>> ["はげはげ"]
['\x82\xcd\x82\xb0\x82\xcd\x82\xb0']
>>> print str(_).decode("string-escape")
['はげはげ']
>>> [u"はげはげ"]
[u'\u306f\u3052\u306f\u3052']
>>> print str(_).decode("unicode-escape")
[u'はげはげ']

3.0なら
>>> ["はげはげ"]
['はげはげ']

206 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 13:17:36 ]
thx!

207 名前:デフォルトの名無しさん [2009/01/30(金) 13:20:16 ]
str() と repr() はどうちがうのですか?

208 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 13:24:35 ]
TerboGearでわからない所があるので、教えてください。

209 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 13:34:14 ]

ttp://python.g.hatena.ne.jp/muscovyduck/20080816/p1
ttp://jutememo.blogspot.com/2008/09/python-3-float-decimal.html
ttp://jutememo.blogspot.com/2008/09/python-2-eval-decimal.html
ttp://jutememo.blogspot.com/2008/08/python_27.html
ttp://d.hatena.ne.jp/bellbind/20081002/1222948118
ttp://programming-magic.com/?id=185
ttp://www.python.jp/doc/release/tut/node9.html

210 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 13:35:21 ]
>>208
難題?



211 名前: ◆UNKOVIP9RM [2009/01/30(金) 13:47:02 ]
>>210
なんだい?


とかけてみた

212 名前: ◆UNKOVIP9RM [2009/01/30(金) 13:54:10 ]
モンティパイソン精神ってなんだよ。

見たけど、人生適当で良いんだなぐらいしか思わなかったんだけど。

213 名前:デフォルトの名無しさん [2009/01/30(金) 14:07:16 ]
人生は航海の連続です

214 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 14:13:00 ]
・人の中で浮いてしまう
・幼児期は他の子と遊ぶより一人遊びが好きだった
・同年齢の人と波長が合わない
・人との接し方のマナーやルールがよくわからない
・意図せず人を傷つけて嫌われてしまう
・暗黙のルールにいつまでたっても気づけない
・変なところで積極的すぎる
・自分の関心のあることだけを一方的にしゃべり、しゃべり終えたら満足して相手の話をきけない
・会話が長続きしない
・話し方が簡潔でなく回りくどい
・曖昧なこと、ファジーなことが苦手
・細かいところにこだわる
・独り言を言う
・駄洒落や語呂合わせが好き
・融通がきかない
・電車、河や水の流れ、風にゆれる草木、雲などを延々と見続ける
・こだわりが強すぎる
・柔軟性に乏しい
・予想外の事態に対処ができない
・コレクション癖が普通より強い
・機械的記憶力が優れていることが多い
・自分の行動パターンに沿えない時は不機嫌になる
・ものまね遊びが好き
・ビデオやDVDに録画しまくって見ない
・模倣して習得することは苦手だが、模倣なしに自分一人でやると出来る
・独学でないと学べない

215 名前: ◆UNKOVIP9RM [2009/01/30(金) 14:36:55 ]
>>214
これがモンティの精神か

なるほど

216 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 14:38:20 ]
わかってんじゃん

217 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 15:32:57 ]
TurboGearsとpysqliteを組み合わせて使っているのですが、
tg-admin sql create とコマンドプロンプトでコマンドを打っても、
This command to be run from inside a project directoryと出て、
devdata.sqliteを生成できません。どうしたらいいでしょうか?

218 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 15:57:38 ]
超初心者ですがGoogleカレンダーみたいなWebアプリを
作りたいんですが・・・・
カレンダーの日付の場所をクリックすると吹き出しみたいのが
出てきて、予定の詳細を入力できるような感じです。


Pythonだけで作れるんでしょうか?
JavaScriptとかと組み合わせないと無理なんでしょうか?


219 名前: ◆UNKOVIP9RM [2009/01/30(金) 15:58:16 ]
ttp://www.atmarkit.co.jp/fcoding/articles/python3/01/python301a.html

あっちゃんが語る

220 名前: ◆UNKOVIP9RM [2009/01/30(金) 15:59:49 ]
>>218
まずpythonインタプリタが動くブラウザを作るんだよ。



221 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 16:22:07 ]
>>218
最低限HTML、CSS、JavaScript、CGIの知識
その他ウェブサーバ、データベースについての知識も欲しい

222 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 17:07:12 ]
HTTPもな

223 名前:デフォルトの名無しさん [2009/01/30(金) 18:52:04 ]
アプリケーションの設定ファイルってどこに保存するのが
いいんだろうなぁ。どこでも同じ設定になるようにって
以前 Googel Base に保存するような変り種のアプリを
Python で作ったことがあったんだけど、認証無しで
見れるところに保存するのもなぁとおもってやめた。

ローカルで使うアプリケーションもあまねくウェブ
インターフェイスを備えて、ブラウザのクッキーに
蓄積するなんてことも考えたけど、面倒でやめた。

結局は $HOME/.hogehoge になるのかねぇ。

224 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 19:18:37 ]
>>214
なかなかいい奴だな

225 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 20:01:02 ]
だったらGoogleCalendar使えばいいじゃん
GoogleCalendar用PythonAPIは公開されてるよ

226 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 20:41:36 ]
def combi(a, b):
  return [x + (y,) if isinstance(a[0], tuple) else (x, y) for x in a for y in b]
combi(combi('0123', '0123'), '0123')
[('0', '0', '0'), ('0', '0', '1'), ('0', '0', '2'), ('0', '0', '3'), ('0', '1', '0'), ('0', '1', '1'), ...,
 ...,
 ('3', '3', '1'), ('3', '3', '2'), ('3', '3', '3')]
これを
'0123'の桁が大きくても逐次結果が出てくるように
def combi(a, b):
  for x in a:
    for y in b:
      if isinstance(a[0], tuple):
        yield x + (y,)
      else:
        yield (x, y)
と書き換えました
combi('012', '012')
<generator object at 0x009BAE40>
[t for t in combi('012', '012')]
[('0', '0'), ('0', '1'), ('0', '2'), ('1', '0'), ('1', '1'), ('1', '2'), ('2', '0'), ('2', '1'), ('2', '2')]
までは結果が得られたのですが
[t for t in combi(combi('012', '012'), '012')]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 4, in combi
TypeError: 'generator' object is unsubscriptable
なぜこうなるのでしょうか?

227 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 20:44:09 ]
[t for t in combi([s for s in combi('012', '012')], '012')]
[('0', '0', '0'), ('0', '0', '1'), ('0', '0', '2'),
('0', '1', '0'), ('0', '1', '1'), ('0', '1', '2'),
('0', '2', '0'), ('0', '2', '1'), ('0', '2', '2'),
('1', '0', '0'), ('1', '0', '1'), ('1', '0', '2'),
('1', '1', '0'), ('1', '1', '1'), ('1', '1', '2'),
('1', '2', '0'), ('1', '2', '1'), ('1', '2', '2'),
('2', '0', '0'), ('2', '0', '1'), ('2', '0', '2'),
('2', '1', '0'), ('2', '1', '1'), ('2', '1', '2'),
('2', '2', '0'), ('2', '2', '1'), ('2', '2', '2')]


228 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 01:32:42 ]
>>227
ありがとうございました


229 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 18:31:15 ]
作ったものをEXEファイルにするときはどのツールを使うのが一番いいんでしょうか?

230 名前:デフォルトの名無しさん [2009/01/31(土) 19:43:00 ]
py2exe が便利だと思うけど
一部下位のモジュールを上に引き上げてくるようなパッケージ
(たとえば pyasn1 とか pysnmp とか)が含まれてると
うまくいかない(それらのモジュールを含め損ねる)ね。

標準のライブラリだけをつかってるなら余裕。



231 名前:デフォルトの名無しさん [2009/01/31(土) 20:07:36 ]
>>230
pygameはどう?

232 名前:デフォルトの名無しさん [2009/02/01(日) 20:07:58 ]
クラスの__inti__ってなんで初期化っていうのですか?
アトリビュートに値を代入しているだけだとおもうですが。


233 名前:デフォルトの名無しさん [2009/02/01(日) 20:36:01 ]
>>232
ということはアトリビュートを初期化してるでしょ?

234 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 23:52:14 ]
そもそも初期化ってなんだろうね
__inti__とはどういう関係があるんだろう

235 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 00:32:51 ]
僕は至って真面目に質問してるので、回答お願いします

236 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 00:39:12 ]
inchをローマ字して訓令式で綴ったのですねわかります

237 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 00:40:47 ]
__inti__って何?今2.4勉強途中だからわからないんだけど、新仕様なの?

238 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 00:41:07 ]
>>235
そんな事言われても・・・

239 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 02:54:53 ]
真面目に質問してるんだからいい加減答えろよksども

240 名前: ◆UNKOVIP9RM [2009/02/02(月) 11:09:09 ]
>>239
おまえもな



241 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 11:23:44 ]
__init__の間違いでしょう。

242 名前: ◆UNKOVIP9RM [2009/02/02(月) 13:10:27 ]
>>241
優しいな。

243 名前: ◆UNKOVIP9RM [2009/02/02(月) 15:34:44 ]
おまいらモンティなんちゃらがヨウツベで公開されるらしいぞ

ttp://www.gizmodo.jp/2009/02/post_4978.html

244 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 18:59:18 ]
Pythonに興味を持って調べはじめたPHPユーザです。

最近、Pythonの本を図書館でいくつか見てみたんですが、どれもコンソールからの
入出力とかばっかりで、Webアプリケーションをつくるための情報が見つらず困り中です。

LLを覚える際には、大体Webアプリ制作に興味があってそのために1個覚えるというのが
よくある流れだと思いますが、少なくとも日本だとそれに応える情報源がPHPやPerlに
比べて圧倒的に見つかりにくい気がします。

そこで2点質問なのですが、

1、こういう本はあるんですが(内容が浅いので不評のようです)、ほかにあります?
www.amazon.co.jp/%E3%81%BF%E3%82%93%E3%81%AA%E3%81%AEPython-Web%E3%82%A2%E3%83%97%E3%83%AA%E7%B7%A8-%E3%81%BF%E3%82%93%E3%81%AA%E3%81%AE%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA-%E6%9F%B4%E7%94%B0-%E6%B7%B3/dp/4797341815

2、欧米だと、なぜPythonは人気なんでしょうか?
(Civ4とかスタンドアローンで使われてるのは知ってますが、Webアプリ制作用としても
 Googleなどで人気ある理由がわかりません。サーバの環境構築など、PHPやPerlの
 方が導入が簡単に思われるのですが。)

ご意見おまちしています。

245 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 19:20:56 ]
あの……すいません
1〜100までの素数を返させたいのですが、なかなかうまくいきません
知恵を貸していただけませんか
以下が途中までのプログラムです
なぜか、これだと素数以外の数が返されてしまうんです
できれば特殊な関数とかは使いたくないんです
#-*- coding: utf-8 -*-
#1〜100までの数の素数を割り出す
import time
while True:
for i in range(100):#Iを割り出す数とする
if i == 99:#iが99になったら終了
break
else:
for o in range(2,i):
p = i % o
if p == 0:#あまりがでなかったら(1とその数自身以外で割りきれてしまったら)
print i
time.sleep(0.5)
break
else:
continue
break

246 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 19:22:49 ]
あ、すいませんインデントが……orz

247 名前: ◆UNKOVIP9RM [2009/02/02(月) 19:23:11 ]
>>244
amazonでDjangoって本を検索しる

248 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 19:25:00 ]
import time
while True:
for i in range(100):#Iを割り出す数とする
if i == 99:#iが99になったら終了
break
else:
for o in range(2,i):
p = i % o
if p == 0:#あまりがでなかったら(1とその数自身以外で割りきれてしまったら)
print i
time.sleep(0.5)
break
else:
continue
break


249 名前: ◆UNKOVIP9RM [2009/02/02(月) 19:26:05 ]
>>244
ちゅうかね。Django1.0のチュートリアルを一通り読めば、なんでもできるよ。
ttp://djangoproject.jp/doc/ja/1.0/
あと最近ググルさんが公開したチュートリアル。
ttp://code.google.com/intl/ja/appengine/docs/python/gettingstarted/

これだけ嫁ばじゅうぶんのようなきがす。

250 名前: ◆UNKOVIP9RM [2009/02/02(月) 19:39:52 ]
>>245>>248
ttp://d.hatena.ne.jp/jYoshiori/20071126/1196061840



251 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 19:41:56 ]
ありがとうございます!!

252 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 20:06:54 ]
Google App Engine の Django は 1.0 なんでしょうか?

253 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 20:23:48 ]
code.google.com/intl/ja/appengine/docs/whatisgoogleappengine.html
>利便性のため、App Engine には Django Web アプリケーション フレームワーク
>バージョン 0.96.1 が同梱されています。

254 名前:デフォルトの名無しさん [2009/02/02(月) 20:41:58 ]
関数オブジェクトってどういうものですか?


255 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 20:49:56 ]
Google App EngineってDjangoで作ってあるんですか?


256 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 21:37:30 ]
Django使っても良いし使わなくても良い

257 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 08:42:34 ]
ウィジェットってPython的にどういうモノなんでしょうか?


258 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 20:24:58 ]
wxWidgets

wxPython

259 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 22:58:40 ]
なんでpythonなんか勉強するの?
ZOPEとか使っちゃうの?
PLONEとか使っちゃうの?
redhatのインストーラーとか作っちゃうの?

260 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 23:04:09 ]
>>259
初心者向けって言われたからとりあえずpythonやってるだけ



261 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 00:12:54 ]
何でもできる汎用スクリプト言語というと、
Perl, Python, Rubyあたりになると思うけど、
この中でコードが一番読みやすそうだと思ったから。

262 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 02:17:19 ]
Lispなんかどうだい?
括弧は怖くない、友達だよ!

263 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 02:55:56 ]
Lispはやっといて損はないよな。
ただ続けないとすぐ忘れてしまうけど。

264 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 05:54:40 ]
Syntax が一種類しかないから楽<Lisp

265 名前:デフォルトの名無しさん [2009/02/04(水) 09:15:53 ]
Pythonではモジュールの __version__ や __author__ は pydoc
で認識されますが、パッケージでも同様なのでしょうか?

たとえばパッケージの __init__.py で __version__ などを
指定しておけば、それは pydoc が認識してドキュメントを
作成してくれるのでしょうか?

266 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 09:31:50 ]
Lisp って基本構造は
(A B C)
しかなくて
(A B (a b c))
になってたり
(A (a b c) C)
になってたり
(A (i j k) (a b (x y z)))
になってたりするだけだと思う
それが分かってやっと読めるようになったかもって感じ
書けないけど

267 名前:265 [2009/02/04(水) 10:55:42 ]
すんません,話しの流れをぶったぎって.

p1/__init__.py
p1/m1.py

のようにパッケージ p1 とモジュール m1 を作ってます.
import p1 で p1/__init__.py が呼び出されます.
import p1.m1 でモジュール m1 が使えます.

m1 の中で単に一行 v1 = "abc" と書くと,
v1 は m1 というモジュールの中でのグローバルスコープになりますよね?
そして名前空間としては p1.m1 にあって,
p1.m1.v1 という名前で参照することができます.

普通は __init__.py では変数の定義など書かないのかもしれませんが,
p1/__init__.py で v2 = "def" と書いたとすると,それは
度のスコープになるんでしょうか?
実際にやってみると名前空間としては p1 の下にあるので
p1.v2 として参照できます.

このとき p1.v2 のスコープは
パッケージをインポートしたモジュールから見て
どうなるのでしょうか?

C++メインだったので,名前空間はファイルシステムとは関係なく
明示的に指定するということに慣れているのと,パッケージという
システムが理解できていません.





268 名前:265 [2009/02/04(水) 11:13:04 ]
やはりPythonにおけるパッケージシステムの概念が
分かっていなかったようです.パッケージシステムと
import において何が内部で行われているのかについて
勉強し直してきます・・・
www.python.org/doc/essays/packages.html

269 名前:デフォルトの名無しさん [2009/02/04(水) 11:30:45 ]
みんなのpythonを読んだ後って初めてのpythonを読む必要ってありますか?

270 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 11:32:18 ]
ないです。クックブックがいいよ



271 名前:デフォルトの名無しさん [2009/02/04(水) 12:05:41 ]
同じ要素の繰り返しからなるリストを生成する
シンプルな記述方法はあるでしょうか?

123,5 という入力から [123,123,123,123,123]
というリストを得たいと思っています。
ジェネレータで5回生成するようにもしてみたのですが
ワンライナーでほんもの?のリストを得たいです。

272 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 12:10:05 ]
[123] * 5

273 名前:デフォルトの名無しさん [2009/02/04(水) 12:10:19 ]
も、もしかして
5 * [123]
で終わりっすか?

もしそうなら死にたい。
そんなことに気付かなかった自分に絶望した。

274 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 12:10:42 ]
鬱だ

275 名前:デフォルトの名無しさん [2009/02/04(水) 12:30:50 ]
MySQLdbで辞書のキーと値に基づいて自動的に
SELECTクエリを発行してくれる関数ってあります?
たとえば {"col1":"111", "col2":"222"}
から "SELECT myid FROM mytable WHERE col1="111" AND col2="222"
を生成してくれれば便利だなと思うのですが。

276 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 16:48:14 ]
>>266
Lispの基本要素はS式だろ

277 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 16:51:24 ]
[1,2,3,4] * 4

がどうして[1,2,3,4,1,2,3,4,1,2,3,4]になるんだろうね
ベクトルの定数倍になってほしい

278 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 17:08:45 ]
ベクトルじゃなくてシーケンスだからしょうがない

279 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 17:09:58 ]
a * 4 = a + a + a + a

こういう事だと思う。
文字列とか連結リストオブジェクト同士を足すとそうなる。

280 名前:デフォルトの名無しさん [2009/02/04(水) 17:23:59 ]
'SELECT myid FROM mytable WHERE col1=%(col1) AND col2=%(col2)' % vars()




281 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 17:29:34 ]
>>277
>>> map(operator.mul, [1,2,3,4], [4]*4)
[4, 8, 12, 16]

282 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 17:50:48 ]
和とかスカラーの積の場合は単純だけど、
リスト*リストだと内積をとるべきなのか外積をとるべきなのか迷うなあ
いやベクトルの要素同士を掛けてベクトルを返すというのもありなのか
行列を考えるとさらに面倒だな

やはり現状のが自然か

283 名前:デフォルトの名無しさん [2009/02/04(水) 18:30:01 ]
ttp://www.iba.t.u-tokyo.ac.jp/~iba/C/lisp.html
ttp://www.atmarkit.co.jp/fcoding/articles/gauche/01/gauche01a.html
ttp://www.atmarkit.co.jp/fcoding/articles/gauche/01/gauche01b.html
ttp://www.atmarkit.co.jp/fcoding/articles/gauche/01/gauche01c.html
ttp://www.atmarkit.co.jp/fcoding/articles/gauche/01/gauche01d.html
ttp://www.atmarkit.co.jp/fcoding/articles/gauche/01/gauche01e.html

284 名前:デフォルトの名無しさん [2009/02/04(水) 20:50:22 ]
プログラムでいう「受ける」とはどういう意味ですか?


285 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 20:58:45 ]
典型的には関数やメソッドなどの戻り値(返り値)を変数に代入することです

>>> 'a,b,c'.split(',') # メソッドの返り値を受けずに捨てている
['a', 'b', 'c']
>>> result = 'a,b,c'.split(',') # 返り値を受ける
>>> result
['a', 'b', 'c']

286 名前:デフォルトの名無しさん [2009/02/04(水) 21:47:19 ]

  _/ ̄ ̄~\-、
 rイ/ ̄ ̄ ̄\ 丶丶
{ミ/// // 丶 丶| |
 Y LLハLLハLL丶 || |
 | V●  ィ●丶 6)|
 |f⌒ (_  ⌒i イ |
 || トェェェイ  | | し
/||\  ̄  ノ| し彡
`ノノ//`ー―-′丶ヾ\
 /|    //
(/ ヽ___/ \ノ


287 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 23:35:54 ]
内積の求め方ってこれであってますか?
reduce(lambda x,y: x+y, map(operator.mul,[1,2,3],[4,5,6]))


288 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 00:59:26 ]
それで合ってるけど
sum(map(operator.mul, [1,2,3], [4,5,6]))
でもいいよ

289 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 02:04:52 ]
numpy.dot

290 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 03:16:32 ]
ttp://www.python.org/dev/peps/pep-0008/の定数の項で

Constants
Constants are usually declared on a module level and written in all
capital letters with underscores separating words. Examples include
MAX_OVERFLOW and TOTAL.

とあるけど、module levelって何のこと?



291 名前:デフォルトの名無しさん [2009/02/05(木) 11:47:54 ]
>>285
「例外クラスを受ける」の「受ける」も同じことが言えますか?

292 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 12:09:47 ]
>>291
それは多分「try節で送出された例外をexcept節で捕捉する」の意。

293 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 16:50:21 ]
>>287
reduce(operator.add,map(operator.mul,[1,2,3],[4,5,6]))


294 名前:デフォルトの名無しさん [2009/02/05(木) 17:16:38 ]
>>292
ありがとうございます。
では、「例外を受けるクラス」はどういう意味ですか?


295 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 17:33:25 ]
tryが書いてあるメソッドを持つクラスのことです

296 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 17:45:21 ]
英語講座だか日本語講座になってきたな

297 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 18:12:46 ]
ttp://ana.20ch.net/s/ana20ch16582.jpg

298 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 22:49:13 ]
ある科学計算をさせるpackage(以降pyhoge)を作成しようと思っているんですが、
その計算で使用する数値テーブルも同梱しようと思っています。
.pyの中にべた書きするのは大変なので、
table.datのようなASCIIファイルを同梱する予定です。

このような場合、setup.pyにはtable.datをどのように処理させればいいのでしょうか。
www.python.org/doc/2.5.1/dist/node13.html
を読むと.py以外の配布物も含められるようなのですが、
site-packages/pyhoge/以下を指定する方法はあるのでしょうか。
またできたとして、site-packages/pyhoge以下のファイルを、
.pyの中から指定させるようにするには、.pyをどのように書いておけばいいでしょうか。

299 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 23:05:49 ]
過去ログ読まずに質問して申し訳ないがRubyのpとかppみたいなオブジェクトの中身を表示してくれる関数ってPythonにはあるの?

300 名前:デフォルトの名無しさん [2009/02/05(木) 23:11:35 ]
www.python.org/doc/2.5.1/dist/node12.html



301 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 23:12:31 ]
>>299
ありますよ

302 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 23:14:48 ]
>>301
すんません、関数名を教えてください。後はぐぐります。

303 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 23:37:17 ]
>>302
p?
docs.python.org/library/functions.html?highlight=repr#repr
docs.python.org/library/repr.html#module-repr

pp?
docs.python.org/library/pprint.html#module-pprint

304 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 23:41:36 ]
>>303
dクスです。

305 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 12:13:21 ]
class Hoge(object):
 def __init__(self, arr):
  self.arr = arr

みたいなclassを作るときに、arrがlistだったりすると、

>>> arr = [1, 2, 3]
>>> h = Hoge(arr)
>>> h.arr
[1, 2, 3]
>>> arr[0] = 10
>>> h.arr
[10, 2, 3]

のように中身が変わることがありますよね。
C++のように値渡しにしておきたい場合は、
copy.copyを多用すればいいんでしょうか。



306 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 12:29:31 ]
一般的に、型チェックはどの程度真面目にやるものなのでしょうか。
もちろん用途によるのですが、Python使いの人の流儀としての一般論です。
正しい型を引数に渡すかはユーザ次第と考えるのか、
ユーザが間違った引数を渡したときは丁寧に教えてあげるのか。

307 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 15:15:12 ]
>>305
self.arr = list(arr)
>>306的な意味も兼ねる。

308 名前: ◆UNKOVIP9RM [2009/02/06(金) 15:50:54 ]
ttp://itpro.nikkeibp.co.jp/article/COLUMN/20090203/324115/

ruby厨・・・

309 名前: ◆UNKOVIP9RM [2009/02/06(金) 15:55:21 ]
なんでpythonの勉強会で円陣を組まないのかが全く分かりません。

勉強会はエンジンを組むべきだし。

310 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 19:12:40 ]
s = "1 2 3"
f = float(s.split())

みたいにやって、fが[1, 2, 3]となるようにしたいのですが、
どのような方法があるでしょうか。



311 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 19:53:46 ]
ここにあるソースをパクって、データベースにはMySQLで作ったDBにはアクセスできるようになったんだけど
www.etemonkey.com/chibilog/archives/2009/01/pythonmysql.php
これをもう一歩進化(?)させて、何かのブラウザでやりたいんだけど、どーやってやるの?

MySQLに動物のDBがあったとして、ブラウザのテキストボックスに「象」って入れて実行ボタンおすと
その下に、象のデータがピコーンって表示される感じにしたい

312 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 20:16:23 ]
>>> s = "1 2 3"
>>> [float(i) for i in s.split()]
[1.0, 2.0, 3.0]
>>> map(float, s.split())
[1.0, 2.0, 3.0]
>>> [int(i) for i in s.split()]
[1, 2, 3]
>>> map(int, s.split())
[1, 2, 3]

313 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 22:13:04 ]
ちぃ map もう覚えた

314 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 00:18:04 ]
Pythonって、for文の中でreturnしても大丈夫なんだっけ?

315 名前:デフォルトの名無しさん [2009/02/07(土) 00:20:26 ]
ok
yieldもok

316 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 00:22:32 ]
thanks!

317 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 01:10:09 ]
jk

318 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 01:19:08 ]
なるほど
ありがとうございました

319 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 01:26:21 ]
IDLEからF5で実行して右上の×で終了させると
ウィンドウだけじゃなくIDLEも終了しちゃうんだけどどうすればいいんですか?

320 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 03:42:52 ]
再起動



321 名前:デフォルトの名無しさん [2009/02/07(土) 09:07:54 ]
Python使いの諸君!
速く2chでタブが表示されるように左翼活動を開始せよ!

322 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 11:40:32 ]
>>321
言ってる意味が分からない

323 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 11:43:12 ]
2ちゃんでタブのインデントが崩れないようにしようぜ、と言ってるのかと

324 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 11:47:49 ]
それはHTMLの仕様上どうしようもないような
pre使うとAAに影響出るし
2chの規模を考えると埋め込みコードとかの重そうな機能追加は望み薄

325 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 12:15:16 ]

Python使いの諸君!
速く2chでタブが表示されるように左翼活動を開始せよ!

326 名前:デフォルトの名無しさん [2009/02/07(土) 12:39:22 ]
thread.start_new_thread(func,())
で生成したスレッドの中でさらにスレッドを作ろうとするとエラーになります。
これは仕様なのでしょうか

327 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 12:52:28 ]
投稿の行の先頭に
#!
があったらそれ以降はそのレスだけ
pre適用してもいいんじゃね?

328 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 12:53:54 ]
いらん機能追加して脆弱性が生じても困るので勘弁。

329 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 12:57:35 ]
すみません。仕様なのでしょうか。

330 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 13:14:14 ]
>>326
>エラーを解決したいときはエラー表示や環境を略さずに書き込んで下さい。



331 名前:319 mailto:sage [2009/02/07(土) 13:55:08 ]
説明不足でした
実行してるファイルだけ終了したいんだけどどうすればいいんですか?

332 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 14:20:39 ]
複雑だと思うならつかわなきゃいいんじゃねーの?
なんでアホはあるもの全部使わなきゃ気がすまねーの?

333 名前:デフォルトの名無しさん [2009/02/07(土) 14:30:29 ]
Windows 版の Python で pydoc どうやって起動すんの?
python.exe -m pydoc なの?

334 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 14:58:16 ]
try-exception以外に変数が存在するかどうかをテストする方法はありますか?


335 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 15:03:45 ]
こんなん?

>>> a = 1
>>> 'a' in vars()
True
>>> 'b' in vars()
False

336 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 15:15:10 ]
in locals()


337 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 15:17:14 ]
おおそんな手が!
でもインスタンス変数に対してはどうやったら・・
blenderが必ずしもすべてのインスタンス変数を生成しているわけではないので
アクセスするとトラップばっかりなんですよね。
嫌らしい事に条件によって生成されたりされなかったりなので
これを回避しようとするとtry-exceptだらけになってすごいことになる。

とりあえずvars()を調べてみます。
任意のインスタンスのインスタンス変数にも適用できるスマートな方法があったら教えて頂きたく・・

338 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 15:27:59 ]
>>> 'sort' in dir([1,2,3])
True
>>> 'read' in dir([1,2,3])
False

間違ってるかもしれないからエロい人のレスも待ってね

339 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 15:34:31 ]
ああボケてた。>>338はスルーで

340 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 15:59:56 ]
>>337
ありますよ



341 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 16:06:08 ]
>>337
getattr

342 名前:341 mailto:sage [2009/02/07(土) 16:06:43 ]
hasattrだった

343 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 16:07:49 ]
getattr(インスタンス,メソッド,無かった場合に返す値)

無かった場合に返す値が定義されてないとエラー返す。

344 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 16:17:29 ]
>>342
ばっちりですた。
これでいってみようと思います。ありがとうございました!

if hasattr(aMesh , 'dgre'):
print aMesh.dgre
else:
print '普通セットされないよ'

345 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 18:52:59 ]
print getattr(aMesh , 'dgre', '普通セットされないよ')

346 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 19:48:33 ]
>>319
Tkinterのアプリを作っている?
もしそうなら IDLE からではなく別途実行するのがいいかと。
IDLE も Tkinter で作られていて
自作アプリが異常終了したりすると IDLE も巻き込まれて死ぬことが多い。
予め開いたコマンドプロンプト(DOS 窓)から実行するのがオヌヌメ。
(例えば Windows だと .py のダブルクリックでも実行できるけど
異常終了したときエラーメッセージを読む前に DOS 窓が閉じてしまうから。)


347 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 19:56:46 ]
なるほど
ありがとうございました

348 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 21:56:00 ]
universal feed parser使ってる人いる?
パースした結果を普通のpythonオブジェクトに変換できないかな?
パース結果が<class 'feedparser.FeedParserDict'>で戻ってくるのでjsonにうまく変換できない。。。



349 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 23:16:11 ]
>>348
そのFeedParserDictとやらは新しいpythonならdictを継承してるから
「普通のpythonオブジェクト」として振舞うはず。
しかし、アイテムとして持ってるものの中でjsonでシリアライズできないものは
全て自前で変換コードを書く必要がある。
docs.python.org/library/json.html?highlight=JSONEncoder

350 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 23:43:33 ]
>>349
うん。dictを継承してるから普通にシリアライズできると思ったんだが出来なかったので
何かやり方があるんじゃないかと思って聞いてみた。
まあ現実に出来てないんだから変換コードを書くしかないんだろうな。
踏ん切りついた。ありがとう。
ちなみにPython2.5でjsonライブラリは
pypi.python.org/pypi/python-json/3.4 のを使った。




351 名前:350 mailto:sage [2009/02/08(日) 14:22:17 ]
解決したので自己レス。
どうやらjsonライブラリがよくなかったみたい。
deron.meranda.us/python/demjson/ をつかったら
特に変換コードを書かなくてもシリアライズできた。

352 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 15:22:19 ]
そういうことがあるだな。

353 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 15:40:58 ]
なるほど
ありがとうございました

354 名前:デフォルトの名無しさん [2009/02/08(日) 16:38:35 ]
a = {"123":"abc"}
str(a)

で出力される文字列が普通にjsonだったらいいのに・・・

355 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 17:01:22 ]
JSONって"でないとだめなの?
'でもいける?

356 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 17:02:52 ]
だめですよ

357 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 20:40:14 ]
SocketServerを使ってサーバーを作ったのですが今接続しているクライアント全てに同じメッセージを送る方法が分かりません。
ご教示のほどよろしくお願いします。

358 名前:デフォルトの名無しさん [2009/02/08(日) 22:30:20 ]
>>355-356

だよな。
読む方は下手にevalすると危ない気もするけど、
書く方はてがるに str() でJSONになればべんりなのにな。

359 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 22:42:36 ]
a = [{"123":"abc"}, 4, 5, {"hage":"fuga",'suka':'pontan',"piyo":[123,456]}]
str(a).replace("'",'"')

[{"123": "abc"}, 4, 5, {"suka": "pontan", "hage": "fuga", "piyo": [123, 456]}]


360 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 22:44:03 ]
>>> a = {"12'3":"ab'c"}
>>> str(a).replace("'",'"')
'{"12"3": "ab"c"}'



361 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 22:46:19 ]
>>> a = {"12'3":"ab'c"}
>>> str(a)
'{"12\'3": "ab\'c"}'

362 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 23:12:31 ]
おもしろいやつらだなお前らは

363 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 23:19:38 ]
でもこれだとTrue -> true, False - > false, None-> 'none'
ができてねえぞ

364 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 23:22:43 ]
俺のやることにいちいち口を出さないでほしい。
ここは初心者スレなのだから間違えたとしても許される。

365 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 23:23:44 ]
json.dumpsが標準になったんだから使えよ

366 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 23:32:55 ]
なぜ昔からあるstrを使わない?

367 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 23:40:16 ]
                             |
                             |
      ∩___∩             |
      | ノ  _,  ,_ ヽ        ((  | プラプラ
     /  ●   ● |         (=)
     |    ( _●_)  ミ _ (⌒)   J  ))
    彡、   |∪|  ノ
⊂⌒ヽ /    ヽノ  ヽ /⌒つ
  \ ヽ  /         ヽ /
   \_,,ノ      |、_ノ

368 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 00:29:59 ]
for i in range(1,101):print"Fizz"*(i%3<1)+"Buzz"*(i%5<1)or i

こういうふうに"*"をprintの中で使う場合について解説しているサイトを教えてください。
入門書を一冊読んだのですが、上記のような使い方については書かれていませんでした。たぶん。

369 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 00:32:41 ]
"Fizz"*1 表示
"Fizz"*0 非表示
になってるだけ。
"hoge"*2 -> hogehoge
たぶん。

370 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 00:37:18 ]
>>368
> "*"をprintの中で使う場合について

こういう条件付けはあまり意味がないな

print文の構文は
print 式,式...
または
print >>式 式,式...
だ(正確な定義はリファレンスマニュアル参照)

つまりprint文では任意の式が使えるから使っているだけのことで、
この場合は式 "Fizz"*(i%3<1)+"Buzz"*(i%5<1)or iを評価した値が印字される



371 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 00:39:10 ]
*での繰り返しについてってことならチュートリアルにもあるね

www.python.jp/doc/release/tut/node5.html#SECTION005120000000000000000

372 名前:368 mailto:sage [2009/02/09(月) 01:05:10 ]
>>369-371
ご教示ありがとうございます。

*が特別な意味を持っていて、たとえば
"Fizz" if i%3<1 else ""
のelse以降を省略したような意味で使われているのかと思ったのですが、
ただ掛けていただけだったんですね。

373 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 02:33:21 ]
そう思ってても問題ないよ今回の場合は

374 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 17:52:44 ]
amazonのHTMLを解析するプログラムを組んでいるんですが、
正規表現がうまくいきません。

re_word = re.compile(r'href.*?/dp/.*?>')

リンクに/dp/が含む行だけを抜き出しいのですが、
うまく抜き出せません。
正規表現はチェッカーを使ったところ正しいようです。

for m in re_word.finditer(htmlcontent):
                print m.group(0)

何か使い方が悪いでしょうか
python2.5

375 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 18:51:41 ]
何がやりたいのか、どんなエラーが出たかなどちゃんと書かないと分からないよ
コード例も断片じゃなくてちゃんと動くものを書こうね

こういう処理はちゃんとしたHTMLパーサを使うのが定石(ElementTree, lxmlなどで調べて)
ちゃんと動いてるみたいだけどどこがおかしいの

#!/usr/bin/python
import re, urllib
htmlcontent = urllib.urlopen("www.amazon.com").read()
re_word = re.compile(r'href.*?/dp/.*?>')
for m in re_word.finditer(htmlcontent):
    print m.group(0)

$ python test.py
href="www.amazon.com/Makita-BDF452HW-18-Volt-Compact-Lithium-Ion/dp/B000K6ILDW">
href="www.amazon.com/Milwaukee-2601-22-18-Volt-Li-ion-Compact/dp/B000WER5SE">
href="www.amazon.com/Makita-BDF452HW-18-Volt-Compact-Lithium-Ion/dp/B000K6ILDW">
href="www.amazon.com/Milwaukee-2601-22-18-Volt-Li-ion-Compact/dp/B000WER5SE">

376 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 18:54:55 ]
ElementTreeをHTMLパーサとか言うのは勘弁してください

377 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 18:56:17 ]
re.compile(r'href[^<>]*?/dp/[^<>]*?>')

378 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 19:08:43 ]
HTML -> HTMLParser(html.parser@3.0)
XML -> xml.parsers.expat, xml.dom, xml.sax, xml.etree.ElementTree, lxml(推奨)
lxmlはwell-formedでないXMLもうまく扱える。
これで合ってますかね。

379 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 23:10:38 ]
dictionaryのkeyに可変なインスタンスを登録することができないのですが、
同様な機能はどっかの標準パッケージにあるでしょうか。

例えば
class Nuclei(object):
 def __init__(self, A, Z):
  self.A = A
  self.Z = Z
というような、質量数と原子番号を保持するものがあるとします。
原子の周期表をdictionaryで作るとして、

d = {}
d[Nuclei(2, 1)] = 0.0015 # 例えば重水素の存在比を登録

のようにしたとき、再び

>>> d[Nuclei(2, 1)]
0.0015

と取り出せるようにしたいのですが。

380 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 23:45:25 ]
from collections import namedtuple # 2.6 feature
Nuclei = namedtuple("Nuclei", "A Z")



381 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 02:21:03 ]
>>380
ありがとうございます。
2.5までしか使えない環境なので、
__hash__を定義して解決しました。

382 名前:デフォルトの名無しさん [2009/02/10(火) 08:04:53 ]
そんな機能があったとは。
おまえら物知りだなぁ。

383 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 10:56:35 ]
モジュールが豊富にあるので
個々人で全てを把握しきれるとは思えないからな。
一応namedtupleについては追加するとか
一部(ML)で話題にあがったりしたが。

384 名前:374 mailto:sage [2009/02/10(火) 11:08:40 ]
>>375 >>376 >>377 >>378
テキストのエンコードとか変更して色々やってたら抜き出せました。
色々とご教授頂き、ありがとうございました

385 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 14:21:29 ]
BeautifulSoupを使っているんですが、
<div class="hoge">this soup is beautiful</div> (1)
とあった場合
this soup is beautiful
を抜き出すにはどうすればいいのでしょうか?
(1)まで抜きだしはできていてclassつきの場合のやり方がわかりません。
(1)を格納している変数はsoupsとすると
soups["div"]に近い形で抽出できると思うんですが、
よろしければ教えていただけませんか?


386 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 14:36:40 ]
>>385
Tagの子要素はcontentsで取れるんで、単に
soups.contents[0]
でいいんじゃないか
クラスはNavigableStringになる

387 名前:385 mailto:sage [2009/02/10(火) 15:30:50 ]
>>386
意図どおり、取れました。
ありがとうございます!。

388 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 20:11:59 ]
pythonをUSBメモリに入れてMsysで使いたいです

389 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 23:33:47 ]
pymixiって今配布されているバージョン動きますか?
BeautifulSoupのエラーなのか, Pymixiのエラーなのか, Mixiのタグが変わったのか切り分け中です。

390 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 17:06:54 ]
pycompleteを探していて、python-modeと一緒に入ってると聞いたのですが、
最新版らしき
ttps://launchpad.net/python-mode
には入ってませんでした

どっかにありませんか?



391 名前:390 mailto:sage [2009/02/12(木) 17:11:39 ]
自己解決しました

392 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 19:32:36 ]
pythonからwindowsのコマンドを実行することはできますか?
またできるのなら方法を教えてください

393 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 19:54:16 ]
>>392
import os

394 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 20:04:32 ]
どうしてpythonにはpopenがいっぱいあるのはなぜですか?

395 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 20:16:45 ]
>>394
そのとおりです


396 名前:デフォルトの名無しさん [2009/02/12(木) 20:22:10 ]
3=9-6

397 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 20:29:48 ]
愚民が権力握っても 不正や腐敗がはびこるだけよ♪

398 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 21:52:56 ]
>>394
そのうち消えるから安心しろ

399 名前: ◆UNKOVIP9RM [2009/02/12(木) 22:57:52 ]
>>394-395
ちょっとわからんかった。。。

400 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 16:53:11 ]
人生は後払い



401 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 02:42:21 ]
python3000ってpymacs使える?

402 名前:デフォルトの名無しさん [2009/02/14(土) 16:34:44 ]
無理 あきらめろ

403 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 18:40:42 ]
辞書のコピーってのは、やっぱりimport copy使うか、バラして自力でやるしかないでしょうかね?
d = {なんとか}で、
c = { d.items() }みたいな感じで簡単に書くのは無理でしょうか?

404 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 18:50:46 ]
dict(d)

405 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 19:21:37 ]
>>404
ありがとうございます!
もっと簡単な方法があったんですね。

406 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 21:43:20 ]
d.copy() でもいい

407 名前: ◆UNKOVIP9RM [2009/02/15(日) 20:57:05 ]
ttp://itpro.nikkeibp.co.jp/article/Research/20090214/324743/

日本は新興国だろ

408 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 13:50:58 ]
galprop.stanford.edu/web_galprop/galprop_home.html
に置いてある、
galprop.stanford.edu/codes/v50.1p.tgz
の中のpp_meson.fをf2pyにかけたいのですが、

$ f2py -c -m pp_meson pp_meson.f

をやると大量のエラーが出ます。

running build
running config_cc
unifing config_cc, config, build_clib, build_ext, build commands --compiler options
running config_fc
unifing config_fc, config, build_clib, build_ext, build commands --fcompiler options
running build_src
building extension "untitled" sources
f2py options: []
f2py:> /var/folders/wH/wHx7+EnOGj8QSwsYqxTqmE+++TI/-Tmp-/tmpYvDAdM/src.macosx-10.5-i386-2.5/untitledmodule.c
(略)
File "/Library/Python/2.5/site-packages/numpy-1.2.1-py2.5-macosx-10.5-i386.egg/numpy/f2py/crackfortran.py", line 2072, in analyzevars
for k in implicitrules[ln0].keys():
KeyError: '1'

どのような修正を加えて走らせ直せば良いのでしょうか。

OS X 10.5.6 + gfortran
Linux g77 3.3.5

のどちらでも同じ症状です。Python 2.5 + numpy 1.2.1を使っています。

409 名前:408 mailto:sage [2009/02/16(月) 18:23:29 ]
どうやらf2pyは継続行をうまく扱えないようで、
   1行目 !comment
  & 2行目
みたいに書いてあるところのコメントを取り除けばいいようです。

410 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 20:15:59 ]
site-packages/my_package
site-packages/my_package/__init__.py
site-packages/my_package/module1.py
site-packages/my_package/module2.so

のような構成でパッケージを作りました。
__init__.pyには、

from module1 import *
from module2 import *

とだけ書いてあります。しかし、

$ python
>>> import my_package
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "my_package/__init__.py", line 8, in <module>
from module2 import *
ImportError: No module named module2

となってしまいます。どこを直せば、module2.soを読みに行ってくれるのでしょうか。
python 2.5.1をOS X 10.5.6で使用しています。



411 名前:410 mailto:sage [2009/02/16(月) 20:16:54 ]
追記

$ cd site-packages/my_package
$ python
>>> import module2

とやると、ちゃんと動きます。

412 名前:410 mailto:sage [2009/02/16(月) 20:46:46 ]
あ、嘘。できた。

413 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 21:44:34 ]
例1)

>>>wordlist = ["H","K","L"]
>>>[word.lower() for word in wordlist]
['h', 'k', 'l']

例2)
>>> x = [1,2,3,4,]
>>>[x for x in x if x % 2 == 0]
[2, 4]

例1を
>>>[for word in wordlist word.lower()]
例2を
>>>[if x % 2 == 0 x for x in x]
とやると、動きませんでした。

forの部分を前に書く場合と後ろに書く場合があるような気がするのですが、
どういった決まりがあるのでしょうか。


414 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 21:58:36 ]
>>413
構文はリファレンスマニュアルに書いてある
ttp://docs.python.org/reference/expressions.html#list-displays
かな

まあ簡単に言うとyieldしたい式は必ず先頭(forの前)に
書かなければならないような構文になっている

415 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 06:03:47 ]
Python ではマルチスレッド化しても複数コアを使うことはなくて(なんかGILとか言うらしい)、
複数使うにはマルチプロセスにすれば可能
という理解であってます?

416 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 10:49:47 ]
まちがってるよ。Ruby使えば問題かいけつ。

417 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 11:24:05 ]
いい加減にしろRuby厨!
巣から出てくるな!
あんなパクリだらけで出来の悪い言語なんか信者以外使わないわ

418 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 11:53:08 ]
まぁまぁ

419 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 12:00:59 ]
こうしてみるとRubyって存在そのものが悪だな
まぁ作った奴からしてアレだしw
ひたすら他の言語をDisりまくりだもんな、そりゃ嫌われるわ

420 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 12:19:32 ]
だが、そこがいい



421 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 16:30:58 ]
>>415
おk
ja.wikipedia.org/wiki/CPython#.E4.B8.A6.E5.88.97.E6.80.A7.E3.81.AB.E9.96.A2.E3.81.99.E3.82.8B.E5.95.8F.E9.A1.8C

422 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 00:44:24 ]
>>421
ありがとう

423 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 20:09:31 ]
自分で作成したモジュールの同梱データファイルを使いたいときに、

mydata = pkg_resources.resource_filename("my_module", "data/data.txt")

としてパスを取得しています。
しかしこの方法だとpkg_resourcesを入れる必要があるため、
他の人のマシンにmy_moduleを入れた場合にすぐに動きません。
この他に、データファイルのパスを簡単に取得する方法があるのでしょうか。

424 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 20:18:09 ]
データファイルをモジュール化する。

425 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 21:53:18 ]
os.path.join(os.path.dirname(__import__("my_module").__file__), "data/data.txt")

426 名前:デフォルトの名無しさん [2009/02/19(木) 23:21:08 ]
ありがとうございました

427 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 03:34:21 ]
すごいくだらないんですけど
PyPy Pychinko以外になんか卑猥なのあります?

428 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 15:06:40 ]
え?どこが卑隈なの?

429 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 15:56:05 ]
o2.py

430 名前:デフォルトの名無しさん [2009/02/21(土) 19:26:29 ]
AutoComplete.elをwindowsのMeadowで使ってる人いません?
rope のインストールの仕方教えて臭い



431 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 19:37:13 ]
つttp://www.youtube.com/watch?v=y8SZnU5iG-4

432 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 04:02:27 ]
>>430
pythonユーザはMeadow率が低いみたい.
俺も以前,このスレでpdbがらみの質問したけど
まともなレスが無かったよ.
素直にeclipseを使うことをお勧めする.
emacsキーバインドもあるから,移行はそんなにつらくない・・・かもしれない.
とか言ってる俺自体,Meadowとの相性の悪さにウンザリして
Python触らなくなっちゃったけどね.
下手に高機能な分,動かないときは絶望的ってイメージ.

433 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 04:11:08 ]
つか,このスレでたまに出てくるRuby厨は
Python厨の騙りじゃねw
まぁ,どっちでもいいけどさ.

国内でのライブラリやツール類の開発者(成果物?)は
Ruby >>> Python
ですよね.

当然,世界レベルで見たら
Perlに変わってLinuxのシステムツールの地位を獲得している
Pythonの方が圧倒的だけど,やっぱり,国内じゃ弱い.

まぁ,何が言いたいかってぇと,ブログなんかに書き散らかすんじゃなくて
有用な情報が一元的に収集されてるといいなぁ・・・ってことです.


434 名前:430 mailto:sage [2009/02/22(日) 05:19:23 ]
自己解決しました
setup.pyを実行じゃだめで、easy_install入れたらできました。

>>432
まぁ私は困ってないのでこのままMeadowを使おうとおもいます
参考までになにが不満だったかお聞かせください

435 名前:デフォルトの名無しさん [2009/02/22(日) 05:58:36 ]
>>434
gdbインターフェースでpdbを使いたかったんですが
俺には無理でした。


436 名前:デフォルトの名無しさん [2009/02/22(日) 09:12:29 ]
>>432,434
Windows用のGNU Emacsを使うという手は?

437 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 11:24:38 ]
>>436
確かに、Win32 emacsでやりたいことはできるんですが
Meadowとの細かい差分が気になって…
せめてマウスカーソル消去に対応して欲しかった。

438 名前:デフォルトの名無しさん [2009/02/22(日) 14:05:35 ]
boost.pythonスキだぁ

439 名前:デフォルトの名無しさん [2009/02/23(月) 15:46:55 ]
質問です。
osはwindowsxp、Pythonは2.6.1を使っています。

PyAudioというモジュールをインストールして
waveファイルをいじろうとしているのですが、
waveファイルを再生しようとしてPyAudio配布元の
Exampleソースのように書いて動かしてみると
普通に動きました(waveファイルが再生された)
●PyAudio配布元people.csail.mit.edu/hubert/pyaudio/
●wave再生のexampleソースpeople.csail.mit.edu/hubert/pyaudio/#examples

今度は再生のときの音量をいじってみようと
モジュールの説明をつらつらと見てみたのですが
どのようにいじれば音量をコントロールできるかわからないです。
どなたかわかる方いらっしゃいませんか?。。。。。
●PyAudioモジュールドキュメント
people.csail.mit.edu/hubert/pyaudio/docs/pyaudio-module.html

440 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 23:37:35 ]
>>439
以前やろうとしtけど、なかった気がする

他の方法でOSの音量をいじるか、
code.google.com/p/pygalaxy/wiki/SWMixer
こんなのがみつかったけど、どうだろうか?



441 名前:デフォルトの名無しさん [2009/02/24(火) 19:47:36 ]
なんかMeadowの話があったみたいですが、NTEmacsでの質問をさせてください。
VistaにNTEmacs、Python2.5.4、PyQt-Py2.5-gpl-4.4.3、matplotlib-0.98.5.2、python-modeを入れてNTEmacsからpy-shellを使えるようにしました。
ところがmatplotlibで図を表示してみようと思っても、imshowで止まってしまって何も表示されません。
同じ事をIDLEからやるとちゃんと表示されます。
理由と対処法分かりませんか?
実行しようとしているのはネットで拾ったサンプルの一部で

from pylab import *
A = rand(5, 5)
figure(1)
imshow(A, interpolation='nearest')
grid(True)
show()

です。NTEmacsの*Python*バッファからだとimshow()で止まってしまいます。


442 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 04:19:00 ]
>>> a = {1 : []}
>>> b = dict(a)
>>> b[1].append(2)
>>> b
{1: [2]}
>>> a
{1: [2]}

中のリストが参照渡しになってしまうようなのですが、これを回避する方法はありますか?
ちなみに
a.copy()
copy.copy(a)
もだめでした。

よろしくお願いします

443 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 04:26:17 ]
copy.deepcopy(a)

444 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 07:38:42 ]
Pytohnシェルでタブ補完出来るようにしたら便利すぎ!! "python 補完"でぐぐって、
Linuxの場合:
ttp://d.hatena.ne.jp/maedana/20070813/1186992559

Windowsの場合:
ttp://72.14.235.132/search?q=cache:oiU4zQsZDZkJ:www.gikogeek.net/wd/2008/09/25/41/+python+%E8%A3%9C%E5%AE%8C&hl=ja&ct=clnk&cd=3&gl=jp&client=firefox-a

上記の方法以外に、より高機能なPytohnシェル(IPython)を使うという手も良さそう。
ttp://python.matrix.jp/modules/ipython.html

445 名前:442 mailto:sage [2009/02/25(水) 13:08:05 ]
>>443
ありがとうございます!

446 名前:デフォルトの名無しさん [2009/02/25(水) 15:19:34 ]
>>444
ありがとうございます!

447 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 22:10:52 ]
>>444
パイトーンワロタ

448 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 07:17:14 ]
pythonで[0x78, 0x56, 0x34, 0x12]みたいな配列を0x12345678のような数値にしたいのですが何か良い方法ありますか?

449 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 07:40:20 ]
たたき台として

>>> from struct import *
>>> buf = pack('4B', *[0x78, 0x56, 0x34, 0x12])
>>> buf
'xV4\x12'
>>> unpack('<I', buf)[0]
305419896
>>> hex(_)
'0x12345678'

450 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 11:51:37 ]
a = [0x78, 0x56, 0x34, 0x12]
"0x%02x%02x%02x%02x" % (a[3],a[2],a[1],a[0])



451 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 12:21:48 ]
>>> a = [0x78, 0x56, 0x34, 0x12]
>>> reduce(lambda x, y: (x << 8) + y, reversed(a), 0)
305419896
>>> sum(i * 2**j for i, j in zip(a, (0, 8, 16, 24)))
305419896

452 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 15:02:32 ]
reduce(lambda x, y: x + '%02x'%y, reversed(a), '0x')

453 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 15:07:36 ]
「数値にしたい」と言ってるのに文字列化してるのは何故なんだぜ

454 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 15:39:55 ]
0x12345678のような数値にはならないから。

455 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 15:47:10 ]
0x12345678は数値?

456 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 15:48:26 ]
'0x12345678'になってりゃ
int('0x12345678',16)で医院で内科脳

457 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 15:51:33 ]
>>> int('0x%s'%''.join(map(lambda x: '%02x'%x,reversed(a))),16)
305419896

458 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 15:53:02 ]
とりあえず reversed() は禁止した方が良いと思う

459 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 15:55:55 ]
言い出しっぺが「数値にしたい」と言ってるのに文字列化してる

460 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 15:59:25 ]
問題文の日本語が正しいとは限らない。



461 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 16:04:37 ]
初心者スレだからな
素直に
>>449
でいいと思う

462 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 16:06:42 ]
bytes([0x78, 0x56, 0x34, 0x12]).long()


463 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 20:47:36 ]
class A(object):
 def f(self):
  """
  document
  """
class B(A):
 def f(self):
  pass

という2つのclassを作ったとします。このとき、
help(A)やhelp(B)でAとBの説明を見ると、
当然かもしれませんがB.fの説明は空欄になってしまいます。
Bのような継承が何個もあり、その関数fの説明は全て同じにしたいのですが、
全部の継承classに対して同じ説明書きをしないといけないのでしょうか。
説明が変わるたびに全てのclassを修正する必要があるので面倒です。

何か良い方法があるでしょうか。教えて下さい。


464 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 23:26:41 ]
>>463
class B(A):
  def __init__(self):
    

465 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 23:30:42 ]
misutta

まぁコードはいいや。
Bでfを再定義しなければAのfが実行されるで。

466 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 23:53:51 ]
fを再定義するってことは、少なくとも内容に変更があるってことだからな。

467 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 00:17:12 ]
>>462
なにその便利関数、って思ったら3.Xか

468 名前:463 mailto:sage [2009/02/27(金) 00:49:43 ]
ありがちな例で申し訳ないですが、
class Animal(object):
 def naku(self):
  """
  動物が鳴くお
  """
  raise NotImplementedError

class Cat(Animal):
 def naku(self):
  printf "にゃー"

class Dog(Animal):
 def naku(self):
  printf "わんわん"

ってときに、いちいち"猫が鳴く"とか"犬が鳴く"っての書きたくなくない?と。

469 名前:463 mailto:sage [2009/02/27(金) 00:50:14 ]
>>468
癖でprintfとしてしまった。printです。

470 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 06:10:47 ]
>>463
class B(A):
  def __init__(self):



471 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 06:36:18 ]
Python 3.0 だとこんな感じでいけるっぽい。エラーチェック等は省略。

def docstring(cls):
    for name in dir(cls):
        if not name.startswith("_"):
            f = getattr(cls, name)
            super_f = getattr(cls.__base__, name)
            f.__doc__ = super_f.__doc__
    return cls

class A:
    def f(self):
        "docstring"
        pass

@docstring
class B(A):
    def f(self):
        pass

print(A.f.__doc__)
print(B.f.__doc__)

472 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 07:20:48 ]
>>471
スレチかもしれないけど、471のPythonコードのスペースがつぶれていないのは、どうやってるんでしょうか?
自分がコードを貼り付けると、
def docstring(cls):
for name in dir(cls):
def f(self):
こんな風になる。

473 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 07:32:26 ]
>>472
ギコナビの特殊文字変換を使ってます。
書き込み時にスペースを&nbsp;に置換してくれます。
書き込み後にどう見えるかをプレビューでチェックできたりして便利です。
変換自体は手作業でやっても大した手間じゃないですよ。
エディタでスペース4個を&nbsp;&nbsp;&nbsp;&nbsp;に置換とかすればOKです。

474 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 07:35:41 ]
全角スペースでもいい。そのままコピペには使えないけど。

475 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 08:21:38 ]
>>472
もスペースなくなってる訳じゃないからね
ブラウザが消してるだけで
httpで送られてくるデータには含まれてるから
ソース見れば復元可能

476 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 08:22:36 ]
全角スペースが一番迷惑

477 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 09:22:12 ]
ラベルごとに集合を作って、その集合に関数を適用する良い方法があったら教えてください。
たとえば、下の表のように、a,b,c3チーム(ラベル)それぞれの平均スコアを出したい。
team score
a 10
b 2
a 9
c 8
b 3
c 6

計算結果
a b c
9.5 2.5 7.0

ラベルにもう一次元足して、クロス表を作れるともっとうれしいです。

想定している機能は、エクセルのピボットテーブルのような感じです。
Rでいうと、tapply(score, team, mean)みたいな感じです。

よろしくおねがいします。

478 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 11:02:19 ]
>>477
標準ではお手軽な方法はないような気がする
なんかライブラリはあるのかもしらんけど
標準でやるならこんな感じです

from itertools import groupby
from operator import itemgetter
data = """
a 10
b 2
a 9
c 8
b 3
c 6
"""
records = [(x, int(y))
              for (x, y) in
                 (line.split()
                     for line in data.strip().splitlines())]
# -> [('a', 10), ('b', 2), ('a', 9), ('c', 8), ('b', 3), ('c', 6)]
grouped = [(k, map(itemgetter(1), g))
             for k, g in
                groupby(sorted(records, key=itemgetter(0)),
                        key=itemgetter(0))]
# -> [('a', [10, 9]), ('b', [2, 3]), ('c', [8, 6])]
result = [(x, float(sum(ys))/len(ys)) for x, ys in grouped]
# -> [('a', 9.5), ('b', 2.5), ('c', 7.0)]


479 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 14:58:04 ]
import collections

def main():
    h = collections.defaultdict(list)
    for line in open("a.txt"):
        team, score = line.split()
        h[team].append(int(score))
    for team, scores in sorted(h.iteritems()):
        print team, float(sum(scores)) / len(scores)

if __name__ == '__main__':
    main()


480 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 18:26:51 ]
>>478, 479
ありがとうございます。
itertools, operator, collections....
よくわからない奴らがたくさん出てきたぜ・・・・(汗)
試してみます。

ぱっと見、478の方が汎用性がありそうかな・・・。




481 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 07:23:08 ]
data = """
a 10
b 2
a 9
c 8
b 3
c 6
"""
h={}
[h.setdefault(x,[]).append(int(y)) for (x,y) in (line.split() for line in data.strip().splitlines())]
r={}
[r.setdefault(x,float(sum(y))/len(y)) for (x,y) in h.iteritems()]
r


482 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 07:44:58 ]
[1, 3, 5, 2, 5, 2, 1, 4, 1, 1, 2, 4, 3, 2]

[4, 8, 7, 7, 7, 3, 5, 5, 2, 3, 6, 7, 5]
のように隣の数同士を足して新しいリストを作る操作を
一行でさくっと書きたいのですがどんな書き方をすればよいでしょうか?

483 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 08:07:06 ]
リストの内包表記

これでググレばおk

484 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 08:14:02 ]
[e + L[i + 1] for i, e in enumerate(L) if i < len(L) - 1]

485 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 08:17:57 ]
[e + L[i] for i, e in enumerate(L[1:])

486 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 08:33:01 ]
[a[i] + a[i+1] for i in xrange(len(a)-1)]

487 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 08:36:12 ]
>>486
それが一番まっとうだよな

488 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 09:31:05 ]
一旦 a とか e に入れないといけないのですね
[e + [1, 3, 5, 2, 5, 2, 1, 4, 1, 1, 2, 4, 3, 2][i] for i, e in enumerate([1, 3, 5, 2, 5, 2, 1, 4, 1, 1, 2, 4, 3, 2][1:])]

489 名前:デフォルトの名無しさん [2009/02/28(土) 09:50:52 ]
Mercurial って Python で書かれていたのか・・・・
俺みたいな Subversion儲かつ Python儲
はどうすればいいの?死ぬの?

490 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 09:54:48 ]
>>489
1.バージョン管理は枯れてないとだめだよとか言っとけばおk
2.ファイル名に日本語混じったのを扱うようにして、subversionじゃないとだめなんだと言い出す
3.死ね



491 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 10:18:03 ]
fooってなんですか?

492 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 10:20:17 ]
hogeってなんですか?

493 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 10:52:12 ]
>>482

>>> [4, 8, 7, 7, 7, 3, 5, 5, 2, 3, 6, 7, 5]
[4, 8, 7, 7, 7, 3, 5, 5, 2, 3, 6, 7, 5]
>>> map(lambda(x,y):x+y,zip(_,_[1:]))
[12, 15, 14, 14, 10, 8, 10, 7, 5, 9, 13, 12]
>>> map(lambda(x,y):x+y,zip(_,_[1:]))
[27, 29, 28, 24, 18, 18, 17, 12, 14, 22, 25]
・・・・・・・・・・・・・・
[9856, 8802]
>>> map(lambda(x,y):x+y,zip(_,_[1:]))
[18658]

494 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 11:01:33 ]
>>> a = [1, 3, 5, 2, 5, 2, 1, 4, 1, 1, 2, 4, 3, 2]
>>> [i+j for i, j in zip(a, a[1:])]
[4, 8, 7, 7, 7, 3, 5, 5, 2, 3, 6, 7, 5]
>>> from operator import add
>>> map(add, a[:-1], a[1:])
[4, 8, 7, 7, 7, 3, 5, 5, 2, 3, 6, 7, 5]

495 名前:スルー力が足りない! mailto:sage [2009/02/28(土) 14:29:33 ]
本人を装った荒らし乙

496 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 19:14:27 ]
bzrもPythonだけどな。

497 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 19:41:03 ]
Python 2.5 で sqlite3 を使ってるのですが
date 型ってないのですか?
integer に time.time() を代入したりして
使えってことなんでしょうか?

498 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 19:46:47 ]
よくしらんけどSQLiteってデータ全部テキスト型なんじゃなかったっけ

499 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 20:04:34 ]
>>497
ライブラリリファレンスの「13.13.4 SQLite と Python の型」

500 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 20:30:09 ]
図星だったwww



501 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 20:45:36 ]
>>499
ありがとうございます

sqlite3 モジュールには二つの Python 標準型 datetime.date と
datetime.datetime に対するデフォルト適合関数があります。
いま datetime.datetime オブジェクトを ISO 表現でなく
Unix タイムスタンプとして格納したいとしましょう。

import sqlite3
import datetime, time
def adapt_datetime(ts):
  return time.mktime(ts.timetuple())
sqlite3.register_adapter(datetime.datetime, adapt_datetime)
con = sqlite3.connect(":memory:")
cur = con.cursor()
now = datetime.datetime.now()
cur.execute("select ?", (now,))
print cur.fetchone()[0]
これは sqlite3 の real になっているということですね

502 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 20:48:50 ]
sqlite3.register_adapter(datetime.datetime, lambda s: int(time.mktime(s.timetuple()) * 1000))
これでいいのかな

503 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 23:30:11 ]
PythonでCGIを作りたいんですけど
質問とかはこのスレでいいんですか?

504 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 23:33:58 ]
pc11.2ch.net/test/read.cgi/php/1163513344/
こういうスレがある

505 名前:デフォルトの名無しさん [2009/03/01(日) 00:31:15 ]
>>504
ここじゃダメなのか
thx! 逝ってくる

506 名前:デフォルトの名無しさん [2009/03/01(日) 10:49:52 ]
# -*- coding: utf-8 -*-
print u'ABな'.isalnum()

というのなんですが、Emacsのpy-execute-***で実行するとはUnicodeDecodeErrorがでて、
シェルで実行するとTrueになってしまいます。
なにがまずいんでしょうか?

507 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 15:32:27 ]
coding.derkeiler.com/Archive/Python/comp.lang.python/2008-04/msg02501.html
codepad.org/MVV0u4pQ

py-execute-*** 使ったことないからよくわからんけど
ユニコードに対応してないような…少なくともIDLEは対応してない…

508 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 17:14:55 ]
>>507
ありがとうございます
ですが、そのページは見たところユニコード文字列の表示の件な気がします
IDLEの場合は対応してないというより、
ユニコードをデフォルトの文字コードでエンコードしようとするから文字化けするという話のはずです


>>506
は別にユニコード文字列の表示はしないですし、たぶん関係ないでしょう
一応print len(u'そうだね')なんかだとはちゃんと動くようでしたし


509 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 20:22:33 ]
UnicodeDecodeErrorはバイト列(str)から文字列(unicode)への変換時のエラーだから、
coding: utf-8 としてるけど実は utf-8 になってない、とか
実際に utf-8 だけど別の文字コードでデコード(str→unicode変換)しようとしている、とか
その手の問題だと思われ。

表示のときに起こるのはエンコード(unicode→str変換)のエラー。


510 名前:デフォルトの名無しさん [2009/03/01(日) 21:26:31 ]
蕃爽麗茶



511 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 22:04:21 ]
さげ

512 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 23:35:58 ]
PyScripter で、日本語が文字化けするのですが対処法はありますか?

UTF−8に設定しているのでu"ほげ"は正常にほげと出力されますが、
”ほげ”は文字化けしてしまいます。

開発環境は
pyscripterの1.9.9.3
Python2.6
です。よろしくおねがいします

513 名前:デフォルトの名無しさん [2009/03/01(日) 23:37:03 ]
'ほげ'.decode('utf-8')

514 名前:デフォルトの名無しさん [2009/03/02(月) 22:49:21 ]
pythonのRADツールってなにがありますか?

あと、「みんなのpython」を読んである程度、オンラインリファレンスを呼みながら、pythonプロ倉ミンgうができるようになったのですが
頭の中で言語仕様どうもまとまっていません、ある程度pythonのわかるものが言語仕様をコンパクトに確かめられる本はありませんか?




515 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 22:53:10 ]
オンラインリファレンスじゃだめなんか

516 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 23:11:02 ]
オンラインリファレンスの日本語はどうしても、肌に合わなくて。
あとできればアナログ媒体で読みたいのです。


517 名前:デフォルトの名無しさん [2009/03/02(月) 23:24:35 ]
英語のオンラインリファレンスじゃだめなんか

518 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 00:15:47 ]
すいません英語はみょめないんです

519 名前:517 mailto:sage [2009/03/03(火) 00:30:32 ]
>>518
は僕じゃないですけど。
同じく英語が読めないんです。クイックリファレンス目的だったら、通読するようなものでもないので英語でがんばって読むというのもありなんですが。
どうしても、通読することを考えた場合、日本語の方が良いですね。

「Pythonチュートリアル」略してパイチューはその目的としてはどうなんでしょうか?

520 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 00:48:00 ]
英語のオンラインリファレンスを印刷したものじゃ(ry



521 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 00:52:28 ]
日本語の場合‥はオライリーの邦訳が一番マトモな本なので買っておいて、
不足している場合はpython.orgの2.6 or 3.0のドキュメントを見る様にしてる。

あとはGoogleGroupのlang.pythonグループの記事を読む様にする、
日本国内のMLを購読する様にするとか‥色々あるよ

522 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 01:14:19 ]
あそこのWikiに書き込んでいけばみんなHappy

523 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 10:00:16 ]
あそこのWikiに書き込んでいけばみんなHappy
あそこのWikiに書き込んでいけばみんなHappy
あそこのWikiに書き込んでいけばみんなHappy
あそこのWikiに書き込んでいけばみんなHappy
あそこのWikiに書き込んでいけばみんなHappy
あそこのWikiに書き込んでいけばみんなHappy
あそこのWikiに書き込んでいけばみんなHappy

524 名前:デフォルトの名無しさん [2009/03/04(水) 16:03:53 ]
したらばの掲示板にurllib2をつかってつなごうとしています。
最初に試したときは、まともな結果が返ってきたのですが
二回目以降は以下のようなエラーが返ってきます。
どうにかして二回目以降もつなげるようにしたいのですが、どうすればいいでしょうか?
Python 2.5.2 (r252:60911, Feb 21 2008, 13:11:45) [MSC v.1310 32 bit (Intel)] on
win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import urllib2
>>> url = "jbbs.livedoor.jp/sports/35590/"
>>> r = urllib2.urlopen(url)
>>> r.code,r.msg
(200, 'OK')
>>> print r.info()
Date: Wed, 04 Mar 2009 06:53:41 GMT
Server: Apache/1.3.41 (Unix) mod_perl/1.30
Content-Type: text/html
Connection: close
Transfer-Encoding: chunked
>>> print r.read()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python25\lib\socket.py", line 291, in read
data = self._sock.recv(recv_size)
File "C:\Python25\lib\httplib.py", line 509, in read
return self._read_chunked(amt)
File "C:\Python25\lib\httplib.py", line 544, in _read_chunked
line = self.fp.readline()
File "C:\Python25\lib\socket.py", line 331, in readline
data = recv(1)
socket.error: (10054, 'Connection reset by peer')

525 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 17:47:35 ]
>>524
>>> import urllib2
>>> urllib2.open('jbbs.livedoor.jp/sports/35590/').read()
(省略)
>>> urllib2.open('jbbs.livedoor.jp/sports/35590/').read()
(省略)

何回かやってみたが普通に受信できてるみたいだけど

単にopen()とread()の間がある程度開くと、タイムアウト扱いで
切られるんような設定になってんじゃないの鯖側が

526 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 19:58:59 ]
>>525
本当にありがとうございましm(_ _)m
なんとかなりました。

527 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 00:26:07 ]
やっぱりだめでした、連続投稿しようとしたら制限かけられてしまいました。

528 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 10:31:05 ]
連続投稿って掲示板側で制限かけられてるんじゃないのか

529 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 11:36:28 ]
PyScripterで開発していますが、
コードの横に行数を表示させる設定はどこでできますか?

530 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 13:46:34 ]
ツール->オプション->エディタオプション->「表示」タブの「行番号の表示」



531 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 14:11:49 ]
>>530 できましたありがとー☆

532 名前:デフォルトの名無しさん [2009/03/05(木) 15:43:51 ]
>>522
喧嘩売ってんのかテメエ!

533 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 15:47:14 ]
def foo():
print 何かの方法

で、自身の関数名(この場合はfoo)を取得する方法ってありますか?

534 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 16:08:17 ]
>>> import sys
>>> def foo():
...      print sys._getframe().f_code.co_name
...
>>> foo()
foo

535 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 16:33:05 ]
>>534
すごい、こんなにさっくり返答いただけるとは。。。
sys._getframe().f_code.co_name
・・・恐らくここで聞かなければ一生知る機会もなかったと思います。

ありがとうございました。

ググってもリファレンスを見ても不明で、どう調べるかの段階から悩んでいたところです。
(少なくとも↓のリファレンスや逆引きPythonからはどう見ても解を得られませんでした)

www.python.jp/doc/2.4/lib/module-sys.html
cuttingbear.qee.jp/python/

このようなかゆい所に手の届く情報源が、ありましたらご教授頂けますと幸いです。


536 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 17:23:56 ]
クックブックとか
ttp://code.activestate.com/recipes/langs/python/

537 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 17:43:20 ]
>>535
ググり方を工夫するといいかも。
www.google.co.jp/search?q=python+getting+function+name+within+function

538 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 21:04:34 ]
>>536
>>537
拝見しました、なるほど、Python情報はまだまだ英語サイトの参照が
欠かせないんですね。

今後の日本での普及に期待&何らかの形で貢献できればと思います。
ありがとうございました。

539 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 22:29:37 ]
自分自身の型はどうすれば分かりますか?

540 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 22:34:10 ]
type



541 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 23:34:29 ]
ありがとうございます
っていうか
やりたかったことはちょっと違ってたんです
yaml で型情報を含めて出力出来ないかと思ったのですが
pickle で出来ることが分かりました


542 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 06:09:31 ]
zipfileでzipを作れると思いますが
パスワード付きにすることは出来ますか?

543 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 06:40:28 ]
MeCabのPythonバインディングのインストール方法を教えてください。
>setup.py install
running install
running build
running build_py
running build_ext
building '_MeCab' extension
c:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\link.exe /DLL /nologo /INCREMENTAL:NO /LIBPATH:unrecognized /LIBPATH:option /LIBPATH:`--libs-only-L` /LIBPAT
H:C:\Python26\libs /LIBPATH:C:\Python26\PCbuild unrecognized.lib option.lib `--libs-only-l`.lib /EXPORT:init_MeCab build\temp.win32-2.6\Release\MeCab_wrap.obj /
OUT:build\lib.win32-2.6\_MeCab.pyd /IMPLIB:build\temp.win32-2.6\Release\_MeCab.lib /MANIFESTFILE:build\temp.win32-2.6\Release\_MeCab.pyd.manifest
LINK : fatal error LNK1181: 入力ファイル 'unrecognized.lib' を開けません。
error: command '"c:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\link.exe"'
failed with exit status 1181

と出ます。

544 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 10:02:23 ]
Rubyを使いなさい。

545 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 21:30:40 ]
ruby厨は他の言語もいっぱい使ってみなさい

546 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 22:16:54 ]
SQLiteの文文字コードでつまずいています。
変数を経由すると満足に書き込めなくて困っています。
どなたかたすけてくだちぃ。

# -*- coding: utf-8 -*-

import sqlite3

db = sqlite3.connect('hogehoge.db')
db.execute('create table tablehoge(val1, val2)')

db.execute("insert into tablehoge values ('ふが1', 'おっぱ1')")
v = (u'ふが2'.encode('utf-8'), u'おっぱ2'.encode('utf-8'))
db.execute("insert into tablehoge values " + str(v))
db.commit()

a = db.execute('select * from tablehoge')
for i in a:
print i

db.close()

とすると、
>>> (u'\u3075\u304c1', u'\u304a\u3063\u30711')
(u'\\xe3\\x81\\xb5\\xe3\\x81\\x8c2', u'\\xe3\\x81\\x8a\\xe3\\x81\\xa3\\xe3\\x81\\xb12')
と表示されます。

どうすれば、変数を解した(しかも一旦ユニコード化した)文字列を
SqLiteに書き込めるのでしょうか。

547 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 23:11:47 ]
db.execute("insert into tablehoge values (?,?)", v)

548 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 23:16:57 ]
>>547
ありがとう。
その使い方が正当だったのですね!

549 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 23:37:14 ]
恥ぱいは文字コード変換についてまったく書いていないクソ本ですね。

550 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 23:47:39 ]
db.execute("insert into tablehoge values (%s)" % ','.join("'%s'" % s for s in v))
すげー無駄



551 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 00:15:15 ]
教えてください。Google App Engine上で簡単な採番を実現したいと考えています。
Oracleのsequenceのような自動採番の仕組みを見つけられなかったので、以下のようなコードを書いて採番することにしたのですが、コードをsyncronizedにする方法がわかりません。
ぶっちゃけJavaのように
syncronized{
   hoge()
}
とか、C#のように
lock(){
   hoge()
}
とか書きたいんですけど、Pythonでこれを実現するにはどうしたらいいんでしょうか?

from google.appengine.ext import db
class IdGenerator():
    def generate(self):            
        cursor = db.GqlQuery("SELECT * FROM IdModel")
        id = None
        if cursor.count() < 1:
            id = 0.0
            idModel = IdModel()
        else:
            idModel = cursor[0]
            id = idModel.id            
        id = id + 1.0
        idModel.id = id
        idModel.put()
        return id
class IdModel(db.Model):
    id = db.FloatProperty()

552 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 00:25:03 ]
db.run_in_transaction

553 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 00:26:55 ]
はやくしてください。

554 名前:551 mailto:sage [2009/03/07(土) 00:35:19 ]
>>552

ありがとうございます、まさに求めていたものでした!


555 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 00:47:20 ]
>>551
つttp://code.google.com/intl/ja/appengine/docs/python/datastore/functions.html#run_in_transaction
もう解決したみたいだけど
↓こっちも見ておいた方が良いです
ttp://sites.google.com/site/io/building-scalable-web-applications-with-google-app-engine


556 名前:551 mailto:sage [2009/03/07(土) 00:54:26 ]
>>555

ありがとうございます、ビデオも見せていただきます!
Pythonはじめてな上に慣れないDatastoreなので
悪戦苦闘してますw

557 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 01:06:21 ]
>>556
つttp://docs.google.com/Present?docid=dc3xqd3t_11g3pdqk3v

今は楽しい時期かもしれないけど
そのうちGAEに失望することになるよw

558 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 01:07:51 ]
>id = db.FloatProperty()
>id = id + 1.0
だれかここに突っ込めよ

559 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 02:09:37 ]
ディレクトリの名前が FooDir だとすると
内部の app.py (エントリーポイント) で

import FooDir とすると __init__.py が呼び出されますか?
FooDir.py とか見当たりませんでした…

560 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 06:56:14 ]
ttp://sites.google.com/site/docjpgaeo/tutorials/developing-and-installing-a-plugin
ttp://doc.gaeo.org/tutorials/developing-and-installing-plugins



561 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 09:48:13 ]
すみません…意味がわかりません

562 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 14:27:32 ]
普通は教えてもらってそれほど感動したなら、今度は自分が教える側に回ろうとか思うもんだけどな

1年半経って未だに質問するだけか

猿だな

答えて貰えなきゃ感謝してるはずのスレで罵詈雑言撒き散らして荒らすあたりが本当に猿

563 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 14:29:43 ]
www.boduch.ca/search/label/boduch
packages.python.org/boduch/module-boduch.type.html
apydia.ematia.de/

名前空間があるからこそ
ドキュメントの自動生成を範疇として自らの内に
捕らえられるのでしょうか?

でも __init__.py いうのが
いまいちよく理解できない…pythonムズイ…orz

564 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 16:24:51 ]
>>265-268

565 名前:デフォルトの名無しさん [2009/03/07(土) 16:29:26 ]
sys.path.append(os.path.dirname(__file__))
sys.path.append(os.path.join(os.path.dirname(__file__), 'application'))
plugins_root = os.path.join(os.path.dirname(__file__), 'plugins')
if os.path.exists(plugins_root):
plugins = os.listdir(plugins_root)
for plugin in plugins:
if not re.match('^__', plugin):
exec('from plugins import %s' % plugin)


566 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 19:16:47 ]
気象予報士って13歳でも受かるんだな

567 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 20:47:25 ]
確かにPythonの綺麗なインデント、コードスタイルには興味があるけどー
Rubyと比べると正直価値は無いと思うがなぁ。

ていうかSmalltalkと同じ発想でしかも低レベルなのが物凄く悲しい
俺みたいな凡人には推し量れない意味があると信じたい

568 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 21:11:25 ]
俺みたいな凡人には推し量れない意味があると信じたい

569 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 22:33:09 ]
インデント、コードスタイルで Python 選んだ訳じゃないからなぁ

570 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 00:44:19 ]
ぶっちゃけ、俺の書くコードの見た目はだいたい全部同じになる。(関数系は除いて)
ただ、モンティパイソン精神でこれ使ってる。



571 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 18:18:39 ]
Rubyと比べると正直価値は無いと思うがなぁ。
Rubyと比べると正直価値は無いと思うがなぁ。
Rubyと比べると正直価値は無いと思うがなぁ。

572 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 20:36:18 ]
ドキュメンテーションが半端なライブラリ等はプロジェクトに
持ち込むべきじゃないし、ドキュメンテーション活動が活発なところ
からチョイスした方が楽が出来る

573 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 22:18:32 ]
Python で抽象クラスを定義するにはどのように書けばよいでしょうか?

574 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 16:01:05 ]
import ImageTk as Itk とすると
ImportError: No module named ImageTk となるのですが、どうすればいいですか?

575 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 16:16:03 ]
PIL入れろ

576 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 16:25:38 ]
>>575 いけた!サンクス

577 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 20:57:03 ]
>>573
ttp://d.hatena.ne.jp/chrono-meter/20080327/p1
ttp://d.hatena.ne.jp/chrono-meter/20080327/p2

578 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 00:08:30 ]
タプルとかのコレクションを可変個引数に上手く渡すにはどうしたらいいです?
perlでふつうに&func(@array)みたいに。

579 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 00:09:50 ]
func(*array) かな

580 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 00:18:56 ]
func(**hash) かな



581 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 00:26:35 ]
普通に渡すならそれで良いんですけど、可変個引数を取る関数にタプルを上手く渡せないものかと。

(a, b, c) = get_tuple()
want_varg(a, b, c) # 可変個引数な関数

この時に一時変数 a, b, c を介さずに引数を渡せないものですかね?

582 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 00:28:50 ]
want_varg(*get_tuple())

583 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 00:34:18 ]
>582
それです!
ありがとうございます。

584 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 06:45:13 ]
目の前にあっても見えないことってあるんだな

585 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 12:39:53 ]
先生!教えてください。
WindowsでPython使う場合、ActivePythonのPythonどちらを使えばいいですか?
あと、2.6.1と3.0.1のどちらが良いですか?
初心者です。
よろしくお願いします。

586 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 12:43:42 ]
>>585
JythonかIronPythonのほうがいいよ

587 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 12:51:00 ]
>>585
公式の2.5.4オススメ
WindowsAPIやCOMを使うつもりがあるならActivePython
自ら進んで苦労したい物好きなら3.0

588 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 12:53:40 ]
なんで2.5系薦めるんだよ・・・・・・

>>586
はふざけてるんだろうけど

589 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 12:57:56 ]
まだ2.6に対応してないライブラリが多いから

590 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 22:27:12 ]
すんません、教えてください。Win32 python2.6.1です。

リストの要素をCSVに落としたいんだけど。

こんなデータ(リスト)を
["a1", "b2", "c3", "d4", "e5"]



こんな文字列(CSV形式)に変換
"a1,b2,c3,d4,e5"

にしたいんですけど、一発でできる関数ってありますか?

いや、forでまわして末尾にカンマつけてって、
そんで最後までやったら末尾のカンマを取るってのは、流石にちょっと野暮ったいと思ったので。



591 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 22:28:49 ]
L = ["a1", "b2", "c3", "d4", "e5"]
','.join(L)

592 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 22:29:48 ]
joinじゃだめ?

593 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 22:30:58 ]
>>591
>>592

おー、できた。トンクス。
やっぱ聞いてみるもんだ。半日悩んだよw

594 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 23:05:10 ]
CSVは読み書きできるモジュールがあるよ
ttp://www.python.jp/doc/release/lib/csv-examples.html

595 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 09:54:39 ]
>>594
トン。ダイレクトにCSVに書き込む奴もあるのか。
流石というか、誰もが使うようなものは標準としてあるもんなんだな。
車輪の再発明(しかも超低脳)してばっかだわ、俺。

596 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 04:52:34 ]
バイトコードってどうやって、つくるの?
python -O foo.pyでは、ダメなの?

597 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 12:37:00 ]
compileall, py_compile

598 名前:デフォルトの名無しさん [2009/03/13(金) 18:41:39 ]
>>> 'ほげ'.decode('cp932')
u'\u307b\u3052'
>>> ('%s' % 'ほげ').decode('cp932')
u'\u307b\u3052'
>>> (u'%s' % 'ほげ').decode('cp932')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeDecodeError: 'ascii' codec can't decode byte 0x82 in position 0: ordinal not in range(128)
>>> (u'%s' % 'ほげ'.decode('cp932'))
u'\u307b\u3052'
>>> ('%s' % 'ほげ'.decode('cp932'))
u'\u307b\u3052'
>>> ('%s' % u'ほげ').decode('cp932')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)
>>> ('%s' % u'ほげ').encode('cp932')
'\x82\xd9\x82\xb0'
>>> (u'%s' % 'ほげ').encode('cp932')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeDecodeError: 'ascii' codec can't decode byte 0x82 in position 0: ordinal not in range(128)
>>> (u'%s' % u'ほげ').encode('cp932')
'\x82\xd9\x82\xb0'
>>> ('%s' % u'ほげ'.encode('cp932'))
'\x82\xd9\x82\xb0'
>>> ('%s' % u'ほげ')
u'\u307b\u3052'
>>> type('%s' % u'ほげ')
<type 'unicode'>
>>>

599 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 19:51:26 ]
py2exeで実行ファイルをつくってみたんですが、別のWindows 2000マシンで実行したらmsvcr90.dllを要求されました。
再配布パッケージを入れればよいようですが、そもそもこのDLLを要求されないようにすることはできないんでしょうか?

600 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 20:59:29 ]
python26.dllを/MTでビルドすれば可能かも知れないけど
拡張モジュールとFILE*でやりとりしてるとことかあるから多分無理じゃね



601 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 22:04:55 ]
ありがとうございます。
やっぱりダメですか。配布先にDLLのインストール要求できるならそもそもPythonインストールして貰えばいいし、py2exeって何なんでしょうね。
Vistaだと最初からDLL入ってるのかな。

602 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 00:09:47 ]
>>601
インストールしないまでもexeとセットでdll配るんじゃダメなんだっけ?
同一フォルダにあれば動きそうだけど。

603 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 00:20:36 ]
同一フォルダでOKな気が。

604 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 00:52:26 ]
漏れは setup.py の data_files に書き足してる
最近の atom の net book とかだと msvcpXX.dll
なんかも持っていかないと動かないみたいだし

605 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 07:14:24 ]
msvcpってC++ランタイムだからいらないと思うよ
どっちにしろmsvcのランタイムは配布条件が面倒くさい

606 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 09:17:20 ]
Microsoft.VC90.CRT.manifestを添付するのだけ気をつけて
exeと同一ファイルに配置するのはOKだから別に面倒くさくはないよ。

607 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 09:33:57 ]
ファイル->フォルダ

608 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 09:57:33 ]
>>605が言ってるのは方法じゃなくて条件(ライセンス)でしょ
詳しいこと忘れたけど

609 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 12:00:27 ]
>>605
無いと動かなかった
そのファイル一個だけ追加したら動いた
importしてるmoduleが要求してたの鴨試練

610 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 18:15:44 ]
調べてみたけどmsvcr90.dllをコピーして再配布していいかどうかわかりませんでした。
ユーザにMSのサイトからパッケージをダウンロードしてもらうなら問題なさそうですが、手間ですよね。残念。



611 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 18:15:52 ]
>>609
もし面倒じゃなければ依存関係調べてみれば?

612 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 18:19:34 ]
>>910
Microsoft Visual C++ 2008 Express Editionのredist.txtには
C:\Program Files\Microsoft Visual Studio 9.0\VC\redist\x86\Microsoft.VC90.CRT
を手を加えずにディレクトリ名も変更しないでそのまま再頒布しろって書いてあると思う

613 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 19:05:10 ]
>>610
py2exeにsetupツールも入れてexe化して
MSのサイトからパッケージをダウンロードするように作っておけば?

614 名前:606 mailto:sage [2009/03/15(日) 01:19:17 ]
貴様らワシの言うことが信じられんと申すか……

615 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 02:48:09 ]
>>614
素直にRuby使った方がよろしいのではないでしょうか。

616 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 03:31:43 ]
Windows上でRubyとかまたご冗談を

617 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 06:14:42 ]
rubyのexerbで実行ファイルつくるとDLLなしで動作するよ。
しかもどうやってるのかLinux上でつくれたりする。

618 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 08:09:23 ]
>>617
あれは実行ファイルじゃないから
自己解凍圧縮ファイルみたいな発想

619 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 11:27:21 ]
>>618

620 名前:デフォルトの名無しさん [2009/03/16(月) 18:36:56 ]
pythonでTkinterを使用しGUIを勉強しています。
タブブラウザのようなインターフェイスにするにはどうすればいいでしょうか?

少しググったらmaya.cmdsをimportしてtablayoutうんぬん・・・というページがあったのですが、
mayaとか持ってませんし・・・



621 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 19:04:28 ]
www.not-enough.org/abe/manual/maya-python-aa07/layout2.html

このページにある画像みたいなインターフェイスを作りたいです

622 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 19:11:57 ]
>>621
tkinter.unpythonic.net/wiki/NoteBook

623 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 19:46:17 ]
>>622
ありがとうございます。
BWidgetはTcl/Tkの拡張用のようなのですが、Tcl/Tkも導入しなければなりませんか?
DLしたのはBWidget1.7.0でした

624 名前:デフォルトの名無しさん [2009/03/16(月) 21:17:35 ]
www.wxpython.org/screenshots.php

625 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 21:27:53 ]
>>623
つttp://tkinter.unpythonic.net/bwidget/

626 名前:>>620 >>621 >>623 mailto:sage [2009/03/17(火) 10:37:54 ]
解決というか>>622さんのおっしゃられた
tkinter.unpythonic.net/wiki/NoteBook
のサンプルが表示されるようになりました。

原因はBWidget1.7を入れるフォルダを間違えていました。
bwidgetフォルダとsetup.py tabdemo.py test.pyはpythonのLibフォルダへ
BWidget-1.7.0はpythonのtclフォルダに入れればよかったのですね。

レスくださったみなさまありがとうございました。

627 名前:>>626 mailto:sage [2009/03/17(火) 18:29:42 ]
連続で質問ばかりしてしまいすみません。

タブを選択(クリック)すると、そのGUIのページを表示するのにはどうすればいいでしょうか?
以下現在のコード(サンプルを修正したもの)です。

# -*- coding:UTF-8 -*-
import bwidget, Tkinter, sys, os

app = Tkinter.Tk(); app.wm_title("Tabs")
notebook = bwidget.NoteBook(app, arcradius=2); notebook.pack()

Tabs = ['a','b','c']

for i, f in enumerate(Tabs):

page = notebook.insert(Tkinter.END, i, text=f)
sw = bwidget.ScrolledWindow(page)
text = Tkinter.Text(sw)
#text.insert(Tkinter.END,f)
sw.setwidget(text)
sw.pack(side=Tkinter.TOP, fill=Tkinter.BOTH, expand=True)
notebook.compute_size()

app.mainloop()

aタブを選択したら、Frameを表示して、ボタンを配置して、といういつものGUI作成
(または、それをすでに定義してある関数)
を表示させたいのですが、bwidget.ScrolledWindow(page)ではもちろん表示されることはありません。

簡単なサンプルコードがのっているページや方法があれば教えてください。よろしくおねがいします。

628 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 00:14:29 ]
つttp://tkinter.unpythonic.net/wiki/BWidgets

629 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 00:39:57 ]
tabs = ['a', 'b', 'c']
for i, f in enumerate(tabs):
page = notebook.insert(Tkinter.END, i, text=f)
p = Tkinter.PanedWindow(page)
p.pack(fill='both', expand='yes')
b1 = Tkinter.Button(app, relief=Tkinter.SUNKEN,
text='Quit-' + str(i), command=app.destroy)
b1.pack()
p.add(b1)
b2 = Tkinter.Button(app, relief=Tkinter.SUNKEN,
text='Quit-' + f, command=app.destroy)
b2.pack()
p.add(b2)


630 名前:>>627 mailto:sage [2009/03/18(水) 12:31:55 ]
>>629
コードまでありがとうございます。
一応カタチにはなりました。ありがとうございました



631 名前:デフォルトの名無しさん [2009/03/18(水) 18:51:19 ]
質問です。
osはwindowsxp、
PythonのversionはPython 2.5.2を使っています。
subprocessモジュールを使ってコマンドプロンプトでの以下のような二行を実行したいと思っています。

C:\Python25>doskey mpc = "C:\Program Files\mplayerc_20080104_jpn_r3\mplayerc.exe" $*
C:\Python25>mpc test.wav

一行目は
subprocess.Popen('doskey mpc = \"C:\Program Files\mplayerc_20080104_jpn_r3\mplayerc.exe\" $*',shell = True)
で解決できるのですが
続けて実行するように二行目(mpc test.wav)をどう書けばいいのかがわかりません。
どなたかわかる方お願いしますm(_ _)m

632 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 18:55:43 ]
よくわからんがos.system()を使ってはどうかに?

633 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 12:12:49 ]
>>631
目的は、単にmplayerc.exeで音楽を鳴らしたいの?
ならdoskeyはいらんのじゃないか

import subprocess
mpc = 'C:/Program Files/mplayerc_20080104_jpn_r3/mplaeyrc.exe'
subprocess.call([mpc, 'test.wav'])

でできると思うが

634 名前:633 mailto:sage [2009/03/19(木) 12:24:38 ]
- mpc = 'C:/Program Files/mplayerc_20080104_jpn_r3/mplaeyrc.exe'
+ mpc = 'C:/Program Files/mplayerc_20080104_jpn_r3/mplayerc.exe'

typoってた
後は、test.wavのフルパスを指定していないので、そこがカレントディレクトリに
なっていることを確認汁


635 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 16:55:34 ]
popen2.popen3 使うのと subprocess 使うのはどっちがどのくらいいいの?

636 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 16:57:55 ]
今はsubprocess推奨で、他はレガシー扱いのはず

637 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 16:59:43 ]
subprocessでいいんじゃない?
キッチンシンク的だが、何かに不足することはない。

他の何かだと、ちょっとした設計変更で別の何かに書き換える必要が
あったりしていろいろ面倒なことが多い。

638 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 17:09:41 ]
ありがとう勉強になりました
ちょっとためしてみたけど subprocess.Popen のあと
stdout.read() すると非同期で動くんですね


639 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 23:35:23 ]
tupleを戻す関数を呼ぶとき
hoge, fuga = hage()
と書くのか
(hoge, fuga) = hage()
と書くので何か違いはありますか?
また
return hage, fuga
return (hage, fuga)
でも違いはありますか?

640 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 00:44:27 ]
まったく同じ。dis.disで調べろ



641 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 04:14:32 ]
ありがとうございます

642 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 21:48:50 ]
itertools.teeの使い道がいまいちよくわからないのですが
どういった際に有用なのでしょうか?

643 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 22:06:11 ]
>>642
俺も使ったことねー
_1, _2 = tee(xs)
_1の処理
_2の処理

みたいに逐次的に2-pass処理するんなら
結局リストと同様に全要素メモリに持っておかないといかんし、それならリストでいい
なんかもう少し高級な場合に必要なのだろうと思った

644 名前:643 mailto:sage [2009/03/20(金) 22:10:54 ]
あー多分あれだ、前後の要素みながらやる仕事にいいんじゃないか
全部は要素を持っておく必要が無いが、近傍のN個程度の要素が欲しい、という場合
tee使わんでも書けるけど使ったほうが綺麗に書けるのかもしれない

645 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 01:05:47 ]
>>643-644
回答ありがとうございました。

具体的な例が今のところ思いつきませんが、そういうような処理を要する時に使ってみたいと思います。

646 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 23:28:10 ]
python の正規表現で、以下のような条件をすべて満たす文字列はど
のように表現すればいいのでしょうか。

o 英小文字を一字以上含む
o 英大文字を一字以上含む
o 数字を一字以上含む
o ngword(case無視)をふくまない
o 全体で6文字以上である

ruby とか perl だと以下の正規表現でうまく動くみたいなのですが、
python の場合、どのように書けばいいのかがわかりません...

/(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?i)(?!.*ngword)^[ -~]{6,}$/

647 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 23:34:51 ]
一つの正規表現でやらなきゃならない理由は?

648 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 23:39:14 ]
自己解決しました。(?i) が正規表現全体に効いてしまうのですね。

>>> re.compile(r'(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?i)(?!.*ngword)^[ -~]{6,}$').search("eka2d______")
<_sre.SRE_Match object at 0xb7ef6870>

# 英大文字が含まれていないのにマッチ

ちょっと面倒ですが、以下のようにする事でうまく動くようになりました。

>>> re.compile(r'(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?!.*[nN][gG][wW][oO][rR][dD])^[ -~]{6,}$').search("eka2d______")
>>> re.compile(r'(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?!.*[nN][gG][wW][oO][rR][dD])^[ -~]{6,}$').search("eka2dA______")
<_sre.SRE_Match object at 0xb7f0cd78>


649 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 23:41:27 ]
>>647
レスありがとうございます。正規表現で書ければ、コード本体をいじらなくて
も済むという事情があったからです。

650 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 17:40:07 ]
Pygameのインストールが上手くいかないので教えてください
WindowsにPython2.5.4をいれ、pygame-1.8.1.win32-py2.5.msiでインストールして
>>> import pygame
と呼び出しているんですが、何度やっても
Trackback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named pygame
と出ます。
解決方法があれば教えてください



651 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 18:13:02 ]
>>650
site-packageはみたか?

652 名前:デフォルトの名無しさん [2009/03/22(日) 20:08:25 ]
>>651
site-packageを足がかりに調べてみたところ
TracLight入れたときに環境変数が色々と書き換えられてたのが原因でした
元に戻したところ無事に動きました
ありがとうございました

653 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 22:17:02 ]
質問させてください。
Pythonでsubstring(文字列の切り出し)
を実装するには、どのような方法で実装するのが一般的
なのでしょうか?

普通にstrNew = strVal.substring(1,5)
とかできるのかと思ってたらできなくてびっくりしてます。

654 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 22:20:54 ]
strVal[1:5+1]

655 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 22:44:04 ]
>>654

ありがとうございます。
末尾を指定せずに切り出すのもこれでいけるんですね。
助かりました。

656 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 00:15:59 ]
こういうの知ってないとググり様がない気がする

657 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 00:16:41 ]
と言っても .substring() が良いっていう意味じゃないからね

658 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 00:23:23 ]
>>655
このページが結構役に立つ
0xcc.net/blog/archives/000137.html

659 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 00:59:58 ]
>>656
Python 文字列 切り出し
でぐぐればいい

660 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 01:11:05 ]
>>659
おまい頭ええのう



661 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 02:32:02 ]
リファレンス読めば書いてあるじゃない

662 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 03:48:30 ]
リファレンスのどこにあるかを問題にしている訳で

663 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 10:59:15 ]
>>662
シーケンス型と文字列型のところみたら乗ってるだろ。
最近のヤツは検索以外の方法で情報を探す能力無いのか。

664 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 11:09:40 ]
Python初めて使うんなら、タダで読めて和訳もされてるチュートリアルぐらいは
ざっと読んどくといいぞ
序盤の「形式ばらないPythonの紹介」って所に文字列スライスの例も
出てくる
基本中の基本だからな

665 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 11:57:44 ]
もう少し読みやすくなってるといいよね
次のバージョンの日本語に期待

666 名前:デフォルトの名無しさん [2009/03/25(水) 14:08:40 ]
プロセスは動かしっぱなしで定期的にメモリを食う処理をしているんですが
Pythonで使わなくなったメモリはOSに返されて居るんでしょうか?
インタプリタがヒーブとして握ったままとか無いですか?
OSはWindows XPとLinuxです。インタプリタのバージョンは2.6です。

667 名前:デフォルトの名無しさん [2009/03/25(水) 23:59:16 ]
enthoughtのETS-3.2.0使えてる人いますか?
Enable-3.2.0のインストールで
/private/tmp/easy_install-OkiW1r/Enable-3.1.0/build/docs/html/.doctrees/index.doctree
が無いっておこられる…

668 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 20:51:49 ]
>>666
pure Python で、不必要なオブジェクトの参照を掴んだままだったらメモリは解放されない。
Javaとかと一緒。

669 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 00:37:36 ]
>>668 えーとdelすればいいのかな?

670 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 00:41:51 ]
>>669
それはやめといたほうがいい、やりたいというならよく調べてからだな

Noneでも入れとけばいい



671 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 01:00:34 ]
オブジェクトがGCで解放されるかどうかと「OSに返され」るかどうかは
イコールじゃないよ

Pythonは最終的にはlibcのmalloc()/free()を使っているから、どういう
戦略を採っているかはlibcの実装によるが、普通はOSにはいちいち返さないはずだ
解放された領域は、再確保時に使いまわせるようにプールされる

672 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 01:25:17 ]
バッファとかキャッシュみたいなもんだね
いちいちOSに伺い立ててたら遅いから
借りたものは死ぬまで返さない方針の方が速い

673 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 01:31:34 ]
Rubyかどっかのスレで似たこと聞いてたひといたけど
同じひとかな

674 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 17:06:48 ]
>>671
うん、ある程度はプールされる。
でも大幅にメモリが空いたらOSに返される。

675 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 18:40:09 ]
Windows上ではCPythonとIronPythonがあるけどどっちがいいんだ?
やれることに違いはあまりなさそうだが。

676 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 20:35:54 ]
普通はCPythonじゃねーか?

漏れの場合は仕事でJavaとかJythonもやるのでEclipse上であれこれソースをいじるし、
サーバーサイドも書くので互換性を意識してCPython使っている。

IronPythonはプライベートのお遊び用ってスタンスだけど。
普段の生活でWindowsしか触らないなら、どっちも違いはないかな。

677 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 23:10:38 ]
なるほど。Ironの方でないと実現できないってケースにぶち当たるまではCPythonをやっとくか。
日本語資料の豊富さでもCPythonが上手のようだし。

678 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 23:10:54 ]
IronPythonはお遊び専用

679 名前:デフォルトの名無しさん mailto:sage [2009/03/28(土) 00:53:33 ]
IronPythonかなり遊べるけど、やっぱ遊び専用だな。
使えないという意味ではまったくない。

680 名前:デフォルトの名無しさん mailto:sage [2009/03/28(土) 05:56:17 ]
遊びには使えるが
仕事には使えない



681 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 00:06:03 ]
620 :nobodyさん:2009/03/27(金) 23:54:31 ID:KMOu2qJC
「pygameでろくでなしブルース」
www.freepe.com/i.cgi?rokublues

プログラマーはあなたでお願いします。
あと、BGM(効果音はくにおから取ってほしい)製作出来る方を募集します。

参加は俺のドット絵のセンスを認めて頂いた場合だけで構いません。
誰も乗らないならそれまでだと受け止めます。

ただ、やるなら夢はでっかく、
最終的に、ネット経由の多人数プレイで、
学園対抗の乱闘騒ぎが出来るゲームにしたいなあ。

682 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 05:31:42 ]
>>681
死ね

683 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 05:42:18 ]
>>681
とりあえずサーバー用意してくれよ

684 名前:デフォルトの名無しさん [2009/03/29(日) 06:37:34 ]
pc11.2ch.net/test/read.cgi/php/1156612854/620
扇子無いから協力しない

685 名前:デフォルトの名無しさん [2009/03/29(日) 19:08:38 ]
Pythonしか知らないのですがメンバ変数とかのメンバとはどういうものでしょうか?

686 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 23:58:20 ]
ここいくとおしえてもらえるよ
pc12.2ch.net/test/read.cgi/tech/1235727504

687 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 10:35:18 ]
C/C++用語だろ

688 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 03:28:13 ]
win上で走らせるスクリプトで、ファイルを削除じゃなくてゴミ箱に
入れるようにしたいんだけどどうすればいい?

689 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 04:07:09 ]
>>688
Pythonのことは知らないが、Win32APIならSHFileOperation

690 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 18:10:05 ]
>>689
なるほど、Pythonでやるなら拡張モジュール用意しなくちゃだめか。
さんくす。



691 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 19:59:11 ]
>>690
標準ライブラリにある ctypes でできない?

692 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 04:37:22 ]
できるよ

693 名前:デフォルトの名無しさん [2009/04/02(木) 08:27:09 ]
おはようございます。
春からpythonで開発していくことになりましたが、全て英語で書いてるので全く理解できません。

日本語のマニュアルとか、本とかは出ていますか?

694 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 08:30:49 ]
>>693
若干バージョンが古いけど
www.python.jp/Zope/links/python_documents

ちなみに本はたくさんある

695 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 08:32:58 ]
>全て英語で書いてるので

理解してないのに良くかけるな

696 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 10:00:25 ]
ttp://www.amazon.co.jp/dp/4797353953


697 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 10:30:24 ]
英語の勉強も並行したほうがいいのでは。
喋れないのは仕方ないが、ドキュメントも読めないレベルだと
転職も難しいぞ。

698 名前:デフォルトの名無しさん [2009/04/02(木) 10:50:23 ]
ありがとうございます!

699 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 16:23:57 ]
日本語からやり直した方がいい

700 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 22:28:22 ]
>>693
Python やめた方がいい。職業も変えたほうがいい。
もっと自分の能力にあった仕事を選んだ方が幸せだぞ。



701 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 22:44:45 ]
>>700
ありがとうございます!


702 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 01:35:31 ]
>>701
僕を師匠と呼びなさい

703 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 06:17:37 ]
>>702
し、ししょおおおおおおおッ!

704 名前:デフォルトの名無しさん mailto:  [2009/04/03(金) 18:06:18 ]
whileを使って、足し算をするソース教えて。
<条件>
・inputで計算の回数を入力する。

〜例〜
Input any number :3 //計算回数
Input any number :5 //1つ目
Input any number :6 //2つ目
Input any number :4 //3つ目
15

ってなヤツ。

705 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 18:13:04 ]
a=int(raw_input('Input any number :'))
b = 0
for i in xrange(a):
b+=int(raw_input('Input any number :'))
print(b)

706 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 18:15:45 ]
ごめんwhile使ってなかったわ

707 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 20:04:22 ]
a = int(raw_input('Input any number :'))
b = 0
i = 0
while i != a:
b += int(raw_input('Input any number :'))
i += 1
print b


708 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 23:59:29 ]
while i < a: の方が自然。


709 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 00:29:07 ]
a = []
while True:
  a.append(int(raw_input('Input any number:')))
  if len(a[1:]) == a[0]:
    break
print sum(a[1:])


710 名前:デフォルトの名無しさん mailto:  [2009/04/04(土) 16:08:43 ]
>>709
出来た。ありがとう。








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

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

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