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

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

Pythonのお勉強 Part16

1 :デフォルトの名無しさん:2006/12/14(木) 07:57:54
http://www.python.org/
http://www.python.jp/Zope/

http://www.python.jp/doc/release/
http://diveintopython.org/toc/
http://www.python.org/dev/peps/

http://wiki.python.org/moin/
http://python.rdy.jp/

http://www.amazon.co.jp/s/&url=search-alias%3Dstripbooks&field-keywords=Python
http://www.amazon.co.jp/s/&url=search-alias%3Denglish-books&field-keywords=Python

Pythonのお勉強 Part15
http://pc8.2ch.net/test/read.cgi/tech/1163339504/

2 :デフォルトの名無しさん:2006/12/14(木) 09:04:01
>>1 乙パイ

3 :デフォルトの名無しさん:2006/12/14(木) 11:26:26
【NGName推奨】Python初心者

4 :デフォルトの名無しさん:2006/12/14(木) 16:48:29
おっ、Pythonスレですぅ。

5 :デフォルトの名無しさん:2006/12/14(木) 23:54:01
>5
前スレの巫女Pyナースについて一言

6 :デフォルトの名無しさん:2006/12/14(木) 23:54:26
>>1
パイ乙

7 :デフォルトの名無しさん:2006/12/15(金) 00:13:44
まだまだいくよぉ〜〜〜!!

巫女みこナース! 巫女みこナース!
リスト内包 巫女みこナース!!

巫女みこナース! 巫女みこナース!
lambda 一行 巫女みこナース!!

巫女みこナース! 巫女みこナース!
Py本粘着 巫女みこナース!!

巫女みこナース! 巫女みこナース!
初心者(復活) 巫女みこナース!!

巫女みこナース! 巫女みこナース!
print u"文字化け"巫女みこナース!!

巫女みこナース! 巫女みこナース!
メタクラ おっぱい 巫女みこナース!!

巫女みこナース! 巫女みこナース!
巫女みこナース! 巫女みこナース!
巫女みこナース! 巫女みこナース!

巫女みこナース! 巫女みこナース!

最後にもいっちょー、ハイ!
巫女みこナース!

8 :デフォルトの名無しさん:2006/12/15(金) 00:14:27
ぐぐる八分とは姑息だなw

9 :デフォルトの名無しさん:2006/12/15(金) 00:32:59
>>前スレ999
> mod_pythonが使えるレン鯖なら、DjangoのBlogとかがつかえるんじゃね?
実際にmod_pythonなレン鯖ってある?

10 :デフォルトの名無しさん:2006/12/15(金) 00:41:31
三項。

ttp://www.wappy.ne.jp/service/function.html

Googleで検索したらいろいろ出てきたよ。

11 :デフォルトの名無しさん:2006/12/15(金) 00:46:56
>>9
http://moover.jp/archives/7/
http://www.wappy.ne.jp/service/index.html
http://www.venturenow.jp/news/2006/02/10/2120_011042.html
http://internet.impress.co.jp/rs/detail.php?id=208885430002&server_type=share
いくらでも見つかるだろ

12 :デフォルトの名無しさん:2006/12/15(金) 00:54:04
なんか自鯖でやった方がいいような。挙げられたレン鯖しょぼすぎ。

13 :デフォルトの名無しさん:2006/12/15(金) 00:56:14
レン鯖である時点でしょぼすぎなんだから仕方ないじゃん。
自鯖立てたほうがあらゆる意味で良いのは当然。

14 :デフォルトの名無しさん:2006/12/15(金) 08:22:14
前スレの998です

>> 999さん
pyblosxomとdjangoを調べてみます

自鯖も考えてみます
ありがとうございました

15 :デフォルトの名無しさん:2006/12/15(金) 09:49:17
>>> class hoge:
...   class moge:
...    class hage:
...      class fuge:
...        class fuga:
...          spam = 42
...
>>> hoge.moge.hage.fuge.fuga.spam
42
>>> s = 'moge.hage.fuge.fuga.spam'
>>> reduce(getattr, s.split('.'), hoge)
42



16 :デフォルトの名無しさん:2006/12/15(金) 10:20:41
dive into pythonの翻訳って、誰もしてないの?

17 :デフォルトの名無しさん:2006/12/15(金) 10:23:27
たった今>>16が翻訳することに決まりました。

18 :デフォルトの名無しさん:2006/12/15(金) 12:39:12
他力本願のクレクレヒキコモリばっかりだなこのスレは。

19 :デフォルトの名無しさん:2006/12/15(金) 12:40:38
ttp://wataru.aoisakura.jp/tdiary/?date=20061214#p01

なにこのラインナップ(w
作者と同じで読者もアニオタか(w

20 :デフォルトの名無しさん:2006/12/15(金) 14:03:54
となりの801ちゃんは非常に読みたい

21 :デフォルトの名無しさん:2006/12/15(金) 15:15:19
>>15
>>>class oOo:
...  def __init__(self,n):
...    self.oOo = 42 if not n else oOo(n-1)
...
>>>s = oOo(8)
>>>reduce(getattr,['oOo']*9,s)
42


22 :デフォルトの名無しさん:2006/12/15(金) 16:50:12
ナニこれ?
ttp://www.flatz.jp/articles/2006/12/14/python-%E7%A7%81%E3%81%AEpython%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6%E3%81%AEq-a

23 :デフォルトの名無しさん:2006/12/15(金) 16:54:39
>>22
どう見てもセックル(左下

24 :デフォルトの名無しさん:2006/12/15(金) 17:01:12
初めてのpythonを読んだ時に、
CGIなどの知識を必要とする最後の章は読み飛ばしてしまったのですが、
Dive Into Pythonも読むのに英語の問題以外で前提とする知識はありますか?


25 :デフォルトの名無しさん:2006/12/15(金) 17:19:57
一般常識

26 :デフォルトの名無しさん:2006/12/15(金) 17:44:02
氏ね

27 :デフォルトの名無しさん:2006/12/15(金) 17:52:18
教えて!goo 「氏ね」と書かれました。2ちゃんねるで。
ttp://oshiete1.goo.ne.jp/kotaeru.php3?qid=1884125

28 :デフォルトの名無しさん:2006/12/15(金) 17:58:25
>>24
正規表現、HTML、XML、HTTP、SOAPの章があるけど、同様に読み飛ばせば
よいと思う。
あと、読み始めてたら判ると思うが、機能を説明するためにC、Java、Perl、
VBScriptと比較してたりするので、いずれかの言語を知っていると読みやすいと
思うが、初めてのPythonの前半を読んでる人なら問題なく読めると思うよ。

Dive Into Pythonをざっと読んで、Programming Python 3rd Editionか
Python Referenceの必要な個所をじっくり読むのがよいと思う。

29 :28:2006/12/15(金) 18:00:01
あ〜、なんか「思う」がやたら多い文書だなw。
自分もいまDive Into PythonとProgramming Python 3rd Editionを
読んでるところなんで…。

30 :デフォルトの名無しさん:2006/12/15(金) 18:21:25
と思う。まで読んだ。


31 :デフォルトの名無しさん:2006/12/15(金) 20:21:34
と思う、まで読んだ、と思う。

32 :デフォルトの名無しさん:2006/12/15(金) 21:40:14
Python使う奴なんて空気読めない奴ばっかりだよ、な!

33 :16:2006/12/15(金) 21:45:14
と思う、まで読んだ、と思う。まで読んだ。

>>17
まじかよw
既に3から5の頭まで読んだんだが。
英語は苦にならないけど、ちょっと内容検索するのに単語出てこなくて手間取った程度の問題なんだよ。



34 :デフォルトの名無しさん:2006/12/15(金) 21:52:27
問5. 次のような動作をするプログラム tateyomi.py を作りなさい。
ただし read.cgi は利用しないこと。(ヒント:/tech/1166050674.dat)

> tateyomi.py http://pc8.2ch.net/test/read.cgi/tech/1166050674/28



V


D
P

35 :デフォルトの名無しさん:2006/12/15(金) 21:54:16
先生!ヒントが間違っていますw

誤:/tech/1166050674.dat
正:/tech/dat/1166050674.dat

36 :デフォルトの名無しさん:2006/12/15(金) 22:17:24
>>22
>オブジェクト指向プログラムである為、コードの再利用がしやすい

Pythonの前に日本語の勉強からした方がいいかと。
がんばってくだちい。

37 :デフォルトの名無しさん:2006/12/16(土) 00:02:53
>>34
先生! いまさらながらつくってみますた

# tateyomi.py
import re
import sys
import urllib

url_parts = sys.argv[1].split('/')
host, test, cgi, category, dat_no, res_no = url_parts[2:8]
dat_url = 'http://%s/%s/dat/%s.dat' % (host, category, dat_no)

lines = urllib.urlopen(dat_url).readlines()
body = lines[int(res_no) - 1].split(' <> ')[1].decode('sjis')
body = re.sub(r'<.*?>.*?</.*?>', '', body)
for line in body.split('<br> '):
    print line[0]

Python使い出してから日が浅いので、誰か添削してくれるとウレシス

38 :デフォルトの名無しさん:2006/12/16(土) 02:42:10
# coding: euc-jp
(ここにはテストを書いたけど省略)
import re, sys, urllib

url_pattern = re.compile('http://(?P<host>[^/]*)/test/read.cgi/(?P<category>[^/]*)/(?P<dat_no>[^/]*)/(?P<res_no>.*)')
dat_url_pattern = 'http://%(host)s/%(category)s/dat/%(dat_no)s.dat'

def do_tateyomi(url, index=0):
  captured = url_pattern.match(url).groupdict()
  dat_url = dat_url_pattern %(captured)
  line = urllib.urlopen(dat_url).readlines()[int(captured['res_no'])-1]
  body = re.sub(r'<.*?>.*?</.*?>', '', line.split(' <> ')[1].decode('shift_jis'))
  return '¥n'.join([line[index] for line in body.split('<br> ')])
  
def _test():
  import doctest, tateyomi
  doctest.testmod()

if __name__=="__main__":
  if len(sys.argv)<2:
    _test()
    sys.exit()
  print do_tateyomi(sys.argv[1])


39 :デフォルトの名無しさん:2006/12/16(土) 02:43:50
ちなみにテストはこれ。
# coding: euc-jp
"""
>>> print do_tateyomi('http://pc8.2ch.net/test/read.cgi/tech/1166050674/28').encode('euc-jp')
<BLANKLINE>



V

<BLANKLINE>
D
P
>>> test_url = 'http://pc8.2ch.net/test/read.cgi/tech/1166050674/28'
>>> expected = {'category': 'tech', 'host': 'pc8.2ch.net', 'dat_no': '1166050674', 'res_no': '28'}
>>> captured = url_pattern.match(test_url).groupdict()
>>> captured == expected
True
>>> dat_url_pattern %(captured)
'http://pc8.2ch.net/tech/dat/1166050674.dat'
"""


40 :デフォルトの名無しさん:2006/12/16(土) 04:19:07
↑なんか2chを愛しすぎててきもい

41 :デフォルトの名無しさん:2006/12/16(土) 04:26:36
↑ありがとう。

42 :デフォルトの名無しさん:2006/12/16(土) 08:37:49
>>28
ご丁寧にありがとう

43 :37:2006/12/16(土) 08:42:42
>>38
thx! 勝手に参考にさせてもらいます
モジュールとして使えるようにしてあるとことか、doctestしてるのもためになったけど、
特に(?P<name>...)に'%(name)s' % {'name': 'key' }、groupdictみたいな機能が
あるって知らなかったので、これから勉強してみます

44 :デフォルトの名無しさん:2006/12/17(日) 01:23:46
lenって変数が定義されてるモジュールで、
len( "hogehoge" )って関数を呼びたい場合、どうすればいいですか?

45 :デフォルトの名無しさん:2006/12/17(日) 01:37:19
__builtins__.len("hogehoge")

こういう使い方をしないように気をつけるのがPythonic。

46 :デフォルトの名無しさん:2006/12/17(日) 02:25:44
上書き定義する前に length = len みたいに別名を付けておくとか。

47 :デフォルトの名無しさん:2006/12/17(日) 02:35:13
__builtins__由来のものは(簡単には)再定義できないようにしたほうが良いのだろうな。
Python 3000ではそうなるのかな。

48 :デフォルトの名無しさん:2006/12/17(日) 02:36:44
ということは、こんなふうにできるわけか

>>> len("hogehoge")
8
>>> len = 88
>>> len("hogehoge")
Traceback (most recent call last):
File "<stdin>", line 1, in ?
TypeError: 'int' object is not callable
>>> length = __builtins__.len
>>> length("hogehoge")
8

できた。

49 :44:2006/12/17(日) 04:03:29
ありがとうございます
参考にします

50 :デフォルトの名無しさん:2006/12/17(日) 09:46:50
言語の仕様を変えて副作用を増やすより
当たり前のことを当たり前に気をつけることを開発者に求める
これがPythonic

51 :デフォルトの名無しさん:2006/12/17(日) 11:26:29
python で書くときに問題があることが分かっていて
len という変数を使うことに拘る意図がわからん

52 :デフォルトの名無しさん:2006/12/17(日) 12:42:20
なんかホント、みんな無理してPython使ってるよねw
使命感にでも駆られているかのように。あるいは催眠術のたぐいか。

53 :デフォルトの名無しさん:2006/12/17(日) 12:47:55
>>> from __future__ import braces
File "<stdin>", line 1
SyntaxError: not a chance

ワロス(www

54 :デフォルトの名無しさん:2006/12/17(日) 13:04:30
>>52
YouTubeとかGoogleとかMicrosoftとか,無理してPython使いすぎだよね
Googleなんて作者タソ雇うなんて無理しすぎ

55 :デフォルトの名無しさん:2006/12/17(日) 13:51:50
いい物をいいと思って使ってるだけ。無理してPythonの弱点を見つけようと
してるのは藻前だろ(wwww

56 :デフォルトの名無しさん:2006/12/17(日) 14:00:51
>>54
そこで「俺はこう使ってる。この用途においてPythonはこう便利」っていう体験を語れず、
状況に応じて何だって使いこなす最先端の人間達の例を曖昧に掬い取るしかできない言語が
Pythonなんだねえ。

誰々も使ってる、何処何処も使ってる、なんてレベルで擁護が終わるのって泣けるよね。
PやRとそこが段違いだよね。

57 :デフォルトの名無しさん:2006/12/17(日) 14:02:17


58 :デフォルトの名無しさん:2006/12/17(日) 14:03:51
>>56
>PやRとそこが段違いだよね。

Python使いは成熟しているんだと思う。
PやRを使っている厨房とは違って、人間的に大人なんだよ。

59 :デフォルトの名無しさん:2006/12/17(日) 14:04:55
なんだか知らんが仲直りしてこい
http://pc8.2ch.net/test/read.cgi/tech/1099804004/

60 :デフォルトの名無しさん:2006/12/17(日) 14:10:01
>>58
でもすぐ人格批判に移行するよね

61 :デフォルトの名無しさん:2006/12/17(日) 14:12:10
>>56
>誰々も使ってる、何処何処も使ってる、なんてレベルで擁護が終わるのって泣けるよね。

プログラミング言語に「養護」という言葉が出てくる理由がわからないなぁ.

俺は便利に使っている.
世界的に実績がある.
そして,オマエには便利さが分からない.

これがすべてだろ.

62 :デフォルトの名無しさん:2006/12/17(日) 14:13:40
>>60
あ、ごめん。
君自身が「PやRを使っている厨房」だったんだね(www
名指しで君の人格をおとしめてしまってごめんなさい(wwwwwwwwwwwwwwwwwwww

63 :デフォルトの名無しさん:2006/12/17(日) 14:14:31
>>56
とりあえずメタクラスが便利だから使ってみるといいと思うよ

64 :デフォルトの名無しさん:2006/12/17(日) 14:18:15
>誰々も使ってる、何処何処も使ってる、なんてレベルで擁護が終わるのって泣けるよね。
だから、自分がいいと思ってるから使ってるって言ってるだろ(wwww
何がいいのか語るものは持っているが、どうせ何言っても捻じ曲げられるから
しない。

65 :デフォルトの名無しさん:2006/12/17(日) 14:24:02
このスレにPython厨のスキルや人格への様々な疑惑を投下すると、
返ってくる反応がことごとくその裏付けになるのが面白い。

言語の便利さを疑えば「どう便利なのかが返ってこない」ことで疑惑はより強まり、
人格を疑えば「草がいっぱい生えた」レスが返ってきて疑惑が確定する。
速攻で自分の首を絞めるのがPython流?

66 :デフォルトの名無しさん:2006/12/17(日) 14:26:48
http://www.youtube.com/watch?v=ODshB09FQ8w

spam!spam!spam!spam!spam!spam!spam!spam!

67 :デフォルトの名無しさん:2006/12/17(日) 14:43:25
44とか47みたいな人は、他の言語を使って経験を積んでからPythonに戻ってくると
新たな発見があって安らぎを感じることができるかも知れない

まあ95%無理だろうけど。センスなさそうだし。

68 :デフォルトの名無しさん:2006/12/17(日) 14:53:33
>>65
Rubyは知らんけど、自分が使っててPerlよりPythonが勝ってると思うひとつは配列構造の柔軟さだ。

UserData = {('User1','Pass1'): 'User 1', ('User2','Pass2'): 'User 2'}
print UserData[('User1','Pass1')]

これと同様のスクリプトをPerlで書くとどうなる?

69 :デフォルトの名無しさん:2006/12/17(日) 15:13:04
>>68
自分もPython を使い始めてけっこう経ったので、Perl のことは
かなり忘れてしまったけれど、

そういう部分でPerl へ勝負を挑んでも、リファレンス使えば
Perl でもあっさりおなじように出来たんじゃない?

(たぶん、Python が常にリファレンスを使用してるというだけでしょ)

自分としては、それよりも、Perl がOOP への対応に関して作戦ミスを
したなぁと思う。

OOP を導入する際、既存の文法へ最小限の命令しか加えないと
いう方針を採っため、めちゃくちゃOOP が難しいものになってしまった。

あのとき、大胆に新たな命令セットを導入すれば、
シンプルで明快な形でOOP できるようにすることも可能だったろうに。

そうすれば、僕がPython を使おうと思うこともなかったかもなぁ。

70 :デフォルトの名無しさん:2006/12/17(日) 15:23:24
プログラム言語なんていくつも使えなきゃだめだよ!
好き嫌いというか道具なんだからいくつ使えたって困らないし

71 :デフォルトの名無しさん:2006/12/17(日) 15:26:42
>>69
> そういう部分でPerl へ勝負を挑んでも、リファレンス使えば
> Perl でもあっさりおなじように出来たんじゃない?
>
> (たぶん、Python が常にリファレンスを使用してるというだけでしょ)

そこが微妙に違うところで、
確かに>>68の辞書UserDataを作るだけなら、Perlのリファレンスを知ってれば簡単に出来る。
しかし、その辞書(Perlで言うと連想配列)のキーを使う場合には
Perlだと連想配列を作った時と同じリファレンスでないとキーとして使えないんですよ。
だから、Perlで単純に
$UserData[['User1','Pass1']]
としてもPythonみたいに値が得られないんです。

72 :デフォルトの名無しさん:2006/12/17(日) 15:37:26
漏れは『初めてのPerl』でPerl最高!Larry最高!みたいにかかなり感化されたんだけど
『続・初めてのPerl』読んでリファレンス周りで挫折した。あれは悲しかった・・・

Pythonだと1 < a < 100みたいに書けたりするところも好き

73 :デフォルトの名無しさん:2006/12/17(日) 15:48:27
Perlはまわりに使える人たくさんいるけどPythonはマイナーってのがいまいち
スクリプトは書き捨てだから自分だけわかればいいけど

74 :デフォルトの名無しさん:2006/12/17(日) 15:54:49
>>71

Perl で本当に同じことをしようと思ったら
    $UserData{ 'User1' . "\0" . 'Pass1' }
みたいに、各キーの「値」を合成するようなことをしなくちゃいけないってことだよね。これは、アッサリとは言いにくい。(連結文字は、各キーに含まれていないことを確認するとか、機械的にやできん)

リファレンスだと、アドレスを区別するだけだから、同じキー内容だけど、別物の場合、違うモノ扱いになっちゃう。

75 :69:2006/12/17(日) 15:58:24
>>71
うーん、
ハッシュ(連想配列)のリファレンスの話? 
配列のリファレンスではダメなの?

リファレンスっていっても、
ハッシュ(連想配列)でなくてもリファレンスできるわけだから。

配列のリファレンスの場合のデリファレンスは、

なんたらかんたら  [x][y][z]

の形式(x, y, z はそれぞれ添え字)で、3次配列でも100次配列でも
望みの場所のものをどんぴしゃで引き出せたはずだけど。

すでにPerl をインストールすらしてない身で、
あれこれいうのも辛いところながらw

76 :デフォルトの名無しさん:2006/12/17(日) 16:20:13
Python は最終的な「見やすさ」のために、
あえて不便の道を歩んでいるように見える。

Ruby は Perl の機能を全て「分解」して、
オブジェクト指向の思想の元に「再構築」してる
(構築前後で 1:1 に対応してる)。
だから、Perl で出来たことは Ruby で出来る。
これは正しいやり方の一つだ。
ただ、Perl のゴチャゴチャさを継承してしまっているのも
否めないところだ。

Python は、Perl のあり方をそもそも一旦「忘れた」上で、
1から考え直して「あらたに構築」しているっていう印象がある。
だから、Perl ・Ruby で出来ることが、Python ではなかったり
することも多々あるかもしれない。そのかわり、Perl , Ruby では
考えられなかったような点が見直されていて、新鮮だ。


77 :デフォルトの名無しさん:2006/12/17(日) 16:20:54
例えば、代入が式ではなく文っていうところ。代入式って、
書く時便利だけど、読むとなった時、実は見辛かったりする。
それを廃したのは、なかなかの判断だと思う。
そのかわり、既存の代入式が必要とされたシーンでは、
それらを使わなくてもよいように、ライブラリとかの方で工夫して、
見やすくなるように配慮する。これは正解のような気がする。

だから、Python のどこが便利だと言われて、答えられないのは、
当然のような気がする。だって、書く時の便利さを捨ててるんだから。
かわりに書き終わった後のソースのスッキリ感や、
書いた本人でなくとも読み易いという長所はデメリットを
補って余りあると思うよ。多分。
(トリッキーなコードを書かれると、引き継ぐ人がたいへんだからね)

# これ、あくまで個人的な見解なんで、そんなことないぞ、
# 便利だという反論も他の Python 好きに言ってもらいたいなぁ。


78 :デフォルトの名無しさん:2006/12/17(日) 16:24:07
>>72
>Pythonだと1 < a < 100みたいに書けたりするところも好き
をを、知らなかった。サンクス。

79 :デフォルトの名無しさん:2006/12/17(日) 16:28:02
>>77
ああ、そういや当たり前すぎて忘れてたが、
if X=1:
 ・・・
がエラーになることがうれしいな。

80 :74:2006/12/17(日) 16:30:26
>>75

>>74 だけど、誤読していていた。キーにリファレンスを入れるというのと勘違いした
(>>71 もそうじゃないかな)。
言いたいのは、よくある二次元配列のリファレンスによるエミュレーションの、
n 次元ハッシュ版ね。理解した。
# わしの回避策は、awk の二次元配列エミュレーションの真似

ただ、そうすると、一次元部分のハッシュの初期化を最初にしなくちゃいけないというのはあるよね。
その部分の手間が Python では省けるという認識でオケー? >> 各位

81 :デフォルトの名無しさん:2006/12/17(日) 16:38:27
日曜日はレベルが低いなぁ

82 :69:2006/12/17(日) 16:42:47
自分もなにか >>71 を誤読していたかな。

要するに、Perl においてはPython と違って、
ハッシュ(連想配列)のキーとして、リファレンスは使えない(使いにくい)だろ、
という話ね。

それに対して、Perlでは
配列でもハッシュ(連想配列)でも、リファレンス作れるし、それの組み合わせも
できる。
3次でも100次でも、n次配列の、どの階層のどの要素でも、
狙い通り取ってこれるよと返事したのだが、

少し話がずれていたね。

自分はもうPerler ではないけれど、たぶんPerler なら、
最初の要素をそういう風にしないで、うまくやると思う。

言語の特性はそれぞれ違うし、それにPerl のリファレンスの仕組みは
Python とは特性が違うけど、十分に柔軟なものと思うよ。

自分としては、Perl の問題点は OOP と思うなぁ。
あれさえ解決していてくれたら、Python は使ってなかった…

83 :デフォルトの名無しさん:2006/12/17(日) 17:08:26
>>77
>Python のどこが便利だと言われて、答えられないのは、
>当然のような気がする。だって、書く時の便利さを捨ててるんだから。

Pythonは十分書く時も便利。ジェネレータのおかげで内部イテレータとしても
外部イテレータとしても扱える柔軟さが手に入る。(forループに任せず、next()
で手動でデータを取ってきたいことがある)itertoolsとの組み合わせも便利。
翻ってRubyは内部イテレータしかない。Generatorというライブラリはあるが、
スレッドのトランポリンを使っていて、めちゃくちゃ重い。実用にならない。

Rubyの書きやすさとしてよくメソッドチェーンがあげられるが、Pythonにも
内包表記がありデメリットにはならない。Rubyのブロックは複数行かけるが、
そういうメソッドチェーンはあまり見ないし、そういう場合Pythonだと高階関数
をそばに書いて内包表記に組み込むなどすれば、不便を感じない。

Pythonのスライスはa[1:3]のような表記だが、Rubyにはa[1..3]とa[1...3]が
あり、最後の要素を含む・含まないの違いがある。いつも混乱するので、Python
の方がその点で書きやすい。

84 :デフォルトの名無しさん:2006/12/17(日) 17:10:24
>>77
そんなことないぞ。便利だ。w
つか、おまえ糞なエディタ使ってるとかじゃね?

85 :71:2006/12/17(日) 17:11:04
OOPやってみようって頃は、もうPerlは見限ってた。

>>80
私の言いたかった問題点は、>>74でどんぴしゃですよ。


話は変わるけど、
>>82
> 3次でも100次でも、n次配列の、どの階層のどの要素でも、
> 狙い通り取ってこれるよと返事したのだが、

ただし、もとの配列が全てn次でないと困りますね。
極端な例かもしれないけど、

Python
HASH = {('X','Y','Z'):'xyz', ('X','Y'):'xy'}
print HASH[('X','Y','Z')] #xyz

Perl
$HASH['X']['Y']['Z'] ='xyz';
$HASH['X']['Y'] = 'xy';

print $HASH['X']['Y']['Z']; #データ無し

86 :77:2006/12/17(日) 17:22:15
>>84

あー、いやいや書く手間自体はいいんだw。
俺個人としては、別にそれ嫌がってるわけじゃないから。
(だから、最近、Python 好きになったわけだし)
短く書けるか、長く書く必要があるかというのを
「不便」とか「書く時不便」とかいう表現をしちゃったのが
まずかったな。

漏れはとしては >>83 のような建設的なアピールが
出た時点で、もう思い残すことはない。

87 :デフォルトの名無しさん:2006/12/17(日) 17:23:11
Python/Tkinterも何気に便利だよね。簡単なGUIツールならこれで十分かも。
Pythonはネイティブスレッドに対応してるからIOみたく重い処理があっても
リスポンス良く組むことが可能だし。

88 :デフォルトの名無しさん:2006/12/17(日) 17:27:59
安定していて比較的高速なのも嬉しいかも。いくらLLでも、せっかく組んだのに
バグで落ちたりのろのろ動くと悲しい。

89 :デフォルトの名無しさん:2006/12/17(日) 17:32:58
pyblosxomさいこーです!!
教えてくれたひとありがとーぉ

90 :デフォルトの名無しさん:2006/12/17(日) 18:16:01
ライブラリ入れなくても最初から色々揃ってるのも嬉しい
あと文字コード関係で悩まなくて済む

91 :デフォルトの名無しさん:2006/12/17(日) 18:23:12
>>90
それは言えるな。
俺は言語的にはLisp系が好き、Pythonは許容範囲、Perlは論外って感じなんだけど、
ライブラリはPythonが充実してるから、実際の仕事ではPythonが一番活躍してる。

92 :デフォルトの名無しさん:2006/12/17(日) 19:43:21
正規表現で()グループ化して記憶したものを
使う場合はどうしたらよいのか教えて頂けないでしょうか。

例えばperlで置換する場合ですと

s/(\d)\s(\d)/ $1$2/

といったように $数字 でよいと思うのですが、
pythonではgroupというのを使えばよいらしいことは
分かったのですがどうしたらよいのか分からずにいます。

re.sub((\d)\s(\d),  ??????,     )

誠に恐縮ですがよろしくお願い致します。

93 :デフォルトの名無しさん:2006/12/17(日) 19:54:17
>>> import re
>>> m=re.search("(\\d)\\s(\\d)"," 2 3 ")
>>> print m.group(0)
2 3
>>> print m.group(1)
2
>>> print m.group(2)
3

置換(sub) では、どうするんかは、知らん
(もしかしたら、できぬ?)

94 :デフォルトの名無しさん:2006/12/17(日) 19:59:30
置換は1番目の括弧の中身は\1、2番目の括弧中身は\2という感じで
>>> re.sub(r"(\d)\s(\d)", r"\1\2", "5 6")
56
とすればいいんだけど、こんなとこで聞くよりマニュアル読んだほうが分かり易いと思う。

95 :92:2006/12/17(日) 20:09:29
うまくいきました。
本当にどうもありがとうございました。

どうやら自分のにはr"\1\2"の
rがなかったようでそれを入れたところうまくいきました。

ちなみにこの r は何を意味するものなのでしょうか?
私の探し方が悪いのだと思いますがマニュアルでは
みたことがなかったものでして

96 :92:2006/12/17(日) 20:15:47
ちゃんと記述がありました。失礼致しました。

http://iblinux.rios.co.jp/PyJdoc/lib-j/module-re.html

つまり、"r"を前につけた文字列リテラルにおいてはバックスラッシュは特別な扱いを受けることはありません。従って、r"\n"は"\"と"n"を含む2文字の文字列ですが、"\n"はニューラインを含む1文字の文字列です。



97 :デフォルトの名無しさん:2006/12/17(日) 20:18:08
↓ここでRP言語厨がひとこと

98 :デフォルトの名無しさん:2006/12/17(日) 20:20:39
RPG最高。なんでこんな便利な言語誰も使わないの?

99 :デフォルトの名無しさん:2006/12/17(日) 22:29:59
>>98
postscriptで十分だから

100 :デフォルトの名無しさん:2006/12/18(月) 00:05:21
皆の者、曲者じゃ!1.5.1じゃ!!>96

101 :デフォルトの名無しさん:2006/12/18(月) 03:07:49
昔の資料ってこと?気が付けばhas_keyとかも無くなってく位だし、時の流れって…。

102 :デフォルトの名無しさん:2006/12/18(月) 10:11:04
読み込んだデータから、エスケープシーケンスを捨てるのはどんなコードになる?

103 :デフォルトの名無しさん:2006/12/18(月) 10:37:13
>>102
「エスケープシーケンス」次第。

104 :デフォルトの名無しさん:2006/12/18(月) 15:42:51
.pycから.pyファイルを得る方法は何かありますか?

105 :デフォルトの名無しさん:2006/12/18(月) 16:15:54
もちろんあります。

106 :デフォルトの名無しさん:2006/12/18(月) 16:20:06
とりあえずオライリーのpython本買っとけば間違いないかね?

107 :デフォルトの名無しさん:2006/12/18(月) 16:22:07
オライリーでも何冊か出している。もちろん全部買えば心配ない。

108 :デフォルトの名無しさん:2006/12/18(月) 16:35:14
やっぱ、
オライリー本(初めてのPython)からオンライン公式ドキュメントへっていうのが、
王道なんじゃないの?自分もいま必死に勉強中。

あと、こういうのが訳されてれば、もっと嬉しいけど。

An Introduction to Tkinter
http://www.pythonware.com/library/tkinter/introduction/index.htm

Tkinter reference: a GUI for Python
http://infohost.nmt.edu/tcc/help/pubs/tkinter/

(まあ、エキサイト君の出番だなぁ。エキサイトのハナモゲラ語が
 自然な日本語に思えてくる今日この頃w)

109 :デフォルトの名無しさん:2006/12/18(月) 16:44:41
真の王道は

・Pythonのソース読む
・俺言語を実装

だよ。

110 :デフォルトの名無しさん:2006/12/18(月) 16:46:54
>>108
Tkinterにいまさら感を抱くおいらはwxPythonを研究中

111 :デフォルトの名無しさん:2006/12/18(月) 16:58:33
>>110
(゚∀゚)人(゚∀゚)ナカーマ
Tkinterはまともに扱ったことないけど、いろいろGUIツールの評判とか見て
PythonならwxPythonが良さそうだと判断した。

112 :デフォルトの名無しさん:2006/12/18(月) 18:54:40
>>108
漏れ的には
http://www.effbot.org/tkinterbook/
がおすすめ。

113 :デフォルトの名無しさん:2006/12/18(月) 19:50:49
pythonの質問スレがなさそうなので、ここでお尋ねします。

シェルスクリプトの

trap signal_handler_cmd SIGINT

と同様のことをpythonでやるには、どうすればよいですか?

signal.signal(signal.SIGINT, signal_handler_func)

はダメでした。


114 :デフォルトの名無しさん:2006/12/18(月) 19:56:44
問6.以下の文章を読んで問いに答えなさい。

俺も若かったからさ、昔は後先も考えねえであれこれの(A)に手を
出したもんだ。幼なじみの(B)とも深い仲になっちまってたけど、
俺調子こいててずいぶんひどい仕打ちを繰り返してた。(B)に手前
勝手に使い走りをやらせてる暇で別の(A)をブイブイ言わせたりな。
(B)のやつ、ちょっと不器用なところがあるし、ぶっちゃけ面も古風で
華ってもんがなかった。けどアイツ、うらむってことを知らねえし、
俺が呼び出すといつでも飛んできて甲斐甲斐し世話を焼いてくれた。
なんつーか家庭的ってのかな。ひどいこといっぱい言っちまった気が
するけど、(B)はじっと耐えてた。俺が安っぽい(A)ばっか引っ掛けて
それなりに痛い目にあってヘコんで帰ってきても、アイツはいつも
そっと寄り添ってくれた。俺もなんだかんだ言って結局(B)のところに
戻って来ちまうんだよなあ。俺、アイツの気持ちにとっくに気付いて
たのにいいように利用してた。最低だよなあ。まじ最低。逝ってよし
つーか。やっぱあれだ、俺、(B)のこと好きだわ。うん。今すぐ会って
言ってこよ。オマエとやり直したいって。

上記の空欄(A)、(B)に適切な語句を入れなさい。(各3点)

A: GUIツールキット    B: Tkinter
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

115 :デフォルトの名無しさん:2006/12/18(月) 20:09:34
>>113
環境、Pythonのバージョンは?

116 :デフォルトの名無しさん:2006/12/18(月) 20:13:52
>>115

$python -V
python 2.3.4

$uname -a
Linux my-pc 2.6.9-42.0.3.EL #1 Fri Oct 6 05:59:54 CDT 2006 i686 i686 i386 GNU/Linux

です。


117 :デフォルトの名無しさん:2006/12/18(月) 20:14:04
A: おっぱい    B: おっぱい

118 :デフォルトの名無しさん:2006/12/18(月) 20:21:57
import signal, sys
def signal_handler_func(*args):
  print args; sys.exit(1)
signal.signal(signal.SIGINT, signal_handler_func)
raw_input()

手元のLinux環境では
2.3.3 だと raw_input() が KeyboardInterrupt エラーを raise、
2.4.2 だと signal_handler_func でトラップ可、
という結果になるなあ。

バージョン依存ってことでFA?

119 :デフォルトの名無しさん:2006/12/18(月) 20:33:56
『初めてのPython』はあまり好きじゃない
白飯をいくら喰ってもおかずにたどり着かずにいらいらする
せっかくPythonの言語仕様がシンプルなんだから、一通りの概観を得たら
さっさとおいしいライブラリの勉強に移行するほうが望ましいと思う

そういう観点からすれば、『みんなのPython』→『Dive into Python』お勧め
後者は無料で読めるし、前半総論後半各論(ライブラリ)って構成も実践的でいいよ

120 :デフォルトの名無しさん:2006/12/18(月) 21:19:29
手っ取り早いのは
『公式チュートリアル』→ライブラリリファレンスとソース適宜参照しながらとにかく書く
だろ

121 :デフォルトの名無しさん:2006/12/18(月) 21:44:40
耳にタコができました。

122 :デフォルトの名無しさん:2006/12/18(月) 21:49:34
もうある程度使えているから
そんな話はどうでもよかったり

123 :デフォルトの名無しさん:2006/12/18(月) 22:47:43
どうでもいい、どうでもいい、俺はもう初心者じゃないから、どうでもいい

124 :デフォルトの名無しさん:2006/12/18(月) 23:10:32
お、どうした?

紙ってデバイスに価値を感じるか否かだけを、引っ張りつづけて幾星霜。

125 :デフォルトの名無しさん:2006/12/18(月) 23:25:30
最後の感じが読めないっす

126 :デフォルトの名無しさん:2006/12/18(月) 23:28:45
初心者じゃないとか思ってる奴に限って
基本が抜けていたりする
そういう奴の何割が、Pythonのモジュールの仕組みや
オブジェクト思考機能
スコープについて完全に理解しているというのか

チュートリアルでも書籍でもいいから、いっぺん通して読んでみろ
コードのクオリティが高くなるぞ

127 :デフォルトの名無しさん:2006/12/18(月) 23:37:08
Dive into Python はそういう意味でおすすめだが
今読むと少々古く感じる部分もあるな。

128 :デフォルトの名無しさん:2006/12/19(火) 01:00:08
>>126
Pythonのモジュールの仕組みや
オブジェクト思考機能
スコープについて完全に理解しているというのか

129 :デフォルトの名無しさん:2006/12/19(火) 01:07:00
また頭の悪そうな奴が出てきたぞ

130 :デフォルトの名無しさん:2006/12/19(火) 04:33:03
仲良くしろよ

131 :デフォルトの名無しさん:2006/12/19(火) 06:41:09
現存する全てのPythonモジュールの一覧表みたいなのってどこかにありますか?

132 :デフォルトの名無しさん:2006/12/19(火) 08:20:23
>>131
俺の脳内にあるんだぜ?

133 :デフォルトの名無しさん:2006/12/19(火) 08:24:58
>>13
http://www.google.com/codesearch

134 :デフォルトの名無しさん:2006/12/19(火) 08:26:13
また頭の悪そうな奴が出てきたぞ

135 :デフォルトの名無しさん:2006/12/19(火) 08:28:10
Pythonスレだからねぇ

136 :デフォルトの名無しさん:2006/12/19(火) 08:31:17
ひときわ頭の悪そうな奴が出てきた

137 :デフォルトの名無しさん:2006/12/19(火) 08:47:24
いやいや俺こそが

138 :デフォルトの名無しさん:2006/12/19(火) 09:35:14
>>126
オブジェクト思考(指向だろw)機能 というのは、
Python についてのドキュメントだけ読んでても、なかなか分らないよね。

web で参考になりそうなところを挙げてみると、下のようなところかな。

ただ、もっと初歩的な導入部分の解説のところがほしいし、
事例がPython だったら、もっといいと思うんだが。

Python のドキュメントみても、いきなり解説なしにオブジェクトやら
インスタンスやらの言葉が飛び出してくるものが多く、どれだけの人が
分っているのやら。

Java 知ってる奴しか分からんのじゃないか???

オブジェクト指向入門
http://itpro.nikkeibp.co.jp/members/NSW/ITBASIC/20050617/162922/

オブジェクト指向分析/設計
http://itpro.nikkeibp.co.jp/article/COLUMN/20061122/254695/

UML入門
http://itpro.nikkeibp.co.jp/article/COLUMN/20060213/229061/

ソフトウエア・パターン
http://itpro.nikkeibp.co.jp/article/COLUMN/20061106/252691/?ST=develop&P=1

デザインパターン
http://www.techscore.com/tech/DesignPattern/

早わかりGoFデザインパターン
http://itpro.nikkeibp.co.jp/article/COLUMN/20051201/225570/

139 :デフォルトの名無しさん:2006/12/19(火) 10:10:16
あたまわるすぎ

140 :デフォルトの名無しさん:2006/12/19(火) 10:22:22
頭が良いならLispに行ってるからねえ

141 :デフォルトの名無しさん:2006/12/19(火) 10:45:46
>>138
分かった気になってる奴の典型だな。
初心者はスキルこそ低いかも知れないが,学習意欲があるだけ可能性がある。
エセ中級者はスキルが低いくせに,分かった気になって学習意欲がない場合が多いので困る。

142 :デフォルトの名無しさん:2006/12/19(火) 10:57:18
オブジェクト指向というのはフレームワーク至上主義のことです。
データの流れる枠組みだけを必死に作ってればそれでよいのです。

143 :デフォルトの名無しさん:2006/12/19(火) 11:34:26
出来合いのクラスとかフレームワークを使うだけなら,オブジェクト指向なんて覚えること少ないし簡単だよ。
難しいのはオブジェクト指向「設計」な。こればっかりはデザパタ学んでも本を読んでもなんともならない。
設計手法を身につけたいなら,師匠につくなどして実務で経験を積むか,既存のソースを少しでも多く読むしかない。

144 :デフォルトの名無しさん:2006/12/19(火) 11:36:18
そこでDB設計ですよ。

145 :デフォルトの名無しさん:2006/12/19(火) 11:38:46
>>142
いや、ネタで書いてるだけなんだろうけど、

マジレスぎみに書いておけば、
ruby はそっち方面へPython より意欲的に取り組んでいるようにも
見えるんだよ。たとえば、

Rubyプログラミング+モデリング
http://www.rubyist.net/~keiju/doc/ruby-with-modeling-for-pdf.pdf
とかね。

自分の場合は、弟が会計士を取りそうなんで、会計関係のシステムでも
作りたいなと思ってあれこれ考えていたんだが、
Java でやろうかとも思ったんだけど(Java は多少とも経験がある)、

一人しか組む人間がいないのに、Java は苦しすぎると思い、
Python にたどり着いたとこ。
やっぱり大規模なシステム組むときに、オブジェクト指向は欠かせない
からね。

Java は煩瑣な言語だが、そっち方面のドキュメントはたくさん手に入る。
Python はシンプルで明快な文法だが、いかんせんそっち方面のドキュメントが乏しい。

いっそ関数だけで書いてくことにしてしまえば、悩まずに済むんだが、
(その方が早く組める可能性もないとはいえない)
悩ましいところだ…。と、グチを少々書いてみた。

みんなも頑張ってくれ。じゃ。

146 :デフォルトの名無しさん:2006/12/19(火) 11:39:58
138が挙げてる類の本、1冊だけなら許容範囲。
2冊以上持ってる奴は出入り禁止ということでどう?

147 :デフォルトの名無しさん:2006/12/19(火) 11:45:42
スレッド実装が腐ってるrubyで大規模システムとは勇者ですねw

148 :デフォルトの名無しさん:2006/12/19(火) 11:46:46
>>147
数値演算も腐ってますが何か?

149 :デフォルトの名無しさん:2006/12/19(火) 11:49:57
>>145
あなた何歳?

150 :デフォルトの名無しさん:2006/12/19(火) 11:51:36
>>147
そこでdRubyというバッドノウハウ投入

151 :デフォルトの名無しさん:2006/12/19(火) 11:51:48
rubyのアドバンテージは日本語扱いだけだったが、最早それすらも他がUTF-8化して消えた。

152 :デフォルトの名無しさん:2006/12/19(火) 12:11:56
まあ。
Cやアセンブラの開発経験が豊富な俺にしてみれば、だ。
クラスとかインスタンスとかリファレンスとかは、
全部構造体とかポインタのメタファとして理解できるわけ。
だからオブジェクト指向なんて簡単。
設計手法も根底はCとかと同じだしね。

153 :デフォルトの名無しさん:2006/12/19(火) 12:47:48
また頭の悪(ry

154 :デフォルトの名無しさん:2006/12/19(火) 13:17:29
from XXX import YYY
とした場合に、モジュールXXXに固有の例外をキャッチするにはどうしたらいいんでしょうか。

具体的には、importだけを使った場合に、
import xml.dom.minidom
try:
 DOM = xml.dom.minidom.parseString('python')
except xml.parsers.expat.ExpatError:
  print "XML ExpatError."

と処理することを、
from xml.dom.minidom import parseString
try:
DOM = parseString('python')
except ???:
print "XML ExpatError."
ここで、???に上手く書いて処理する方法はありますか?

155 :デフォルトの名無しさん:2006/12/19(火) 13:34:10
parseString だけ import した時点で自業自得
ExpatError を import したくない理由が何かあるの?

156 :デフォルトの名無しさん:2006/12/19(火) 13:53:13
>>155
いえ、ExpatErrorをimportすれば(上の例では結局xmlからimportする必要がありますけど)出来ます。
Python一般のテクニックとして、上手く処理する方法があるのか知りたかっただけです。

157 :デフォルトの名無しさん:2006/12/19(火) 13:57:13
頭悪いくせに from 〜 import なんて使うなという神のお告げだよ

158 :デフォルトの名無しさん:2006/12/19(火) 13:57:23
importがしてることの意味わかってる?

159 :デフォルトの名無しさん:2006/12/19(火) 14:03:01
import Tkinterすると次のようなエラーが出ます。

File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.5/lib-tk/Tkinter.py", line 38, in <module>
    import _tkinter # If this fails your Python may not be configured for Tk
ImportError: No module named _tkinter

sys.pathは
['', '/usr/local/lib/python25.zip', '/usr/local/lib/python2.5',
'/usr/local/lib/python2.5/plat-linux2',
'/usr/local/lib/python2.5/lib-tk',
'/usr/local/lib/python2.5/lib-dynload',
'/usr/local/lib/python2.5/site-packages']

/usr/sahre/tk8.4とか、/usr/share/tcl8.4とか見てもconfigureファイルないし、
そもそもyumでインストールしてるからconfigureの必要はないと思うし・・・。
あと、yum install tkinterもしてみたけど、結果は同じでした。

ちょっとスレ違いの質問かもしれないけど、どなたか解決法教えてください。

160 :デフォルトの名無しさん:2006/12/19(火) 14:03:50
やっぱり自称中級者は基本的な知識が足りないんだ。
入門書嫁。

161 :デフォルトの名無しさん:2006/12/19(火) 14:05:30
>>156
ないと思われ。

162 :デフォルトの名無しさん:2006/12/19(火) 14:09:35
>>159
_tkinterモジュールがそもそもビルドされていないか
_tkinterモジュールのビルドに失敗しているか
_tkinterモジュールが必要としている何かがインスコされていないか
のどれかだと思われ。

どこのパケジ?

163 :デフォルトの名無しさん:2006/12/19(火) 14:44:12
>>162
http://www.python.jp/Zope/download/pythoncore
ここですね。

>_tkinterモジュールがそもそもビルドされていないか
これってPython-2.5内のconfigure->make->make installではビルドされないんですか?

164 :デフォルトの名無しさん:2006/12/19(火) 15:11:16
>>163
あれ、yum といいつつ実は Python を野良ビルドしている?
だったら
> _tkinterモジュールのビルドに失敗しているか
こっちの可能性大。

> これってPython-2.5内のconfigure->make->make installではビルドされないんですか?

状況による。

165 :デフォルトの名無しさん:2006/12/19(火) 15:14:25
>>164
yum install pythonするとpython-2.4がインストールされませんか?
2.5が使いたかったんでPyJUGからDLしてビルドしたんですけど・・・・。
他に方法があったんでしょうか。

166 :デフォルトの名無しさん:2006/12/19(火) 15:15:55
すいません、説明不足だったみたいで。
yum したのは
yum install tk
yum install tcl
yum install tkinter
の3つです。

Pythonそのものは上記の通りです。

167 :デフォルトの名無しさん:2006/12/19(火) 15:23:30
>> 154

Pythonicさを求めるなら,例外も明示的にimportしておく.
from zipfile import ZipFile, BadZipfile
try:
 ZipFile(open('hoge.tgz', 'rb'))
except BadZipfile:
 print 'bad zip file.'

どのモジュールから例外が出るか分からなくても,「ある種の例外」の親クラスは共通.
try:
 ZipFile(open('hoge.tgz', 'rb'))
except Exception, e:
 print "exception raised from module %s" %(e.__module__)

これはちょっとハックだし,例外が同じモジュールで定義されていなければうまく動かない.
from zipfile import ZipFile
try:
 ZipFile(open('hoge.tgz', 'rb'))
except Exception, e:
  if e.__module__ == ZipFile.__module__:
   print 'same'
  else:
   print 'different'


168 :デフォルトの名無しさん:2006/12/19(火) 15:39:28
>>155
何でそんなところでハマるのかな(;´Д`)



169 :デフォルトの名無しさん:2006/12/19(火) 20:16:44
>>166
ぼくちゃんはPython2.5のtkinterと2.4のtkinter、どちらが使いたいのかな?
yumでインストールしたtkinterは2.4と2.5のどちら用かな?

170 :166:2006/12/19(火) 20:28:27
>>169
てめーには聞いてねーよばーか^^

171 :デフォルトの名無しさん:2006/12/19(火) 20:45:54
いま>>166はこのスレの住人全員を敵に回した。

172 :デフォルトの名無しさん:2006/12/19(火) 21:40:55
和気藹々

173 :デフォルトの名無しさん:2006/12/19(火) 21:50:03
まともな人間なら普通に動かせるものが動かないという場合、人間のほうが
まともでないことをまず疑うべきなんですね。

174 :デフォルトの名無しさん:2006/12/19(火) 23:13:57
にんげんがいちばんバギーだからな。

175 :デフォルトの名無しさん:2006/12/20(水) 00:07:02
「機械から入力を行うようにプログラムされたソフトウェアは人間から入力を受けると必ずクラッシュする」

176 :デフォルトの名無しさん:2006/12/20(水) 00:50:48
色々とレスありがとうございます。
もう一度ビルドしなおしてみようと思います。

177 :デフォルトの名無しさん:2006/12/21(木) 15:12:46
ttp://d.hatena.ne.jp/jbking/20061221/p1
「Exceptionがobjectのサブクラスになった」という意味を理解してないのかね?

178 :デフォルトの名無しさん:2006/12/21(木) 15:23:02
Python 2.5 Quick Reference
http://rgruet.free.fr/PQR25/PQR2.5.html

179 :デフォルトの名無しさん:2006/12/21(木) 15:44:04
さて、無能で英語力もないクレクレ君の俺は
ゆっくり日本語訳されるのを待つとするか。

180 :デフォルトの名無しさん:2006/12/21(木) 16:12:04
Cygwin 上の Python から ODBC を使うにはどうしたらいいでしょうか。

181 :デフォルトの名無しさん:2006/12/21(木) 17:47:56
Cygwinを窓から投げ捨てる

182 :デフォルトの名無しさん:2006/12/21(木) 21:03:41
Instant Hackingの
radius = input("What is the radius?")
print radius*radius*3.14
のコード実行すると
SyntaxError: unexpected EOF while parsing
というエラーになるんだけどなぜでしょうか?

183 :デフォルトの名無しさん:2006/12/21(木) 21:07:08
ElementTreeでtextを抽出しようとしても
最初にサブエレメントが出てくるところまでしかとれないよね。

"激ウマ<BR/>ラーメンです。"ってあっても
激ウマの部分しかとれないみたいな。
サブエレメントの後ろのtextも取り出したいんだけど
なんかいい方法ない?
以前、DOMでやってたときもおんなじよーな問題がでてた記憶が....

184 :デフォルトの名無しさん:2006/12/21(木) 21:09:09
どやてじこしたのかかこよ

185 :デフォルトの名無しさん:2006/12/21(木) 21:19:29
>>182ですが
PyDev上のコンソールから入力するとエラーでるけど、DOSプロンプトでpythonコマンドやcommand line使うとエラーにならない・・・
PyDevの問題?



186 :デフォルトの名無しさん:2006/12/21(木) 21:23:15
そだよ

187 :sage:2006/12/21(木) 21:54:30
どうやって実行したのか書こうよ

なるほど・・・

188 :デフォルトの名無しさん:2006/12/21(木) 21:57:18
>>183
「ラーメンです」を br 要素の後ろに続くテキストって考えれば
element.tail で取れます。

>>>import xml.etree.cElementTree as ET
>>> elem = ET.fromstring(u'<p>激ウマ<br/>ラーメンです</p>')
>>> print elem[0].tail
ラーメンです

189 :デフォルトの名無しさん:2006/12/21(木) 21:58:38
http://effbot.org/zone/element-infoset.htm#mixed-content
中の人のサイトに書いてあるやん。

190 :183:2006/12/21(木) 22:21:17
188,189
無事解決したよ。アリガトー!!
マジ感謝


191 :デフォルトの名無しさん:2006/12/22(金) 09:19:40
だいぶよむだけで、ぜんぶわかった

192 :デフォルトの名無しさん:2006/12/22(金) 15:49:12
Windowsのコンソールから起動して、

import sys
unicode(sys.argv[1])

↑こんな風にしたら、

UnicodeDecodeError: 'ascii' codec can't decode byte 0x83 in position 0: ordinal not in range(128)

こういわれてしまいました。
unicodeというかUTF-8にしたいのですが、どうすればいいでしょうか。
よろしくお願いします。


193 :192:2006/12/22(金) 15:50:48
あ、書き忘れ。
第一引数には、「エンコード」という文字を渡してます。

> python.exe hoge.py エンコード

↑こんな感じ


194 :デフォルトの名無しさん:2006/12/22(金) 16:09:29
>>192
入門書嫁。

195 :デフォルトの名無しさん:2006/12/22(金) 17:03:57
http://www.roy.hi-ho.ne.jp/pastel/home/Python/extension_win32.html
WSHがPythonから使えるらしいのだけど
HPのようにしてもうまくいかない
なんで

196 :デフォルトの名無しさん:2006/12/22(金) 17:10:52
>>195
何かエラーが出るの?
エラーは無いけど思ったのと違う結果になるの?
そもそも何も起きないの?

もっと具体的に書いてくれ

197 :195:2006/12/22(金) 18:06:51
何もおきずに止まってしまう。

エラー 実行に失敗しました(例外)が発生しました

198 :デフォルトの名無しさん:2006/12/23(土) 00:39:18
>>192
sys.argv[1](この場合 Shift_JIS 文字列)の
エンコーディングを明示的に指定してやる

sjis_str = sys.argv[1]
unicode_str = unicode(sjis_str, 'sjis')
unicode_str = sjis_str.decode('sjis') # 上と等価

デコードする際のエンコーディングを明示的に指定したくないなら、
Python2.5/site-packages/sitecustomize.py に以下を記述

import sys
sys.setdefaultencoding('sjis')

unicode() の第二引数や、encode()、decode() の第一引数を省略した場合に
defaultencoding が使われことを知っておくと混乱しないよ。

199 :デフォルトの名無しさん:2006/12/23(土) 11:40:41
Perl.comの記事で
http://www.perl.com/pub/a/2006/12/21/using-java-classes.html
こんなのがあったのですが、こんな感じで簡単にJavaのクラスを
Pythonで使う方法ってありますか?

200 :デフォルトの名無しさん:2006/12/23(土) 11:47:16
つ Jython

201 :デフォルトの名無しさん:2006/12/23(土) 12:26:12
>>200
灯台下暗しでした。すみません。ありがとうございます。

202 :デフォルトの名無しさん:2006/12/23(土) 14:38:26
大正デモクラシ

203 :デフォルトの名無しさん:2006/12/23(土) 17:57:50
python cookbookって日本語版出るの?

204 :デフォルトの名無しさん:2006/12/23(土) 23:40:49
unix(FreeBSD)で popen2 で子プロセスを呼んで
状態監視(vmstat -w 1 とか netstat -w 1) をしたいのですが,
親プロセスが終了するときに子プロセスを
どうやって終了させればいいのか良く分かりません.

popen2 が返してきた child の child.pid を os.kill すると
sh -c netstat -w 1 の方は殺せるのですが,
popen が /bin/sh 経由で呼び出した実際のプロセスの方は
生き残って親プロセス丸ごと終了できなくなってしまいます.

コマンドラインでやるみたいに os.system で
ps aux | grep netstat | awk '{print $2}' なんていう
python っぽくないダサい手段で探して殺すというバッチイ方法じゃない
良い子の方法はどうすればいいのでしょうか?


205 :204:2006/12/23(土) 23:45:10
補足:
子プロセスはこの方法をまねて呼んでます(まね,というかほとんどそのまま).
while 1 のループの中でデータ処理をしてます
http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/52296/index_txt

206 :デフォルトの名無しさん:2006/12/23(土) 23:46:01
>>204
めんどいのでこれを使ってる
ttp://www.python.jp/doc/nightly/lib/module-commands.html

207 :デフォルトの名無しさん:2006/12/23(土) 23:52:02
これではだめだね
すまん

208 :デフォルトの名無しさん:2006/12/24(日) 06:00:07
>>202
どうした、調子悪いぞ!

209 :デフォルトの名無しさん:2006/12/24(日) 06:03:11
os.wait()

210 :204:2006/12/24(日) 09:44:44
永遠に終了しないコマンドは wait() しても仕方ないですよね?

それとも他の使い方があるのかな?

211 :デフォルトの名無しさん:2006/12/24(日) 10:33:56
試さずに書くけど

ttp://www.python.jp/doc/2.4/lib/module-popen2.html
> Unixではcmdはシーケンスでもよく、その場合には (os.spawnv()のように)
> 引数はプログラムシェルを経由せず直接渡されます。
> cmdが文字列の場合、(os.system()のように)シェルに渡されます。

ちゅーことなのでコマンドをリストか何かで渡してみたらどーでしょ。
(つまりコマンドラインの字句解析をシェルに任せずに自分でやる)

212 :デフォルトの名無しさん:2006/12/24(日) 13:31:04
そもそも、強制終了がデフォルトというのが、おかしいのと違う?
ある条件を満たせば、自分で終了するとしとけば、
wait() しとけばいいだけと思うし。

213 :204:2006/12/24(日) 14:11:09
すみません,
child = popen2()
=> 終了
child.fromchild.close()
child.childerr.close()

でいいみたいです.
これをやっているつもりだったのですが,
終了条件投入関数が実行されていませんでした.

やり方はこんななんですが:

sw = status_watch('netstat -w 1')
sw.run()
## time.sleep(10)
sw.finish() ### いつまでも実行されない???
(続く)

214 :204:2006/12/24(日) 14:13:58
(続き)
class status_watch(threading.Thread):
def __init__(self, command ):
threading.Thread.__init__(self)
self.command = command
self.quit = False
def run(self):
self.child = popen2.Popen3(self.command, 1)
self.child.tochild.close() # don't need to talk to child
outfd = self.child.fromchild.fileno()
errfd = self.child.childerr.fileno()
makeNonBlocking(outfd) # don't deadlock!
makeNonBlocking(errfd)
while 1:
ready = select.select([outfd,errfd],[],[]) # wait for input
### do something
if self.quit:
return
select.select([],[],[],.1) # give a little time for buffers to fill

def finish(self):
self.quit = True
self.child.fromchild.close()
self.child.childerr.close()


215 :デフォルトの名無しさん:2006/12/24(日) 14:14:05
Unix Programming FAQ の1 プロセス制御 の章
http://www.adl.nii.ac.jp/~moro/unix-programmer/faq-j_2.html#SEC26
に、

1.16 どうすればプロセスの子孫を全て殺すことができますか?

というのがあるけど、その中に、

このための完全に一般的な手法はありません。
(略)
解決法としてそのサブプロセスを新しいプロセスグループに入れ、killするとき はそのプロセスグループをkillすることができます。
(略)
プロセスグループを作るのに望ましい関数はsetpgid()です

とある。

で、Python ライブラリ・リファレンスのp274に

setpgid(pid, pgrp)
システムコールsetpgid() を呼び出して、pid のid をもつプロセスのプロセスグループid をpgrp
に設定します。利用できる環境: UNIX

というのがあるが、これ使えないかな?

216 :204:2006/12/24(日) 14:18:35
>212
いや netstat, vmstat とか 「signal 食らわない限り無限ループ」
を読みたいんで...

python 側は >214 に書いたように "終了()" を呼んで
後始末をさせようとしているんですが,
自分が思っているように動かないんですよね...

>214 に書いているうちの,self.quit 変数が
True に変わってくれないんです...
(while loop で print してみてても変わってない...ナゼ???)

217 :204:2006/12/24(日) 14:42:16
すみませんすみません...

本件とは別のところで エラーを吐いて終了処理(finish())が
きちんと実行できていなかっただけみたいです...

curses と組み合わせて書いていたんですが,
curses の "裏画面" のエラーメッセージとかを
見逃してました...

218 :デフォルトの名無しさん:2006/12/24(日) 22:04:42
おととい買ったエロゲがPython2.3だった

219 :デフォルトの名無しさん:2006/12/24(日) 22:14:19
詳細>218

220 :デフォルトの名無しさん:2006/12/24(日) 23:17:30
メリークリスマス!

221 :デフォルトの名無しさん:2006/12/24(日) 23:21:55
>218
kwsk!!!!

222 :デフォルトの名無しさん:2006/12/25(月) 01:13:11
./
  GR.dll, KEY.dll, ksound.dll
  python23.dll, run.dll, SND.dll, WIN.dll
  nanami.pyc, run_base.pyc
  nanami.exe

  DLLs/
    _sre.pyd, bz2.pyd, datetime.pyd
    mmap.pyd, parser.pyd, pyexpat.pyd
    select.pyd, unicodedata.pyd
    winsound.pyd, zlib.pyd
  itp/
    *.pyc
  Lib/
    site-packages/
      JapaneseCodecsだけ
  nanami/
    *.pyc
    data/
  spp/
    *.pyc
  stdADV/
    *.pyc

こんな構成。
他にはプロテクト関係のソフトが入ってる。
エロゲーでライセンスキーの入力を求められたのは初めてだw

これ以上は分からんがな(´・ω・`)

223 :デフォルトの名無しさん:2006/12/25(月) 02:21:08
key.dllってスパイウェアじゃねぇの?

224 :デフォルトの名無しさん:2006/12/25(月) 02:21:59
>>222
それって ef?
シリアル入力があるって聞いてるけど.

225 :デフォルトの名無しさん:2006/12/25(月) 14:15:11
Python とmatlabのインターフェイスでよく使われるのはどれでしょうか?
googleの検索で上位にでるのはこれですが
http://claymore.engineer.gvsu.edu/~steriana/Python/pymat.html

226 :デフォルトの名無しさん:2006/12/25(月) 14:56:40
.pyに関連付けるもうちょっとシンプルでかっちょのよいアイコンないっすか?

227 :デフォルトの名無しさん:2006/12/25(月) 23:00:41
本家のやつで十分。
こんな派手なやつでも使うのか?
http://www.emptypage.jp/gadgets/icon-py.html

228 :デフォルトの名無しさん:2006/12/26(火) 00:01:32
家紋とかはどうよ

229 :デフォルトの名無しさん:2006/12/26(火) 00:23:25
ジョルジュ長岡のAAでも張っとけ

230 :デフォルトの名無しさん:2006/12/26(火) 03:53:07
つttp://www.deviantart.com/deviation/44025868/

231 :デフォルトの名無しさん:2006/12/26(火) 15:50:06
ttp://d.hatena.ne.jp/InoHiro/20061226/p2

232 :デフォルトの名無しさん:2006/12/26(火) 16:18:28
PythonからWSH呼ぶのと

win32com.client.Dispatch(.."..")

は同じなの?

233 :デフォルトの名無しさん:2006/12/26(火) 19:10:46
>>218 おーい、結局そのエロゲは何だったんだ?
>>218-224 を見て、「ef」というエロゲの体験版を探してきてダウンロードして
みたのだが、Pythonとは何の関係もなかった。GUIの作り方の参考になるかと
思ったのに。腹が立ったので即削除。

234 :デフォルトの名無しさん:2006/12/26(火) 20:35:22
>>233
ぐぐったらパティスリーの待宵草ってのはPythonらしい。
メーカーサイトにはその辺何もなかったから実際どうかはしらんが。

235 :デフォルトの名無しさん:2006/12/26(火) 23:20:35
>>234
ありがとう。その「待宵草」にも体験版はあるみたいだ。
しかし、よく考えたらエロゲに限定する必要はなかった。
つうかむしろ、エロゲでないほうが良かった。自分にはちょとつらいわ。


236 :デフォルトの名無しさん:2006/12/26(火) 23:36:22
>>234
サイト行ったら変な声流れてビビった

237 :デフォルトの名無しさん:2006/12/26(火) 23:51:49
どう見ても3流エロゲメーカーです。
ありがとうございました。

238 :デフォルトの名無しさん:2006/12/27(水) 01:14:58
pythonってマルチバイト文字列を変数に入れるとき、いちいち

str = u"日本語"

みたいにしないといけないの?
めんどくさくない?

239 :デフォルトの名無しさん:2006/12/27(水) 01:17:36
めんどくさくない

240 :デフォルトの名無しさん:2006/12/27(水) 01:32:01
>>238
たとえばマルチバイト文字がシフトJISならファイルの先頭行に
# coding: shift_jis
を入れれば u を入れる必要はなくなるよ。

241 :デフォルトの名無しさん:2006/12/27(水) 01:35:09
>>240
そりゃ別の問題だべさ

242 :デフォルトの名無しさん:2006/12/27(水) 01:41:01
>>240
入門書嫁

243 :デフォルトの名無しさん:2006/12/27(水) 02:24:59
# coding: utf-8

for char in u'やらないか':
  print char,    #=> や ら な い か
  
for char in 'やらないか':
  print char,    #=> 文字化け

244 :デフォルトの名無しさん:2006/12/27(水) 06:37:08
>>241-242
240の言っていることは正しいんでは。
str = u"日本語".encode("sjis")
と書くのと
# coding: sjis
str = "日本語"
と書くのは等しいわけだから。
バイト列(文字列ではなく)を得る方法としてはまったく正しい。

245 :デフォルトの名無しさん:2006/12/27(水) 08:40:06
encodeするって話だったっけ?

246 :デフォルトの名無しさん:2006/12/27(水) 09:07:23
つまり>>238の質問内容だけで回答しようとする面子はみんな初心者。

247 :デフォルトの名無しさん:2006/12/27(水) 10:19:38
うーんと、
# -*- encoding: mbcs -*-
じゃなかったっけ?
入門書、読み直した方がいいかな?
対話モードでも使えりゃいいんだが。ていうか、
うちは対話モードも特段設定しなくても、化けはしないけど。
ただ、あの兇悪なIDLEだけは許せんなぁ。
あれは、utfからデフォルトのエンコーディングに
戻してないんだろ。
いいかげん、向うの連中もそれくらいの初歩的バグに
気づいてほしいもんだが、無理だろなー。

248 :デフォルトの名無しさん:2006/12/27(水) 10:26:13
>>246
何もしようとしないのはみんなヒキコモリ。

249 :デフォルトの名無しさん:2006/12/27(水) 12:12:00
トラブルを避けるためには、ASCIIコード以外を含むソースファイルには必ず正確な
encodingを記述したほうが良い。(mbcsは正確なencodingではない)
また文字列についていろんな処理をするなら、できるだけUnicode文字列を使うべき。
つまり '文字列' よりも u'文字列' を使うべき。
この2つは基本的には別の問題。(後者には例外も存在する)
Python 3000ではUnicode文字列だけになるらしいので、もうちょっとすっきりするかも。

250 :デフォルトの名無しさん:2006/12/27(水) 12:35:39
以上、ヒキコモリ代表からの意見でした。

251 :デフォルトの名無しさん:2006/12/27(水) 12:47:35
>>249
>Unicode文字列だけ

byte型を使えば他エンコードの文字列を扱えるんだぜ?

252 :デフォルトの名無しさん:2006/12/27(水) 14:56:51
明示的な方法でない utf-8 への変換でうまくやれてるのは、
実質的にはJava くらいなんじゃないの?

Perl なんかでは(もう2、3年前のことしか知らないが。 5.8かな)
明示的な方法でなく自動というか勝手に utf へ変換が
行われるんだが、それがために問題が生じていて、
どうするか大問題になっていたと思う。

つまり、標準で日本語をutf へ変換するモジュールが
入ってるんだが、それとは別にPerl 本体が勝手にutf に変換してる。

ところが、Perl 本体の方は無自覚に(日本語のsjisかeuc かとか気にせず)
やってるから、それは内部的には的外れなutf に変換されており、
変換モジュールの方は、sjis ならsjis があればutf へ変換する
というものだが、その時点では内部的に的外れutf しかないから
全然変換できてないというものだった。

あれからその問題がどうなったか知らないが(たぶん、そのままかも)、
Java 以外の言語で、非明示的な方法を使うものは、
みんな苦しんでるんじゃないかと思う。
むしろPython は、明示的変換を採用したおかげで
うまく問題を回避してると思う。

sjis のままだと、正規表現とか誤動作するが、おおかたの人は
そんな問題に遭遇することもないかもしれない。

253 :デフォルトの名無しさん:2006/12/27(水) 16:43:47
>>247
入門書を読み返すよりこっちお勧め。
ttp://ns.jk.to/zwiki/Nikki/PEP0263
ttp://www.geocities.jp/tan9ent/unicode.html
難しいけど雰囲気だけでも。

>>252
Perl 5.6 以降は、ソースに ASCII じゃない文字が含まれてると、
それを UTF-8 で書かれているとみなして処理するから、
use encoding 'shiftjis';
などとして、Perl に処理させる前にソースを UTF-8 に
変換しておく必要がある・・・とかいう理屈だったと思う。

なので、ちゃんと use encoding してあれば
的外れなことをする心配はなかったような。


まあどの言語でも文字コード周りは鬼門だと思う orz
Unicode 文字列に一本化されたら幸せになれるのかな・・・

254 :デフォルトの名無しさん:2006/12/27(水) 17:02:31
>>253
> use encoding 'shiftjis'
> などとして、Perl に処理させる前にソースを UTF-8 に

違う。そうじゃなくて、
その動作それ自体が、そのようになってなくて、
モジュールが働く前に、Perl本体の方の勝手変換が
効いてしまっている という話で、

当時は大変な問題になっていた。
ただ、その後の話は自分は知らない。

だから、Python が明示的変換を採用しているのは
賢明だとその頃は(今もだが)感じた。

255 :デフォルトの名無しさん:2006/12/27(水) 18:37:49
ヒキコモリだから年末年始ヒマなのはわかるけど、
年に一度の大掃除くらいちゃんとやれよ。

256 :デフォルトの名無しさん:2006/12/27(水) 18:44:04
>>255
おまえがな(WWWWWWWWWWWWW

257 :デフォルトの名無しさん:2006/12/27(水) 19:45:21
>>255
年末年始くらいマッタリ過ごせないのはITドカタくらいだろ
今日も元気に掘った穴埋めてるのか????

258 :デフォルトの名無しさん:2006/12/27(水) 20:07:22
そんなにムキになるなよ。掃除ちゃんとやれって言っただけだろ。

259 :デフォルトの名無しさん:2006/12/27(水) 20:45:43
たしかにいちいち全部u書くの面倒だな
書かないとlen("あ")が2とか返すだけで一応動くみたいだけど

260 :デフォルトの名無しさん:2006/12/27(水) 20:56:51
一応動くからいいや、と思ってるとfindとか使って痛い目に遭う。
一見動いてしまうことも多いので却ってたちが悪い。

261 :デフォルトの名無しさん:2006/12/27(水) 21:08:09
いや、だから正規表現とかで誤動作してもいいなら、
なにも問題ないわけで、
どうせ誤動作したって、人が死ぬわけでもないしと思えるなら、
それもありかもしれない。

ただ、Perlとかでsjisで平気でやってる人たちは
誤動作問題知らないんじゃないかなぁ。
その仲間に入るか入らないか、という事でしょ。

だいたいこの問題、Java以外ではスマートに解決はできないと
思われ。

262 :デフォルトの名無しさん:2006/12/27(水) 21:17:17
基本的には u 付ければずっとマシな状況になるんだから、よくわからないなら u 付ける
癖にするのが無難だと思う。もちろん「ニセUnicode」にならんように最低限encodingくらい
はちゃんと指定しておくのが前提。

263 :デフォルトの名無しさん:2006/12/27(水) 21:43:06
バイト列で日本語を扱うことに意外と消極的なんだね、みんな。
俺は結構好きだ。2.0 未満の頃はバイト列しかなかったしね。
ついこないだまで n = len(s) の代わりに
n = 0
for c in s:
 if c < "0x80":
  n = n + 1
 else:
  n = n + 2
みたいなことを当たり前のようにやってたわけだ。
(補助漢字? 半角カナ? (∩゜д゜)あーあー聞こえなーい)

正直UnicodeマンセーだけどUnicodeは万能じゃない。要は適材適所。

264 :デフォルトの名無しさん:2006/12/27(水) 21:43:52
> 2.0 未満の頃は

1.6のことを忘れていたw

265 :デフォルトの名無しさん:2006/12/27(水) 21:46:33
"0x80" → "\x80" だた。連投スマソ

266 :デフォルトの名無しさん:2006/12/27(水) 21:50:13
>>263
俺もやってたけど、嫌な思い出なので早く忘れたいのよ。w
万能じゃないけどUnicodeのほうがマシなのは確かなので、ちゃんと使おうよ派だな。

267 :デフォルトの名無しさん:2006/12/27(水) 22:36:56
emacsじゃないなら
# -*- encoding: hoge -*- って丁寧に書かないで
# coding: hoge でも同じだったっけ。

268 :デフォルトの名無しさん:2006/12/27(水) 22:38:11
いまさらハートマークも扱えない文字コードには戻れないし

269 :デフォルトの名無しさん:2006/12/27(水) 22:50:58
さういふ貴君もメエルはISO-2022-JPでおくつているのだらう。

270 :デフォルトの名無しさん:2006/12/27(水) 23:03:47
>>258
大掃除なんてクリスマス前に終わらせた
今度は君の番だ
がんばれよ、社内ヒキコモリのITドカタ君(w

271 :デフォルトの名無しさん:2006/12/27(水) 23:23:36
>>267
1行目か2行目が、正規表現 "coding[:=]\s*([-\w.]+)"にマッチすればOK
http://ns.jk.to/zwiki/Nikki/PEP0263

272 :デフォルトの名無しさん:2006/12/28(木) 08:43:18
ヒキコモリとかITドカタってそんなに劣等感を煽る言葉なのか。

273 :デフォルトの名無しさん:2006/12/28(木) 09:37:04
言われる側の劣等感というより、言う側のよくわからない熱さが奇妙で
色々とからかわれちゃうのでは。

274 :デフォルトの名無しさん:2006/12/28(木) 10:40:21
>大掃除なんてクリスマス前に終わらせた

正体を現わしたな、真正ヒキコモリ!
まともな社会生活を送っている者には
クリスマス前に大掃除を終わらせるヒマなどない!
悪霊退散!!

275 :デフォルトの名無しさん:2006/12/28(木) 11:45:37
>>274
自分にヒマが無くても、世の中にはお金で解決できることもあるんだよ
頑張れ、低賃金のITドカタ君(w

276 :デフォルトの名無しさん:2006/12/28(木) 11:56:55
>まともな社会生活を送っている者には
>クリスマス前に大掃除を終わらせるヒマなどない!

いかにも短絡的で,コミュニケーション能力低い感がにじみ出てるな.
これは本物の社内引き籠もりかもしれん.

277 :デフォルトの名無しさん:2006/12/28(木) 12:49:00
Zope関係者、自称初心者ときて次はヒキコモリ同士の抗争か。
なごやかな2006年だったな。

278 :デフォルトの名無しさん:2006/12/28(木) 16:17:55
ハハハ、こやつめ、ハハハ

279 :デフォルトの名無しさん:2006/12/28(木) 16:36:18
>>276
> これは本物の社内引き籠もりかもしれん.
就職してると思うなんて、随分過大評価するんだなw

280 :デフォルトの名無しさん:2006/12/28(木) 17:29:26
就職の話、掃除の話、低賃金の話はなどはそれぞれ適当な板・スレでやりましょう

281 :デフォルトの名無しさん:2006/12/28(木) 19:47:51
みんPyの作者に粘着してたZOPE関係者、最近見ないな。
「しっぱい」が売れなくて、のたれ死んだか(WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW

282 :デフォルトの名無しさん:2006/12/28(木) 21:22:43
サウンドデバイスドライバのオブジェクトを取得するにはどうすればいいの?
linuxやsunではaudioopモジュール等が用意されているみたいなんだけど、
win用が見当たらない。。
ちなみになるべくマルチプラットフォーム向けにと考えています。

283 :デフォルトの名無しさん:2006/12/28(木) 21:26:19
マルチプラットフォームで使える抽象化されたオーディオデバイス。
贅沢な時代になったものだな。
ついこの間まで日本中が「欲しがりません。勝つまでは。」と言っていたのに。

284 :デフォルトの名無しさん:2006/12/28(木) 21:30:56
まずプラットフォーム判別して、その後適材適所のモジュール使って
オブジェクト渡してやればいいかなーって思ってるんだけど。

285 :デフォルトの名無しさん:2006/12/28(木) 21:33:06
ぱいがめは使えないのかな?

286 :デフォルトの名無しさん:2006/12/28(木) 21:33:30
要はwdmオブジェクト取得したい。
教えてエロいひと

287 :デフォルトの名無しさん:2006/12/28(木) 21:38:50
>>282
俺はそっち方面はあんまり詳しくないけど、
そういうのは、Pygame を通して sdl を使うんじゃないの?
そんなことを聞いた覚えが。
Pygame とか python sdl とかでぐぐってみたら、
情報ひっかからないかな。

288 :デフォルトの名無しさん:2006/12/28(木) 22:16:36
ぐぐってみただけだが…。

SDLdoc 日本語翻訳プロジェクト
http://www.tacoworks.jp/software/SDLdoc-jp/
この10 にオーディオがあるね。
あと、
pygame入門
http://www.halb-katze.jp/pygt/index.html

初心者のための pygame ガイド
http://www.unixuser.org/~euske/doc/pygame/newbieguide-j.html

こんなとこかな。

289 :デフォルトの名無しさん:2006/12/28(木) 22:23:53
>>281
>「しっぱい」が売れなくて、のたれ死んだか(WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW

クラス定義にdefを使うと書いてあるクソ本が売れるわけがない(wwwwwwwwwwwww

290 :デフォルトの名無しさん:2006/12/28(木) 22:35:17
ビルトインのExceptionを継承しました。
try:
 raise DerivedException( "Exp" )
except Exception, E:
 print E.message:
で、結果が
>Exp

という風にしたいのですが、
DerivedExceptionのコンストラクタを呼ぶのを
Exception.__init__( "msg" )
とすると
TypeError: descriptor '__init__' requires a 'exceptions.Exception' object but received a 'str'
となります。
どうすればいいですか?

291 :デフォルトの名無しさん:2006/12/28(木) 22:41:12
覚え書きだけど
try:
raise DerivedException "Exp"
except Exception, E:
print E
ってな感じじゃなかったっけ?
>>285-288
試してみます。ありがとう

292 :デフォルトの名無しさん:2006/12/28(木) 22:43:42
x raise DerivedException "Exp"
o raise DerivedException, "Exp"

293 :デフォルトの名無しさん:2006/12/28(木) 23:35:22
raise Exception("hogehoge")
って一般的じゃない?

294 :デフォルトの名無しさん:2006/12/28(木) 23:51:19
>>289
>クラス定義にdefを使うと書いてあるクソ本

ttp://foma-zakki.cocolog-nifty.com/zakki/2006/12/python_books_py_1f47.html

ここに書いてあるな.

ttp://www.trirhino.com/books/ppyerrata

正誤表に載ってないと言うことは、
著者はガチでdefでクラスを定義しようと思ってるということか.
これはとんだクソ本だ(WWWWWW

295 :デフォルトの名無しさん:2006/12/28(木) 23:52:18
すまん、ただ俺がこの方法を良く使ってただけ。
>>293の方法では、たぶんこれじゃない?
class DerivedException (Exception):
def __init__ (self, msg):
Exception.__init__ (self, msg)


296 :デフォルトの名無しさん:2006/12/29(金) 00:05:10
>>282
自分はWin用にctypes使って、実処理はDLL作っている。
C/C++なら大量な情報がネットに転がっているんで作りやすい。
クロス環境は適当なconstant変数つくって分岐させるのが一番楽かと。

297 :デフォルトの名無しさん:2006/12/29(金) 00:12:44
>>282
http://audiere.sourceforge.net/

298 :デフォルトの名無しさん:2006/12/29(金) 03:04:34
>>295
出来ました。ありがとうございます。
selfを第一引数に持ってくるんですね・・・

299 :デフォルトの名無しさん:2006/12/29(金) 11:44:03
みんPyの作者に粘着してるZOPE関係者に粘着してるのはみんPy関係者ですか?

300 :デフォルトの名無しさん:2006/12/29(金) 12:07:24
みんPyの作者に粘着してるZOPE関係者に粘着してるのはみんPy関係者ですか?


301 :デフォルトの名無しさん:2006/12/29(金) 14:37:23
Pythonのインストール方法ってPythonディレクトリ内で
#./configure
#python setup.py install
でいいよな?

302 :デフォルトの名無しさん:2006/12/29(金) 14:41:30
./configure; make; make install だろ普通

303 :デフォルトの名無しさん:2006/12/29(金) 14:43:03
./configure && make && sudo make install だろ普通

304 :デフォルトの名無しさん:2006/12/29(金) 15:25:40
インストーラをダブルクリックだろ、普通w

305 :デフォルトの名無しさん:2006/12/29(金) 16:06:04
python-2.5-macosx.dmg をダブルクリックかな。


306 :デフォルトの名無しさん:2006/12/29(金) 16:06:24
>>302-303
thx.

_tkinter moduleの有効化ってどうすんだ?
Modules/Setupの_tkinter moduleあたりをUncommentするんじゃないの?
これした後に make するとものすごいエラーが出るんだけど。

./Modules/_tkinter.c:2974: 警告: スカラー初期化子内の要素が多すぎます
./Modules/_tkinter.c:2974: 警告: (near initialization for ‘moduleMethods’)
./Modules/_tkinter.c:2995: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
./Modules/_tkinter.c:2990: error: declaration for parameter ‘event_tstate’ but no such parameter

こういうのがいっぱい。
最後一行に
./Modules/_tkinter.c:3165: error: expected ‘{’ at end of input



307 :デフォルトの名無しさん:2006/12/29(金) 18:17:09
./configure --with-tkinter
だろ多分

308 :デフォルトの名無しさん:2006/12/29(金) 18:49:00
クソ本作者は粘着カキコなんてしてないで
ちゃんと大掃除しろよ!!

309 :デフォルトの名無しさん:2006/12/29(金) 19:38:25
はしゃぐなよw

310 :デフォルトの名無しさん:2006/12/29(金) 21:22:45
lista = ('a','b','c')
listb = ('1','2','3')
listc = ('A','B','C')
def go(amax):
for i in lista:
for j in listb:
rid = str(amax) + str(i) + str(j)
print "%s" % rid

def ge(amax):
for i in listc:
print "%s start" % (str(amax) + i)
go(str(amax)+i)
print "end"

↑をa.pyで保存して、a.ge(0)で実行で、

0Aa1
0Aa2
.
.
.
0Cc3までいく途中、例えば0Bb1でエラーで止ってしまった場合、次の0Bb2から
始めるにはどうしたら良いでしょうか?lista[開始位置]、listb[開始位置]と
するしかないのでしょうか。ご教示お願いします。

311 :デフォルトの名無しさん:2006/12/29(金) 21:34:15
どこまで終わったかを覚えておいて
途中から再スタートできるようなプログラムにすればいいんじゃね?

312 :デフォルトの名無しさん:2006/12/30(土) 02:31:40
失敗しても再チャレンジでき(ry

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

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)