2ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

6 :デフォルトの名無しさん: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 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2009/01/16(金) 15:48:05
× できれば >>3 の後ろ2つも参照してくれ
○ できれば >>2 の後ろ2つも参照してくれ

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

10 :デフォルトの名無しさん: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 :デフォルトの名無しさん: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 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2009/01/16(金) 22:10:51
UnicodeとUTF-8の違いは?
http://pc11.2ch.net/test/read.cgi/tech/1177930957/

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


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

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

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

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


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

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

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

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

25 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2009/01/18(日) 08:02:42
誤爆乙

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

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

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

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

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

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

33 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2009/01/18(日) 23:03:40
英語だったら、ありそうだね

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

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

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

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

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

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

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

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

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

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

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

45 :デフォルトの名無しさん: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 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2009/01/19(月) 19:40:03
>>50
予約語

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

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

54 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2009/01/19(月) 23:16:11
騙り多すぎだなこの板。

56 :デフォルトの名無しさん:2009/01/20(火) 12:15:52
http://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 :デフォルトの名無しさん:2009/01/20(火) 12:47:43
You should not die.

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

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

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

62 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2009/01/20(火) 21:31:24
2.6/3.0ならitertools.combinations

64 :デフォルトの名無しさん:2009/01/20(火) 22:04:23
http://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: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 :デフォルトの名無しさん:2009/01/21(水) 08:54:52
>>66
http://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 :デフォルトの名無しさん:2009/01/21(水) 09:25:21
has_keyはもうやめよーぜ

71 :デフォルトの名無しさん: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 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2009/01/21(水) 13:29:20
なんかみんなすごいねw
その遊びについていけね

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

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

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

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

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

79 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2009/01/22(木) 15:52:47
Python/Tkでソースの間違いを見つけられないのですが、
探してもらってもいいですか?

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

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

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

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

89 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2009/01/23(金) 20:43:44
ttp://pypi.python.org/pypi/simplejson/

92 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2009/01/23(金) 22:18:40
実技

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

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

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

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

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

103 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2009/01/24(土) 07:20:30
>>103
login_button = Tk.Button(text="c")
 ↓
login_button = Tk.Button(frame, text="c")


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

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

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

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

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

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

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

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

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

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

ということ
それとも

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

ということ


117 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2009/01/25(日) 01:16:07
MeCab

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

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

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

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

123 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2009/01/25(日) 18:48:40
てーか、CSI(Code Set Independent)を墨守してI18N化したLLってRuby以外にあるのか?

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

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

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


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

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

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

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

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

135 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2009/01/26(月) 07:49:30
お勧めのOSを教えてください

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

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

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

142 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2009/01/26(月) 10:11:06
「2種類ある」というのは、Pythonをビルドするときの設定で選べるって事ね。
Pythonを使うときに2種類から選べるわけではない。

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

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

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

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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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


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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

193 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2009/01/29(木) 16:35:38
↑こういうのって草民ってやつ?
ほんとうにきもちわるいんだねはきそう

199 :デフォルトの名無しさん: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 :デフォルトの名無しさん: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 :デフォルトの名無しさん: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 :デフォルトの名無しさん: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 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2009/01/30(金) 13:17:36
thx!

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

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

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

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

なるほど

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

217 :デフォルトの名無しさん: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 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2009/01/30(金) 16:22:07
>>218
最低限HTML、CSS、JavaScript、CGIの知識
その他ウェブサーバ、データベースについての知識も欲しい

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

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

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

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

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

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

226 :デフォルトの名無しさん: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 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2009/01/31(土) 01:32:42
>>227
ありがとうございました


229 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2009/02/01(日) 23:52:14
そもそも初期化ってなんだろうね
__inti__とはどういう関係があるんだろう

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

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

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

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

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

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

241 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2009/02/02(月) 18:59:18
Pythonに興味を持って調べはじめたPHPユーザです。

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

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

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

1、こういう本はあるんですが(内容が浅いので不評のようです)、ほかにあります?
http://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 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2009/02/02(月) 19:22:49
あ、すいませんインデントが……orz

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

248 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2009/02/02(月) 19:41:56
ありがとうございます!!

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

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

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


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


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

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


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

wxPython

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

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

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

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

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

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

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

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

266 :デフォルトの名無しさん: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 において何が内部で行われているのかについて
勉強し直してきます・・・
http://www.python.org/doc/essays/packages.html

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

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

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

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

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

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

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

274 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2009/02/04(水) 16:48:14
>>266
Lispの基本要素はS式だろ

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

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

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

279 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2009/02/04(水) 17:29:34
>>277
>>> map(operator.mul, [1,2,3,4], [4]*4)
[4, 8, 12, 16]

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


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

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

290 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2009/02/05(木) 12:09:47
>>291
それは多分「try節で送出された例外をexcept節で捕捉する」の意。

293 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2009/02/05(木) 17:33:25
tryが書いてあるメソッドを持つクラスのことです

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

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

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

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

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

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

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

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

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

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

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

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

307 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2009/02/06(金) 19:12:40
s = "1 2 3"
f = float(s.split())

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

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

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

312 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2009/02/06(金) 22:13:04
ちぃ map もう覚えた

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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


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

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

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

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

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

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

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

342 :341:2009/02/07(土) 16:06:43
hasattrだった

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

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

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

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

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

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


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

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



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

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


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

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

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

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

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

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

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

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

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

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

359 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2009/02/08(日) 22:44:03
>>> a = {"12'3":"ab'c"}
>>> str(a).replace("'",'"')
'{"12"3": "ab"c"}'

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

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

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

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

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

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

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

368 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2009/02/09(月) 00:32:41
"Fizz"*1 表示
"Fizz"*0 非表示
になってるだけ。
"hoge"*2 -> hogehoge
たぶん。

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

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

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

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

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

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

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

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

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

374 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2009/02/09(月) 18:51:41
何がやりたいのか、どんなエラーが出たかなどちゃんと書かないと分からないよ
コード例も断片じゃなくてちゃんと動くものを書こうね

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

#!/usr/bin/python
import re, urllib
htmlcontent = urllib.urlopen("http://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="http://www.amazon.com/Makita-BDF452HW-18-Volt-Compact-Lithium-Ion/dp/B000K6ILDW">
href="http://www.amazon.com/Milwaukee-2601-22-18-Volt-Li-ion-Compact/dp/B000WER5SE">
href="http://www.amazon.com/Makita-BDF452HW-18-Volt-Compact-Lithium-Ion/dp/B000K6ILDW">
href="http://www.amazon.com/Milwaukee-2601-22-18-Volt-Li-ion-Compact/dp/B000WER5SE">

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

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

378 :デフォルトの名無しさん: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 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2009/02/09(月) 23:45:25
from collections import namedtuple # 2.6 feature
Nuclei = namedtuple("Nuclei", "A Z")

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

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

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

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

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

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

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

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

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

どっかにありませんか?

391 :390:2009/02/12(木) 17:11:39
自己解決しました

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

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

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

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


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

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

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

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

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

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

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

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

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

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

406 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2009/02/16(月) 13:50:58
http://galprop.stanford.edu/web_galprop/galprop_home.html
に置いてある、
http://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:2009/02/16(月) 18:23:29
どうやらf2pyは継続行をうまく扱えないようで、
   1行目 !comment
  & 2行目
みたいに書いてあるところのコメントを取り除けばいいようです。

410 :デフォルトの名無しさん: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:2009/02/16(月) 20:16:54
追記

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

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

412 :410:2009/02/16(月) 20:46:46
あ、嘘。できた。

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

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

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

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

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

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

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

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

421 :デフォルトの名無しさん:2009/02/18(水) 16:30:58
>>415
おk
http://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 :デフォルトの名無しさん:2009/02/19(木) 00:44:24
>>421
ありがとう

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

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

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

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

425 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2009/02/21(土) 03:34:21
すごいくだらないんですけど
PyPy Pychinko以外になんか卑猥なのあります?

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

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

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

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

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

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

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

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

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


434 :430: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 :デフォルトの名無しさん: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配布元http://people.csail.mit.edu/hubert/pyaudio/
●wave再生のexampleソースhttp://people.csail.mit.edu/hubert/pyaudio/#examples

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

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

他の方法でOSの音量をいじるか、
http://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 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2009/02/25(水) 04:26:17
copy.deepcopy(a)

444 :デフォルトの名無しさん: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:2009/02/25(水) 13:08:05
>>443
ありがとうございます!

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

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

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

449 :デフォルトの名無しさん: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 :デフォルトの名無しさん: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 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2009/02/26(木) 15:02:32
reduce(lambda x, y: x + '%02x'%y, reversed(a), '0x')

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

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

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

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

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

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

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

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

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

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


463 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2009/02/26(木) 23:26:41
>>463
class B(A):
  def __init__(self):
    

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

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

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

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

468 :463: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:2009/02/27(金) 00:50:14
>>468
癖でprintfとしてしまった。printです。

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

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

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

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

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

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

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

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


481 :デフォルトの名無しさん: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 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2009/02/28(土) 08:07:06
リストの内包表記

これでググレばおk

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

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

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

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

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

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

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

493 :デフォルトの名無しさん: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 :デフォルトの名無しさん: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 :スルー力が足りない! :2009/02/28(土) 14:29:33
本人を装った荒らし乙

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

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

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

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

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

501 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2009/02/28(土) 20:48:50
sqlite3.register_adapter(datetime.datetime, lambda s: int(time.mktime(s.timetuple()) * 1000))
これでいいのかな

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

504 :デフォルトの名無しさん:2009/02/28(土) 23:33:58
http://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 :デフォルトの名無しさん:2009/03/01(日) 15:32:27
http://coding.derkeiler.com/Archive/Python/comp.lang.python/2008-04/msg02501.html
http://codepad.org/MVV0u4pQ

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

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


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


509 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2009/03/01(日) 22:04:21
さげ

512 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2009/03/02(月) 22:53:10
オンラインリファレンスじゃだめなんか

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


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

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

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

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

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

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

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

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

523 :デフォルトの名無しさん: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 = "http://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 :デフォルトの名無しさん:2009/03/04(水) 17:47:35
>>524
>>> import urllib2
>>> urllib2.open('http://jbbs.livedoor.jp/sports/35590/').read()
(省略)
>>> urllib2.open('http://jbbs.livedoor.jp/sports/35590/').read()
(省略)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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


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

543 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2009/03/06(金) 10:02:23
Rubyを使いなさい。

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

546 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2009/03/06(金) 23:11:47
db.execute("insert into tablehoge values (?,?)", v)

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

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

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

551 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2009/03/07(土) 00:25:03
db.run_in_transaction

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

554 :551:2009/03/07(土) 00:35:19
>>552

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


555 :デフォルトの名無しさん: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:2009/03/07(土) 00:54:26
>>555

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

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

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

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

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

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

560 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2009/03/07(土) 09:48:13
すみません…意味がわかりません

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

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

猿だな

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

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

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

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

564 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2009/03/07(土) 19:16:47
気象予報士って13歳でも受かるんだな

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



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

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

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

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

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

593 :デフォルトの名無しさん:2009/03/11(水) 22:30:58
>>591
>>592

おー、できた。トンクス。
やっぱ聞いてみるもんだ。半日悩んだよw

594 :デフォルトの名無しさん:2009/03/11(水) 23:05:10
CSVは読み書きできるモジュールがあるよ
ttp://www.python.jp/doc/release/lib/csv-examples.html

595 :デフォルトの名無しさん:2009/03/12(木) 09:54:39
>>594
トン。ダイレクトにCSVに書き込む奴もあるのか。
流石というか、誰もが使うようなものは標準としてあるもんなんだな。
車輪の再発明(しかも超低脳)してばっかだわ、俺。

596 :デフォルトの名無しさん:2009/03/13(金) 04:52:34
バイトコードってどうやって、つくるの?
python -O foo.pyでは、ダメなの?

597 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2009/03/13(金) 19:51:26
py2exeで実行ファイルをつくってみたんですが、別のWindows 2000マシンで実行したらmsvcr90.dllを要求されました。
再配布パッケージを入れればよいようですが、そもそもこのDLLを要求されないようにすることはできないんでしょうか?

600 :デフォルトの名無しさん:2009/03/13(金) 20:59:29
python26.dllを/MTでビルドすれば可能かも知れないけど
拡張モジュールとFILE*でやりとりしてるとことかあるから多分無理じゃね

601 :デフォルトの名無しさん:2009/03/13(金) 22:04:55
ありがとうございます。
やっぱりダメですか。配布先にDLLのインストール要求できるならそもそもPythonインストールして貰えばいいし、py2exeって何なんでしょうね。
Vistaだと最初からDLL入ってるのかな。

602 :デフォルトの名無しさん:2009/03/14(土) 00:09:47
>>601
インストールしないまでもexeとセットでdll配るんじゃダメなんだっけ?
同一フォルダにあれば動きそうだけど。

603 :デフォルトの名無しさん:2009/03/14(土) 00:20:36
同一フォルダでOKな気が。

604 :デフォルトの名無しさん:2009/03/14(土) 00:52:26
漏れは setup.py の data_files に書き足してる
最近の atom の net book とかだと msvcpXX.dll
なんかも持っていかないと動かないみたいだし

605 :デフォルトの名無しさん:2009/03/14(土) 07:14:24
msvcpってC++ランタイムだからいらないと思うよ
どっちにしろmsvcのランタイムは配布条件が面倒くさい

606 :デフォルトの名無しさん:2009/03/14(土) 09:17:20
Microsoft.VC90.CRT.manifestを添付するのだけ気をつけて
exeと同一ファイルに配置するのはOKだから別に面倒くさくはないよ。

607 :デフォルトの名無しさん:2009/03/14(土) 09:33:57
ファイル->フォルダ

608 :デフォルトの名無しさん:2009/03/14(土) 09:57:33
>>605が言ってるのは方法じゃなくて条件(ライセンス)でしょ
詳しいこと忘れたけど

609 :デフォルトの名無しさん:2009/03/14(土) 12:00:27
>>605
無いと動かなかった
そのファイル一個だけ追加したら動いた
importしてるmoduleが要求してたの鴨試練

610 :デフォルトの名無しさん:2009/03/14(土) 18:15:44
調べてみたけどmsvcr90.dllをコピーして再配布していいかどうかわかりませんでした。
ユーザにMSのサイトからパッケージをダウンロードしてもらうなら問題なさそうですが、手間ですよね。残念。

611 :デフォルトの名無しさん:2009/03/14(土) 18:15:52
>>609
もし面倒じゃなければ依存関係調べてみれば?

612 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2009/03/14(土) 19:05:10
>>610
py2exeにsetupツールも入れてexe化して
MSのサイトからパッケージをダウンロードするように作っておけば?

614 :606:2009/03/15(日) 01:19:17
貴様らワシの言うことが信じられんと申すか……

615 :デフォルトの名無しさん:2009/03/15(日) 02:48:09
>>614
素直にRuby使った方がよろしいのではないでしょうか。

616 :デフォルトの名無しさん:2009/03/15(日) 03:31:43
Windows上でRubyとかまたご冗談を

617 :デフォルトの名無しさん:2009/03/15(日) 06:14:42
rubyのexerbで実行ファイルつくるとDLLなしで動作するよ。
しかもどうやってるのかLinux上でつくれたりする。

618 :デフォルトの名無しさん:2009/03/15(日) 08:09:23
>>617
あれは実行ファイルじゃないから
自己解凍圧縮ファイルみたいな発想

619 :デフォルトの名無しさん:2009/03/15(日) 11:27:21
>>618

620 :デフォルトの名無しさん:2009/03/16(月) 18:36:56
pythonでTkinterを使用しGUIを勉強しています。
タブブラウザのようなインターフェイスにするにはどうすればいいでしょうか?

少しググったらmaya.cmdsをimportしてtablayoutうんぬん・・・というページがあったのですが、
mayaとか持ってませんし・・・

621 :デフォルトの名無しさん:2009/03/16(月) 19:04:28
http://www.not-enough.org/abe/manual/maya-python-aa07/layout2.html

このページにある画像みたいなインターフェイスを作りたいです

622 :デフォルトの名無しさん:2009/03/16(月) 19:11:57
>>621
http://tkinter.unpythonic.net/wiki/NoteBook

623 :デフォルトの名無しさん:2009/03/16(月) 19:46:17
>>622
ありがとうございます。
BWidgetはTcl/Tkの拡張用のようなのですが、Tcl/Tkも導入しなければなりませんか?
DLしたのはBWidget1.7.0でした

624 :デフォルトの名無しさん:2009/03/16(月) 21:17:35
http://www.wxpython.org/screenshots.php

625 :デフォルトの名無しさん:2009/03/16(月) 21:27:53
>>623
つttp://tkinter.unpythonic.net/bwidget/

626 :>>620 >>621 >>623:2009/03/17(火) 10:37:54
解決というか>>622さんのおっしゃられた
http://tkinter.unpythonic.net/wiki/NoteBook
のサンプルが表示されるようになりました。

原因はBWidget1.7を入れるフォルダを間違えていました。
bwidgetフォルダとsetup.py tabdemo.py test.pyはpythonのLibフォルダへ
BWidget-1.7.0はpythonのtclフォルダに入れればよかったのですね。

レスくださったみなさまありがとうございました。

627 :>>626: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 :デフォルトの名無しさん:2009/03/18(水) 00:14:29
つttp://tkinter.unpythonic.net/wiki/BWidgets

629 :デフォルトの名無しさん: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: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 :デフォルトの名無しさん:2009/03/18(水) 18:55:43
よくわからんがos.system()を使ってはどうかに?

633 :デフォルトの名無しさん: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: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 :デフォルトの名無しさん:2009/03/19(木) 16:55:34
popen2.popen3 使うのと subprocess 使うのはどっちがどのくらいいいの?

636 :デフォルトの名無しさん:2009/03/19(木) 16:57:55
今はsubprocess推奨で、他はレガシー扱いのはず

637 :デフォルトの名無しさん:2009/03/19(木) 16:59:43
subprocessでいいんじゃない?
キッチンシンク的だが、何かに不足することはない。

他の何かだと、ちょっとした設計変更で別の何かに書き換える必要が
あったりしていろいろ面倒なことが多い。

638 :デフォルトの名無しさん:2009/03/19(木) 17:09:41
ありがとう勉強になりました
ちょっとためしてみたけど subprocess.Popen のあと
stdout.read() すると非同期で動くんですね


639 :デフォルトの名無しさん:2009/03/19(木) 23:35:23
tupleを戻す関数を呼ぶとき
hoge, fuga = hage()
と書くのか
(hoge, fuga) = hage()
と書くので何か違いはありますか?
また
return hage, fuga
return (hage, fuga)
でも違いはありますか?

640 :デフォルトの名無しさん:2009/03/20(金) 00:44:27
まったく同じ。dis.disで調べろ

641 :デフォルトの名無しさん:2009/03/20(金) 04:14:32
ありがとうございます

642 :デフォルトの名無しさん:2009/03/20(金) 21:48:50
itertools.teeの使い道がいまいちよくわからないのですが
どういった際に有用なのでしょうか?

643 :デフォルトの名無しさん:2009/03/20(金) 22:06:11
>>642
俺も使ったことねー
_1, _2 = tee(xs)
_1の処理
_2の処理

みたいに逐次的に2-pass処理するんなら
結局リストと同様に全要素メモリに持っておかないといかんし、それならリストでいい
なんかもう少し高級な場合に必要なのだろうと思った

644 :643:2009/03/20(金) 22:10:54
あー多分あれだ、前後の要素みながらやる仕事にいいんじゃないか
全部は要素を持っておく必要が無いが、近傍のN個程度の要素が欲しい、という場合
tee使わんでも書けるけど使ったほうが綺麗に書けるのかもしれない

645 :デフォルトの名無しさん:2009/03/21(土) 01:05:47
>>643-644
回答ありがとうございました。

具体的な例が今のところ思いつきませんが、そういうような処理を要する時に使ってみたいと思います。

646 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2009/03/21(土) 23:34:51
一つの正規表現でやらなきゃならない理由は?

648 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2009/03/21(土) 23:41:27
>>647
レスありがとうございます。正規表現で書ければ、コード本体をいじらなくて
も済むという事情があったからです。

650 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2009/03/22(日) 18:13:02
>>650
site-packageはみたか?

652 :デフォルトの名無しさん:2009/03/22(日) 20:08:25
>>651
site-packageを足がかりに調べてみたところ
TracLight入れたときに環境変数が色々と書き換えられてたのが原因でした
元に戻したところ無事に動きました
ありがとうございました

653 :デフォルトの名無しさん:2009/03/23(月) 22:17:02
質問させてください。
Pythonでsubstring(文字列の切り出し)
を実装するには、どのような方法で実装するのが一般的
なのでしょうか?

普通にstrNew = strVal.substring(1,5)
とかできるのかと思ってたらできなくてびっくりしてます。

654 :デフォルトの名無しさん:2009/03/23(月) 22:20:54
strVal[1:5+1]

655 :デフォルトの名無しさん:2009/03/23(月) 22:44:04
>>654

ありがとうございます。
末尾を指定せずに切り出すのもこれでいけるんですね。
助かりました。

656 :デフォルトの名無しさん:2009/03/24(火) 00:15:59
こういうの知ってないとググり様がない気がする

657 :デフォルトの名無しさん:2009/03/24(火) 00:16:41
と言っても .substring() が良いっていう意味じゃないからね

658 :デフォルトの名無しさん:2009/03/24(火) 00:23:23
>>655
このページが結構役に立つ
http://0xcc.net/blog/archives/000137.html

659 :デフォルトの名無しさん:2009/03/24(火) 00:59:58
>>656
Python 文字列 切り出し
でぐぐればいい

660 :デフォルトの名無しさん:2009/03/24(火) 01:11:05
>>659
おまい頭ええのう

661 :デフォルトの名無しさん:2009/03/24(火) 02:32:02
リファレンス読めば書いてあるじゃない

662 :デフォルトの名無しさん:2009/03/24(火) 03:48:30
リファレンスのどこにあるかを問題にしている訳で

663 :デフォルトの名無しさん:2009/03/24(火) 10:59:15
>>662
シーケンス型と文字列型のところみたら乗ってるだろ。
最近のヤツは検索以外の方法で情報を探す能力無いのか。

664 :デフォルトの名無しさん:2009/03/24(火) 11:09:40
Python初めて使うんなら、タダで読めて和訳もされてるチュートリアルぐらいは
ざっと読んどくといいぞ
序盤の「形式ばらないPythonの紹介」って所に文字列スライスの例も
出てくる
基本中の基本だからな

665 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2009/03/26(木) 20:51:49
>>666
pure Python で、不必要なオブジェクトの参照を掴んだままだったらメモリは解放されない。
Javaとかと一緒。

669 :デフォルトの名無しさん:2009/03/27(金) 00:37:36
>>668 えーとdelすればいいのかな?

670 :デフォルトの名無しさん:2009/03/27(金) 00:41:51
>>669
それはやめといたほうがいい、やりたいというならよく調べてからだな

Noneでも入れとけばいい

671 :デフォルトの名無しさん:2009/03/27(金) 01:00:34
オブジェクトがGCで解放されるかどうかと「OSに返され」るかどうかは
イコールじゃないよ

Pythonは最終的にはlibcのmalloc()/free()を使っているから、どういう
戦略を採っているかはlibcの実装によるが、普通はOSにはいちいち返さないはずだ
解放された領域は、再確保時に使いまわせるようにプールされる

672 :デフォルトの名無しさん:2009/03/27(金) 01:25:17
バッファとかキャッシュみたいなもんだね
いちいちOSに伺い立ててたら遅いから
借りたものは死ぬまで返さない方針の方が速い

673 :デフォルトの名無しさん:2009/03/27(金) 01:31:34
Rubyかどっかのスレで似たこと聞いてたひといたけど
同じひとかな

674 :デフォルトの名無しさん:2009/03/27(金) 17:06:48
>>671
うん、ある程度はプールされる。
でも大幅にメモリが空いたらOSに返される。

675 :デフォルトの名無しさん:2009/03/27(金) 18:40:09
Windows上ではCPythonとIronPythonがあるけどどっちがいいんだ?
やれることに違いはあまりなさそうだが。

676 :デフォルトの名無しさん:2009/03/27(金) 20:35:54
普通はCPythonじゃねーか?

漏れの場合は仕事でJavaとかJythonもやるのでEclipse上であれこれソースをいじるし、
サーバーサイドも書くので互換性を意識してCPython使っている。

IronPythonはプライベートのお遊び用ってスタンスだけど。
普段の生活でWindowsしか触らないなら、どっちも違いはないかな。

677 :デフォルトの名無しさん:2009/03/27(金) 23:10:38
なるほど。Ironの方でないと実現できないってケースにぶち当たるまではCPythonをやっとくか。
日本語資料の豊富さでもCPythonが上手のようだし。

678 :デフォルトの名無しさん:2009/03/27(金) 23:10:54
IronPythonはお遊び専用

679 :デフォルトの名無しさん:2009/03/28(土) 00:53:33
IronPythonかなり遊べるけど、やっぱ遊び専用だな。
使えないという意味ではまったくない。

680 :デフォルトの名無しさん:2009/03/28(土) 05:56:17
遊びには使えるが
仕事には使えない

681 :デフォルトの名無しさん:2009/03/29(日) 00:06:03
620 :nobodyさん:2009/03/27(金) 23:54:31 ID:KMOu2qJC
「pygameでろくでなしブルース」
http://www.freepe.com/i.cgi?rokublues

プログラマーはあなたでお願いします。
あと、BGM(効果音はくにおから取ってほしい)製作出来る方を募集します。

参加は俺のドット絵のセンスを認めて頂いた場合だけで構いません。
誰も乗らないならそれまでだと受け止めます。

ただ、やるなら夢はでっかく、
最終的に、ネット経由の多人数プレイで、
学園対抗の乱闘騒ぎが出来るゲームにしたいなあ。

682 :デフォルトの名無しさん:2009/03/29(日) 05:31:42
>>681
死ね

683 :デフォルトの名無しさん:2009/03/29(日) 05:42:18
>>681
とりあえずサーバー用意してくれよ

684 :デフォルトの名無しさん:2009/03/29(日) 06:37:34
http://pc11.2ch.net/test/read.cgi/php/1156612854/620
扇子無いから協力しない

685 :デフォルトの名無しさん:2009/03/29(日) 19:08:38
Pythonしか知らないのですがメンバ変数とかのメンバとはどういうものでしょうか?

686 :デフォルトの名無しさん:2009/03/29(日) 23:58:20
ここいくとおしえてもらえるよ
http://pc12.2ch.net/test/read.cgi/tech/1235727504

687 :デフォルトの名無しさん:2009/03/30(月) 10:35:18
C/C++用語だろ

688 :デフォルトの名無しさん:2009/03/31(火) 03:28:13
win上で走らせるスクリプトで、ファイルを削除じゃなくてゴミ箱に
入れるようにしたいんだけどどうすればいい?

689 :デフォルトの名無しさん:2009/03/31(火) 04:07:09
>>688
Pythonのことは知らないが、Win32APIならSHFileOperation

690 :デフォルトの名無しさん:2009/03/31(火) 18:10:05
>>689
なるほど、Pythonでやるなら拡張モジュール用意しなくちゃだめか。
さんくす。

691 :デフォルトの名無しさん:2009/03/31(火) 19:59:11
>>690
標準ライブラリにある ctypes でできない?

692 :デフォルトの名無しさん:2009/04/01(水) 04:37:22
できるよ

693 :デフォルトの名無しさん:2009/04/02(木) 08:27:09
おはようございます。
春からpythonで開発していくことになりましたが、全て英語で書いてるので全く理解できません。

日本語のマニュアルとか、本とかは出ていますか?

694 :デフォルトの名無しさん:2009/04/02(木) 08:30:49
>>693
若干バージョンが古いけど
http://www.python.jp/Zope/links/python_documents

ちなみに本はたくさんある

695 :デフォルトの名無しさん:2009/04/02(木) 08:32:58
>全て英語で書いてるので

理解してないのに良くかけるな

696 :デフォルトの名無しさん:2009/04/02(木) 10:00:25
ttp://www.amazon.co.jp/dp/4797353953


697 :デフォルトの名無しさん:2009/04/02(木) 10:30:24
英語の勉強も並行したほうがいいのでは。
喋れないのは仕方ないが、ドキュメントも読めないレベルだと
転職も難しいぞ。

698 :デフォルトの名無しさん:2009/04/02(木) 10:50:23
ありがとうございます!

699 :デフォルトの名無しさん:2009/04/02(木) 16:23:57
日本語からやり直した方がいい

700 :デフォルトの名無しさん:2009/04/02(木) 22:28:22
>>693
Python やめた方がいい。職業も変えたほうがいい。
もっと自分の能力にあった仕事を選んだ方が幸せだぞ。

701 :デフォルトの名無しさん:2009/04/02(木) 22:44:45
>>700
ありがとうございます!


702 :デフォルトの名無しさん:2009/04/03(金) 01:35:31
>>701
僕を師匠と呼びなさい

703 :デフォルトの名無しさん:2009/04/03(金) 06:17:37
>>702
し、ししょおおおおおおおッ!

704 :デフォルトの名無しさん: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 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2009/04/03(金) 18:15:45
ごめんwhile使ってなかったわ

707 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2009/04/03(金) 23:59:29
while i < a: の方が自然。


709 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2009/04/04(土) 16:08:43
>>709
出来た。ありがとう。

711 :デフォルトの名無しさん:2009/04/05(日) 22:40:27
cookieからキーを指定して情報を読むにはどうすればいいんでしょうか

import urllib2, cookielib
cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
request = urllib2.Request(url)
html = opener.open(request).read()

こんなかんじでHTMLを取得してるのですが
cookieの中に入ってる情報をどうやって取り出せばいいのかわからず困ってます

712 :デフォルトの名無しさん:2009/04/06(月) 03:15:13
環境変数のHTTP_COOKIE
os.environ.get('HTTP_COOKIE')
a=hoge;b=fuge
という形でドメインごとにとれるよ

713 :デフォルトの名無しさん:2009/04/06(月) 03:24:57
できませんでした。>>712だとそんな環境変数ないと怒られました。
きちんとシェル上から操作しました。HTTP_COOKIEなんて存在しません。

714 :711:2009/04/06(月) 03:37:55
712は私ではありませんが、できませんでした。
html = opener.open(request).read()のあとに
os.environ.get('HTTP_COOKIE')してみましたがNoneが返ってきます。

715 :デフォルトの名無しさん:2009/04/06(月) 03:38:49
間違えた。>>712ではなく>>713です

716 :デフォルトの名無しさん:2009/04/06(月) 08:50:15
for cookie in cj:
....print cookie.name, cookie.value, cookie.domain
....print dir(cookie)

717 :デフォルトの名無しさん:2009/04/06(月) 09:02:50
>>716
できました!ありがとうございます。
簡単そうなことなのに、検索してもドキュメントを探しても見つからないので
ほとほと困ってました。

718 :デフォルトの名無しさん:2009/04/07(火) 02:38:43
なんで他の人間はレベルが低いんでしょうかね。
私にわからないということで馬鹿にしてるのでしょうか。

719 :デフォルトの名無しさん:2009/04/07(火) 06:32:08
>>718
日本語で書いてください。


720 :デフォルトの名無しさん:2009/04/07(火) 09:33:51
pythonで書かれているmailmanつかっているんですが、
メールに変なコントロールコードが入ると処理が止まってしまいます。
なんとか無視させる方法ってないんでしょうか?

721 :デフォルトの名無しさん:2009/04/08(水) 01:53:56
一日待ちましたが、答えが出てきません。

722 :デフォルトの名無しさん:2009/04/08(水) 09:00:09
・バージョンも環境も分からない
・どこで止まってどういうログが出てるのか分からない
・「変な」という主観が具体的に何を指しているのか分からない
・1日経ってない

うちでは別に問題なく動いてますよ(事実)って答えればいいのか?

723 :デフォルトの名無しさん:2009/04/08(水) 19:37:46
本文まるごと base64 で援交しる

724 :デフォルトの名無しさん:2009/04/08(水) 21:12:04
>>723
人でなし!

725 :デフォルトの名無しさん:2009/04/08(水) 21:53:30
ファイルのsha1を計算するのにぐぐってみたら

f = open(filename,'rb')
b = f.read()
f.close()

みたいなことをやって計算してたけど
この方法だと、一度メモリに保存してからしかできないので
2G以上のファイルではメモリエラーが出てしまいます。
IronPythonはもっとひどく、bがStringとして実装されているせいか200MB程度でもアウツです。

sha1をファイルから直接計算する方法は無いのでしょうか?


726 :デフォルトの名無しさん:2009/04/08(水) 22:01:22
update使って少しずつデータを食わせて

727 :デフォルトの名無しさん:2009/04/08(水) 22:01:59
import hashlib
import sys

f = open(sys.argv[1], 'rb')
h = hashlib.sha1()
while True:
    d = f.read(1024)
    if d:
        h.update(d)
    else:
        break
f.close()
print h.hexdigest()

728 :デフォルトの名無しさん:2009/04/08(水) 22:41:42
>>726
>>727
無事計算できるのを確認しました。
ありがとうございました。


729 :デフォルトの名無しさん:2009/04/08(水) 22:58:07
ある文字列が与えられたときに
それをモジュール名としてimportってできますか?
またその中にある関数とかクラスを呼べますか?

def hoge(fuga,hage,hoge):
 import fuga
 h=fuga.hage() #fugaの中にhageクラスがあります
 h.hoge() #hageクラスのインスタンスメソッド
 いろいろ作業

みたいなことです

730 :デフォルトの名無しさん:2009/04/08(水) 23:13:44
__import__()

731 :デフォルトの名無しさん:2009/04/09(木) 03:27:04
>>> m = __import__('myapp', {}, {}, [])
>>> app = getattr(m, 'application')()
>>> from wsgiref import simple_server
>>> simple_server.make_server('', 8080, app).serve_forever()
うまくいきました
ありがとうございます

732 :デフォルトの名無しさん:2009/04/11(土) 14:02:48
数字のprintについて質問です。

正確性は犠牲にして出力時に有効数字二桁になればいいというような場合に
f = 0.50
f *= 2
print str(f)
としたときに1.00と出したいのですが
decimal.Decimal(0.00)をベースに演算するしかないのでしょうか?

あとC言語でいう%02dのようにしたいときは
print str(d).rjust(2,'0')
とするしか無いのでしょうか?


733 :デフォルトの名無しさん:2009/04/11(土) 14:08:52
print "%.2f" % 1
print "%02d" % 1

734 :デフォルトの名無しさん:2009/04/11(土) 16:21:43
あれ?

735 :デフォルトの名無しさん:2009/04/12(日) 05:10:22
%なんてものがあるとは・・・ orz
すっかり見逃してました。
ありがとうございました。

736 :デフォルトの名無しさん:2009/04/12(日) 18:13:56
文字列に剰余演算子を適用すると、左側をフォーマットのためのテンプレート、
右側をそれを埋めるための値として扱うなんて、奇天烈な仕様は誰が考えたんだ?

737 :デフォルトの名無しさん:2009/04/12(日) 18:24:35
文字列中で式展開とかするよりよっぽどいいよ

738 :デフォルトの名無しさん:2009/04/12(日) 19:05:24
>>736
C++のBoostとか使ったことないの?

739 :デフォルトの名無しさん:2009/04/12(日) 19:09:33
BoostがPythonに倣ったんじゃないの?

740 :デフォルトの名無しさん:2009/04/12(日) 19:15:19
その仕様は嫌いじゃない。

741 :デフォルトの名無しさん:2009/04/12(日) 20:40:43
こやつめw

742 :デフォルトの名無しさん:2009/04/12(日) 21:53:07
まぁ将来廃止されるけどね > %によるテンプレート

743 :デフォルトの名無しさん:2009/04/12(日) 23:51:03
kwsk

744 :デフォルトの名無しさん:2009/04/13(月) 00:05:56
str.format

745 :デフォルトの名無しさん:2009/04/13(月) 00:38:44
%にTemplateにstr.formatに、と同じことをする方法が多すぎるのがPythonらしくなくて違和感あったけど
%のほうは廃止の方針なのね。

剰余演算子を使いまわすのがキモいからなのか、
テンプレート形式がC言語由来で動的型のPythonに合わないからなのか、
辞書を渡すよりデフォルト値を使うほうが自然だからか、
メソッド形式のほうがファーストクラスとして使える分汎用性があるからなのか、
タプルを渡すとき必ず括弧がいるのに違和感があるからなのか?

Templateのほうはどうなるんだろう

746 :デフォルトの名無しさん:2009/04/13(月) 09:55:43
正規表現で6桁の数字を
[0-9]{6}ってやっても引っかからない。
[0-9]{1,6}ってやっても引っかからない。
pythonで6桁の数字の正規表現求む

747 :デフォルトの名無しさん:2009/04/13(月) 10:38:05
ヒットさせたい文字列と該当箇所のコードがあったほうがいいかと

748 :746:2009/04/13(月) 10:39:47
ごめん、普通にできた
[0-9]{6}

>>747 アドバイスありがとうございます

749 :デフォルトの名無しさん:2009/04/13(月) 14:55:23
pythonが生き残れるのか不安になってきた
やっぱperlとphpに押しつぶされるんじゃないかって

750 :デフォルトの名無しさん:2009/04/13(月) 17:03:23
Rubyは知らないけど、Python, Perl, PHPはこれからも生きていくと思う。それぞれ長所が異なるし。

751 :デフォルトの名無しさん:2009/04/13(月) 17:07:45
Pythonの長所ってなに?

752 :デフォルトの名無しさん:2009/04/13(月) 17:21:33
キサマには教えない。

753 :デフォルトの名無しさん:2009/04/13(月) 17:35:50
Pythonの長所は無しと

754 :デフォルトの名無しさん:2009/04/13(月) 17:47:29
胴体が長所

755 :デフォルトの名無しさん:2009/04/13(月) 18:05:01
>>753
キサマの言うとおりPythonに長所なんてないからさっさとドカタ仕事に戻れや。

756 :デフォルトの名無しさん:2009/04/13(月) 18:14:59
Rubyは消えそうですね

757 :デフォルトの名無しさん:2009/04/13(月) 18:17:33
Pythonは組み込みスクリプト用途として3DCG系ではよく使われてるらしい。
RubyはRPGツクールw

758 :デフォルトの名無しさん:2009/04/13(月) 18:17:45
>>751
長所は汎用インタプリタ言語としてのバランス。大きな短所が存在しないことが長所。

・機能性と可読性と一貫性のバランスが取れた言語仕様
・言語、組み込みオブジェクト、標準ライブラリの、正しさと使いやすさのバランス
・標準ライブラリの充実
・外部ライブラリの充実
・拡張モジュール作成をサポートするツールの充実 (SWIG/Pyrex/Cython/boost.pytho/Py++/SIP)
・マイナーバージョンアップに置ける下位互換性の高さ
・メジャーバージョンアップでの移行のサポート (2.x -> 3.x)
・LLの中では実効速度もメモリ効率も高い水準
・Windows環境も手厚くサポート
-- MSVCで拡張モジュールをコンパイルする機能が標準ライブラリに入っている
-- レジストリアクセスも標準ライブラリでサポート
-- パッケージをWindowsインストーラ形式にするのも標準ライブラリでサポート
-- Unicodeパスに自然に対応(日本語環境で不安無し)

759 :デフォルトの名無しさん:2009/04/13(月) 18:23:48
numpy,scipy,matplotlib

760 :デフォルトの名無しさん:2009/04/13(月) 18:25:09
ctypesが標準なのもWindows環境では有難い

761 :デフォルトの名無しさん:2009/04/13(月) 19:05:10
pythonでテキストエディタ作るのとCでテキストエディタ作るのではどっちがすごいですか?

762 :デフォルトの名無しさん:2009/04/13(月) 19:24:35
>>759
その三つに加えて
Mayavi2があれば化学屋の俺は満足だ

763 :デフォルトの名無しさん:2009/04/13(月) 20:58:59
短所:
・ブロックに閉じ括弧がない。
・おかげでlambda式がかっこわるい。
・import 文が微妙。
・ユニコードの扱いが微妙だった。

他はわりと好き。%も好き。

764 :デフォルトの名無しさん:2009/04/13(月) 22:27:57
久しぶりに来たら>>1のテンプレから日本語のアノHP(笑)がなくなりましたね
GJ!!です

765 :デフォルトの名無しさん:2009/04/14(火) 14:37:40
今からpythonを始める場合
バージョン2とバージョン3どちらから始めたらよろしいでしょうか?

766 :デフォルトの名無しさん:2009/04/14(火) 14:38:17
2

767 :デフォルトの名無しさん:2009/04/14(火) 14:42:42
最低 2.5 以上から
個人的には 2.6 使うくらいなら 3 使っちゃった方が良いと思う


768 :デフォルトの名無しさん:2009/04/14(火) 14:45:55
2と3ってphp4とphp5.2ぐらいに違いあったっけ?

769 :765:2009/04/14(火) 15:06:16
ありがとうございます
両方とも試しで入れてみたのですが3の方はコマンドラインの方で「print 1」と入力してもエラーがでて実行できなかったので
2.6のほうをインストールしました

770 :デフォルトの名無しさん:2009/04/14(火) 15:27:12
6個のreal型変数x1、y1、x2、y2、x3、y3を定義しそれぞれに実数つを読み込んで、xy平面上の3点
(x1、y1)(x2、y2)(x3、y3)を頂点に持つ三角形の面積を計算して、その値を表示するプログラムを作成してください。
・公式:底辺x高さ÷2を使って計算してください。
お願いします!!


771 :デフォルトの名無しさん:2009/04/14(火) 15:43:19
>>770
マルチ乙

772 :デフォルトの名無しさん:2009/04/14(火) 16:37:17
>>765-767
今3.0を使えるのは検証・実験目的か過去を全て捨てられる人だけ

773 :デフォルトの名無しさん:2009/04/14(火) 16:39:23
wxPythonとpywin32が対応するまで移行できない

774 :デフォルトの名無しさん:2009/04/14(火) 18:47:17
ダンジョー臭がするなこのスレ

775 :デフォルトの名無しさん:2009/04/14(火) 20:58:27
pythonで浮動小数点の多倍長演算をする方法はありますか?

776 :デフォルトの名無しさん:2009/04/14(火) 21:13:09
Decimalモジュールがありましたorz

777 :デフォルトの名無しさん:2009/04/14(火) 22:05:08
>>823
すげえええええええ

778 :デフォルトの名無しさん:2009/04/14(火) 22:50:47
>>770
ここまで来ると逆に尊敬するマルチ野郎だな。
これはひどいwww
http://pc12.2ch.net/test/read.cgi/tech/1237091698/493
http://pc12.2ch.net/test/read.cgi/tech/1232055225/770
http://pc12.2ch.net/test/read.cgi/tech/1217575832/499
http://pc12.2ch.net/test/read.cgi/tech/1235927586/774
http://pc12.2ch.net/test/read.cgi/tech/1212498448/876
http://pc12.2ch.net/test/read.cgi/tech/1212409946/66
http://pc12.2ch.net/test/read.cgi/tech/1217575832/499
http://pc12.2ch.net/test/read.cgi/tech/1192201659/808
http://pc12.2ch.net/test/read.cgi/tech/1205156417/821
http://pc12.2ch.net/test/read.cgi/tech/1238032584/16
http://pc12.2ch.net/test/read.cgi/tech/1224719784/934
良識を疑うよ。


779 :デフォルトの名無しさん:2009/04/14(火) 23:12:57
C++Builderみたいな感じでマウスでぴょこぴょこってGUIアプリ作りたいんだけど、Pythonだとそういうの無理?
wxPythonとかめんどくさくてさあ


780 :デフォルトの名無しさん:2009/04/14(火) 23:13:34
>>823

781 :デフォルトの名無しさん:2009/04/14(火) 23:16:07
wxPythonにもXRCedというResourceEditorが付属してるだろ

782 :デフォルトの名無しさん:2009/04/14(火) 23:49:08
>>770>>778
てなことを、10スレ以上で言って回ってるのかおまえらは? おヒマですね
マルチポストがどーたらを言ってる奴自身、ろくな回答してねえのが多いんだよな

# 加えてクロスポストを知らなかったりするし

783 :デフォルトの名無しさん:2009/04/15(水) 00:21:07
テロリストの論理で文句言ってら

784 :デフォルトの名無しさん:2009/04/15(水) 03:48:34
すげー
2chってクロスポスト出来たんだ

785 :デフォルトの名無しさん:2009/04/15(水) 08:36:50
マルチというかすでにスパムか荒らしの域

786 :デフォルトの名無しさん:2009/04/15(水) 09:42:01
>>772
python3.1が出たら使ってみたいなあ。

787 :デフォルトの名無しさん:2009/04/16(木) 00:57:12
はあ?

788 :デフォルトの名無しさん:2009/04/16(木) 01:14:08
module foo
 BAKA = false
 def self.bar
  return true
 end
end
p foo::bar
p foo::BAKA


class foo:
 BAKA = false
 def bar(self):
  return true
cls = foo()
print cls.bar()
print cls.BAKA

789 :デフォルトの名無しさん:2009/04/16(木) 04:52:17
Ruby厨うぜ

790 :デフォルトの名無しさん:2009/04/16(木) 14:55:27
誰か教えてください。

httplib2でヤフーにログインしようとしてみたら
10054のエラーが帰ってきました。
どうやったらログインできるのでしょう。

httplib2のパッチを当ててwikiのサンプルでやってみました。

791 :デフォルトの名無しさん:2009/04/16(木) 17:55:19
うちではもんだいなかったよ

792 :デフォルトの名無しさん:2009/04/16(木) 21:43:44
http://journal.mycom.co.jp/series/webtool/068/index.html
http://gihyo.jp/dev/serial/01/ruby/0007
http://itpro.nikkeibp.co.jp/article/NEWS/20090408/327984/

http://itpro.nikkeibp.co.jp/article/NEWS/20090408/327984/
http://blog.goo.ne.jp/itchy1976/e/a1fc969d1f0251836bfe2fb41f3f6ff6

http://sourceforge.jp/forum/forum.php?forum_id=18188
http://d.hatena.ne.jp/conceal-rs/20090416/1239861372
http://d.hatena.ne.jp/kitokitoki/20090414/1239713438

特集と自治体と免許, そしてDXと地場産業
そして新し物好きはメンテに興味はなく
次のステップ そんな春うらら @ 2009年度

793 :デフォルトの名無しさん:2009/04/18(土) 02:47:40



>>790


出来たよ



794 :デフォルトの名無しさん:2009/04/18(土) 16:36:52
>>793
な〜ぜ〜だ〜

795 :デフォルトの名無しさん:2009/04/18(土) 18:07:07
class MyTask:
 def calc(self):

みたいなのが既に存在していて、calcの部分に結構時間がかかります。
この計算は条件を変えて何十個も走らせたいので、threadを分けようと考えています。
ただし現在使っているPCが4コアなので、
最大で3コアまでしかこの計算に占有させたくありません。

1つのcalcが実行し終わると最大3 threadを保ちつつ、新たなcalcを走らせたいのですが、
何か良い方法、標準的な方法はあるでしょうか。

class MyTaskは、自作のものではなく、中身の変更はできません。

796 :デフォルトの名無しさん:2009/04/18(土) 19:18:02
multiprocessing

797 :デフォルトの名無しさん:2009/04/18(土) 20:59:23
>>795
Pythonはマルチスレッドにする方法自体はあるが、やっても一つのコアしか使わないので
処理を分散したければマルチプロセス化してください

798 :デフォルトの名無しさん:2009/04/18(土) 21:03:45
>>795
一回の時間がかかるんだよな?
なら普通に三つ実行して、終了待ちして一つ終了するたびに次のを実行すればいいだけじゃない?

799 :デフォルトの名無しさん:2009/04/18(土) 21:08:36
>>797
この大嘘つきが

800 :デフォルトの名無しさん:2009/04/19(日) 00:11:28
戸田恵梨香

801 :デフォルトの名無しさん:2009/04/19(日) 14:07:06
>>799
うわ

802 :デフォルトの名無しさん:2009/04/22(水) 11:54:36
def X(x, y, z):
 print x, y, z

t = (1, 2)
X(*t, 10)

見たいな感じで、タプルを分解したものにさらに引数を追加して渡したいのですが
これは通りません
どういう方法がありますか?

803 :デフォルトの名無しさん:2009/04/22(水) 12:03:30
t = (1, 2)
x, y = t
X(x, y, 10)

804 :デフォルトの名無しさん:2009/04/22(水) 13:17:47
>>802

def X(x, y, z):
    print x, y, z

t = (1, 2)
X(z=10, *t)

805 :デフォルトの名無しさん:2009/04/22(水) 15:11:18
>>803
たしかにそれで通りますね、どうもありがとう

>>804
ありがとう
こうすればよかったのか

806 :デフォルトの名無しさん:2009/04/22(水) 15:49:45
pygameの質問です
星の形をした画像の当たり判定をきちっとやりたいときはどうすればいいんでしょうか?

807 :デフォルトの名無しさん:2009/04/22(水) 16:28:23
星の形のポリゴンとの衝突判定をすればいいだろ
もちろん、最初に矩形で衝突判定をしてからな

808 :デフォルトの名無しさん:2009/04/22(水) 20:01:34
datetime オブジェクトとエポック秒に直すにはどうしたらいいですか?

809 :デフォルトの名無しさん:2009/04/22(水) 20:02:23
datetime オブジェクトをエポック秒に直すにはどうしたらいいですか?

でしたすいmせん

810 :デフォルトの名無しさん:2009/04/22(水) 20:59:56
time.mktime(datetime.datetime.now().timetuple())

811 :デフォルトの名無しさん:2009/04/22(水) 22:04:01
>>807
聞いてばかりですいません
ポリゴンとの衝突判定というのはどうすればいいんでしょうか?

812 :デフォルトの名無しさん:2009/04/23(木) 01:02:34
>>811
だいじなのはおっぱいだよ
ttp://zenryokuhp.com/poser-oboegaki/BW_Upload/20061104_070.jpg


813 :デフォルトの名無しさん:2009/04/23(木) 05:10:04
エポック秒をdatetimeオブジェクトに直すにはどうしたらいいですか?

814 :デフォルトの名無しさん:2009/04/23(木) 05:13:42
>>802-805
X(*(t+(10,)))

815 :デフォルトの名無しさん:2009/04/23(木) 05:14:53
>>813
datetime.datetime(time.localtime(0))

816 :デフォルトの名無しさん:2009/04/23(木) 09:49:03
>>811
何かスレ違いじゃないか?
アルゴリズムの話であって、Python関係ないし。別スレに誘導してくれれば
そこで答えても良いが・・・

そもそも星の画像はアルファ抜きしてあって、それと何か別のBBoxを衝突判定
させたいってことか?完全に2Dでの話なら、ポリゴン使わなくて良くて、
星の外形を成す線分とBBoxの交差判定をすればいけるだろ。
星の内部にすっぽり収まる場合などの判定は自明だし。
というか、画像と何の衝突判定なのか分からんと、適切なことが言えない。

817 :デフォルトの名無しさん:2009/04/23(木) 12:18:03
>>816
説明不足でした、すいません
2Dでの話です
画像同士の衝突判定で四角い絵なら問題ないんですが
丸や星型だとどうすればいいのか分からなかったので質問しました
多分知りたいのは「星の外形を成す線分とBBoxの交差判定」というやつだと思います
よろしくお願いします

818 :デフォルトの名無しさん:2009/04/23(木) 13:01:51
星形はともかく、丸が重なってるかどうかなら高校数学レベルでわかるだろ。
おそらく、回答にあるキーワードを検索することすらしてないようだし、
もっと基本を自分で調べないと答えてもらっても理解出来ないとおもう。

819 :デフォルトの名無しさん:2009/04/23(木) 13:28:22
図形で衝突判定するより,ビットマップで衝突判定すべき。
スプライトのマスクがあるだろ,それを使ってドットの重なりがあるかどうか調べるんだ。

820 :デフォルトの名無しさん:2009/04/23(木) 13:34:46
画像が小さいならピクセルレベルでやったほうが早いね
3Dばかりやってるから、ついついベクトルで考えてしまうんだよな

821 :デフォルトの名無しさん:2009/04/23(木) 14:56:46
Pythonやるのに高校の数学の知識がいるの?
俺、中卒なんだけど...

822 :デフォルトの名無しさん:2009/04/23(木) 15:44:17
hello worldなら小学生でもできる


823 :デフォルトの名無しさん:2009/04/23(木) 15:47:03
高校の数学のプログラムを作るのなら、高校の数学がいる。

824 :デフォルトの名無しさん:2009/04/23(木) 16:26:36
物理的な位置や動きを表現するなら高校数学レベルは必要になるんじゃないの?角度とか。

825 :デフォルトの名無しさん:2009/04/23(木) 16:41:16
import cookielib, urllib, urllib2
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookielib.CookieJar()))
php_url = 'http://polls.dailynews.yahoo.co.jp/quiz/quizresults.php'
params = {'poll_id' : '3717',
     'typeFlag' : '1',
     'user_choice' : '4',
     '.add' : u'回答する'.encode('euc-jp')}

params = urllib.urlencode(params)
fd = opener.open(php_url, params) # urllib.urlencode()がいらないのが特長
import re
for line in fd:
 line = line.decode(ENC, 'replace')
 rob = re.search(ur'(すでに[^<]*)', line)
 if rob is not None:
  print rob.group(1).encode('cp932')

というプログラムがあるんですが、二回起動するとクッキーが残ってるようですでに投稿していますと
いわれてしまいます
Cookieの情報はどこかに保存されているのでしょうか?
また、スクリプト上でクッキーを削除して再投稿できるようにするにはどうしたらいいでしょうか

826 :デフォルトの名無しさん:2009/04/24(金) 02:59:33
そうなのか、数学一番苦手だ
中2レベルで止まってるや

827 :816:2009/04/24(金) 03:28:52
>>817
なんだ、星型のマスクを作ってpygame.sprite.collide_mask使えばいいんじゃん。
ただし、画像が大きいと遅すぎて実用にならんだろうから、その際には線分を
使った判定をすべき。やり方は、BBoxと交差するような線分を場合分けするだけ。

線分の数が非常に多い場合には区間木を使えば効率的に検出できるが、
今回の用途にはやりすぎ。

828 :デフォルトの名無しさん:2009/04/24(金) 23:49:03
Python初めて2日なんだが、
Google App EngineのPython版とJava版を比較するというミッションを与えられてしまい、
案の定俺の環境では両方ともSDKが動いてくれない手詰まり状態なんだ。。。
誰か助けてくれ。
とりあえずPythonの方のログ
Traceback (most recent call last):
File "C:\Program Files\Google\google_appengine\dev_appserver.py", line 50, in <module>
execfile(script_path, globals())
File "C:\Program Files\Google\google_appengine\google/appengine/tools/dev_appserver_main.py", line 351, in <module>
sys.exit(main(sys.argv))
File "C:\Program Files\Google\google_appengine\google/appengine/tools/dev_appserver_main.py", line 330, in main
require_indexes=require_indexes)
File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 2645, in CreateServer
return BaseHTTPServer.HTTPServer((serve_address, port), handler_class)
File "C:\Python25\lib\SocketServer.py", line 330, in __init__
self.server_bind()
File "C:\Python25\lib\BaseHTTPServer.py", line 101, in server_bind
SocketServer.TCPServer.server_bind(self)
File "C:\Python25\lib\SocketServer.py", line 341, in server_bind
self.socket.bind(self.server_address)
File "<string>", line 1, in bind
socket.gaierror: (11001, 'getaddrinfo failed')

環境は
Vista Ulitimate 34bit/Python2.5.5/GAE SDK1.1
インストール時のオプションは全部デフォのまま。特にライブラリ等は追加していない。
見た感じソケット関係のエラーで、Java側も同じようなエラーが出ているんでVista起因のエラーじゃないかと思ってる。
ちなみにネットワークセキュリティ関係は全部切って試してる。サイバーノーガード。
Vistaも使い始めて2日目なんで正直良く分からん。
自宅のXPじゃ一発で動いたんで何かやらかしてる臭いのよね。
とりあえず曖昧ですまんがみんな、オラに力を!


829 :デフォルトの名無しさん:2009/04/25(土) 00:30:48
新人教育か何か?
だったら自力でがんばれよ。

と言いたいところだが
vistaのbad knowhowっぽいので助言すると、
たぶん、右クリック→管理者権限で実行。

830 :デフォルトの名無しさん:2009/04/25(土) 00:44:48
>>829
thx

UAC?とかいうのだと思うんだが、
それはもう切ったんだわ
んで>>828のような現象が出てる感じ


あと新人教育ないぞw

831 :デフォルトの名無しさん:2009/04/25(土) 00:52:30
あと新人教育じゃないぞw

832 :デフォルトの名無しさん:2009/04/25(土) 01:29:10
11001 はアドレス解決のエラーだからDNSがうまく引けてないだけのように思える

確認するなら、
他のアプリ(ブラウザとか)が外部ネットワークににアクセスできるか、とか、
参照したいアドレスを全部 hosts ファイルに書いて、挙動が変わるかとか、
ネットワーク設定の確認とか、そのあたりかな
ネットワークスレにいったほうがよいかも

833 :デフォルトの名無しさん:2009/04/25(土) 07:24:45
了解

834 :デフォルトの名無しさん:2009/04/25(土) 12:03:32
とりあえずブラウザで同じアドレスにアクセスできるかどうかって所からじゃない?

835 :デフォルトの名無しさん:2009/04/25(土) 19:22:26
ランチャー作りたいので、D&Dとトレイアイコンが使えて、あとホットキーとかマウスの位置で表示させたりしたいんだけど、
対応してるGUIライブラリはどれ?

836 :デフォルトの名無しさん:2009/04/25(土) 20:04:18
qt

837 :デフォルトの名無しさん:2009/04/25(土) 21:08:06
さっきインストールしたのですが、ハローワールドでつまづきました。
シンタックスエラーっていわれますが何がおかしいのか分からないです。

#!/usr/bin/python
print 'Hello World'

838 :835:2009/04/25(土) 21:17:57
>>836
試しに入れてみます、にしても日本語サイトは情報が古いせいかリンク切れて所が多かった。

839 :デフォルトの名無しさん:2009/04/25(土) 21:22:33
>>837
エスパーするとPython3.0を入れたんじゃないか

print('Hello world')
のようにしてみてくれ

840 :837:2009/04/25(土) 21:29:09
動きました、一番新しいのをインストールしたけど、まさかそんな落とし穴があるとは思いませんでした、どうもありがとう

841 :デフォルトの名無しさん:2009/04/25(土) 23:07:55
最新のlinuxディストリだと3がインストールされてたりするんだろーか

842 :デフォルトの名無しさん:2009/04/25(土) 23:53:40
Ubuntu 9.04が出たばっかりだから見てみるといいのでは

843 :デフォルトの名無しさん:2009/04/26(日) 00:09:14
>>841,842
パッケージ検索してきたら9.04には2.6.2が入っているみたい。ちなみにDebian sidにはきてないぽい。
3は互換性ないし当分先だろう。システム管理アプリにPython使ってるディストリも多いしな

844 :デフォルトの名無しさん:2009/04/26(日) 01:38:47
この際、javaみたいにpython3までを名称にしちゃえばいいじゃない。
python3 5.0みたいな。

845 :デフォルトの名無しさん:2009/04/26(日) 06:45:01
Java のネーミングとかバージョニングは詳しくない側からすると訳わからんので勘弁

846 :デフォルトの名無しさん:2009/04/26(日) 08:00:10
mp3のタグをいじるライブラリにeyeD3ってあるよね。
じゃ、aac/m4aのタグをいじるライブラリってあるのかな?
知っていたら教えてください

847 :817:2009/04/26(日) 14:15:11
皆さんレスありがとうございます
あれから色々検索してみたんですが
pygameの公式サイトぐらいしか引っかからなくて
マスクの作り方とpygame.sprite.collide_maskの使い方が良く分かりません
教えてもらえないでしょうか?
何度も聞いてすいません、よろしくおねがいします

848 :デフォルトの名無しさん:2009/04/26(日) 14:23:32
【pygame】pythonでゲーム製作【ぱいがめ】
http://pc11.2ch.net/test/read.cgi/gamedev/1126605105/

849 :デフォルトの名無しさん:2009/04/29(水) 20:34:54
shift-jisで保存されているfilenameの文字数をカウントしたいと思っています。
下のコードではどうしても行末の改行や文中の空白が削除されないのですが、
よい方法はありますか?

for filename in filenames:
  words = open(filename).read().strip()
  words = unicode(words, 'shift-jis')
  print filename + ": " + str(len(words)) + u"文字"

850 :デフォルトの名無しさん:2009/04/29(水) 20:47:51
公式リファレンスを読んだところ、strip()は行毎に行われていると分かりました。スレ汚しスマソ・・

851 :デフォルトの名無しさん:2009/04/30(木) 11:18:23
stripとstriplines

852 :デフォルトの名無しさん:2009/04/30(木) 18:16:35
fnamtchのfnは、何の略なんでしょうか?

853 :デフォルトの名無しさん:2009/04/30(木) 18:19:32
typoしてしまいました。すみません。
○ fnmatch
× fnamtch

854 :デフォルトの名無しさん:2009/04/30(木) 18:19:43
fnmatchのことなら、file name matchではないでしょうか

855 :デフォルトの名無しさん:2009/04/30(木) 18:33:40
>>854
凄く納得しました。
回答ありがとうございました。

856 :デフォルトの名無しさん:2009/05/01(金) 01:16:14
だれか
>>825
に答えてくれませんか?

857 :デフォルトの名無しさん:2009/05/01(金) 02:10:19
python3000でurlretrieveを使って
http://www3.interscience.wiley.com/journal/119816726/grouphome/home.htm
をDLしたいのですが
Session Cookie Error

An error has occured because we were unable to send a cookie to your web browser.
というエラーがでます。どう対処すればいいのか教えてください

858 :デフォルトの名無しさん:2009/05/01(金) 03:26:50
>>856
サーバー側でクライアント情報をきちんと管理していて、
それに沿った通信をやらないと弾くようになっているのでは?

859 :857:2009/05/01(金) 04:06:46
自己解決できました。


860 :デフォルトの名無しさん:2009/05/01(金) 15:37:15
またなりすまし厨が湧いてるな。
こんなにスレに張り付いてたら
pythonにも相当詳しくなったんじゃないか?www

861 :デフォルトの名無しさん:2009/05/01(金) 15:48:59
>>857
Python 2.6 を使う。
py3kはまだ初心者お断り。

862 :デフォルトの名無しさん:2009/05/01(金) 19:02:35
>>858
一回目は投票できるんです
ただ二回目以降、スクリプトをもっかい起動しても再投稿ですと言われます

ブラウザをつかってクッキー削除さえすればIP同じでも再投票ができるのはわかっています
yahoo投票を例に出しましたが、他のクッキーでも似た感じなんですよ
クッキーの削除ってどうすればできるんですか?


863 :デフォルトの名無しさん:2009/05/01(金) 19:05:10
>>862
>>825でわざわざCookieJarを開いてるのをやめればいいんじゃね?

864 :デフォルトの名無しさん:2009/05/01(金) 19:11:34
クッキーないと投稿できないんでしょ
しかし、そんなツールは自力で作れ!

865 :863:2009/05/01(金) 19:28:39
>>864
そんなツールは自力で作れには激しく同意。
>>825のツールってCookieJarつくっていきなりpollのrequestしてる
ようにしかみえない。それで1回はうまくいくなら、Cookieは要らないはず。
あと、CookieJarは何も保存してないから、本当にスクリプトをもう一度起動
したらCookieは残らないはず。
つまり、以下の3つのうち一つ以上に該当する。
1. >>825 は大事な部分が省略されている
2. Cookie削除したら投票できるというのが嘘
3. 「スクリプトをもっかい起動」といいつつ、ループで回しているだけ

そんなしょうもないツールについて他人に聴く and しかも必要な情報を
提示していない>>825は逝ってよし。

866 :デフォルトの名無しさん:2009/05/01(金) 19:50:43
HTTPのリクエストに従って勝手に作って勝手に保存してくれたと思うよ
場所はLWPCookieJarとかならスクリプトの位置にわかりやすいファイルができたと思うが
普通のCookieJarはしらね!コード読めば?

867 :デフォルトの名無しさん:2009/05/01(金) 20:42:55
基本的に、ソースベタ貼りで動かないのでどうにかしてくださいってのは宿題だから答えなくてよろしい。

868 :デフォルトの名無しさん:2009/05/01(金) 21:06:49
嫌な宿題だなw
そういえば宿題スレもあったな

Python の宿題ここで答えます Part 1
http://pc12.2ch.net/test/read.cgi/tech/1153585095/

869 :デフォルトの名無しさん:2009/05/01(金) 22:53:09
pythonの宿題なんてどこで出るんだ!?

870 :デフォルトの名無しさん:2009/05/01(金) 23:00:15
会社で

871 :デフォルトの名無しさん:2009/05/02(土) 14:51:15
自宅で

872 :デフォルトの名無しさん:2009/05/02(土) 22:44:15
>>865
ありがとうございます
そのあたりと検討してみようと思います

>>866
とりあえずLPWCookieJar試してみます

>>867
Cookieの保存位置どこ?って聞けばよかったの?そしたらうまくいってないソース貼れって言うんでしょ?w

873 :デフォルトの名無しさん:2009/05/02(土) 22:47:20
>>872
死ねよ

874 :デフォルトの名無しさん:2009/05/02(土) 23:53:22
>>872
死ねっていうかお前の母さんはこんなキチガイを産んだクソ

875 :デフォルトの名無しさん:2009/05/02(土) 23:58:43
ソース貼れって言われるのは、質問の説明からしてイミフな場合だけな。
言われてる時点でうんこ。

876 :デフォルトの名無しさん:2009/05/03(日) 00:14:30
鯖に迷惑かける連投スクリプトなんざ人に聞いて作るもんじゃないわな

877 :デフォルトの名無しさん:2009/05/03(日) 00:30:26
そういう用途ならレンタルの鯖より自前の鯖でやったほうが
保守も楽だし誰にも文句を言われずに済むんだが。

878 :デフォルトの名無しさん:2009/05/03(日) 00:46:03
自己解決しました

879 :デフォルトの名無しさん:2009/05/03(日) 01:33:41
>>869
自分への課題は自分への宿題だと、私はそう思います!

880 :デフォルトの名無しさん:2009/05/03(日) 14:07:13
自分で書いたモジュールを別ディレクトリに置き、importしたいのですが
どれが正しい方法かよく分かりません。

myproj/myapp.py <- import mylib.mymodule
myproj/mylib/__init__.py <- 空ファイル
myproj/mylib/mymodule.py <- 自作モジュール

というようにファイルを配置していますが、myapp.pyでimport mylib.mymodule
をしてもImportError: No module named mymoduleというエラーが出ます。
importする前にsys.path.append(os.path.join(os.getcwd(), 'mylib'))
とすれば問題無いのですが、これは強引な方法な気がします。
もしスマートな方法があったら教えてください。
Linux上でPython 2.5.4を使っています。

881 :デフォルトの名無しさん:2009/05/03(日) 15:16:12
>>872
CookieJar は、その CookieJar の中だけに Cookie を持っていて
どこにも保存しないよ。
本当にPythonスクリプトを再起動しているんであれば、Cookieはクリア
されているはず。

882 :デフォルトの名無しさん:2009/05/03(日) 18:28:30
内容的にループさせてるのは確実でしょうな

883 :デフォルトの名無しさん:2009/05/03(日) 18:35:09
>>882
してないっての、うpしたので全部だぼけ

884 :デフォルトの名無しさん:2009/05/03(日) 18:44:56
単に一票ずついれてもらうために晒したに1000ペリカ

885 :デフォルトの名無しさん:2009/05/04(月) 04:41:43
>>880
いけるはずだと試してみたが、やっぱり普通にいけたよ
windowsでしか試してないけどバージョンは2.5.4
site-packagesにでもmyprojのパス書いた.pthファイルおいておけばいけるはずだが
スマートではないか・・・

886 :デフォルトの名無しさん:2009/05/04(月) 05:09:20
>>880
普通にいけたよ

887 :デフォルトの名無しさん:2009/05/04(月) 07:54:14
>>880
どこかのパス内にmylibっていう同名のファイルもしくはディレクトリがあるのかも。

888 :880:2009/05/04(月) 08:27:29
>>885>>886>>887
わざわざ確認して頂いてありがとうございます。

もう一度コードを見直したところ、当初myproj/mymodule.pyで定義してあった
クラスのインスタンスをpickleでシリアライズしたファイルを
myproj/mylib/mymodule.pyに移動した後にも読み出そうとしていたのが問題でした。
再度シリアライズし直して問題なく動作するようになりました。

大変お騒がせして申し訳ありませんでした。

889 :デフォルトの名無しさん:2009/05/04(月) 12:05:36
なんで質問者って肝心なことを隠すんだろw

890 :デフォルトの名無しさん:2009/05/04(月) 14:20:06
>>889
隠したわけではないです。気付かなかっただけです。

891 :デフォルトの名無しさん:2009/05/04(月) 16:13:41
大抵の質問は本人が問題無いと思っている場所に問題がある

892 :デフォルトの名無しさん:2009/05/04(月) 16:46:24
だからといって全文あげると、宿題市ねを言われる

893 :デフォルトの名無しさん:2009/05/04(月) 16:50:54
>>892
てめぇまだいたのかよいい加減消えろカス

894 :デフォルトの名無しさん:2009/05/04(月) 17:51:02
荒らし乙

895 :デフォルトの名無しさん:2009/05/04(月) 20:10:15
初心者スレにまでPython叩きに来る信者って
惨めだな

896 :デフォルトの名無しさん:2009/05/04(月) 20:35:12
スレチかもしれんが、Django日本HP死んでる?

897 :デフォルトの名無しさん:2009/05/04(月) 21:01:45
テンポってるな

898 :デフォルトの名無しさん:2009/05/04(月) 21:37:02
くそー、GW中に個人開発進めるためにJPドキュメント見たかったんだが。。。

根性でENドキュメント読むか。。

899 :デフォルトの名無しさん:2009/05/04(月) 22:37:20
日本語解説サイト
ttp://ymasuda.jp/python/django/
ttp://michilu.com/django/doc-ja/index/
ttp://djangoproject.jp/doc/ja/1.0/

900 :デフォルトの名無しさん:2009/05/04(月) 22:49:12
>>892前後の流れで壮大に吹いたwww


901 :デフォルトの名無しさん:2009/05/05(火) 01:27:49
content_type = "%s; charset=%s" % (settings.DEFAULT_CONTENT_TYPE, settings.DEFAULT_CHARSET)

Djangoでこんなコードを見かけたんだが、文字列とカッコの間の%ってなんだろ?


902 :デフォルトの名無しさん:2009/05/05(火) 01:31:00
Python フォーマット文字列 でぐぐるんだ

903 :デフォルトの名無しさん:2009/05/05(火) 03:33:09
>>902
ああ、書式関数と一緒だったのか。サンクス。



ところで都内に住まう諸兄、都内近郊で勉強会とかはあるのかい?

PythonさんはスマートでLLの中では一番賢いと思うんだが、
なかなか社内で理解されなんだ。
せめて同士が近くにいれば安心なんだが。



904 :デフォルトの名無しさん:2009/05/05(火) 03:34:46
死ね

905 :デフォルトの名無しさん:2009/05/05(火) 03:39:32
>>903
っ「IT勉強会カレンダー」

906 :デフォルトの名無しさん:2009/05/05(火) 03:42:46
まぁこんなやつがPythonいいよとかいっててもなぁw

907 :デフォルトの名無しさん:2009/05/05(火) 03:53:05
色々と勉強不足だわな

10年ROMってくるわ

908 :デフォルトの名無しさん:2009/05/05(火) 03:59:50
落ち着け10年後には君は死んでる恐れがある!

909 :デフォルトの名無しさん:2009/05/05(火) 14:01:35

布教活動の鉄則というか王道

社内で理解されたければ
社員とコミュニケーションとって信頼関係を築け

910 :デフォルトの名無しさん:2009/05/05(火) 14:08:57
まずは温泉ですねわかります

911 :デフォルトの名無しさん:2009/05/05(火) 14:13:26
お互いのPythonでガチンコ勝負ですねアッー!

912 :デフォルトの名無しさん:2009/05/05(火) 14:46:25
以下電池挿入およびダンジョーネタ禁止

913 :デフォルトの名無しさん:2009/05/05(火) 14:47:22
ドジャンゴの人達はなんであんなに頻繁に合宿をしているの?
友達がいないの?

914 :デフォルトの名無しさん:2009/05/05(火) 15:03:36
ドジャンゴいうなw

915 :デフォルトの名無しさん:2009/05/05(火) 15:28:30
Django云々でなくPython使いにはゲイが多いよ

あとPython使いの女はカワイイのが多い
これ豆知識な

916 :デフォルトの名無しさん:2009/05/05(火) 15:30:18
などと訳のわからない事を供述しており・・・

917 :デフォルトの名無しさん:2009/05/05(火) 15:39:16
合宿行くとズリ合いばっかしてるもんな
汗臭いしイカ臭いしホモにはたまらない空間だよ

918 :デフォルトの名無しさん:2009/05/05(火) 22:13:08
>>917
kwsk

919 :デフォルトの名無しさん:2009/05/05(火) 23:38:18
30個のコマから1〜3個づつ取っていくニムゲーム(最後に取らされた方が負け)で
先手の場合に勝つための取り方と
後手の場合に勝つための取り方を
pythonで調べるプログラムを書いてください

920 :デフォルトの名無しさん:2009/05/06(水) 01:22:56
GWの宿題乙

921 :デフォルトの名無しさん:2009/05/06(水) 02:25:39
先手がまず1個取って、あとは4-(後手の取った数)だけ取るようにすれば先手必勝かな

922 :デフォルトの名無しさん:2009/05/06(水) 03:37:11
丸投げは>>868の方がいいと思うな

923 :デフォルトの名無しさん:2009/05/06(水) 04:20:34
ニムゲームってこれか?
ttp://www.ccad.sist.chukyo-u.ac.jp/~mito/syllabi/dscrtMath2/nim/index.htm

924 :デフォルトの名無しさん:2009/05/06(水) 17:22:32
大航海時代スレから来ました

925 :デフォルトの名無しさん:2009/05/06(水) 19:29:54
質問

日本語メール受け取ってヘッダ解析してFromアトリビュートをunicodeにデコードしたいんだが、
Pythonだとどうやる?

926 :デフォルトの名無しさん:2009/05/06(水) 19:58:50
http://pc12.2ch.net/test/read.cgi/tech/1153585095/

927 :デフォルトの名無しさん:2009/05/06(水) 20:06:24
>>926
宿題じゃねーから


928 :デフォルトの名無しさん:2009/05/07(木) 19:36:07
>>919
3人にしたらどうなるんだろ?

929 :デフォルトの名無しさん:2009/05/07(木) 23:25:30
>>925
import poplib, email
server = "mail.xxxx.co.jp"
user_id = "xxxx"
user_pass = "xxxx"
p = poplib.POP3(server)
p.user(user_id)
p.pass_(user_pass)
mail_list = p.list()
(no, msg_size) = mail_list[1][1].split(" ")
mail_data = p.retr(no)
msg = email.message_from_string("\n".join(mail_data[1]))
print unicode(msg["From"])

930 :sage:2009/05/08(金) 00:53:50
pythonのCGIでログインページを作りたいのですが
サンプル等ないですか?

931 :デフォルトの名無しさん:2009/05/08(金) 01:11:16
ありますよ

932 :デフォルトの名無しさん:2009/05/08(金) 01:13:31
>>930
http://msdn.microsoft.com/ja-jp/library/bb676639.aspx

933 :sage:2009/05/08(金) 02:00:25
ありがとうございます!
これ、どこからダウンロードするんですか?

934 :デフォルトの名無しさん:2009/05/08(金) 02:36:58
>>930
http://pc11.2ch.net/test/read.cgi/php/1163513344

935 :デフォルトの名無しさん:2009/05/08(金) 02:41:47
openSUSE 10.3 Linux プラットフォームで、YaST
ツールを使用して apache2、python、python-xml、
および python-crypto パッケージをインストール
します。これらのパッケージの一部はディストリ
ビューション DVD に収録されていない可能性が
ありますが、openSUSE ダウンロード サイト
(http://download.opensuse.org/distribution/10.2/repo/oss/suse/i586/)
から入手することができます。

Novellと提携を結んでるだけの事はあるな

936 :デフォルトの名無しさん:2009/05/09(土) 16:19:33
C/C++よりも高級な言語を学びたいと思いpythonを考えています。
C/C++の十分な知識を仮定していいので、
そんな私に向いている(=オススメな)最初の解説サイトはありませんか?

937 :デフォルトの名無しさん:2009/05/09(土) 16:31:05
>>936
死ね

938 :デフォルトの名無しさん:2009/05/09(土) 16:40:08
>>936
それなら標準ドキュメントで十分だろう
IDLEとかで色々試してみるといいよ

939 :デフォルトの名無しさん:2009/05/09(土) 16:42:34
>>936
とりあえず標準のドキュメントのチュートリアル。

940 :936:2009/05/09(土) 16:52:40
>>938-939
ありがとうございます。
それで行ってみます。

941 :デフォルトの名無しさん:2009/05/09(土) 19:43:27
3.0.1の質問だけどいい?

urllib.request.FancyURLopenerを使ってBasic認証が必要なページをopenしようとしてるんだが、
シェルからユーザー名とパスワードを入力した途端TypeErrorで落っこちる・・・
urllib/request.py内でbytesが必要なbase64.b64encodeにstrを渡して怒られてるらしい事は分かるんだが、
以下のコードに何か不備あるんでしょうか。

import urllib.request

opener = urllib.request.FancyURLopener()
opener.open('http://認証したいURL')

942 :デフォルトの名無しさん:2009/05/09(土) 20:18:52
>>941
悪いのは3.0.1だから2.6.1 を使うといいよ。
2.6.2は2.7/3.1から色々backportしたついでにエンバグしてるから
今は2.5.4か2.6.1がお勧め。

943 :デフォルトの名無しさん:2009/05/10(日) 01:22:05
>>936
ソース嫁

944 :デフォルトの名無しさん:2009/05/10(日) 02:17:45
>>942
原因はライブラリ側ってことでいいのかな?
うーん、今回はおとなしく2.6を使う方法で解決することに決めます。ありがと。

python.orgのIssue Trackerを少しあたってみたけど、既知の問題ってわけじゃなさそうだね。
最も開発版ではとっくに修正済みだとかそんなオチかもしれんが・・・

945 :デフォルトの名無しさん:2009/05/10(日) 11:18:06
環境:Win2kとPython 2.6.2とsqlite3で質問です。
データベースとpythonの勉強のために郵便番号のデータを使って実験しています。
sqliteにデータを格納した後、select文でいくつかしかヒットしなくて困っています。
原因がわかる方いらっしゃいますでしょうか?

1.データは、ここにある全国一括データです。
http://www.post.japanpost.jp/zipcode/dl/oogaki.html

2.そのデータを必要な項目だけ切り出し、pythonにて別ファイルに保存。
以下ソース。
# -*- coding: shift-jis -*-

# CSVファイルの読み込み

import csv

readcsvfile = csv.reader(file("E:\download\ken_all\ken_all.csv", "r"))
writecsvfile = csv.writer(file("E:\download\ken_all\cut.txt", "w"), quoting=csv.QUOTE_NONNUMERIC)

for row in readcsvfile:
writecsvfile.writerow(row[2:9])


続く。

946 :デフォルトの名無しさん:2009/05/10(日) 11:19:40
続き。

3.別ファイルに保存したデータをsqliteへ保存。
以下ソース。
# coding:shift_jis

import sqlite3
import csv

readcsvfile = csv.reader(file("E:\download\ken_all\cut.txt", "r"))

db=sqlite3.connect('E:\download\ken_all\yuubinNo.db') # データベースに接続
db.text_factory = str
db.execute('create table yuubinNo(keta7, kana_ken, kana_chouson, \
kana_chouiki, kanji_ken, kanji_chouson, kanji_chouiki)') # テーブルを作成
for row in readcsvfile:
db.execute('insert into yuubinNo(keta7, kana_ken, kana_chouson, kana_chouiki, \
kanji_ken, kanji_chouson, kanji_chouiki) values (?,?,?,?,?,?,?)', \
( row[ 0 ], row[ 1 ], row[ 2 ], row[ 3 ], row[ 4 ], row[ 5 ], row[ 6 ]))
# テーブルにデータを挿入。

db.commit() # データの保存
db.close() # データベースの切断

以上、データの保存までできました。
以下、正しくデータが検索できるか実験。
続く。

947 :デフォルトの名無しさん:2009/05/10(日) 11:26:00
続き。
4.検索してみる。
以下ソース。

# coding:shift_jis

import sqlite3

db=sqlite3.connect('E:\download\ken_all\yuubinNo.db') # データベースに接続
db.text_factory = str

# データの検索
#1. cur = db.execute('SELECT * FROM yuubinNo WHERE kanji_chouiki like "%井草%"')
#2. cur = db.execute('SELECT * FROM yuubinNo WHERE keta7 like "167%"')
cur = db.execute('SELECT * FROM yuubinNo WHERE kana_chouiki like "%イグサ%"')
# データの出力
for row in cur:
print '%s %s %s %s %s %s %s' % row # 1行のデータ構造はタプル
db.close()

ここで、問題が出たのですが、データ検索の際に#1.では2件しかヒットしません。
本当であれば、東京都杉並区だけでも3件ヒットするはずです。他県も含めると
さらに数件ヒットするはずなのですが、ヒットしません。
原因がわかる方いらっしゃいますでしょうか?

948 :デフォルトの名無しさん:2009/05/10(日) 12:34:56
レコードによってコラムが不足してたりして
別のコラムに"井草"が格納されてたり
格納に失敗していたりするんじゃないの?

949 :デフォルトの名無しさん:2009/05/10(日) 12:54:39
py2exeみたいにmac用の実行ファイル作れるのってある?

950 :デフォルトの名無しさん:2009/05/10(日) 12:59:32
>>945-947
SJISは止めとけ

951 :デフォルトの名無しさん:2009/05/10(日) 13:14:48
>>948
>>950
どうも。
SQLiteのデータの中身を見られるGUIソフトで中を覗いてみたら、文字コードの関係でしょうか?
正常に見ることができませんでした。
SQLiteの格納時に文字コードを正しいものにしないといけないようですね。
UTF-8が良いのかな?
もうちょっと調べてみます。
ちょっとはヒットするんで、データがおかしいとは気づきませんでした。

952 :945-947, 951:2009/05/10(日) 14:08:16
やはり、文字コードの問題でした。
SQLiteに格納されたデータが、Shift-JISだったためで、UTF-8に格納し直したら、
正常に検索できるようになりました。
python, SQLite, は、UTF-8が良いようですね。
解決しました。ありがとうございました。

953 :デフォルトの名無しさん:2009/05/10(日) 14:29:18
もう一つ質問良いでしょうか?
nkfでShift-JISからUTF-8に変換したら、半角カナが全角カナに自動的に変換されたのですが、
UTF-8を使う場合、今後は半角カナを使用しない方が良いのでしょうか?
Pythonを使う上で、UTF-8の扱い方を知っておいた方がよいと思っての質問です。

954 :デフォルトの名無しさん:2009/05/10(日) 14:35:45
>>953
変換する時に-xオプションつけろ

955 :デフォルトの名無しさん:2009/05/10(日) 14:45:37
そのオプションがあるのは、調べていてわかりました。
なおかつ、UTF-8には、半角カナもサポートされているのはわかったのですが、
作法とかあるのかな?と思ったもので。
というか、使っている人の判断で良いんですかね?

文字コードって初心者には、悩ましい。なんかたくさんあるし。
プログラムが間違って動かないのか、文字コードが原因で動かないのか、
その判断さえつきづらい。

956 :デフォルトの名無しさん:2009/05/10(日) 14:50:55
>>955
Unicodeで半角カナは互換文字だから、互換正規化で全角に変換されるだけ。

957 :デフォルトの名無しさん:2009/05/10(日) 15:12:10
なるほど。過去との互換を保つために、取り入れられているので、
今後は、積極的に使わない方が、良いってことですね。
どうもです。

958 :デフォルトの名無しさん:2009/05/11(月) 03:09:46
>文字コードって初心者には、悩ましい。なんかたくさんあるし。

毛唐はもっと悩んでるだろな
だからUTF-8が出来たんだよ
これでかなりスマートになった

959 :デフォルトの名無しさん:2009/05/11(月) 20:18:34
こんにちは。質問があります。
utcのtime.struct_timeをローカルのtime.struct_timeに変換したいのですがどうすればいいのでしょうか?
とりあえず今は以下のようにしていますがこれより良い方法があれば教えてください。
time.localtime(time.mktime(spam)+60*60*9)

960 :デフォルトの名無しさん:2009/05/11(月) 20:35:31
time.localtime(time.mktime(spam) - time.timezone)
とか?

961 :デフォルトの名無しさん:2009/05/13(水) 15:31:32
うめの季節

962 :デフォルトの名無しさん:2009/05/14(木) 22:00:32
>>178
死ね

963 :デフォルトの名無しさん:2009/05/15(金) 05:16:55
>>960
どうもありがとうございました。

964 :デフォルトの名無しさん:2009/05/15(金) 22:28:23
あかちゃん

965 :デフォルトの名無しさん:2009/05/15(金) 23:21:54
ばぶぅ

966 :デフォルトの名無しさん:2009/05/18(月) 06:10:16
うほ

967 :デフォルトの名無しさん:2009/05/19(火) 21:47:52
unko

968 :デフォルトの名無しさん:2009/05/19(火) 23:07:05
>>963
>>2-3

969 :デフォルトの名無しさん:2009/05/19(火) 23:52:40
次スレの季節だけどテンプレはこれでいいのか?

970 :デフォルトの名無しさん:2009/05/20(水) 00:08:01
テンプレなどいらん

971 :デフォルトの名無しさん:2009/05/20(水) 02:00:46
import time
def fact(n):
 m = 1
 while n:
  m *= n
  n -= 1
 return m
s = time.clock()
p = fact(10000)
e = time.clock()
print(e-s)
def f1(x, y):
 if not x:
  raise
 y *= x
 return f1, (x-1, y)
s = time.clock()
func, args = f1, (10000, 1)
try:
 while True:
  func, args = func(*args)
except:
 e = time.clock()
 print(e-s)

処理時間の計り方はこれでいいんでしょうか
かなりぶれがあるんですが

972 :デフォルトの名無しさん:2009/05/20(水) 07:31:34
>>971
timeit

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

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

前スレ
くだすれPython(超初心者用) その3
http://pc12.2ch.net/test/read.cgi/tech/1232055225/

関連スレ
Pythonのお勉強 Part33
http://pc12.2ch.net/test/read.cgi/tech/1240678081/

974 :デフォルトの名無しさん:2009/05/20(水) 23:20:34
◆関連リンク
Python の Home Page
http://www.python.org/

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

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

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

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

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

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

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

具体的な例文を書いてもらえませんか?
ググっても、例文が出てこなくて、困っています

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

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

import sys
sys.setdefaultencoding('euc_jp')

テンプレを多少改変しました。あと色々あるのでしょうが python.jp と書籍へのリンクは日本語ドキュメントをのぞいて省きました。
文句とかテンプレ改良とか次スレに向けてぼちぼちやっていきましょう。

976 :デフォルトの名無しさん:2009/05/23(土) 11:28:30
うめ

977 :デフォルトの名無しさん:2009/05/24(日) 07:12:49
うめ

978 :デフォルトの名無しさん:2009/05/24(日) 13:08:36
うめ

979 :デフォルトの名無しさん:2009/05/24(日) 18:03:04
うめ

980 :デフォルトの名無しさん:2009/05/24(日) 18:08:52
まてまて
先に次スレ立ててくれ。

981 :デフォルトの名無しさん:2009/05/24(日) 18:10:56
って俺かよwww
まんまとはめられた!

982 :デフォルトの名無しさん:2009/05/24(日) 18:13:26
すまん、スレ立て規制に引っかかった。
誰かよろしくorz

983 :デフォルトの名無しさん:2009/05/24(日) 18:58:36
IP変えてがんばれ!

984 :デフォルトの名無しさん:2009/05/24(日) 19:20:32
うめ


985 :デフォルトの名無しさん:2009/05/24(日) 19:21:28
漏れもだめだった orz
スレ立て規制の範囲って意外と広いんだね

986 :デフォルトの名無しさん:2009/05/24(日) 19:23:04
この流れなら逝ける
うめ

987 :デフォルトの名無しさん:2009/05/24(日) 19:23:12
立てた奴適当すぎだろw

988 :デフォルトの名無しさん:2009/05/24(日) 19:24:13
この流れなら逝ける
うめ

989 :デフォルトの名無しさん:2009/05/24(日) 19:25:14
番号間違ってるね


くだすれPython(超初心者用) その3
http://pc12.2ch.net/test/read.cgi/tech/1243159710/

            /)
           ///)
          /,.=゙''"/
   /     i f ,.r='"-‐'つ____   こまけぇこたぁいいんだよ!!
  /      /   _,.-‐'~/⌒  ⌒\
    /   ,i   ,二ニ⊃( ●). (●)\
   /    ノ    il゙フ::::::⌒(__人__)⌒::::: \
      ,イ「ト、  ,!,!|     |r┬-|     |
     / iトヾヽ_/ィ"\      `ー'´     /

990 :デフォルトの名無しさん:2009/05/24(日) 19:27:59
次いらんだろうにと何度言ったら(ry

991 :デフォルトの名無しさん:2009/05/24(日) 19:28:56
うめ

992 :デフォルトの名無しさん:2009/05/24(日) 19:29:48
立てちゃったよ…
後になったし削除依頼だしてきていいか?
つか埋め荒らしはいい加減にしろ。スレ立てもひどいし

くだすれPython(超初心者用) その4
http://pc12.2ch.net/test/read.cgi/tech/1243160751/

993 :デフォルトの名無しさん:2009/05/24(日) 19:30:09
>>989


994 :デフォルトの名無しさん:2009/05/24(日) 19:31:36
>>992


>>989 を削除する方がいいんじゃね?

995 :デフォルトの名無しさん:2009/05/24(日) 19:32:38
うめ

996 :デフォルトの名無しさん:2009/05/25(月) 09:34:37
まだ 2.5.2 な俺が来ました
世の中では 3 だそうですね

997 :デフォルトの名無しさん:2009/05/25(月) 09:38:04
いや
2.5が無難だとおもうよ

998 :デフォルトの名無しさん:2009/05/25(月) 10:34:30
ume

999 :デフォルトの名無しさん:2009/05/25(月) 10:35:30
うめ

1000 :デフォルトの名無しさん:2009/05/25(月) 10:36:21
ume---


1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

228 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)