Pythonのお勉強 Part7

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
日本Pythonユーザ会
http://www.python.jp/Zope/
Python オフィシャルサイト
http://www.python.org/

前スレ
http://pc8.2ch.net/test/read.cgi/tech/1104183124/
2デフォルトの名無しさん:2005/08/28(日) 01:14:56
3デフォルトの名無しさん:2005/08/28(日) 01:48:57
最近はじめたけどいいね Python
使うほどになじんでくる感じがある
ライブラリが小文字で打ちやすいし

ただ、python-mode でインデントを一段下げるのだけが
めんどくせー
4デフォルトの名無しさん:2005/08/30(火) 10:39:20
>>3
下げるてネストを浅くするってこだよね。確かに面倒だなや。標準でありそう
な機能だけどないんだっけ。
5デフォルトの名無しさん:2005/08/30(火) 12:53:45
一段深くする、ということじゃないか?
タブ一度押しでネストが浅くなっちゃうと、
タブを何度も押さないと元の深さまで戻らないのがめんどくさい。

リージョン指定すればC-c <とC-c >でインデントの深さは操作できるけど、
一行だけのためにリージョン指定するのはめんどくさい。
6デフォルトの名無しさん:2005/08/30(火) 14:23:59
>>5
あー深くするほうが面倒やね。俺が記憶違いしてた。
7デフォルトの名無しさん:2005/08/30(火) 20:52:40
こういうとき括弧がないと不便だな。
8デフォルトの名無しさん:2005/08/31(水) 10:10:24
てか、よく考えたら自動的にインデントされるレベルより更に深くしたいときっ
てそんなにあるっけ?
9デフォルトの名無しさん:2005/08/31(水) 12:01:45
浅くしたい事はあっても深くしたい事ってないなあ
10デフォルトの名無しさん:2005/08/31(水) 13:57:14
必要ないところで深くすると実行時にエラーにならない?
11デフォルトの名無しさん:2005/08/31(水) 16:11:25
そりゃ他の言語で括弧が無駄に1つ入るのと同じ訳だから
12デフォルトの名無しさん:2005/09/01(木) 03:33:43
あ、そっか。
そう言われてみればそうだ。
13デフォルトの名無しさん:2005/09/02(金) 19:03:37
python2.4.1 で CGI作ってるんですけど、フォームから入力された(name, value)の組を
一発でディクショナリに置き換えることは出来ないでしょうか?
cgi.FieldStorage の keys() で name の方だけリストとして取り出せるので、
これでループさせたりして getvalue で取り出すしかないでしょうか。
14デフォルトの名無しさん:2005/09/02(金) 19:30:39
form = cgi.FieldStorage()

try:
  hogeValue = form["hoge"]
except KeyError:
  hogeValue = None
15デフォルトの名無しさん:2005/09/02(金) 19:31:31
間違えた。 hogeValue = form["hoge'].value
16デフォルトの名無しさん:2005/09/02(金) 20:11:43
>>14-15
ちゃんと質問の意図を汲み取りなよ
Dictionaryにしたいんだとよ

ほかのライブラリとかに渡すんじゃねーの?
17デフォルトの名無しさん:2005/09/02(金) 21:46:16
dict([(k, form.getvalue(k, None) for k in form.keys()])
18デフォルトの名無しさん:2005/09/03(土) 09:00:28
pythonからmp3ファイルのタグ情報を読み込もうとしてるんだけど
日本語名のファイルを読み込むと訳のわからない文字コードになります。

例:
口唇 → \x8c\xfb\x90O
誘惑 → \x97U\x98f

↑これはなんですか?通常の日本語にする方法はありますか?
ちなみにeyeD3とid3readerっていうモジュールを使用しました。
19デフォルトの名無しさん:2005/09/03(土) 10:43:47
タグはSJISで環境はun*xなのか?
>> print pykf.toeuc('\x8c\xfb\x90O')
とかやればちゃんと表示される。
20デフォルトの名無しさん:2005/09/03(土) 12:26:26
pythonってなんで日本ではこんなにマイナーなの?
21デフォルトの名無しさん:2005/09/03(土) 13:03:31
使っている人はそこそこいるとは思うんだけど、あまり大々的に表に出てくるような
ものを作るのには使ってないのかもしれないね。
国内では Perl, PHP, Rubyの日本語の情報が充実してるし、Pythonででしかできないことは無いしね。
結局、判子押す権能を持っている人が良く知ってる(名前を良く聞く)という言語が
一見メジャーに見えているだけのような気もするよ。
22デフォルトの名無しさん:2005/09/03(土) 14:01:30
>>20
あまりCGIで使うもんじゃないから厨房が使いたがらない
無料レンタル鯖がどれだけ対応してるかと本屋の棚の占有率は比例する
23デフォルトの名無しさん:2005/09/03(土) 15:10:49
日本で一番活発なユーザサイドのMLってどこですか?
2418:2005/09/03(土) 16:27:02
>>19
レスありがとうございます。

環境はWinXPです。
Pythonのバージョンは2.3+JapaneseCodecs

教え頂いた方法で試したところ、『'ク\xfdソー'』と表示。
あと上で説明を間違えていました。正確には『u'\x8c\xfb\x90O'』でした。
ちなみに
>>> print pykf.toeuc(u'\x8c\xfb\x90O')
?u?O
となってしまいます。

文字コード訳わからん...orz
25デフォルトの名無しさん:2005/09/03(土) 16:39:24
print pykf.tosjis('\x8c\xfb\x90O')
26デフォルトの名無しさん:2005/09/03(土) 17:11:47
単純に u'...' の u を取るには encode('latin1')すりゃいいから、
>>> print u'\x8c\xfb\x90O'.encode('latin1')
でいいのでは。(SJIS環境なら今回はpykf不要)
2718:2005/09/03(土) 18:46:03
print u'\x8c\xfb\x90O'.encode('latin1')で出来ました。
>>25,26
ありがとうございます。
28デフォルトの名無しさん:2005/09/08(木) 19:32:40
文字列の前後に挿入したいのですがどうすればよいでしょうか?

例)
http://pc8.2ch.net/test/read.cgi/tech/1125159015/

<a href='http://pc8.2ch.net/test/read.cgi/tech/1125159015/</a>
29デフォルトの名無しさん:2005/09/08(木) 19:40:37
崩れてしまってスイマセン

例)
http://pc8.2ch.net/test/read.cgi/tech/1125159015/

<a href='http://pc8.2ch.net/test/read.cgi/tech/1125159015/</a>

正規表現でマッチするところまではできたのですが
マッチした文字列の前後に文字列を挿入したいのです
Javaだと<a href=$0</a>で出来るようなのでPythonでも
似たような方法はないかと探しています
30デフォルトの名無しさん:2005/09/08(木) 19:42:30
二度も失礼
うまく書けそうにないですが最後はAタグです
31デフォルトの名無しさん:2005/09/08(木) 19:59:54
>>29
正規表現でマッチさせるのをどうやってるかで異なるが、普通は
・マッチさせる
・マッチした部分を取り出す
の2ステップになると思う。
単純に、文字列中に一種類のパターンが1回しかでてこないのであれば

text = "aa123bb"
MatchObj = re.search("(\d+)", text)
print "<A>%s</A>" % MatchObj.group(1)

こんな感じかな。マッチする部分が複数あるならfindallメソッドとか使う。
32デフォルトの名無しさん:2005/09/08(木) 20:28:48
>>> import re
>>> instr = 'nudge dudge http://hodge.podge/dodge fudge'
>>> ptn = re.compile('(http://[^¥ ]*)')
>>> ptn.sub('<a href=¥¥1>¥¥1</a>', instr)
'nudge dudge <a href=http://hodge.podge/dodge>http://hodge.podge/dodge</a> fudge'
33デフォルトの名無しさん:2005/09/08(木) 20:42:23
34デフォルトの名無しさん:2005/09/08(木) 20:48:28
>>33
自分で試してから言ってるんだとしたら意図が分からん。
3528:2005/09/09(金) 07:27:31
>>31-34
ありがとうございます。うまくいきました。
ソースまで書いていただいて勉強になります。

まだURLの正規表現が足りない気がしますが
使いながら修正していこうと思います。

import re

fin =open('src.txt', 'r')
fout=open('dest.html', 'w')

for text in fin.readlines():
    text=re.sub('(http://[\w./%]*)', '<a href="\\1">\\1</a>',text)
    text+='<BR>'
    fout.write(text)

fin.close()
fout.close()

36デフォルトの名無しさん:2005/09/09(金) 20:39:55
37デフォルトの名無しさん:2005/09/09(金) 21:10:52
ポストンがいいこと言った!
38デフォルトの名無しさん:2005/09/10(土) 02:28:51
>>13
遅レスなんだけど
cgi.FieldStorage()ってディクショナリを返してると思うんですが。
そのまま使えばいいんじゃない?
39デフォルトの名無しさん:2005/09/10(土) 06:22:15
>>36
なんかマジいの?
40デフォルトの名無しさん:2005/09/10(土) 09:22:21
質問です。

C で言うところの関数の内部の静的変数(static 変数)って
python にはないのでしょうか?
(関数内部で呼び出された回数を数えるカウンタ、みたいなやつです)

それは python way として間違っている、のなら
どういう処方箋が良いのでしょう?

どっかに FAQ がありそうなんですが、ググりづらい…

よろしくお願いします
41デフォルトの名無しさん:2005/09/10(土) 10:52:33
1. オブジェクトを使う
class A:
 def __init__(self):
  count = 0
 def __call__(self, *args):
  count += 1
  〜

2. 関数と引数デフォルト値の仕組みを流用する
def f(a, b, c, count=0):
 count += 1
 〜
>>40 1のがいいと思う
2だとcountの値を関数の外から取り出せない?かも
42名無しさん@そうだ選挙に行こう:2005/09/10(土) 19:49:50
43名無しさん@そうだ選挙に行こう:2005/09/10(土) 20:43:53
>42
表示できません
44名無しさん@そうだ選挙に行こう:2005/09/10(土) 21:14:33
パンパンパパパン黄色いパイソンよ♪
45名無しさん@そうだ選挙に行こう:2005/09/10(土) 21:35:37
>41
なるほどやっぱり class を作ることになるんですね。
ちょい面倒な気がするけど、そういうものなら仕方ないか…

引数の方は読んでも良く分かりませんでした…
なんか昔、リストをデフォルト引数にするとかなんとか
聞いた気がするけどその手の奴ですかね?
(具体的な処方箋を思い出せない…)
46名無しさん@そうだ選挙に行こう:2005/09/10(土) 22:16:09
>>41
2のやり方がよくわからないです(´д` )

>>45
変数の先頭にアンダースコアを付けておけば、モジュール単位でローカルにできるので
他モジュールから from import * されても大丈夫です。
Cのファイルローカルなstatic変数に当たります。

同一モジュール内における関数・クラスの干渉が気になるなら、
管理できる規模でモジュールを再構成。

_count = 0

def hoge():
global _count
_count += 1
print _count
47名無しさん@そうだ選挙に行こう:2005/09/10(土) 22:18:20
コピペしたらスペースがががががorz

_count = 0

def hoge():
  global _count
  _count += 1
  print _count
48名無しさん@そうだ選挙に行こう:2005/09/10(土) 22:58:52
関数もオブジェクトだからこんなのも

def foo():
  foo.count += 1
  print foo.count
foo.count = 0
49名無しさん@そうだ選挙に行こう:2005/09/10(土) 23:01:22
デコレータ使おうよ。
50名無しさん@そうだ選挙に行こう:2005/09/10(土) 23:09:42
デコレータだとこんな感じで良いんだっけ?

def countable(f):
  f.count = 0
  return f
@countable
def foo():
  foo.count += 1
  print foo.count
5146:2005/09/10(土) 23:53:54
いま2.3消してして、2.4インスコしました。
初めてのデコレータで次のようなものを製作。
添削してくだされ(゜∀゜)

def countable(func):
  func._count = 0
  def wrapper(*args, **kwargs):
    func._count += 1
    print func._count
    return func(*args, **kwargs)
  wrapper.func_name = func.func_name
  return wrapper

@countable
def hoge():
  print "hoge"

hoge()
hoge()
hoge()

52名無しさん@そうだ選挙に行こう:2005/09/11(日) 00:55:27
countが外から見えずにしばし悩んでいました。

def countable(func):
  func._count = 0
  def wrapper(*args, **kwargs):
    func._count += 1
    wrapper._count = func._count
    return func(*args, **kwargs)
  wrapper.func_name = func.func_name # これってなに?
  return wrapper

@countable
def hoge():
print "in hoge: " + str(hoge._count)

hoge()
print "ex hoge: " + str(hoge._count)



ところで、意味わからないまま入れていますが、これって必要ですか?
wrapper.func_name = func.func_name
53デフォルトの名無しさん:2005/09/12(月) 18:45:50
関数実行時にデフォルト引数にバインドされるオブジェクトは関数定義時に1回だけ作られる、
だからmutableなものをデフォルト値にするのは気をつけろ。
って確かはじパイに書いてあったから、41の2の方法は

def f(a, b, c, count=[0]):
    count[0] += 1

みたくすると望み通りになるっぽい。外から見たいときはf.func_defaultsから見るw
54デフォルトの名無しさん:2005/09/13(火) 20:19:48
【pygame】pythonでゲーム製作【ぱいがめ】
http://pc8.2ch.net/test/read.cgi/gamedev/1126605105/
55デフォルトの名無しさん:2005/09/14(水) 14:05:33
Python流行の予感!

Yahoo!ニュース - 共同通信 - 駅ホームにニシキヘビ 容器入り、体長50センチ
http://headlines.yahoo.co.jp/hl?a=20050914-00000086-kyodo-soci
56デフォルトの名無しさん:2005/09/14(水) 14:55:44
>>55
俺が書き込もうとしたら既に書かれていたなんて…

そんな…


俺みたいなアホがもうひとり居たなんて…orz
57デフォルトの名無しさん:2005/09/14(水) 16:28:14
python の名前付け慣習?について書いてあるページってどこでしょうか?
python naming convention で検索してもいまいちいいのがでてこない。
変数も関数名も全部小文字?
pythonnamingconvention みたいな。
58デフォルトの名無しさん:2005/09/14(水) 17:00:36
59デフォルトの名無しさん:2005/09/16(金) 16:29:19
ttp://tabesugi.net/memo/cur/cur.html#151854
> 最近、generator expression を使いまくりである。

それは、今までPythonにコレクションクロージャメソッドがなかったことの反動では。
60デフォルトの名無しさん:2005/09/17(土) 11:39:28
なんか リストの内包表記 って
機能的には悪いとは思わないんだけど、
見た感じすっきりしてなくて python らしくないと思わない?

なんか中途半端に英語っぽいところとかが
中途半端に perl っぽい。
61デフォルトの名無しさん:2005/09/17(土) 12:24:41
デコレータの @ 表記よりはマシと思うけど。
62デフォルトの名無しさん:2005/09/17(土) 16:14:37
関数型言語からのもらい物だからねー。
| とか <- とか ; とかの記号がいやで英語っぽくしたんだけどねー。
63デフォルトの名無しさん:2005/09/17(土) 17:09:43
>61
そういわれると... ぐぅ

>62
そういう感じなのかぁ。

勝手な俺的印象としては
python って徒に 1行に詰め込まずに、
(敢えて利便性を捨ててでも)強制インデント式の文法により
見た目をすっきり書かせる言語という印象があったので、
内包は読んでると違和感があるんですよね。
64デフォルトの名無しさん:2005/09/17(土) 19:13:49
>>63
ここではシーケンスを生成してるんだぞ!というふうにコード上で明示できてると考えてはどうかね。
そう考えれば、単純なシーケンス生成で、itertoolとかyieldとか使うよりも、脳みそのロードは節約できるとおもうけど。
これ幸いとばかりに乱用しまくるのは頂けないと思うし、あまりPython的じゃないなと思うのは同意。
65デフォルトの名無しさん:2005/09/18(日) 01:04:30
何が違和感って、Pythonは基本的に前からだらだら読めて
PerlやRubyみたいな後置条件式みたいのもないのに
内包表現だけ語順が逆転しちゃってるのがなんとも。
66デフォルトの名無しさん:2005/09/18(日) 01:10:03
map や filter を入れ子にするのは気になるの??
67デフォルトの名無しさん:2005/09/18(日) 01:21:32
内包表記は何だかSchemeに似てるんだよな〜

Schemeに美しさを認めても拒否反応が起きる私
内包表記は機能的に悪くないけど慣れそうもないです
68デフォルトの名無しさん:2005/09/18(日) 17:49:13
全然似てねえYO

内包表記は数学で集合を記述する表記法だ。
69デフォルトの名無しさん:2005/09/18(日) 20:12:10
内包表記とかジェネレータ式を入れ子で書くのに慣れると止められなくなるよね。

70デフォルトの名無しさん:2005/09/18(日) 20:46:42
Schemeを読むときは脳内スタックに積み上げつつ後ろまで読んで、
前に戻りつつ何をしてるコードなのかを組み上げる作業しとります。
脳内スタック( ゚д゚)ドカーン。

内包表記も同じように読んどる。こっちはたいてい1行だからマシだけど。

>>69
入れ子にされたら
((((;゚Д゚)))ガクガクガクブルブルブル
71デフォルトの名無しさん:2005/09/19(月) 01:12:42
すみません、質問させてください。

datetime = date(2000, 1, 1) + time(3, 0)
みたいなことをやりたいのですが、
datetime = date(2000, 1, 1) + timedelta(0, 3 * 60 * 60)
みたいに書くしかないのでしょうか。

72デフォルトの名無しさん:2005/09/19(月) 01:23:00
pythonでデータベースを扱うことは可能ですか?
73デフォルトの名無しさん:2005/09/19(月) 04:45:33
可能です。
74デフォルトの名無しさん:2005/09/19(月) 05:13:49
各々のオブジェクトが持つメソッドの一覧が知りたいのですが、
例えば、マニュアルのどこら辺に list のメソッド一覧が載っているのでしょうか?
別にマニュアルでなくても良いのですが。
sort や push など無いのだろうか……
75デフォルトの名無しさん:2005/09/19(月) 05:53:24
help(list)
じゃいかんの?
76デフォルトの名無しさん:2005/09/19(月) 11:05:04
77デフォルトの名無しさん:2005/09/19(月) 13:07:12
>>74
dir(list)でも出てくるよ

78デフォルトの名無しさん:2005/09/19(月) 18:41:53
このディレクトリに置かれていたオンラインドキュメントは http://www.python.jp/doc/ に移動しました

グーグルで調べてクリックしたらコレ↑になるの超むかつく。
79デフォルトの名無しさん:2005/09/19(月) 22:01:54
httpsの接続についてですが、urllibのマニュアルには
>HTTPS のサポートは socket モジュールが SSL をサポートするように
>コンパイルされている場合のみ利用できます。

とか書いてあり、socket.ssl()も無いようなのでどうやら僕の環境では
SSL非対応らしいのですが、SSLサポートでコンパイルされたsocketモジュールは
どこからダウンロードできるのか教えてください。
えっと今使ってるのはw2kのActivePython2.4です。

一応↓のサイトは見つけたのですが、2.4用のが無いようです・・・
http://alldunn.com/python/
80デフォルトの名無しさん:2005/09/19(月) 23:12:37
>>74

pydoc list
81デフォルトの名無しさん:2005/09/20(火) 00:56:25
>>78
気持ちはすごくよく分かるが、グーグルのキャッシュが古いのは、グーグルの責任。
82デフォルトの名無しさん:2005/09/20(火) 14:37:13
>>71
>datetime = date(2000, 1, 1) + time(3, 0)
>みたいなことをやりたいのですが、
結果はdateで欲しいの? datetimeで欲しいの?

>datetime = date(2000, 1, 1) + timedelta(0, 3 * 60 * 60)
>みたいに書くしかないのでしょうか。
dateで欲しい = datetime(2000, 1, 1, 3, 0).date()
ないしは
datetimeで欲しい = datetime(2000, 1, 1, 3, 0)
83デフォルトの名無しさん:2005/09/20(火) 16:17:12
文字列 str が us-ascii のみを含むか、それ以外の文字も含むかを判定したい
んですが、どうやるのがスマートですかね。パッと思い付いたのは↓なんですが。

re.compile('^[ -~\n]+$').match(str)
84デフォルトの名無しさん:2005/09/20(火) 20:59:33
は?
\nとかus-asciiにはないの?
85デフォルトの名無しさん:2005/09/20(火) 21:44:13
は??
86デフォルトの名無しさん:2005/09/20(火) 22:03:24
え?
87デフォルトの名無しさん:2005/09/20(火) 22:04:00
>>84
もしもーし
^はブラケットの外に出てますよー
88デフォルトの名無しさん:2005/09/20(火) 23:12:12
71は日付と時刻の演算をしたいとのことです。
答)timeには演算できないって書いてあった気もする。
89デフォルトの名無しさん:2005/09/21(水) 00:35:08
>>71
>timedelta(0, 3 * 60 * 60)
これが良くわかんないんだけど。
timedelta(hours = 3)
ってこと?
ちなみにdateに24時間未満のtimedeltaを加えても切り捨てられるんで、
datetime(2000,1,1)にしないとうまく動かないと思う。
90デフォルトの名無しさん:2005/09/21(水) 03:33:28
import urllib2
URLObj=urllib2.urlopen('http://www.python.jp/Zope/hoge.html')
print URLObj.read()

存在しないページにアクセスすると当然404: Not Foundがでます。
そしてアプリケーションが終了してしまうのですが、
終了せずに、404や403などに対応した処理をさせるには、どうすればよいでしょうか?
91デフォルトの名無しさん:2005/09/21(水) 04:00:54
>>90
urllib2.urlopenは存在しないページへのアクセスなどにはurllib2.HTTPError
のexceptionを投げます。
そいつのurllib2.HTTPError.codeが404等のエラーコードです。
それを適当にハンドリングしてやればいいんでないでしょうか。
9274:2005/09/21(水) 04:21:10
>>75, >>76, >>77, >>80
多謝です。要領がまだ全然分かってなくて、参考になりました。

なんか、オンラインマニュアルは情報が散在していて辿り着けないし、
系統立った一覧表はないみたいだし、サイト内検索も無いみたいだし、
教えて頂いた方法で調べようにも、そもそも組み込みで何が存在してるのかすら分からないから orz
と思ってたけど genindex.html から、なんとかなりそうかなぁ。
継承関係が良く分からないけど orz

うーむ、本買ってきた方が早いか。種類があまり無さそうだけど。
ちょっと試したかっただけなんだけど orz
93デフォルトの名無しさん:2005/09/21(水) 04:32:58
>>91
ありがとうございます
うまくいきました
94デフォルトの名無しさん:2005/09/21(水) 05:50:02
>>91 diveintopython読んだ?
9583:2005/09/21(水) 20:21:38
ちゃんとコントロールコードとかも見なきゃ駄目ですね…。
結局以下でやりました。

re.compile('^[\x00-\x7f]+$').match(str)
96デフォルトの名無しさん:2005/09/21(水) 21:36:14
max(s)<'¥x80' なんてどうかな
97デフォルトの名無しさん:2005/09/21(水) 21:44:17
>>> s = ['aaa']
>>> s.extend(['bbb'])
>>> s
['aaa', 'bbb']
このノリで

>>> [s.extend(['aaa']) for s in [["bbb"], ["ccc"]]]
すると、
[None, None]

なんですけど、なにがまずいんでしょうか
98デフォルトの名無しさん:2005/09/21(水) 22:01:15
s.extend(['aaa'])が返す値がNoneだから

s.extend(['aaa']) == None
99デフォルトの名無しさん:2005/09/21(水) 22:04:40
[['bbb','aaa'],['ccc','aaa']]を得たいのなら
[s+['aaa'] for s in [["bbb"], ["ccc"]]]
100デフォルトの名無しさん:2005/09/21(水) 22:13:43
どうもありがとうございます。
>s.extend(['aaa'])が返す値がNoneだから
ということはsがリストに収まってから.extendが呼び出される訳でなく、
.extend()が済んでからリストに収まるってことか

そりゃそうか

てかドキュメント読めば普通に書いてありそうな話ですね
正解もありがとうございます

どうもすいません
101あうう:2005/09/21(水) 22:16:29
すいません
102デフォルトの名無しさん:2005/09/21(水) 22:46:35
>>82,88,89
回答ありがとうございます(^-^)

言葉足らずですみませんでした。
質問の趣旨は>>88さんのおっしゃる通りです。

> timedelta(hours = 3)

こんな書き方ができるんですね。
help()だけでは気づきませんでした。

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


103デフォルトの名無しさん:2005/09/21(水) 23:26:18
[[s, 'aaa'] for s in ['bbb', 'ccc']] の方がいいんじゃないかな.
10491:2005/09/22(木) 02:22:05
>>94
んーと、全部じゃないけど読んでますよ。
http://diveintopython.org/http_web_services/index.html
この章みたいに、Handlerクラスを作って対処すれってことですよね?
それにまったく異論は無いですが、
try:
  f = urllib2.urlopen(url)
except urllib2.HTTPError, e:
  if e.code == 403:
    hoge()
  elif e.code == 404:
    moge()
みたいなののほうが説明が簡単かな、と思って。
105デフォルトの名無しさん:2005/09/22(木) 13:06:32
>>96
なるほど。ただ max(s)<='▼x7f' でないと
UnicodeDecodeError: 'ascii' codec can't decode byte 0x80 in position 0: ordinal not in range(128)
と言われちゃいますね。

でちょろっと試してみたんですが re の方が圧倒的に速いみたい。

% time ./test_max.py
./test_max.py 14.65s user 0.06s system 98% cpu 14.982 total
% time ./test_re.py
./test_re.py 1.23s user 0.04s system 99% cpu 1.271 total
106デフォルトの名無しさん:2005/09/22(木) 15:00:22
>>105
なるほど,そういうエラーが出るんだ.ということは,頼んでもいないのに
max(unicode(s, <default_encoding>)) してるってことだよね.遅いのも
そのせいかな.
10794:2005/09/22(木) 18:30:57
>>104
90にレスしようと思って間違って91にレスしてしまった。
91の説明に突っ込んだわけではないです。
まぎわられくてゴメソ。
108デフォルトの名無しさん:2005/09/22(木) 19:20:58
>>106
> 頼んでもいないのに
> max(unicode(s, <default_encoding>)) してるってことだよね.

違うのでは。

>>96
> max(s)<'\x80' なんてどうかな

s が unicode 型なら max(s) も unicode 型なので、
coercion により unicode('\x80') という変換が起こる。

max(s) < u"\x80" または ord(max(s)) < 0x80 なら無問題。
109デフォルトの名無しさん:2005/09/23(金) 10:48:37
モジュール内で定義されたクラスから
同じくモジュール内で定義された、2重アンダースコアで始まる変数に
アクセスしようとすると、クラスの難号化にじゃまされてアクセス
できません(>_<)

どうすればアクセスできるでしょうか。
よろしくお願いします。

110デフォルトの名無しさん:2005/09/23(金) 11:26:31
数値を文字列にするにはどうすれば… orz
111デフォルトの名無しさん:2005/09/23(金) 11:38:12
>>110
pythonを起動して、試しに help(int) ってやってみると、ずらずらと
整数に対して可能な演算が出てくる。で、str( ) という関数が見つかる。

そこで試しに str(123) と打ち込んでみると、'123' と表示されたぞ。
同様に str(0.987) も、ちゃんと文字列になった。

Pythonのヘルプは、ちょっと度忘れしたとき、本を見なくても結構
あてずっぽうでいろんなことが見つかるから、勉強し始めたときに
凄く助かった。
112デフォルトの名無しさん:2005/09/23(金) 11:46:41

>>109globals使う方法しか思いつかないわ


__hoge = 100

class Test:
def __init__(self):
print globals()["__hoge"]

Test()
113デフォルトの名無しさん:2005/09/23(金) 13:02:28
なぜ 2.4.2 に触れないの?
114デフォルトの名無しさん:2005/09/23(金) 13:43:37
>>113 リリースされたら触れまつ。
115デフォルトの名無しさん:2005/09/23(金) 16:19:05
>>109
ここ参照
http://www.python.jp/doc/release/tut/node11.html#SECTION0011600000000000000000

_classname__privatevaluenameでアクセスできます。こんな感じ。

class A:
  __pnum = 10

class B:
  def __init__(self):
    print A._A__pnum

if __name__ == "__main__":
  B()
116デフォルトの名無しさん:2005/09/24(土) 01:38:59
>>112,115
レスありがとうございます

下記みたいなものも作ってみましたがあんまりいけてないです。。。
globals()の方がうんと簡潔なので、>>115さんの方法で対処しようと思います。
ありがとうございました。

__privValue = 100

def __getter(self):
. return __privValue

def __setter(self, val):
. global __privValue
. __privValue = val

class Public:
. __getter = None
. __setter = None
. def __init__(self):
. self.__setter(20)
. print self.__getter()

Public._Public__getter = __getter
Public._Public__setter = __setter




117デフォルトの名無しさん:2005/09/24(土) 04:07:25
> 115さんの方法で対処しようと思います。
間違えました。>>112さんです(T-T)
118115:2005/09/24(土) 06:22:04
>>116
ちょっと勘違いしてました。下の例みたいな問題なのね。

gnum = 10
__gnum = 20

class A:
  def __init__(self):
    print gnum  #これはOK
    print __gnum  #こっちはダメ

if __name__ == "__main__":
  a = A()

この場合クラスAの中で変数名「__gnum」が「_A__gnum」に自動的に
置き換わるので、うまく__gnumを参照できない、てことですね。
つーか「__」による変数名の擬プライベート化って、クラス変数名でしか
有効でないんだから、それ以外ではそもそもつけるべきでは無いと思います。
上の例のような問題もあるし、from hoge import *でインポートされたくない
なら、「_」一個に(今回なら「_gnum」)するべきです。
119デフォルトの名無しさん:2005/09/24(土) 13:30:28
> from hoge import *でインポートされたくない
> なら、「_」一個に(今回なら「_gnum」)するべき

あわわ。そうだったんですか。
全然知識不足ですね、自分。
精進します。
120デフォルトの名無しさん:2005/09/25(日) 02:38:51
except 節を空にすることはできないみたいなのですが、
例外が発生した時に、何もしたくない場合はどうしたら良いのでしょうか?
121デフォルトの名無しさん:2005/09/25(日) 02:50:05
pass
122デフォルトの名無しさん:2005/09/25(日) 02:51:03
except IndexError, e:
  pass

passでいいんじゃないの

123デフォルトの名無しさん:2005/09/25(日) 02:57:39
>>121, >>122
ありがとうございます。期待通りの動作でした。

pass に辿り着けなかった orz
やっぱ、リファレンス本でも買って来て、
一通り読んで辞書代わりしないと駄目かなぁ……
124デフォルトの名無しさん:2005/09/25(日) 03:00:43
公式で配布しているマニュアルだけで十分ですよ
125デフォルトの名無しさん:2005/09/25(日) 03:29:05
>123
まぁ買うのは止めないけど。
本が売れれば出版社も関連書籍を出す気になるだろうし。
126デフォルトの名無しさん:2005/09/25(日) 06:12:59
stringのfindで作ってた部分を正規表現に置き換えようとしています。
re.search と (?P<name>...) を使えば、丸括弧でくくったパターンの文字列に
アクセスできるんじゃないかとIdleで試しているのですが、
これの返値「MatchObjectインスタンス」というのは、どのように使用すればよいのでしょうか?
127デフォルトの名無しさん:2005/09/25(日) 09:17:16
>>126
それライブラリリファレンス読んだうえで聞いてんの?
まずそれ読んで、次にここの例をいくつか見ればわかるでしょ。
http://effbot.org/librarybook/re.htm
128デフォルトの名無しさん:2005/09/25(日) 11:03:37
グーグルで調べ回ってたら戻ってきてしまった…。
nameでアクセスとは違うけど、>31がほぼ回答ですね。読み込みが足りなかった。ごめんなさい。
>>127
日本語HELPのチュートリアルから順にリファレンスの文字列あたりまでは読んだのですが、
reの返値をどのように使うのか理解できず、例題を探し回ってました。
紹介されたページを読んできます。
129デフォルトの名無しさん:2005/09/25(日) 19:00:44
つい先ほどpythonを知ったんですが、
数値計算をするためにはJavaとpythonどちらのほうがおすすめでしょう。
習熟のしやすさも考慮に入れてプログラミングn00bに教えてください!
130デフォルトの名無しさん:2005/09/25(日) 19:07:39
jython..._〆(゚▽゚*)
131デフォルトの名無しさん:2005/09/25(日) 19:08:13
>>288
佐野常民でしたっけ?
132デフォルトの名無しさん:2005/09/25(日) 19:21:43
jythonはいいがCPythonとJava両方ある程度勉強しないとワケワカランと思う
133デフォルトの名無しさん:2005/09/25(日) 19:35:45
>>129
何が必要?

・高速演算
・簡潔性
・多倍長演算
・有理数演算
・複素数演算
・行列演算
etc.
134129:2005/09/25(日) 19:38:28
>>133
生体データを扱うので、
行列演算が高速で行えればいいかなと思います。
135デフォルトの名無しさん:2005/09/25(日) 19:44:04
MATLAB
136デフォルトの名無しさん:2005/09/25(日) 20:44:14
>>128
http://www.python.jp/doc/release/lib/module-re.html

なあ、「ライブラリリファレンス」て知ってる?
そこにMatchObjectの説明も載ってるし、(?P<name>...)のマッチに
マッチオブジェクト.group('name')でアクセスできるとも書いてあるんだけど。
137デフォルトの名無しさん:2005/09/25(日) 21:38:03
いや、MatchObject の扱い方って
分かればどうってことないんだろうけど
最初はマニュアルに書いてあることの意味からして
良く分からなかったぞ。

2,3 の例題を見ないと全然わからん。
138デフォルトの名無しさん:2005/09/25(日) 22:41:37
http://www.python.jp/Zope/articles/tips/regex_howto
俺もここらへん見ないとわけワカメだった
139デフォルトの名無しさん:2005/09/25(日) 23:31:44
Javaってさ中間言語にコンパイルしているのにもかかわらず異様に遅いしメモリー食うよね。
あの上で高級言語を動かしてまともなパフォーマンスが出るのかなって思う。
140デフォルトの名無しさん:2005/09/25(日) 23:55:38
同感だがスレ違い
141デフォルトの名無しさん:2005/09/26(月) 00:02:28
Jythonで数値計算してJava3D使って表示するのを作ったことならある。
データの大きさは5M〜50Mぐらい。
用途次第じゃないのかな。
142デフォルトの名無しさん:2005/09/26(月) 05:51:06
>>136
HELPに入っているのと同じ資料ですよね。それを読んでも理解できませんでした。

マニュアルと首っ引きで、例題を一部変更→
→他の命令へ置換→機能を追加→自分用の関数作成
とかして学習するにはどうにも手頃な資料が見当たらない。
他言語修得済なら問題はないのだろうけれど…。
143デフォルトの名無しさん:2005/09/26(月) 09:10:08
逆引き的なサンプルコード探すなら
http://pleac.sourceforge.net/pleac_python/
がいいんじゃないかな

perlクックブックのコードをpythonで表現してて、非常に役に立った
144デフォルトの名無しさん:2005/09/26(月) 14:47:11
なかなか良さそうなサイトだ。

しかし ダークな背景に明るい文字のページって
白地にカラー印刷するとすげー見辛い。

せっかく keyword highlight されているものを
モノクロでっていうのも芸がないしなんとかならんもんかのう。

(暇なときに読もうと思って印刷したときの話)
145デフォルトの名無しさん:2005/09/26(月) 16:38:15
Array や Hash など Python から入った人だと、何のことか悩みそう。

ところで、module をパスを指定して読み込んだり、
ソース内でパスを追加する方法ってありますか?
ポインタだけでも教えて頂けると助かるんですが。
146デフォルトの名無しさん:2005/09/26(月) 16:50:41
sys.path
147デフォルトの名無しさん:2005/09/26(月) 17:29:53
サンクス
148デフォルトの名無しさん:2005/09/26(月) 18:25:55
python-mode.elとpython.elの使い勝手の違いってどうなのかな
149デフォルトの名無しさん:2005/09/26(月) 21:08:01
>>133
python には様々の数値演算モジュールが備わっています。
特に SciPy package をインストールするだけで、行列、積分、微分方程式のソルバー、特殊関数、
さらにはプロッタまで得られてしまうのは重宝します。

下で python での数値演算について、日本語で手短にまとめています。

http://www.nasuinfo.or.jp/FreeSpace/kenji/sf/fastTour/pyLinear.htm
150デフォルトの名無しさん:2005/09/26(月) 23:02:29
>>149
Rでいくね?
151デフォルトの名無しさん:2005/09/26(月) 23:08:04
Rじゃ数値計算とグラフしかできなくね?
152デフォルトの名無しさん:2005/09/26(月) 23:33:06
>>150 140 です。
私は R は行列計算も可能な GPL で配布されているソフト程度の知識しかありません。
LAPAcK 程度の機能と認識しています。

もし R が Lapack 程度の機能ならば python 使いが R を使う理由はないと考えます。
SciPy python packe をインストールするほうが手っ取り早く数値演算について高機能が
得られると考えます。

150 さんは R と python の両方に詳しいと思います。比較意見を伺えますでしょうか
153デフォルトの名無しさん:2005/09/27(火) 00:31:55
http://www.okada.jp.org/RWiki/
にいってみれば?

R は数値計算、こと統計にかんしては相当にパッケージがそろってます。
確信はないが、python でできることは R で全てできるのでは。
アプリはつくれないけれど、割に簡単にパッケージはつくれる。

ちなみに、速度を求めるならば、うらで C で書くという手がある。
あと、速度は多少速いが機能的には劣る scilab もある。
154デフォルトの名無しさん:2005/09/27(火) 00:45:28
>>153 さん、御指摘ありがとうございます。140 です。
R 入門として下を飛ばし読みしてきました。
http://stat.sm.u-tokai.ac.jp/~yama/R/Rintro.html

R は統計処理に特化した数値処理ソフトと理解しました。
mean(), median(),max(),min(),var(),sd()
などを超えるベイジアンなどの統計処理を処理をするのならば R を使う価値が有りそうです。

でも平均や分散を計算する程度の統計処理ならば python 使いが R を新規に勉強してまで使う意味はなさそうです。
SciPy のほうが、ずっと使い回しできそうです。
155デフォルトの名無しさん:2005/09/27(火) 00:54:32
私は python はじめたばっかりなので詳しくないですが、
マトリックスの要素ごとの計算も簡単にできるようだし、
簡単な用途ならば、python で十分です。

MCMC やるなら、選択肢は R しかないですけど。
パッケージもそこそこあるし、うらで WinBUGS も回せる。
156デフォルトの名無しさん:2005/09/27(火) 01:20:33
150 じゃないけど

>154
R は S 言語を内部で scheme に処理させる処理系。
python 使いの私には(機能はともかく)文法といい、
諸々のセンスといいあまりしっくり来ないんだな。

R の価値は統計機能というより 統計ライブラリ にある、と思う。
(外部の各種パッケージや S などの解説書を含めて)

あのライブラリ群が python から使えるんなら R なんて
わけわかんねぇ言語は死んでもつかわねーよ。

でもそうじゃないから R も使う。
157デフォルトの名無しさん:2005/09/27(火) 01:26:50
私には関係ないよ
158デフォルトの名無しさん:2005/09/27(火) 02:08:29
スレ違い気味ですまんけど、R は言語と考えるのは正しくないと思う。

データの下処理をするスクリプトを書いたり、
C で書かれたライブラリをコンソールから呼び出したりするためのソフトないし環境であって、
プログラム言語では決してない。
うらを見ればわかるけど、R なんて C そのもの。
159デフォルトの名無しさん:2005/09/27(火) 02:21:43
うらってどこだよ
160デフォルトの名無しさん:2005/09/27(火) 02:28:14
rpyというラッパーがあるよ

# 資源はマージして使おう
161150:2005/09/27(火) 02:31:07
ここで150の登場ですよ。

で、俺には、はっきりはわからん。
なぜなら、そもそもバイオを知らん。

なんか、質問者はすでにPythonでやる気で、
最後に背中を押して欲しいだけのようにも見える。
ので、Pythonでいいと思うよ。
Python使っていて、「Rならこの機能使えたのに」と
思えば、Rpy(http://rpy.sourceforge.net/)という選択肢もある。

関係ないけどこんなのもあるのね。
http://www.oreilly.co.jp/BOOK/bigperlbio/index.htm
162デフォルトの名無しさん:2005/09/27(火) 02:35:30
163デフォルトの名無しさん:2005/09/27(火) 08:44:14
>>159
ソースコード
164150:2005/09/27(火) 11:48:25
>>158
>C で書かれたライブラリをコンソールから呼び出したりするため

そうだから言語でない、という論理は破綻しまくりな気がする。
しかも実際、Rでプログラム書けるんだから、やっぱ言語だろ(S言語)。
ちゃんとRを使いこなしているのか心配です。

ちなみにおすすめは、PyにせよRにせよ、UNIX(-like)のOSで走らせること。
Py/Rの外にもたくさんのコマンドが揃っていると心強い。
165デフォルトの名無しさん:2005/09/27(火) 16:02:42
>160,161
thx. 最近はそういうのがあるのか。
もっとも R は R+ESS+emacs でやっと "解析環境" だと思うので
Rpy (の類い)も周辺環境が整うといいねぇ。

>164
>158 は無視していいでしょ。
ド偏狭Cプログラマが
perl/python はインタプリタタイプの
"ツール"であって言語じゃない
と妄想しているようなレベルだし。R/S を分かってないことだけは確かだ。
166158:2005/09/27(火) 18:30:51
python プログラマも R を愛してることを知りました。
どうもすいませんでした。
167デフォルトの名無しさん:2005/09/27(火) 22:12:16 ID:0
pythonはCとかに比べると大容量な数値計算などに向かないって書いてあったんだけど、
本当でしょうか。
168デフォルトの名無しさん:2005/09/27(火) 23:35:51
>>167
PythonはCよりメモリを喰うし、遅いし、ハードウェア寄りのことがやりづらいしと、
昨今の汎用スクリプト言語にありがちな特徴を過不足なく兼ね備えていますから。

>>166
ほんと、Rスレ(あるのか?)に紛れ込んだのかとw
169デフォルトの名無しさん:2005/09/28(水) 00:39:31

>166

Rスレ(あるのか?)

ttp://comic6.2ch.net/test/read.cgi/rcomic/1127670090/
170デフォルトの名無しさん:2005/09/28(水) 01:40:16
>169のおかげで道に迷ってしまったじゃないか。
おなかがすいたよー。ごはんを炊こう
171デフォルトの名無しさん:2005/09/28(水) 08:29:04
>>167
それはNASAに啖呵をきっているとみなしてよいんだな?
172167:2005/09/28(水) 10:15:25
>>171
えっとあるwebサイトに書いてあっただけなんで…
phytonかjavaから始めてCをやりたいんです。
それで言語でやりたいこととしては、それなりにでかい行列の計算と、
unixとwindowsでのGUIを使ったアプリケーション作成なんです。
NASA好き
173デフォルトの名無しさん:2005/09/28(水) 10:16:56
Cが大容量な数値計算を得意とするなんて初耳だ
174デフォルトの名無しさん:2005/09/28(水) 10:41:21
phytonとかにくらべたら高速、という意味ではないでしょうか。
学校行ってくるんで、帰ってきたらまた相手してください。
NASA大好き
175デフォルトの名無しさん:2005/09/28(水) 11:34:31
numarray とか Scipy ってある程度の速度で
処理できるんじゃないの? 良く知らないけど。
176デフォルトの名無しさん:2005/09/28(水) 11:44:25
scipyってRがいらなくなるほどすごいのかなー?
Rが備えているような統計解析が同程度のコード量でできるんだったら
Python+scipyだけにしちゃうんだけど、そうもいかなそうなので
いまのところは用途に合わせてMatlab+R+Python+Javaから選択してる。
自分がPythonを使いこなせてないだけなんだと思うんだけどね。
177デフォルトの名無しさん:2005/09/28(水) 12:09:33
RとPythonって文法結構似てるよな。
Rをしばらく使った後でPython使うと、ついつい
for i in 1:10
とか、「:」でエラー出してしまう。
178175:2005/09/28(水) 13:54:14
175 は "速度" の話に関して誰か知らない? ってつもりで書きました。

> Rが備えているような統計解析が同程度のコード量でできるんだったら

それは無理だと思う(少なくとも今後数年程度では)。
最低限の統計(関数電卓レベル)はともかく…
179154,140:2005/09/28(水) 17:39:32
>>175 は "速度" の話に関して誰か知らない? ってつもりで書きました。

自作の逆行列ライブラリの逆行列計算と python の inverse() の
CPU タイムをを実測してみました。256x256 の複素行列で python
の方が二桁以上高速でした。

256x256 行列では、逆行列を求める計算時間よりも HDD から元
データを読み出す時間が、二桁以上余分にかかっていました。
python は充分に高速です。

自作の行列ライブラリは valarray を使って L/U 分解アルゴリズムを
汎用的に templatelate 記述しているので遅いだろうとは思っていま
した。でも、python より二桁以上遅いとは org.

python の線形演算は weave を使って C でコンパイルされた lapack
のコードを動かしています。ですから C での線形演算と同等程度の計
算速度だと推測します。


-----------------------------------------------------------
逆に統計処理以外で scipy より R の優れた点はあるものでしょうか。
「R なら こんな計算ができるよ」など具体例を教えてください。
180デフォルトの名無しさん:2005/09/28(水) 19:01:06
>>179
そろそろスレ違いかなー、ぎりぎりかなー。
ここ見た?
「RjpWiki」内の「CRANパッケージリスト」
ttp://www.okada.jp.org/RWiki/index.php?CRAN%A5%D1%A5%C3%A5%B1%A1%BC%A5%B8%A5%EA%A5%B9%A5%C8
181デフォルトの名無しさん:2005/09/28(水) 23:40:47
> unixとwindowsでのGUIを使ったアプリケーション作成なんです。
そこで Kylix ですよ?
# 責任は取れない
182167:2005/09/28(水) 23:49:06
やさしいPython 出ないかな〜
183デフォルトの名無しさん:2005/09/28(水) 23:49:47
IronPython ....
MonoもWindows.Formsのサポートがぼちぼち動き始めてるし。
184デフォルトの名無しさん:2005/09/28(水) 23:56:45
>>179
思ったより高速だにゃーPython
専門性ばりばりでかつかつにチューンしたいとき以外はもうPythonでいいかも、な印象
185デフォルトの名無しさん:2005/09/29(木) 00:01:11
>>183
IronPythonって実行するとexeファイル吐き出すけど、何なんですか?
実行するとエラーで落ちるし。
Pythonをインストールしていない環境で使用できるようにするものではないんですか?
186デフォルトの名無しさん:2005/09/29(木) 09:13:33
>>179
統計用に特化してる環境に対して「統計処理以外」なんて
制限を付けたらRが不利になるのは当たり前じゃん。
python+scipyとRの単純比較かと思いきや、
行列計算にはLAPACKを使ったりするんだもの。
公正な比較じゃない。

・・・と、好きでもないRの肩を持ってみたりする。
187デフォルトの名無しさん:2005/09/29(木) 09:58:15
Pythonの初心者向けの書籍が見つかりません。
というか5、6冊しか出てないんですね。
やさしいpython希望
188デフォルトの名無しさん:2005/09/29(木) 10:16:22
というか、tutorial の和訳が一番。

それ以上はライブラリレファレンスを必要に応じてとか
例題集を眺めるってのでどうです?
189デフォルトの名無しさん:2005/09/29(木) 10:26:38
ok 探してみるぜボーイ
190デフォルトの名無しさん:2005/09/29(木) 18:47:54
出張に持って行けるサイズのはじパイ希望。
オライリーさん、要専用ブラウザでもいいから電子書籍化してくれ〜
191デフォルトの名無しさん:2005/09/29(木) 19:31:00
あれー?

chmが晒されてたよね(英語だけど)
192デフォルトの名無しさん:2005/09/29(木) 19:37:59
>>190
そこでSafariですよ。使ったことないけど。

つーか、持ち歩くならPython Pocket Referenceがよいね。
Python2.4もカバーしてるし、牽引もついてて読みやすい。
http://www.oreilly.com/catalog/pythonpr3/
193デフォルトの名無しさん:2005/09/29(木) 23:24:39
>>192
ほほぅ、本家では3rd ed.まで出てたのか。
和訳版1st ed.はできが悪かったが、
194デフォルトの名無しさん:2005/09/30(金) 00:35:47
>>190
Dive Into PythonをPluckerでPalm Handheldに入れて読む。これ最強。
195デフォルトの名無しさん:2005/09/30(金) 00:51:53
かみがいいです
196デフォルトの名無しさん:2005/09/30(金) 01:54:37
>195
プリンタで出せば良いじゃん
197デフォルトの名無しさん:2005/09/30(金) 05:03:17
英語ですか・・・、一度に2言語の習得はちょっと。
義務教育マジメに受けてれば理解できる!と言われそうだが。
198デフォルトの名無しさん:2005/09/30(金) 06:17:11
Python-listより
http://mail.python.org/pipermail/python-list/2005-September/301291.html

友人の一人が最近パイソンを噛り始めました。そして彼は言語についてすこし
不満をこぼしているのです(彼の好みには、パイソンは「杓子定規」すぎました)。
特に、彼はパイソンの表現が少し不自由にされているのが気に入りませんでした。
そこで私はパイソンの中をほじくりまわして、利用可能な「シンタックスシュガー」
な、いくつかのソースを発見しました。そしてこれがその結果です。

http://www.pick.ucam.org/~ptc24/yvfc.html

ラムダワロスwww
199デフォルトの名無しさん:2005/09/30(金) 07:18:05
>>198
ジョークなどという軽い呼び方をする域はゆうに越えてるな。
200デフォルトの名無しさん:2005/09/30(金) 12:52:41
>>198
ワンライナー厨か・・・・
201デフォルトの名無しさん:2005/09/30(金) 13:19:20
Huguninって何て読むの?
202デフォルトの名無しさん:2005/09/30(金) 13:34:27
ふぐにん
203デフォルトの名無しさん:2005/09/30(金) 16:51:08
>>200
Pythonに強引にLISPの表現を組み込んでるんじゃないか、コレ。
ワンライナー厨ってのとはまた違うと思う。

つかラムダとかmap()、filter()、reduce()なんかって将来無くす予定なのね。
Python3についてのPEP
http://www.python.org/peps/pep-3000.html
Guidoタンの見解
http://www.artima.com/weblogs/viewpost.jsp?thread=98196

恥ずかしながら最近知った。
関数型言語をあんまり知らない俺としては、Guidoタンの主張はうなずける感じ。
204203:2005/09/30(金) 17:01:32
あ、書き忘れ。
この話が出たときのこのスレの反応ってどんなだったの?
205デフォルトの名無しさん:2005/09/30(金) 18:44:21
過去スレ見れ。

Pythonは書くとき面倒なんだよ。他の言語に比べて手数が多い。
おかげで読むときは割と読みやすいんだが。
それがますます増える。
内包表現は高階関数として使えないのもマイナス。
単にそういうときは自分で関数を定義すればいいと思うかも知れないが、
同じ操作の名前を言語のユーザが共有しているというのは割と重要。
20670:2005/09/30(金) 20:53:48
>>198
(((( ;゚д゚)))アワワワワ
俺を殺す気ですか
207デフォルトの名無しさん:2005/09/30(金) 21:28:53
>>204
自分も今日になって知りました。
Py3への変化のほとんどは自分の思い通りの
変化なので、個人的には満足です。
ただ、ラムダがなくなるのは困るかも。
208デフォルトの名無しさん:2005/10/01(土) 03:57:08
関数型言語といやー Haskell だが、
この間、数十分ネット読んでみたが、あまり良く理解できなかった記憶が。

> Pythonは書くとき面倒なんだよ。他の言語に比べて手数が多い。
そうなんだ?
むしろ少ないと感じてたんだけど。

ただ、インデントは面倒だ。ブロック終端を表す記号が無いので、
オートインデントやインデント量が、しばしば悲惨なことになって手間取る。
209デフォルトの名無しさん:2005/10/01(土) 05:20:14
>208
Lispを書くときに支援エディターの機能を使わずに「かっこの対応で混乱する」と言うタイプ?
210デフォルトの名無しさん:2005/10/01(土) 06:08:23
>>209
Lispを書くときに入れ子のデータ構造を使わずに「かっこの対応で混乱しない」とか言うタイプ?
211デフォルトの名無しさん:2005/10/01(土) 08:31:45
>210
うん
212デフォルトの名無しさん:2005/10/01(土) 10:55:51
>>211
まてい、偽物

>>210
いや、python-mode.el と py-mode.l を使ってるが、
簡単に揃えられるキーバインドがあるのかな。
最近 python を始めたんでまた分かってない。
原理的に制御構文の後のブロックなど、
インデント量は自分で直すしかないと思うんだけど。
213212:2005/10/01(土) 11:00:04
あ、読み間違えた模様 orz ゴメンなさい >>211
214デフォルトの名無しさん:2005/10/01(土) 11:16:23
>>212
(add-hook 'python-mode-hook
(define-key python-mode-map "\C-m" 'reindent-then-newline-and-indent))
とか。
215デフォルトの名無しさん:2005/10/01(土) 11:20:07
ある任意の文字列がどの charset で表せるかってのを python で知る方法は
あります? email.Charset はこの用途には使えないっぽいし。どうやればいい
すかね。
216デフォルトの名無しさん:2005/10/01(土) 13:04:48
>>215
for teststring in (u'Hello, world!', u'\u00a9', u'ほげ', u'\u266a', u'\u2665'):
  print '"%s"' % teststring
  for codec in ('ascii', 'latin_1', 'shift_jis', 'cp932', 'utf_8'):
    print codec,
    try:
      teststring.encode(codec)
    except ValueError:
      print 'NG'
    else:
      print 'OK'

こういう事?
217デフォルトの名無しさん:2005/10/01(土) 13:57:30
>208

> ただ、インデントは面倒だ。ブロック終端を表す記号が無いので、
> オートインデントやインデント量が、しばしば悲惨なことになって手間取る。

オートインデントの失敗はともかく、インデント量がおおきくなるのは
コードの構造が悪いんじゃないか?

218デフォルトの名無しさん:2005/10/01(土) 15:09:43
python はインデンテーションが意味をもつくせに
def でコロン : 使ったり、なんか中途半端な気がするんですけど、これ如何に?
219215:2005/10/01(土) 16:23:36
>>216
どーも。やりたいことはそういうことです。やっぱ自力で except 拾うしかな
いんですかね。メールを扱うことを想定してるんで codec をズラズラと羅列
するのはちょっとツラいなあ。むむぅ。
220デフォルトの名無しさん:2005/10/01(土) 19:00:19
>>218
意味不明。

コロンが行末にあったら次行はインデントして、
なかったらインデントしないんだから一貫してるだろうに。
221デフォルトの名無しさん:2005/10/01(土) 20:27:20
ipythonをデフォルトシェルにしている人はいると思うんですけど
使い勝手はどうですか?支障はありませんか?
222デフォルトの名無しさん:2005/10/01(土) 21:06:27
>>220
その考え方なら、(行末にコロンが無くても)defが行頭にあったらインデントすればいい話じゃ?
ブロックに括弧を使わないなど、冗長性を押さえる方向性を採っているのPythonにおいて、
関数を表現するのにdefと : の両方を必要とするのは冗長だって意味だと思った
223デフォルトの名無しさん:2005/10/01(土) 22:35:46
(1)
xxxx xxxx xxxx:
  xxxx xxxx xxxx
  xxxx xxxx xxxx

(2)
xxxx xxxx xxxx:
  xxxx xxxx xxxx;
  xxxx xxxx xxxx;

(3)
xxxx xxxx xxxx
  xxxx xxxx xxxx
  xxxx xxxx xxxx

Python-listから転載。
Pフォントを使ってると見難いかも。エディタにでも貼ってくれ。
三番目でもヽ(゚д゚)ノ ええじゃないかってことだよな。
224200:2005/10/01(土) 22:37:58
>>222
それなら意味がわかる。でもあんたがエスパーにみえるけど。
225デフォルトの名無しさん:2005/10/01(土) 22:57:09
想像付きそうなもんだが
226デフォルトの名無しさん:2005/10/02(日) 00:18:20
xpy作れ
227デフォルトの名無しさん:2005/10/02(日) 07:07:10
>>224
普通わかるだろ。頭が悪くなければな。
228デフォルトの名無しさん:2005/10/02(日) 08:07:40
>>219
メールならヘッダに charset が書いてあるんじゃねーの?
229デフォルトの名無しさん:2005/10/02(日) 09:08:48
スパムフィルター生成のために'aaaaa.com'から'zzzzz.com'までのドメイン文字列を生成しようとして

for a in range(97,123):
 for b in range(97,123):
  for c in range(97,123):
   for d in range(97,123):
    for e in range(97,123):
     domainname = chr(a)+chr(b)+chr(c)+chr(d)+chr(e)+'.com'

なんてしたんだけど。
もっとスマートな書き方ってありそうな気がする。(あとドメイン名だから-とか数字も有るし)
おすすめな書き方ってありますか?
230デフォルトの名無しさん:2005/10/02(日) 09:28:02
フィルターだったら正規表現でなんとかならんか?
全文字列を生成するって、まるでスパムを作るみたいじゃん。
231デフォルトの名無しさん:2005/10/02(日) 11:09:57
> 全文字列を生成するって、まるでスパムを作るみたいじゃん。

全く同感。

232デフォルトの名無しさん:2005/10/02(日) 11:10:06
26*26*26*26*26=11881376
アタマワルス
233デフォルトの名無しさん:2005/10/02(日) 11:33:02
229 名前:デフォルトの名無しさん[sage] 投稿日:2005/10/02(日) 09:08:48
スパム生成のために'aaaaa.com'から'zzzzz.com'までのドメイン文字列を生成しようとして

for a in range(97,123):
 for b in range(97,123):
  for c in range(97,123):
   for d in range(97,123):
    for e in range(97,123):
     domainname = chr(a)+chr(b)+chr(c)+chr(d)+chr(e)+'.com'

なんてしたんだけど。
もっとスマートな書き方ってありそうな気がする。(あとドメイン名だから-とか数字も有るし)
おすすめな書き方ってありますか?
234デフォルトの名無しさん:2005/10/02(日) 11:53:06
ヒント:ベイジアンフィルタ
235215=83:2005/10/02(日) 12:11:43
>>228
あ、正確に言うと rss を mail に変換する
ttp://www.aaronsw.com/2002/rss2email/
を弄ってるんですわ。これ日本語が絡むと記事がボロボロになるんで。

で、us-ascii 以外の文字を含む場合は utf-8 + base64 にしてる
(ってか email パッケージがそうする) んですが、それもなんだかなあ、と。
236デフォルトの名無しさん:2005/10/02(日) 12:20:46
:が行末にあると次行インデント、の方が
defかifかelifかelseかwhileかforかtryかexceptかfinallyかclassが行頭にあると次行インデント、よりも
人が憶えるのも楽だしパーサも単純になるから、
あえて冗長にしたんじゃないのかなぁ。

あるいは、インデントを伴う構文は重要であり他と特に区別すべし、
というGuidoパパの信念がそうさせているとか。
237デフォルトの名無しさん:2005/10/02(日) 12:34:52
>>236
上手いこと言うね。なるほど。
そういえば俺も、そういうバランス感覚が好きでPythonを使い始めたんだっけ。
238デフォルトの名無しさん:2005/10/02(日) 14:22:45
pythonで作ったアプリにプラグイン機構を組み込みたいのですが
何かお手軽な方法、または、よく使われている方法はないでしょうか。

前提条件は
・コンフィグファイルの内容で読み込むプラグインを変更する。
・プラグインはplugins/の中にある。
・プラグインも自動でバイトコンパイルされる。
・プラグインは'任意.py'で定義されている'class 任意'だとなおうれしい。
です。

ここ見ろ!でもかまいません。
よろしくお願いします。
239デフォルトの名無しさん:2005/10/02(日) 14:26:26
>>236
ちょっとおかしいところがあるな。現状
defかifかelifかelseかwhileかforかtryかexceptかfinallyかclassが行頭にあると行末に : があるかどうかをチェックしないといけないわけだからパーサ的には別に単純になってないんじゃないか?
人が憶えるってのに関しても、どれの後ろに : をつけて次行はインデントってのと、どれの次行はインデントってのを憶えるのは結局同じだと思う。むしろ : はめんどくさい。
240デフォルトの名無しさん:2005/10/02(日) 14:30:03
>>238
imp モジュールとか modulefinder をうまく使うとかかな。
http://docs.python.org/lib/module-imp.html
http://docs.python.org/lib/module-modulefinder.html
↑このへん
241デフォルトの名無しさん:2005/10/02(日) 14:36:23
>>239
テキストエディタでpythonモードを作るときは
コロンの次行がインデントに統一されているほうがやりやすい
242デフォルトの名無しさん:2005/10/02(日) 14:58:40
>230
肝心な事を忘れていました。
qsv系spam([email protected]とか)からスパムがやたらと来るので、あらかじめqsv系が持っている
ドメインを割り出して拒否リストを作りたいのです。
そのスパム業者はhost -t NS kkjhs.comとしてNSレコードを引くとns1.kim-name.netを使っている
のが特徴です。
243デフォルトの名無しさん:2005/10/02(日) 15:52:29
>>235
RSS = XML だから <?xml encoding="ほにゃらら" ?> と書いてあるんジャマイカ?
エンコーディングを指定しないお行儀の悪い RSS が多いのかな。
244デフォルトの名無しさん:2005/10/02(日) 16:39:48
スレと関係ない話題で失礼します。

>>242
これひどすぎですよね。
この件で議論しているスレッドってないでしょうか。

とりあえずISPに連絡してみました。
245デフォルトの名無しさん:2005/10/02(日) 16:51:28
>>242
qsv系のspamが今この瞬間にkim-name.netに登録されてるホストだけを将来も使い続ける保証がないから,ホストよりも内容でフィルタした方がいいように思うけど?
それでもやりたいなら,メールが届くたびに送信元ドメインのNSレコードを引いて調べるフィルタを作ったらどう?一度弾いたドメインはキャッシュしておけばいいでしょ.
246デフォルトの名無しさん:2005/10/02(日) 17:12:02
>>245
> ホストよりも内容でフィルタ
そうしたいのは山々ですけど
一目でプライベートメールと区別がつかないSPAMが
増えていて、とてもベイジアンだけで対応しきれないんです。

誘導するURLやヘッダも毎回異なり、>>242さんの手がかりが
ほぼ唯一の共通点なんです。

>メールが届くたびに送信元ドメインのNSレコードを引いて調べる
がよいと思います。

スレ違いすみません(>_<)
247デフォルトの名無しさん:2005/10/02(日) 19:24:24
>>240
ご回答ありがとうございます^-^

なんとか以下のように実装することができました。
ありがとうございました。

def loadAnimal(modname, clsname):
import imp
fp, path, desc = imp.find_module(modname, ['plugins'])
try:
module = imp.load_module(modname, fp, path, desc)
finally:
if fp: fp.close()
return vars(module)[clsname]()
# test
modname, clsname = 'Dog', 'Poodle'
obj = loadAnimal(modname, clsname)
obj.eat('food')

# もっと簡潔ですばらしい方法があればぜひ教えてくださいm(_ _)m
248デフォルトの名無しさん:2005/10/02(日) 19:42:24
>>247
sys.path.insert(0, "plugins")
obj = getattr(__import__(modname), clsname)
249デフォルトの名無しさん:2005/10/02(日) 20:40:45
>>239
1. def 文や if 文のヘッダ部は1行に収まるとは限らない.

def myfunc (foo, bar,
 baz, spam, egg):
 ...

2. def や if 文全体は 1行におさめて書いてもよい.

if reply=”blue": raise Galahad

ので,ヘッダ部の末尾を示すコロンは曖昧さをなくすのに必要じゃないかな.
250デフォルトの名無しさん:2005/10/02(日) 21:11:39
>>249
1. に関しては、長くなりすぎて改行したいときには \ で改行の意味を消せるってのがあるので、それに統一すればよい。
2. に関しては、python は改行、インデントに意味を持たせたかったんだろ?一行におさめたいなら、既存の ; をもった言語のほうが柔軟。

2. に関してはわざわざ言うまでもないと思っていたよ。
251デフォルトの名無しさん:2005/10/02(日) 21:16:38
なにをしのごのいっとるんだ
252デフォルトの名無しさん:2005/10/02(日) 21:27:54
forkしてxpyでもつくれ
253デフォルトの名無しさん:2005/10/02(日) 21:32:04
>>241
まぁそれは確かにそうかもしんない。
インデントを必要とする予約語が増えたとしても変更なく対応できるしな。
でも、python モードを作るエンジニア一人(または少数)がちょっと楽をするために、大多数の普通の python ユーザが一々 : を打つという手間をはらっているってんではそれはおかしいと思う。
: がないと無理だってんならともかくなぁ。
254デフォルトの名無しさん:2005/10/02(日) 21:35:46
なにをしのごのいっとるんだ
255デフォルトの名無しさん:2005/10/02(日) 21:36:28
小指を動かすのも面倒なんだろうな
256デフォルトの名無しさん:2005/10/02(日) 21:43:28
>>255
言語設計の思想、哲学のレベルの話をしているんだべ?
python 本家でそういう議論さすがにあったと思うんだけど、
昔から関わっているような人ってのは・・・・さすがにいないか。
大分基礎部分だもんな。
257デフォルトの名無しさん:2005/10/02(日) 21:58:37
Pythonが「冗長性を押さえる方向性を採っている」(>>222)という見方には同意しかねるなあ。
むしろ可読性のために冗長性を取り入れている希ガス。
すぐに思いつく事例:
・os, sys など多用されるモジュールもいちいち import 汁。
・正規表現のサポートも文法要素じゃなくただのモジュール。冗長、てゆーかマンドクサイ。
・メソッド内が self であふれかえる。
・三項演算子がなく if: else: で書くしかない。以前は += なども中田。
・True/Falseの後付け。可読性は上がるが言語仕様としては冗長で今さら感あり。

俺的にはこのあたりの冗長性(可読性)のさじ加減が気に入ってる。
258デフォルトの名無しさん:2005/10/02(日) 22:05:00
あ、極め付けのを忘れてた。文字列リテラルの書き方。
・'…' (シングルクオート) と "…" (ダブルクオート) が選べる。
・トリプルクオートも '''…''' と """・・・""" が利用可能。
・"…" (string) に加えて r"…" (raw string), u"…" (unicode), ru"…" (raw unicode) と4種類もある。
これを冗長といわずして何と言おうか。でも好き♥(藁
259デフォルトの名無しさん:2005/10/02(日) 22:05:51
訂正:ru"…" → ur"…"
260デフォルトの名無しさん:2005/10/02(日) 22:12:14
"`"これは好きじゃない"`"
261デフォルトの名無しさん:2005/10/02(日) 22:24:39
>>248
がーん
2行ですんでしまうんですね。鬱。
262デフォルトの名無しさん:2005/10/02(日) 22:44:35
>>250 その考え方は物理行に執着し過ぎだと思うなぁ
263デフォルトの名無しさん:2005/10/02(日) 22:53:32
>245
スレ違いな話題で申し訳ないが。
PostfixだとNSレコードを引いて該当するドメインだと拒否する機能があったりします。
私はqmailを使っています。
まぁqmail-smtpd用にNSレコードを引いて拒否するフィルターを書いた方が筋が良いのも分かります。

……ただ、Pythonの演習として'aaaaa.com'から'zzzzz.com'までの文字列を生成するのに
forを五重にするよりもスマートな書き方がないのかな?と思って質問してみました。
264デフォルトの名無しさん:2005/10/02(日) 22:58:24
python-listで調べたら,「コロンを使うのに技術的な理由はない.単に人間向けの可読性の便宜(human-factor)だ」って書いてあった.
ttp://mail.python.org/pipermail/python-list/2000-December/022335.html
265デフォルトの名無しさん:2005/10/02(日) 23:05:47
>>263
s = list("abcdef.....12345677890_")
("%c%c%c%c%c.com" %(a,b,c,d,e) for a in s for b in s for c in s for d in s for e in s)
なんてどうかな
a+b+c+d+e+'.com' でもいいけど,上の方がちょっと速いらしい.
266デフォルトの名無しさん:2005/10/02(日) 23:16:52
>>264
effbot超クール
267デフォルトの名無しさん:2005/10/03(月) 00:59:08
すなおに関数で書いてみた。limitwidthで文字幅を決める。デフォルトは'a'から
'zzzzz’まで。basecharsetは作りたい文字のリストとかを指定。
('a','b','c'・・・)みたいなtupleを作って入れたほうが少し速い。
結果はリストのリストで帰ってくる。+で連結するよりappendのほうが速いから。

def generate(lowerlimitwidth = 1,upperlimitwidth = 5 \
  ,basecharset = string.ascii_lowercase):
  generatedstringslist = []
  charsequences = basecharset
  for i in range(1,upperlimitwidth):
    if i >= lowerlimitwidth:
      generatedstringslist.append(charsequences)
    charsequences = [x + y for x in charsequences for y in basecharset]
  generatedstringslist.append(charsequences)
  return generatedstringslist

とりあえず、同じ処理なら229、265のやつの3-5倍は速いみたい。
268デフォルトの名無しさん:2005/10/03(月) 01:11:58
fgはhttp://www.unixuser.org/~euske/doc/python/recursion-j.htmlから

c = "abcdefghijklmnopqrstuvwxyz12345677890_"
for s in fg([c, c, c, c, c]):
 print s+".com"
269デフォルトの名無しさん:2005/10/03(月) 01:18:37
>>267
generatedstringslist.extend(charsequences) ジャマイカ?
特に generate(1, 1) のとき。
270デフォルトの名無しさん:2005/10/03(月) 01:39:35
>>268のリンク先はためになるな。俺もやってみた。

import string

def generate(n, limit, s = string.ascii_lowercase):
    assert n <= limit
    if n < limit:
        for i in range(n, limit):
            for item in f(i, i):
                yield item + ".com"
    elif n > 1:
        for item in f(n-1, n-1):
            yield item
            for c in s:
                yield item + c
    else:
        for c in s:
            yield c

for item in generate(1, 3):
    print item
271デフォルトの名無しさん:2005/10/03(月) 01:42:14
関数名の置換をミスってた。スレ汚しスマソ orz

import string

def generate(n, limit, s = string.ascii_lowercase):
assert n <= limit
if n < limit:
for i in range(n, limit):
for item in generate(i, i):
yield item + ".com"
elif n > 1:
for item in generate(n-1, n-1):
yield item
for c in s:
yield item + c
else:
for c in s:
yield c

for item in generate(1, 3):
print item
272271=270:2005/10/03(月) 01:43:21
>>271
氏ね。

import string

def generate(n, limit, s = string.ascii_lowercase):
    assert n <= limit
    if n < limit:
        for i in range(n, limit):
            for item in generate(i, i):
                yield item + ".com"
    elif n > 1:
        for item in generate(n-1, n-1):
            yield item
            for c in s:
                yield item + c
    else:
        for c in s:
            yield c

for item in generate(1, 3):
    print item
273267:2005/10/03(月) 04:03:45
>>269
それでもいいんだけど、appendでも大丈夫。appendだと結果が、
[['a','b'...]['aa','ab'...]...]
こうなって、同じ幅の文字のリストが手に入るのが微妙に俺ごのみなだけです。
あと、appendのほうがちょっと速いっぽい感触。
つか268のよいね。iteratorの良さがやっとわかった。
幅5桁までなら267の関数のほうが6倍くらい速いけど、6桁以上伸ばそうとすると、
メモリがいっぱいになってエラーで死ぬ。267のは20分以上かかったけど6桁のループ
回してる間メモリ使用量は一定量からほとんど変らず。すげー。
これからはちゃんとgeneratorの勉強もしようと思いますた。
274267:2005/10/03(月) 04:05:07
>>273
×267のは20分以上かかったけど
○268のは20分以上かかったけど
275デフォルトの名無しさん:2005/10/03(月) 10:05:05
けっこうpythonやってる人いるんだね。
とちゅー鳥みながら言ってみる。
276デフォルトの名無しさん:2005/10/03(月) 10:14:39
GoogleもPython製らしいな
277デフォルトの名無しさん:2005/10/03(月) 10:27:12
>>275
おれは「perlは便利」と信じこんで生きてきたが、
「正規表現の使えるスクリプト」で「ある程度ライブラリがある」
ものならなんでもよかったらしい。
で、知らぬ間にPythonユーザーになってた。
278デフォルトの名無しさん:2005/10/03(月) 10:38:10
無料レンタル鯖でPython使えたらPerl切り捨てられるんだけどなぁ
279デフォルトの名無しさん:2005/10/03(月) 10:44:07
perlで実装されたpythonがあればいいんだよな(嘘
280デフォルトの名無しさん:2005/10/03(月) 11:00:58
Perl python 略して Python

あれ?
281デフォルトの名無しさん:2005/10/03(月) 11:51:53
昔、CGI用にライブラリ全部スタティックリンクして、バイナリファイル1個で動くようにしたPythonを見たような。
282デフォルトの名無しさん:2005/10/03(月) 12:58:31
283デフォルトの名無しさん:2005/10/03(月) 16:25:55
>268
ドメイン名で使用できる文字は"英字(letter)、数字(digit)、ハイフン(hyphen)"なので、
アンダースコアじゃなくてハイフンで。
284デフォルトの名無しさん:2005/10/03(月) 16:31:31
RFC1123によると英字・数字で始まって(つまりハイフンで始まるのはダメ)途中はハイフンもありで
最後は英字・数字で終わる。
[a-zA-Z0-9] ([a-zA-Z0-9-]* [a-zA-Z0-9])?
285デフォルトの名無しさん:2005/10/04(火) 02:04:08
こうして山のような無意味なクエリーが発行されるのね…
286デフォルトの名無しさん:2005/10/04(火) 09:33:57
Pythonユーザーの方に質問です。
PythonでかかれたアプリをWindowsネイティブバイナリにコンパイルすることは可能でしょうか?
Javaならgcjを用いて高速化ができますのでそういう選択肢があるとうれしいのですが。
287デフォルトの名無しさん:2005/10/04(火) 10:21:21
>>286
使ったことないけど、Psycoとかはどうだろ
http://psyco.sourceforge.net/introduction.html
288デフォルトの名無しさん:2005/10/04(火) 10:42:23
>>286
py2exeで実行ファイルにできるけど、高速化するのかな?
289デフォルトの名無しさん:2005/10/04(火) 17:38:16
>>288
py2exeはスクリプトとスクリプトがimportしているモジュールとpython2*.dllをzipして,pythonを起動してスクリプトを実行させる小さなプログラムの後ろにくっつけるだけで,ネイティブコードへの変換や最適化は行わないよ.
psycoを使えば少しは高速になるかもしれないね.
290デフォルトの名無しさん:2005/10/04(火) 17:38:44
>>288
必要なモジュールと起動用exeを詰め合わせるだけで、
実行はインタプリタまかせだったような気がする
291デフォルトの名無しさん:2005/10/04(火) 17:40:45
1日10レスもないスレで被った
結婚しよう
292デフォルトの名無しさん:2005/10/04(火) 17:40:58
Psyco 経験者
293デフォルトの名無しさん:2005/10/04(火) 18:02:05




















│    _、_
│  ヽ( ,_ノ`)ノ 残念 私のおいなりさんだ
│ へノ   /
└→ ω ノ
      >  
294288:2005/10/04(火) 18:38:04
>>289
>>290
そうなのか。ありがとう。
295デフォルトの名無しさん:2005/10/04(火) 22:18:54
>>292
>>293
そうなのか。ありがとう。
296デフォルトの名無しさん:2005/10/05(水) 00:09:31
>>181
OpenOfficeのフォームエディタでダイアログつくって、という手もあるかも。
マクロでPython呼び出して使えるらしい。
297デフォルトの名無しさん:2005/10/05(水) 00:18:52
PythonCard 誰でも本格的に導入できるようにパッケージした強者はいませんか?
開発のしやすさに触発されました。
298デフォルトの名無しさん:2005/10/05(水) 01:08:40
ああ,それならPDP-11用に作ったよ.


って言ったら要る?
299デフォルトの名無しさん:2005/10/05(水) 01:13:43
>>298
Win32用なら要ります
300ハーピィ:2005/10/05(水) 01:29:20
E・∇・ヨノシ <300ゲット♫
301デフォルトの名無しさん:2005/10/05(水) 01:34:06
win32用なら
ttp://jaist.dl.sourceforge.net/sourceforge/pythoncard/PythonCard-0.8.1.FIXED.win32.exe
があるけど,Enthonみたいな全部入りが欲しいのかな?
302デフォルトの名無しさん:2005/10/05(水) 01:43:51
wxPython2.6-win32-unicode-2.6.1.0-py23.exe
PythonCard-0.8.1.FIXED.win32.exe
この二つを順にインスコするだけじゃん。何が問題なんだ?
303デフォルトの名無しさん:2005/10/05(水) 02:08:13
Python、wxPython、PythonCard
これだけ、優れたプロダクトなのにバラバラになっていてはもったいないと思いませんか?
ひとつのパッケージとして、整理してリリースすれば(日本語説明書、インストーラ完備)
そこら辺に転がっている糞みたいなオールインワンのBASIC言語の開発環境とかとくらべても目じゃないです。

言語仕様もシンプルで美しいし、
PythonCardでGUIも簡単に構築できて、
クロスプラットフォーム対応アプリがビルドできて、
日本語の文書も充実していて、
導入が簡単になれば、ひとつの市場が生まれるのでは?
304デフォルトの名無しさん:2005/10/05(水) 03:00:59
そこらへんのどの糞を見て云ってるのかわからんし.市場がどうの っていうの
にも懐疑的だけど,>>303 のアツさに感心した.面白そうだからプロジェクト
上げたらどう?まずは Py+wx+PyCard の使い方のまとめページとか作ってみたら?

Python: Python Software Licence
wxPython/wxWidgets: wxWidgets Library Licence
PythonCard: BSD Licence

なので,バイナリパッケージを作って配るのは問題ない(と思う)
インストーラはともかくとして,問題は誰が日本語説明書を書くか,だねぇ.
305デフォルトの名無しさん:2005/10/05(水) 04:22:37
それだったら↓を進めて欲しい。出来上がったアプリの仮想メモリ使用量はこっちの方が遥かに少ないよ。ちょっと難しいけどね。
ttp://venster.sourceforge.net/htdocs/
306デフォルトの名無しさん:2005/10/05(水) 06:55:43
>>305 のアツさに感心した.面白そうだからプロジェクト上げたらどう?
まずは >>305 の使い方のまとめページとか作ってみたら?
307デフォルトの名無しさん:2005/10/05(水) 07:55:13
>>304
ライセンスOKならやってみようかな。
wikiでも立ち上げて、ちょっとヅツやってれば、そのうち誰か手伝いに参加してくれるかも?
日本Pythonユーザ会にも声かけてみるね。

P.S.
俺はWindowsとMacOSXの両刀使いだがLinuxはやったことないので対応できないと思ふ。
308デフォルトの名無しさん:2005/10/05(水) 07:56:46
>>305
Fensterは汎用性がないし、なによりPythonCardで簡単に開発始められる訳じゃないから却下です。
>>306に同意
309デフォルトの名無しさん:2005/10/05(水) 08:03:19
PythonCardって古くさいな
310デフォルトの名無しさん:2005/10/05(水) 08:10:41
>>309
ほかに古臭くないトレンディな開発環境があるんですか?
311デフォルトの名無しさん:2005/10/05(水) 08:19:39
>>305 「ctypesに触発されてwin32のライブラリをラップしたけど,それだけで満足して20ヶ月以上も放り出されているプロジェクト」に見えるな.
windows.pyとかgdi.pyの末尾が泣かせる.アルファギーククオリティ.
312デフォルトの名無しさん:2005/10/05(水) 10:01:43
HyperCardにあこがれていた自分は
PythonCardをやってみようと、いま思った。
がんばるよ、みんな。
313デフォルトの名無しさん:2005/10/05(水) 10:52:43
「トレンディ」というコトバ自体が古臭いと思う今日この頃。
314デフォルトの名無しさん:2005/10/05(水) 11:22:13
やばい。使いやすくパッケージングしたら売れるよ絶対これ。

インストール > GUI エディタ起動 > 簡単に GUI が設置できることにまず食指が動かされる > 何かが作れそうな予感 > コード書きが簡単 > デバッグが手軽 > アプリ完成 > Mac & Win & Linux 対応で配布可能

これはおそらく プログラムのビギナー層に受け入れられる。
特に初心者向け開発環境に貧しい Mac OS X だと受けがよさそう?
315デフォルトの名無しさん:2005/10/05(水) 11:24:45
売るんだったらwxWidgetsに存在するプラットフォームによる違いを
自力で補完できる能力は必要だよ。
316デフォルトの名無しさん:2005/10/05(水) 11:58:13
興味がでたのでPythonCardをインストールしてみた
起動しなかった
317デフォルトの名無しさん:2005/10/05(水) 12:34:55
>>316
wxPythonインスコした?
318デフォルトの名無しさん:2005/10/05(水) 13:07:08
いいねぇ,オレもはじめてみるよ,PythonCard
319次スレ:2005/10/05(水) 13:53:28
【トレンディ】PythonCardのお勉強Part8【絶対売れる】
http://pc8.2ch.net/test/read.cgi/tech/1113431728/l50
320デフォルトの名無しさん:2005/10/05(水) 14:08:10
ttp://tabesugi.net/memo/cur/cur.html#041118
> しかしなぜ、ファイルを一度ぜんぶバッファにためこむようにしなかったんだろう?

それはttyをファイルと同一視するという哲学からきた仕様です。
端末からの操作も#!による実行も同じセマンティクスで動いています。
^D(End of File)でログアウトできるのがその証拠。

source: "The Unix Programming Environment"
321デフォルトの名無しさん:2005/10/05(水) 14:11:09
>>316
インストーラの不親切さからか出だしでつまづく人が多いんだよね。
やっぱり統合パッケージ化はあるといいね。
322デフォルトの名無しさん:2005/10/05(水) 14:24:22
プログラムを書こうという人間がそんなところでつまずいていたら
先が思いやられると思うんだが・・・。
323デフォルトの名無しさん:2005/10/05(水) 14:48:19
>>320
誤爆?
324デフォルトの名無しさん:2005/10/05(水) 16:40:50
wxか。。。でかいから嫌だな・・・。
325305:2005/10/05(水) 17:39:31
>>306
おれが今までvensterを利用して作ったものはサンプルの範囲内。
だからあまり意味は無いかも知れんが思いを伝えるには必要かも。ちょっとサイト立ち上げ検討します。

>>311
確かにそう。保留のままになっている部分がめっちゃ多い。
そしてctypesを使用して扱っている部分があまりにもネイティブ過ぎて今の俺には意味不明。
なんてったって俺は使いやすさでPythonを選んだ男でありC++など弄ったこともない。ってか理解できない。

Winで開発している皆さん。一度使ってみて下さい。wxにはないCOOLBARにも対応しており、またさらに開発を進めれば、どんなWinGUIだって作成出来る。
そして何度も言うが、めっさ軽い。一度vensterとwxのサンプルを見比べて見て下さい。
wxはインポートしただけで約20メガの仮想メモリを使用。一方vensterはフレームだけだったら4メガ以下。Delphiには敵わないが、VBには負けていない…と思う。

ただ最大の問題点は難しくPythonっぽくないって事。

ってことで今回は却下だな。
326デフォルトの名無しさん:2005/10/05(水) 17:43:51
> ちょっとサイト立ち上げ検討します。
> ってことで今回は却下だな。
どっちなんだよっ!
327デフォルトの名無しさん:2005/10/05(水) 17:46:43
VCLライクなGUI Toolkitはないんか
328デフォルトの名無しさん:2005/10/05(水) 18:59:35
Apollo
329デフォルトの名無しさん:2005/10/05(水) 19:38:51
楽するために努力する。
新しいこと、面白いこと、よりよいものを作ろうとしている人の出足を引っ張ってはいけない。

Pythonは魅力的な言語だし、日本ではまだまだ未開拓の分野。
これから草の根の活動に支えられて発展していくことを願います。
330デフォルトの名無しさん:2005/10/05(水) 20:10:55
楽するために努力させる。
331デフォルトの名無しさん:2005/10/05(水) 21:32:27
PythonCardって、boa constructorと比較してどうなの?
開発環境とか、wxPythonをラップしたクラスのとっつき易さとか。

個人的にはboa使ったことあるんだが、感想こんな感じだった。
- Delphiライクにつくれていい
- wxPythonそのままなので、デフォルトで選べるGUIコンポーネントがいまいち少ない
- メニューの作成が面倒
332デフォルトの名無しさん:2005/10/05(水) 22:35:39
Glideでインターフェイス作ってPyGTKでGUIアプリ作るの結構良いよ。

PyGTKつながりで、前に見つけたんだけどおもろいので貼っとく。
Creating a GNOME Web Browser with Python
http://patrick.wagstrom.net/tutorials/pygtkmozembed/pygtkmozembed.html
333デフォルトの名無しさん:2005/10/05(水) 22:46:26
PythonでWGETをつかった巡回スクリプトみたいなものは出来ますか?
334デフォルトの名無しさん:2005/10/05(水) 22:58:40
できるけど,そんなことbashでやれよ...
335デフォルトの名無しさん:2005/10/05(水) 23:10:08
お勉強スレだからべつにいいんじゃねぇの
336デフォルトの名無しさん:2005/10/05(水) 23:10:40
pythonで書くほうが楽。
337デフォルトの名無しさん:2005/10/05(水) 23:12:53
>>334
bashでもできるけど、そんなことPythonでやれよ...
338デフォルトの名無しさん:2005/10/05(水) 23:25:42
python mkwgets.py | sh
で。

339デフォルトの名無しさん:2005/10/05(水) 23:37:56
>>325
>>COOLBARにも対応しており、

コボラに対応したのかと思った。
340デフォルトの名無しさん:2005/10/05(水) 23:57:33
>>334に一票

それどころから用途によってはhttrack + zsh くらいで十分.
341デフォルトの名無しさん:2005/10/06(木) 00:08:49
Python ってシェルスクリプトより面倒なんだw
そんじゃ Gentoo って何なのよ?
342デフォルトの名無しさん:2005/10/06(木) 00:28:58
まあダウンローダー作るにはurllib、urllib2のurlopenはちと遅い
俺はpycurlで書いてるけど、これはかなり速くて良し
オプションの設定がめんどいときは
popen2.popenなんとか("curl なんたら")
で済ますこともあるけど
343デフォルトの名無しさん:2005/10/06(木) 01:08:01
っていうか「連番エロ画像をダウンロードしたい」という質問の方が食い付きが良いかもよ。
344デフォルトの名無しさん:2005/10/06(木) 01:14:35
連番のH画像を一気にダウンロードする@UNIX板
http://pc8.2ch.net/test/read.cgi/unix/979106537/
345デフォルトの名無しさん:2005/10/06(木) 02:12:08
PythonCard の件ですが当面はローカルで作業して
ある程度形になったら
ここと日本Pythonユーザーの会に連絡して何らかのリリースを行えたらと思っています。
プロジェクトのネーミングも募集です。

「py-card」「PythonCreator」「PythonCard ~」とかでしょうか?
346デフォルトの名無しさん:2005/10/06(木) 03:13:55
urllib(|2)はconnectだけでなく、以後も遅いの?
347デフォルトの名無しさん:2005/10/06(木) 08:51:09
プログラミングがほとんどできないので、
チュートリアルで勉強しつつそのパッケージの動向を見守らせていただきます。
がんばってください。
348デフォルトの名無しさん:2005/10/06(木) 11:41:39
>>346
timeitモジュール使ってちょっと試してみたけど、そんな感じみたい。
urllib2.urlopenしてから計測開始して、read()し終るまでの時間で、
pycurlはconnectとreadが終ってた。
349デフォルトの名無しさん:2005/10/06(木) 14:24:55
>>345
一括インストールパッケージであることがすぐに理解できる名前がいいです。
「PythonCard 〜」とかはいいと思う。

「py-card」「PythonCreator」はまったく別の新しいものを想起させるのでイクナイ。
350デフォルトの名無しさん:2005/10/06(木) 14:30:57
ActivePythonが「Python + win32all + IDE(pythonWin)」であることを考えると、
やっぱりPythonCreatorって名前もありかも。
351デフォルトの名無しさん:2005/10/06(木) 15:20:29
PythonCardKit でどうでしょう
352デフォルトの名無しさん:2005/10/06(木) 17:08:55
こういうときは略称から決めるのも手
353デフォルトの名無しさん:2005/10/06(木) 17:49:29
ぱいぱん
354デフォルトの名無しさん:2005/10/06(木) 21:51:05
PythonCard Package、QuickPython、pythonCardなんかどうでしょう
355デフォルトの名無しさん:2005/10/06(木) 22:11:14
>>353
決定。
356デフォルトの名無しさん:2005/10/06(木) 22:26:55
357デフォルトの名無しさん:2005/10/06(木) 22:55:52
>>356
なぜpypamじゃないんだ
358デフォルトの名無しさん:2005/10/07(金) 00:52:00
ぱいぱい PyPI
ぱいぱん pypan
ぱいちんこ Pychinko

卑猥だなw
359デフォルトの名無しさん:2005/10/07(金) 00:54:55
PyPAMはpypanとは別にあるよ。
360デフォルトの名無しさん:2005/10/07(金) 01:17:16
VisualPython …
361デフォルトの名無しさん:2005/10/07(金) 02:27:53
こゆーのは堂々とした方がいいんだよ

ぱいよりおまんこ pyYoriOmanko
これだねやったもんがちよ?万華鏡とかフェラガモとかが先駆者だね
362デフォルトの名無しさん:2005/10/07(金) 07:09:25
*激しくモチベーション低下中*
363デフォルトの名無しさん:2005/10/07(金) 07:30:07
VisualManko
364デフォルトの名無しさん:2005/10/07(金) 07:40:21
pycでええやんと思ったがpython compilerとかぶるな。
365デフォルトの名無しさん:2005/10/07(金) 09:32:43
ふつうにグラフィカルパイソンとかじゃだめ?
366デフォルトの名無しさん:2005/10/07(金) 12:09:20
PythonCard Kit か PythonCard Creator で決定でいいよ。
367デフォルトの名無しさん:2005/10/07(金) 14:02:46
Visual Python.NET
368デフォルトの名無しさん:2005/10/07(金) 14:22:06
PythonCard Studio という手もあるね
369デフォルトの名無しさん:2005/10/07(金) 17:12:52
PCSじゃパイパンカードキャプターになっちまう
370デフォルトの名無しさん:2005/10/07(金) 19:58:22
371デフォルトの名無しさん:2005/10/07(金) 20:06:25
そろそろお勉強再開・・・
372デフォルトの名無しさん:2005/10/07(金) 20:34:54
PythonCardCaptorSakura

和風でいい名前じゃないか
桜なら海外でも通じるだろう
Captorの意味もそんなに悪くない
373デフォルトの名無しさん:2005/10/07(金) 21:40:34
さくらたん(;´Д`)ハァハァ
374デフォルトの名無しさん:2005/10/07(金) 21:52:02
>>345
おい、そろそろこの流れに収拾をつけてくれ
375345:2005/10/07(金) 22:32:26
>>374
仮称で「PythonCard Kit」に。
実際の成果物のほうが肝心なので、これから作業に集中します。
先にOSX版を完成させてからWin32に移植予定です。

VisualBasicのプロジェクトファイルをPythonCard用に変換できるのは便利ですね。
OSX版のサンプルのアプリケーションもサクサク動いています。
376デフォルトの名無しさん:2005/10/07(金) 23:25:16
亀レスですけど
>>243
あんまりチェックしてないけどまず指定してるんじゃないすかね。
ってかencodingは必須でなかったっけ。

そこから引っ張ってくるのが素直だとは思うんですが、少なくとも日本語の場
合はそれを直接使えないので特別扱いしなきゃいけないのがやっぱりスマート
でないんですよねえ…。ちょっと悩みどこ。
377デフォルトの名無しさん:2005/10/08(土) 08:33:41
>>376
> 日本語の場合はそれを直接使えないので特別扱いしなきゃいけない

どゆこと? <?xml encoding="ほにゃらら" ?> が指定されていて
実際のエンコーディングと合ってるなら特別扱いの必要はない気が
するんだけど。
378デフォルトの名無しさん:2005/10/08(土) 09:46:42
>>377
「直接使えない」ってのは語弊があるか。
メールに変換するって前提なんで、euc-jp/shift-jis あたりはそのまま使うの
は気持ち悪いな、と。まぁちゃんと Content-Type 付けてやれば今時はそう困
らないのかもしれませんけど。
379デフォルトの名無しさん:2005/10/08(土) 10:01:16
OSX版てFreeBSDで使え!!!! ないか orz
380デフォルトの名無しさん:2005/10/08(土) 11:47:43
print ("hello python.")
からはじめました。
381デフォルトの名無しさん:2005/10/08(土) 12:18:50
括弧で囲むなら、
print と括弧の間は半角スペースを空けない方が自然だよっ
382デフォルトの名無しさん:2005/10/08(土) 12:29:39
>>381
Sir, yes sir!
383初心者:2005/10/08(土) 13:16:46
なでしこをはじめました。
なでしこを少しいじれるようになったら、pythonをはじめます。
384デフォルトの名無しさん:2005/10/08(土) 14:24:58
そう書き込まないとはじめられないのかね。
なら紙にでもそう書いときなさい。
掲示板でわざわざ宣言する必要性は?
無いよね。
385デフォルトの名無しさん:2005/10/08(土) 14:29:40
正直スマンカッタ


    ,.、,、,..,、、.,、,、、..,_       /i
   ;'`;、、:、. .:、:, :,.: ::`゙:.:゙:`''':,'.´ -‐i
   '、;: ...: ,:. :.、.∩.. .:: _;.;;.∩‐'゙  ̄  ̄
    `"゙' ''`゙ //゙`´´   | |
        //Λ_Λ  | |
        | |( ´Д`)//
        \      |
          |   /
         /   /
     __  |   |  __
     \   ̄ ̄ ̄ ̄ ̄   \
     ||\            \
     ||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄||
     ||  || ̄ ̄ ̄ ̄ ̄ ̄ ̄||
386デフォルトの名無しさん:2005/10/08(土) 14:57:10
>>384
suretai yomou.
387デフォルトの名無しさん:2005/10/08(土) 15:38:16
例えば
x=1
y=2
print "_",x,"_",y
を走らせたときの結果が
_ 1 _ 2

となってxの前後に必ず が一つ入るのが気になる。
また3行めを
print "_",x,"_",y,
としても
_ 1 _ 2

のように一行あくのが気になる。
プログラミングって難しいですね。
388デフォルトの名無しさん:2005/10/08(土) 16:01:39
print "_%d_%d" % (x, y)
389デフォルトの名無しさん:2005/10/08(土) 20:57:02
def gojohou(a,b):
while b:
a,b = b,a % b
return a

ポカーン…こんなのかけねぇよおぉおお
390デフォルトの名無しさん:2005/10/09(日) 09:16:40
>>378
うん、全然困らない。
391デフォルトの名無しさん:2005/10/09(日) 13:57:44
PyJUGの中の人よ、web開発系の情報ポインタをキボンヌ。
・素のCGIはインデントと相性悪い
・ZopeはPythonで開発ってのとちょっと違う
・海外では色々なフレームワークが乱立しているから好きなの使えよ、
っつても数多すぎて評価するのが大変すぎる。
rubyとかはrailsやらで盛り上がってるのにpythonではそーゆーの話題にならんので寂しいよ!
392デフォルトの名無しさん:2005/10/09(日) 15:04:25
パッケージが色々あって、インストールの仕方も初心者には難しいのではないだろうか。
私は先ほどpygame入れてみた。
えへへー
393PyJUGの中の人:2005/10/09(日) 15:24:01
YONDA?
394デフォルトの名無しさん:2005/10/09(日) 16:38:00
>391
>rubyとかはrailsやらで盛り上がってるのにpythonではそーゆーの話題にならんので寂しいよ!
http://www.turbogears.org/
395デフォルトの名無しさん:2005/10/09(日) 18:55:04
>>391
確かにフレームワーク多いな。日本語情報がないのが結構きつい。
CherryPyはシンプルでわかりやすい。
Subwayにも使われてるから知っとくと良いと思う。
Twistedが気になる。オライリーの洋書買っとくか・・・。
ちなみに、PythonCookBook和訳が今年12月から来年初頭に出るってさ。

396デフォルトの名無しさん:2005/10/09(日) 18:55:19
397デフォルトの名無しさん:2005/10/09(日) 21:03:42
Python.jpって、slashdotみたいに誰でも投稿できるの?
398デフォルトの名無しさん:2005/10/09(日) 22:07:05
できるよ
399デフォルトの名無しさん:2005/10/09(日) 23:20:46
だれでも投稿できるのに、どうしてあんなに閑散としているの?
400デフォルトの名無しさん:2005/10/10(月) 00:02:47
実用面はVBやJavaでじゅうぶん間に合うからだよ。
それ以上は遊びになってしまう。
日本人は真面目だから遊びには情熱を注がない。
401デフォルトの名無しさん:2005/10/10(月) 04:31:15
(゚д゚)
402デフォルトの名無しさん:2005/10/10(月) 04:34:22
>>389
なにこれ?宿題?別にすげえ読みやすいソースだとは思わんけど、
関数名からなにしたいのかはすぐ分るぞ。

つかPythonの文法がわからんのかユークリッドの互除法のアルゴリズムが
わからんのか問題を切り分けてみ。

文法がわからんのなら自分の分る範囲で冗長でもいいから書いてみればいい。
アルゴリズムがわからんのなら・・・紙の上でペンで問題を解いて体で覚えれ。
403デフォルトの名無しさん:2005/10/10(月) 12:48:08
>>402
一応大学生なのでアルゴリズムはわかります。
while b:とか、さらに言うとその次の行がさくっと書いてあるのがすごいなと。
404デフォルトの名無しさん:2005/10/10(月) 14:53:44
Pythonソースを2chに書き込むときは半角スペースを全角に置き換えてね。
405デフォルトの名無しさん:2005/10/10(月) 14:56:02
ためしに投稿してみ
406デフォルトの名無しさん:2005/10/10(月) 15:05:48
おれも釣られたい。。。。
def gojohou(a,b):
 while b:
  a,b = b,a % b
 return a

def gojohou(a,b):
 while "forever":
  if b == 0:return a
  tmp = b
  b = a%b
  a = tmp
こうすれば分かるのか??
407デフォルトの名無しさん:2005/10/10(月) 15:52:10
>>404
なぜ半角スペースを全角スペースに置き換えるの?
ノートンさんが反応するから?
408デフォルトの名無しさん:2005/10/10(月) 15:54:24
&nbsp;のほうがいいよね
409デフォルトの名無しさん:2005/10/10(月) 16:02:06
import sys

for line in sys.stdin:
    line = line.replace("&", "&amp;");
    line = line.replace("<", "&lt;");
    line = line.replace(">", "&gt;");
    print line.replace(" ", "&nbsp;").strip()
410デフォルトの名無しさん:2005/10/10(月) 16:16:40
>>406
どうやら389は関数の動きがわからないんじゃなくて、
ああいう書き方ができることに感動しているみたいね

つかその書き換えって逆にわかりづらいよ
while b == 0:でええやん
411デフォルトの名無しさん:2005/10/10(月) 16:19:10
俺もPythonに感動してハマるきっかけはあの書き方だったな
確か入門者向けのドキュメントのどれかに書いてあったやつだ
412デフォルトの名無しさん:2005/10/10(月) 17:26:38
while b!=0:
413410:2005/10/10(月) 17:50:55
>>412
まちがえちった。ゴメソ
414デフォルトの名無しさん:2005/10/10(月) 17:51:13
珍しくもない書き方だけど正直言って良くないと思う
415デフォルトの名無しさん:2005/10/10(月) 18:16:54
pygameで遊んでみた。
デスクトップに保存した.pyファイルが削除できない→再起動
→visual styleにエラー→ウイルスソフトが終了
→ウァアア 今ここ。
416415:2005/10/10(月) 18:21:06
デスクトップをDesktopとかリネームしたのが悪かったらしい。
元に戻したら直った。
417デフォルトの名無しさん:2005/10/10(月) 18:24:39
>>414
理由をかけ。
通常は行数が短く済むほどいいはずだ。
418デフォルトの名無しさん:2005/10/10(月) 18:48:50
414はどのコメントへのレスなのかわからんが・・・

>>417
一般の話をするなら、長くなっても、多少効率が落ちてもソースの可読性の
高さを第一に考えるなあ。互除法の例なら389ので別に問題ないと思うけど。
「行数が短く済むほどいいはず」てのはちと乱暴かと。
419デフォルトの名無しさん:2005/10/10(月) 19:06:56
冗長でも分かりやすく書け
がPython思想じゃなかったっけ。
420414:2005/10/10(月) 19:13:04
ループ継続の条件が (b!=0) なのに (b) で代数式として評価してる。結果は同じだけどね。
ループ内部も出来れば展開した方がいい。これを一瞬で把握しろと言うのは無理。

短いならいいけどこの調子で延々と続けられたらたまらん、ということ
421デフォルトの名無しさん:2005/10/10(月) 19:39:37
>>420
I, agree.
422デフォルトの名無しさん:2005/10/10(月) 19:51:08
pygameのmovieは消えたのか?
423デフォルトの名無しさん:2005/10/10(月) 20:16:27
>>422
消えてないよ。実ファイルはunixuser.orgにある。
一時的に見れなかったのは、proxy(coralCDN)の調子が悪いせいだと思う。
424デフォルトの名無しさん:2005/10/10(月) 21:32:42
見易さじゃなくて美しさを誇りたいなら Haskell でも使ってろよ。
2ch への投稿でインデントに悩みたくなかったら、navi2ch でも使ってろよ。
425デフォルトの名無しさん:2005/10/10(月) 22:16:12
movieといえばturbogearsのサイトにある「20分で作るWiki」おもろいね。
次の休みはこれで遊んでみる予定。
http://turbogears.org/docs/wiki20/20MinuteWiki.mov

/.にも記事出てる。
http://developers.slashdot.org/article.pl?sid=05/10/10/0650207
426デフォルトの名無しさん:2005/10/11(火) 09:23:54
S式はどうしてああも後味の悪いポストが好きなのか。
427デフォルトの名無しさん:2005/10/11(火) 15:17:30
VAX, Sun, NEWS, Apollo とかで育った老人臭がするよね。
428デフォルトの名無しさん:2005/10/11(火) 17:41:09
Py+wx+PyCard の使い方のトレンディでナウいまとめページはマダァ?
429デフォルトの名無しさん:2005/10/11(火) 19:26:58
>>426
> S式

禿ワロスwwwwwwwwwwwwwwww
430デフォルトの名無しさん:2005/10/11(火) 21:45:01
日本人が書いたPython入門書出ないかなぁ…
byte of python読みながら思った。
pygameで簡単なゲームを作るのを目標にしてみたんだけど、
byte of python読んだら何したらいいんだろう…
431デフォルトの名無しさん:2005/10/11(火) 22:07:43
>>430
「入門」はもういいよ・・・
日本人が書いた本はまぁ欲しいけど
432デフォルトの名無しさん:2005/10/11(火) 22:10:50
>>430
byte of python読んだなら、pygameにさわってみれば?
いじりながらでも、なにか作れると思うよ。

昔ならばブロック崩しとかテトリスでも作ってみるところだと思う。
グラフィックスの要素がシンプルで、当たり判定とか、
入力デバイスのイベント処理とかも出てくるよ。
433デフォルトの名無しさん:2005/10/11(火) 22:16:42
>>432
danke. インベーダに挑戦してみようと思う。
ということでpygameの資料を探してくる!
アァー明日早いんだった…
434デフォルトの名無しさん:2005/10/11(火) 22:35:00
>433

まずはchimpから。
435デフォルトの名無しさん:2005/10/12(水) 11:16:04
MacユーザーですがいままでREALbasicで開発してきました。
同じアプリをつくるとしたらREALbasicとwxPython
どっちのほうが実行速度が速いのでしょうか?
クロスプラットフォームで開発ができるし
もしREALbasicよりも軽いならwxPythonを勉強しようかなと思っています。
436デフォルトの名無しさん:2005/10/12(水) 11:38:39
自分で比べてみ。結果報告よろしく。頑張れヒーロー。
437デフォルトの名無しさん:2005/10/12(水) 13:57:26
REALbasicのほうがネイティヴコード吐くから速い事が多い。
ただモジュールの類いがシェアウェアが多くて不自由な感じ。
438デフォルトの名無しさん:2005/10/12(水) 17:50:13
>>437
ありがとうございました!
wxPythonの導入は保留にしREALbasicを使いつづけることにします。
439デフォルトの名無しさん:2005/10/12(水) 18:54:54
REALbasicのパッケージが
O'ReillyのXXXX HACKSみたいでかっこいいな
440デフォルトの名無しさん:2005/10/12(水) 19:46:47
>>438
実験しろよ。
441デフォルトの名無しさん:2005/10/12(水) 20:40:09
>>440
追うな。
自分で試してから質問しない奴はポストン一人で十分。
442433:2005/10/13(木) 00:08:14
byte of pythonまだ半分くらい…
ぱいがめ待ってろォオ
443デフォルトの名無しさん:2005/10/13(木) 17:33:44
全部読まなくていいから、さっさとpygame始めればいいのに…

Byte of Pythonを読破してない奴にはPythonでプログラミングする権利がないとでも思ってるのかい?
444デフォルトの名無しさん:2005/10/13(木) 17:44:55
そんなケツの小さいことを気にするのは>>443 くらいでしょ。
好きなやり方で勉強させてやれよ。
445デフォルトの名無しさん:2005/10/13(木) 18:17:44
つまり>>443はこのごろはやりの女の子か
446デフォルトの名無しさん:2005/10/13(木) 19:49:41
♪お尻の小さな女の子〜
447デフォルトの名無しさん:2005/10/13(木) 23:58:52
pygameってPythonのさめがめ?


んなわけないか
448デフォルトの名無しさん:2005/10/14(金) 02:03:45
http://www.hatena.ne.jp/1129120181
3番目のPythonでの回答例だけど。
カウンターをインクリメントして数えなくても、リスト内包表記すれば良いような気も。
449デフォルトの名無しさん:2005/10/14(金) 02:32:50
>>448
そう?俺なら
>>> import time, calendar
>>> [(b+a)/7 for a, b in [calendar.monthrange(*time.localtime()[:2])]][0]
5
ってするけど。
450デフォルトの名無しさん:2005/10/14(金) 02:37:57
ワンライナー厨的にはこうだ。
>>> [(b+a)/7 for a, b in [__import__('calendar').monthrange(*__import__('time').localtime()[:2])]][0]
5
451デフォルトの名無しさん:2005/10/14(金) 02:42:56
そこまでしてワンライナーにしたくない
452デフォルトの名無しさん:2005/10/14(金) 03:02:32
さらにlambda厨だとこうなることを発見した。
>>> (lambda a, b: (a+b)/7)(*__import__('calendar').monthrange(*__import__('time').localtime()[:2]))
5
453デフォルトの名無しさん:2005/10/14(金) 03:17:12
やっぱりpythonic wayがいちばん。元とあんまり変らないけど・・・

import datetime
import calendar

today = datetime.date.today()
thismonth = calendar.monthcalendar(today.year, today.month)
fridaycounter = 0

for oneweek in thismonth:
  if oneweek[calendar.FRIDAY] >= 1:
    fridaycounter += 1

print fridaycounter
454デフォルトの名無しさん:2005/10/14(金) 03:19:16
>>449,450,452
つかチミら、今月の金曜は4回ですがな・・・
455デフォルトの名無しさん:2005/10/14(金) 03:33:32
問題を良く読め。数えるのは日曜日だ。
456デフォルトの名無しさん:2005/10/14(金) 03:37:31
ゴメン、アホなこと書いた。
453はCookBook読んで書いたんで、そこの例のFRIDAYを引きずってた。
日曜は5回です。ハイ。
457デフォルトの名無しさん:2005/10/14(金) 11:25:59
>449,450,452 は python 認定プログラムで不合格とします

不合格理由: タテ・ヨコ比がおかしい

まあ 449 はアリか...
458デフォルトの名無しさん:2005/10/14(金) 11:33:56
ヤなlintだなそれ。
459デフォルトの名無しさん:2005/10/14(金) 12:08:10
TinyP2Pをlintしてくれ
460デフォルトの名無しさん:2005/10/14(金) 20:14:03
今PythonでBMPファイルのヘッダをUnpackをつかって取り出そうとしているのですが、unsigned (short|long|short|short|long) のフォーマットのサイズを調べると14バイトのはずが16バイトになってしまいます。何でそうなるのか教えてもらえませんか。
環境はWinXp Home。 Python 2.4.2 commandline modeです。
461デフォルトの名無しさん:2005/10/14(金) 21:08:10
>>460
Hint: alignment
462デフォルトの名無しさん:2005/10/14(金) 22:00:36
PILでそう言う事って出来ないの?
463デフォルトの名無しさん:2005/10/14(金) 22:13:47
>>461
ありがとうございます。
先頭に'='を付けたらちゃんと14バイトになりました。
464デフォルトの名無しさん:2005/10/14(金) 23:30:31
Pythonでバイナリデータをバイト単位で処理とか、ライブラリに頼らずにLow-レベルな
とこに手をだすと、けっこう難しい感じがする。

という流れで例題を出したいのだけど思いつかないや…。
465デフォルトの名無しさん:2005/10/15(土) 00:18:08
cal | grep "^ [0-9]" | wc -l
466デフォルトの名無しさん:2005/10/15(土) 00:30:54
Cygwin で wxPython を使いたい場合は、どうインストールすれば良いですか?
467デフォルトの名無しさん:2005/10/15(土) 01:00:26
>>464
WAVE とか tar とか JIS X 4081 とか MeDoc とかいろいろ自前で
バイナリ処理したけど、これといって難しいことはなかったなあ。
データの仕様通りにプログラムを書き下すだけなんで至って単純。
モーレツに面倒だけどね。
468デフォルトの名無しさん:2005/10/15(土) 01:04:56
符号あり・なしで微妙な問題が出そうな、
32ビットのデータはどうやったらスマートに扱えるんだろう
469デフォルトの名無しさん:2005/10/15(土) 01:28:24
l (符号あり) と L (なし) で処理を分けるんじゃダメなの?
470デフォルトの名無しさん:2005/10/15(土) 04:53:49
Pythonの解説サイトない?
ちょっと中級者向けぐらいの
471デフォルトの名無しさん:2005/10/15(土) 04:54:20
ごめん、PythonのじゃなくてPygameの
472デフォルトの名無しさん:2005/10/15(土) 05:23:02
473デフォルトの名無しさん:2005/10/15(土) 05:25:53
>>472
FLASH以外はみた
474デフォルトの名無しさん:2005/10/15(土) 21:17:27
Pythonのチュートリアルよりわかりやすい解説サイトみたいのありますか?
475デフォルトの名無しさん:2005/10/15(土) 21:22:39
無い
476デフォルトの名無しさん:2005/10/15(土) 21:32:23
orz
Unixを前提としてるっぽい+変な日本語
でもうだめぽ
477デフォルトの名無しさん:2005/10/15(土) 21:45:09
具体的に指摘しないと無能が愚痴をたれてるのと区別がつきません。
478デフォルトの名無しさん:2005/10/15(土) 22:26:39
>>476
インタプリタの起動とか実行の仕方が分らないの?
479466:2005/10/15(土) 22:51:21
Cygwin で wxPython は無理ってことで良いですか?
あと Python には、ソースに埋め込む標準のドキュメントの記法みたいなものはありますか?
480デフォルトの名無しさん:2005/10/15(土) 22:56:30
>>477>>478
えっと、とりあえずインストールまでは事故解決したんですけど、exeにして吐き出させるのがわからないんです。
481デフォルトの名無しさん:2005/10/15(土) 23:13:40
>>480
よくわからないけど、
tp://py2exe.org/
482デフォルトの名無しさん:2005/10/15(土) 23:27:06
>>480
1つ質問なんだけどPyhonの勉強してるの?

>>481の日本語版
http://www.cubelab.com/ymasuda/python/py2exe/py2exe.html
483デフォルトの名無しさん:2005/10/15(土) 23:42:36
>>481>>482
本当にありがとうございます
環境がwinxpなのでexeファイルが作られなかったので、聞いてみたんですがこれを使えば、exeファイルが作られそうですね。
linuxとかだと勝手にexeファイルとかが作られるのでしょうか?
それともpythonではexeファイルが作られないのでしょうか?

重ね重ね申し訳ありませんが答えてくださるとありがたいです
484デフォルトの名無しさん:2005/10/15(土) 23:55:05
exeファイルをわざわざ作るのです。
485デフォルトの名無しさん:2005/10/16(日) 00:13:34
>>483
Pythonは、基本的にはスクリプト言語。
言わんとするところがわかならければ下記URL参照。
http://www.google.co.jp/search?hl=ja&q=%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%E8%A8%80%E8%AA%9E&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=
486デフォルトの名無しさん:2005/10/16(日) 00:16:03
こいつはインタプリタとコンパイラの区別が付いていないのだとおもわれる。
487デフォルトの名無しさん:2005/10/16(日) 00:20:31
488485:2005/10/16(日) 00:34:24
>>486
てめぇの方が正しい。

489デフォルトの名無しさん:2005/10/16(日) 00:48:21
>>485>>486
やっとわかりました。本当にありがとうございます。
インタプリタというのはコンパイラの親戚みたいなものだと思ってたので、exeファイルが生成されるのが当たり前だと思ってました。

そんな私はどう見ても精子です。本当にありがとうございました
490デフォルトの名無しさん:2005/10/16(日) 02:22:42
491デフォルトの名無しさん:2005/10/16(日) 03:21:40
もう話ついてるみたいだけど、
pythonがインストールされていないwinとlinux(Irixも)でも実行できるパッケージを
作るもので、PyInstallerてのもあるよ。

http://pyinstaller.hpcf.upr.edu/cgi-bin/trac.cgi
492デフォルトの名無しさん:2005/10/16(日) 14:10:05
>>489
このページを読め
1時間で覚える?Python
http://kanaya.naist.jp/Zope/member/nishio/japanese/memo/LearnPythonInAnHour/
493デフォルトの名無しさん:2005/10/16(日) 14:35:28
pyfreezeなんてのもあるよね。
py2exe関連で。
494デフォルトの名無しさん:2005/10/16(日) 15:53:25
>>490 ->>493
本当にありがとうございます。
すごく面白そうなものがいっぱいあるんですね。すんごくわくわくしてきました。
一気に全部を学ぶのは無理だとは思いますが少しずつがんばっていろんなことができるようになりたいと思います。
皆様本当にありがとうございました。
495デフォルトの名無しさん:2005/10/18(火) 01:19:31
From: Neal Norwitz
Subject: [Python-Dev] Guido v. Python, Round 1

我々は皆 Guido が Python を好きだと知っている。
しかし、真に問題なのはパイソンが Guido を好きかということだ。

  http://python.org/neal/
496デフォルトの名無しさん:2005/10/18(火) 01:42:49
ぴちょん君はlambdaと別れたくないのに……、って事?
497デフォルトの名無しさん:2005/10/18(火) 09:54:06
こっちでアクセスできた。
http://creosote.python.org/neal/

蛇とたわむれるguidoタンハアハア・・・
498デフォルトの名無しさん:2005/10/18(火) 19:32:06
テラエロス
499デフォルトの名無しさん:2005/10/18(火) 23:30:23
>>497
pythonのサクーシャって、以前見た写真だともっと若い感じだったんだが
500デフォルトの名無しさん:2005/10/18(火) 23:35:47
>>499
何年たってると(ry
501デフォルトの名無しさん:2005/10/18(火) 23:38:00
オンラインでpythonコード学習できるサイトないかなぁ。
jythonとか使ってさ
502499:2005/10/18(火) 23:41:18
そうか、ヒゲがあるから印象が違って見えるんだな
ttp://www.python.org/~guido/
503デフォルトの名無しさん:2005/10/19(水) 05:29:58
長年思い続けていたギャグを言わせてくれ

オッパイソン !!!!

ふーすっきりした
504デフォルトの名無しさん:2005/10/19(水) 05:36:12
zope3.1.0上でplone2.1.1を動かした強者って居ますか?
505デフォルトの名無しさん:2005/10/19(水) 07:11:46
>>501
オンラインだとなにがうれしいの?
506デフォルトの名無しさん:2005/10/19(水) 10:15:38
宣教師が URL 配って布教活動をするとか?
507デフォルトの名無しさん:2005/10/19(水) 14:05:06
ヒゲ…やっぱこれのせいかなw
ttp://www.rubyist.net/~matz/20041206.html#p02
508デフォルトの名無しさん:2005/10/19(水) 15:13:09
似合ってない。目が優しすぎる。
509デフォルトの名無しさん:2005/10/19(水) 16:14:23
510デフォルトの名無しさん:2005/10/19(水) 18:16:09
COREBLOG2.0ダサすぎw
511501:2005/10/20(木) 00:23:51
実行環境入れるのがメンドクサイ場合でも
ちょっとした確認とかできてうれちい
512デフォルトの名無しさん:2005/10/20(木) 00:55:02
新規インストールしたpython2.4.2にPILをインストールしたいんだけど、うまくいきません
なぜか/opt/python2.4.2/lib/ 配下にpython2.3のフォルダーができてそのなかにサイトパッケージができてします。。
うまい方法ない?
513デフォルトの名無しさん:2005/10/20(木) 09:30:04
>>512
間違ってpython2.3用のPILいれたからじゃないの?

/opt ってことは、BSD系か? それともSoralis?
514デフォルトの名無しさん:2005/10/20(木) 10:08:52
>>511
その用途なら、python入ってるレン鯖なりにログインすればいいんでないの?
515デフォルトの名無しさん:2005/10/20(木) 13:20:40
Pythonには、ネットからモジュールをもらってきてインストールする仕組みとかないの?
PerlのCPANみたいなやつ。

PyPLがそれかと思ったんだけど、なんか違うみたいだし。
516デフォルトの名無しさん:2005/10/20(木) 13:35:19
setuptools に入っている easyinstall 使えば
モジュール名指定して pypi からダウンロードとインストールしてくれるよ
517デフォルトの名無しさん:2005/10/20(木) 13:56:08
>>516
ありがとう。これは便利かも。

setuptoolsは最近できたばかりのようですね。
PyPIに初めて登録されたのが2005/06になってた。
518デフォルトの名無しさん:2005/10/20(木) 15:49:44
フリーのレン鯖ある?
519デフォルトの名無しさん:2005/10/20(木) 17:27:27
>>510
それは前のバージョンよりマシになったと褒めているのか。
520デフォルトの名無しさん:2005/10/20(木) 19:03:58
みんなに質問
Pythonを何に使ってるの?
521デフォルトの名無しさん:2005/10/20(木) 19:49:40
Bridge Commande
522デフォルトの名無しさん:2005/10/20(木) 20:30:18
>>520
シェルスクリプトの替わり。
実験データの処理。
523デフォルトの名無しさん:2005/10/20(木) 22:10:38
PythonからExcelとかをwin32comでごにょごにょ。VBAが嫌いだから。
524デフォルトの名無しさん:2005/10/20(木) 22:22:08
そいうえば Python Programming on Win32 の翻訳でないかなー?
525デフォルトの名無しさん:2005/10/20(木) 22:59:26
>>520
・電卓として(WindowsではIDLE、Unixではコマンドライン版のインタプリタ)
・アルゴリズム・データ構造の試作に(勉強したものを実際に動かしてみる)
常用しているアプリ:
・日記の変換スクリプト(自作DTDで日記を書いている。PyXMLでHTMLやLaTeXに変換)
・メモ書き用の簡易メイラ(所定のメアドに投げるだけ。UIはTkinter)
・外国語学習ソフト(単語などを暗記するため、個人的要求に合わせて自作)

最近は仕事で作っているシステムの回帰テストにunittestモジュールを使っている。
526デフォルトの名無しさん:2005/10/20(木) 23:58:21
自分のwebサイトの日記みたいなのとか趣味方面のカタログみたいなのとか、
最低限のテキストやデータだけ作って自作スクリプトでhtmlに変換してうpしてる。
527デフォルトの名無しさん:2005/10/21(金) 00:15:06
PythonってwindowsのDLLが公開している関数を呼び出すことはできませんか?
Python for Win32 Extensions を一緒にインストールすると、
Win32apiが使用できるようで、

win32api.LoadLibrary()
win32api.GetProcAddress()

ってすると関数のアドレスが取得できますが、この取得したアドレスの
関数を呼び出す方法ってあるのでしょうか?
もし、無いとしたら上のAPIって意味がないのでは?
528デフォルトの名無しさん:2005/10/21(金) 01:25:05
529デフォルトの名無しさん:2005/10/21(金) 01:42:39
>>527
Python インタプリタの拡張と埋め込み
http://www.python.jp/doc/nightly/ext/ext.html

この間、ここを参考にしてCでWin32 APIのとある関数を呼び出す拡張モジュールを
作りました。Pythonの通常のモジュールを書くだけでは実現できない機能を実装するには
この方法を採るのが標準的なんではないかと

Pythonから(Python用ではない通常の)DLLを直接読めるとしたら、初耳です。
530デフォルトの名無しさん:2005/10/21(金) 01:55:06
>520
かけ算と割り算
531デフォルトの名無しさん:2005/10/21(金) 02:14:23
>>529
> この方法を採るのが標準的

胴衣。
532520:2005/10/21(金) 21:29:49
みんなありがとう
僕はPanda3Dを利用してゲームを作ってます。
533デフォルトの名無しさん:2005/10/21(金) 21:53:48
>>520
エディタを作っていますよ
534デフォルトの名無しさん:2005/10/21(金) 22:53:04
>>520
Webアプリ。CherryPyでがんばってます。
次はTwistedで。
535デフォルトの名無しさん:2005/10/21(金) 23:10:46
>>520
byte of pythonのサンプルコードを作っています。
エディタとかつくってみてぇええええ
536527:2005/10/22(土) 00:18:27
>>528
>>529
うぉー。
ありがとうございます。
ctypesを使うことでやりたいことができました。
ctypesすこぶる快調絶好調です。
本当にありがとうございました。

しかし、こんな便利なモジュールがあるとは・・・。
もっと調べてみる必要有り。
537デフォルトの名無しさん:2005/10/22(土) 02:33:21
pythonからCのライブラリを使うときの方法としては、
>>529にもあるような直書き
swig
ctypes
Pyrex
の四つのアプローチがあるよね。
どれも長所短所あるのでうまく使い分けられるとベストよね。
538デフォルトの名無しさん:2005/10/22(土) 03:35:44
そうだわよね。
539デフォルトの名無しさん:2005/10/22(土) 12:06:14
具体的にどうすればいいのかわからない!>>537
540デフォルトの名無しさん:2005/10/22(土) 12:43:24
その辺は各自ググって調べる方向でいいんでは?
どの方法も分かりやすいチュートリアルが用意されてるので

てか拡張モジュールを書くのにいろんな方法があることが分かって
勉強になりますた。サンクス>>538
541537:2005/10/22(土) 12:44:12
ごめん>>537の間違い
542デフォルトの名無しさん:2005/10/22(土) 16:45:26
data1=["a","b","c"]
data2=[1,2,3]
を、python内でパイプを通して、
コマンドに渡したいのですが、
いったんtextに渡して
txt=''
for i in range(3):
txt+=str(data1[i])+' '+str(data2[i])
if i != 2:
txt+='\n'
cmd='echo "%s" | コマンド' % txt
os.system(command)
しか思い浮かばす、効率が悪くて困ってます。
popenもうまくつかえません。
どうしたら良いのか、ご教授よろしくお願いします。



543デフォルトの名無しさん:2005/10/22(土) 17:37:06
544デフォルトの名無しさん:2005/10/22(土) 18:04:17
>> 543
ありがとうございました。
参考にしてうまくいきました。
545デフォルトの名無しさん:2005/10/22(土) 19:40:28
2.4ならsubprocessだろね。〜を置き換えるのコード例を参照。
http://www.python.jp/doc/nightly/lib/module-subprocess.html
546デフォルトの名無しさん:2005/10/22(土) 20:51:06
thx
popen系は名前の付け方がアレなので>>545に乗り換えるよ
547デフォルトの名無しさん:2005/10/23(日) 05:10:05
Python以外で書かれたライブラリをラップする場合だけど、
漏れはPyrexを使う場合が多いかな。
スタティックリンクなライブラリでも使えるしね。
548デフォルトの名無しさん:2005/10/23(日) 17:19:24
なんかclose()のタイミングによってread()の挙動が違っちゃうのはなんでだろ
↓test.binという999bytesのファイルを全部読み込もうとしたとき
>>> f = open('test.bin')
>>> s = f.read()
>>> len(s)
0
>>> f.close
<built-in method close of file object at 0x00E98B18>
>>> len(s)
0
>>> f = open('test.bin')
>>> s = f.read()
>>> f.close
<built-in method close of file object at 0x00E98B60>
>>> len(s)
999
549デフォルトの名無しさん:2005/10/23(日) 17:27:01
↑close呼んだことになってないけど誤記?
550デフォルトの名無しさん:2005/10/23(日) 17:48:32
うわぁあああああああorz
551548=550:2005/10/23(日) 17:49:11
ありがとう >>549
552デフォルトの名無しさん:2005/10/23(日) 19:46:47
実行時にプログラム全体で生存中のインスタンスのリスト等を取得して、
そこからインスタンスを得るなんていうウルトラCはできますでしょうか。
553548=550:2005/10/23(日) 19:56:59
やっぱおかしいにょ。バグかな
>>> os.path.getsize('test.doc')
19456L
>>> f = open('test.doc')
>>> s = f.read()
>>> f.flush()
>>> len(s)
6
554デフォルトの名無しさん:2005/10/23(日) 20:22:00
zope上のpython scriptの例とか参考になりそうなサイトを紹介して欲しいです。
555548=550:2005/10/23(日) 20:24:58
なんか00をEOFと勘違いしちゃうとかありますか。。。クマッタ
$ head -c 16 test.doc|xxd.exe
0000000: d0cf 11e0 a1b1 1ae1 0000 0000 0000 0000

書き忘れましたが環境はオフィシャルから落とした
バイナリのpython2.4.2です。windowsxpです。
556デフォルトの名無しさん:2005/10/23(日) 20:34:07
f = open('test.doc', 'rb') でバイナリモードで開けば良いんじゃない?
557デフォルトの名無しさん:2005/10/23(日) 20:34:57
>>553
print s としたらどうなるの?
558デフォルトの名無しさん:2005/10/23(日) 20:37:49
>なんか00をEOFと勘違いしちゃうとかありますか
EOFは0x1a
559548=550:2005/10/23(日) 20:41:52
わかったYO
コレラシス→http://rakunet.org/TSNET/TSpython/14/425.html
http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65443

>>556のでもイケたYO!
>>557なんかヘンなのがでるだけだったお、ワードだから
560548=550:2005/10/23(日) 20:42:46
>>558
そうなんだよ!!!初めて知った!ありがとう!
561デフォルトの名無しさん:2005/10/23(日) 21:21:06
普通のファイルに対しては'rb'とかでバイナリモードに、
stdinとかstdoutを対象とする時にはmsvcrtを使うということかな。
562デフォルトの名無しさん:2005/10/23(日) 21:55:41
ある callable なオブジェクトが、実際には引数をいくつ取るのかを
呼び出し前に知るにはどうしたらよいですか?
563デフォルトの名無しさん:2005/10/23(日) 22:09:11

      ∧∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜′ ̄ ̄(,,゚Д゚) <  
  UU ̄U U.    \________
564デフォルトの名無しさん:2005/10/23(日) 22:12:27
>>562
somefunc.func_code.co_varnames
詳しくは inspect の所を見てみて
565デフォルトの名無しさん:2005/10/23(日) 22:16:54
ごめん。ローカル変数も入るから
somefunc.func_code.co_varnames[:somefunc.func_code.co_argcount]
の様にスライシングしなければ駄目だった
566562:2005/10/23(日) 22:37:52
>>564,565 THX
somefunc.func_code.co_argcount / co_flags / co_varnames のあたりに欲しかった情報がありそうです。
567デフォルトの名無しさん:2005/10/23(日) 23:34:49
EOFがC-zなのはwinだけなんだっけか
568デフォルトの名無しさん:2005/10/23(日) 23:36:48
>567
VMS
569デフォルトの名無しさん:2005/10/24(月) 01:35:35
>>552
globals()はいかが?
570デフォルトの名無しさん:2005/10/24(月) 14:50:14
wxPython をインストールしたら
PyAlaCarte PyAlaMode PyCrust PyShell という
似たようなエディタが4つも付いてきて訳が分かりません

何で4つも付けてくるの?
571デフォルトの名無しさん:2005/10/24(月) 16:29:54
サービス精神
572デフォルトの名無しさん:2005/10/24(月) 17:30:25
Robin Dunnがお人好しだから
573デフォルトの名無しさん:2005/10/24(月) 18:04:35
574デフォルトの名無しさん:2005/10/24(月) 18:30:17
Pythen
575デフォルトの名無しさん:2005/10/24(月) 22:59:55
http://rgruet.free.fr/PQR24/PQR2.4.html
http://rgruet.free.fr/
このクイックリファレンスからみんなも行ってみなよマジおすすめ。
そして誰かやくして
576デフォルトの名無しさん:2005/10/24(月) 23:01:31

「ス」と「か」の間に任意の好意的な形容詞が入るヨ
もとい打ち間違い
577デフォルトの名無しさん:2005/10/25(火) 00:06:36
このクイックリファレンスwwwwwwちょwwwおまwwwwwwwwwからみんなも行ってみなよマジおすすめ。

好意的な形容詞を入れてみた。
578デフォルトの名無しさん:2005/10/25(火) 00:48:21
Twisted Network Programming Essentialsまだー?

http://www.oreilly.com/catalog/twistedadn/

CherryPyも2.1.0が出たし、turbogearsの1.0リリースも楽しみ。
web development framework系は元気があってよいね。
579デフォルトの名無しさん:2005/10/25(火) 01:29:57
>>569
すみません、もうひとヒントいただけないでしょうか。
for n, t in globals().iteritems(): print n
だとすべてのインスタンスを補足できません(T-T)
580デフォルトの名無しさん:2005/10/25(火) 02:24:46
import gc
gc.get_objects()

でどう?
581デフォルトの名無しさん:2005/10/25(火) 02:26:19
582デフォルトの名無しさん:2005/10/25(火) 06:46:08
>>581
むちゃゆうな
583デフォルトの名無しさん:2005/10/25(火) 07:40:07
>>570

サンプルじゃない??
ソース見れるでしょ。
584デフォルトの名無しさん:2005/10/25(火) 08:04:02
585デフォルトの名無しさん:2005/10/25(火) 09:38:30
>575 を、印刷用 PDF とかに収めたものってないのかな?

ブラウザから印刷すると一部はみ出るし、
テキスト化すると各種デコレーションやカラー属性が
消えちゃって残念なんだよなぁ。
586デフォルトの名無しさん:2005/10/25(火) 11:25:13
>>585
http://rgruet.free.fr にはHTMLを各スタイル毎にPDF化したやつ
・ Quick reference for Python 2.4 (PDF / Modern Black & White style, A4)
・ Quick reference for Python 2.4 (PDF / Modern style, A4)
・ Quick reference for Python 2.4 (PDF / Classic style, A4)

ってあるんだけど、これではだめだったの?
個人的には、上記のPDFでもページ境界とかがいまいちで、reStructuredTextを
公開してほしかったなーと思う。
587デフォルトの名無しさん:2005/10/25(火) 11:30:51
>>585
http://rgruet.free.fr/
普通にPDF版も置いてあるじゃんYO.

588587:2005/10/25(火) 11:32:36
かぶった
589デフォルトの名無しさん:2005/10/25(火) 13:11:14
あーおもいっきり見落としてた(quickref ページしか見てなかった)
ありがと。

でも、せっかくの pdf が psnup で 4-up 印刷とかかけると化けちゃうYO…orz
590デフォルトの名無しさん:2005/10/25(火) 17:48:38
NewList = [OldList[8], OldList[5], OldList[11], OldList[3]]
としたいときに、もっと短く書く方法はありませんか?
番号ならべるだけで NewList = OldList[8, 5, 11, 3] みたいな感じでできないでしょうか?
591デフォルトの名無しさん:2005/10/25(火) 18:20:42
内包厨がやってきましたよ.
[OldList[i] for i in [8, 5, 1, 3]]
592デフォルトの名無しさん:2005/10/25(火) 18:31:50
リスト内包表記がわからなくて↓で書こうとしていた俺氏ね。

NewList = []
for n in (8, 5, 11, 3):
    NewList.append(OldList[n])
593590:2005/10/25(火) 18:44:13
おおっ、内包表記がありましたね。
ありがとうございます。
594デフォルトの名無しさん:2005/10/25(火) 19:03:06
>>592
イ`
595デフォルトの名無しさん:2005/10/25(火) 21:47:16
pygameドキュメントの和訳ありませんか?
596デフォルトの名無しさん:2005/10/25(火) 22:16:41
CherryPyとか最近アツいらしいね。
v0.9頃の解説サイト( montpython.s13.xrea.com )とか見て
へんな書き方とか昔思ってたけど、v2.1見たら完全に別物じゃん。
どうなってんの?
597デフォルトの名無しさん:2005/10/25(火) 23:51:27
Python Imaging Library で、与えられた日本語の文字列を与えられたサイズで描いて、
適当な形式(例えばpng)で出力するってどうやったらいいですか?
598デフォルトの名無しさん:2005/10/26(水) 00:52:00
jython使ったらjava使うの少しはマシになるかと思ったけど
メソッドシグネチャが被ってるときは、しょーがないから型指定しなきゃ
いけないのがわかって悲しくなったよぅ。
599デフォルトの名無しさん:2005/10/26(水) 01:43:48
>>597
# -*- coding: sjis -*-
import Image, ImageFont, ImageDraw
image = Image.new("RGB", (256, 256))
font = ImageFont.truetype(r"C:\WINDOWS\Fonts\MSGOTHIC.ttc", 50)
draw = ImageDraw.Draw(image)
draw.text((50, 50), u"Hello", font=font)
draw.text((0, 100), u"こんにちは", font=font)
image.show()
600597:2005/10/26(水) 01:46:26
>>599
滅茶苦茶助かりました!ありがとうございます!
601デフォルトの名無しさん:2005/10/26(水) 05:21:20
>>596
CherryPy2系はかなり変わったね。
シンプルにわかりやすくなったと思う。
ただ、まだHTTP/1.1未サポートのようだから、bihindApacheで利用するようだ。
パフォーマンスは、Apache+mod_rewrite+CherryPyの構成で、FastCGIと互角ということだよ。
602デフォルトの名無しさん:2005/10/26(水) 12:49:40
603デフォルトの名無しさん:2005/10/26(水) 23:21:31
py2exeで1つのexeファイル(singlefile)にできないので泣いてたら、いつのまにかできた。
ウレシス
from distutils.core import setup
import py2exe

setup(
options = {"py2exe": {"compressed": 1,
"optimize": 2,
"bundle_files": 1}},
zipfile = None,
console = ["test.py"],
)
604デフォルトの名無しさん:2005/10/27(木) 18:17:32
>>595
翻訳期待しているぞよ
605デフォルトの名無しさん:2005/10/27(木) 18:35:37
pythonのsignal(というかos.kill) って、Mainthreadから叩かないとダメぽ?
つーか、別threadで走っているsocket.pollを中断させたいんだけど、
妙案求む。(asyncore使用中)

606デフォルトの名無しさん:2005/10/28(金) 12:52:13
socket には poll ないぞ.
select.poll を使ってるなら,timeout を設定して時々処理を戻させて,終了フラグで
落とすようにしたらどう? Thread.join() で落ちるまでブロックできると思うよ.
607デフォルトの名無しさん:2005/10/28(金) 13:26:24
>606

select.pollだごめん。
やっぱりtimeoutしかないかなぁ。0.05とかに設定してるけど、なんか気持ち
悪いのと、負荷分散ネームサーバ書いてるので反応が遅いのは激しくマズー。
signalについては、URL忘れたけどpythonのThreadとsignalの相性が悪い
という話を読んだ。
608デフォルトの名無しさん:2005/10/28(金) 15:23:01
もしかして、Cの型ってPython2.2の書き方で書き直さないと
継承できないの?
609デフォルトの名無しさん:2005/10/28(金) 15:41:56
>>608
その通り。
610608:2005/10/28(金) 15:48:07
>>609
ガーソ!!世の中そんなに都合良く行かないよな...orz
611デフォルトの名無しさん:2005/10/28(金) 16:13:46
Pythonでプログラミング始めようと思ったんだけど、
良い本が無さそう。
苦難の日々が続く
612デフォルトの名無しさん:2005/10/28(金) 18:55:02
>>611
安心しろ、Web上に有用なドキュメントがある。

気になったんだけどOreillyのPython入門や初めてのPython 第2版買った人居る?
613デフォルトの名無しさん:2005/10/28(金) 19:10:41
>>612
初めてのPython第2版とクイックリファレンスを買ったよ。
614611:2005/10/28(金) 19:20:06
どこかの大学のテキストはなんか偏ってる感じがしてだめだった。
んー・・・
615デフォルトの名無しさん:2005/10/28(金) 19:20:34
>>611
初めてのPython第2版をお勧めするよ。
Pythonの基本知識として知っておくことが
これ1冊でだいぶわかると思う。
616デフォルトの名無しさん:2005/10/28(金) 19:21:09
「初めてのPython 第2版」を買いました。4800 円の価値はあります。元は取りました。Web だけで済ませていたら何百時間も余分に仕様を調べるだけで浪費れたと思います。

python はドキュメントがしっかりしています。でも分かり難いドキュメントも多く有ります。この本は python を解りやすく説明する仕事をしてきたプロが書いた本であることが良く分かります。
617デフォルトの名無しさん:2005/10/28(金) 19:44:13
宣伝みたい。
618デフォルトの名無しさん:2005/10/28(金) 19:51:20
ハジパイ第1版をamazonで安く買ったけどわかりやすくてよかった。
その前に買ったオライリーのヘビ表紙のやつは中級者むけらしく全くわからんかった。
619デフォルトの名無しさん:2005/10/28(金) 19:56:30
ネット上の情報が少ないことは確かだと思う。良いテキストはけっこうあるけど
いろんな場所にバラけてて捜しにくい。まとめサイトが欲しいぽ。
620612:2005/10/28(金) 20:07:25
結構買ってる人いるのね。本なんて要らないと思ってるのは少数派のようだな〜
621デフォルトの名無しさん:2005/10/28(金) 20:22:45
>>620
> 本なんて要らないと思ってるのは少数派のようだな〜

そんなDQNが大勢いたら困るよw
622デフォルトの名無しさん:2005/10/28(金) 20:32:03
そこで Python.jp ですよ。
のはずなんだが、標準ドキュメントの日本語訳を配布している以外に全く役に立たない罠…。

# 日本語ドキュメントにはとてもとてもとっっても感謝しています。が、、、、、、
623デフォルトの名無しさん:2005/10/28(金) 21:14:55
- tutorial 日本語訳
- quick reference
- library reference
- 経験値(コード読みあさり・書きなぐり)

これ以外に何か必要? (といいながら本も見てる口だけど)
624デフォルトの名無しさん:2005/10/28(金) 21:21:03
お題を出して初心者が解くのとかどうすか?
pygameでもなんでも、使わせるかんじで。
625デフォルトの名無しさん:2005/10/28(金) 21:27:05
> - 経験値(コード読みあさり・書きなぐり)
> - 経験値(コード読みあさり・書きなぐり)
> - 経験値(コード読みあさり・書きなぐり)

すこしでも参考テキストを読んで経験値をためやすくしたいです… orz
626デフォルトの名無しさん:2005/10/28(金) 21:38:45
最初はチュートリアル読んでみなさいって.
http://www.python.jp/doc/release/tut/

あと慣れてきたら,Pythonの標準ライブラリのソースを
読んで勉強したな.オレの場合.

ここも面白い.
http://aspn.activestate.com/ASPN/Python/Cookbook/
627デフォルトの名無しさん:2005/10/28(金) 22:12:05
。じゃなくて.を使うあたりが研究者っぽいな。
わかった、読んでみる。
餌も時々与えてくれよ”
628デフォルトの名無しさん:2005/10/28(金) 22:13:45
>>626
やっぱプログラミングは人のコードを読んで勉強するもんだよな。
629デフォルトの名無しさん:2005/10/28(金) 22:13:46
http://kanaya.naist.jp/Zope/member/nishio/japanese/memo/LearnPythonInAnHour/
おいらはここの「1時間で覚えるpython」がわりとよかった。
630デフォルトの名無しさん:2005/10/28(金) 22:15:30
>>626
チュートリアルをモニタで読むのに疲れたorz
pdfで配布されていないか探してくる!
631デフォルトの名無しさん:2005/10/28(金) 23:00:24
日本語ドキュメントのPDF版は
http://www.python.jp/pub/doc_jp/
から。 pdf-a4-2.4.zip に全部入ってるよ。

↓コレまちがってるじゃん。クリックしたらHTML版の閲覧ページになったぞ。
http://www.python.jp/Zope/download/document
「Python日本語ドキュメントはこちらでダウンロードできます。 」
632デフォルトの名無しさん:2005/10/28(金) 23:11:09
>>631
サンキュー
633デフォルトの名無しさん:2005/10/28(金) 23:34:40
インタラクティブ・モードで、
>>> hoge = "あいうえお".decode("sjis")
>>> hoge
u'\u3042\u3044\u3046\u3048\u304a'

としたとき、かわりに

>>> hoge
u'あいうえお'

と表示される方法はないでしょうか。
Pythonを再コンパイルせずに、site.pyに何か書いてフックするとかしたいんだけれど。
634デフォルトの名無しさん:2005/10/29(土) 01:03:34
つ sys.displayhook
635デフォルトの名無しさん:2005/10/29(土) 01:23:12
基本的な文法の入門はWEBに十分あるけど
ライブラリの使い方ドキュメントが足りない
636デフォルトの名無しさん:2005/10/29(土) 01:37:44
それって "プログラミング入門" とかそのものだと思うんだけど…。

"ライブラリの使い方"というのは要するに"プログラミング技術"であって、
どの言語においてもキチンとしたドキュメントはWebになんかないから、
それこそ本とか買わなきゃ読めないと思うんですが。

Pythonでプログラミングする本は確かに少ないけど、ちょっと違うのかな。
>635 は何が欲しいといってるんだろう。
637デフォルトの名無しさん:2005/10/29(土) 01:43:20
Python Cookbookとかでいいんじゃないの?
638デフォルトの名無しさん:2005/10/29(土) 01:48:46
>>636
使い方がわかる程度に書かれたリファレンス
今あるのはただの関数一覧表
639デフォルトの名無しさん:2005/10/29(土) 02:01:13
>>638
あのライブラリリファレンスを読んでも使い方が分からないとは
単純に経験不足だと思うが……
640デフォルトの名無しさん:2005/10/29(土) 02:21:52
>>639
サンプルコードもたくさん入ってるし
Pythonのライブラリリファレンスは必要十分

それ以上学びたければ
アルゴリズムやデータ構造などプログラミングの基礎を勉強するとか
他人のソースコード解析するとか
師匠を見つけるとかすれば?
641デフォルトの名無しさん:2005/10/29(土) 02:22:30
誰かのソースを読むのが一番なのかな?やっぱり。
642デフォルトの名無しさん:2005/10/29(土) 02:39:02
ここらへんが 書けるようになる/なれない の一つの分岐点なのかも。
あながち初心者に限った話ではない気がするな。興味深い。
643デフォルトの名無しさん:2005/10/29(土) 02:41:23
いまさらながら CherryPy をはじめた。
(・∀・)イイ!
Zope3に挫折したヘタレな漏れもこれなら逝けそうだ。
ところで、お前等お勧めのTemplateライブラリを教えてください。
644デフォルトの名無しさん:2005/10/29(土) 03:23:38
pythonのジェネレータってrubyのイテレータと同じだと思ってよい?
645デフォルトの名無しさん:2005/10/29(土) 07:39:12
人様の書いたコードを読んで勉強、ということでは
BitTrrentを読んで学ぶPython、みたいな日本語の記事がどこかにあったよ。
「あとで読む」でブクマしてる奴は多いはずw
646デフォルトの名無しさん:2005/10/29(土) 08:38:40
素人の日曜プログラマだけど、手も足も出ないってことは無かったが、
「関数一覧表」って表現には激しく同意だな。
それなりに無駄な時間を使ってる気がするし、ストレス溜まる。
Ruby のリファレンス・マニュアルみたいに簡単な例文が書かれてると、だいぶコストが違う。
つか、経験値を要求する時点で、ちょっと間違ってないか?
その経験値はどこで溜めろと? と思うんだが。
647デフォルトの名無しさん:2005/10/29(土) 10:05:09
関数一覧って、それがライブラリリファレンスってものじゃん。
ライブラリリファレンスは、特定のオブジェクトやメソッド等を知る
ためのものであって、言語自体を知るためのものではないと思う。
648デフォルトの名無しさん:2005/10/29(土) 10:24:50
つまるところ理想と現実だよ。
理想なのはユーザが求めるあらゆる情報を完備したマニュアルだが、
現実には欲しい情報が載っていないマニュアルの方がずっと多い。
開発者としては理想的なマニュアルを目指して努力を続ける一方で、
ユーザとしてはマニュアルの不足を補う情報収集能力を養うしかない。
開発者が「理想的なマニュアルなんて無理」と開き直るのはある意味怠慢だが、
ユーザが自分の情報収集能力の不足を人のせいにするのも同じぐらい怠慢。
649デフォルトの名無しさん:2005/10/29(土) 12:05:36
タイマンじゃこら!表出ませんかコノヤロゥ!

650デフォルトの名無しさん:2005/10/29(土) 15:22:33
http://pydoc.org/
の日本語版が欲しい。
っつーことはソースに日本語版パッチ当てないとだめなのか?
pyjugはsunみたいに言語ビジネスしてるわけではないからやってられんだろなと思うが、
zope japanの中の人が布教のためコアライブラリだけでもやってくれることを妄想中。
651650:2005/10/29(土) 15:23:45
URL間違えた。あれだよ、コマンドラインでpydocで立ち上がるアッチの方。
652デフォルトの名無しさん:2005/10/29(土) 17:04:01
>>646
関数一覧表期待しているぞよ。
653デフォルトの名無しさん:2005/10/29(土) 17:05:57
>>650
>zope japanの中の人が布教のためコアライブラリだけでもやってくれることを妄想中

中の人などいない!
654デフォルトの名無しさん:2005/10/29(土) 17:47:32
ライブラリは中も見えるので問題なく使えるが、exceptionまわりの
こまかい仕様とか、内包表記とかジェネレーターとかイテレータープロトコルとか
説明が散ってたり、言語仕様(Language Reference)見なきゃいけなくてウザい。

655デフォルトの名無しさん:2005/10/29(土) 19:48:49
そこまで望むならお金払って本買うしか
656デフォルトの名無しさん:2005/10/29(土) 20:46:05
どんどんライブラリが開発され標準に取り込まれて
発展してきた経緯から仕方ないんだけど
いろいろなライブラリ・クラスでなんとなく統一性・一貫性みたい
なのがない点はイヤっていうことを書いている人がいたね。

具体例すぐに上がらないけど hoge.remove() だったり
fuga.delete() だったりとかそういう部分が
"フツー、コレ" っていう風に決まっていない。

ライブラリの末端までそういうのがきちんとしている言語なんてあるのか?
という気もするけど
657デフォルトの名無しさん:2005/10/29(土) 21:54:35
>>656
おれは普通の文字列操作とreオブジェクト使った操作が
ややこしくてこまる
658デフォルトの名無しさん:2005/10/29(土) 22:57:43
AWT・Swingの地獄よりマシ
まぁ最低のシステムと比べても意味ないが
659デフォルトの名無しさん:2005/10/29(土) 23:44:35
関数一覧を欲っする人はPythonのソースコードを読んでください。
660デフォルトの名無しさん:2005/10/30(日) 00:00:21
>>659
むりぽ
661デフォルトの名無しさん:2005/10/30(日) 00:06:15
関数一覧を欲する人はライブラリドキュメントのreが参考になるでしょう。
662デフォルトの名無しさん:2005/10/30(日) 00:59:53
pydocに関数一覧があるぜよ
http://pydoc.org/2.4.1/
663デフォルトの名無しさん:2005/10/30(日) 01:06:00
言語構文説明とかに出てくる「式」と「文」の違いがわからんので教えてちょ。
664608:2005/10/30(日) 01:16:14
>>663
文の内で、値を返すものを式という。
でいいのかな?

文は、例え1文字だろうがSyntaxErrorがでなければPythonは
文として認識してるということだろう。
665デフォルトの名無しさん:2005/10/30(日) 01:32:00
>>664
まだよく意味がわからないけど返答thx
今言語仕様読んでるんだけど
while の式のとこに代入文書けないっぽいことがわかって悲しい。
666デフォルトの名無しさん:2005/10/30(日) 01:35:37
私の力では説明しがたいのだが
>文の内で、値を返すものを式という。
これは違うぞ。

文(statement)は組み合わせが出来ない。
式(expression)は組み合わせることが出来て、他の式の一部にもなれる。

文はツリーの幹で、式はツリーの枝。

667デフォルトの名無しさん:2005/10/30(日) 01:40:53
C言語だと代入式だからwhileに入れられるけど、
Pythonだと代入文だから入れられない。
668デフォルトの名無しさん:2005/10/30(日) 01:56:52
>>666
ちょっと分かりました。
条件「式」と実行「文」かな?
>>667
C言語系から来た人からすると少し悩みましたぜ
インタプリタが何故に入力を弾くのか
言語仕様読んで納得するっての
ちょっとは経験ないとわからないだろうから
アホでも分かるBNFとかの説明とかあるといいなぁ。
pythonに直接関係ないけど。
669デフォルトの名無しさん:2005/10/30(日) 02:03:09
関係ないけどperlでリストに対する「スカラ」ってのが
説明なしでいきなり登場するから全然意味わからなかったなぁ。
670デフォルトの名無しさん:2005/10/30(日) 02:10:33
スカラーとベクトルって数学で習ったよ
671デフォルトの名無しさん:2005/10/30(日) 03:10:26
BNFの分かりやすいHPの紹介キボンヌ
672デフォルトの名無しさん:2005/10/30(日) 03:22:43
BNFはアホでもわかるだろう。
なんせ<〜>で表す非終端記号と::=と|の3つ(と具体的な文字か文字列)しか
要素はない。
673デフォルトの名無しさん:2005/10/30(日) 06:54:35
問題は組み合わせたときに結局なにが書けるのかイメージするのが慣れないとたいへんてことかと>BNF

あと拡張BNF表記法の氾濫
674デフォルトの名無しさん:2005/10/30(日) 09:53:25
>665
式・文はさておき、その件については
C で == と = を間違える事故が死亡事故のうち
無視できない割合を占めていることへの反省だと思う。

俺も while の中で代入するのはイクナイと思う
675デフォルトの名無しさん:2005/10/30(日) 14:44:16
C言語が「左辺が定数のときのみ比較できる」仕様だったらよかったのに。
pythonに関係なくてスマソ。
pythonのBNFドキュメントはハイパーリンクになってるのがすげー読みやすい。
676675:2005/10/30(日) 16:11:10
>>675
whileん中での話ね
677デフォルトの名無しさん:2005/10/30(日) 16:29:31
pythonスレのまとめサイトって無いんでしょうか?
過去ログを読みたいんですが
678デフォルトの名無しさん:2005/10/30(日) 18:50:36
>>677
無い
679デフォルトの名無しさん:2005/10/30(日) 19:22:41
moinmoinで作ってよ
680デフォルトの名無しさん:2005/10/30(日) 21:29:08
>>679さんが作ってよ。
681664:2005/10/30(日) 21:56:59
>>666
> 文はツリーの幹で、式はツリーの枝。
ということは、式は文に含まれているということでしょ?
682デフォルトの名無しさん:2005/10/30(日) 22:40:07
ツリーを例に使ったのは失敗だろうな。
683デフォルトの名無しさん:2005/10/30(日) 23:41:35
>>662
をローカルに一気に落とせる場所はないだろうか?
684デフォルトの名無しさん:2005/10/30(日) 23:46:56
つwget
685デフォルトの名無しさん:2005/10/31(月) 00:22:43
pydoc --help
686666:2005/10/31(月) 02:15:26
脈絡もなくツリーを例に持ち出したのは失敗だったか。

文が存在しない言語もあるし、return文もあるから、
>文の内で、値を返すものを式という。
この表現に違和感を感じたんだよ。

確かにPythonの文は式(式文)を含むことに間違いない。
687デフォルトの名無しさん:2005/10/31(月) 11:36:55
>>686
return 文自体が値を返す言語なんてあるの?
688681:2005/10/31(月) 14:28:27
>>686
> 脈絡もなくツリーを例に持ち出したのは失敗だったか。
ツリーって構文ツリーの事じゃなかったのか?

> 文が存在しない言語もあるし、
Lispの事か?

> >文の内で、値を返すものを式という。
> この表現に違和感を感じたんだよ。
例えば、C言語でfor文があるが、例えばbreakで抜けたかどうかの
真偽値を返すfor式だとしたらどうだ。
そうすれば、intを要求している所に書くことができるだろう。
しかし、実際はfor文は値を返さないので、intを要求している所に
書かれても、それ以上評価のしようがない。だから、エラーになる。

Lispの様に全てが式の言語もあるが、それと比較して文は?と言われたら
値を返さないものと言う以外にないだろう。

return文とは言うけど、実際に値を返してるのは関数呼出しのhoge()だろう。
return文自体が値になるわけじゃない。
689デフォルトの名無しさん:2005/10/31(月) 16:32:46
情報工学とかでは式・文の定義ってどーゆー風になってんのかな。
そっちの学科でも定義はスルーして対象言語だけ学習するもの?
690デフォルトの名無しさん:2005/10/31(月) 16:46:50
>>689
式や文の定義は言語依存だよ。一般論は存在しないと思う。
対象言語を限定しないで式だの文だのを議論するなんてのはナンセンス。
691デフォルトの名無しさん:2005/10/31(月) 16:55:43
>>690
なに! じゃぁpythonドキュメントを目を皿にして読めば書いてあるのかな…
書いてないなら定義なしで用語を使ってるドキュメントであり、そんなことはありえない…のか?
692691:2005/10/31(月) 17:07:37
あれか。言語のドキュメントだと結局BNFか?当たり前っちゃアタリマエーだが
BNFじゃなくて初心者向けの例えとかが欲しいんだよなぁ。

式 (expression)
http://www.python.jp/doc/release/ref/expressions.html
単純文 (simple statement)
http://www.python.jp/doc/release/ref/simple.html
693デフォルトの名無しさん:2005/10/31(月) 17:46:46
>>692
初心者は「文とは何か」「式とは何か」なんて考えない。
また、そういう問いに厳密な答えを提供するのはBNF以外にあり得ない。
例えば「式は文の構成要素、文はプログラムの構成要素です」と言ったところで
初心者にしてみれば右から左だろうし、答えとしては大雑把すぎて理解を助けるどころか
理解を阻害しかねない。結局、きちんと理解したければBNF嫁ということになる。
つーことで、
      _
      /,.ァ、\    B
     ( ノo o ) )  N
      )ヽ ◎/(.    F
    (/.(・)(・)\ . 嫁
    (/| x |\)
      //\\
   . (/   \)
694デフォルトの名無しさん:2005/10/31(月) 18:06:23
式は文だよ派
└文のうち値を持つのが式だよ派
 └文は値を持たないよ派
  └return文は値を持つよ派
  │└値を持つのは関数呼出でreturn文自体に値はないよ派
  └call文は値を持つよ派
式は文じゃないよ派
└式と文は別物だよ派
 └式は単文でもあるから文だよ派
  └式は文の一部になれるから文だよ派
  └式は文の一部になれるけど文じゃないよ派
式・文の定義は言語依存だよ派
└Lispには文はないよ派
│└アセンブリ言語には式も文もないよ派
│ └あれは言語じゃないよ派
└BNFで定義できるよ派
 └BNFは構文の定義だけで本当の式と文の定義は別にあるよ派
695デフォルトの名無しさん:2005/10/31(月) 18:24:39
>>693
「初心者は「文とは何か」「式とは何か」なんて考えない」けど、
マニュアルに式だのなんだの書いてあるから「それってなに?」ってところに
いきなりBNF嫁ってお前らBNF派の血は何色ですか
>>694
BNF嫁
696デフォルトの名無しさん:2005/10/31(月) 18:26:46
>>694 分類が下手だなあ。プログラム書いても場合分けとか苦手だろ。

697デフォルトの名無しさん:2005/10/31(月) 18:39:48
組み込み型の、例えば文字列が str なのか stringなのかとかって
type()すりゃ分かるにしても、
マニュアルだと どこらへんに書いてありますか?
698デフォルトの名無しさん:2005/10/31(月) 18:40:59
>>696
きっとインデントを全角スペースに置き換え忘れたんだ、察してやれよ。
699デフォルトの名無しさん:2005/10/31(月) 18:47:10
>>695
問いの答えは必ずしも簡単とは限らない。勉強になっただろ?
700688:2005/10/31(月) 20:39:41
>>694
おもろいね。
callが値を返すなら、callは演算子と言った方が正確だろうね。
701デフォルトの名無しさん:2005/10/31(月) 21:07:12
「言語仕様がキモいと言ってくる他言語ユーザーがいても無視してください」 HSPユーザーML
702デフォルトの名無しさん:2005/11/01(火) 00:46:11
Ruby のことかー
703デフォルトの名無しさん:2005/11/01(火) 05:00:41
>>645
のURLはどこ?
704デフォルトの名無しさん:2005/11/01(火) 05:43:16
705デフォルトの名無しさん:2005/11/01(火) 06:07:42
またGoogleのシンパか
706デフォルトの名無しさん:2005/11/01(火) 06:49:30
>705
まぁまぁ、落ち着いてくださいよ。
707デフォルトの名無しさん:2005/11/01(火) 16:20:53
Pythonのyield文使ったジェネレータ構文て、すごい便利だよね。
もっと特徴として有名になってもいい気がするんだけど。
ほかの言語にも似たような機能ってある?
Rubyにも似たのがあるらしいけど、ちょっとちがうよね?
708デフォルトの名無しさん:2005/11/01(火) 16:40:42
暇な人来てください
問題を出し合う勉強会的なスレに生まれ変わりました
ソースコードでいっぱいなスレになればと思っています

Pythonについて0から教えてください
http://pc8.2ch.net/test/read.cgi/tech/1126073956/
709デフォルトの名無しさん:2005/11/01(火) 17:50:09
入れ子になったリストを辞書に突っ込みたくって、
タプルに変換しようとしたけど、tuple()って中まで変換
しないんだけど...。

出来るかぎり高速に一発で変換するにはどうすればいいんでしょうか?
710デフォルトの名無しさん:2005/11/01(火) 18:31:29
>>> def recursive_tuple(t):
    if isinstance(t, list):
        return tuple(map(recursive_tuple, t))
    return t

>>> recursive_tuple([1, [2, [3, 4], 5], 6])
(1, (2, (3, 4), 5), 6)
>>>
711デフォルトの名無しさん:2005/11/01(火) 18:50:30
キーをstrで文字列にするとか
712デフォルトの名無しさん:2005/11/01(火) 20:28:30
>>707
generatorといえばIconというスクリプト言語を思い出す。
ttp://www.rakunet.org/TSNET/topics/iconlec6.txt
713709:2005/11/01(火) 20:37:51
>>710
どうもです。
やっぱり、自前でやるしかないのかなぁ。

>>711
取り出して使うことを考えると、そのまま格納したいなと。
714デフォルトの名無しさん:2005/11/01(火) 21:36:30
てきとーなクラスを定義してwrapすりゃいーんじゃね?
715デフォルトの名無しさん:2005/11/02(水) 00:15:35
yieldがよくわからん
716デフォルトの名無しさん:2005/11/02(水) 00:32:10
プログラムの途中で抜け出して、
再び途中から始めるための機構
717デフォルトの名無しさん:2005/11/02(水) 02:00:57
2.4になって、ジェネレーター表現ってのが追加された事を
今更思い出したんで、ちょっと調べてみた。

g = (x**2 for x in range(10))
print g.next()



def __gen():
for x in range(10):
yield x**2
g = __gen()
print g.next()

が同じで、

print [x**2 for x in range(10)]



print list(g)

が同じなんだな。
やべー、理にかなってる!!
リスト内包って、ジェネレーターをリストに展開したものだったのかー!!
だったら早く言ってくれよ。リスト内包だけ見せられても違和感があったよ。
718デフォルトの名無しさん:2005/11/02(水) 03:31:54
>>707
C#にあったような・・・ yield
719707:2005/11/02(水) 10:08:39
>>712
>>718
ありがとう。IconとC#、調べてみるよ。
>>715
716の言うとおり。具体的な使い方としては、
717みたいな緩慢なイテレータとしての使い方と、
スレッドみたいなもの、というか半コルーチンとしての使い方の両方ある、
よね!?
720715:2005/11/02(水) 10:17:43
>716-719 yieldの件参考になりましたありがとう。
今度使ってみます。
721デフォルトの名無しさん:2005/11/02(水) 15:59:35
おれはメタクラスがよくわからん
722デフォルトの名無しさん:2005/11/02(水) 16:06:00
時代遅れの人向け python キャッチアップ用のページとか
どこかにないのかな?
723デフォルトの名無しさん:2005/11/02(水) 16:30:31
724デフォルトの名無しさん:2005/11/02(水) 17:12:25
別に背伸びする必要はない。
725デフォルトの名無しさん:2005/11/02(水) 18:17:19
ジェネレータ表現のおかげで、

>>> tuple(x**2 for x in range(10))
(0, 1, 4, 9, 16, 25, 36, 49, 64, 81)

タプル内包ができるけど、もう「内包」って言葉は無意味だね。
俺には馴染みがないし、いずれなくなるんだろうな。
726デフォルトの名無しさん:2005/11/02(水) 21:04:22
無くなりはしないだろう。
計算済みの要素から成るリストが欲しい場合には依然としてリスト内包が有効。
727デフォルトの名無しさん:2005/11/02(水) 21:17:54
>>723
キャッチアップの意味わかるか?
728デフォルトの名無しさん:2005/11/02(水) 21:23:40
>>727
もったいぶらないでさっさと教えろよ。
729デフォルトの名無しさん:2005/11/02(水) 21:31:20
駐車違反でレッカーされる直前のことだろ。
730デフォルトの名無しさん:2005/11/02(水) 21:38:27
>>722
せいぜいこれくらいかなー。
http://www.itmedia.co.jp/enterprise/articles/0412/01/news023.html

英語で探せばもっとあると思うんだけど。どうやって探せばいいかわからん。
誰か探してきて。
731730:2005/11/02(水) 21:40:06
リンク先まちがえました。すんまそ
http://www.itmedia.co.jp/enterprise/articles/0501/24/news034.html
732デフォルトの名無しさん:2005/11/02(水) 21:41:17
こっちの方がいいんじゃないかな.
ttp://www.itmedia.co.jp/enterprise/articles/0501/24/news034.html
733デフォルトの名無しさん:2005/11/02(水) 21:44:20
こんなのもあった。日本語訳はどこにあるかわからない。

「What's New in Python 2.4」
http://docs.python.org/whatsnew/whatsnew24.html
734デフォルトの名無しさん:2005/11/02(水) 21:54:23
735デフォルトの名無しさん:2005/11/02(水) 22:03:26
さんきゅー
736デフォルトの名無しさん:2005/11/02(水) 23:02:36
>722
オフィシャルに出てるPythonのWhatsNew( >733 のやつだね)を
自分の知っている最後のバージョンから順に読んでいくのが良いんじゃないのか?
でも2.4のWhatsNewは日本語訳されてないんだね。
737デフォルトの名無しさん:2005/11/02(水) 23:23:22
>>726
リスト内包は、list(ジェネレータ表現)と同値だから概念としてなくなる
ってだけで、機能的にはなくならないよ。
738デフォルトの名無しさん:2005/11/02(水) 23:34:07
辞書の内包表記無いんだね. dict((x, math.sin(x)) for x in (2*math.pi*i/360.0 for i in range(360))) でとりあえずは書けるけど.
739デフォルトの名無しさん:2005/11/03(木) 00:00:30
>>738
とりあえずって言うか、書けてんじゃん。
しかし、なぜそんなに複雑な例を...。キーに浮動小数点使ったら
値を取り出し難くない?
740デフォルトの名無しさん:2005/11/03(木) 00:10:53
キャッシュ目的の三角関数表を作るんだったらこれでいいんじゃない?と思ったけど,
分割数が分かってるならキーを整数にした方が高速なのかな?
741デフォルトの名無しさん:2005/11/03(木) 00:59:52
dictionaryのもつアイテム数が同じ場合、キーに整数を使うか浮動小数点数を使うかで、
dictionaryの応答速度は変わるものなの?

こういう時にこそ timeit() で測るべきなのかな。
742739:2005/11/03(木) 01:08:39
>>740,741
俺が言いたいのは、浮動小数点は計算仮定によって結果が微妙に
一致しなくなる事があるんで、キーには不向きだという事。

浮動小数点同士をイコールで比較するのが馬鹿げているのと同じ事。
743デフォルトの名無しさん:2005/11/03(木) 06:20:32
Python Cookbook の翻訳マダー?
744デフォルトの名無しさん:2005/11/03(木) 11:16:44
ニシキ蛇の料理レシピ
745デフォルトの名無しさん:2005/11/03(木) 12:38:54
らくだより(゚д゚)ウマー
746デフォルトの名無しさん:2005/11/03(木) 14:24:47
プログラミング言語 Python に関するポッドキャスト
http://kariyushi.plala.jp/chewganabira/13
これ聞いて落ち着こうぜ
747デフォルトの名無しさん:2005/11/03(木) 17:59:04
なんで元のサイトをリンクしないんだ?
http://www.awaretek.com/python/index.html

前聴いてたけど、オサーンが一人で延々喋ってるのが妙に眠けを誘ったり
二人くらいで掛け合いながらやってくれるとうれしいんだけど
748デフォルトの名無しさん:2005/11/03(木) 19:09:44
>>747
俺だったら英語見た瞬間やる気なくすので
749デフォルトの名無しさん:2005/11/03(木) 19:43:51
自分で辞書片手に翻訳すれば
英語とPythonの勉強になって
さらに人の役に立っていいことづくめじゃん
なんでやらないの?
750デフォルトの名無しさん:2005/11/03(木) 19:45:20
二兎追うものは代アニに入学するっていうじゃん
751デフォルトの名無しさん:2005/11/03(木) 19:47:26
Pyお姉さんの解説希望
752デフォルトの名無しさん:2005/11/03(木) 20:00:20
Pychinkoって言って欲しい
753デフォルトの名無しさん:2005/11/03(木) 20:26:19
>>748
だってこのポッドキャスト英語だよ?
聞けって紹介してんだから、イントロダクションが日本語だろうが関係なくね?

それはともかく、そのポッドキャストでも紹介してたけど、Magnus Lie Hetland
(PyJUGに訳があるインスタント・ハッキングとかを書いた人)の
Beginning Python: From Novice to Professionalは良い本らしいね。

http://www.hetland.org/writing/beginning-python/

Apressがebook版出してれば即買いするんだけどなあ
754デフォルトの名無しさん:2005/11/04(金) 09:30:41
Pythonって整数変数が不変性(immutable)オブジェクトになってるじゃん。
これのネタ元になってる言語があると推察してるんだけど。
こういう仕様になってる他の言語ってある?
755デフォルトの名無しさん:2005/11/04(金) 10:02:14
Javaも小さい正数値はそうだったと記憶しているよ
756デフォルトの名無しさん:2005/11/04(金) 10:03:17
すまん

Javaの方が後発でした
757デフォルトの名無しさん:2005/11/04(金) 10:41:35
pykfを2.4にインストールしたいんだけど
教えてください。
758デフォルトの名無しさん:2005/11/04(金) 11:54:56
zopeは機能が豊富すぎるので必要最低限の機能(任意で選択)以外を削りたいんだけど。
759デフォルトの名無しさん:2005/11/04(金) 14:08:32
>>757
RTFM

>>758
ハック汁
760デフォルトの名無しさん:2005/11/04(金) 15:03:44
>>759
コンパイラなくてコンパイルできんのです
761デフォルトの名無しさん:2005/11/04(金) 15:32:08
分かってんじゃん。
762デフォルトの名無しさん:2005/11/04(金) 16:22:43
解決したよ。ハゲ
763デフォルトの名無しさん:2005/11/04(金) 16:38:18
良かったな。
764デフォルトの名無しさん:2005/11/04(金) 18:02:22
変数に対してその変数名を得るメソッドや関数はありませんか?
765デフォルトの名無しさん:2005/11/04(金) 19:34:45
      (
     ,,,,,,..)、、_
   /      `ヽ、
  / / ̄ ̄ ̄ ̄ヽl
  l_/  ●   ● i  1本生えてるってばー!!!
  |    ( _●_)  /
 彡、   |∪|  、`\
/ __  ヽノ /´>  )
(___)   / (_/
 |       /
 |  /\ \
 | /    )  )
 ∪    (  \
       \_)
766デフォルトの名無しさん:2005/11/04(金) 20:26:49
>>764
多分ないと思う。
Pythonの変数は辞書に格納されてるから、名前→値とはなってるけど
名前←値は無理っぽい。

objが目的の変数だとして、めっさ強引にやると

>>> obj = 3
>>> [key for key, value in vars().iteritems() if id(value) == id(obj)]
['obj']
767デフォルトの名無しさん:2005/11/04(金) 21:40:58
ttp://www.tiobe.com/index.htm?tiobe_index
これを見ると2004/3月ごろにユーザがどかっと増えてるんだけど,その頃なんかあったっけ?
768デフォルトの名無しさん:2005/11/04(金) 22:11:33
>>767
ヒント: 年度末
769デフォルトの名無しさん:2005/11/04(金) 22:12:56
プリキュアが一人増えた
770デフォルトの名無しさん:2005/11/04(金) 22:49:11
何でPython使ってる香具師に
アニオタや虹オタが多いの?
771デフォルトの名無しさん:2005/11/04(金) 22:54:43
虹と蛇って似てるよね
772デフォルトの名無しさん:2005/11/04(金) 23:02:47
>>767
「pygame実況中継」効果
…は、日本だけか。
773デフォルトの名無しさん:2005/11/04(金) 23:21:21
>>754-756
immutableとinternが混ざってますよ
774デフォルトの名無しさん:2005/11/05(土) 04:28:27
2.4以前にinternの意義がよくわからん。パフォーマンス用?
775デフォルトの名無しさん:2005/11/05(土) 08:00:49
メモリ消費量の減少と辞書検索効率の向上が効果だそうな>intern
ただあんまり劇的に向上するわけでもないとか、
Unicode文字列にintern関数が効かないとかいう話も。

普段は全く気にする必要はないと思われ。
776デフォルトの名無しさん:2005/11/05(土) 08:53:06
zipfileでファイルを少しづつ読み出しながら処理をする事ってできないの?
大きなファイルを読み出そうとして、うっかり他のプロセスを
システムに殺されそうになった。
777デフォルトの名無しさん:2005/11/05(土) 09:52:32
zipfile.py の 347 行目ぐらいで
bytes = self.fp.read(zinfo.compress_size)
と一気に読み込んでいるからこの部分を変更しないと無理
778デフォルトの名無しさん:2005/11/05(土) 10:43:26
pythonからmp3ファイルのタグ情報を読み込もうとしてるんだけど
日本語名のファイルを読み込むと訳のわからない文字コードになります。

例:
口唇 → \x8c\xfb\x90O
誘惑 → \x97U\x98f

↑これはなんですか?通常の日本語にする方法はありますか?
ちなみにeyeD3とid3readerっていうモジュールを使用しました。
779デフォルトの名無しさん:2005/11/05(土) 10:56:38
ぐぐれよ… 最低でもこれくらい書け

* ID3 タグのバージョン
* 使っている python の id3 パッケージの種類/バージョン
780デフォルトの名無しさん:2005/11/05(土) 11:00:51
あ eyeD3 ね。eyeD3 と id3reader 併用するのが良くわからんが
eyeD3 は v2.x を自分で読み書きする範囲では UTF16 で
日本語もそこそこ問題なく扱えてます。

他所で書いた ID3 タグを読むのは ID3 version と
(各々好き勝手にやっているらしいところの)文字コードを
考えないとダメだと思いますよ。
781デフォルトの名無しさん:2005/11/05(土) 11:07:00
>>779
>>18-27
ただのコピペかと。
782デフォルトの名無しさん:2005/11/06(日) 13:52:11
インターネット越しに取得したEUC_JP文字列をUnicodeで保存し、
次に保存した文字列を読み出して画面に表示させようと思い、
・保存時
data = unicode(s, 'euc_jp')
・表示時
str(data)
としたのですが、UnicodeEncodeErrorになってしまったので、
・表示時
str(data.encode('utf-8'))
として切り抜けたのですが、これでよかったのでしょうか?

ご助言お願いしますm(_ _)m
783デフォルトの名無しさん:2005/11/06(日) 14:11:58
str() はいらないんじゃないかな
784デフォルトの名無しさん:2005/11/06(日) 14:20:25
すみません。それぞれ
data、
data.encode('utf-8')
の間違いです。
785デフォルトの名無しさん:2005/11/06(日) 16:59:05
winのIDELでCtrl+Pを間違えて押すとプリンタと通信するの抑制できないでしょうか。
786785:2005/11/06(日) 17:20:32
>>785
設定のkeysetを変更することで可能になりました。
Idel Unix Styleはemacs系か。bashっぽい定義と差し替えできないかな。
787デフォルトの名無しさん:2005/11/06(日) 17:34:39
import this
やってみてください。面白いのがでてくる(interactive・commandlineモードでよい)
788デフォルトの名無しさん:2005/11/06(日) 17:49:40
>>770
おいおい。両方俺に当たってるけど(ry
けど、俺留学のとき蛇にはまったから、アニメ・ラルクは関係ないかも
789デフォルトの名無しさん:2005/11/06(日) 19:14:20
>>787
>import this
ネタばれ注意につき、 おー! とだけ書いておく。
790デフォルトの名無しさん:2005/11/06(日) 19:16:54
ファミコンの裏技みたいだ
791デフォルトの名無しさん:2005/11/06(日) 20:17:52
>788
極めてどうでもいい話だが
770の「虹」はラルクじゃなく「二次元」、つまりアニメ・漫画・ゲーム全般を指すと思われ
792デフォルトの名無しさん:2005/11/06(日) 20:19:41
793デフォルトの名無しさん:2005/11/06(日) 22:22:51
虹 = ラルク方程式はまぶしいよ。
なんて普通の人なんだ。

虹裏とかいう言葉とは無縁なんだろうな。
794デフォルトの名無しさん:2005/11/06(日) 22:39:30
「パイソンたん」
795デフォルトの名無しさん:2005/11/06(日) 22:58:13
L'arc en Cielが虹の意味だと今知った俺はどのくらい普通の人でしょうか
796デフォルトの名無しさん:2005/11/07(月) 01:04:12
よくimportされるモジュールのかなり正確なランキングが知りたいんですけど・・・ある?
797デフォルトの名無しさん:2005/11/07(月) 01:16:20
投票で

sys 1
re 1
struct 1
798デフォルトの名無しさん:2005/11/07(月) 01:23:30
Blender 1
799デフォルトの名無しさん:2005/11/07(月) 01:52:26
# find /Library/Frameworks/Python.framework/Versions/Current/lib/python2.4/ -name "*.py" -exec grep "import" {} ¥; >allimport.txt
infile = file('allimport.txt', 'rb').read()
import re
ptn1 = re.compile(r'^¥s*import (.+)$', re.M)
ptn2 = re.compile(r'^¥s*from (.+) import .+$', re.M)
mods = [mod.strip() for mod in ','.join(ptn1.findall(infile)).split(',')] + ¥
  [mod.strip() for mod in ','.join(ptn2.findall(infile)).split(',')]
count = {}
for m in mods:
  if not count.has_key(m):
    count[m] = 0
  count[m] += 1
print sorted(count.items(), key=lambda k: k[1], reverse=True)
-----------------
[('pytz.tzinfo', 1577), ('sys', 1271), ('os', 975), ('types', 689), ('string', 516), ('time', 360), ('unittest', 358), ('re', 310), ('wx', 282), ('test', 205), ('Pythoncard', 203), ('Numeric', 198), ...
800デフォルトの名無しさん:2005/11/07(月) 02:01:37
>>799
サンプルに偏りが認められる。
したがって不可。
801デフォルトの名無しさん:2005/11/07(月) 08:51:32
もれの場合、標準モジュール以外のモジュール中 wx, Numeric よく使う

802デフォルトの名無しさん:2005/11/07(月) 15:57:33
良く使うのはwin32oleかな。
803デフォルトの名無しさん:2005/11/07(月) 16:08:25
俺はkinterbasかな
804デフォルトの名無しさん:2005/11/07(月) 16:38:02
mathとrandom
805デフォルトの名無しさん:2005/11/07(月) 16:41:37
reとurllib2
806デフォルトの名無しさん:2005/11/07(月) 16:43:29

re, string
807デフォルトの名無しさん:2005/11/07(月) 16:49:03
>>801 で気づいたんだけど,今のrandomはシステムのrandomを使ってないんだね.それとも昔から?
808デフォルトの名無しさん:2005/11/08(火) 19:11:20
PythonにはC言語のdo...whileの様な制御文は無いかな?

809デフォルトの名無しさん:2005/11/08(火) 19:35:34
C以外にその制御構造って採用してる言語多いの?
810デフォルトの名無しさん:2005/11/08(火) 20:37:47
>>809
多いかどうかはしらんがPascal、modula-2/3にもあるな
811デフォルトの名無しさん:2005/11/08(火) 20:53:13
>>805
>PythonにはC言語のdo...whileの様な制御文は無いかな?
ないよ.
whileと break を使えばいいからじゃないかな.
812デフォルトの名無しさん:2005/11/08(火) 21:11:33
>809
QuickBasicにもあったような気がする。
WHILE〜WENDとLOOP〜WHILEだったかな。
813808:2005/11/08(火) 21:14:42
>>811
サンクス

>>809
C#、Java、Perlも採用してるから
do...whileの様な制御文を持つ言語は多いと思う
814デフォルトの名無しさん:2005/11/08(火) 21:44:15
PEP315にはPython-Version: 2.5 ってあるな。でも2.5aには入ってないようだ。
ttp://www.python.org/peps/pep-0315.html
815デフォルトの名無しさん:2005/11/08(火) 23:11:30
>>794
ついにRubyみたいになるのか・・・
816デフォルトの名無しさん:2005/11/08(火) 23:13:09
公式にルビまなんて発刊してるとこには永遠にかなわないと思う
817デフォルトの名無しさん:2005/11/08(火) 23:20:27
>>814
そのPEPから飲尿。

do:
  <setup code>
while <condition>:
  <loop body>

妙な感じだなー。whileとdo-whileを並べてみるテスト。

while <condition>:
  <loop body>
do:
  <setup code>
while <condition>:
  <loop body>

うーん・・・。

do:
  <setup code>
while <condition>:
  <loop body>
while <condition>:
  <loop body>

ううーん・・・。
818デフォルトの名無しさん:2005/11/08(火) 23:34:05
do: を単に if True: の syntax sugar にして, while を do: ブロックの中に入れたらいいんじゃね?
って誰か言ってなかったっけ.
819デフォルトの名無しさん:2005/11/09(水) 00:27:54
do while は条件が倒置されて
(書きやすくても)読みにくくなりやすいので
python way では無理にその記法を導入しなくても
いいんじゃないかと思うんだけど

今までなかったのはそういう理由じゃないのか?
820デフォルトの名無しさん:2005/11/09(水) 00:58:43
上でいうところの <setup code> をうまく書けるようにしたいということなんじゃない?
821デフォルトの名無しさん:2005/11/09(水) 09:50:26
doしちゃいな!
822デフォルトの名無しさん:2005/11/09(水) 10:25:10
doすりゃいいんだい?
823デフォルトの名無しさん:2005/11/09(水) 15:24:13
dowhile <condition>:
  <loop body>
一回目は condition を無視
・・・直感的とは言い難いなぁ
824デフォルトの名無しさん:2005/11/09(水) 15:49:07
それは地雷以外の何者でもないと思う… のは保守的すぎ?
825デフォルトの名無しさん:2005/11/09(水) 16:15:33
>>823
こう書けば直感的に分り易いと思う。
do:
  <loop body>
while <condition>:
826デフォルトの名無しさん:2005/11/09(水) 16:28:18
ループ きたー
827デフォルトの名無しさん:2005/11/09(水) 16:57:19
なんのことかと思ったらこれのことか・・・
ttp://pggirls.asukaze.net/index.php?cmd=read&page=%B2%E8%C1%FC%2FPython%A4%BF%A4%F3
828デフォルトの名無しさん:2005/11/09(水) 17:13:34
Pascal/modula-2系では、直感的に前判定か後判定かわかるように、
while do .. と repeat ... until というように、
あえて予約語が同じにならないようにしている、というのを何かで読んだ。
(たぶんWirth先生のどっかの談話)
829デフォルトの名無しさん:2005/11/09(水) 17:34:37
>>825
:の後にブロックがないので却下。
830デフォルトの名無しさん:2005/11/09(水) 19:36:20
PEP315は普通のwhile文と間違いやすいから
whileの替わりにuntilを使った方が良さそうだな
831デフォルトの名無しさん:2005/11/09(水) 22:32:26
>>827
心の中で何かが崩れ去りました。。。
832デフォルトの名無しさん:2005/11/09(水) 22:57:13
(;´Д`)ハァハァハァハァハァハァハァハァハァハァハァハァハァハァ
http://pggirls.asukaze.net/index.php?plugin=attach&openfile=img20040706000531.jpg&refer=%B2%E8%C1%FC%2FHaskell%A4%BF%A4%F3
833デフォルトの名無しさん:2005/11/10(木) 17:00:34
PythonたんがPythonの基礎を優しく教えてくれる入門書が欲しい
834デフォルトの名無しさん:2005/11/10(木) 17:33:13
流れをぶった切る質問で恐縮ですが,Windows で使える Python の違いって
なんなのでしょうか? ちょっと調べたところ,

1. cygwin の python
2. ActivePython
3. PyJUG にある日本語環境 Python

がありました.1 と 2 は 2.4,3 は 2.3 ベースなので新しい方がいいかなと思ったの
ですが,日本語が使えないのは嫌だなぁとも思います.この違いを猫でもわかるよう
に噛み砕いて説明してくださると大変ありがたいです.
あと,プログラムも日本語を扱うものがあるとうれしいかも.
835デフォルトの名無しさん:2005/11/10(木) 17:37:33
>>834
どれでも日本語は扱えるよ。あと、肝心なのを一つ忘れてるよ。

4. http://www.python.org/ で配布している Windows 版 Python
836デフォルトの名無しさん:2005/11/10(木) 17:43:08
2.4から標準で日本語codecが組み込まれてるよ
837デフォルトの名無しさん:2005/11/10(木) 17:43:13
838デフォルトの名無しさん:2005/11/10(木) 19:35:29
>>834
取りあえずこれ買っとけ
http://www.oreilly.co.jp/books/4873112109/
839デフォルトの名無しさん:2005/11/11(金) 00:20:58
2.4になってやっと、公式配布でも普通に日本語が使えるように
なったと言ってもいいのかな?
840デフォルトの名無しさん:2005/11/11(金) 00:27:58
オライリーのPyhthon本は分厚いので電車で読めるように上下巻とかにして欲しい
841デフォルトの名無しさん:2005/11/11(金) 00:44:06
あの本は「始めの」シリーズの中で一番分かりにくい。
842デフォルトの名無しさん:2005/11/11(金) 00:45:37
やさしいpythonまだー
843デフォルトの名無しさん:2005/11/11(金) 00:46:08
>>840
自分で切れ。バッサリやっちまえ。
844デフォルトの名無しさん:2005/11/11(金) 09:39:54
>842
http://www.amazon.co.jp/exec/obidos/ASIN/4894714019

「python の入門書」というのとは観点が違うけど
真の入門者にはむしろいいと思う
845デフォルトの名無しさん:2005/11/11(金) 23:56:35
なぜ

teststring = "hogehoge"



size = teststring.size()

が出来ないんだ?

size = len(teststring)

なんて、オブジェクト指向か?

import string
size = string.size(teststring)

もダメだし。。。。。
846デフォルトの名無しさん:2005/11/12(土) 00:11:18
そうだそうだ!
teststring.new()
teststring.sizeof()
teststring.instanceof(string)
testlibrary.import()
bits.rightshift(3)
test.as(hoge)
test.is(fugo)
func.syncronized()
ができなきゃオブジェクト指向じゃねーよ。






で、オブジェクト指向ってなに?
847デフォルトの名無しさん:2005/11/12(土) 00:12:58
http://www.python.org/doc/faq/general.html#why-does-python-use-methods-for-some-functionality-e-g-list-index-but-functions-for-other-e-g-len-list

主に歴史的事情だ。関数は一連の型に対して共通の操作に対して
使われ、全くメソッドを持たないクラス(例: touple)にすらも作用する。
また、Pythonの関数的な特性を利用したい場合は、
amorphousなオブジェクトの集合に対して適当できる関数があると
便利な場合もある(例えば map() apply()など)。

実際、len(),max(),min()を組み込み関数として持つことは、それぞれの型に
メソッドを実装するよりもコードが少なくていい。個々のケースに不満を
持つ人はいるかもしれないが、これはPythonの一部だし、このような
基本的な所を変更するにはもう遅すぎる。これら関数は莫大なコードの破綻を
防ぐためには、存在しつづけなければならない。

文字列の操作についてはPythonは(string moduleの)外部関数に移したことを
気をつけて。しかし、len()は以前関数のままだ。
848847:2005/11/12(土) 00:13:53
儂も気になったので訳してみました。
synchronizedは俺も欲しい (Javaで唯一「使える」機能だと思ぅ)
849デフォルトの名無しさん:2005/11/12(土) 00:14:27
850847:2005/11/12(土) 00:14:59
s/以前/依然/; # orz

851デフォルトの名無しさん:2005/11/12(土) 00:28:45
len(s)は関数というより演算子という考え方なんだろ。
852デフォルトの名無しさん:2005/11/12(土) 00:53:15
>>845
"hogehoge".__len__()
[1, 2, 3].__len__()
{1:"a", 2:"b"}.__len__()

否定するなら、もっとちゃんと調べてからにしろよ。
まぁ、次は「__len__って。ダセーwww」とか言うんだろうけど。
853847:2005/11/12(土) 00:55:48
まぁ、PythonはPythonだ。Object指向であるかなきかは関係ない。
そんなことより、久々にjython使ったら2.1に対応するコードってめんどちゃいね。
854デフォルトの名無しさん:2005/11/12(土) 01:34:18
enthonってのがあるのか・・・・
2.3.5ベースだけどインストール楽そうでいいな・・・。
855845:2005/11/12(土) 02:51:15
いやいや、みんな
ありがとう。

実はつい最近pythonを使い始めたところで、よく分からんまま
ちょっと愚痴っちゃったわけで・・・。

歴史的な経緯も理解できるし、
>852 さんのように、.__len__()がある事も分かりました。
ホントにありがとうございますです。

今日は、1つ勉強になりました。
これで、Pythonレベル +1 ですね!



856デフォルトの名無しさん:2005/11/12(土) 06:13:26
>>855はツンデレ
857デフォルトの名無しさん:2005/11/12(土) 12:31:03
>>855
がんばれ
858デフォルトの名無しさん:2005/11/13(日) 16:14:12
>>852
コールバックされることを期待しているような
__XX___() を直接呼ぶのはpythonの作法としては真っ当なんでしょうか?
オレpython初心者でスタイルやイディオムがわからんので教えて〜
859デフォルトの名無しさん:2005/11/13(日) 16:30:46
pythonの作法に従うなら、
len(List)
を使う。
860デフォルトの名無しさん:2005/11/13(日) 21:07:33
Windows版Python2.4用にC拡張モジュールを書いてビルドするには
http://www.vrplumber.com/programming/mstoolkit/

小一時間はまったがぐぐれば一発だったorzでも面倒
861デフォルトの名無しさん:2005/11/14(月) 17:24:07
sage
862デフォルトの名無しさん:2005/11/14(月) 17:53:12
過去スレとかどこかにおいてないの?
863デフォルトの名無しさん:2005/11/14(月) 18:02:24
私も過去スレdatのうpヽ(´ー` )ノキボン
864デフォルトの名無しさん:2005/11/14(月) 20:31:51
まとめwikiが欲しいなぁ。
MoinMoinで〜なんていわないから、PukiWikiとかでもいいから。
865デフォルトの名無しさん:2005/11/14(月) 21:45:40
pukiwikiはもうぐだぐだだからやめといたほうがよろし
むしろMoinMoinを積極的に使っていこうぜ
866デフォルトの名無しさん:2005/11/14(月) 21:57:35
867デフォルトの名無しさん:2005/11/14(月) 21:57:45
こんな雑談スレにまとめサイトなんて・・・
868デフォルトの名無しさん:2005/11/14(月) 22:20:39
旅の恥はかきすてのつもりだったのに、と思っているそこの香具師!
869デフォルトの名無しさん:2005/11/14(月) 22:30:46
そこにHikiをすすめるおれがきましたよ
870デフォルトの名無しさん:2005/11/14(月) 23:22:34
結局誰もまとめようとしない、に100マイル@ルフトハンザドイツ航空。
871デフォルトの名無しさん:2005/11/15(火) 01:24:32
いろいろ書き加えてみた。立てた人乙
872デフォルトの名無しさん:2005/11/15(火) 02:47:50
datとか持ってる人がいないとまとめる物がない。
873デフォルトの名無しさん:2005/11/15(火) 19:40:07
|∀゚》 だれかいる?
874デフォルトの名無しさん:2005/11/15(火) 20:18:11
ぁ ぼくがいて きみがいる
875デフォルトの名無しさん:2005/11/15(火) 22:13:53
index.htmlを作ったのでリンクするならこっちで頼みます。
http://www7a.biglobe.ne.jp/~yasozumi/python/wiki/
876デフォルトの名無しさん:2005/11/15(火) 23:59:29
ところで >375 のPythonCard一発インストーラ どうなりましたか?
877デフォルトの名無しさん:2005/11/16(水) 09:11:10
>>875
chm型式のdocumentまであったんだね、感動した!(俺が探せてなかっただけだが

管理人タンテラオツカレス
878デフォルトの名無しさん:2005/11/16(水) 11:35:51
sh で書くと
-----
for i in 1 2 3 4 5; do echo -n "."; done
echo
-----
のようにループの最中にどの程度処理が進んだかを逐次画面に出力するような
事をしたいのですが、python ではどう書けばいいのでしょうか?
-----
for i in 1 2 3 4 5:
print i,
-----
ではループが終わった後でまとめて出力しているようですし。

教えてエロい人!!
879デフォルトの名無しさん:2005/11/16(水) 11:47:45
sys.stdout.flush()
880デフォルトの名無しさん:2005/11/16(水) 16:18:48
PyJUGのニュースに「お勉強wiki」が投稿されていますよ。
http://www.python.jp/Zope/PyLog/1132101631

おまいらみましたか?
881デフォルトの名無しさん:2005/11/16(水) 16:57:49
ハイレベルWEBフレームワークDjango待望のリリースキターーー(゜∀゜)ーーー!
http://www.djangoproject.com

やっとSVNリポからとってこなくてもよくなった……。
882デフォルトの名無しさん:2005/11/16(水) 20:42:09
おおーやっと来たか!
SVN時代からちょっとずつ使ってみてたけど、Djangoはかなり筋がいい
フレームワークだと思う

Ruby on Railsも気になるけど、プログラミング言語としてはPythonの方が好みなので
こっちを期待してる

てかRuby on RailsとDjangoの比較のまとめってどこかにあるんですかね?
Djangoが正式版になったからこれから書かれるんでしょうか?
883875:2005/11/16(水) 22:38:07
>>877
あんなディレクトリがPyJUGにあったとは私も知りませんでしたよ
書いてくれた人アリガトン
ところで2.4のchmが読めないのは私だけ?
884デフォルトの名無しさん:2005/11/16(水) 23:33:02
ほんとだ。目次だけしか見れない。
ひょっとして、 Python24jp.chm 壊れてるのか?
885デフォルトの名無しさん:2005/11/17(木) 00:02:19
置き換えました.これでどうですか?
886884:2005/11/17(木) 00:28:02
>>885
> 置き換えました.これでどうですか?

おー! 早い! わざわざどーもです。
でもダメでした。相変わらず目次だけしか見れない…。


なんでだろう。コレと関係あるかな。
http://d.hatena.ne.jp/Wacky/20050703/1120378290

ちなみに、WinXP-SP2での閲覧です。
887デフォルトの名無しさん:2005/11/17(木) 00:45:34
うーん,何でだろう.ビルド環境は Win2K SP4+HTML Workshop 4.74.8702.0です.
直接開くと症状が出るようですね.
ファイルをダウンロードしてから開いてみてください.
直接オープンできないよう,zip に差し替えます.
888デフォルトの名無しさん:2005/11/17(木) 01:13:28
XP SP2 の人は落とした chm のプロパティ開いて「ブロックの解除」すれば
表示されませんか?
889884:2005/11/17(木) 01:23:34
>>887
> 直接開くと症状が出るようですね.
> ファイルをダウンロードしてから開いてみてください.
> 直接オープンできないよう,zip に差し替えます.

確認できました。
zip書庫の方はOKでした。本文もちゃんと表示されてます。
どうもありがとうございました。


# chmを直接ダウンロードするとファイルがおかしくなるのかなぁ。
# 直接落としたのとZIPの中身をmd5sumしても同じ値だったのに。なぜだ〜
890884:2005/11/17(木) 01:29:55
>>888
> XP SP2 の人は落とした chm のプロパティ開いて「ブロックの解除」すれば
> 表示されませんか?
直接落としてきたchmのプロパティで「ブロックの解除」してみました。


正常に表示できるようになりました。



こんなオプションあるなんて知らんかった…。 orz
どうもありがとう、おしえてくれた人。
891デフォルトの名無しさん:2005/11/17(木) 01:46:46
zip 書庫から解凍したファイルが見れたのは解凍ツールが
ZoneId を知らなかったからで、XP 標準の ZIP 展開を使った場合は
ブロック解除しないと多分表示されない。

XP SP2のZoneIdとは?
ttp://www.atmarkit.co.jp/fwin2k/win2ktips/498zoneid/zoneid.html

892デフォルトの名無しさん:2005/11/18(金) 00:59:29
Pythonでは、オブジェクトのメンバに、関数を入れて使うことは出来ないのでしょうか。
関数は、selfを引数に取らないものです。

class Hoge
  f
  def hoge(x):
    return f(x)

h = Hoge()
h.f = lambda x: x
h.hoge(1)
→引数大杉エラー

とりあえず、こんな泣きたくなるような逃げをしているのですが…
class Hoge
  f
  def hoge(x):
    return f[0](x)

h.f = (lambda x: x, None)
h.hoge(1)
1

Pythonでは関数はオブジェクトとして使うのは、流儀に半数のでしょうか。
とすると普通は、こう言うのはどうするものでしょう。
893デフォルトの名無しさん:2005/11/18(金) 01:31:07
def hoge()にselfの記述がないのは、そゆもんなの?

894デフォルトの名無しさん:2005/11/18(金) 01:32:23
クラスメソッドの定義では、暗黙的な引数として self を最初につける。

>>> class Hoge:
...     f = None
...     def hoge(self, x):
...             return f[0](x)
...
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
  File "<stdin>", line 2, in Hoge
NameError: name 'f' is not defined
895デフォルトの名無しさん:2005/11/18(金) 01:33:27
>>> class A:
    def __init__(self, f):
        self.f = f
    def g(self, x):
        self.f(x)

>>> def foo(x):
    print "foo:", x
    
>>> a = A(foo)
>>> a.g("Hello")
foo: Hello
>>>
896デフォルトの名無しさん:2005/11/18(金) 01:34:04
しまったー!
>894 はTraceBackなんか起こしません。
897デフォルトの名無しさん:2005/11/18(金) 01:36:40
ここしばらく本題から逸れ気味だったので嬉々としてレスしている奴が数名…w
898デフォルトの名無しさん:2005/11/18(金) 01:43:11
もちろん>>897もその一人…w
899デフォルトの名無しさん:2005/11/18(金) 01:56:36
これって要するに MixIn するのとは違うの?
てかPythonにはMixIn無かったか。
900892:2005/11/18(金) 02:09:53
初心者丸出しで済みません。
問題の環境が手元にないので、手元のWindowsにインストールしてやってみたら…

>>> class Hoge:
... f = None
... def hoge(self,x):
... return self.f(x)
...
>>> h=Hoge()
>>> h.f=lambda x:x
>>> h.hoge(1)
1
>>>

普通にいけますね…。おかしいな…。…、あ、会社でも行った…。
selfになれてないので、>>893の言う通り、
問題の環境でもどこか抜けていたのかもしれません。
ありがとうございました。
901デフォルトの名無しさん:2005/11/18(金) 06:15:45
ふと気になったんですが、-xオプションってどういう時に使うものなんでしょうか。
skip first line of source, allowing use of non-Unix forms of #!cmd
の後半の英語がわからんです・・・
902デフォルトの名無しさん:2005/11/18(金) 07:39:33
>>901
UNIX以外の#!cmdが使えるように第1行目をスキップする。
なぜなら、2行目にWin32等のpython用のコマンドが書かれてることが多いから ie. #!c:/python/bin/python.exe
903デフォルトの名無しさん:2005/11/18(金) 14:52:53
何の因果か PyPI にまで Enum が…。
http://cheeseshop.python.org/pypi/enum

PyJUG-MLのEnum談義はおもしろかったです。
http://www.python.jp/pipermail/python-ml-jp/2005-October/003412.html
904デフォルトの名無しさん:2005/11/18(金) 16:39:49
>>902
なるほど、winでもシャバン(#!)使えるんですね。
ディレクトリの区切りが/なのはcygwinとかでしかダメなのかな、
winのこの辺の仕組はよくわからんです・・・
でも読み飛ばそうがしまいが、シャバン行はShellが解釈する為の
ものだと思ってました。Pythonだと単にコメント行扱いですよね。

うーん、まだ混乱中・・・
905デフォルトの名無しさん:2005/11/18(金) 17:03:52
>>904
シャバンって...初めて聞いた。

で、そのシャバンはshellじゃなくてexecが解釈するんじゃない?
execは、その後に書かれた実行ファイルを起動すると。
pythonにはファイル名が渡されて、#の行は普通に読み飛ばすから
-xの存在する意味がわからん。。。

pythonがコマンドを起動する分けでもあるまい。
906デフォルトの名無しさん:2005/11/18(金) 17:29:59
shebangをシャパンと読むのはネタだよね
907デフォルトの名無しさん:2005/11/18(金) 20:38:55
>>906
誰がそう読んでるの?
908デフォルトの名無しさん:2005/11/19(土) 00:59:22
シャバン
あばよ涙
909デフォルトの名無しさん:2005/11/19(土) 01:16:11
よろしく勇気!!
910デフォルトの名無しさん:2005/11/19(土) 01:29:23
そんなんでageんなよw
911デフォルトの名無しさん:2005/11/19(土) 01:48:08
こんな使い方はどう?
下記2行をhello.batというファイル名で保存し、実行
python -x %0 %* & goto :EOF
print "Hello."

912デフォルトの名無しさん:2005/11/19(土) 02:04:30
さて、そろそろ次スレのタイトルを考えようか。
自分としては最後に "Pythonのお勉強 Part8" を付けることだけは譲れない。
913デフォルトの名無しさん:2005/11/19(土) 02:08:12

↓↓↓↓↓↓ 次 ス レ ↓↓↓↓↓↓

★Pythonって死滅しちゃうの?Part8★
http://pc8.2ch.net/test/read.cgi/tech/1113431728/l50
914デフォルトの名無しさん:2005/11/19(土) 07:36:00
シャリバン
ギャバン
とか名前だけ知ってるけど、同類?
915デフォルトの名無しさん:2005/11/19(土) 09:00:31
エクステーション pyとpycて何が違うんですか。
916デフォルトの名無しさん:2005/11/19(土) 09:09:11
>>911
随分とトリッキーな事を思いついたな。
確かにそういう使い方があるかも。

BATはよく知らんが、goto :EOFじゃなくて、exitみたいなのって
なかったっけ?
917デフォルトの名無しさん:2005/11/19(土) 09:42:49
>>915
.py→ソース(テキスト) .pyc→.pyのバイトコード(バイナリー) .pyo→.pycが更に最適化されたモノ
918デフォルトの名無しさん:2005/11/19(土) 09:44:33
マジレスするとシェバング。スペルわかんねぇけど shbang かなぁ。
919デフォルトの名無しさん:2005/11/19(土) 09:50:33
イテレータとジェネレータがよくわからない!!教えてください!

たとえば
for files,dirs,root in os.walk('/home/nanasi/'):
for name in file:
print os.path.join(root,name)

とかもイテレータ、ジェネレータで書けるの?
920918:2005/11/19(土) 09:52:32
>>904
「シャバン」ってのはネイティブっぽく gを抜いて発音してる?
pingをピンって言う人?
904さんの方が正しいような気がしてきたが日本人からしたらスゲー違和感ある
921デフォルトの名無しさん:2005/11/19(土) 11:56:34
もともと「shell bang」なのを「shebang」だったり「shbang」と書いたりするやつね。
アメリカ人はシェバーングとかシュバーングっぽく発音するけど、グはかすかに聞こえるくらい。
ふつうの日本人が聞いたらシバンって聞こえるんじゃないだろうか。
922デフォルトの名無しさん:2005/11/19(土) 12:17:34
うちの地方じゃイゲタビックリ
923デフォルトの名無しさん:2005/11/19(土) 12:29:24
オラが地方じゃぁシャープビックリ
924デフォルトの名無しさん:2005/11/19(土) 13:37:44
しゃーたまげた
925デフォルトの名無しさん:2005/11/19(土) 13:54:24
うちじゃシャープのシャとまざってシャバングになってる。
926デフォルトの名無しさん:2005/11/19(土) 14:02:48
要はpingをピンとするのかピングにするのかの違いってことだろ。
927デフォルトの名無しさん:2005/11/19(土) 14:07:10
ぷいんげ
928デフォルトの名無しさん:2005/11/19(土) 15:45:00
Django の発音 => 「チョんゴぁー」

http://www.djangoproject.com/documentation/faq/
"Django is pronounced zhane-go (with a long 'a')."
929デフォルトの名無しさん:2005/11/19(土) 16:18:48
うちの先輩はそれをピングぅーとゆいます>ping
930デフォルトの名無しさん:2005/11/19(土) 17:16:59
python → pyてょn → ぴちょん
931デフォルトの名無しさん:2005/11/19(土) 17:24:24
てょん
932デフォルトの名無しさん:2005/11/19(土) 17:28:55
ぴんぐぽんぐってない発音まで交えてpingを読む先輩をなんとかしてください。
933デフォルトの名無しさん:2005/11/19(土) 18:19:21
n と ng は別の音なので、日本語の文章の中で「ン」「ング」と
書き分ける(誇張して発音する)のはある意味正しい。
ba と va を「バ」「ヴァ」と書き分けるのと同じだね。

あと、shebang は辞書にも載ってるね。
手元の辞書には #! の意味は出てないけど発音は載ってる。
934デフォルトの名無しさん:2005/11/19(土) 18:28:07
さーて来週のサザエさんは
935デフォルトの名無しさん:2005/11/19(土) 19:20:42
波平です。北風が厳しい季節になってきましたな。
街頭では早くもクリスマスソングが聞かれるようになりました。
今年のクリスマスはカツオには「Cookbook」、ワカメには「入門」、
タラちゃんには「はじパイ」をプレゼントしてやろうと考えております。
さて、次スレのスレタイ候補は、

【これだけは】Pythonのお勉強Part8【ゆずれない】

★Pythonって死滅しちゃうの?Part8★

♥萌えるPythonプログラミングPart8♥

の3本です。

次スレもまた観て下さいね〜。
じゃんけんポンッ!
うふふふふふふ。
936デフォルトの名無しさん:2005/11/19(土) 20:01:39
こっちに移動するんじゃなかったっけ?

★Pythonって死滅しちゃうの?Part8★
http://pc8.2ch.net/test/read.cgi/tech/1113431728/l50
937デフォルトの名無しさん:2005/11/19(土) 20:04:20
【ここいらで】Pythonのお勉強 Part8【一念発起】
938デフォルトの名無しさん:2005/11/19(土) 20:12:18
レスくれた方々どうも。
なんか変に盛り上がってるw。スレ違いだけどいちおう・・・

shebang(#!)についてはwikipediaのページなどを参照、発音はgoo辞書の音声で
チェックしてみてください。
http://en.wikipedia.org/wiki/Shebang
http://dictionary.goo.ne.jp/search.php?kind=ej&from=webtu&MT=shebang
ちなみに#!をshabang(sharp bang)と綴る人*もいて、俺の発音(表記)はそっちを
意識した物になってます。
*有名所?だと例えばAdvanced Bash-Scripting Guideの以下の部分とか
http://www.tldp.org/LDP/abs/html/sha-bang.html#MAGNUMREF
日本語としてのカタカナ表記だとシャバンかシェバンが座りがいいかな、と。

で、>>902さんの書かれてた、「2行目にWin32等のpython用のコマンドが書かれて」
いるソース見てみたいんですけど、これどこかにないですかね。
でもこれ、>>905さんの言ってるようにPythonは読み飛ばすだろうし、
coding指定が(1-2行目で指定しないとダメなんで)普通にできないですね。うーん。

>>911さんのはなるほど、と思いました。でもすなおにスクリプトを別に用意して、
バッチファイルでそれを起動、でいけるので、わざわざ-xオプションを作った動機
にはならなそうな感じです。
939デフォルトの名無しさん:2005/11/19(土) 20:34:30
なんで糞なサブタイを
940デフォルトの名無しさん:2005/11/19(土) 20:41:01
>>937
> 【ここいらで】Pythonのお勉強 Part8【一念発起】
はじパイの帯にあった文句だ。と,いま気が付いた。

http://images-jp.amazon.com/images/P/4873112109.09.LZZZZZZZ.jpg
941デフォルトの名無しさん:2005/11/19(土) 21:19:56
>919 がネタに埋もれてスルーされちゃってる件...
942デフォルトの名無しさん:2005/11/19(土) 21:24:55
>>941 こんなので許して
[os.path.join(r,n) for r,d,ns in os.walk('/home/nanasi/') for n in ns]
943デフォルトの名無しさん:2005/11/19(土) 21:35:38
>>942
それって、イテレータ・ジェネレータとは微妙に違うような気が。
944デフォルトの名無しさん:2005/11/19(土) 22:17:40
お勉強wikiに参考図書の項目を追加してみたよ。
「Pythonの本を紹介して」って質問に対する回答みたいなのが欲しかったので。
945デフォルトの名無しさん:2005/11/19(土) 22:18:21
import sys, os

def flist_generator(dir):
  for fn in os.listdir(dir):
    path = os.path.join(dir, fn)
    if os.path.isdir(path):
      for subfn in flist_generator(path):
        yield subfn
    yield path

if __name__=="__main__":
  for f in flist_generator(sys.argv[1]):
    print f
946942:2005/11/19(土) 22:38:49
あ、こうすれば正解だったのか・・・
(os.path.join(r,n) for r,d,ns in os.walk('/home/nanasi/') for n in ns)
947デフォルトの名無しさん:2005/11/20(日) 00:49:06
IronPythonのステータスってまだベータなんだっけ
948デフォルトの名無しさん:2005/11/20(日) 01:24:26
ベータどころか、まだ アルファ・リリース だといってるぞ。
しかし、"early pre-alpha preview release" って何だよ。もったいつけすぎ。
http://workspaces.gotdotnet.com/ironpython
949デフォルトの名無しさん:2005/11/20(日) 01:57:07
>>941 >>942 >>945 >>946
アリガトウ!! 特に>>945がわかりやすかったです!!
950デフォルトの名無しさん:2005/11/20(日) 04:15:13
>>928
ジェンゴが一番近いと思うが
951デフォルトの名無しさん:2005/11/20(日) 04:17:56
>948
early pre-alphaだから、アルファ以前のうえ、しかも初期段階、ということなんだよね?
それでいて「CPythonより速いぜ」なんて言ってるんだから、末恐ろしい。
952デフォルトの名無しさん:2005/11/20(日) 08:22:50
>それでいて「CPythonより速いぜ」なんて言ってるんだから、末恐ろしい。
単にいろいろと実装してない分いろいろと実行しないから早いだけ、
と言う可能性があるので、まだ眉に唾をつけておいた方がいいと思う……。

いや期待はしてますよ。うん。
953デフォルトの名無しさん:2005/11/20(日) 08:54:47
IronPythonはもともとJythonの開発をやっていたひとが作ってるんでしょ?
AppletがPythonで作れるのはすごく便利だから、Jythonには期待してたんだけどなー。
せっかくPSFから助成金もらったのに、最近とんと音沙汰がないね。
954デフォルトの名無しさん:2005/11/20(日) 10:59:15
FAQちょっと訳した。パイパニックって何ですか?って入れようかと思ったけど
怒られると思ったからやめた。
955デフォルトの名無しさん:2005/11/20(日) 14:10:49
パイパニックって何ですか?
956デフォルトの名無しさん:2005/11/20(日) 14:26:55
http://www.amazon.co.jp/exec/obidos/ASIN/B00005HTGC/
豪華客船‘バイタニック’の船内で繰り広げられる性の狂乱を描いた
ハード・エロスをDVD化。レズ、ホモなど、マニアにはたまらない過激な
シーンが満載。

原題はbi-tanic。
http://www.sexherald.com/porn-movies/bitanic.html
957デフォルトの名無しさん:2005/11/20(日) 14:28:24
http://laboon.cc/
奥様エステパイパニック
958デフォルトの名無しさん:2005/11/20(日) 14:30:02
http://www.blondys.net/hpm%20dvd/pac-jvdx-904.htm
あなたも股間がデカプリオ
959デフォルトの名無しさん:2005/11/20(日) 15:01:36
うーん、マジレスしたいお年頃。
960デフォルトの名無しさん:2005/11/21(月) 15:28:36
# あかん
961デフォルトの名無しさん:2005/11/21(月) 16:23:46
ageでこんな返事が来るとは思わなかった
今は後悔している
962デフォルトの名無しさん:2005/11/22(火) 20:03:33
最近時々見掛ける.egg形式ってどう使うんですか‥‥‥?
Djangoさわってみようとして気になったんですが
963デフォルトの名無しさん:2005/11/22(火) 20:28:38
egg自体は単なるzipアーカイブだよ。
Ruby gems とか Javaのjarファイルみたいな位置づけ。

setuptoolsをつかうと自動でインストールできる。
http://peak.telecommunity.com/DevCenter/PythonEggs

このスレでも >515-517 で少し触れられている。
964962:2005/11/22(火) 22:06:26
>>963
ども。jarみたいなもんか。なるほど。

setuptools使わなくても、dlした.eggを
そのままsys.pathに通せばzipimportで使えるわけね。
965デフォルトの名無しさん:2005/11/22(火) 23:54:50
お勉強wikiのページにちょっと書き足したら、
「修正した際にはこのページの下にある更新履歴に書き込みして下さい。」
って言われた。

履歴機能の弱いFSwikiを採用しておいてそりゃないよー。
いちいち手で履歴書くなんてめんどくさい。
966デフォルトの名無しさん:2005/11/23(水) 01:29:54
そこで闇修正ですよ
967966:2005/11/23(水) 02:22:11
まぁセマンティックな履歴を出してくれるwikiなんぞないだろうし、
私は履歴書くのも書かないのも気分次第ですな。

ところでUnicode(BOMなしリトル)で書かれたテキストファイルは
普通に読めないのかな。
2バイトづつ読み込んで処理するのを、別に設けなければいけない?
968デフォルトの名無しさん:2005/11/23(水) 04:41:48
履歴というかコミットログみたいなものじゃないのか?
969デフォルトの名無しさん:2005/11/23(水) 05:21:13
PukiWikiにすれば履歴ってかバックアップが自動じゃないか?
970デフォルトの名無しさん:2005/11/23(水) 07:18:45
PukiWikiはかなりグダグダ
971デフォルトの名無しさん:2005/11/23(水) 09:32:19
utf-16-leじゃん?>967
http://www.amk.ca/python/howto/unicodeの
reading and writing unicode dataてとこ
972デフォルトの名無しさん:2005/11/23(水) 09:41:17
>965
っていうか、そんなのは本来は人間がやる仕事じゃないよな。
プラグインとかで対処すべき問題だろ。
973デフォルトの名無しさん:2005/11/23(水) 09:49:10
2chらしくはないけど、あれだな。
更新してくれた人に感謝するためにあると見た。
974デフォルトの名無しさん:2005/11/23(水) 10:17:30
消すか消されるかっていう殺伐感がwikiの醍醐味なんだから
モジモジしてないで、書くなら書いて反応みればいいのよ

975デフォルトの名無しさん:2005/11/23(水) 10:21:34
履歴が気になるということは
既にある内容を消して書くのとかが大丈夫か気になってるとか。
976デフォルトの名無しさん:2005/11/23(水) 10:49:13
どういう考えから更新したなんてプラグインじゃムリぽ
俺は一行アピールの場だと思ってる
自動更新履歴なんて見てもつまらない 
977デフォルトの名無しさん:2005/11/23(水) 12:21:34
ん?
それは更新履歴の話ではなくてChangeLogの話だよな?
965の話は「ソースや文章を直したのなら、なぜ直したのかをChangeLogとして記録してくれ」
ということなの?
978965:2005/11/23(水) 13:51:34
>>977
どちらともいえるんだよな。

おそらく管理者さんとしては、「書き換えの 意図 をChangeLogとして残して欲しい。」ということ
なのだと思う。

でも、wikiを書き換えた意図が理解できないなら、もっといい記述に書き換えるとか、元に戻す
とかすればいいだけだし。元に戻すには履歴保存機能が必要なんだけど、FSwikiにそれがな
い為に、仕方なくああなったんじゃないだろうか。

# MoinMoinのような履歴保存機能があればなぁ
979965:2005/11/23(水) 14:03:55
「履歴」という言葉は混乱の元になりやすいので、

履歴保存機能 => diff, CVSみたいなやつ, Pukiwikiでいうバックアップ
と読んでほし
980デフォルトの名無しさん:2005/11/23(水) 14:51:10
履歴=Historyと読んでた
そりゃ話が食い違う罠

2ch出身のwikiにバックアップなぞいるまいフフフ
981デフォルトの名無しさん:2005/11/23(水) 22:27:24
>>971
サンクス
encodingsディレクトリを見て、どう使うのかとずっと悩んでいたよ
982ミスターパイソン:2005/11/24(木) 13:15:15
新スレ立てました
よろしくお願いします

Pythonのお勉強 Part8
http://pc8.2ch.net/test/read.cgi/tech/1132805629/
983デフォルトの名無しさん:2005/11/24(木) 14:11:23
じゃあここからは「あなたの選ぶマニアックなモジュール紹介」でよろしく
984デフォルトの名無しさん:2005/11/24(木) 14:14:54
>>982
立てるんなら先に言えばいいのに・・・
985デフォルトの名無しさん:2005/11/24(木) 14:39:36
import threading

別にマニアックじゃないか…
986デフォルトの名無しさん:2005/11/24(木) 15:39:25
BF2ってゲームのフォルダあけたらpythonのファイル出てきたよ。
好きなゲームに使われてたら親近感わくね。
外国では結構メジャーらしいけど、pythonを解説してる日本語サイトもっと増えないかな。
987デフォルトの名無しさん:2005/11/24(木) 18:53:52
★Pythonって死滅しちゃうの?Part8★
を先に消費しなくて良いのか?
988デフォルトの名無しさん:2005/11/24(木) 19:19:03
このスレッドもそうだけれど
たぶんそっちのスレッドを使いたくないから
確信的にやっているんだろう?
ま、あの名称嫌いだし、どうでもいいけどね。
989デフォルトの名無しさん:2005/11/25(金) 00:05:12
というか死滅しそうにもないので、スレが伸びないんだろう
990デフォルトの名無しさん:2005/11/25(金) 00:30:35
うむ
アホが立てたスレはずっと放置で良い
991デフォルトの名無しさん:2005/11/25(金) 00:37:26
>>989
死滅するときはスレが伸びると思ってるの?
さすがにそれはないと思うよ
992デフォルトの名無しさん:2005/11/25(金) 00:43:13
end = 0





def f(n)
  return n
end
993デフォルトの名無しさん:2005/11/25(金) 00:43:50
end = 0





def f(n):
  return n
end
994デフォルトの名無しさん:2005/11/25(金) 01:00:17
>>991
消える前の電球は一瞬強く光るもんだ
995デフォルトの名無しさん:2005/11/25(金) 01:06:42
死滅スレは隔離用ですか。
なんか棲み分け方がDebianスレみたいだなw
996デフォルトの名無しさん:2005/11/25(金) 02:04:35
997デフォルトの名無しさん:2005/11/25(金) 04:12:34
もううめちゃおう
998デフォルトの名無しさん:2005/11/25(金) 04:13:05
うめうめ
999デフォルトの名無しさん:2005/11/25(金) 04:13:36
1000どぞ↓
1000デフォルトの名無しさん:2005/11/25(金) 04:45:17
case文きぼんぬ
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。