Pythonのお勉強 Part16
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2006/12/14(木) 07:57:54http://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/
0002デフォルトの名無しさん
2006/12/14(木) 09:04:010003デフォルトの名無しさん
2006/12/14(木) 11:26:260004デフォルトの名無しさん
2006/12/14(木) 16:48:290005デフォルトの名無しさん
2006/12/14(木) 23:54:01前スレの巫女Pyナースについて一言
0006デフォルトの名無しさん
2006/12/14(木) 23:54:26パイ乙
0007デフォルトの名無しさん
2006/12/15(金) 00:13:44巫女みこナース! 巫女みこナース!
リスト内包 巫女みこナース!!
巫女みこナース! 巫女みこナース!
lambda 一行 巫女みこナース!!
巫女みこナース! 巫女みこナース!
Py本粘着 巫女みこナース!!
巫女みこナース! 巫女みこナース!
初心者(復活) 巫女みこナース!!
巫女みこナース! 巫女みこナース!
print u"文字化け"巫女みこナース!!
巫女みこナース! 巫女みこナース!
メタクラ おっぱい 巫女みこナース!!
巫女みこナース! 巫女みこナース!
巫女みこナース! 巫女みこナース!
巫女みこナース! 巫女みこナース!
巫女みこナース! 巫女みこナース!
最後にもいっちょー、ハイ!
巫女みこナース!
0008デフォルトの名無しさん
2006/12/15(金) 00:14:270009デフォルトの名無しさん
2006/12/15(金) 00:32:59> mod_pythonが使えるレン鯖なら、DjangoのBlogとかがつかえるんじゃね?
実際にmod_pythonなレン鯖ってある?
0010デフォルトの名無しさん
2006/12/15(金) 00:41:31ttp://www.wappy.ne.jp/service/function.html
Googleで検索したらいろいろ出てきたよ。
0011デフォルトの名無しさん
2006/12/15(金) 00:46:56http://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
いくらでも見つかるだろ
0012デフォルトの名無しさん
2006/12/15(金) 00:54:040013デフォルトの名無しさん
2006/12/15(金) 00:56:14自鯖立てたほうがあらゆる意味で良いのは当然。
0014デフォルトの名無しさん
2006/12/15(金) 08:22:14>> 999さん
pyblosxomとdjangoを調べてみます
自鯖も考えてみます
ありがとうございました
0015デフォルトの名無しさん
2006/12/15(金) 09:49:17... 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
0016デフォルトの名無しさん
2006/12/15(金) 10:20:410017デフォルトの名無しさん
2006/12/15(金) 10:23:270018デフォルトの名無しさん
2006/12/15(金) 12:39:120019デフォルトの名無しさん
2006/12/15(金) 12:40:38なにこのラインナップ(w
作者と同じで読者もアニオタか(w
0020デフォルトの名無しさん
2006/12/15(金) 14:03:540021デフォルトの名無しさん
2006/12/15(金) 15:15:19>>>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
0022デフォルトの名無しさん
2006/12/15(金) 16:50:12ttp://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
0023デフォルトの名無しさん
2006/12/15(金) 16:54:39どう見てもセックル(左下
0024デフォルトの名無しさん
2006/12/15(金) 17:01:12CGIなどの知識を必要とする最後の章は読み飛ばしてしまったのですが、
Dive Into Pythonも読むのに英語の問題以外で前提とする知識はありますか?
0025デフォルトの名無しさん
2006/12/15(金) 17:19:570026デフォルトの名無しさん
2006/12/15(金) 17:44:020027デフォルトの名無しさん
2006/12/15(金) 17:52:18ttp://oshiete1.goo.ne.jp/kotaeru.php3?qid=1884125
0028デフォルトの名無しさん
2006/12/15(金) 17:58:25正規表現、HTML、XML、HTTP、SOAPの章があるけど、同様に読み飛ばせば
よいと思う。
あと、読み始めてたら判ると思うが、機能を説明するためにC、Java、Perl、
VBScriptと比較してたりするので、いずれかの言語を知っていると読みやすいと
思うが、初めてのPythonの前半を読んでる人なら問題なく読めると思うよ。
Dive Into Pythonをざっと読んで、Programming Python 3rd Editionか
Python Referenceの必要な個所をじっくり読むのがよいと思う。
002928
2006/12/15(金) 18:00:01自分もいまDive Into PythonとProgramming Python 3rd Editionを
読んでるところなんで…。
0030デフォルトの名無しさん
2006/12/15(金) 18:21:250031デフォルトの名無しさん
2006/12/15(金) 20:21:340032デフォルトの名無しさん
2006/12/15(金) 21:40:14003316
2006/12/15(金) 21:45:14>>17
まじかよw
既に3から5の頭まで読んだんだが。
英語は苦にならないけど、ちょっと内容検索するのに単語出てこなくて手間取った程度の問題なんだよ。
0034デフォルトの名無しさん
2006/12/15(金) 21:52:27ただし read.cgi は利用しないこと。(ヒント:/tech/1166050674.dat)
> tateyomi.py http://pc8.2ch.net/test/read.cgi/tech/1166050674/28
正
よ
あ
V
思
D
P
0035デフォルトの名無しさん
2006/12/15(金) 21:54:16誤:/tech/1166050674.dat
正:/tech/dat/1166050674.dat
0036デフォルトの名無しさん
2006/12/15(金) 22:17:24>オブジェクト指向プログラムである為、コードの再利用がしやすい
Pythonの前に日本語の勉強からした方がいいかと。
がんばってくだちい。
0037デフォルトの名無しさん
2006/12/16(土) 00:02:53先生! いまさらながらつくってみますた
# 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使い出してから日が浅いので、誰か添削してくれるとウレシス
0038デフォルトの名無しさん
2006/12/16(土) 02:42:10(ここにはテストを書いたけど省略)
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])
0039デフォルトの名無しさん
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'
"""
0040デフォルトの名無しさん
2006/12/16(土) 04:19:070041デフォルトの名無しさん
2006/12/16(土) 04:26:360042デフォルトの名無しさん
2006/12/16(土) 08:37:49ご丁寧にありがとう
004337
2006/12/16(土) 08:42:42thx! 勝手に参考にさせてもらいます
モジュールとして使えるようにしてあるとことか、doctestしてるのもためになったけど、
特に(?P<name>...)に'%(name)s' % {'name': 'key' }、groupdictみたいな機能が
あるって知らなかったので、これから勉強してみます
0044デフォルトの名無しさん
2006/12/17(日) 01:23:46len( "hogehoge" )って関数を呼びたい場合、どうすればいいですか?
0045デフォルトの名無しさん
2006/12/17(日) 01:37:19こういう使い方をしないように気をつけるのがPythonic。
0046デフォルトの名無しさん
2006/12/17(日) 02:25:440047デフォルトの名無しさん
2006/12/17(日) 02:35:13Python 3000ではそうなるのかな。
0048デフォルトの名無しさん
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
できた。
004944
2006/12/17(日) 04:03:29参考にします
0050デフォルトの名無しさん
2006/12/17(日) 09:46:50当たり前のことを当たり前に気をつけることを開発者に求める
これがPythonic
0051デフォルトの名無しさん
2006/12/17(日) 11:26:29len という変数を使うことに拘る意図がわからん
0052デフォルトの名無しさん
2006/12/17(日) 12:42:20使命感にでも駆られているかのように。あるいは催眠術のたぐいか。
0053デフォルトの名無しさん
2006/12/17(日) 12:47:55File "<stdin>", line 1
SyntaxError: not a chance
ワロス(www
0054デフォルトの名無しさん
2006/12/17(日) 13:04:30YouTubeとかGoogleとかMicrosoftとか,無理してPython使いすぎだよね
Googleなんて作者タソ雇うなんて無理しすぎ
0055デフォルトの名無しさん
2006/12/17(日) 13:51:50してるのは藻前だろ(wwww
0056デフォルトの名無しさん
2006/12/17(日) 14:00:51そこで「俺はこう使ってる。この用途においてPythonはこう便利」っていう体験を語れず、
状況に応じて何だって使いこなす最先端の人間達の例を曖昧に掬い取るしかできない言語が
Pythonなんだねえ。
誰々も使ってる、何処何処も使ってる、なんてレベルで擁護が終わるのって泣けるよね。
PやRとそこが段違いだよね。
0057デフォルトの名無しさん
2006/12/17(日) 14:02:170058デフォルトの名無しさん
2006/12/17(日) 14:03:51>PやRとそこが段違いだよね。
Python使いは成熟しているんだと思う。
PやRを使っている厨房とは違って、人間的に大人なんだよ。
0059デフォルトの名無しさん
2006/12/17(日) 14:04:55http://pc8.2ch.net/test/read.cgi/tech/1099804004/
0060デフォルトの名無しさん
2006/12/17(日) 14:10:01でもすぐ人格批判に移行するよね
0061デフォルトの名無しさん
2006/12/17(日) 14:12:10>誰々も使ってる、何処何処も使ってる、なんてレベルで擁護が終わるのって泣けるよね。
プログラミング言語に「養護」という言葉が出てくる理由がわからないなぁ.
俺は便利に使っている.
世界的に実績がある.
そして,オマエには便利さが分からない.
これがすべてだろ.
0062デフォルトの名無しさん
2006/12/17(日) 14:13:40あ、ごめん。
君自身が「PやRを使っている厨房」だったんだね(www
名指しで君の人格をおとしめてしまってごめんなさい(wwwwwwwwwwwwwwwwwwww
0063デフォルトの名無しさん
2006/12/17(日) 14:14:31とりあえずメタクラスが便利だから使ってみるといいと思うよ
0064デフォルトの名無しさん
2006/12/17(日) 14:18:15だから、自分がいいと思ってるから使ってるって言ってるだろ(wwww
何がいいのか語るものは持っているが、どうせ何言っても捻じ曲げられるから
しない。
0065デフォルトの名無しさん
2006/12/17(日) 14:24:02返ってくる反応がことごとくその裏付けになるのが面白い。
言語の便利さを疑えば「どう便利なのかが返ってこない」ことで疑惑はより強まり、
人格を疑えば「草がいっぱい生えた」レスが返ってきて疑惑が確定する。
速攻で自分の首を絞めるのがPython流?
0066デフォルトの名無しさん
2006/12/17(日) 14:26:48spam!spam!spam!spam!spam!spam!spam!spam!
0067デフォルトの名無しさん
2006/12/17(日) 14:43:25新たな発見があって安らぎを感じることができるかも知れない
まあ95%無理だろうけど。センスなさそうだし。
0068デフォルトの名無しさん
2006/12/17(日) 14:53:33Rubyは知らんけど、自分が使っててPerlよりPythonが勝ってると思うひとつは配列構造の柔軟さだ。
UserData = {('User1','Pass1'): 'User 1', ('User2','Pass2'): 'User 2'}
print UserData[('User1','Pass1')]
これと同様のスクリプトをPerlで書くとどうなる?
0069デフォルトの名無しさん
2006/12/17(日) 15:13:04自分もPython を使い始めてけっこう経ったので、Perl のことは
かなり忘れてしまったけれど、
そういう部分でPerl へ勝負を挑んでも、リファレンス使えば
Perl でもあっさりおなじように出来たんじゃない?
(たぶん、Python が常にリファレンスを使用してるというだけでしょ)
自分としては、それよりも、Perl がOOP への対応に関して作戦ミスを
したなぁと思う。
OOP を導入する際、既存の文法へ最小限の命令しか加えないと
いう方針を採っため、めちゃくちゃOOP が難しいものになってしまった。
あのとき、大胆に新たな命令セットを導入すれば、
シンプルで明快な形でOOP できるようにすることも可能だったろうに。
そうすれば、僕がPython を使おうと思うこともなかったかもなぁ。
0070デフォルトの名無しさん
2006/12/17(日) 15:23:24好き嫌いというか道具なんだからいくつ使えたって困らないし
0071デフォルトの名無しさん
2006/12/17(日) 15:26:42> そういう部分でPerl へ勝負を挑んでも、リファレンス使えば
> Perl でもあっさりおなじように出来たんじゃない?
>
> (たぶん、Python が常にリファレンスを使用してるというだけでしょ)
そこが微妙に違うところで、
確かに>>68の辞書UserDataを作るだけなら、Perlのリファレンスを知ってれば簡単に出来る。
しかし、その辞書(Perlで言うと連想配列)のキーを使う場合には
Perlだと連想配列を作った時と同じリファレンスでないとキーとして使えないんですよ。
だから、Perlで単純に
$UserData[['User1','Pass1']]
としてもPythonみたいに値が得られないんです。
0072デフォルトの名無しさん
2006/12/17(日) 15:37:26『続・初めてのPerl』読んでリファレンス周りで挫折した。あれは悲しかった・・・
Pythonだと1 < a < 100みたいに書けたりするところも好き
0073デフォルトの名無しさん
2006/12/17(日) 15:48:27スクリプトは書き捨てだから自分だけわかればいいけど
0074デフォルトの名無しさん
2006/12/17(日) 15:54:49Perl で本当に同じことをしようと思ったら
$UserData{ 'User1' . "\0" . 'Pass1' }
みたいに、各キーの「値」を合成するようなことをしなくちゃいけないってことだよね。これは、アッサリとは言いにくい。(連結文字は、各キーに含まれていないことを確認するとか、機械的にやできん)
リファレンスだと、アドレスを区別するだけだから、同じキー内容だけど、別物の場合、違うモノ扱いになっちゃう。
007569
2006/12/17(日) 15:58:24うーん、
ハッシュ(連想配列)のリファレンスの話?
配列のリファレンスではダメなの?
リファレンスっていっても、
ハッシュ(連想配列)でなくてもリファレンスできるわけだから。
配列のリファレンスの場合のデリファレンスは、
なんたらかんたら [x][y][z]
の形式(x, y, z はそれぞれ添え字)で、3次配列でも100次配列でも
望みの場所のものをどんぴしゃで引き出せたはずだけど。
すでにPerl をインストールすらしてない身で、
あれこれいうのも辛いところながらw
0076デフォルトの名無しさん
2006/12/17(日) 16:20:13あえて不便の道を歩んでいるように見える。
Ruby は Perl の機能を全て「分解」して、
オブジェクト指向の思想の元に「再構築」してる
(構築前後で 1:1 に対応してる)。
だから、Perl で出来たことは Ruby で出来る。
これは正しいやり方の一つだ。
ただ、Perl のゴチャゴチャさを継承してしまっているのも
否めないところだ。
Python は、Perl のあり方をそもそも一旦「忘れた」上で、
1から考え直して「あらたに構築」しているっていう印象がある。
だから、Perl ・Ruby で出来ることが、Python ではなかったり
することも多々あるかもしれない。そのかわり、Perl , Ruby では
考えられなかったような点が見直されていて、新鮮だ。
0077デフォルトの名無しさん
2006/12/17(日) 16:20:54書く時便利だけど、読むとなった時、実は見辛かったりする。
それを廃したのは、なかなかの判断だと思う。
そのかわり、既存の代入式が必要とされたシーンでは、
それらを使わなくてもよいように、ライブラリとかの方で工夫して、
見やすくなるように配慮する。これは正解のような気がする。
だから、Python のどこが便利だと言われて、答えられないのは、
当然のような気がする。だって、書く時の便利さを捨ててるんだから。
かわりに書き終わった後のソースのスッキリ感や、
書いた本人でなくとも読み易いという長所はデメリットを
補って余りあると思うよ。多分。
(トリッキーなコードを書かれると、引き継ぐ人がたいへんだからね)
# これ、あくまで個人的な見解なんで、そんなことないぞ、
# 便利だという反論も他の Python 好きに言ってもらいたいなぁ。
0078デフォルトの名無しさん
2006/12/17(日) 16:24:07>Pythonだと1 < a < 100みたいに書けたりするところも好き
をを、知らなかった。サンクス。
0079デフォルトの名無しさん
2006/12/17(日) 16:28:02ああ、そういや当たり前すぎて忘れてたが、
if X=1:
・・・
がエラーになることがうれしいな。
008074
2006/12/17(日) 16:30:26>>74 だけど、誤読していていた。キーにリファレンスを入れるというのと勘違いした
(>>71 もそうじゃないかな)。
言いたいのは、よくある二次元配列のリファレンスによるエミュレーションの、
n 次元ハッシュ版ね。理解した。
# わしの回避策は、awk の二次元配列エミュレーションの真似
ただ、そうすると、一次元部分のハッシュの初期化を最初にしなくちゃいけないというのはあるよね。
その部分の手間が Python では省けるという認識でオケー? >> 各位
0081デフォルトの名無しさん
2006/12/17(日) 16:38:27008269
2006/12/17(日) 16:42:47要するに、Perl においてはPython と違って、
ハッシュ(連想配列)のキーとして、リファレンスは使えない(使いにくい)だろ、
という話ね。
それに対して、Perlでは
配列でもハッシュ(連想配列)でも、リファレンス作れるし、それの組み合わせも
できる。
3次でも100次でも、n次配列の、どの階層のどの要素でも、
狙い通り取ってこれるよと返事したのだが、
少し話がずれていたね。
自分はもうPerler ではないけれど、たぶんPerler なら、
最初の要素をそういう風にしないで、うまくやると思う。
言語の特性はそれぞれ違うし、それにPerl のリファレンスの仕組みは
Python とは特性が違うけど、十分に柔軟なものと思うよ。
自分としては、Perl の問題点は OOP と思うなぁ。
あれさえ解決していてくれたら、Python は使ってなかった…
0083デフォルトの名無しさん
2006/12/17(日) 17:08:26>Python のどこが便利だと言われて、答えられないのは、
>当然のような気がする。だって、書く時の便利さを捨ててるんだから。
Pythonは十分書く時も便利。ジェネレータのおかげで内部イテレータとしても
外部イテレータとしても扱える柔軟さが手に入る。(forループに任せず、next()
で手動でデータを取ってきたいことがある)itertoolsとの組み合わせも便利。
翻ってRubyは内部イテレータしかない。Generatorというライブラリはあるが、
スレッドのトランポリンを使っていて、めちゃくちゃ重い。実用にならない。
Rubyの書きやすさとしてよくメソッドチェーンがあげられるが、Pythonにも
内包表記がありデメリットにはならない。Rubyのブロックは複数行かけるが、
そういうメソッドチェーンはあまり見ないし、そういう場合Pythonだと高階関数
をそばに書いて内包表記に組み込むなどすれば、不便を感じない。
Pythonのスライスはa[1:3]のような表記だが、Rubyにはa[1..3]とa[1...3]が
あり、最後の要素を含む・含まないの違いがある。いつも混乱するので、Python
の方がその点で書きやすい。
0084デフォルトの名無しさん
2006/12/17(日) 17:10:24そんなことないぞ。便利だ。w
つか、おまえ糞なエディタ使ってるとかじゃね?
008571
2006/12/17(日) 17:11:04>>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']; #データ無し
008677
2006/12/17(日) 17:22:15あー、いやいや書く手間自体はいいんだw。
俺個人としては、別にそれ嫌がってるわけじゃないから。
(だから、最近、Python 好きになったわけだし)
短く書けるか、長く書く必要があるかというのを
「不便」とか「書く時不便」とかいう表現をしちゃったのが
まずかったな。
漏れはとしては >>83 のような建設的なアピールが
出た時点で、もう思い残すことはない。
0087デフォルトの名無しさん
2006/12/17(日) 17:23:11Pythonはネイティブスレッドに対応してるからIOみたく重い処理があっても
リスポンス良く組むことが可能だし。
0088デフォルトの名無しさん
2006/12/17(日) 17:27:59バグで落ちたりのろのろ動くと悲しい。
0089デフォルトの名無しさん
2006/12/17(日) 17:32:58教えてくれたひとありがとーぉ
0090デフォルトの名無しさん
2006/12/17(日) 18:16:01あと文字コード関係で悩まなくて済む
0091デフォルトの名無しさん
2006/12/17(日) 18:23:12それは言えるな。
俺は言語的にはLisp系が好き、Pythonは許容範囲、Perlは論外って感じなんだけど、
ライブラリはPythonが充実してるから、実際の仕事ではPythonが一番活躍してる。
0092デフォルトの名無しさん
2006/12/17(日) 19:43:21使う場合はどうしたらよいのか教えて頂けないでしょうか。
例えばperlで置換する場合ですと
s/(\d)\s(\d)/ $1$2/
といったように $数字 でよいと思うのですが、
pythonではgroupというのを使えばよいらしいことは
分かったのですがどうしたらよいのか分からずにいます。
re.sub((\d)\s(\d), ??????, )
誠に恐縮ですがよろしくお願い致します。
0093デフォルトの名無しさん
2006/12/17(日) 19:54:17>>> 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) では、どうするんかは、知らん
(もしかしたら、できぬ?)
0094デフォルトの名無しさん
2006/12/17(日) 19:59:30>>> re.sub(r"(\d)\s(\d)", r"\1\2", "5 6")
56
とすればいいんだけど、こんなとこで聞くよりマニュアル読んだほうが分かり易いと思う。
009592
2006/12/17(日) 20:09:29本当にどうもありがとうございました。
どうやら自分のにはr"\1\2"の
rがなかったようでそれを入れたところうまくいきました。
ちなみにこの r は何を意味するものなのでしょうか?
私の探し方が悪いのだと思いますがマニュアルでは
みたことがなかったものでして
009692
2006/12/17(日) 20:15:47http://iblinux.rios.co.jp/PyJdoc/lib-j/module-re.html
つまり、"r"を前につけた文字列リテラルにおいてはバックスラッシュは特別な扱いを受けることはありません。従って、r"\n"は"\"と"n"を含む2文字の文字列ですが、"\n"はニューラインを含む1文字の文字列です。
0097デフォルトの名無しさん
2006/12/17(日) 20:18:080098デフォルトの名無しさん
2006/12/17(日) 20:20:390099デフォルトの名無しさん
2006/12/17(日) 22:29:59postscriptで十分だから
0100デフォルトの名無しさん
2006/12/18(月) 00:05:210101デフォルトの名無しさん
2006/12/18(月) 03:07:49■ このスレッドは過去ログ倉庫に格納されています