Python の宿題ここで ..
49:デフォルトの名無しさん
06/08/09 00:06:37
>>47
普通はソースの最初の # -*- coding: ×× とソースのコードが一致すれば大丈夫
50:デフォルトの名無しさん
06/08/09 00:37:16
# -*- coding: euc-jp -*-
import sys,string,traceback
import curses
stdscr = curses.initscr()
curses.nocbreak()
stdscr.keypad(0)
curses.echo()
stdscr.addstr(0, 0, "数字を入力してください。",curses.A_REVERSE)
numstr = stdscr.getstr(1,0, 10)
try:
try:num = map(int,numstr)
finally:curses.endwin()
except:
traceback.print_exc()
sys.exit(0)
51:デフォルトの名無しさん
06/08/09 00:38:53
x=10
y=3
while len(num) is not 1:
for n in range( len(num) ):
stdscr.addstr( y , y+x+n*2 , str(num[n]) )
for n in range( len(num)-1 ):
num[n] =( num[n] + num[n+1] ) % 10
del num[-1]
y += 1
stdscr.addstr( y , y+x+n*2 , str(num[0]))
stdscr.addstr(14,0, "最後に残った数字は %d です。" % num[0] )
stdscr.addstr(16,0, "\'q\' to Exit this program.",curses.A_UNDERLINE)
stdscr.refresh()
while True:
stdscr.nodelay(1)
c = stdscr.getch()
if c == ord('q'):
curses.endwin()
break
52:デフォルトの名無しさん
06/08/09 01:00:35
>>49
あ、そうなんだ。安心したよ。サンキュ
53:デフォルトの名無しさん
06/08/09 08:18:03
step = lambda x: len(x[-1])==1 and x or step(x+[[(i+j)%10 for i, j in zip(x[-1][1:], x[-1][:-1])]])
print '¥n'.join([__import__('string').center(' '.join([str(s) for s in l]), 20) for l in step([[int(c) for c in raw_input('数字を入力してください: ').strip().split(' ')]])]+['最後に残った数字は%sです' %(s)])
54:デフォルトの名無しさん
06/08/09 08:22:38
まいなーりびじょん。
step = lambda x: len(x[-1])==1 and x or step(x+[[(i+j)%10 for i, j in zip(x[-1][1:], x[-1][:-1])]])
print '¥n'.join([__import__('string').center(' '.join([str(s) for s in l]), 20) for l in step([[int(c) for c in list(raw_input('数字を入力してください: ').strip())]])]+['最後に残った数字は%sです' %(s)])
55:デフォルトの名無しさん
06/08/09 11:01:45
ワンライナーもできたよ!
print '¥n'.join([' '*(len(s)-len(p))+' '.join([str(c) for c in p])
for p in [[reduce(lambda x, y: [(i+j)%10 for i, j in zip(x[:-1], x[1:])], range(r), range(len(s))) for r in range(len(s))]
for s in [list(raw_input('数字を入力してください: ').strip())]][0]]+['最後に残った数字は %s です' %c])
56:デフォルトの名無しさん
06/08/09 11:13:36
もはや検証してみる気にもならん
57:デフォルトの名無しさん
06/08/09 12:38:32
こういうスレ好き♥
58:デフォルトの名無しさん
06/08/09 12:57:34
sedでホワイトスペース2個を全角スペースにしたら
見やすいのか。。
59:デフォルトの名無しさん
06/08/12 13:42:05
こんな課題はどうだろう。
moe.homelinux.netの任意のスレッドに投稿されている絵を
ダウンロードするプログラムを作れ。
60:デフォルトの名無しさん
06/08/12 15:05:20
それは課題じゃなくてオマエがつくってほしいプログラムだろ。
61:デフォルトの名無しさん
06/08/12 15:38:13
もう作ってあるので心配しないで。
62:デフォルトの名無しさん
06/08/12 22:53:36
>>59
>moe.homelinux.net
なんだかわかんないけど同意させられそうになったんでヤメタ。
63:デフォルトの名無しさん
06/08/12 22:59:17
クッキー食べないとアクセスできなくなってるので
課題にはいいかなと。
64:デフォルトの名無しさん
06/08/12 23:03:11
PythonChallengeの10-20レベルあたりにCookieがあったな。
65:デフォルトの名無しさん
06/08/13 05:00:18
画像掲示板から物故抜くのを作ったよ。
よくあるネタだと思うけど、俺みたいな初心者にはほどよい難易度ですた。
流量によってアクセス頻度を調整しているので鯖にも優しいよ( ´ー`)
66:デフォルトの名無しさん
06/08/15 22:21:31
ファイル名にハイフンが入ったファイルをimportしたいんだが、
こんな感じで問題ないかな?
----------------
import imp
f = file('dame-file.txt', 'r')
try:
dame = imp.load_module('dame', f, 'dame-file.txt', ('', 'r', imp.PY_SOURCE))
finally:
f.close()
----------------
dame-file.txtというファイルをdameという名前でimportしてます。
一応実行してみたらちゃんと動いてるっぽいですが、見真似で書いたので不安です。
67:66
06/08/16 09:55:26
朝になってよく見たらこれだけでOKだった。
import imp
dame = imp.load_source("dame", "dame-file.txt")
68:デフォルトの名無しさん
06/08/16 09:58:41
>>67
load_sourceは、obsoleteだけどね。
69:デフォルトの名無しさん
06/08/23 08:51:57
【課題】みんPy読書感想文を書け。
【補足】提灯記事はいらない。是非問わず忌憚のない意見を臨む。mojix語禁止。
70:デフォルトの名無しさん
06/08/23 17:12:52
感想文書くからZIPでくれ
71:デフォルトの名無しさん
06/08/23 19:55:05
>>69
まず最初に、公式ドキュメントで十分な人は買わなくても良い。
そうでない人は、はじPyより安くて軽いからおすすめ。
よく使うであろう標準モジュールの解説はもちろん、SQLiteとの接続モジュールや、
ElementTreeの解説もあって2.5以降も意識されている。
Web関連では、昔ながらのCGIだけでなく、Web2.0なことにも触れている。
Zopeまで含めているのはやり過ぎな気もするが、あって困るものじゃない。
その他、日本語関連の話題も抑えてあり総じて良い本といえる。
ただし、帯の「Google言語。」というコピーはいただけない。
72:デフォルトの名無しさん
06/08/23 21:54:49
>>69
> 69 名前:デフォルトの名無しさん :2006/08/23(水) 08:51:57
> 【課題】みんPy読書感想文を書け。
> 【補足】提灯記事はいらない。是非問わず忌憚のない意見を臨む。mojix語禁止。
宣伝乙
73:デフォルトの名無しさん
06/08/25 00:38:03
実況中継見てPythonにそそられて、PDF版のチュートリアルから入門して
自称中級者になりました。
もう入門なんてレベルじゃないけど みんPy は「お布施」として購入しました。
74:デフォルトの名無しさん
06/08/25 00:53:58
>>73
> 73 名前:デフォルトの名無しさん :2006/08/25(金) 00:38:03
> 実況中継見てPythonにそそられて、PDF版のチュートリアルから入門して
> 自称中級者になりました。
> もう入門なんてレベルじゃないけど みんPy は「お布施」として購入しました。
>
宣伝乙
75:デフォルトの名無しさん
06/08/25 01:24:35
その「お布施」で何かご利益があるのかよ?
76:デフォルトの名無しさん
06/08/25 01:27:03
お布施は、車とかプラズマテレビになる予定。
77:デフォルトの名無しさん
06/08/25 08:59:08
抽選で当たるの?いまざっと見たけど、応募ハガキは入ってなかった。
78:デフォルトの名無しさん
06/08/25 12:25:09
> もう入門なんてレベルじゃないけど みんPy は「お布施」として購入しました。
著者さん、Pythonに貢献してる人?
79:デフォルトの名無しさん
06/08/25 12:36:50
>>77
もれなく著者の自宅に届きます。
80:デフォルトの名無しさん
06/08/25 12:37:38
>>78
タダノリしてるだけじゃない。
81:デフォルトの名無しさん
06/08/25 19:17:30
>80
mojixさんってただ乗りしているの?
82:デフォルトの名無しさん
06/08/25 20:19:36
>>81
みんPyはmojix??
83:デフォルトの名無しさん
06/08/25 20:28:42
もう、みpは飽きた
84:デフォルトの名無しさん
06/08/25 21:36:22
>>78
本を書くこと自体が非常に大きな貢献。こればかりは誰にでもできることではない。
85:デフォルトの名無しさん
06/08/25 22:08:30
だれか二匹目のどじょうをあてこんで中級向けの本だしてくんないかなぁ。
86:デフォルトの名無しさん
06/08/26 02:35:36
Pythonでお宝動画を根こそぎゲット系の本とか
87:デフォルトの名無しさん
06/08/26 02:41:52
そこで256倍本
88:デフォルトの名無しさん
06/08/26 18:34:35
Pythonって、日本語の文章を処理するスクリプトを書こうとしたら途端にボロが出るんだな。
今まで便利に使わせてもらってただけにがっかりだ。
89:デフォルトの名無しさん
06/08/26 19:06:48
>>88
おまえの頭がボロ
90:デフォルトの名無しさん
06/08/26 19:12:18
>>89
激しく同意
>>88
どんな難しいスクリプト or 勘違いスクリプトなんだ?
91:デフォルトの名無しさん
06/08/26 19:31:13
>>88
勉強しろよ
92:デフォルトの名無しさん
06/08/26 19:43:00
日本語の使えなさはPerlレベルw
93:デフォルトの名無しさん
06/08/26 19:45:26
>>92
おまえの頭がPerlレベル
94:デフォルトの名無しさん
06/08/26 19:49:12
煽るだけのやつ、早くいなくならないかな・・・
95:デフォルトの名無しさん
06/08/26 20:29:37
perlで日本語処理かけないなんて
そうとうダメだぽ
96:デフォルトの名無しさん
06/08/26 20:31:25
そもそも日本語に限らずパイソンの文字列操作はダメだろ。
これがpythonicねぇとため息が出る。
97:デフォルトの名無しさん
06/08/26 20:33:51
Python至上主義者は、そんなことは些細なこととして、記憶から消し去ります。
98:88
06/08/26 21:05:27
>>91
まさにそれなんだけどさw
一般的にPythonって、直感的に使えるし、難しいことはライブラリをimprot
すれば共通のインターフェイスで使える。
なのになんで日本語操作には勉強が必要なんだ、という叫びだな。
この変なトリックはパイ然としねーw
何、文字列型をユニコード型に変換ってw
99:デフォルトの名無しさん
06/08/26 21:06:54
Perlレベルw
100:デフォルトの名無しさん
06/08/26 21:27:07
なんだ勉強嫌いの子か
101:デフォルトの名無しさん
06/08/26 21:52:08
>>100
そんくらい面倒がらずにやるし、ましてや解かりませんとも言ってない。
「がっかり」だ、と言っているw
この仕様は、だせーよw
102:デフォルトの名無しさん
06/08/26 22:11:12
>>101
具体的に要望を書いたほうが建設的だと思う
103:デフォルトの名無しさん
06/08/27 01:43:33
Perl レベルなのは確かだと思う.
でもそれを言ったら Ruby 以外の外国産言語はどれも大差ない.
内部コードはユニコード、入出力時に変換します.
変換しなければ基本はASCII扱いで、SJISとかは危険よ.
問題なのは各言語のコーデックの機能を使いこなせないやつの能力.
104:デフォルトの名無しさん
06/08/27 02:33:29
> 問題なのは各言語のコーデックの機能を使いこなせないやつの能力.
いや、むしろ使いこなしのノウハウが誰にでも分かるように
まとまった形で広く公開されていないところが問題。
初心者に「とりあえずチュートリアル嫁」と言うのと同じぐらい簡単な
definitive なリソースが必要。
って言うのは簡単だけどな(苦笑
105:デフォルトの名無しさん
06/08/27 02:55:30
ぶっちゃけ日本語のテキスト処理は難しい。
文字とバイトが一致してない。
多数の文字コードが混在している。
互換性のない文字集合がいくつもある。
あっちを立てるとこっちが立たない。
あるアプリでうまくいく方法が別のアプリでは通用しない。
簡単かつ明瞭に誰にでも分かるように仕様を設計することは不可能、もしくは非常に困難。
簡単かつ明瞭に誰にでも分かるように説明することはさらに困難。
理解できない人がいても不思議ではない。
理解できないことに罪はない。
根本的に難しい。
終わっている。
Imagine there's no encodings,
it isn't hard to do,
nothing to encode or decode,
no charset too,
imagine all the people
living with Unicode...
You may say I'm a dreamer,
but I'm not the only one,
I hope some day you'll join us,
and the world will be as one.
106:デフォルトの名無しさん
06/08/27 05:05:25
>>103
まともな評価が出来る人がいると分かって、安心したよ。
107:デフォルトの名無しさん
06/08/27 09:48:54
Ruby房が湧いた
108:デフォルトの名無しさん
06/08/27 11:07:57
>>105
自分が理解できないからって(w
109:デフォルトの名無しさん
06/08/27 11:10:35
わかるのだけでも(間違ってても)良いのでお願いします(>_<)
@地球の内部から地形を形成する力をなんと言うか
A地球の外部から地形を形成する力をなんと言うか
Bウェゲナーの大陸はパンゲアという1つの大陸から分かれたとする説を何というか
C地球の外周は約何kmか
D地球の表面は厚さ100kmほどのプレートに覆われ、これが移動するため、
現在のような大陸分布や山脈の形成が見られたとする説を何というか
E先カンブリア代の地層がむき出しになっている地形を何というか
F先カンブリア代の地層の上に古・中生代の地層が重なっているものを何というか
G新期造山帯と古期造山帯と安定陸塊で最も古い地形はどれか
H新期造山帯・古期造山帯・安定陸塊からでる地下資源をそれぞれ答よ
I新期造山帯は大きく2つに分けられる。2つの造山帯(山系)の名称を答えよ
110:デフォルトの名無しさん
06/08/27 11:23:04
>>109
スレ違い
111:デフォルトの名無しさん
06/08/27 11:35:04
''' 受験に備えて復習する 正誤は知らん
内的営力 外的営力 大陸移動説 40k プレートテクトニクス
楯状地 卓状地 安定陸塊 石油、石炭、鉄鉱石
アルプス・ヒマラヤ造山帯、環太平洋造山帯
'''
112:デフォルトの名無しさん
06/08/27 12:09:27
最近Pyスレを荒らしているのは高校生なのかなぁ
113:デフォルトの名無しさん
06/08/27 12:36:16
高校生にしてはレベル低いね
114:デフォルトの名無しさん
06/08/27 22:36:36
Λ_Λ . . . .: : : ::: : :: ::::::::: :::::::::::::::::::::::::::::
ナカチャン… /:彡ミ゛ヽ;)ー、 . . .: : : :::::: :::::::::::::::::::::::::::::::::
/ :::/:: ヽ、ヽ、 ::i . .:: :.: ::: . :::::::::::::::::::::::::::::::::::::::
/ :::/;;: ヽ ヽ ::l . :. :. .:: : :: :: :::::::: : ::::::::::::::::::
 ̄ ̄ ̄(_,ノ  ̄ ̄ ̄ヽ、_ノ
,,,,,
/ ,' 3 `ヽーっ
l ⊃ ⌒_つ
`'ー---‐'''''
115:デフォルトの名無しさん
06/08/27 22:49:33
>>112
そのうち飽きるさ。
116:デフォルトの名無しさん
06/08/28 18:23:41
40kkmちょっと和んだ
117:デフォルトの名無しさん
06/08/28 20:46:57
おっpy
118:デフォルトの名無しさん
06/08/30 23:55:41
やっとおだやかになってきたねー
119:デフォルトの名無しさん
06/08/31 00:45:21
スレが立って一ヶ月以上。未だに宿題が出てこない件について。
つか、このスレいらんね。
120:デフォルトの名無しさん
06/08/31 07:09:29
夏休みの真っ最中にPythonの宿題が出るとは思えない。
121:デフォルトの名無しさん
06/08/31 21:39:21
さー、明日からしまっていこうかー
122:デフォルトの名無しさん
06/08/31 23:18:27
大学の夏休みはまだまだ続きます
123:デフォルトの名無しさん
06/08/31 23:38:58
もしかすると、平常日と夏休みとがはっきり区別されない人間が一番やばいのでは
124:デフォルトの名無しさん
06/09/01 00:25:10
8月で夏休みが終わる大学もあるんだがな
125:デフォルトの名無しさん
06/09/01 08:44:33
ま、今はどこの大学も中身は小学校レベルだしな。卒論も昆虫採集以下だし。
126:デフォルトの名無しさん
06/09/04 12:15:34
卒論大変だったなぁ…
>>125
は大学の先生ですね。それ以外はこういうこと書けないし。
大学の先生もPythonスレ見てるなんて、すごいぜpython
127:デフォルトの名無しさん
06/09/04 12:51:19
大学の先生も小学校レベルなんですよ
128:デフォルトの名無しさん
06/09/04 15:14:54
それは当たってる。
129:デフォルトの名無しさん
06/09/05 00:36:59
宿題ではないんですが誰も相談できる人がいないのでここで質問してもいいんでしょうか?
130:デフォルトの名無しさん
06/09/05 09:07:09
内容によるんでね?
131:デフォルトの名無しさん
06/09/05 11:28:20
やる前にふさわしいかどうか考えない
やってみてダメだったら例外処理する
それがPython流
132:デフォルトの名無しさん
06/09/05 15:52:00
突然の書き込みすみません。>< 集計とってます。
ベストなバストはなにサイズ? 協力してちょ
スレリンク(honobono板)l50
133:デフォルトの名無しさん
06/09/08 00:35:11
>>129 の質問てのは >>132 のことだったのか?
134:デフォルトの名無しさん
06/09/08 23:21:14
ひさしぶりにMLを見たよー。
ムネオたんへの皆のレスがなんとなくちくちくしてるよー。
135:デフォルトの名無しさん
06/10/10 23:24:09
ムネオたんって誰?
鈴木宗男?
136:デフォルトの名無しさん
06/10/11 00:06:07
┐(゚〜゚)┌
137:デフォルトの名無しさん
06/10/11 00:06:48
そう
138:デフォルトの名無しさん
06/10/20 12:39:34
【 課題 】
■1 ファイルの読み込み
テキスト・ファイルは、改行で区切られた行のリストである。
Pythonでテキスト・ファイルを扱うときも、リストとして処理されるので、for構文を使う。
for line in open(ファイル名, "r"):
一行ごとの処理内容
......
"r"は、read、すなわち「読み込み」の意味である。処理結果は何らかの仕方で書き出す必要があるが、今回は単にprint文で画面に書き出すだけにする。
ファイル名は、
python file_read.py ファイル名1 ファイル名2 ファイル名3 ...
というように引数に指定し、それを前回のプログラムのようにfor構文で一つ一つファイル名を読み取り、それを一つごとオープンし、それを再びfor構文で一行ずつ読み込み、その一行のデータを処理して書き出す。これを繰り返していく。
■1.1 課題:単純なコピー
まず、単純にテキスト・ファイルをそのまま書き出すプログラムcat.pyを作ろう。
sysプログラムをインポートする
for ファイル名用変数 in 引数のリスト:
for 一行を代入する変数 in open(ファイル名用変数、"r"):
一行を書き出す
単純なプログラムのようだが、実はUnixでよく使われる基本コマンドcat、MS-DOSでは typeが、まさにこれと同じ働きをする。使い方としては、
python cat.py ファイル名1 ファイル名2 ... > 新規ファイル名 として、複数のファイルの書き出した結果を一つのファイルに合体する。
python cat.py ファイル名 \ more|(Unixの場合はless)として、一画面毎、表示を止める。
という二つの場合がある。
【 期限 】とくにないっす。
【 補足 】
なんか大谷大学っていうとこのここ→URLリンク(tibet.que.ne.jp)
から見付けてきたやつです。
お暇な方お願いしますm(_ _)m
139:デフォルトの名無しさん
06/10/20 19:54:49
最近の宿題ってのはそこまで手取り足取り教えてくれるのな
>Pythonでテキスト・ファイルを扱うときも、リストとして処理される
これはどうかと思う
140:デフォルトの名無しさん
06/10/20 20:35:50
for-in使うとリストのように、処理されるってだけだよな。
enumrator?
141:デフォルトの名無しさん
06/10/22 00:39:47
pythonからexcelを起動して、表に上からa = 1, a = 2・・・・a = 100と
表示させよ。
という問題です。宜しくお願いします。
142:デフォルトの名無しさん
06/10/22 11:57:38
print "pythonからexcelを起動して、表に上からa = 1, a = 2・・・・a = 100と"
143:デフォルトの名無しさん
06/10/22 12:47:31
>>142
おい!
"と"、はいらなんじゃないかと
144:デフォルトの名無しさん
06/10/22 13:08:09
些細なバグだな
145:デフォルトの名無しさん
06/10/22 13:52:50
>>141
どうみても自分のやりたいことを問題のふりして聞こうとしてるよな。
素直に聞いてりゃ誰か教えてくれただろうにねぇ。
146:デフォルトの名無しさん
06/10/22 14:56:04
でも戸がねぇと埃が入ってきちゃうから
147:デフォルトの名無しさん
06/10/22 15:40:18
できたぞ
XList = []
for i in range(100):
XList.append("a = %d" % (i+1))
XText = "\n".join(XList)
XFile = file("PyExcel.xls", "w")
XFile.write(XText)
XFile.close()
import os
os.system("open /Applications/Microsoft\\ Office\\ X/Microsoft\\ Excel PyExcel.xls")
148:デフォルトの名無しさん
06/10/22 22:37:30
>>147
動きました。どうもありがとうございます。
149:デフォルトの名無しさん
06/10/27 02:56:48
適当に文字を打ち込んで、その数をカウントする。
150:デフォルトの名無しさん
06/10/27 03:10:48
print len(raw_input('enter something'))
151:デフォルトの名無しさん
06/11/04 02:21:15
行列の足し算
map(lambda x: map(lambda y: y[0]+y[1],x),[zip(*x) for x in zip(a,b)])
152:デフォルトの名無しさん
06/11/04 16:14:33
>>151 行列はNumPy使おうよ。
153:デフォルトの名無しさん
06/11/04 17:33:14
標準に入ってないし
154:デフォルトの名無しさん
06/11/04 22:47:45
こっちが正解だった
[[sum(y) for y in zip(*x)] for x in zip(a,b,c)]
155:デフォルトの名無しさん
06/11/09 10:12:32
xの転置行列
zip(*x)
ベクトルu,vの内積
sum(s*t for s,t in zip(u,v))
行列x,yの行列積
[[sum(s*t for s,t in zip(u,v)) for v in zip(*y)] for u in x]
156:デフォルトの名無しさん
06/11/11 02:08:14
zipは99%parallel iterationにしか使われてない -- guido
ジード分かってねーーーーーーーーーーー!!!
転置行列だよ転置行列!!
izipって何語???キモーーーーーーーーーーー!!!ヤメレーーー!
157:デフォルトの名無しさん
06/11/11 02:40:01
行列はリストですが、リストは行列ではありません
158:デフォルトの名無しさん
06/11/11 22:31:37
誘導されてきました
1Gぐらいあるテキストファイルから適当な行をランダムサンプリングしたい
中身はこんな感じ
1 10 120 1.0
2 11 110 2.0
3 11 110 2.0
4 9 90 3.0
5...
1000000 .....
こここから1000行だけ
ランダムな行をとりだしたいのですがおねがいできないでしょうか?
10 ..
12 ..
100 ..
119...
1Gあるので一度にとりこめない
159:デフォルトの名無しさん
06/11/11 22:37:26
>>158
まずファイルの行数を数える。
次にサンプリングする行数を決める。
import random
lines = random.sample(xrange(line_of_file),1000)
あとはファイルを1行づつ読んでいって,inesにある行だけ取り込む。
160:デフォルトの名無しさん
06/11/12 02:00:42
チョイ変化球として・・・
その1Gのファイルの一行一行にそれほど意味が無いんだったら、
その一行ごとの各項目の平均とか標準偏差とかを出しておいて、
その数値に基づいて1000回ランダム処理することで、
1000行取り出してるように見せかけるとか・・・
161:デフォルトの名無しさん
06/11/12 06:00:13
> その数値に基づいて1000回ランダム処理することで、
> 1000行取り出してるように見せかけるとか・・・
kwsk
162:デフォルトの名無しさん
06/11/12 16:28:17
ある範囲内にある頻度でランダムに値をとる数値の組が欲しい
だけだったら、そのとおりに数値を生成してあげれば十分でしょうという
こと。ただし、1行が1人を表してて、数値がその人の属性を表してる
ような場合だと通用しないけど・・・
163:デフォルトの名無しさん
07/01/11 14:44:01
(゚∀゚≡゚∀゚) ?
164:デフォルトの名無しさん
07/01/23 00:05:57
静かだね。
165:デフォルトの名無しさん
07/01/27 04:38:54
アーヴェー、マリ〜〜〜〜ィアー♪
166:デフォルトの名無しさん
07/02/13 11:46:13
POPfileなどの迷惑メール検出ソフトを使って、
2chの工作員の発言を学習させて検出したいのですが
2chのインターフェイスをメールソフトにする方法ないのでしょうか?
futasukeみたいな感じで2chのアクセス方法にインターフェイスかませば
POPfileを経由して2chを診れるとおもうのですが
167:デフォルトの名無しさん
07/02/13 11:58:28
>>166
それpla(ry
168:デフォルトの名無しさん
07/02/13 16:26:56
2chブラウザの方に実装した方がスマートじゃない?
169:デフォルトの名無しさん
07/02/13 20:05:23
メーラー側で迷惑メール判定できるなら、dat を eml とか mbox とかに変換するのもありだね
170:デフォルトの名無しさん
07/02/13 20:16:31
gmailの迷惑メール分類機能とか使いたい場合は
本当に一度フォワードする必要がある
171:デフォルトの名無しさん
07/03/22 02:32:50
>>167
pyagger とかないの?
172:デフォルトの名無しさん
07/03/22 02:36:27
>>171
任せた
173:デフォルトの名無しさん
07/03/22 21:20:31
それplaggerでできるんでしょ?
174:デフォルトの名無しさん
07/03/30 10:35:19
宿題じゃないんですが、
初心者質問スレがないんで、お邪魔します。
ここのスクリプトなんですけど、
URLリンク(home.cfl.rr.com)
FIELD_TYPES=(
(0, 'X', 'Proprietary'), # no such type
(1, 'B', 'Byte'),
(1, 'A', 'ASCII'),
(2, 'S', 'Short'),
(4, 'L', 'Long'),
(8, 'R', 'Ratio'),
(1, 'SB', 'Signed Byte'),
(1, 'U', 'Undefined'),
(2, 'SS', 'Signed Short'),
(4, 'SL', 'Signed Long'),
(8, 'SR', 'Signed Ratio')
)
の部分で、
./EXIF.py: array assign: line 105: syntax error near unexpected token `(0'
./EXIF.py: array assign: line 105: ` (0, 'X', 'Proprietary'), # no such type'
と出やがります。
タブの使い方は問題なさそうなんですが、
これって文法的にどっか間違ってますか?
175:174
07/03/30 10:38:10
ごめんなさい。
#!/usr/bin/env python
がないだけでしたorz
176:デフォルトの名無しさん
07/03/30 10:38:45
ナ ゝ ナ ゝ / 十_" ー;=‐ |! |!
cト cト /^、_ノ | 、.__ つ (.__  ̄ ̄ ̄ ̄ ・ ・
,. -─- 、._ ,. -─v─- 、._ _
,. ‐'´ `‐、 __, ‐'´ ヽ, ‐''´~ `´ ̄`‐、
/ ヽ、_/)ノ ≦ ヽ‐'´ `‐、
/ / ̄~`'''‐- 、.._ ノ ≦ ≦ ヽ
i. /  ̄l 7 1 イ/l/|ヘ ヽヘ ≦ , ,ヘ 、 i
,!ヘ. / ‐- 、._ u |/ l |/ ! ! | ヾ ヾ ヽ_、l イ/l/|/ヽlヘト、 │
. |〃、!ミ: -─ゝ、 __ .l レ二ヽ、 、__∠´_ |/ | ! | | ヾ ヾヘト、 l
!_ヒ; L(.:)_ `ー'"〈:)_,` / riヽ_(:)_i '_(:)_/ ! ‐;-、 、__,._-─‐ヽ. ,.-'、
/`゙i u ´ ヽ ! !{ ,! ` ( } ' (:)〉 ´(.:)`i |//ニ !
_/:::::::! ,,..ゝ! ゙! ヽ ' .゙! 7  ̄ | トy'/
_,,. -‐ヘ::::::::::::::ヽ、 r'´~`''‐、 / !、 ‐=ニ⊃ /! `ヽ" u ;-‐i´
! \::::::::::::::ヽ `ー─ ' / ヽ ‐- / ヽ ` ̄二) /ヽト、
i、 \:::::::::::::::..、 ~" / ヽ.___,./ //ヽ、 ー
177:デフォルトの名無しさん
07/03/30 12:19:54
ワロた
178:デフォルトの名無しさん
07/04/01 00:24:27
エラーすら出ないはずじゃないのかなぁ・・・
その中途半端なエラーはなんなんだろう・・・
179:デフォルトの名無しさん
07/04/01 00:49:38
/bin/shをキックしたんでしょ
180:デフォルトの名無しさん
07/04/01 01:13:06
こんなことも分からない178に幸あれ...。
181:デフォルトの名無しさん
07/04/02 17:42:39
【 課題 】テキストファイル(URLリンク(uproda11.2ch-library.com))に含まれる
IPアドレス、時間、User-Agent、URLといったデータをそれぞれコンマで区切りファイルに出力せよ。
(URLの場合はディレクトリもコンマで区切る。)
【 補足 】テキストファイルは中国語で書かれたHTTPによるmp3ダウンロードのログファイルです。
Pythonのお勉強スレでみなさまのお力を借りながら自分で四苦八苦してコーディング
しましたが、URLに含まれるエスケープ文字を処理する段階で壁にぶち当たりました。
私が途中まで書いたプログラムは(URLリンク(uproda11.2ch-library.com))
です。非常に見難く恐縮ですがどうかよろしくお願いします。
182:デフォルトの名無しさん
07/04/02 19:56:25
>>181
import re
import urllib
rexp1 = re.compile(r"[ ][-][ ][-][ ][[]|[]][ ]\"|\"[ ]\"|\"[ ]|[ ]\"|\"|[ ]")
def convert(linein):
record = rexp1.sub(",", linein, 9).rstrip("\"").split(",")
urlpaths = record.pop(4).split("/")
def decode(x):
bin = urllib.unquote(x)
try:
return unicode(bin, "gbk")
except UnicodeDecodeError:
return unicode(bin, "utf-8")
record += map(decode, urlpaths)
out = u",".join([x.rstrip() for x in record]) + u"\n"
return out.encode("utf-8")
converted = (convert(x) for x in file("112115.txt", "r"))
file("112115.csv", "w").writelines(converted)
183:181
07/04/03 11:54:15
すみません、下から4行目のreturn out.encode("utf-8")はdecode関数の中にあるのでしょうか・・・
インデント構造も教えていただけませんか?
184:デフォルトの名無しさん
07/04/03 11:57:03
関数の中でない場所から return してどうしようというのだ
185:181
07/04/03 12:03:27
すみません、decode関数をconvert関数の内部にすると通りました。
【結果】文字化けしてしまう行が出てしまいました。
(変換後1行目は問題なく表示されているが、2行目は変換してしまった為に文字化け(澶栨枃鐢靛奖鍘熷)してしまった。)
もともとのログファイルがグチャグチャに保存しているのが元凶ですが、そこをうまく分別できないものでしょうか?
186:181
07/04/03 12:13:17
文字化けした文字列は以下の通りです。もとのエスケープ文字をunquoteすれば正常な文字列を得られるのですが、そこからunicodeで変換すると文字化けしてしまいます。
澶栨枃鐢靛奖鍘熷
姊︿腑鐨勪綘
缁忓吀鑻辨枃閲戞洸
璁稿穽
瀹岀編鐢熸椿
鏃跺厜
鍒濋洩缁濅笘鍚嶄级
187:181
07/04/03 15:28:16
ありがとうございます、自分のプログラムの無駄な部分が見えてきました。
もう一点、>>182のプログラムではUser-Agentの後ろのダブルクォーテーションが取れませんでした。
record = rexp1.sub(",", linein, 9).rstrip("\"").split(",")
のrstrip("\"")が機能していないようなのですが、私もなぜなのか分かりません。
188:デフォルトの名無しさん
07/04/03 20:13:14
すまん、専ブラだから空白消えるの忘れてた。
これで化けないと思うが、gbkでもutf-8でも解釈できる文字しかない部分があったら面倒だな。
import sys, re, urllib
# 適当
line_re = re.compile(r'^([\d.]+) - - \[(.*?)\] "(\w+) (.*?) (.+?)" (.+?) (.+?) "(.*?)" "(.*?)"$')
def convert(i, linein):
try:
record = list(line_re.match(linein.strip()).groups())
except AttributeError:
print "parse failed at line", i + 1
sys.exit(1)
url = record.pop(3).replace("/", "\n\n")
def decode(x):
bin = urllib.unquote(x)
try:
return unicode(bin, "utf-8")
except UnicodeDecodeError:
return unicode(bin, "gbk")
record += decode(url).split(u"\n\n")
out = u",".join([x.rstrip() for x in record]) + u"\n"
return out.encode("utf-8")
converted = (convert(i, x) for i, x in enumerate(file("112115.txt", "r")))
f = file("112115.csv.html", "w")
f.write("<pre lang='zh'>")
f.writelines(converted)
f.write("</pre>")
189:デフォルトの名無しさん
07/04/03 23:33:46
専ブラ使ってなくても
先頭の連続した空白は消えます
190:デフォルトの名無しさん
07/04/04 00:18:00
htmlだもん
191:181
07/04/04 00:41:54
>>188
すごい・・・文字化けが全部解消されました。
私自身プログラムも文字列処理もズブの素人のため、今からコードを参考に勉強していこうと思います。ありがとうございます。
後学のために教えていただきたいのですが、タグをつけてまで出力をhtmlにするのには何か利点があるからなのでしょうか?
192:デフォルトの名無しさん
07/04/04 00:45:07
ふふふ、良いところに気がつきましたね
193:デフォルトの名無しさん
07/04/04 00:50:58
ふふふ
ふふふふふふ
ふふふふふふふふふふふふふふふふふふふ
ふふふふふふふふふふふふふふふふふふふふふふふふふふふふふふふふふ
194:181
07/04/04 02:27:44
>>188
正規表現を「分割場所でコンマに変換(sub)する」のではなく、「データ自身をマッチさせてリストにする」に変えたんですね。
正規表現の部分は自分も自分のプログラムの中で一番美しくないと思っていたのでとても参考になりました。
ですがその次の
url = record.pop(3).replace("/", "\n\n")
の部分からが理解できません。
URLをディレクトリごとに二回の改行を入れるとdecode関数に値を渡す際に何か変化があるのでしょうか?
>>182のプログラムでunquote後のtryの中のgbkとutf-8を逆にすると>>188と同じ結果が得られるようなのですが・・・?
enumerate関数を使ったエラー箇所の表示も大変興味深いです。多謝多謝。
もう一つ>>182のプログラムから気になってはいたのですが、
converted = (convert(i, x) for i, x in enumerate(file("112115.txt", "r")))
といったforの特殊な使い方について解説されているサイトを教えていただけないでしょうか?
「はじめてのPython」やドキュメントを漁ってみたのですがどうもそれらしい記述が無いようなのです。
195:デフォルトの名無しさん
07/04/04 02:37:11
漁ってないに3000ペリカ
196:181
07/04/04 02:40:20
>>195
orz
もう一度漁ってきますッ
197:181
07/04/04 03:24:20
漁れました。orz
URLリンク(docs.python.org)
しかし入力するログファイルがあまりにも膨大だった場合、メモリの容量によっては>>188のconvertedに入りきらない可能性もあるのでは。それは杞憂なのでしょうか?
198:181
07/04/04 04:22:39
>>188で二回改行を入れてからunquoteする理由は、unquoteによって"/"がデコードされる可能性があるからですか?
各ディレクトリに分割する際、本来ディレクトリ名の一部であるはずの"/"でぶった切ってしまうのを二回改行で回避している、と理解すればよいのでしょうか。
なるほど
そろそろ寝ます。みなさんお忙しい中付き合っていただきありがとうございます。本当に有意義な一日でした。
199:182=188
07/04/04 10:39:30
>タグをつけてまで出力をhtml
単にブラウザで表示確認してただけ。俺が使ってるのはSJISエディタだから。
>url = record.pop(3).replace("/", "\n\n")
>二回改行を入れてからunquoteする理由は、unquoteによって"/"がデコードされる可能性が
そう。分割しないでデコードするのは、一度にデコードする量を増やして
エラーを出しやすくする(正しくないデコードをされる可能性を減らす)ため。
まあ予防的措置。完璧じゃないが、完璧にやるのは手間に見合わないので。
>unquote後のtryの中のgbkとutf-8を逆にすると>>188と同じ結果
>>182で化けたのは、utf-8でデコードすべきところをgbkでデコードしてエラーが出なかったから。
だから試す順を逆にした。他は前述の通り。
>converted = (convert(i, x) for i, x in enumerate(file("112115.txt", "r")))
これはリストの内包表記ではなくて、ジェネレータ式。
URLリンク(www.python.jp)
ジェネレータだから、convertedの時点ではまだfileは読まれていない。
enumerateもイテレータに対応しているから、writelinesがconverted.next()した時点で
readlineされ、convertされ、writeされる。メモリは一行分あればよい。
ジェネレータ関数の方が解りやすかったとは思うけど、行数が勿体無かったので。
200:デフォルトの名無しさん
07/04/07 20:49:24
良い生徒&酔い先生age
201:181
07/04/08 03:27:22
すみません、教授から新しい任務を与えられてしまい、やはりエンコードで躓いています・・・
テンプレにあるように丸投げ、ということではなくなってしまうのですが
【 課題 】gzipでそれぞれ圧縮された4つのログファイルに含まれるURLを読み込み、
ディレクトリの種類毎にそれぞれナンバリングして対応表のファイル及び
そのナンバーが記載されたログファイルを出力せよ。
4つのログファイルのうちの一つは(URLリンク(uproda11.2ch-library.com))
【 補足 】>>181のログファイルはこの圧縮されたログファイルの一部です。
(このログファイルは展開すると一つが75Mほどになります。)
URLの頭は全て「music」になっているので無視し、
その下の「Songs」を「1」、「Musics」を「2」とします。
さらにその下の階層では「Chinese」、「English」となっているので、
「/Songs/Chinese」が「11」、
「/Songs/English」が「12」
・・・という風になります。
URLが「/Songs」から開始する(つまり一桁目が「1」になる)ファイルを
時間順に上記のナンバーに変換し、新たなログファイルとして出力します。
またこのログファイルとは他に、ディレクトリ名及びファイル名の対応表
(Songs:1、Chinese:1、English:2)を出力します。
202:181
07/04/08 03:39:07
【 試した事1 】まず>>188のプログラムのファイル入力の部分を今回のログファイルに置き換えて実行。
【 結果 】UnicodeDecodeErrorが発生。
【 試した事2 】1585行目から文字化けを確認。decode関数内部における例外処理を以下のように変更して実行。
try:
return unicode(bin,"gb18030")
except UnicodeDecodeError:
try:
return unicode(bin,"utf-8")
except UnicodeDecodeError:
return unicode(bin,"gbk")
【 結果 】20677行目で正規表現とマッチせず終了。
"GET (URL) (Protocol)"の形ではなく"-"となっていることを確認。
1585行目からの文字化けも解消されず。
203:181
07/04/08 03:54:44
【 言い訳 】前回に引き続き無理難題を持ち込んでしまい、本当に頭が上がりません・・・
あまりにもログファイルがデタラメ(エンコードが統一しておらずサーバのディレクトリ構造も不明)
なので教授に取り次いでもらって、このログファイルを出力したプログラムを書いた中国人と喧嘩してきます。
素人目にもこのログファイルの解析は非効率であると思いますので、
1.ログファイルのエンコードの統一について
2.ディレクトリ構造
3.ログファイルの仕様
をそれぞれ聞いてこようと思います。プログラムを組む上でそれ以外に必要な項目があれば教えていただけますか?
204:181
07/04/08 04:01:36
すみません、アップロードに失敗しているようです・・・もう一度してきます・・・
205:181
07/04/08 04:34:55
4つのログファイルです。
URLリンク(skeeterhawk.googlepages.com)
URLリンク(skeeterhawk.googlepages.com)
URLリンク(skeeterhawk.googlepages.com)
URLリンク(skeeterhawk.googlepages.com)
206:デフォルトの名無しさん
07/05/03 05:38:59
pythonで宿題を出すような阿呆な教育機関って日本にあるの?
207:デフォルトの名無しさん
07/05/03 07:35:47
perlよりはいいんじゃね?
208:デフォルトの名無しさん
07/05/03 09:36:21
Rubyの学習が囚人の苦役になる時代だからなぁ
209:デフォルトの名無しさん
07/05/03 12:38:32
>206
むしろ大学とかは妙に使用率の低い言語好むから
Pythonくらいならまだマシなほうでわ
210:デフォルトの名無しさん
07/05/03 12:39:53
素人囚人の人たちの作ったスクリプトは使い物にならないんだろうなぁ。w
211:デフォルトの名無しさん
07/05/03 13:13:36
刑務所には娯楽もあまり無いだろうしむしろ上達するかも
212:デフォルトの名無しさん
07/05/03 13:48:10
レイパー、人殺しやコソ泥が使う言語Ruby.
213:デフォルトの名無しさん
07/05/03 13:59:39
出所後の就職対策でもあるらしいが、刑期が長いと出所する頃には廃れてたりしないだろうか
214:デフォルトの名無しさん
07/05/03 14:34:22
Rubyをちょっといじっただけの前科持ちを雇うとか信じられないな
215:デフォルトの名無しさん
07/05/03 14:49:46
中で開発するんじゃなかったっけ?
何をかはしらんが・・・
216:デフォルトの名無しさん
07/05/03 14:52:21
Perlはアニオタやオカマが作ってる言語。
217:デフォルトの名無しさん
07/05/03 15:00:14
>>215
出所後に雇うって明言しているところがあるんだよ
218:デフォルトの名無しさん
07/05/03 15:00:56
>>217
そうなのか・・・
219:デフォルトの名無しさん
07/05/03 15:32:27
やさぐれソフトウェア商会だなw
220:デフォルトの名無しさん
07/05/03 16:34:43
おまいらどんな宿題だよ(www
221:デフォルトの名無しさん
07/05/03 19:15:38
>>216
それは事実だから無問題
222:デフォルトの名無しさん
07/05/03 19:43:08
>>221
アニオタは分かるけどオカマは分からない
223:デフォルトの名無しさん
07/05/04 00:36:10
>>222
Audrey Tang(Pugs開発者)
224:デフォルトの名無しさん
07/05/04 00:44:36
そういえばRandal氏(ソートで有名な人)の有罪って取り消しになったんだってね
というかここはPythonスレ(ry
225:デフォルトの名無しさん
07/05/04 01:01:19
>>214
やー様経営のアダルトサイトとかフィッシングサイト構築とか需要あるかも・・・、って更生できないじゃんw
226:デフォルトの名無しさん
07/05/04 01:18:54
>>223
URLリンク(en.wikipedia.org)
これか?
山下達郎に似てね?(www
227:デフォルトの名無しさん
07/05/04 01:27:39
これは男か?
228:デフォルトの名無しさん
07/05/04 01:30:02
IQ180のオカマだ
229:デフォルトの名無しさん
07/05/04 01:50:21
IQ180って正規分布表に載ってない・・・と思って自分で計算したら
世界に1727人もいるんすね。
230:デフォルトの名無しさん
07/05/04 01:54:46
>>229
そのうちオカマのパーラーは何人だろ
231:デフォルトの名無しさん
07/05/04 01:58:08
IQ180くらいあればPerlでも読みやすいのかもしれんな
232:デフォルトの名無しさん
07/05/04 03:08:12
IQ180なのになんで中卒なんだろう・・・本と謎な人物だ・・・
233:デフォルトの名無しさん
07/05/04 03:12:43
オカマで天才だから一般人の下種な社会に適合できなかったのでは?
進学の必要性も感じなかったのかもね。
234:デフォルトの名無しさん
07/05/04 11:25:20
URLリンク(www.google.co.jp)
鳳たんって愛称で親しまれてるのね…
235:デフォルトの名無しさん
07/05/04 11:48:48
URLリンク(video.google.com)
すぐ動画が見れるとか便利な時代になったよなぁ…
236:デフォルトの名無しさん
07/05/04 12:11:51
URLリンク(pugs.blogs.com)
動画のお共に pdf (文字がつぶれてても大丈夫)
237:デフォルトの名無しさん
07/05/04 14:40:52
>>212 レイパー、人殺しやコソ泥が使う言語Ruby.
女囚たちに Ruby を教えて Web アプリを作らせるのだぞ
238:1
07/05/05 00:39:57
【 課題 】
未完成部分を完成し、適当な入力を与えて実行せよ。(検算も忘れない
こと。)
規格
◇引数は2 つの整数a, b.
◇関数の返り値は3つの要素を持つ配列[d; x; y] で、d = gcd(a; b) はa と
b の最大公約数、x, y はd = ax + by を満たす整数。
239:2
07/05/05 00:45:03
from math import
# d = gcd(a,b) = ax+by となる d,x,y を求め、
# 3つの要素を持つ配列 [d,x,y] を返り値にする
# 返り値の使い方は main routine の5行目以降を参照
def euclid(a,b):
if b == 0:
if a >= 0:
return [a,1,0]
else:
return [-a,-1,0]
else:
r0 = a
r1 = b
x0 = 1
x1 = 0
y0 = 0
y1 = 1
while r1 != 0:
q = r0/r1
##### ここを埋めよ #####
r0 = r1
r1 = r2
x0 = x1
x1 = x2
y0 = y1
y1 = y2
if r0 < 0:
r0 = -r0
x0 = -x0
y0 = -y0
return [r0,x0,y0]
240:3
07/05/05 00:46:12
# ここから main routine
print
print 'Euclid のアルゴリズム拡張版のテストプログラムです。'
a = input('a = ')
b = input('b = ')
ls = euclid(a,b)
d = ls[0]
x = ls[1]
y = ls[2]
print
print 'd = ',d
print 'x = ',x
print 'y = ',y
print '検算 :'
print '(',a,') * (',x,') + (',b,') * (',y,') = ',a*x + b*y
# 実行例
#
# Euclid のアルゴリズム拡張版のテストプログラムです。
# a = 5**30
# b = 3**50
#
# d = 1
# x = -89115256441822303775825
# y = 115608417198323432874
# 検算 :
# ( 931322574615478515625 ) * ( -89115256441822303775825 )
# + ( 717897987691852588770249 ) * ( 115608417198323432874 ) = 1
何方かお願いします.
241:デフォルトの名無しさん
07/05/05 01:31:36
PythonスレにはRubyへの劣等感で嫉妬が激しい人がいるのですね。
242:デフォルトの名無しさん
07/05/05 01:37:29
どんな言語のユーザにも変な人はいるでしょ
243:デフォルトの名無しさん
07/05/05 01:44:52
241みたいに日本語が不自由な人もいるんだね
244:デフォルトの名無しさん
07/05/05 02:21:11
>>226
へー、凄い人がいるもんだな。5年で100のプロジェクトってw
Chen, Chun-ming. "別叫我「先生」! 電腦怪傑唐宗漢變性 改名唐鳳 (Don't call me "Mister"! Tang Zonghan changes sex, name now Tang Feng)", Eastern Television, 2006-02-08. Retrieved on 2007-03-22.
なんかかっこいい。
245:デフォルトの名無しさん
07/05/05 02:24:01
立派なオカマだな
246:デフォルトの名無しさん
07/05/05 02:28:42
彼女こそオカマの中のオカマだ
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5382日前に更新/195 KB
担当:undef