Python の宿題ここで答えます Part 1
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2006/07/23(日) 01:18:151:問題文は自己省略せずに、直接全部貼り付けてください。
2:課題の「丸投げ」が最も好ましい提示法です。なるべく丸投げしてください。
3:数学問題は「○×法でせよ」だけでなく、その数式、前提条件も説明してください。
4:課題&宿題関連の質問はOKですが、それ以外の一般的な質問は禁止です。
5:もし回答プログラムがアップされたら、その返答と動作報告をお願いします。
【課題提示用テンプレ】
【 課題 】与えられた課題文をそのまま書きます 《必須》
【 用語 】数学用語、専門用語の意味、説明を書きます 《あれば必須》
【 期限 】提出期限、解答希望日があれば書きます
【 Ver 】希望するPythonバージョンがあれば書きます
【 補足 】課題について自分なりに補足する事、何か思う事があれば書きます。
丸投げでない場合は、途中までのソースとその経過報告、
質問点、疑問点を書きます(なるべく丸投げにしてください)
【回答プログラムの掲載場所】
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.cgi
0002デフォルトの名無しさん
2006/07/23(日) 01:49:48_..――――――.._ / ̄ ̄ ̄ ̄ ̄ ̄ ̄
/ \ <私は磯野波平だ。
/ \ |緊急事態につき私がこのスレを指揮する!
|||||||||||||||||| \ |
|||||||||||||||||||||| _,、-''''` /リ |
||||||||||_.._||||||||||| ,.--;==ミ 、 ___,.ノ /{.○-゙‐rV |
||||||,/`ヽヽト、 ´ {,.○-`‐‐ 、,.-ト| ,ノ |>>3サザエどもには、ちょうどいい目くらましだ。
||||∧ ゙i, `ヽ,r'´ ノ. ゙、--‐''´| |>>4・・・言葉をつつしみたまえ。
,,.く ヽ ゙i ヽ、 __,,、-'" 〉 / | 君は金正日の前にいるのだ。
ハ'´ | ゙i | ||||||||||||||||||| iヽ'" ̄ |>>5タマのアホ面には、心底うんざりさせられる・・・。
゙、゙i,_r'シニZ`ー┬ト'i _____ , | \ |>>6ばかもーん!
_゙V ヽ,.レ''ヽヽ `ー─''''"´ / |>>7いたずらばかりしおって!!
/./ ヽ/ ,」ヽ __,,、-─‐-、j |>>8よし3分間待ってやるの3本です。
/ r'´ --‐‐'''"´ ヽ \ (.r‐'''""゙゙`ヽ,`) |>>9毛が、毛がぁ〜!
l .| __,,、--`ヽ \ ___ヽ /´| |
j | ,⊥`ー 、 ゙! レ' | |
| | -‐''"´ ヽ、⊥ヽ| |彡'|
0003デフォルトの名無しさん
2006/07/23(日) 02:00:510004デフォルトの名無しさん
2006/07/23(日) 03:30:370005デフォルトの名無しさん
2006/07/23(日) 19:46:13そうか?
0006デフォルトの名無しさん
2006/07/24(月) 00:27:260007デフォルトの名無しさん
2006/07/24(月) 00:32:260008デフォルトの名無しさん
2006/07/24(月) 22:03:16マチクタビレタ〜
☆ チン 〃 ∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ヽ ___\(\・∀・) < 宿題まだ〜?
\_/⊂ ⊂_ ) \_____________
/ ̄ ̄ ̄ ̄ ̄ ̄ /|
| ̄ ̄ ̄ ̄ ̄ ̄ ̄| |
| 愛媛みかん |/
0009デフォルトの名無しさん
2006/07/24(月) 22:48:09第4回:差分法による一次元拡散方程式の求解
ttp://www.maths.uq.edu.au/courses/MATH3203/lectures/lecture4.pdf
第4回の課題
ttp://www.maths.uq.edu.au/courses/MATH3203/assignment1.pdf
上の課題を見てオモタんだけど、自分の学生時代を振り返っても
この手の課題って、ちゃんと講義を聞いていれば自明というか
考えるまでもない問題が多かったなあ。
0010デフォルトの名無しさん
2006/07/25(火) 22:33:07う〜ん、pythonで出されてるだけでほとんど数学(か物理?)
の課題のような・・・
スクリプト部分も代入と関数定義とfor文が一回使われてるだけで、
そのままcでもええやん、っていうスクリプトだし・・・
課題一行目の訳
>この宿題は、1次元と2次元の拡散現象の初期値、境界値問題を
>解くためのpythonスクリプトを実装して、数理モデルの安定極限を
>調査し、その解を数値的に研究することです。
なんかもう数学がきついし、
ていうか自分暇だなぁ・・・
0011デフォルトの名無しさん
2006/07/26(水) 11:38:41(1) 1Vの電圧で1Aの電流が流れているときの電力は何Wか。
(2) 1Wの電力で1秒間に発生する熱量は何Jか。
(3) 60Wの電球に100Vの電圧をかけたときに流れる電流は何Aか。
(4) 電熱線に5Vの電圧をかけたところ4Aの電流が流れた。
この状態で1分間たつと何Jの熱量が発生するか。
(5) 抵抗が2Ωの電熱線に5Aの電流を流した。
この状態で2分間立つと何Jの熱量が発生するか。
(6) 抵抗が3Ωの電熱線に10Vの電圧をかけた。
この状態で5分間立つと何calの熱量が発生するか。(ただし1J=0.24cal)
(7) 有る電熱線に100Vの電圧をかけたら2Aの電流が流れた。
このとき消費する電力は何Wか。
(8) 消費電力が1200Wの電気ポットを5分間使った。
このとき発生した熱量は何Jか。
0012デフォルトの名無しさん
2006/07/26(水) 13:02:200013デフォルトの名無しさん
2006/07/26(水) 13:13:22にはとても見えない・・・
0014デフォルトの名無しさん
2006/07/28(金) 10:46:410015デフォルトの名無しさん
2006/07/28(金) 12:16:250016デフォルトの名無しさん
2006/07/28(金) 13:31:080017デフォルトの名無しさん
2006/07/28(金) 17:07:310018デフォルトの名無しさん
2006/07/28(金) 20:40:16釣りか?俺は餓鬼に釣られた哀れなお魚サンなのか?
0019デフォルトの名無しさん
2006/07/29(土) 19:04:290020デフォルトの名無しさん
2006/07/30(日) 13:19:26【 用語 】新スレ、2ゲットの意味については、各自ググれ
【 期限 】提出期限は設けません。
【 Ver 】Python2.3から2.5いずれにおいても動作することが望ましい。
【 補足 】
0021デフォルトの名無しさん
2006/07/30(日) 13:38:32import urllib
for a, b in re.findall('(.*)\.dat\<\>(.*)\(1\)', urllib.urlopen('http://pc8.2ch.net/tech/subject.txt').read()): 2get(a)
0022デフォルトの名無しさん
2006/07/30(日) 13:39:51クッキー処理したりするのが面倒なんだけど
0023デフォルトの名無しさん
2006/08/02(水) 13:09:58もっとくわしく
0024デフォルトの名無しさん
2006/08/02(水) 15:46:42いたずら防止を潜り抜ける必要があるってこと
0025デフォルトの名無しさん
2006/08/02(水) 16:16:31だけど、いたずら防止とかのテクニックはPython固有の問題じゃないよね。
0026デフォルトの名無しさん
2006/08/02(水) 16:20:180027デフォルトの名無しさん
2006/08/04(金) 00:01:160028デフォルトの名無しさん
2006/08/04(金) 00:07:33みたいな注意書きが必要になるのかねぇ・・・
0029デフォルトの名無しさん
2006/08/04(金) 01:40:060030デフォルトの名無しさん
2006/08/04(金) 10:07:03【 課題 】
2chの任意のスレを複数登録・管理し、有益な情報が投稿されたときのみ通知、
所定のレスを指定して 2ch viewer 等を起動するプログラムをつくれ。
【 用語 】
各自ググってください。
【 期限 】
特にありませんが、なるはやでお願いします。
【 Ver 】
Python2.3から2.5いずれにおいても動作することが望ましい。
【 補足 】
スレの登録・管理についてはDBを使用しても構いませんし、
単純なテキストファイルでも問題ありません。
viewer のお気に入りと連動出来ると得点うpされます。
「有益な情報」の判定には、コテハン、あぽ〜んリストはもちろん、
自動文脈解析の手法等を用いて流れを嫁れば得点うpされます。
0031デフォルトの名無しさん
2006/08/08(火) 01:01:330032デフォルトの名無しさん
2006/08/08(火) 02:38:130033デフォルトの名無しさん
2006/08/08(火) 04:40:020034デフォルトの名無しさん
2006/08/08(火) 12:30:340035デフォルトの名無しさん
2006/08/08(火) 13:11:13じゃあ、お前がその解答つくってやれ
0036デフォルトの名無しさん
2006/08/08(火) 16:16:15宿題があるかどうかはしらんけど。
0037デフォルトの名無しさん
2006/08/08(火) 18:24:55宿題が出てきたらな
0038デフォルトの名無しさん
2006/08/08(火) 21:14:25【 課題 】キーボードから10個の数字を入力する。
隣同士の足し算をし、以下の例のように1の位の数字を次の行に出力し、
最後に残った数字を出力する。
(例)
数字を入力してください。
2359318473
2 3 5 9 3 1 8 4 7 3
5 8 4 2 4 9 2 1 0
3 2 6 6 3 1 3 1 (以下略
最後に残った数字は 2 です。
0039デフォルトの名無しさん
2006/08/08(火) 21:58:03この条件ってかなりきついな。
問題と無関係なところで苦労が多そうだ。
0040デフォルトの名無しさん
2006/08/08(火) 22:45:03def answer():
print "数字を入力してください。"
numstr = raw_input()
width = len(numstr)*2-1
nums = map(int,numstr)
while nums:
sp = " " * ((width - (len(nums)*2-1))/2)
print sp + " ".join(map(str,nums)) + sp
nums = map(lambda x,y:(x+y)%10, nums[:-1], nums[1:])
0041デフォルトの名無しさん
2006/08/08(火) 22:49:18# -*- coding: utf-8 -*-
def solv(ls, indent=0):
print ' ' * indent,
print ' '.join(str(x) for x in ls)
if len(ls)==1:
return ls[0]
else:
next_ls = []
prev = ls[0]
for n in ls[1:]:
next_ls.append((n+prev)%10)
prev = n
return solv(next_ls, indent+1)
if __name__ == '__main__':
# for windows
#import codecs, sys
#sys.stdout = codecs.getwriter('shiftjis')(sys.stdout)
print u'数字を入力してください。'
data = raw_input()
ret = solv([int(n) for n in data])
print u'最後に残った数字は %d です。' % ret
004241
2006/08/08(火) 23:02:12# for windows
#import codecs, sys
#sys.stdout = codecs.getwriter('shiftjis')(sys.stdout)
ちなみにうちの環境は、cygwin python, ActivePython, Linux(ja_JP.UTF-8)。
Cygwinが鬼門になりそうだけど。
0043デフォルトの名無しさん
2006/08/08(火) 23:09:54手許のActivePython 2.4.2 on Windows XPではコメントアウトのままで大丈夫だよ
もちろんソースはUTF-8で記述
Cygwinは駄目だね
004441
2006/08/08(火) 23:19:22本当だ。ActivePythonはいけますね。
cugwinはpythonに限らず、localeがちゃんと設定できないのが問題になる。
通常は locale.getdefaultlocale() で情報取れるんだけど、cygwinはNoneでした。
platform.platform() でCYGWINだとわかるから、これでcygwinかどうか判定して、cugwinなら決めうちにするしかないかな?
あと、codecs使わずにデフォルトのままでユニコード文字列が標準出力(変換)されるかどうかは、何を見ればいいんだろう?
もうすこし調べる・・・。
0045デフォルトの名無しさん
2006/08/08(火) 23:23:30ふつうに作ったら、そうならない?
004641
2006/08/08(火) 23:28:39macとかはわからんけど。
0047デフォルトの名無しさん
2006/08/08(火) 23:33:27全然しらんかった。
0049デフォルトの名無しさん
2006/08/09(水) 00:06:37普通はソースの最初の # -*- coding: ×× とソースのコードが一致すれば大丈夫
0050デフォルトの名無しさん
2006/08/09(水) 00:37:16import 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)
0051デフォルトの名無しさん
2006/08/09(水) 00:38:53y=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
0052デフォルトの名無しさん
2006/08/09(水) 01:00:35あ、そうなんだ。安心したよ。サンキュ
0053デフォルトの名無しさん
2006/08/09(水) 08:18:03print '¥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)])
0054デフォルトの名無しさん
2006/08/09(水) 08:22:38step = 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)])
0055デフォルトの名無しさん
2006/08/09(水) 11:01:45print '¥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])
0056デフォルトの名無しさん
2006/08/09(水) 11:13:360057デフォルトの名無しさん
2006/08/09(水) 12:38:320058デフォルトの名無しさん
2006/08/09(水) 12:57:34見やすいのか。。
0059デフォルトの名無しさん
2006/08/12(土) 13:42:05moe.homelinux.netの任意のスレッドに投稿されている絵を
ダウンロードするプログラムを作れ。
0060デフォルトの名無しさん
2006/08/12(土) 15:05:200061デフォルトの名無しさん
2006/08/12(土) 15:38:130062デフォルトの名無しさん
2006/08/12(土) 22:53:36>moe.homelinux.net
なんだかわかんないけど同意させられそうになったんでヤメタ。
0063デフォルトの名無しさん
2006/08/12(土) 22:59:17課題にはいいかなと。
0064デフォルトの名無しさん
2006/08/12(土) 23:03:110065デフォルトの名無しさん
2006/08/13(日) 05:00:18よくあるネタだと思うけど、俺みたいな初心者にはほどよい難易度ですた。
流量によってアクセス頻度を調整しているので鯖にも優しいよ( ´ー`)
0066デフォルトの名無しさん
2006/08/15(火) 22:21:31こんな感じで問題ないかな?
----------------
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してます。
一応実行してみたらちゃんと動いてるっぽいですが、見真似で書いたので不安です。
006766
2006/08/16(水) 09:55:26import imp
dame = imp.load_source("dame", "dame-file.txt")
0068デフォルトの名無しさん
2006/08/16(水) 09:58:41load_sourceは、obsoleteだけどね。
0069デフォルトの名無しさん
2006/08/23(水) 08:51:57【補足】提灯記事はいらない。是非問わず忌憚のない意見を臨む。mojix語禁止。
0070デフォルトの名無しさん
2006/08/23(水) 17:12:520071デフォルトの名無しさん
2006/08/23(水) 19:55:05まず最初に、公式ドキュメントで十分な人は買わなくても良い。
そうでない人は、はじPyより安くて軽いからおすすめ。
よく使うであろう標準モジュールの解説はもちろん、SQLiteとの接続モジュールや、
ElementTreeの解説もあって2.5以降も意識されている。
Web関連では、昔ながらのCGIだけでなく、Web2.0なことにも触れている。
Zopeまで含めているのはやり過ぎな気もするが、あって困るものじゃない。
その他、日本語関連の話題も抑えてあり総じて良い本といえる。
ただし、帯の「Google言語。」というコピーはいただけない。
0072デフォルトの名無しさん
2006/08/23(水) 21:54:49> 69 名前:デフォルトの名無しさん :2006/08/23(水) 08:51:57
> 【課題】みんPy読書感想文を書け。
> 【補足】提灯記事はいらない。是非問わず忌憚のない意見を臨む。mojix語禁止。
宣伝乙
0073デフォルトの名無しさん
2006/08/25(金) 00:38:03自称中級者になりました。
もう入門なんてレベルじゃないけど みんPy は「お布施」として購入しました。
0074デフォルトの名無しさん
2006/08/25(金) 00:53:58> 73 名前:デフォルトの名無しさん :2006/08/25(金) 00:38:03
> 実況中継見てPythonにそそられて、PDF版のチュートリアルから入門して
> 自称中級者になりました。
> もう入門なんてレベルじゃないけど みんPy は「お布施」として購入しました。
>
宣伝乙
0075デフォルトの名無しさん
2006/08/25(金) 01:24:350076デフォルトの名無しさん
2006/08/25(金) 01:27:030077デフォルトの名無しさん
2006/08/25(金) 08:59:080078デフォルトの名無しさん
2006/08/25(金) 12:25:09著者さん、Pythonに貢献してる人?
0079デフォルトの名無しさん
2006/08/25(金) 12:36:50もれなく著者の自宅に届きます。
0080デフォルトの名無しさん
2006/08/25(金) 12:37:38タダノリしてるだけじゃない。
0081デフォルトの名無しさん
2006/08/25(金) 19:17:30mojixさんってただ乗りしているの?
0082デフォルトの名無しさん
2006/08/25(金) 20:19:36みんPyはmojix??
0083デフォルトの名無しさん
2006/08/25(金) 20:28:420084デフォルトの名無しさん
2006/08/25(金) 21:36:22本を書くこと自体が非常に大きな貢献。こればかりは誰にでもできることではない。
0085デフォルトの名無しさん
2006/08/25(金) 22:08:300086デフォルトの名無しさん
2006/08/26(土) 02:35:360087デフォルトの名無しさん
2006/08/26(土) 02:41:520088デフォルトの名無しさん
2006/08/26(土) 18:34:35今まで便利に使わせてもらってただけにがっかりだ。
0089デフォルトの名無しさん
2006/08/26(土) 19:06:48おまえの頭がボロ
0090デフォルトの名無しさん
2006/08/26(土) 19:12:18激しく同意
>>88
どんな難しいスクリプト or 勘違いスクリプトなんだ?
0091デフォルトの名無しさん
2006/08/26(土) 19:31:13勉強しろよ
0092デフォルトの名無しさん
2006/08/26(土) 19:43:000093デフォルトの名無しさん
2006/08/26(土) 19:45:26おまえの頭がPerlレベル
0094デフォルトの名無しさん
2006/08/26(土) 19:49:120095デフォルトの名無しさん
2006/08/26(土) 20:29:37そうとうダメだぽ
0096デフォルトの名無しさん
2006/08/26(土) 20:31:25これがpythonicねぇとため息が出る。
0097デフォルトの名無しさん
2006/08/26(土) 20:33:51009888
2006/08/26(土) 21:05:27まさにそれなんだけどさw
一般的にPythonって、直感的に使えるし、難しいことはライブラリをimprot
すれば共通のインターフェイスで使える。
なのになんで日本語操作には勉強が必要なんだ、という叫びだな。
この変なトリックはパイ然としねーw
何、文字列型をユニコード型に変換ってw
0099デフォルトの名無しさん
2006/08/26(土) 21:06:540100デフォルトの名無しさん
2006/08/26(土) 21:27:070101デフォルトの名無しさん
2006/08/26(土) 21:52:08そんくらい面倒がらずにやるし、ましてや解かりませんとも言ってない。
「がっかり」だ、と言っているw
この仕様は、だせーよw
0102デフォルトの名無しさん
2006/08/26(土) 22:11:12具体的に要望を書いたほうが建設的だと思う
0103デフォルトの名無しさん
2006/08/27(日) 01:43:33でもそれを言ったら Ruby 以外の外国産言語はどれも大差ない.
内部コードはユニコード、入出力時に変換します.
変換しなければ基本はASCII扱いで、SJISとかは危険よ.
問題なのは各言語のコーデックの機能を使いこなせないやつの能力.
0104デフォルトの名無しさん
2006/08/27(日) 02:33:29いや、むしろ使いこなしのノウハウが誰にでも分かるように
まとまった形で広く公開されていないところが問題。
初心者に「とりあえずチュートリアル嫁」と言うのと同じぐらい簡単な
definitive なリソースが必要。
って言うのは簡単だけどな(苦笑
0105デフォルトの名無しさん
2006/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.
0106デフォルトの名無しさん
2006/08/27(日) 05:05:25まともな評価が出来る人がいると分かって、安心したよ。
0107デフォルトの名無しさん
2006/08/27(日) 09:48:540108デフォルトの名無しさん
2006/08/27(日) 11:07:57自分が理解できないからって(w
0109デフォルトの名無しさん
2006/08/27(日) 11:10:35�@地球の内部から地形を形成する力をなんと言うか
�A地球の外部から地形を形成する力をなんと言うか
�Bウェゲナーの大陸はパンゲアという1つの大陸から分かれたとする説を何というか
�C地球の外周は約何kmか
�D地球の表面は厚さ100kmほどのプレートに覆われ、これが移動するため、
現在のような大陸分布や山脈の形成が見られたとする説を何というか
�E先カンブリア代の地層がむき出しになっている地形を何というか
�F先カンブリア代の地層の上に古・中生代の地層が重なっているものを何というか
�G新期造山帯と古期造山帯と安定陸塊で最も古い地形はどれか
�H新期造山帯・古期造山帯・安定陸塊からでる地下資源をそれぞれ答よ
�I新期造山帯は大きく2つに分けられる。2つの造山帯(山系)の名称を答えよ
0110デフォルトの名無しさん
2006/08/27(日) 11:23:04スレ違い
0111デフォルトの名無しさん
2006/08/27(日) 11:35:04内的営力 外的営力 大陸移動説 40k プレートテクトニクス
楯状地 卓状地 安定陸塊 石油、石炭、鉄鉱石
アルプス・ヒマラヤ造山帯、環太平洋造山帯
'''
0112デフォルトの名無しさん
2006/08/27(日) 12:09:270113デフォルトの名無しさん
2006/08/27(日) 12:36:160114デフォルトの名無しさん
2006/08/27(日) 22:36:36ナカチャン… /:彡ミ゛ヽ;)ー、 . . .: : : :::::: :::::::::::::::::::::::::::::::::
/ :::/:: ヽ、ヽ、 ::i . .:: :.: ::: . :::::::::::::::::::::::::::::::::::::::
/ :::/;;: ヽ ヽ ::l . :. :. .:: : :: :: :::::::: : ::::::::::::::::::
 ̄ ̄ ̄(_,ノ  ̄ ̄ ̄ヽ、_ノ
,,,,,
/ ,' 3 `ヽーっ
l ⊃ ⌒_つ
`'ー---‐'''''
0115デフォルトの名無しさん
2006/08/27(日) 22:49:33そのうち飽きるさ。
0116デフォルトの名無しさん
2006/08/28(月) 18:23:410117デフォルトの名無しさん
2006/08/28(月) 20:46:570118デフォルトの名無しさん
2006/08/30(水) 23:55:410119デフォルトの名無しさん
2006/08/31(木) 00:45:21つか、このスレいらんね。
0120デフォルトの名無しさん
2006/08/31(木) 07:09:290121デフォルトの名無しさん
2006/08/31(木) 21:39:210122デフォルトの名無しさん
2006/08/31(木) 23:18:270123デフォルトの名無しさん
2006/08/31(木) 23:38:580124デフォルトの名無しさん
2006/09/01(金) 00:25:100125デフォルトの名無しさん
2006/09/01(金) 08:44:330126デフォルトの名無しさん
2006/09/04(月) 12:15:34>>125
は大学の先生ですね。それ以外はこういうこと書けないし。
大学の先生もPythonスレ見てるなんて、すごいぜpython
0127デフォルトの名無しさん
2006/09/04(月) 12:51:190128デフォルトの名無しさん
2006/09/04(月) 15:14:540129デフォルトの名無しさん
2006/09/05(火) 00:36:590130デフォルトの名無しさん
2006/09/05(火) 09:07:090131デフォルトの名無しさん
2006/09/05(火) 11:28:20やってみてダメだったら例外処理する
それがPython流
0132デフォルトの名無しさん
2006/09/05(火) 15:52:00ベストなバストはなにサイズ? 協力してちょ
http://human5.2ch.net/test/read.cgi/honobono/1157286711/l50
0133デフォルトの名無しさん
2006/09/08(金) 00:35:110134デフォルトの名無しさん
2006/09/08(金) 23:21:14ムネオたんへの皆のレスがなんとなくちくちくしてるよー。
0135デフォルトの名無しさん
2006/10/10(火) 23:24:09鈴木宗男?
0136デフォルトの名無しさん
2006/10/11(水) 00:06:070137デフォルトの名無しさん
2006/10/11(水) 00:06:480138デフォルトの名無しさん
2006/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)として、一画面毎、表示を止める。
という二つの場合がある。
【 期限 】とくにないっす。
【 補足 】
なんか大谷大学っていうとこのここ→http://tibet.que.ne.jp/otani/2004python/2004pythonmenu.html
から見付けてきたやつです。
お暇な方お願いしますm(_ _)m
0139デフォルトの名無しさん
2006/10/20(金) 19:54:49>Pythonでテキスト・ファイルを扱うときも、リストとして処理される
これはどうかと思う
0140デフォルトの名無しさん
2006/10/20(金) 20:35:50enumrator?
0141デフォルトの名無しさん
2006/10/22(日) 00:39:47表示させよ。
という問題です。宜しくお願いします。
0142デフォルトの名無しさん
2006/10/22(日) 11:57:380143デフォルトの名無しさん
2006/10/22(日) 12:47:31おい!
"と"、はいらなんじゃないかと
0144デフォルトの名無しさん
2006/10/22(日) 13:08:090145デフォルトの名無しさん
2006/10/22(日) 13:52:50どうみても自分のやりたいことを問題のふりして聞こうとしてるよな。
素直に聞いてりゃ誰か教えてくれただろうにねぇ。
0146デフォルトの名無しさん
2006/10/22(日) 14:56:040147デフォルトの名無しさん
2006/10/22(日) 15:40:18XList = []
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")
0148デフォルトの名無しさん
2006/10/22(日) 22:37:30動きました。どうもありがとうございます。
0149デフォルトの名無しさん
2006/10/27(金) 02:56:480150デフォルトの名無しさん
2006/10/27(金) 03:10:480151デフォルトの名無しさん
2006/11/04(土) 02:21:15map(lambda x: map(lambda y: y[0]+y[1],x),[zip(*x) for x in zip(a,b)])
0152デフォルトの名無しさん
2006/11/04(土) 16:14:330153デフォルトの名無しさん
2006/11/04(土) 17:33:140154デフォルトの名無しさん
2006/11/04(土) 22:47:45[[sum(y) for y in zip(*x)] for x in zip(a,b,c)]
0155デフォルトの名無しさん
2006/11/09(木) 10:12:32zip(*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]
0156デフォルトの名無しさん
2006/11/11(土) 02:08:14ジード分かってねーーーーーーーーーーー!!!
転置行列だよ転置行列!!
izipって何語???キモーーーーーーーーーーー!!!ヤメレーーー!
0157デフォルトの名無しさん
2006/11/11(土) 02:40:010158デフォルトの名無しさん
2006/11/11(土) 22:31:371Gぐらいあるテキストファイルから適当な行をランダムサンプリングしたい
中身はこんな感じ
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あるので一度にとりこめない
0159デフォルトの名無しさん
2006/11/11(土) 22:37:26まずファイルの行数を数える。
次にサンプリングする行数を決める。
import random
lines = random.sample(xrange(line_of_file),1000)
あとはファイルを1行づつ読んでいって,inesにある行だけ取り込む。
0160デフォルトの名無しさん
2006/11/12(日) 02:00:42その1Gのファイルの一行一行にそれほど意味が無いんだったら、
その一行ごとの各項目の平均とか標準偏差とかを出しておいて、
その数値に基づいて1000回ランダム処理することで、
1000行取り出してるように見せかけるとか・・・
0161デフォルトの名無しさん
2006/11/12(日) 06:00:13> 1000行取り出してるように見せかけるとか・・・
kwsk
0162デフォルトの名無しさん
2006/11/12(日) 16:28:17だけだったら、そのとおりに数値を生成してあげれば十分でしょうという
こと。ただし、1行が1人を表してて、数値がその人の属性を表してる
ような場合だと通用しないけど・・・
0163デフォルトの名無しさん
2007/01/11(木) 14:44:010164デフォルトの名無しさん
2007/01/23(火) 00:05:570165デフォルトの名無しさん
2007/01/27(土) 04:38:540166デフォルトの名無しさん
2007/02/13(火) 11:46:132chの工作員の発言を学習させて検出したいのですが
2chのインターフェイスをメールソフトにする方法ないのでしょうか?
futasukeみたいな感じで2chのアクセス方法にインターフェイスかませば
POPfileを経由して2chを診れるとおもうのですが
0167デフォルトの名無しさん
2007/02/13(火) 11:58:28それpla(ry
0168デフォルトの名無しさん
2007/02/13(火) 16:26:560169デフォルトの名無しさん
2007/02/13(火) 20:05:230170デフォルトの名無しさん
2007/02/13(火) 20:16:31本当に一度フォワードする必要がある
0171デフォルトの名無しさん
2007/03/22(木) 02:32:50pyagger とかないの?
0172デフォルトの名無しさん
2007/03/22(木) 02:36:27任せた
0173デフォルトの名無しさん
2007/03/22(木) 21:20:310174デフォルトの名無しさん
2007/03/30(金) 10:35:19初心者質問スレがないんで、お邪魔します。
ここのスクリプトなんですけど、
http://home.cfl.rr.com/genecash/digital_camera/EXIF.py
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'
と出やがります。
タブの使い方は問題なさそうなんですが、
これって文法的にどっか間違ってますか?
0175174
2007/03/30(金) 10:38:10#!/usr/bin/env python
がないだけでしたorz
0176デフォルトの名無しさん
2007/03/30(金) 10:38:45cト 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、 \:::::::::::::::..、 ~" / ヽ.___,./ //ヽ、 ー
0177デフォルトの名無しさん
2007/03/30(金) 12:19:540178デフォルトの名無しさん
2007/04/01(日) 00:24:27その中途半端なエラーはなんなんだろう・・・
0179デフォルトの名無しさん
2007/04/01(日) 00:49:380180デフォルトの名無しさん
2007/04/01(日) 01:13:060181デフォルトの名無しさん
2007/04/02(月) 17:42:39IPアドレス、時間、User-Agent、URLといったデータをそれぞれコンマで区切りファイルに出力せよ。
(URLの場合はディレクトリもコンマで区切る。)
【 補足 】テキストファイルは中国語で書かれたHTTPによるmp3ダウンロードのログファイルです。
Pythonのお勉強スレでみなさまのお力を借りながら自分で四苦八苦してコーディング
しましたが、URLに含まれるエスケープ文字を処理する段階で壁にぶち当たりました。
私が途中まで書いたプログラムは(ttp://uproda11.2ch-library.com/src/112116.py.shtml)
です。非常に見難く恐縮ですがどうかよろしくお願いします。
0182デフォルトの名無しさん
2007/04/02(月) 19:56:25import 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)
0183181
2007/04/03(火) 11:54:15インデント構造も教えていただけませんか?
0184デフォルトの名無しさん
2007/04/03(火) 11:57:030185181
2007/04/03(火) 12:03:27【結果】文字化けしてしまう行が出てしまいました。
(変換後1行目は問題なく表示されているが、2行目は変換してしまった為に文字化け(澶栨枃鐢靛奖鍘熷)してしまった。)
もともとのログファイルがグチャグチャに保存しているのが元凶ですが、そこをうまく分別できないものでしょうか?
0186181
2007/04/03(火) 12:13:17澶栨枃鐢靛奖鍘熷
姊︿腑鐨勪綘
缁忓吀鑻辨枃閲戞洸
璁稿穽
瀹岀編鐢熸椿
鏃跺厜
鍒濋洩缁濅笘鍚嶄级
0187181
2007/04/03(火) 15:28:16もう一点、>>182のプログラムではUser-Agentの後ろのダブルクォーテーションが取れませんでした。
record = rexp1.sub(",", linein, 9).rstrip("\"").split(",")
のrstrip("\"")が機能していないようなのですが、私もなぜなのか分かりません。
0188デフォルトの名無しさん
2007/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>")
0189デフォルトの名無しさん
2007/04/03(火) 23:33:46先頭の連続した空白は消えます
0190デフォルトの名無しさん
2007/04/04(水) 00:18:000191181
2007/04/04(水) 00:41:54すごい・・・文字化けが全部解消されました。
私自身プログラムも文字列処理もズブの素人のため、今からコードを参考に勉強していこうと思います。ありがとうございます。
後学のために教えていただきたいのですが、タグをつけてまで出力をhtmlにするのには何か利点があるからなのでしょうか?
0192デフォルトの名無しさん
2007/04/04(水) 00:45:070193デフォルトの名無しさん
2007/04/04(水) 00:50:58ふふふふふふ
ふふふふふふふふふふふふふふふふふふふ
ふふふふふふふふふふふふふふふふふふふふふふふふふふふふふふふふふ
0194181
2007/04/04(水) 02:27:44正規表現を「分割場所でコンマに変換(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」やドキュメントを漁ってみたのですがどうもそれらしい記述が無いようなのです。
0195デフォルトの名無しさん
2007/04/04(水) 02:37:110197181
2007/04/04(水) 03:24:20ttp://docs.python.org/tut/node7.html#SECTION007140000000000000000
しかし入力するログファイルがあまりにも膨大だった場合、メモリの容量によっては>>188のconvertedに入りきらない可能性もあるのでは。それは杞憂なのでしょうか?
0198181
2007/04/04(水) 04:22:39各ディレクトリに分割する際、本来ディレクトリ名の一部であるはずの"/"でぶった切ってしまうのを二回改行で回避している、と理解すればよいのでしょうか。
なるほど
そろそろ寝ます。みなさんお忙しい中付き合っていただきありがとうございます。本当に有意義な一日でした。
0199182=188
2007/04/04(水) 10:39:30単にブラウザで表示確認してただけ。俺が使ってるのは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")))
これはリストの内包表記ではなくて、ジェネレータ式。
http://www.python.jp/doc/release/tut/node11.html#SECTION00111000000000000000000
ジェネレータだから、convertedの時点ではまだfileは読まれていない。
enumerateもイテレータに対応しているから、writelinesがconverted.next()した時点で
readlineされ、convertされ、writeされる。メモリは一行分あればよい。
ジェネレータ関数の方が解りやすかったとは思うけど、行数が勿体無かったので。
0200デフォルトの名無しさん
2007/04/07(土) 20:49:240201181
2007/04/08(日) 03:27:22テンプレにあるように丸投げ、ということではなくなってしまうのですが
【 課題 】gzipでそれぞれ圧縮された4つのログファイルに含まれるURLを読み込み、
ディレクトリの種類毎にそれぞれナンバリングして対応表のファイル及び
そのナンバーが記載されたログファイルを出力せよ。
4つのログファイルのうちの一つは(ttp://uproda11.2ch-library.com/src/112376.gz.shtml)
【 補足 】>>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)を出力します。
0202181
2007/04/08(日) 03:39:07【 結果 】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行目からの文字化けも解消されず。
0203181
2007/04/08(日) 03:54:44あまりにもログファイルがデタラメ(エンコードが統一しておらずサーバのディレクトリ構造も不明)
なので教授に取り次いでもらって、このログファイルを出力したプログラムを書いた中国人と喧嘩してきます。
素人目にもこのログファイルの解析は非効率であると思いますので、
1.ログファイルのエンコードの統一について
2.ディレクトリ構造
3.ログファイルの仕様
をそれぞれ聞いてこようと思います。プログラムを組む上でそれ以外に必要な項目があれば教えていただけますか?
0204181
2007/04/08(日) 04:01:360205181
2007/04/08(日) 04:34:55ttp://skeeterhawk.googlepages.com/access_log.1.gz
ttp://skeeterhawk.googlepages.com/access_log.2.gz
ttp://skeeterhawk.googlepages.com/access_log.3.gz
ttp://skeeterhawk.googlepages.com/access_log.4.gz
0206デフォルトの名無しさん
2007/05/03(木) 05:38:590207デフォルトの名無しさん
2007/05/03(木) 07:35:470208デフォルトの名無しさん
2007/05/03(木) 09:36:210209デフォルトの名無しさん
2007/05/03(木) 12:38:32むしろ大学とかは妙に使用率の低い言語好むから
Pythonくらいならまだマシなほうでわ
0210デフォルトの名無しさん
2007/05/03(木) 12:39:530211デフォルトの名無しさん
2007/05/03(木) 13:13:360212デフォルトの名無しさん
2007/05/03(木) 13:48:100213デフォルトの名無しさん
2007/05/03(木) 13:59:390214デフォルトの名無しさん
2007/05/03(木) 14:34:220215デフォルトの名無しさん
2007/05/03(木) 14:49:46何をかはしらんが・・・
0216デフォルトの名無しさん
2007/05/03(木) 14:52:210217デフォルトの名無しさん
2007/05/03(木) 15:00:14出所後に雇うって明言しているところがあるんだよ
0218デフォルトの名無しさん
2007/05/03(木) 15:00:56そうなのか・・・
0219デフォルトの名無しさん
2007/05/03(木) 15:32:270220デフォルトの名無しさん
2007/05/03(木) 16:34:430221デフォルトの名無しさん
2007/05/03(木) 19:15:38それは事実だから無問題
0222デフォルトの名無しさん
2007/05/03(木) 19:43:08アニオタは分かるけどオカマは分からない
0223デフォルトの名無しさん
2007/05/04(金) 00:36:10Audrey Tang(Pugs開発者)
0224デフォルトの名無しさん
2007/05/04(金) 00:44:36というかここはPythonスレ(ry
0225デフォルトの名無しさん
2007/05/04(金) 01:01:19やー様経営のアダルトサイトとかフィッシングサイト構築とか需要あるかも・・・、って更生できないじゃんw
0226デフォルトの名無しさん
2007/05/04(金) 01:18:54ttp://en.wikipedia.org/wiki/Audrey_Tang
これか?
山下達郎に似てね?(www
0227デフォルトの名無しさん
2007/05/04(金) 01:27:390228デフォルトの名無しさん
2007/05/04(金) 01:30:020229デフォルトの名無しさん
2007/05/04(金) 01:50:21世界に1727人もいるんすね。
0230デフォルトの名無しさん
2007/05/04(金) 01:54:46そのうちオカマのパーラーは何人だろ
0231デフォルトの名無しさん
2007/05/04(金) 01:58:080232デフォルトの名無しさん
2007/05/04(金) 03:08:120233デフォルトの名無しさん
2007/05/04(金) 03:12:43進学の必要性も感じなかったのかもね。
0234デフォルトの名無しさん
2007/05/04(金) 11:25:20鳳たんって愛称で親しまれてるのね…
0235デフォルトの名無しさん
2007/05/04(金) 11:48:48すぐ動画が見れるとか便利な時代になったよなぁ…
0236デフォルトの名無しさん
2007/05/04(金) 12:11:51動画のお共に pdf (文字がつぶれてても大丈夫)
0237デフォルトの名無しさん
2007/05/04(金) 14:40:52女囚たちに Ruby を教えて Web アプリを作らせるのだぞ
02381
2007/05/05(土) 00:39:57未完成部分を完成し、適当な入力を与えて実行せよ。(検算も忘れない
こと。)
規格
◇引数は2 つの整数a, b.
◇関数の返り値は3つの要素を持つ配列[d; x; y] で、d = gcd(a; b) はa と
b の最大公約数、x, y はd = ax + by を満たす整数。
02392
2007/05/05(土) 00:45:03# 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]
02403
2007/05/05(土) 00:46:12print 'Euclid のアルゴリズム拡張版のテストプログラムです。'
a = input('a = ')
b = input('b = ')
ls = euclid(a,b)
d = ls[0]
x = ls[1]
y = ls[2]
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
何方かお願いします.
0241デフォルトの名無しさん
2007/05/05(土) 01:31:360242デフォルトの名無しさん
2007/05/05(土) 01:37:290243デフォルトの名無しさん
2007/05/05(土) 01:44:520244デフォルトの名無しさん
2007/05/05(土) 02:21:11へー、凄い人がいるもんだな。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.
なんかかっこいい。
0245デフォルトの名無しさん
2007/05/05(土) 02:24:010246デフォルトの名無しさん
2007/05/05(土) 02:28:420247デフォルトの名無しさん
2007/05/05(土) 02:31:49Pythonを使えばもっと生産的になれるのに!
彼はバカなんだよきっと!
0248デフォルトの名無しさん
2007/05/05(土) 02:43:45○彼女
0249デフォルトの名無しさん
2007/05/05(土) 02:46:29頭が良すぎてパズルみたいな言語でないと楽しめないのかも
0250デフォルトの名無しさん
2007/05/05(土) 06:00:210251デフォルトの名無しさん
2007/05/05(土) 06:05:40通常のgcdなら
def gcd(n, m): return n if m==0 else gcd(m, n%m)
0252未完成部分を完成し、適当な入力を与えて実行せよ。
2007/05/05(土) 16:39:37r2=r0-q*r1
x2=x0-q*x1
y2=y0-q*y1
0253デフォルトの名無しさん
2007/05/06(日) 12:03:16ありがとうございましたm(_ _)m
0254デフォルトの名無しさん
2007/05/07(月) 11:58:42ttp://procrast.blog82.fc2.com/blog-entry-8.html
それで次にここのページの sample を動かしてみようとしたのですが
ttp://scipy.dip.jp/index.php?F2PY
コンパイルオプション -c を付けてコンパイルすると、
C:\Python25\Lib\site-packages\f2py2e>f2py -c -m sample1 sample1.f
Traceback (most recent call last):
File "C:\Python25\Lib\site-packages\f2py2e\f2py.py", line 4, in <module>
f2py2e.main()
File "C:\Python25\Lib\site-packages\f2py2e\f2py2e.py", line 677, in main
run_compile()
File "C:\Python25\Lib\site-packages\f2py2e\f2py2e.py", line 605, in run_compile
from scipy_distutils.system_info import get_info
ImportError: No module named scipy_distutils.system_info
となり うまく scipy_distutils が見つけられないようでした
そこで オプションの -c をはずしてもう一度挑戦してみたところ(…続きます)
0255254
2007/05/07(月) 12:01:12Reading fortran codes...
Reading file 'sample1.f'
Post-processing...
Block: sample1
Block: func1
Block: func2
Post-processing (stage 2)...
Building modules...
Building module "sample1"...
Constructing wrapper function "func1"...
func1(x,y)
Constructing wrapper function "func2"...
func2(x,y,[n])
Wrote C/API module "sample1" to file "./sample1module.c"
となり sample1module.c というファイルを作成されているのを
確認することをできたのですが、これを python側 でどうやって
import して使用すれば良いのか、わかりません。
使用環境は、windows xp + python2.5 です
どうぞよろしくお願い致します m(_ _)m
0256254
2007/05/07(月) 14:28:11Description: This program generates a Python C/API file (<modulename>module.c)
that contains wrappers for given fortran functions so that they
can be called from Python. With the -c option the corresponding
extension modules are built.
どうやら -c option を付けないと駄目なようなので
>ImportError: No module named scipy_distutils.system_info
上のエラー出力をヒントにして
Windows users might be interested in Win32 installer for F2PY and
Scipy_distutils (these installers are built using Python 2.3):
2.x/F2PY-2-latest.win32.exe
2.x/scipy_distutils-latest.win32.exe <- これをインストールするのを忘れていました…orz
インストールすると上手く処理が動き始めました(…続きます)
0257254
2007/05/07(月) 14:46:59No module named msvccompiler in numpy.distutils, trying from distutils..
customize MSVCCompiler
customize MSVCCompiler using build_ext
0
Could not locate executable g77
Could not locate executable f77
Could not locate executable gfortran
Could not locate executable f95
customize GnuFCompiler
Could not locate executable f77
Executable f77 does not exist
Could not locate executable f77
Executable f77 does not exist
Could not locate executable f77
Executable f77 does not exist
Could not locate executable ifort
…
このようなエラーが出力されているのが確認できました。
windows で f2py をコンパイルするには f77 (Macだと gfortran?, Linux だと g77? )
などの fortranのコンパイラも必要なのでしょうか?
0258デフォルトの名無しさん
2007/05/07(月) 14:54:400259254
2007/05/07(月) 15:05:05f2py2e.py
Description: This program generates a Python C/API file (<modulename>module.c)
that contains wrappers for given fortran functions so that they
can be called from Python. With the -c option the corresponding
extension modules are built.
-------------------------------------------------------------------
F2PY: Fortran to Python interface generator
http://cens.ioc.ee/projects/f2py2e/
Of course, to build extension modules, you'll need also working
C and/or Fortran compilers installed
必要なようでした orz
[SciPy-user] Building scipy without fortran compiler on Windows using MSVC C++ Toolkit compiler
http://projects.scipy.org/pipermail/scipy-user/2005-October/005339.html
>IIRC, you can't link C++ code compiled with mingw with C++ code that was
>compiled with MSVC. The C++ ABIs are different. However, it should be
>possible to have both mingw-compiled C and FORTRAN extension modules and
>MSVC-compiled C++ extension modules in the same process.
mingw というので sample1module.c のほうコンパイルしないと駄目なのでしょうか?
C言語に関する知識が豊富でないと上手くやるのは難しいでしょうか?
0260254
2007/05/07(月) 15:20:22http://spdg1.sci.shizuoka.ac.jp/grwinlib/platforms.html
MinGW-2.0 MinGW g77 gcc / g++ × ○
gcc-2.95.2-mingw32 (MSVCRT) mingw32m g77 gcc / g++ × ○ *3
gcc-2.95.2-mingw32 (CRTDLL) mingw32 g77 gcc / g++ × ○ *3
*3 Mumit Khan による MinGW の旧版
似たようなのが幾つかあることを確認できました。
f2py を動かすには、どれをインストールすれば良いのでしょうか?
0261254
2007/05/07(月) 15:34:36http://www2.atwiki.jp/ccw/pages/5.html
すみません。もう少し調べてから書き込むべきでした orz
mingw というのは visual studioみたいな統合開発環境みたいなものなのでしょうか?
gcc-2.95.2-mingw32 (MSVCRT) mingw32m g77 gcc / g++
gcc は gnu c comliler の略ですよね…Cのコンパイラなのに
fortran もコンパイルできる… よくわからないです…
0262デフォルトの名無しさん
2007/05/07(月) 15:42:34> gcc は gnu c comliler の略ですよね
違います。もっと落ち着いてちゃんと調べましょう。
0263デフォルトの名無しさん
2007/05/07(月) 16:03:31何ゆえ F2PY を使おうとしているの?
SciPy や NumPy を使いたいだけなら Fortran コンパイラの出る幕などないと思うのだが。
禿しく間違った方向に進んでいる希ガス。
0264254
2007/05/07(月) 16:08:56GNUコンパイラコレクション - Wikipedia
http://ja.wikipedia.org/wiki/GNU%E3%82%B3%E3%83%B3%E3%83%91%E3%82%A4%E3%83%A9%E3%82%B3%E3%83%AC%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3
>当初はCコンパイラとして開発され、GCCは GNU C Compiler を意味していた。しかし、
>もともと多言語を想定して設計されており、 GNU C Compiler と呼ばれていたときでも
>多くの言語をサポートしていた。現在でも GNU C Compiler の意味で「GCC」と呼ぶ
>ことも多い(ちなみに GNU C Compiler の実行ファイルの名称もgccである)。
>なお、GNU C++コンパイラをG++、GNU JavaコンパイラをGCJ、GNU AdaコンパイラをGNATと呼ぶ。
gnu compiler collection (広義のgcc)
- gnu c compiler (狭義のgcc)
- gnu c++ compiler (g++)
- gnu java compiler (gcj)
- gnu ada compiler (gNAT)
- gnu fortran compiler (g77)
コレクションだったのですね orz
-------------------------------------------------------------------------
MinGW - Wikipedia
http://ja.wikipedia.org/wiki/MinGW
>MinGW(Minimalistic GNU for Windows)
>または、Mingw32 は GNU ツールチェーン(GCCなど)の Windows 移植版である。
------------------------------------------------------------------------
つまるところ gnu compiler collection (not gnu c compiler) の
windows移植版が MinGW なのですね. 勉強になりまた。ありがとです ><
0265デフォルトの名無しさん
2007/05/09(水) 19:55:47実行しても doctest の結果が表示されないのですが
どうしてでしょうか?
# a.py
import doctest
def foo(a, b):
'''return a+b
>>> foo(10, 1)
12'''
return a+b
doctest.testmod()
は、うまく実行できていました…
0266265
2007/05/09(水) 20:33:56表示されないんですね orz 自己解決スマソ。
0267デフォルトの名無しさん
2007/05/13(日) 18:13:11# -- coding: cp932 --
import urllib2
url='http://www.yahoo.co.jp/'; print url
try:
print 'try try try'
f=urllib2.urlopen(url) ##urlをオープン
except IOError, (errno, strerror): ##オープンできないときは
out= 'web error'
print out
else: ##オープンできたら
txt=f.read() ##htmlファイルを読み込む
print txt
> except IOError, (errno, strerror): ##オープンできないときは
>ValueError: need more than 1 value to unpack
というエラーが出てしまい上手くゆきませんでした。
環境は、winxp, python2.5 です。どうぞよろしくお願い致します。
0268デフォルトの名無しさん
2007/05/13(日) 20:56:17except IOError, e: # eはIOErrorオブジェクト
print e
0269デフォルトの名無しさん
2007/05/13(日) 22:04:40urllib2.urlopen の失敗時に発生している例外が IOError なら
> except IOError, (errno, strerror): ##オープンできないときは
のようにタプルとみなしてアンパック代入できるんだけど、
実際に発生しているのは IOError のサブクラスである URLError のインスタンス。
これはなぜか IOError のサブクラスのくせにタプルとみなせない。
ただ URLError の reason 属性を使えばこう書ける:
except urllib2.URLError, urlerror:
errno, strerror = urlerror.reason
0270デフォルトの名無しさん
2007/05/14(月) 00:42:07except Exception, e:
みたいに一般的に書いとくのがいいんジャマイカ。
0271デフォルトの名無しさん
2007/05/14(月) 01:53:29print e
>>> <urlopen error (11001, 'getaddrinfo failed')>
と書くか、
from urllib2 import URLError して
except URLError, urlerror: # urlerrorはURLErrorオブジェクト
errno, strerror = urlerror.reason
print errno, strerror
>>> 11001 getaddrinfo failed
と書けば大丈夫。
# URLError is a sub-type of IOError, but it doesn't share any of
# the implementation. need to override __init__ and __str__
http://www.koders.com/python/fidB6D47AFC04CE4977066FF7A79FC593FBBB9562C6.aspx#L139
>>269
このことですよね…。何となく例外の引数は一つ以上付けないほうが
無難そうな気がしました。というかあまり他の言語でも例外の引数
を一つ以上持ってるのを見たことがないですし。
どうもありがとうございました!
0272デフォルトの名無しさん
2007/05/14(月) 01:54:41よくわからないときは、Exceptionでやってしまうのもありでしょうか?
何か、それはそれで問題が生じそうな気もするようなしないような…(^^;)
0273デフォルトの名無しさん
2007/05/14(月) 03:03:16複数の例外が起こる状況で、例外毎に処理を変えたいときは except 節を複数書く必要があるけど、
一律にキャッチしたいだけなら except Exception, e: または except: だけで十分かと。
0274デフォルトの名無しさん
2007/06/01(金) 13:47:430275デフォルトの名無しさん
2007/06/01(金) 14:58:43その数が、秘密の数と一致していたら、「上がり」と表示して終了する。
もし、秘密の数よりも大きければ、「大きすぎ」と表示して、再度入力をしてもらう。
逆に小さければ、「小さすぎ」と表示して、再度入力をしてもらう。
秘密の数は、プログラムの最初で変数に代入しておく。
【 補足 】某大学サイトでpythonを学習しているのですが(当方、大学生ではありません)、
下のどこがいけないのかわかりません・・・
文末の「;」はつけないと何となく不安なのでつけてあります。
# 数当てゲーム
print "数当てゲーム\n";
question = "半角で一桁の数字を入力して下さい。";
answer = '8';
a = answer;
input = raw_input(question);
while input != '':
if input == a:
print '上がり。';
break;
elif input < 9;
print '小さすぎ。/n';
input = raw_input(question);
else:
print '大きすぎ。\n';
input = raw_input(question);
0276デフォルトの名無しさん
2007/06/01(金) 15:05:16じゃなくて
elif input < a:
だろ
0277デフォルトの名無しさん
2007/06/01(金) 15:07:54>>276
ありがとうございます。
0278デフォルトの名無しさん
2007/06/01(金) 15:12:34Enter: 8
>>> input
'8'
>>> input == 8
False
>>> int(input) == 8
True
がんばれー
0279デフォルトの名無しさん
2007/06/01(金) 17:00:240280デフォルトの名無しさん
2007/06/01(金) 19:40:17で、この場合raw_inputよりもinputを使った方が簡単。
0281デフォルトの名無しさん
2007/06/03(日) 06:24:50...
>>> myfunc()
__import__('os').unlink(<漏れの大事なファイル>)
None
便利なファイルシェルだな。
0282デフォルトの名無しさん
2007/06/03(日) 07:02:25> input( [prompt])
> eval(raw_input(prompt)) と同じです
兄貴と呼ばせてくれ >>281
0283デフォルトの名無しさん
2007/06/10(日) 13:48:47のはどう書きますか?
0284デフォルトの名無しさん
2007/06/10(日) 15:13:44ary = array.array('f')
fo = file('test.bin', 'rb')
while True:
try:
ary.fromfile(fo, 1)
except EOFError:
break
print ary.pop()
fo.close()
0285383
2007/06/11(月) 18:27:37しかし何も起こりませんでした。
インストしたpythonは
python-2.5.msi
pywin32-210.win32-py2.5.exe
0286デフォルトの名無しさん
2007/06/11(月) 19:44:330287デフォルトの名無しさん
2007/06/11(月) 21:07:35その4バイトのフォーマットが何なのか書かないとどうにもならないよ
ところで1バイトずつ読み込んでそれを表示するのなら書けるんだよね?
0288285
2007/06/12(火) 08:20:09想定は3Dモデルですが、公開されてるフォーマットでは
無い為とりあえず頂点のみ収めたファイルを指定しました。
バイナリの読み込み自体わかりません。スミマセン
0289デフォルトの名無しさん
2007/06/12(火) 11:06:260290デフォルトの名無しさん
2007/06/12(火) 12:03:39単純にCのfloat型をファイルに書き出したものなら>>284のでいけるはず
まず>>284のがちゃんと動くようにするのが先決だね
・時下げ部分の全角空白を半角空白に置き換える
・その3Dデータを test.bin の名前でいっしょに置く
をしている?
それをして動かないなら動かないなりにエラーメッセージが出ているはずなので
そのエラーメッセージを書いてください
0291288
2007/06/12(火) 14:52:16丁寧にありがとう御座います。<(_ _)>
> except EOFError:
ここで止まっているようでした。
ファイルはtest.binでC:\(あれ? \打った時に確定されてIMEがオフになる〜)
に置きました。 これか?
取り急ぎお礼だけ。
0292291
2007/06/12(火) 15:18:16半角空白にしてたんですが、位置が悪かったようです。
>>284と同じインデント? で動くようになりました。(PythonWin上)
実はPOSERで遊びたい3Dモデルがあるんですが、対応プラグイン
もプラグイン書くにしてもC言語は難しそう。
そこでインタプリタなら出来るんじゃないかと思い……。
4MBのファイル読み込ませたんだけど20分経っても終わらないや……。
0293デフォルトの名無しさん
2007/06/13(水) 03:24:290294292
2007/06/13(水) 20:02:46えーと……ILUUSIONってとこのゲームのデータです。
今現在有志の手によりMetasequoiaのmqo形式での
読み書きは出来ます。
Metasequoiaがモーション対応してない為頂点カラー
にエンベロープデータを保持させるという特殊な手法
なので頂点の削除追加が困難になっています。
手持ちのPoserとXSI fndがPython対応しているんで
ちょっと夢見てしまったのでした。
0295デフォルトの名無しさん
2007/06/13(水) 20:59:130296デフォルトの名無しさん
2007/06/13(水) 21:00:510297デフォルトの名無しさん
2007/06/16(土) 18:20:53なのと、自分が他の課題で常に手一杯なので、PYTHONの知識については皆無に等しいです。
ですが、期限がとうとう来週までに迫ってしまいました。。。
課題は自由なのですが、「自分又は他者にとって有用性のあるもの」
とのことなので、以下のような課題を設定しました。どなたか分かる方
がいらっしゃれば、丸投げですが是非よろしくお願いしますm(..)m
□課題
「ホームページ(自分が作りました)の掲示板に書き込みがされたら、
自動的にメーリングリストのアドレス宛に更新通知を送り、ついでにその掲示板のアドレスもそのメールに記す。」
というものです。
出来ればわかり易く「ここにHPのアドレスを入れる」とか「ここにメーリングリストのアドレスを入れる」
等のコメントを加えていただければと思いますm()m。
□提出期限
6月25日(月)
です。よろしくお願いします。
0298デフォルトの名無しさん
2007/06/16(土) 18:23:38自分のレベルを考えたらもっと楽なものにしないとボロが出るぞ。
0299デフォルトの名無しさん
2007/06/16(土) 18:25:15じゃあ、何ならできるんだ?
Perlなら、WebProgバリバリか?
0300デフォルトの名無しさん
2007/06/16(土) 18:38:16掲示板プログラムはすでにあるの?
それを改造しないでPythonで定期的にチェックしてメール飛ばすの?
0301デフォルトの名無しさん
2007/06/16(土) 19:15:360302デフォルトの名無しさん
2007/06/16(土) 19:17:520303デフォルトの名無しさん
2007/06/16(土) 19:47:370304updatechecker.py
2007/06/16(土) 20:01:59# -*- coding: Shift_JIS -*-
import urllib, smtplib
from email.MIMEText import MIMEText
from email.Charset import Charset
def main():
# 掲示板の URL
bbs = "http://pc11.2ch.net/test/read.cgi/tech/1153585095/l50"
# 通知メールの宛て先
mail = "****@****.****.ne.jp"
# SMTP サーバのホスト名
smtp = "mail.****.****.ne.jp"
if updated(bbs):
print "updated"
notify(mail, smtp, bbs)
else:
print "not updated"
def updated(URL):
CACHE_FILE = "updatechecker.dat"
# キャッシュファイルに保存したページ内容を取り出す
try:
file = open(CACHE_FILE, "rb")
cached_contents = file.read()
file.close()
except IOError:
cached_contents = None
0305304の続き
2007/06/16(土) 20:04:38file = urllib.urlopen(URL)
contents = file.read()
file.close()
# 現在のページ内容をキャッシュファイルに保存する
file = open(CACHE_FILE, "wb")
file.write(contents)
file.close()
# ページ内容が変わっていたら更新アリと判定 (真偽値を返す)
return contents != cached_contents
def notify(address, server, URL):
text = u"掲示板が更新されました。\n" + unicode(URL, "ascii")
charset = Charset("ISO-2022-JP")
msg = MIMEText(text.encode(charset.input_codec, "replace"))
msg.set_charset(charset)
msg["Subject"] = "Update notification from updatechecker.py"
msg["From"] = '"updatechecker.py" <%s>' % address
msg["To"] = address
smtp = smtplib.SMTP()
smtp.connect(server)
smtp.sendmail(msg['From'], msg['To'].split(), msg.as_string())
smtp.quit()
if __name__ == "__main__":
main()
0306デフォルトの名無しさん
2007/06/16(土) 20:48:06キャッシュと比べるっていうのは思いつかなかった。
(掲示板がどんなHTMLを吐くかも不明なのに
更新チェックなんて無理とか思ってた)
勉強になったよ、ありがとー>>304
0307デフォルトの名無しさん
2007/06/16(土) 20:59:56正直今の甘ったれた根性で社会に出るとお前個人じゃなくて同僚の迷惑になるのでそのまま留年してな
0308デフォルトの名無しさん
2007/06/16(土) 23:52:11>297 が講義に出席してなかったとかじゃなくて?
0309デフォルトの名無しさん
2007/06/17(日) 00:01:00とかそういう感じじゃないかなぁ・・・
0310デフォルトの名無しさん
2007/06/17(日) 00:23:450311デフォルトの名無しさん
2007/06/17(日) 07:47:19掲示板の内容以外のものが、動的に生成されてるとだめじゃない?
テキスト広告とか、参照元とか表示してるところあるじゃん。
2chなら、おすすめ2chとか。
0312デフォルトの名無しさん
2007/06/17(日) 08:42:32そのぶぶんだけ比較対象からはずせばいいだけジャン。
0313306
2007/06/17(日) 09:53:57もちろん広告などが入ったらアウトだけど、
それは出題者が示して無いから仕方ない。
大抵の掲示板にはLast-ModifiedやETagは使えないから
>>304のアプローチがベストじゃないかな。
実際の利用時には、>>312が書いてくれたように
余分な箇所を削るフィルタを掲示板ごとに書くことになると思う。
あと、おすすめ2chは、datのLast-Modifiedを比較すればOK。
0314デフォルトの名無しさん
2007/06/17(日) 12:31:280315デフォルトの名無しさん
2007/06/17(日) 15:05:090316デフォルトの名無しさん
2007/06/17(日) 16:15:03いやRSSは最初はサイトサマリー
blog のエントリーの更新を通知する、程度まで援用されてはいるけど
bbs の書き込みをRSSで配信している例なんてほとんど見ないよ
0317デフォルトの名無しさん
2007/06/17(日) 16:32:02teacupはRSS配信してるみたいね
0318デフォルトの名無しさん
2007/06/17(日) 19:07:16BBSというシステムがあまり最近の流行ではないから、古いシステムをそのまま使ってることが
多いというだけだと思う。いまどき新規に開発するBBSでRSSに対応しないというのはあり得ない。
0319デフォルトの名無しさん
2007/06/18(月) 01:16:36blog のコメント欄なんかは RSS 配信しない事が多いね
まあどこまでを BBS と言うかによるわけだけど
0320デフォルトの名無しさん
2007/06/18(月) 20:25:190321デフォルトの名無しさん
2007/06/18(月) 20:28:010322デフォルトの名無しさん
2007/06/19(火) 06:20:260323デフォルトの名無しさん
2007/06/19(火) 15:13:28それは確かにそうだ。
たまには、コメントやトラックバックのRSSを配信できるシステムもあるが、主流ではないか
0324デフォルトの名無しさん
2007/06/20(水) 11:16:36配列の配列を引数にとって、行列を入れ替える関数って
どう書けばいいでしょうか?
具体的には
[
[ 1, 2, 3, 4],
[ 5, 6, 7, 8],
[ 9,10,11,12],
]
を渡すと
[
[ 1, 5, 9],
[ 2, 6,10],
[ 3, 7,11],
[ 4, 8,12],
]
を返すようなものです。
0325デフォルトの名無しさん
2007/06/20(水) 11:36:250326デフォルトの名無しさん
2007/06/20(水) 11:48:26zip(*lst) でほぼ理想通りの結果が出ました!感謝!
0327デフォルトの名無しさん
2007/06/20(水) 13:22:533階層以上の配列(テンソル?)だと
あまりいい手はないですよね
numpy の類を使うしかないかな
0328デフォルトの名無しさん
2007/06/20(水) 19:58:320329デフォルトの名無しさん
2007/06/20(水) 23:08:100330timer
2007/06/22(金) 21:34:32が教えていただきたいのですが。。。お願いします!!
0331デフォルトの名無しさん
2007/06/22(金) 21:46:04def hoge():
print 'hoge'
while(True):
hoge()
time.sleep(1)
0332デフォルトの名無しさん
2007/06/22(金) 21:46:12import time
while True:
foo()
time.sleep(3)
fooが重い処理なら、例えばスレッドなんかを作る。
import time, thread
while True:
thread.start_new_thread(foo, ())
time.sleep(3)
http://www.python.jp/doc/2.4/lib/module-time.html
http://www.python.jp/doc/2.4/lib/module-thread.html
0333デフォルトの名無しさん
2007/06/24(日) 20:36:07の両対応にしてください。
おながいします。
0335デフォルトの名無しさん
2007/06/26(火) 02:06:180336デフォルトの名無しさん
2007/07/13(金) 18:44:070337デフォルトの名無しさん
2007/07/23(月) 20:13:20それはリストのネストのレベルを表してます。
このリストをそのレベルどおりにネストさせるには、どうすればいいですか?
[1, 1, [2, 2, 2, [3, 3, [4, 4]]], 1, [2]]
0338デフォルトの名無しさん
2007/07/23(月) 20:46:10ただサイズが大きいと計算時間が厳しいと思う
0339デフォルトの名無しさん
2007/07/23(月) 23:02:26ミもフタもない解答
def f(lst):
lvl=lst[0]
ans = '['*lvl + '%d'%lvl
for i in lst[1:]:
if i==lvl:
ans += ',%d' % i
elif i>lvl:
ans += ',' + '['*(i-lvl) + '%d'%i
else:
ans += ']'*(lvl-i) + ',%d'%i
lvl = i
return eval(ans+']'*lvl)
0340デフォルトの名無しさん
2007/07/24(火) 00:36:15次の要求を満たすフィルタプログラムを作れ。
1.標準入力から行を読み込み、空白をカンマに変換し、標準出力に出力する
2.連続した複数の空白はひとつの空白と同じと見なす
3.タブ文字も空白と見なす
4.オプション等は設けない
5.フィルタとして動作するので余分なメッセージ類は一切出力しない
例として「1 Bill 1955 Oct 28」と入力したら「1,Bill,1955,Oct,28」と出力されるようにします。
オブジェクトの名前は次のように定義する
line 標準入力から入力した行
termList lineにsplitメソッドを適用して生成したリスト
term リストの各要素
ouputString 標準出力に出力する文字列
outputString = ’’
for term in termList[:-1]:
outputString += term + ’,’
outputString += termList[-1] + ’\n’
sys.stdout.write(outputString)
上記のコーディング例を参考に作成せよ。
【 期限 】7月30日(月)まで。
何方かよろしくお願いします。
0341デフォルトの名無しさん
2007/07/24(火) 00:40:10def nest(L, level=1):
L = list(L) # pop で破壊してよいようにコピーを作る
results = []
while L:
# 想定外の要素が見つかったらエラー
assert not L[0] < level
# 現在のレベルと等しい要素をそのまま results に追加
if L[0] == level:
results.append(L.pop(0))
continue
# 現在のレベル以上の要素を集める
nested_items = []
while L:
# 想定外の要素が見つかったらエラー
assert not L[0] < level
if L[0] == level:
break
nested_items.append(L.pop(0))
0342デフォルトの名無しさん
2007/07/24(火) 00:42:48results.append(nest(nested_items, level+1))
return results
assert nest([1, 1, 2, 2, 2, 3, 3, 4, 4, 1, 2]) == [1, 1, [2, 2, 2, [3, 3, [4, 4]]], 1, [2]]
0343デフォルトの名無しさん
2007/07/24(火) 00:53:54import sys
for line in sys.stdin.readlines():
termList = line.split()
outputString = ''
for term in termList[:-1]:
outputString += term + ', '
outputString += termList[-1] + '\n'
sys.stdout.write(outputString)
0344デフォルトの名無しさん
2007/08/02(木) 18:07:350345デフォルトの名無しさん
2007/08/02(木) 19:06:370346デフォルトの名無しさん
2007/08/12(日) 17:58:39宿題じゃないが、アルゴリズム考えててこんがらかったので質問。
lst = [dataX, ..., data2, data1, data0]
newlst = [dataM, ..., dataN+1, dataN]
# len(lst) == 任意, len(newlst) <= 4, M >= X
このようなリストがあった時、newlstをlstに重複なくマージするにはどうしたらよい?
つまり、
lst = [data3, data2, data1, data0]
newlst = [data4, data3, data2]
assert merge(lst, newlst) == [data4, data3, data2, data1, data0]
このときのmergeをどう作ればよいのか知りたい。
なおインデックスに飛びは無く、dataは等価比較可能。
0347デフォルトの名無しさん
2007/08/12(日) 18:17:130348デフォルトの名無しさん
2007/08/12(日) 18:33:50すまん、忘れてたが順序関係は維持したままで。
ただしdata同士の順序比較は出来ない。
インデックスは順序のために便宜的につけただけで、実際には通し番号などは無い。
0349デフォルトの名無しさん
2007/08/12(日) 22:24:18> 実際には通し番号などは無い
ちょっ、そうしたら、
lst = [a, b, c]
newlst = [b,x,y]
のとき、c, x, y, の順序はどうやって決めるんだ?
0350デフォルトの名無しさん
2007/08/12(日) 22:25:04for item in newlst:
if item not in lst:
lst.insert(0, item)
ではダメなの?
0351デフォルトの名無しさん
2007/08/12(日) 22:28:39> インデックスに飛びは無く
って書いてあるな。順序あるのか無いのか、はっきりしてくれ。
0352デフォルトの名無しさん
2007/08/12(日) 23:29:080353346
2007/08/13(月) 04:15:28色々前提条件説明しきれてなくてスマン。付き合ってくれた人有り難う。
http://dpaste.com/16708/
要はネットからエントリ型の更新情報をダウンロードしてローカルデータに追加するため、
lstとnewlstに重複した情報があるかもしれないが、そこだけstripしたかったというお話。
エントリに日時情報があればもっと簡単だったんだけどね。
0354デフォルトの名無しさん
2007/08/13(月) 08:34:13エントリ型って何?
0355デフォルトの名無しさん
2007/08/13(月) 08:35:28元の list 保存しておいて orig_list.index( some_data ) で
個別 index はでるんだし
0356デフォルトの名無しさん
2007/08/13(月) 15:37:39ていうか明らかにfor文必要ないから
0357デフォルトの名無しさん
2007/08/16(木) 11:32:42a = ["A","B","C","D"]
b = [5, 3, 8, 2]
aのリストをbの値の大きい順にソートしたい、この場合、a = ["C","A","B","D"] b = [8,5,3,2]を求めたいのですがどのように書けばよろしいでしょうか。
アドバイスお掩蓋します。
0358デフォルトの名無しさん
2007/08/16(木) 12:00:11[(5, 'A'), (3, 'B'), (8, 'C'), (2, 'D')]
>>> sorted(zip(b, a))
[(2, 'D'), (3, 'B'), (5, 'A'), (8, 'C')]
>>> sorted(zip(b, a), reverse=True)
[(8, 'C'), (5, 'A'), (3, 'B'), (2, 'D')]
>>> [x[1] for x in sorted(zip(b, a), reverse=True)]
['C', 'A', 'B', 'D']
>>>
0359デフォルトの名無しさん
2007/08/16(木) 12:12:37zipでこんな簡単にできると思いませんでした。
ありがとうございました。
0360デフォルトの名無しさん
2007/08/25(土) 02:27:14外のwebサーバ(自分はドキュメントやCGIスクリプトの設置はできるユーザ権限)にJythonって設置できますか?
やっぱサーバの管理者権限いりますよね?
0361デフォルトの名無しさん
2007/08/25(土) 03:40:390362デフォルトの名無しさん
2007/08/25(土) 14:19:060363デフォルトの名無しさん
2007/08/25(土) 15:37:04それがOKならいけるってことですね。
いっちょあやしまれないように暗躍してみます。
0364デフォルトの名無しさん
2007/08/25(土) 20:17:55ローカル環境でいじくり、無事jythonのインストール方法を理解できました。
これで、python ver 1.5.2からアップデートしない大学のサーバを
出し抜いてやるぜと思ったら、javaすら入っていませんでした。
0365デフォルトの名無しさん
2007/08/25(土) 23:51:180366デフォルトの名無しさん
2007/08/27(月) 22:24:08そして良く考えたらJythonとCPythonとの互換性も追い付いているのかどうか良く知らない・・・。
ファイルの実行や一般的なUNIXコマンドを使う権限があるので、リモートでPython2.5をコンパイルしてみた。
が、ソケットのヘッダファイルを読み込めなかった。
くそっくそっ。
かっこいいCGI置きたいよぅ。
0367デフォルトの名無しさん
2007/08/28(火) 00:26:150368デフォルトの名無しさん
2007/08/28(火) 10:31:19・Tkinter
・wxPython
のどちら(その他にもありますか?)が良いのでしょうか?
環境はMac(できればLinuxも)、
一般的で、かつ、将来性のあるGUIを選びたいです。
0369デフォルトの名無しさん
2007/08/28(火) 10:42:500370368
2007/08/28(火) 10:48:29ついでですが、Tkinterのダメな理由を教えて下さい。
(それを知っておけば心残り無くwxPythonできるので)
0371デフォルトの名無しさん
2007/08/28(火) 10:53:11ウェジットがしょぼい。
簡単なスクリプトには使えるだろうけど…
0372368
2007/08/28(火) 11:04:25ところで、Pythonで配布されてるGUIツールってありますか?
サンプルとかコマンドで動くスクリプトはネットに転がってますが、GUIスクリプトはあんまり見ないような。
0373デフォルトの名無しさん
2007/08/28(火) 11:50:00IDLE
0374デフォルトの名無しさん
2007/08/28(火) 11:58:05wxPythonをインストールすれば、XRCedっていう_GUIでI編集出来るツールが入ってる。
あと、wxPython に決めたら決めたで、Mac板のプログラムスレにも書いとけよ。
0376デフォルトの名無しさん
2007/08/28(火) 13:50:510377368
2007/08/28(火) 13:57:180378368
2007/08/28(火) 14:03:09了解しました。使ってみます。
レイアウトマネージャ方式っていうか、位置の融通は無さそうですね。
コツを掴めば良いのでしょうが。
0379デフォルトの名無しさん
2007/08/28(火) 14:11:43どなたか頼みます。。。。
0380デフォルトの名無しさん
2007/11/12(月) 00:23:27ここ↓みたいなのありますか?
http://wiki.fdiary.net/
(rubyで作られたwiki実装のhikiで自分?のwikiを作れる)
0381デフォルトの名無しさん
2007/11/12(月) 10:15:160382デフォルトの名無しさん
2007/12/03(月) 01:27:52【 課題 】
テキストファイルを読んで、
その先頭に'>'を追加したファイルを出力するコードを書きなさい
【 用語 】
【 期限 】出来れば明日中になんとかしたいです。
【 Ver 】2.5です。
【 補足 】テキストファイル(test.txt)の"先頭に"'?'を追加するにはどうしたらいいんでしょうか?open関数の"w"だとテキストの中身消去しちゃうし・・お手上げです。ヒントでも良いので教えてください。
自分でやった結果↓
f=open ("test.txt","r")
w=f.read()
a=">"+w
f.close()
-------
【 課題 】
shift_jisのファイルを読んで
utf-8に変換したファイルを出力するコードを書きなさい。
【 用語 】
【 期限 】出来れば明日中になんとかしたいです。
【 Ver 】2.5です。
【 補足 】
自分でやった結果↓
#coding: shift_jis
f=open("kadai7.txt","r")
0383デフォルトの名無しさん
2007/12/03(月) 01:40:58file = open("test.txt", "r")
lines = file.readlines()
file.close()
file = open("test.txt", "w")
for line in lines:
file.write(">"+line)
file.close()
二つ目:
import codecs
src = codecs.open("sjis.txt", "r", encoding="sjis")
dest = codecs.open("utf8.txt", "w", encoding="utf-8")
dest.write(src.read())
dest.close()
src.close()
がんばりましょう。
0384デフォルトの名無しさん
2007/12/03(月) 01:45:370385デフォルトの名無しさん
2007/12/03(月) 02:05:37# 1.
import os
file("test2.txt", "w").writelines(">" + x for x in file("test.txt"))
os.remove("test.txt")
os.rename("test2.txt", "test.txt")
# 2.
doc = unicode(file("sjis.txt").read(), "Shift_JIS")
file("utf8.txt", "w").write(doc.encode("utf-8"))
0386382
2007/12/03(月) 05:00:17本当に感謝してます。
教えてもらった答え丸写しじゃなく自分なりに工夫して動作確認してみます。
いつの日か教える側に回れたら・・・
ありがとうございました。
0387デフォルトの名無しさん
2007/12/03(月) 20:47:500388デフォルトの名無しさん
2008/02/03(日) 19:52:36(14989440..15318688).step(1) do |i|
chr_a = i.to_s(16).scan(/../).map{|s| eval("0x#{s}")}
next unless(
chr_a[1] >= 128 &&
chr_a[1] <= 191 &&
chr_a[2] >= 128 &&
chr_a[2] <= 191
)
puts "#{chr_a.map{|i| i.chr}.join}\t#{chr_a.join(',')}"
end
Python ですべての漢字を列挙するにはどうしたら
良いでしょうか?
0389デフォルトの名無しさん
2008/02/03(日) 21:52:35kanji = []
for i in range(0xffff):
c = unichr(i)
n = unicodedata.name(c, '')
if 'CJK' in n and 'IDEOGRAPH' in n:
kanji.append(c)
print len(kanji)
何を漢字とみなすかが問題だけど、一般的にはこんなもんでいいんじゃないかな
0390デフォルトの名無しさん
2008/02/03(日) 21:54:13for c in range(0xe4b880, 0xe9bea1):
c0, c1, c2 = ((c / 65536) % 256, (c / 256) % 256, c % 256)
if c1 >= 128 and c1 <= 191 and c2 >= 128 and c2 <=191:
print '%c%c%c\t%d\t%d\t%d' % (c0, c1, c2, c0, c1, c2)
$ kanji.py > hoge
$ cat hoge
一 228 184 128
...
龠 233 190 160
0391デフォルトの名無しさん
2008/02/04(月) 01:25:55それRuby?
ださすぎw
0392デフォルトの名無しさん
2008/02/04(月) 02:38:29fd = open("kanji_cjk.dat", "a+")
i = 1
for e in kanji:
temp = e.encode('utf-8')
#print temp,
i = i + 1
if i%16 == 0:
temp = temp + "\n"
fd.write(temp)
fd.close()
始めよくわからない漢字が表示されてエンコードの
指定の仕方が悪いのかと躓いたのですがよくよく考えたら
使ってるエディタがutf-8文字列を認識してなく文字化け
しているだけのようでした orz
>>389-390
len(S1) 27973個, len(S2) 20897個
共通集合(S1とS2に共通な要素) 20897個
for c in S1.intersection(S2):
差集合(S1特有の要素) 7076個
for c in S1.difference(S2):
集合演算が地味に便利だと思いました…
どうもありがとうございました!
0393デフォルトの名無しさん
2008/02/07(木) 16:51:26英語サイトならIE.LocationNameで取得した文字列を扱えるのに
日本語のサイトの場合にはエラーになり、
.encode('utf-8')などをつけてエラーを回避しても文字はアルファベット部分しか表示されません。
ほかにもfindとか文字列操作したいけどうまくいかなくて
ぶっちゃけこのスクリプトが日本語表示まで含めて動くコードを教えてください。
0394デフォルトの名無しさん
2008/02/07(木) 16:55:520395デフォルトの名無しさん
2008/02/07(木) 17:40:270396デフォルトの名無しさん
2008/02/07(木) 17:43:020397デフォルトの名無しさん
2008/02/07(木) 17:48:190398デフォルトの名無しさん
2008/02/07(木) 17:50:41strに代入すんなよ
0399393
2008/02/07(木) 17:56:13★080204 ニュース速報+「糞スレは立てない約束」AA2get荒らし報告
http://qb5.2ch.net/test/read.cgi/sec2chd/1202100384/
このスクリプトを選んだのは作ったやつの中で短いからで、
別に動くのを確認したらそれでいいんですよ。
荒らしっていうけど3以降には書き込んだりしないんだから残り998スレはほかの人が自由に書き込めるんですよ?
何の問題もないでしょう。
0400デフォルトの名無しさん
2008/02/07(木) 18:13:43UWSCで書いたやつと同じものがPythonならどんな感じになるかなって作ってるわけで、
これを手助けしたから荒らされるなんて心配も無用。
一応目標はhttp://panda3d.org/使って3Dぐりぐりすることなわけで。
ああ、3Dぐりぐりに文字エンコードは関係ないですかそうですか・・・
0401デフォルトの名無しさん
2008/02/07(木) 18:53:06だれもそんな心配してないよwww
0402デフォルトの名無しさん
2008/02/07(木) 20:21:55やあ表示できたよありがとう。
DOSプロンプトにならちゃんと表示されるようになった。
src.split('<')とするのには気が付いたけどまた躓いてるし。
WingIDE無料版がそれなりに使える。
日本語表示はされないものの、文字コードはそのまま扱えてるし
プレーンテキストよりかなり楽チン。
エディタだけじゃなくShellまで漢字に非対応なのがちょっと残念。
0403デフォルトの名無しさん
2008/02/07(木) 22:17:260404デフォルトの名無しさん
2008/02/08(金) 00:59:25あとは制御を正しくやって投稿まで出来れば完成か。
丸二日かかる計算だけどここまでやってもまださっぱりだ。
0405デフォルトの名無しさん
2008/02/08(金) 01:03:020406デフォルトの名無しさん
2008/02/08(金) 01:26:550407デフォルトの名無しさん
2008/02/08(金) 01:27:08ちゃうちゃう。
COM部分はUTMSじゃなくてUWSCで既に作ってあった。
まあ漢字が表示されないとか言ってたけどそれはCOMに限った話じゃないし。
そういえばUTMSどうなったんだろ・・・
0408デフォルトの名無しさん
2008/02/09(土) 00:22:01フォントをサポートした環境に対して出力すればそのまま表示された。
一番簡単な方法は、DOSプロンプトから.pyファイルを起動して実行し、DOSプロンプトにprint出力。
なまじPython実行環境が文字出力できちゃうもんだからコーディングが間違ってんのかと思ってしまう。
まあuでユニコード定義した文字じゃないと文字化けするけど。
0409デフォルトの名無しさん
2008/02/09(土) 00:29:270410デフォルトの名無しさん
2008/02/09(土) 00:55:22なってないよ。
Pythonのシェルでユニコードマルチバイト文字をprintして0x9999とか表示されるのは
2バイト文字をサポートしてないからだよ。
ああ、これについては文字コードかな。
WingIDEのエディタとか内臓シェルで表示されないのは単純にフォントの問題。
それよりなんでLって人気あるんだろ。
実写版LだとLは自分の名前書いてキラに勝ったんだね。
僕もデスノートを贈られたとき、自分の名前書いて洗脳を解いたんだけどまあいいか。
0411デフォルトの名無しさん
2008/02/09(土) 01:55:360412デフォルトの名無しさん
2008/02/09(土) 08:39:40していただけないと、私のような初心者にはちんぷんかんぷんです ><
0413デフォルトの名無しさん
2008/02/09(土) 10:01:10分けて考えられない人は、ごっちゃにしてない、としか答えられないと思う。
0414デフォルトの名無しさん
2008/02/09(土) 10:11:35CP932は大げさでしょ。
ソースコード自身の文字コードを置いておくと、
基本的にはASCIIコードと16ビットユニコードなんじゃないの?
んでWindowsNT系、XPとかVistaとかの漢字は16ビットユニコードだから、
NT内部だけで処理する場合には文字をそのまま送信、受信できるし、
ネット上のものでもブラウザ経由なら自動的にエンコードされるから問題ない。
んでpythonやり始めてすぐは、
文字化けする環境のせいでうまくできてるんだか出来てないんだか分からないところでちょっとつまづく。
というのがすぐ上で僕が書き込んでた問題。
問題があるのは直接サーバーと通信したりして、いろんな文字コードのデータを
そのままで送受信する場合。
ほかには、日本語環境ならシフトJISで保存されたファイルへのアクセスでエンコードが必要になる。
あとは、現状で自動でエンコードかかったりするらしいので勘違いしてはまってしまったりするかも。
0415デフォルトの名無しさん
2008/02/09(土) 10:13:34>>413
ごっちゃになってるとしか指摘できないのは分かってないからじゃないの?
0416デフォルトの名無しさん
2008/02/09(土) 10:24:230417デフォルトの名無しさん
2008/02/09(土) 11:17:16UTF-16のことだね。
特徴は、半角英数なども16ビットで表現すること。
普通にユニコードと言えばこれのことだから16ビットって言わないだけ。
pythonでu指定するのもUTF-16だろう。
ただuと入れれば済んじゃってUTF-16って名前が出てこないんで逆に分かりにくいのかもね。
UTF-8は、半角英数が8ビットで、
見分け方は、半角英数が見えつつ、漢字1文字が%xxみたいな半角記号3文字に置き換わる。
URLで使ってて普段目にするからどんなのかは分かるでしょ。
アルファベット圏ではUTF-8だと互換性は高いしデータ量は少なくて済むし普及しちゃってるんだけど
日本語みたいなマルチバイト文字圏では互換性のあるコードと言えば、UTF-16。
2バイトで表現すればデータ量は少なくて済むしプログラムでも固定長だから扱いやすいし。
まあシフトJIS単一が一番扱いやすいけどね。
データ量が最小で表現できるし。
でも制約も大きくて、インターネットで国際化がデフォな現代には合わないんだな。
こんなとこで言うような話題じゃないけど、
とりあえず日本語対応してなさそうに見えるpythonには必要な話題と思ったから書いた。
まあ、ごっちゃになってないとか言ったけど用語とか適当だし言葉も適切じゃなかったりしたかもね。
ようは話が通じればいいんだ。
0418デフォルトの名無しさん
2008/02/09(土) 11:45:330419デフォルトの名無しさん
2008/02/09(土) 12:08:570420デフォルトの名無しさん
2008/02/09(土) 12:38:140421デフォルトの名無しさん
2008/02/09(土) 12:49:58UTF-16は固定長じゃないwww
0422デフォルトの名無しさん
2008/02/09(土) 12:59:350423デフォルトの名無しさん
2008/02/09(土) 13:21:57成績表のファイルを読み込み,合計点の上位20人だけを印刷する。20番目に同点者がいた場合は,同点者は全員印刷する(20人を超えることがある)。
【 用語 】
【 期限 】2月12日まで
【 Ver 】2.5.1
【 補足 】丸投げですが、よろしくお願いします。
自分でも多少やったのですがよくわからなくなりました。
0424デフォルトの名無しさん
2008/02/09(土) 13:24:200425デフォルトの名無しさん
2008/02/09(土) 13:24:550426デフォルトの名無しさん
2008/02/09(土) 13:29:54UTF-16なんて実際どこで使われてるん?めちゃ失敗作だろあれだけ。
日本人だけどもUCS-2のままのがまだマシ。
0427デフォルトの名無しさん
2008/02/09(土) 13:45:35それだけじゃ具体的なコードは提示できないけど
単に人間がやる場合(モデル)をかんがえればいいんだよ。
a. 成績表を目で追っていき一番点数の高いやつを見つけて印刷。
二位以下も同様にくり返す。
b. 成績表から個々の成績(名前と点数の組?)をそれぞれ一枚の紙切れに写していく。
それらを点数順に並び替える。上位から印刷。
他にもあるだろうけどaよかbのが単純。
0428423
2008/02/09(土) 13:45:39成績表のファイルはこんな感じのtxtファイルです。
番号 国語 数学 英語
53001 30 45 96
53002 63 52 53
53003 71 80 99
53004 54 44 66
53005 65 91 75
53006 81 100 71
説明がわかりにくかったらいけないのであげときました
http://sakuratan.ddo.jp/uploader/source/date69811.txt
0429デフォルトの名無しさん
2008/02/09(土) 13:55:46君がわかってない人である事は通じた
0430デフォルトの名無しさん
2008/02/09(土) 14:32:04適当に。
students = []
for line in open('test.txt'):
name, kokugo, suugaku, eigo = line.split()
point = int(kokugo) + int(suugaku) + int(eigo)
students.append((point, name))
students.sort()
MAX = 20
recentpoint = -1
for (i, student) in enumerate(students[::-1]):
point, name = student
if (i+1 > MAX) and (point != recentpoint):
break
else:
print i+1, name, point
recentpoint = point
0432デフォルトの名無しさん
2008/02/09(土) 14:57:430433デフォルトの名無しさん
2008/02/09(土) 15:20:18じゃあどこまで分かってるのを分かってるって言うっての?
あんたが言いたいのはたとえば殺人罪だと初犯の罪状がこれこれで
何人殺せば死刑だけど年齢がいくつだとここまででで、さらに何条の何っていう
特例まで含めた法律を丸暗記してないと弁護士としては駄目なんじゃないのみたいな?
普通は死刑になりうるし懲役で20年くらい食らう程度に知ってれば十分なんじゃね?
0434デフォルトの名無しさん
2008/02/09(土) 15:23:590435デフォルトの名無しさん
2008/02/09(土) 15:50:35法律事務所にずかずか入ってきて
法律とはこういうもんだと延々講釈を垂れる
ここを法律事務所に例えるのは少し無理があるがまあそんな感じ
0436デフォルトの名無しさん
2008/02/09(土) 16:02:57答えればいいのに…
知らないことを無理して答えるから恥をかく。
0437デフォルトの名無しさん
2008/02/09(土) 17:40:06どこら辺に知らないことを知ったかぶりしてる部分があるんですか?
馬鹿?
>>435
いや、よその法律事務所の人は来なくていいから。
ああ、非常勤職員でしたか。たまには顔出してね。
0438デフォルトの名無しさん
2008/02/09(土) 18:51:44それをごっちゃにしているのは馬鹿だと断定できる
0439デフォルトの名無しさん
2008/02/09(土) 18:54:47指摘されてもわからないところが、救いようのないバカ。
0440デフォルトの名無しさん
2008/02/09(土) 19:05:24>UTF-16なんて実際どこで使われてるん?
WindowsのAPIではUTF-16が使われている
つまり最も使われている。
>>438
UTF-16の16は16ビットの16なのに16ビットとUTF-16が全然別の話だと?
そういうことを言うから分からなくなるんだろ。この役立たずが。
大学院と言う名の病院でおとなしくしてろ。
>>439
文字は表示されればいいってことが分からないアホがなに言ってんの?
内心の美しさは思い込みで作られるって知ってる?
0441デフォルトの名無しさん
2008/02/09(土) 19:10:010442デフォルトの名無しさん
2008/02/09(土) 19:10:500443デフォルトの名無しさん
2008/02/09(土) 19:15:040444デフォルトの名無しさん
2008/02/09(土) 19:15:13あーあ、わざわざ上げちゃって。 バカは驚くほど侮蔑に弱いからな。www
お前の説明はデタラメだ。
0445デフォルトの名無しさん
2008/02/09(土) 19:18:320446デフォルトの名無しさん
2008/02/09(土) 19:21:410447デフォルトの名無しさん
2008/02/09(土) 19:31:050448デフォルトの名無しさん
2008/02/09(土) 19:45:25無関係なことを言って混乱させるなボケ
>>444
大雑把なのを出鱈目だってさ。
後ろにwwwつけるほうがよっぽどデタラメなのが分からないVipperが。
早いところ治療しろよ。
精神病は治らないんだっけ
一応アスペルガーっていう病気らしいから調べて病院に行って来い。
>>447
半角じゃないならなんだ。全角ですかそうですか。
>>445
正確には知らんが、UTF-16とUCS-2はほぼ同じもの。
2001年3月に策定のUnicode3.1以前はUTF-16もなかったわけで、
今一番普及してるWindowsXPが登場直後のUTF-16を満足してるかわかんないから実質区別はないかも。
僕が勉強したのは完全16ビットのユニコードのころだったし文字の深いところまでやってるわけじゃないから
別に16ビット固定で全然困らないよ。
それを訳分からんやつが小難しい辞書を引っ張り出してきて「あれ?ちょっと違うんじゃね?」って
具体的には何も言わないくせにけちばっかりつけてきやがる。
0449デフォルトの名無しさん
2008/02/09(土) 19:49:590450デフォルトの名無しさん
2008/02/09(土) 19:51:57俺知ってる。けど馬鹿に教えても無駄だから教えない。何のために知ってるって発言したの?自己主張ですか。じゃあ来なくていいよ。資源の無駄。
0451デフォルトの名無しさん
2008/02/09(土) 19:53:54他人の間違いを指摘して、正してあげるほど
親切な人ばかりじゃないのです。
ちなみに「ちょっと違う」わけではりません。
0452デフォルトの名無しさん
2008/02/09(土) 19:58:000453デフォルトの名無しさん
2008/02/09(土) 20:02:23はいはいそうだね。
UTF-8とTUF-16を変換してもなんにもかわんないよね。
0454デフォルトの名無しさん
2008/02/09(土) 20:03:570455デフォルトの名無しさん
2008/02/09(土) 20:06:29デタラメを大雑把と主張する幸せ脳。wwww
> 半角じゃないならなんだ。全角ですかそうですか。
> 半角じゃないならなんだ。全角ですかそうですか。
> 半角じゃないならなんだ。全角ですかそうですか。
> 半角じゃないならなんだ。全角ですかそうですか。
> 半角じゃないならなんだ。全角ですかそうですか。
wwwww
> 正確には知らんが、UTF-16とUCS-2はほぼ同じもの。
必死でググッてきたようだな。「正確には知らんが」が笑わせてくれる。
> 2001年3月に策定のUnicode3.1以前はUTF-16もなかったわけで、
wwwww
0456デフォルトの名無しさん
2008/02/09(土) 20:06:31文字コードを勝手に変換するようなスクリプト言語をそんな厳密な計算に使うわけないでしょ。
オートマチック車に乗ってるクセしていちいち1速2速3速ってレバー操作するんなら何のためにオートマチック車に乗ってんのかわかんないでしょ。
燃費を悪くするためですかそうですか。
0457デフォルトの名無しさん
2008/02/09(土) 20:09:290458デフォルトの名無しさん
2008/02/09(土) 20:11:54このひとって、もしかして、文字コードとフォントの区別がついてないひとだよね?
別の人が現れたわけじゃないよね?
0459デフォルトの名無しさん
2008/02/09(土) 21:26:070460458
2008/02/09(土) 22:37:15最初の人は恥ずかしくてもう出てこれないな、と思ってたので…
0461デフォルトの名無しさん
2008/02/09(土) 23:12:22未熟な人をいじめてあざ笑ってストレス発散する場所だったんですね。
だから1年半経っても半分も埋まらないほど過疎ってたんだ。
新入りをいびって追い出すから。
まあ、どっかの相撲部屋みたいに殺してしまうわけじゃないからいいけど。
0462デフォルトの名無しさん
2008/02/09(土) 23:13:160463デフォルトの名無しさん
2008/02/09(土) 23:18:37決して「教えて欲しい未熟な人」ではありません。
0464デフォルトの名無しさん
2008/02/09(土) 23:58:51僕がここで質問して、まあ誰も教えてくれなかったけど解決して自分なりに結論を出して、
まあ質問が残ったままになるのも迷惑だろうしと書き込んだら、
いきなり人間的に未熟な人たちがケンカを売ってきたから応じただけですよ。
>>409とか>>411とか>>413とか
>421
>426
>429
>435
>436
>438
>439
>441
>443
>444
>446
>447
>449
>451
>452
>455
>460
>463
とか
一番最初に>>409がなんか勘違いしたところから始まってると思うよ。
0465デフォルトの名無しさん
2008/02/09(土) 23:59:590466デフォルトの名無しさん
2008/02/10(日) 00:04:260467デフォルトの名無しさん
2008/02/10(日) 00:20:270468デフォルトの名無しさん
2008/02/10(日) 00:21:08> まあ質問が残ったままになるのも迷惑だろうしと書き込んだら、
デタラメが残るほうが1000万倍迷惑だ。
0469デフォルトの名無しさん
2008/02/10(日) 00:26:08間違いを指摘したら「人間的に未熟な人」になるの?
0470デフォルトの名無しさん
2008/02/10(日) 00:29:550471デフォルトの名無しさん
2008/02/10(日) 00:32:55> 自分なりの結論
> 自分なりの結論
> 自分なりの結論
> 自分なりの結論
弱気になってきたな。wwww
0472デフォルトの名無しさん
2008/02/10(日) 00:33:57あるのはタダのイヤイヤだけ。
0473デフォルトの名無しさん
2008/02/10(日) 00:34:00その選択眼が全てを物語っている。
0474デフォルトの名無しさん
2008/02/10(日) 00:34:13英語フォントしか選択できないから日本語が表示できないってことなんだけど
カンケーネーだのそれは間違ってるだのウゼー
0475デフォルトの名無しさん
2008/02/10(日) 00:36:28そうだね。
pythonなんてクソ言語を選択した僕の間違いだったね。
だけど、僕より先にpython使っててよく知ってるはずなのにその過ちに気が付かないあなたはもっと愚かですね。
0476デフォルトの名無しさん
2008/02/10(日) 00:36:47(最初に戻る)
0477デフォルトの名無しさん
2008/02/10(日) 00:38:170478デフォルトの名無しさん
2008/02/10(日) 00:41:180479デフォルトの名無しさん
2008/02/10(日) 00:42:25内部なんか知るかよ。
逆コンパイルすると逮捕されるよ?
0480デフォルトの名無しさん
2008/02/10(日) 00:44:40フォントの指定を言語仕様に含んだ言語へ行けって・・・
0481デフォルトの名無しさん
2008/02/10(日) 00:46:24だからフォントの指定を言語使用に含んだ言語がどれなのか教えてくれたらいけるんだってば。
0482デフォルトの名無しさん
2008/02/10(日) 00:52:490483デフォルトの名無しさん
2008/02/10(日) 01:00:17ヒント:オープンソース
0484デフォルトの名無しさん
2008/02/10(日) 07:51:370485デフォルトの名無しさん
2008/02/10(日) 15:26:48案の定バカが暴れてただけかorz
0486デフォルトの名無しさん
2008/02/10(日) 15:29:48AT車でもバックするときはRにGear入れるだろ
お前はDのままでバックしないっつって喚いてる馬鹿
0487デフォルトの名無しさん
2008/02/10(日) 15:46:370488デフォルトの名無しさん
2008/02/10(日) 16:10:05ttp://www.python.org/download/releases/3.0/
0489デフォルトの名無しさん
2008/02/10(日) 16:50:35僕が使ってるWingIDEは有料なんだけどソースコードはただでゲットできるの?
>>482
いらね
>>486
わかんねーから教習所に通ってんのに、お前らはなんにも教えてくれない自動車教習所の教官。
へたっぴな運転を見てからかってる。
僕も脇をすり抜けたりしてからかってはいるが、教官が一緒に乗ってるから安心してやってるんだ。
失敗できるのは生徒である特権だからな。
と、突然リアルに話を振って見る。
0490デフォルトの名無しさん
2008/02/10(日) 16:55:500491デフォルトの名無しさん
2008/02/10(日) 17:03:21すげー被害妄想だな
0492デフォルトの名無しさん
2008/02/10(日) 21:28:53教習所の教官は金貰ってやってる仕事だ。
俺らは自分のプログラミングの為に来てるついでに
気が向いた時にボランティアもやってるってだけ。
0493デフォルトの名無しさん
2008/02/10(日) 22:05:480494デフォルトの名無しさん
2008/02/10(日) 22:12:05unicode 文字列が文字化けしないのは
印字するときにどーゆーワケか DOS 窓のエンコーディングにエンコードしてくれるからで
フォント関係ないと思うんですが
違うんですか?
0495デフォルトの名無しさん
2008/02/10(日) 22:28:01自分の意図した表示が得られると思っているのです。
0496デフォルトの名無しさん
2008/02/10(日) 22:29:34お客さん、教習料が未納ですよ
0497デフォルトの名無しさん
2008/02/10(日) 23:06:30フォントが関係ないのになんで表示されるんですか?
英語版Windowsでは表示されませんがなんで表示されないんですか?
なんでそういう出鱈目を吹聴して回るんですか?
0498デフォルトの名無しさん
2008/02/10(日) 23:28:410499デフォルトの名無しさん
2008/02/10(日) 23:35:240500デフォルトの名無しさん
2008/02/10(日) 23:40:170501デフォルトの名無しさん
2008/02/10(日) 23:43:39お前らまとめて富士の樹海ハイキング行ってこい
0502デフォルトの名無しさん
2008/02/10(日) 23:44:54>>> 'あいう'
'\x82\xa0\x82\xa2\x82\xa4'
>>> u'あいう'
u'\x82\xa0\x82\xa2\x82\xa4'
コマンドラインの場合
>>> 'あいう'
'\x82\xa0\x82\xa2\x82\xa4'
>>> u'あいう'
u'\u3042\u3044\u3046'
0503デフォルトの名無しさん
2008/02/10(日) 23:53:04>>> 'あいう'
'\x82\xa0\x82\xa2\x82\xa4'
>>> print 'あいう'
あいう
>>> u'あいう'
u'\x82\xa0\x82\xa2\x82\xa4'
>>> print u'あいう'
???¢??
コマンドラインの場合
>>> 'あいう'
'\x82\xa0\x82\xa2\x82\xa4'
>>> print 'あいう'
>>> u'あいう'
u'\u3042\u3044\u3046'
>>> print u'あいう'
あいう
0504デフォルトの名無しさん
2008/02/10(日) 23:54:15コマンドラインの場合
>>> 'あいう'
'\x82\xa0\x82\xa2\x82\xa4'
>>> print 'あいう'
あいう
>>> u'あいう'
u'\u3042\u3044\u3046'
>>> print u'あいう'
あいう
0505デフォルトの名無しさん
2008/02/10(日) 23:57:120506デフォルトの名無しさん
2008/02/10(日) 23:59:390507デフォルトの名無しさん
2008/02/11(月) 00:04:43繰り返しますが
DOS 窓で unicode 文字列を印字するときは
勝手に DOS 窓のエンコーディングにエンコードされます
日本語版 Windows しか触ったことがないので分かりませんが
おそらく英語版の DOS 窓のエンコーディングは日本語表示できませんよね
0508デフォルトの名無しさん
2008/02/11(月) 00:13:41お客様の中に子供の知育、中でも特に
「分けて考える」という概念を芽生えさせる手法について
詳しい方いらっしゃいませんか?
0509デフォルトの名無しさん
2008/02/11(月) 00:19:27>>> s = unicode('あいう','sjis')
>>> s
u'\u3042\u3044\u3046'
>>> print s
あいう
0510デフォルトの名無しさん
2008/02/11(月) 01:04:15必要なのは発達障害児を支援する訓練を受けている人だろう。
0511デフォルトの名無しさん
2008/02/11(月) 01:05:010512デフォルトの名無しさん
2008/02/11(月) 01:45:59ここ間違ってるんだが、何がどう間違ってるか分かる?
えらそうに説教たれてるんだから即答できるよな?
http://www.python.jp/doc/release/tut/node5.html#SECTION005130000000000000000
0513デフォルトの名無しさん
2008/02/11(月) 01:54:460514デフォルトの名無しさん
2008/02/11(月) 02:15:04訳が間違ってるなら、連絡すれば?
人手が足りないらしいし。
Pythonドキュメント翻訳プロジェクト
ttp://www.python.jp/Zope/pythondoc_jp/
0515デフォルトの名無しさん
2008/02/11(月) 02:15:06達人タンじゃないか。
こんな所で何やってんの?
また、横着言って暴れてるのかね。
0516デフォルトの名無しさん
2008/02/11(月) 02:18:45引き取ってくれよ。
0517デフォルトの名無しさん
2008/02/11(月) 02:27:13u指定した文字列のコードがぜんぜんユニコードじゃないのに気がつかなかったのかと。
0518デフォルトの名無しさん
2008/02/11(月) 02:35:57>>> u'あいう'
u'\x82\xa0\x82\xa2\x82\xa4'
>>> unicode('あいう', 'cp932')
u'\u3042\u3044\u3046'
ってなるよ
0519デフォルトの名無しさん
2008/02/11(月) 02:37:57だってユニコードじゃないんだもん。
オブジェクト的にはユニコード扱いでも、壊れたデータだからユニコードじゃない。
0520デフォルトの名無しさん
2008/02/11(月) 04:22:49http://docs.python.org/tut/node5.html#SECTION005130000000000000000
元は 'äöü' だから気をきかせて 'あいう' に置き換えた
つもりで間違いを入れてしまったんだね
0521デフォルトの名無しさん
2008/02/11(月) 10:42:24u'abc'
>>> u"あいう"
u'\u3042\u3044\u3046'
>>> str(u"あいう")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-2: ordinal not in range(128)
>>> u"あいう".encode('utf-8')
'\xe3\x81\x82\xe3\x81\x84\xe3\x81\x86'
>>> unicode('\xe3\x81\x82\xe3\x81\x84\xe3\x81\x86', 'utf-8')
u'\u3042\u3044\u3046'
0522デフォルトの名無しさん
2008/02/11(月) 11:38:34僕は新参者でよく知らなかったけど、u指定で自動的にユニコードにエンコードされるのは
あのドキュメントのバージョンあたりからで、それ以前ならあの訳の結果で正しかったらしい。
他の製品とで動作が異なるのは、仕様を引きずったかどうかだけっぽいな。
まあ最初の仕様がまずすぎだと思うけど。
äöüってのが、シフトJISでの半角カナの位置づけで、
そのままのコードでユニコードになるんだろうから言語仕様で問題にはならなかったんだろう。
・・・違うな。
ただデフォがunicodeなだけだ。
しかし、せっかくインタプリタがあるのに、画面から入力したものとファイルに保存したものとで動作が異なるようじゃ当てにならんな。
せめて画面とファイルの文字コードを統一できればいいけど、utf-8以外で保存してもエラーになるし。
最新版のコマンドラインとutf-8のファイル使えばちゃんと動くから僕はいいけどみんなはいろいろ衝突しちゃうだろうなあ。
0523デフォルトの名無しさん
2008/02/11(月) 12:10:07> utf-8以外で保存してもエラーになるし。
#-*- coding: sjis -*-
とか付けてる?
0524デフォルトの名無しさん
2008/02/11(月) 13:22:040525デフォルトの名無しさん
2008/02/11(月) 13:24:53ああ、メモ帳で保存形式ASCIIでシフトJIS指定したらできた。
全部表示される。
# encoding: sjis
print unicode('あいう', 'sjis')
print u'あいう'
print 'あいう'
utf-8ならコード指定なしでできちゃったのは、先頭に強制でフラグ?が入るからなんだね。
メモ帳じゃどのコードでもまったく同じに見えちゃって気がつかない。
16ビットのユニコードは指定方法が分からないし使えるとは思えないけど・・・
# encoding: utf-8
print unicode('あいう', 'utf-8')
print u'あいう'
print 'あいう' #←文字化け
sjisで保存するとユニコードにしなくても表示されちゃうから間違っても気がつかないね。
だからやっぱりutf-8で保存するべきだろう。
0526デフォルトの名無しさん
2008/02/11(月) 13:30:490527デフォルトの名無しさん
2008/02/11(月) 13:36:540528デフォルトの名無しさん
2008/02/11(月) 14:06:27まあ、Rubyでも使ってろや
0529デフォルトの名無しさん
2008/02/11(月) 14:27:48文字コードのお話はこれが最初。
延々やりあってる間に確かにいろいろ間違ってはいたけど、pythonで日本語表示することについては間違ってないから。
それ以前はまったく分かってなかったけど。
間違いを自分で振り返ると
>>417
>漢字1文字が%xxみたいな半角記号3文字に
バイト数に関しては合ってるが、見た目ぜんぜん違ってた。
正直、URLエンコード=utf-8と思ってた。
>>440
>WindowsのAPIではUTF-16が使われている
Windowsで使われてるけどAPIはシフトJISだっけね。
>>479
>逆コンパイルすると逮捕されるよ?
これは昔の話
ああ、あと、DOS窓は16ビットUNICODE対応だと思ってたっけ。
実際UNICODEファイル名、UNICODEテキストが表示されるし。
コマンドも含めてDOS窓だといってしまえばUNICODE対応と言って差し支えないが。
>>494
この人は正しかったようだが「フォントは関係ない」とか余計な事言うから。
それ以外について指摘すべきところはないな。
0530デフォルトの名無しさん
2008/02/11(月) 14:31:14>それ以外について指摘すべきところはないな。
人間性について
0531デフォルトの名無しさん
2008/02/11(月) 14:51:590532デフォルトの名無しさん
2008/02/11(月) 15:09:130533デフォルトの名無しさん
2008/02/11(月) 15:13:52こともない。
0534デフォルトの名無しさん
2008/02/11(月) 15:14:27これ以上やると突っついてる方がバカっぽい
0535デフォルトの名無しさん
2008/02/11(月) 15:21:43くれないと結構鬱陶しがられるだろうな。
0536デフォルトの名無しさん
2008/02/11(月) 16:04:39暇なの?
0537デフォルトの名無しさん
2008/02/11(月) 16:18:55愛されるより愛したい
0538デフォルトの名無しさん
2008/02/11(月) 16:30:08以前多少かじった程度なのでこの際に少し弄ってみることにします。
0539デフォルトの名無しさん
2008/02/11(月) 18:51:440540デフォルトの名無しさん
2008/02/11(月) 19:17:590541デフォルトの名無しさん
2008/02/11(月) 19:18:30そんなに分けたかったらフォント削除しやがれ
0542デフォルトの名無しさん
2008/02/11(月) 19:30:18複数のレイヤーに分離して抽象化する事について、理解できない人は案外多いもんだよ。
0543デフォルトの名無しさん
2008/02/11(月) 20:20:02いろいろ気持ち悪いから、utf-8で入力やprintがすんなりできそうな対話窓とか以前探したんだけど、
いまいちしっくり来るのが無かった。
0544デフォルトの名無しさん
2008/02/11(月) 20:53:06* 内部はunicodeに統一
* 入力はunicodeにデコード
* 出力はunicodeからエンコード
ってやるのが妥当なんじゃない?
0545デフォルトの名無しさん
2008/02/11(月) 21:01:02Poderosaとか、TeraTermとか、puttyとかあるじゃん
0546デフォルトの名無しさん
2008/02/11(月) 21:09:44インタプリタでの出力は0xhogeになってしまうのはなぜ?
0547デフォルトの名無しさん
2008/02/11(月) 21:11:520548デフォルトの名無しさん
2008/02/11(月) 21:22:330549デフォルトの名無しさん
2008/02/12(火) 00:28:370550デフォルトの名無しさん
2008/02/15(金) 18:36:44>>504
>>509
>>525
さらに追加
WingIDEで日本語表示した場合。
>>> 'あいう'
'\xe3\x81\x82\xe3\x81\x84\xe3\x81\x86'
>>> print 'あいう'
縺ゅ>縺・
>>> u'あいう'
u'\xe3\x81\x82\xe3\x81\x84\xe3\x81\x86'
>>> print u'あいう'
Traceback (most recent call last):
File "<string>", line 1, in <string>
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-8: ordinal not in range(128)
Gui板はPythonWinもWingIDEも自動ユニコードにならないが、
とりあえず日本語表示できた。
>>543
WingIDEがutf-8で入力、出力はユニコードもシフトJISもいけて
その上Windowsと同じでソースコードはシフトJIS、ユニコード両方、UTF-8全部いけちゃうのは知ってた?
0551デフォルトの名無しさん
2008/02/15(金) 18:41:56出力はシフトJISだけか・・・
入力はutf-8なのになあ・・・
>>> unicode('あいう','utf-8')
u'\u3042\u3044\u3046'
>>> print unicode('あいう','utf-8')
Traceback (most recent call last):
File "<string>", line 1, in <string>
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-2: ordinal not in range(128)
>>> print unicode('あいう','utf-8').encode('sjis')
あいう
>>> print unicode('あいう','utf-8').encode('utf-8')
縺ゅ>縺・
0552デフォルトの名無しさん
2008/02/15(金) 20:29:04知らなかったす。python用IDEみたいですね。
しかし対話でutf-8をスムースに使いたいのは、主にIPythonだったりするんで…。
0553デフォルトの名無しさん
2008/02/18(月) 06:45:59>2chの任意のスレを複数登録・管理し、有益な情報が投稿されたときのみ通知、
これって簡単?
0554デフォルトの名無しさん
2008/02/18(月) 06:52:47有益判定が大変。
0555デフォルトの名無しさん
2008/02/18(月) 06:55:02多分これは除外不可能
http://mamono.2ch.net/test/read.cgi/tvd/1202050287/901-907
0556デフォルトの名無しさん
2008/02/18(月) 12:25:58スレタイ「エジソンの母」
↓
896の主張「エジソンは天才」
↓
896の主張「天才が世のため人のためになるかならないのか」
↓
901の主張「白(青)LEDの実用化は天才的かつ人のためにもなった例」
↓
902(=901)の自慢話
↓
903(=901)の自慢話(自演?)
↓
904ネタ
↓
905雑談
↓
906スレ本来の流れにもどる?
↓
907(906の自演)
0557デフォルトの名無しさん
2008/02/18(月) 12:27:48辛うじてスレの主旨に合ってるが
それ以降は糞レス
ただ、いずれにせよ漏れにとっては全部無益だった
0558デフォルトの名無しさん
2008/02/18(月) 12:29:05「何も通知しないプログラム」を作れば、ほぼ仕様に適合する。
0559デフォルトの名無しさん
2008/02/19(火) 07:12:13俺には、スレ全部が無益だ
0560デフォルトの名無しさん
2008/02/24(日) 10:25:44できた
print "Hello World."
0561デフォルトの名無しさん
2008/02/24(日) 11:52:090562デフォルトの名無しさん
2008/02/24(日) 11:57:44さっさと入って来いこの幸せもん。
すみずみまで丁寧に洗ってやるんだぞ。
0563デフォルトの名無しさん
2008/02/26(火) 15:12:56フォルダの中の複数の画像をまとめて縮小ってどうやりますか?
>>> import Image
>>> snow = Image.open(r"C:\pyphot\snow.jpg")
>>> snow.thumbnail((200,200),Image.ANTIALIAS)
>>> snow.save(r"C:\pyphot\snow_resize.jpg")
これで1枚は出来たんだけど応用が利かない俺orz
for文使うとは思うんだけど…
教えて偉い人
0564デフォルトの名無しさん
2008/02/26(火) 15:30:39>フォルダの中の複数の画像をまとめて縮小
この一言を実行するために必要な作業を、できるだけ細かく分けて考えてみな。
そして、リストにして書き出してみな。
まず日本語で書く。
書いたらここに貼り付ける。
「コンピュータの気持ちになる」ことが肝心。
0565563
2008/02/26(火) 15:41:28・フォルダのファイルを1つ読む
・そのファイルを縮小
・そのファイルをセーブ
・次のファイルを読む
・次のファイルを縮小
・次のファイルをセーブ
こんな感じですか?
0566デフォルトの名無しさん
2008/02/26(火) 15:46:34path = os.path.join(d, f)
# ...
0567デフォルトの名無しさん
2008/02/26(火) 15:50:09# ...
0568デフォルトの名無しさん
2008/02/26(火) 15:59:20その質問のために「画像の縮小」という話題から入るところに、応用力の無さを感じる。
もっと抽象的に考える習慣を付けると良いのではないかな。
0569デフォルトの名無しさん
2008/02/26(火) 16:08:50次は、そのリストを最初から順番に実行するスクリプトを作ってみ。
もし行き詰まったら、リストの項目をさらに細かな処理に分けてみるとよいよ。
0570563
2008/02/26(火) 16:29:57抽象的ですか…
>>567を使って
for path in glob.glob(r"C:\pyphot\*.jpg"):
for i in path:
i.thumbnail((200,200),Image.ANTIALIAS)
i.save(r"C:\pyphot\i_resize.jpg")
こんな感じですかね?
0571デフォルトの名無しさん
2008/02/26(火) 16:33:110572デフォルトの名無しさん
2008/02/26(火) 16:35:460573563
2008/02/26(火) 16:35:53for path in glob.glob(r"C:\pyphot\*.jpg"):
for i in path:
i.thumbnail((200,200),Image.ANTIALIAS)
i.save(r"C:\pyphot\resize.%s") % i
これでどうですか?
0574デフォルトの名無しさん
2008/02/26(火) 16:37:420575デフォルトの名無しさん
2008/02/26(火) 16:39:140577hint
2008/02/26(火) 17:19:322. import Imageがなくなってる
3. i.save(r"C:\pyphot\resize.%s") % i は文法的におかしくて、i.save(r"C:\pyphot\resize.%s" % i)としないといけない、(でも、コレもなんか変)
0578563
2008/02/26(火) 17:32:15for path in glob.glob(r"C:\pyphot\*.jpg"):
import Image
r = Image.open(path)
r.thumbnail((200,200),Image.ANTIALIAS)
r.save(path)
できましたけど、上書きされる方法しか思いつかなかったorz
別に出力させたい時はどうしたらいいんでしょうか?
0579デフォルトの名無しさん
2008/02/26(火) 17:33:470580デフォルトの名無しさん
2008/02/26(火) 17:34:050581デフォルトの名無しさん
2008/02/26(火) 17:40:210582563
2008/02/26(火) 18:21:52for path in glob.glob(r"C:\pyphot\*.jpg"):
import Image
r = Image.open(path)
r.thumbnail((200,200),Image.ANTIALIAS)
path = path[:10] + "re" + path[10:]
r.save(path)
できました!
スレ汚しすまそ
0583デフォルトの名無しさん
2008/02/26(火) 18:44:06あたりを使ったほうが良いよ
0584デフォルトの名無しさん
2008/02/26(火) 21:12:41reとosで事足りる気がするが
0586デフォルトの名無しさん
2008/02/26(火) 22:41:240587デフォルトの名無しさん
2008/02/26(火) 22:52:36一般論として専用に設計されたものがあるなら、汎用品を使って再発明しないほうが良い
0588デフォルトの名無しさん
2008/02/26(火) 23:14:37os.listdirで列挙してreで絞込みのほうがいいと思うんだが
0589デフォルトの名無しさん
2008/02/26(火) 23:19:28文字コードの絡みで問題ないようにするには
メソッドじゃなくてreできちんと処理すべきだと思うんだ。
日本語ファイル名が0なら必要ないけど。
0590563
2008/02/26(火) 23:35:51勉強の為にどなたか書き直してもらえませんか?
0591デフォルトの名無しさん
2008/02/26(火) 23:55:17import glob
import Image
dir = r"C:\pyphot\"
for path in glob.glob(dir+"*.jpg"):
r = Image.open(path)
r.thumbnail((200,200),Image.ANTIALIAS)
path = path[:len(dir)] + "re" + path[len(dir):]
r.save(path)
0592デフォルトの名無しさん
2008/02/27(水) 00:13:22import os.path
import Image
dn = r"C:\pyphot\"
for fn in os.listdir(dn):
if fn.lower().endswith(".jpg") and os.path.isfile(fn):
r = Image.open(fn)
r.thumbnail((200,200), Image.ANTIALIAS)
os.rename(fn, fn + ".old")
r.save(fn)
0593デフォルトの名無しさん
2008/02/27(水) 02:55:29re_file = re.compile(r'(?i)(.*)(\.jpg|\.gif|\.png|\.bmp)$')
thumb = '-thumb'
for fn in os.listdir('.'):
m = re_file.match(fn)
if m and os.path.isfile(fn) and not m.group(1).endswith(thumb):
r = Image.open(fn)
r.thumbnail((200,200), Image.ANTIALIAS)
fn_new = m.group(1) + thumb + m.group(2)
print fn, '->', fn_new
r.save(fn_new)
0594デフォルトの名無しさん
2008/02/27(水) 02:58:36>>> filename, ext = os.path.splitext(filename)
>>> dirname, filename, ext
('c:\\test', 'foo', '.jpg')
この辺りも使うとスマートなんジャマイカ
0595デフォルトの名無しさん
2008/02/27(水) 03:22:540596デフォルトの名無しさん
2008/02/27(水) 03:31:35うーん、あんま変わんなかったような。まぁ練習ということで。
import re, os, Image
dirname = u'.'
exts = ('.jpg', '.gif', '.png', '.bmp')
suffix = u'-thumb'
for fn in os.listdir(dirname):
filename = os.path.join(dirname, fn)
basename, ext = os.path.splitext(fn)
if ext.lower() in exts \
and os.path.isfile(filename) \
and not basename.endswith(suffix):
r = Image.open(filename)
r.thumbnail((200,200), Image.ANTIALIAS)
newfile = os.path.join(dirname, basename + suffix + ext)
print fn, '->', newfile
r.save(newfile)
0597デフォルトの名無しさん
2008/02/27(水) 05:25:340598デフォルトの名無しさん
2008/02/27(水) 08:51:16あとどうせやるなら差分なりポイントだけ貼ってくれよ
間違い探しなんか誰もしたくないだろう
0599デフォルトの名無しさん
2008/02/27(水) 10:22:540600デフォルトの名無しさん
2008/02/27(水) 11:40:060601デフォルトの名無しさん
2008/02/27(水) 13:27:370602563
2008/02/27(水) 15:00:26勉強になります
ありがとうございます
>>592
if fn.lower().endswith(".jpg") and os.path.isfile(fn):
がちょっと解りにくかったですが理解しました
ありがとうございます
>>593
正規表現は勉強不足ですorz
print fn, '->', fn_new ←これいいですね
>>594
なるほど
勉強になります
>>596
ファイル名分解した方がよさげですね
GUI使って便利に出来たらいいなぁ なんて
思ってますが、先は長そうです
みなさん、ありがとうございました
0603デフォルトの名無しさん
2008/02/27(水) 18:19:280604デフォルトの名無しさん
2008/02/27(水) 18:31:190605デフォルトの名無しさん
2008/02/27(水) 18:55:150606デフォルトの名無しさん
2008/02/27(水) 18:59:150607デフォルトの名無しさん
2008/02/27(水) 19:11:310608デフォルトの名無しさん
2008/02/27(水) 19:16:12無圧縮ならOK
0609デフォルトの名無しさん
2008/03/07(金) 23:01:09宿題というほどではないのですが、
Pythonで2chのdatファイルを集めるプログラムを作成しています。
しかし、通信時間を設定していないせいか、何件かdatファイルをダウンロードしたら、
それ以降404エラーばかりになってしまいます。
そこで、一件獲得したら10秒待つようにしたいのですが、
どうしたらよろしいでしょうか?
宜しくお願いいたします。
0610デフォルトの名無しさん
2008/03/07(金) 23:07:22import time
time.sleep(10)
0612デフォルトの名無しさん
2008/03/09(日) 08:47:05更新をチェックして新規と更新のあった分だけをダウンロードしろよ?
0613デフォルトの名無しさん
2008/03/29(土) 15:27:500614デフォルトの名無しさん
2008/03/30(日) 12:24:530615デフォルトの名無しさん
2008/04/13(日) 18:48:34『.』 を弾くにはどうしたら良いでしょうか?
0616デフォルトの名無しさん
2008/04/13(日) 19:50:45\.
0617デフォルトの名無しさん
2008/04/13(日) 20:11:32[]の中じゃ、.*?とかは「その文字そのもの」を表して、
任意の文字とか最短マッチとかにならないんだが。
import re
data = 'a.b'
temp ='-'
data = re.sub("[.*?]", temp, data)
print data
結果
a-b
0618デフォルトの名無しさん
2008/04/29(火) 22:59:21構文を解釈するモジュールなんてないですか?
0619デフォルトの名無しさん
2008/04/29(火) 23:08:270620618
2008/04/29(火) 23:21:21至れり尽くせり的なものがあるといいのですが。
0621デフォルトの名無しさん
2008/04/29(火) 23:28:360622618
2008/04/30(水) 00:27:480623デフォルトの名無しさん
2008/05/06(火) 13:56:32Nの平方根を求める。初期値 a0、許容誤差 epsとして
def my_sqrt(n, a0, eps):
x = a0
new_x = 0.5 * ( x + n/x)
if abs(new_x -x) < eps:
# print 'In if abs statement:', new_x
return new_x
else:
my_sqrt(n, new_x, eps)
>>> my_sqrt(5.0, 2.0, 1.e-5)
# 5の平方根を初期値2から求める。誤差1.e-5になったら終了。
としても、returnで値が帰ってこないんですがなぜでしょうか?
#でコメントアウトしたprint文は(コメントを取ると)出力されるので、
再帰計算中に、許容誤差範囲に収束しないという事ではなさそうです。
0624デフォルトの名無しさん
2008/05/06(火) 13:59:31最後の行に return が要るんじゃね?
0625デフォルトの名無しさん
2008/05/06(火) 14:04:34return my_sqrt(n, new_x,eps)でうまくいきました…ありがとうございました。
再帰で帰ってきた値を、さらに返さないといけないって事ですね。
0626デフォルトの名無しさん
2008/06/06(金) 03:19:29キュー構造を実現するqueクラスとその確認コードを含むque.pyを作成せよ
queクラスは以下のメソッドを含む事。
def enque( data )
#値を受け取り、enque動作(待ち追加)を行う。
def deque()
#deque動作(待ち解消)を行い、値を返す。
def __str__()
#str()やprintで用いられる特殊メソッド。
#自分を表す文字列表現(ここでは内部値のカンマ区切りとする)を返す。
以下のコードを実行し、何が起きるかを理解せよ。
#! /usr/bin/python
import Tkinter as Tk
la = Tk.Label(None, text='Hello World!', font=('Times', '18'))
la.pack()
la.mainloop()
先のプログラムを書き換え、文字色と背景色を変更せよ。
文字色は白(#FFFFFF)、背景色は黒(#000000)とする。
「Hello World!」の表示を2つ並べたウインドウを表示せよ。
複数並べるには、親となるフレームを用意し、そこに配置すれば良い。
量が多いですがお願いします。
0627デフォルトの名無しさん
2008/06/06(金) 06:39:26他スレで同じ質問して既に回答例を出してもらってるじゃん。
0628デフォルトの名無しさん
2008/06/06(金) 08:04:45これは人に聞くもんじゃないだろ・・・
0629デフォルトの名無しさん
2008/06/06(金) 22:26:450630デフォルトの名無しさん
2008/06/06(金) 23:53:070631デフォルトの名無しさん
2008/06/06(金) 23:54:37理解するだけだけどな。
0632デフォルトの名無しさん
2008/06/07(土) 00:26:570633デフォルトの名無しさん
2008/06/07(土) 00:37:13レポート提出したあとに口頭諮問がある
そこでしどろもどろになったら終わり
悪いことは言わんから課題は自分でやっとけ
0634デフォルトの名無しさん
2008/06/07(土) 07:35:34la を l1 とか書くと可読性が著しく低下することを理解
0635デフォルトの名無しさん
2008/06/07(土) 13:10:080636デフォルトの名無しさん
2008/06/07(土) 14:05:190637デフォルトの名無しさん
2008/06/07(土) 14:08:55( ゚ω゚ ) お断りします
/ \
((⊂ ) ノ\つ))
(_⌒ヽ
ヽ ヘ }
ε≡Ξ ノノ `J
0638デフォルトの名無しさん
2008/06/07(土) 14:19:160639デフォルトの名無しさん
2008/06/07(土) 14:21:140640デフォルトの名無しさん
2008/06/09(月) 20:15:06指定したフォルダの中身をフォルダの構成などを含めて完全にバックアップするソフトを作成すること。
尚、バックアップファイルには以下の機能を持つようにすること。
・ 対象ファイルや除外ファイルを指定できるような
仕組みを持つこと。
・ バックアップ経過のログを作成すること。
ログにはバックアップ処理の実行時間を出力すること。
また、既にあるフォルダが指定された場合の対処についてもそれぞれ考慮して
機能の実装を行うこと。
作業に余裕のある人は以下の機能を追加すること。
・バックアップしたファイルを圧縮する仕組みの追加。
・プログラムが常駐する仕組みの追加。
【 用語 】
【 期限 】6月13日まで
【 Ver 】2.5.1
【 補足 】丸投げです。
始めたばかりでまったくわかりませんでした。
なにとぞよろしくお願い致します。
0641デフォルトの名無しさん
2008/06/10(火) 03:10:52へたれコードで申し訳ありません。
ご指摘、ご批判お願いします。
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6848.txt
0642デフォルトの名無しさん
2008/06/10(火) 04:10:15ありがとうございます
0643デフォルトの名無しさん
2008/06/12(木) 23:20:10どうこうするプログラムを作りたいのですが
日付の比較がわかりません。
変数nowをシリアル値に変換しればできるのでしょうが
何か違う気がします。
シンプルに比較できないでしょうか?
ご教授下さいお願いします。
now=datetime.datetime.today()
prv=now-datetime.timedelta(days=-4)
t1=os.path.getctime("c:/hoge.txt")
if prv>t1:←ここ
print "ok"
0644デフォルトの名無しさん
2008/06/12(木) 23:29:08あとnow-datetime.timedelta(days=-4)だと4日後になるよ(-はどっちか)
0645デフォルトの名無しさん
2008/06/13(金) 02:41:040646デフォルトの名無しさん
2008/06/13(金) 03:35:44直線を表示するコンポーネントを作成せよ。
【 用語 】
【 期限 】6月14日まで
【 Ver 】2.5.1
【 補足 】丸投げです。
javaで書くとこんな感じです↓
import java.awt.Graphics;
import javax.swing.JComponent;
import javax.swing.JFrame;
public class LinesSample extends JComponent {
protected void paintComponent(Graphics g) {
g.clearRect(0, 0, getWidth(), getHeight());
// (10, 100) から (200, 100) に線を引く
g.drawLine(10, 100, 200, 100);
// (100, 10) -> (100, 200) に線を引く
g.drawLine(100, 10, 100, 200);
// (30, 120) -> (180, 20) に線を引く
g.drawLine(30, 120, 180, 20);
}
public static void main(String[] args) {
JFrame frame = new JFrame("lines sample");
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.getContentPane().add(new LinesSample());
frame.setSize(250, 250);
frame.setVisible(true);
}
}
0647デフォルトの名無しさん
2008/06/13(金) 03:51:43指定は何もないの?
なに使ってもいいの?
0648デフォルトの名無しさん
2008/06/13(金) 03:56:57一応、教えてもらった後自分で理解しようと思いますんで
わからない部分はまた質問させていただきます。
0649デフォルトの名無しさん
2008/06/13(金) 08:26:30それまでに回答をお願いします。
一応、よろしくお願いします。
0650デフォルトの名無しさん
2008/06/13(金) 09:20:31root = Tk.Tk()
canvas = Tk.Canvas(root, width=250, height=250)
canvas.pack()
canvas.create_line(50, 50, 200, 200)
root.mainloop()
参考:http://effbot.org/tkinterbook/canvas.htm
0651デフォルトの名無しさん
2008/06/13(金) 12:55:16些細な質問なんですが
from Tkinter import *
と
import Tkinter as Tk
はどのように違うのでしょうか?
同じTkinterを使用していると思うのですが?
0652デフォルトの名無しさん
2008/06/13(金) 12:56:44644さんありがとうございます。
fromtimestampで出来ました。
ありがとうございました。
後4日前はdays=4ですね
ご指摘有り難うございます。
0653デフォルトの名無しさん
2008/06/13(金) 14:00:14名前の管理の仕方が違う。後者の書き方はインポートする側の名前空間を汚さない。
from Tkinter import *
の場合は Tkinter モジュールで定義された名前が全部インポートする側(の名前空間)に取り込まれる。
メリットは取り込んだ名前をそのまま使えること。
例えば c = Canvas(...) のように Canvas クラスを直接使用できる。
デメリットは、取り込んだ名前をインポートする側のプログラムで上書き(再定義)してしまったり、
そうならないように注意してプログラムを書かなければいけなくなること。
例えば import 後に class Canvas: ... のように同じ名前のクラスや変数を再定義してしまうと
Tkinter の Canvas は使えなくなる。それで構わないこともあるが、うっかりミスにつながりやすい。
import Tkinter as Tk
の場合はインポートする側(の名前空間)に Tk という名前しか取り込まない。
メリットは Tkinter モジュールで定義されたクラスや変数を上書き定義してしまう心配がないこと、
デメリットは c = Tk.Canvas(...) のようにいちいちモジュール名を前置きしないといけないことだ。
俺は名前空間を汚さない後者の書き方を好んで使っている。
0654デフォルトの名無しさん
2008/06/14(土) 21:07:29なるほど、一長一短で好みが分かれるところですね。
回答ありがとうございます。
0655デフォルトの名無しさん
2008/06/15(日) 09:28:54前者は百害あって一理なし
いまどきタイピング量なんてよほど長くなければ気にするな
0656デフォルトの名無しさん
2008/06/15(日) 14:30:55後者はas以降の識別子が人によって異なることがあるのが嫌い
import fooだけで使いたいからモジュール名がPEP8で薦められているように短いと嬉しい
0657デフォルトの名無しさん
2008/06/15(日) 20:24:59http://www.jython.org/applets/issues.html
↑証明書つければOKって読んだんですが、
証明書つけても、↓。たすけて
Exception in thread "AWT-EventQueue-2" java.lang.NoClassDefFoundError: org/python/core/parser
at org.python.core.Py.compile_flags(Unknown Source)
at org.python.core.Py.compile_flags(Unknown Source)
at org.python.core.__builtin__.compile(Unknown Source)
at org.python.core.__builtin__.eval(Unknown Source)
at org.python.core.__builtin__.eval(Unknown Source)
at org.python.core.BuiltinFunctions.__call__(Unknown Source)
at app$_PyInner.actionPerformed$36(app.java:556)
at app$_PyInner.call_function(app.java:245)
(ry
0658デフォルトの名無しさん
2008/06/15(日) 20:28:370659デフォルトの名無しさん
2008/06/15(日) 21:03:32うるせーなテメーがやってみろ屑
0660デフォルトの名無しさん
2008/06/15(日) 21:20:49>>1
0661デフォルトの名無しさん
2008/06/18(水) 11:38:15【 期限 】 6月20日
【 Ver 】 2.5.1
【 補足 】拙いですがとりあえず途中まで書いてみましたがうまく動きません・・・
どなたかご教授お願いします。
import Tkinter as Tk
class App(Tk.Frame):
def init(self, master = None):
x = Tk.Frame(self, master, height=200, width=200)
a = Tk.Label(None, text='Change Color!', bg='#000000', font=('Times', '18'))
#for y in x: print str(y.)
while True:
#print x["height"]
if int(x["height"]) > 300 and int(x["width"]) > 300:
a["bg"] = "#FFFFFF"
a["fg"]="skyblue"
a.place(relx=0, rely=0, relheight=1, relwidth=1)
def __init__(self, master = None):
Tk.Frame.__init__(self, master)
self.pack()
if __name__ == "__main__":
app = App()
app.mainloop()
app.init
0662デフォルトの名無しさん
2008/06/18(水) 15:48:08うるせーなテメーがやってみろ屑
0663デフォルトの名無しさん
2008/06/18(水) 16:51:06import Tkinter as Tk
class App(Tk.Frame):
X, Y = 300, 300
def __init__(self, master=None):
Tk.Frame.__init__(self, master, width=200, height=200, bg="white")
self.bind("<Configure>", self.on_configure)
self.pack(expand=True, fill=Tk.BOTH)
def on_configure(self, event):
if event.width > App.X and event.height > App.Y:
self['bg'] = "black"
else:
self['bg'] = "white"
if __name__ == "__main__":
app = App()
app.mainloop()
0664デフォルトの名無しさん
2008/06/19(木) 19:42:23ありがとうございます。
0665デフォルトの名無しさん
2008/06/21(土) 23:44:43どこの大学の課題ですか?
0666デフォルトの名無しさん
2008/06/22(日) 06:16:490667デフォルトの名無しさん
2008/06/23(月) 22:53:42?
0668デフォルトの名無しさん
2008/07/13(日) 11:36:39大学でのプログラミングの導入教育に使えそうなテキストってあるの?
0669デフォルトの名無しさん
2008/07/13(日) 21:27:36ttp://infomedia.nbu.ac.jp/wiki/index.php?%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E5%9F%BA%E7%A4%8E(%E8%B5%A4%E6%98%9F%E3%83%BB%E5%90%89%E6%A3%AE%E3%83%BB%E6%B5%9C%E7%94%B0)
0670デフォルトの名無しさん
2008/07/26(土) 12:26:02【 課題 】以下のチャットプログラムを書き換えて、これらの問題点を解決したチャットを作成せよ。
・udpを用いているため,パケットが届かない場合の処理をしていない
・サーバがメッセージをクライアントに送っている間に新しいメッセージが届くと、捨てられる可能性がある。
・だれのメッセージかがわからない。
【 用語 】特にないと思います。
【 期限 】8月4日まで
【 Ver 】特に希望はないです。
【 補足 】丸投げですが、よろしくお願いします。
もしかしたら行頭のスペース数が間違っている部分があるかもしれません。
0671デフォルトの名無しさん
2008/07/26(土) 12:27:54書き込めないので3回に分けます…
#!/usr/local/bin/python
import socket
import sys
import threading
MAXBUFSIZE = 1000
HOST = sys.argv[1]
PORT = 16001
class ShowMessages(threading.Thread):
def __init__(self, s):
self.s = s
threading.Thread.__init__(self)
def run(self):
while 1:
m = self.s.recvfrom(MAXBUFSIZE)
print m
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
0672デフォルトの名無しさん
2008/07/26(土) 12:28:44>>670
>>671
これでラストです。よろしくお願いします。
ip = socket.gethostbyname(HOST)
addr = (ip, PORT)
s.sendto('C', addr)
messageProcess = ShowMessages(s)
messageProcess.setDaemon(True)
messageProcess.start()
try:
while 1:
line = raw_input()
s.sendto('M' + line, addr)
except EOFError:
pass
except KeybardInterrupt:
pass
s.sendto('E', addr)
s.close()
0673デフォルトの名無しさん
2008/09/23(火) 20:31:510674デフォルトの名無しさん
2008/10/13(月) 15:28:210675デフォルトの名無しさん
2008/10/24(金) 23:42:14(1)座標、大きさをキーボードから入力させる
(2)入力にしたがってRectangleを生成
(3)キーボード入力された拡大倍率にしたがってresize
(4)キーボードから入力された移動幅にしたがってmove
ただし(2)(3)(4)を実行後にprintInfoを呼び出すこと
実行
x座標入力:1
y座標入力:2
幅入力:3
高さ入力:4
x座標:1y座標:2幅:3高さ:4
拡大倍率入力:2.5
x座標:1y座標:2幅:7高さ:10
x軸方向移動幅入力:3
y軸方向移動幅入力:3
x座標:4y座標:5幅:7高さ:10
暇なときお願いします
0676デフォルトの名無しさん
2008/10/25(土) 00:22:140677デフォルトの名無しさん
2008/10/25(土) 00:42:450678デフォルトの名無しさん
2008/10/25(土) 01:27:100679デフォルトの名無しさん
2008/10/25(土) 05:14:29class UseRectangle(Tk.Tk):
def run(self):
self.canvas = Tk.Canvas(self, bg="white")
self.canvas.pack(side=Tk.TOP)
self.canvas.create_rectangle(0, 0, 0, 0, fill="red", tag="rect")
Tk.Button(self, text="Move", command=self.move).pack(side=Tk.LEFT)
Tk.Button(self, text="Scale", command=self.scale).pack(side=Tk.LEFT)
Tk.Button(self, text="Quit", command=self.quit).pack(side=Tk.RIGHT)
self.x = int(raw_input("X = "))
self.y = int(raw_input("Y = "))
self.w = int(raw_input("Width = "))
self.h = int(raw_input("Height = "))
self.printInfo()
self.mainloop()
0680679の続き
2008/10/25(土) 05:15:29self.x += int(raw_input("move X = "))
self.y += int(raw_input("move Y = "))
self.printInfo()
def scale(self):
factor = float(raw_input("scale = "))
self.w = int(self.w * factor)
self.h = int(self.h * factor)
self.printInfo()
def printInfo(self):
self.canvas.coords("rect", self.x, self.y, self.x + self.w, self.y + self.h)
print "X:%d Y:%d Width:%d Height:%d" % (self.x, self.y, self.w, self.h)
app = UseRectangle()
app.run()
0681デフォルトの名無しさん
2008/10/25(土) 15:09:250682デフォルトの名無しさん
2008/10/26(日) 18:18:450683デフォルトの名無しさん
2008/10/26(日) 19:15:170684デフォルトの名無しさん
2008/10/26(日) 19:39:320685デフォルトの名無しさん
2008/10/29(水) 10:25:12Write a program that reads a string from the user containing a date in the form mm/dd/yyyy.
It should print the date in the form March 12, 2009.
リストなどを使えばいいらしいのですが、よく分からないんです。
誰か教えてください。
0686デフォルトの名無しさん
2008/10/29(水) 12:13:110687デフォルトの名無しさん
2008/10/29(水) 12:42:260688685
2008/10/29(水) 13:06:58今やってるチャプターの宿題なんですけど、
このチャプターがストリングやリストについてで、
You may assume that the string entered by the user follows the specified format.
One of the functions in your program should accept a number representing a month and
return the string representation of that month (for ex. getMonthString(3) should return ‘March’).
Instead of using an if-elif-else statement, create a list of strings and use indexing.
ってことなんでリストを使うのかと…。
0689デフォルトの名無しさん
2008/10/29(水) 13:19:54return [None, "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"][month]
date = raw_input("input date (mm/dd/yyyy) >")
month, day, year = map(int, date.split('/'))
print "%s %d, %d" % (getMonthString(month), day, year)
0690685
2008/10/29(水) 13:36:31ありがとうございます!
mapはまだ習っていないので使っていいのか分からないけど助かります!
Pythonの知識が少ないのですみません。。
0691685
2008/10/29(水) 13:44:58ってことは最後 March 12, 2008って出ますよね??
出力されないのですが、689のコードだけじゃだめってことですか?
0692デフォルトの名無しさん
2008/10/29(水) 17:18:250693デフォルトの名無しさん
2008/10/29(水) 18:39:080694デフォルトの名無しさん
2008/10/29(水) 18:51:33print time.strftime('%B %d, %Y', time.strptime(raw_input("input date (mm/dd/yyyy) >") , '%m/%d/%Y'))
0695デフォルトの名無しさん
2008/11/03(月) 18:00:340696デフォルトの名無しさん
2008/11/04(火) 12:48:09うどベンツのスリーポインテッド・スターみたいな形で間の角度120度)に分割
する線を引けという宿題 《必須》
【 用語 】
【 期限 】明日の12時までお願いします。
【 Ver ありません
【 補足 】初歩の初歩しかまだ習っていません。よろしくお願いします。
0697デフォルトの名無しさん
2008/11/04(火) 12:53:47print "○\x08\x08Y"
0698デフォルトの名無しさん
2008/11/04(火) 12:56:30奇点が4つあるからみり
0699デフォルトの名無しさん
2008/11/04(火) 13:04:280700デフォルトの名無しさん
2008/11/04(火) 13:30:410701デフォルトの名無しさん
2008/11/04(火) 13:31:310702デフォルトの名無しさん
2008/11/04(火) 15:03:19from turtle import *
from time import sleep
r = 100; d = 120
reset()
tracer(1)
circle(r)
up(); left(90); forward(r), down()
forward(r); backward(r); left(d)
forward(r); backward(r); left(d)
forward(r); backward(r); right(d/2); forward(r)
up(); forward(20)
color(1, 0, 1)
write('\x4c\x6f\x76\x65\x20\x61\x6e\x64\x20\x50\x65\x61\x63\x65')
tracer(0)
sleep(10)
0703696
2008/11/04(火) 19:49:02僕もあなたみたいな立場になれるよう頑張りたいと思います。ありがとうございました。
0704デフォルトの名無しさん
2008/12/02(火) 19:56:180705デフォルトの名無しさん
2008/12/02(火) 20:51:52ところで海の向こうではこんな本が出るですよ
Practical Programming: An Introduction to Computer Science Using Python
ttp://pragprog.com/titles/gwpy/practical-programming
日本でもCSの取っ掛かりにPythonとか定着すればいいのに
0706デフォルトの名無しさん
2008/12/04(木) 16:26:40買うなら円の高い今のうちだな。
0707デフォルトの名無しさん
2008/12/04(木) 22:05:25【サンタクロース、トナカイの酒気帯び運用。有罪判決に、マジ逆切れ&大暴れw(動画有り)】(ZDNet)
http://builder.japan.zdnet.com/story_media/20384793/081204_sun-james-gosling_03_400x300.jpg
http://builder.japan.zdnet.com/story_media/20384793/081204_sun-james-gosling_01_400x300.jpg
http://builder.japan.zdnet.com/story_media/20384793/081204_sun-james-gosling_02_400x300.jpg
0708デフォルトの名無しさん
2008/12/05(金) 17:25:340709デフォルトの名無しさん
2008/12/08(月) 19:49:490710デフォルトの名無しさん
2008/12/09(火) 05:22:15米サン・マイクロシステムズ バイスプレジデント兼フェローのジェームス・ゴスリング(James Gosling)氏
http://www.atmarkit.co.jp/news/200812/08/sun.html
0711デフォルトの名無しさん
2008/12/09(火) 07:34:220712デフォルトの名無しさん
2009/01/04(日) 19:30:20【 用語 】下記
【 期限 】1/7くらいまで
【 Ver 】2.5以上(3でも可)
【 補足 】
プログラムがランダムに出題し、人間が100個の
マスに回答を入力し、確認ボタンを押すと
全問正解なら回答にかかった時間を表示して終了。
間違った場合は間違った場所にカーソルが止まり、
別の値が入力されるまで待ちます。
横10個、縦10個の数字は各々11〜99までの乱数、
演算は +,-,x のみでよいです。
よろしくおねがいします。
0713デフォルトの名無しさん
2009/01/04(日) 22:56:080714デフォルトの名無しさん
2009/01/04(日) 23:06:46import tkinter as Tk
from tkinter.simpledialog import SimpleDialog
import random
class Application:
FONT = ("MSゴシック", 20)
OPS = [("+", lambda x, y: x + y),
("−", lambda x, y: x - y),
("×", lambda x, y: x * y)]
def __init__(self):
self.root = Tk.Tk()
self.root.title("100マス計算")
self.root.option_add("*font", self.FONT)
frame = Tk.Frame(self.root)
frame.pack(side=Tk.TOP)
self.op_button = Tk.Button(frame, command=self.change_op)
self.op_button.grid(row=0, column=0)
self.entries = {}
self.tate_labels = []
self.yoko_labels = []
for i in range(10):
label = Tk.Label(frame, text="0")
label.grid(row=i+1, column=0)
self.tate_labels.append(label)
label = Tk.Label(frame, text="0")
label.grid(row=0, column=i+1)
self.yoko_labels.append(label)
0715714の続き
2009/01/04(日) 23:08:22entry = Tk.Entry(frame, width=4)
entry.grid(row=i+1, column=j+1)
self.entries[(i, j)] = entry
button = Tk.Button(self.root, text="出題", command=self.new)
button.pack(side=Tk.LEFT)
button = Tk.Button(self.root, text="終了", command=self.root.quit)
button.pack(side=Tk.RIGHT)
button = Tk.Button(self.root, text="確認", command=self.check)
button.pack(side=Tk.BOTTOM)
self.easy = True
self.debug = False
self.op = 0
self.new()
self.root.mainloop()
def change_op(self):
self.op = (self.op + 1) % 3
self.new()
def new(self):
label, func = self.OPS[self.op]
self.op_button.config(text=label)
if self.easy:
self.tate = list(range(1, 11)); random.shuffle(self.tate)
self.yoko = list(range(1, 11)); random.shuffle(self.yoko)
else:
self.tate = [random.randint(11, 99) for i in range(10)]
self.yoko = [random.randint(11, 99) for i in range(10)]
for i, num in enumerate(self.tate):
self.tate_labels[i].config(text=str(num))
for i, num in enumerate(self.yoko):
self.yoko_labels[i].config(text=str(num))
0716715の続き
2009/01/04(日) 23:09:53for j in range(10):
entry = self.entries[(i, j)]
entry.config(bg="white")
entry.delete(0, Tk.END)
if self.debug:
for i in range(10):
for j in range(10):
answer = func(self.tate[i], self.yoko[j])
entry = self.entries[(i, j)]
entry.insert(0, str(answer))
def check(self):
label, func = self.OPS[self.op]
count = 0
for i in range(10):
for j in range(10):
entry = self.entries[(i, j)]
if entry.get() == str(func(self.tate[i], self.yoko[j])):
entry.config(bg="white")
else:
entry.config(bg="red")
count += 1
if count == 0:
msg = "全問正解\(^o^)/\nよくできました"
else:
msg = "赤色の{0}マスが間違っています".format(count)
d = SimpleDialog(self.root, text=msg, buttons=["OK"])
d.go()
Application()
0717デフォルトの名無しさん
2009/01/04(日) 23:12:090718714-716
2009/01/04(日) 23:21:38self.easy を偽にすると11〜99の数字で出題されるようになるお。
self.debug を真にすると自動的に正答が記入されるお。
Windows 以外の環境では FONT の値を適当にいじる必要があると思われ。
回答時はタブキーを利用して次のマスに移動すると良さげ。
足し算をすこしやってみたけどイライラして神経衰弱になりそうだったお orz
0719デフォルトの名無しさん
2009/01/05(月) 00:07:460720デフォルトの名無しさん
2009/01/05(月) 00:14:130721デフォルトの名無しさん
2009/01/05(月) 00:34:200722デフォルトの名無しさん
2009/01/05(月) 00:59:220723デフォルトの名無しさん
2009/01/05(月) 01:06:130724デフォルトの名無しさん
2009/01/05(月) 05:52:46これは負けられんwww
0725デフォルトの名無しさん
2009/01/05(月) 08:24:560726デフォルトの名無しさん
2009/01/05(月) 09:52:390727デフォルトの名無しさん
2009/01/05(月) 14:33:30OK、○十く,
0728デフォルトの名無しさん
2009/01/07(水) 21:51:120729デフォルトの名無しさん
2009/01/08(木) 00:54:330730デフォルトの名無しさん
2009/01/08(木) 15:37:11別れたい。
0731デフォルトの名無しさん
2009/01/08(木) 19:29:370732デフォルトの名無しさん
2009/01/08(木) 22:22:39殺伐とした世の中で
「ときめき」みたいなものを感じてくれるから
生きていて欲しい。
0733デフォルトの名無しさん
2009/01/08(木) 22:40:590734デフォルトの名無しさん
2009/01/08(木) 23:36:35みんなのpythonに大体載っていますか?
0735デフォルトの名無しさん
2009/01/08(木) 23:38:390736デフォルトの名無しさん
2009/01/08(木) 23:53:38別にWEBアプリとかいらないし
0737デフォルトの名無しさん
2009/01/09(金) 00:05:230738デフォルトの名無しさん
2009/01/09(金) 00:14:460739デフォルトの名無しさん
2009/01/09(金) 11:43:59一緒にいってこいや(w
0740デフォルトの名無しさん
2009/01/11(日) 11:47:170741デフォルトの名無しさん
2009/01/22(木) 02:17:170742デフォルトの名無しさん
2009/01/22(木) 05:43:34http://www.amazon.co.jp/products/dp/4873112109/
はじぱい原著 3rd Edition (2008/07/16) $26.39
http://www.amazon.com/Learning-Python-3rd-Mark-Lutz/dp/0596513984/
恥ぱい 初犯 (2007/11) \1,995
http://www.amazon.co.jp/products/dp/4777513211/
恥ぱいネットワーク 初版 (2008/06) \1,995
http://www.amazon.co.jp/products/dp/4777513688/
恥ぱい3 初版 (2009/01) \1,995
http://www.kohgakusha.co.jp/books/detail/978-4-7775-1419-9
恥ぱいが3.0用になったんですね
0743デフォルトの名無しさん
2009/01/22(木) 10:52:51ランキングがついてないってことは「一冊も売れてない」ということか。。。
0744デフォルトの名無しさん
2009/01/26(月) 00:49:52http://www.amazon.com/products/dp/1590593715 (2004/08/17 $36.51)
http://www.amazon.co.jp/products/dp/1590593715 (2004/08/30 \3,749) 値下がりしたっぽい
0745デフォルトの名無しさん
2009/01/26(月) 01:07:49163位 ─ 本 > コンピュータ・インターネット > 一般・入門書 > プログラミング入門書
574位 ─ 本 > コンピュータ・インターネット > インターネット・Web開発 > Web開発
1832位 ─ 本 > コンピュータ・インターネット > プログラミング
http://www.amazon.co.jp/dp/4777513688/ 恥ぱいネットワーク
89位 ─ 本 > コンピュータ・インターネット > 一般・入門書 > ネットワーク入門書
230位 ─ 本 > コンピュータ・インターネット > ネットワーク
277位 ─ 本 > コンピュータ・インターネット > 一般・入門書 > プログラミング入門書
http://www.amazon.co.jp/dp/4777514196/ 恥ぱい3
3020位 ─ 本 > コンピュータ・インターネット
http://www.amazon.co.jp/dp/479733665X/ みんPy
9位 ─ 本 > コンピュータ・インターネット > 一般・入門書 > プログラミング入門書
28位 ─ 本 > コンピュータ・インターネット > インターネット・Web開発 > Web開発
83位 ─ 本 > コンピュータ・インターネット > プログラミング
http://www.amazon.co.jp/dp/4797341815/ みんPy Webアプリ編
377位 ─ 本 > コンピュータ・インターネット > プログラミング
http://www.amazon.co.jp/dp/4774130567/ TurboGears + Python
537位 ─ 本 > コンピュータ・インターネット > 出版社別 > 技術評論社
http://www.amazon.co.jp/dp/4048672096/ 開発のプロが教える標準Django完全解説
1427位 ─ 本 > コンピュータ・インターネット > プログラミング
http://www.amazon.co.jp/dp/4839922829/ Jythonプログラミング
402位 ─ 本 > コンピュータ・インターネット > 出版社別 > 毎日コミュニケーションズ
0746デフォルトの名無しさん
2009/01/26(月) 08:39:45作者首くくるようだな。
0747デフォルトの名無しさん
2009/01/26(月) 12:32:210748デフォルトの名無しさん
2009/01/26(月) 12:56:490749デフォルトの名無しさん
2009/01/26(月) 19:20:320750デフォルトの名無しさん
2009/01/27(火) 17:52:01みんPy以外がクソに見える。
恥ぱい3とかJythonとか売れてなさ過ぎ。
0751デフォルトの名無しさん
2009/01/27(火) 18:46:141.「スリザーリンク」を解くプログラムを書いてください
2.適当な難易度で問題を出題するプログラムを書いてください
0752デフォルトの名無しさん
2009/01/27(火) 19:15:38じゃなくて勝手に線引けってこと?それってつまんなくね?
0753デフォルトの名無しさん
2009/01/27(火) 20:22:29Linux上で(pythonのバージョンは2.3)
mkdir()の引数を変数でパスを指定した正常にディレクトリが
作られるんですが、
windows上で(バージョンは2.6)
同じようにすると、パス中の\が\\に変換されてしまってるようで
うまくいきません。
ちなみにprintで変数を出力するとちゃんとそのままのパスが出てきます。
windows上ではどうすればいいんですか?
0754デフォルトの名無しさん
2009/01/27(火) 20:25:580755デフォルトの名無しさん
2009/01/27(火) 20:43:01"dirname\\filename"
"dirname/filename"
0756753
2009/01/27(火) 20:52:48import sys
import os
f = open(sys.argv[1],"r")
for li in f.readlines():
li.rstrip("\n")
abc=os.path.dirname(sys.argv[1])
os.mkdir(os.path.join(abc,li))
txtファイルに作りたいフォルダ名がいくつかかかれていて、
それを同じフォルダ内に作りたいんです。
>>755
そのパス自体をsys.argvから受け取ってる場合はrはどう付ければいいんですか?
0757756
2009/01/27(火) 21:33:26としてみました。が変わりませんでした…。
0758756
2009/01/27(火) 21:44:13エラー表示を見たら\が\\となってたのでてっきりそれが原因かと…。
お騒がせしました。
0759デフォルトの名無しさん
2009/01/27(火) 22:06:250760デフォルトの名無しさん
2009/01/28(水) 02:23:52Ura=[
[(1,2,3,4,5),(6,12,18,24,30),(7,14,21,28,35)],[(2,3,4,5),(7,13,19,25,31),(8,15,22,29)],
[(3,4,5,),(1,0),(8,14,20,26,32),(9,16,23),(7,12)],[(4,5),(2,1,0),(8,14,20,26,32),(7,12),(9,16,23)],
[(3,2,1,0),(10,16,22,28,34),(9,14,19,24)],[(4,3,2,1,0),(11,17,23,29,35),(10,15,20,25,30)],
[(7,8,9,10,11),(12,18,24,30),(13,20,29,34)],[(8,9,10,11),(13,19,25,31),(14,21,28,35)],
[(9,10,11),(7,6),(14,20,26,32),(13,18),(15,22,29)],[(10,11),(8,7,6),(15,21,29,35),(14,19,24),(16,23)],
[(9,8,7,6),(16,22,28,34),(15,20,25,30)],[(10,9,8,7,6),(17,23,29,35),(16,21,26,31)],
[(13,14,15,16,17),(6,0),(18,24,30),(7,2),(19,26,33)],[(14,15,16,17),(7,1),(19,25,31),(8,3),(20,29,34),()],[],[],
[(15,14,13,12),(10,4),(16,22,28,34),(9,2),(21,26,31)],[(16,15,14,13,12),(11,5),(23,29,35),(10,3),(22,27,32)],
[(19,20,21,22,23),(12,6,0),(18,24,30),(13,8,3),(25,32)],[(20,21,22,23),(13,7,1),(25,31),(14,9,4),(26,33)],[],[],
[(21,20,19,18),(16,10,4),(28,34),(15,8,1),(27,31)],[(22,21,20,19,18),(17,11,5),(29,35),(16,9,2),(28,33)],
[(25,26,27,28,29),(19,13,7,1),(18,12,6,0)],[(26,27,28,29),(19,13,7,1),(20,15,10,5)],
[(27,28,29),(25,24),(20,14,8,2),(19,12),(21,16,11)],[(26,25,24),(28,29),(21,15,9,3),(20,13,6),(22,17)],
[(27,26,25,24),(22,16,10,4),(21,14,7,0)],[(28,27,26,25,24),(23,17,11,5),(22,15,8,1)],
[(31,32,33,34,35),(24,18,12,6,0),(25,20,15,10,5)],[(32,33,34,35),(25,19,13,7,1),(26,21,16,11)],
[(31,30),(33,34,35),(26,20,14,8,2),(25,18),(27,22,17)],[(32,31,30),(34,35),(27,21,15,9,3),(28,23),(26,19,12)],
[(33,32,31,30),(28,22,16,10,4),(27,20,13,7,0)],[(34,33,32,31,30),(29,23,17,11,5),(28,21,14,7,0)]]
0761デフォルトの名無しさん
2009/01/28(水) 02:25:10for cnt in range(36):
if Baseban[cnt]==0:
matome=[]
for zyun in Ura[cnt]:
itizi=[]
for x in zyun:
if Baseban[x]==0:
break
elif Baseban[x]==i:
matome+=itizi
break
else:
itizi+=[x]
if matome!=[]:
Copyban=Baseban[:]
for x in matome:
Copyban[x]=i
Copyban[cnt]=i
Banlist+=[Copyban]
return Banlist
def Ura(ban):
copyban=[]
for cnt in ban:
copyban+=[-cnt]
return copyban
0762デフォルトの名無しさん
2009/01/28(水) 02:26:130763デフォルトの名無しさん
2009/01/28(水) 02:32:59これは6×6マスのオセロをプレイした時に分岐する数を数えるプログラムなんですが、
途中でメモリが足りなくなってフリーズしてしまいます。
どうにかpickleを使ってフリーズせずに最後まで数える事ができるプログラムにできないでしょうか?
自分で試行錯誤してみたのですがどうしても上手くいきませんでした。
0764デフォルトの名無しさん
2009/01/28(水) 08:09:42お騒がせしました
0765デフォルトの名無しさん
2009/01/28(水) 11:18:28お願いします。答えをください。
0766デフォルトの名無しさん
2009/01/28(水) 13:26:550767デフォルトの名無しさん
2009/01/28(水) 15:44:47とても見栄えのいいものじゃないんで恥ずかしいんですが・・・
0768デフォルトの名無しさん
2009/01/28(水) 18:19:03/ / ヽ ::: \
| (●), 、(●)、 |
| ,,ノ(、_, )ヽ、,, |
| ,;‐=‐ヽ .:::::|
\ `ニニ´ .:::/
/`ー‐--‐‐―´´\
.n:n nn
nf||| | | |^!n
f|.| | ∩ ∩|..| |.|
|: :: ! } {! ::: :|
ヽ ,イ ヽ :イ
0769デフォルトの名無しさん
2009/01/29(木) 00:46:020770デフォルトの名無しさん
2009/01/29(木) 13:49:54ちらっと走らせてみたけど、幅優先でやってるんじゃ?
10手目(?)ですら264994個も状態がある。
天文学的な容量のHDDでも持ってるんなら別だけど、
pickleとかじゃ解決しないような気がする。
0771デフォルトの名無しさん
2009/01/29(木) 22:58:12レベル高すぎ
もう少し簡単なのにしてくれないと誰もこなせないよ
0772デフォルトの名無しさん
2009/01/29(木) 23:00:44ttp://pc11.2ch.net/test/read.cgi/tech/1200175247/402
0773デフォルトの名無しさん
2009/01/30(金) 12:34:40書籍のページにランキングがあるんだよ。
総合ランキングを並べてみるな。
http://www.amazon.co.jp/dp/4777513211/ 恥ぱい
126,738位
http://www.amazon.co.jp/dp/4777513688/ 恥ぱいネットワーク
400,898位
http://www.amazon.co.jp/dp/4777514196/ 恥ぱい3
13,868位
http://www.amazon.co.jp/dp/479733665X/ みんPy
4,261位
http://www.amazon.co.jp/dp/4797341815/ みんPy Webアプリ編
102,274位
http://www.amazon.co.jp/dp/4774130567/ TurboGears + Python
295,137位
http://www.amazon.co.jp/dp/4048672096/ 開発のプロが教える標準Django完全解説
102,570位
http://www.amazon.co.jp/dp/4839922829/ Jythonプログラミング
41,324位
0774デフォルトの名無しさん
2009/01/30(金) 13:49:15そのランキングを(Amazonの中のひとが)どうやって出してるかって話では?
0775デフォルトの名無しさん
2009/01/30(金) 13:52:110776デフォルトの名無しさん
2009/01/30(金) 14:05:170777デフォルトの名無しさん
2009/01/30(金) 14:05:40どの部門に入っているかで順位入れ替わる可能性あるのか
部門新設するようなネタなら1位狙える訳だ
0778デフォルトの名無しさん
2009/01/30(金) 14:07:520779デフォルトの名無しさん
2009/01/30(金) 14:52:26>http://www.amazon.co.jp/dp/4777513688/ 恥ぱいネットワーク
>400,898位
が
>>745では比較的検討しているように見える
これはネットワーク系書籍が少ないことに由来するためであろうか
同部門の他の書籍(というか部門のかたまりのようなもの)が総合ランクで
どの辺の位置にいるのかも考慮する必要があるね
あるいは同部門の他の書籍との格差?(もしそれが定義出来るなら)も必要
A部門の5位はB部門の10位より下とかね
0780デフォルトの名無しさん
2009/01/30(金) 15:01:32当たり前のことほざくな。
0781デフォルトの名無しさん
2009/01/30(金) 19:01:54どうなってるの?
売れるとランキングが上がって、売れないと下がる仕組みなのかな?
0782デフォルトの名無しさん
2009/01/31(土) 06:50:16サンクス。書籍のページにあるのか。
スクレイピングして言語別のama書籍ランキングとか作れそうだね。面白そうだ
誰かやランかな
0783デフォルトの名無しさん
2009/02/04(水) 11:35:30元祖はじパイも売れてないんだな。
ランキング10万台って恥パイと変わらないだろ。みんパイを調べたら6000台だったぞ。
翻訳者が必死になるわけだ。
0784デフォルトの名無しさん
2009/02/07(土) 12:57:54ありがとうございました
0785デフォルトの名無しさん
2009/02/12(木) 16:50:37[2] 問題文(含コード&リンク):
1から9までの数字を縦横方向に同じものが並ばないように下記の例のように並べる
並べ方が全部で何通りあるかとその並びをすべて列挙する
[3] 環境:特になし
[4] 期限: 明日まで
[5] その他の制限:
例
534681297
685293714
948367125
153472869
426538971
261759483
817945632
379126548
792814356
0786デフォルトの名無しさん
2009/02/12(木) 17:02:050787デフォルトの名無しさん
2009/02/12(木) 17:08:55http://pc11.2ch.net/test/read.cgi/tech/1153585095/785
C/C++の宿題片付けます 122代目
http://pc11.2ch.net/test/read.cgi/tech/1232029287/542
Rubyの宿題教えてください。2限目
http://pc11.2ch.net/test/read.cgi/tech/1200175247/476
こんなんで数独の掲載料もらえるなら俺だって問題送りたい
無言であっさり方向性出てるあたりさすがPyという気はする
0788デフォルトの名無しさん
2009/02/13(金) 01:26:16http://pc11.2ch.net/test/read.cgi/tech/1183396621/141-
スクロールした形を数えないことにしたら16億くらいかなーとか
思ったんだけどそんな単純な話じゃないのね。
ttp://en.wikipedia.org/wiki/Latin_square
0789デフォルトの名無しさん
2009/03/29(日) 00:11:48[2] 問題文(含コード&リンク): 下の例参照
与えられた数字のみからなる文字列から各桁の数字に分割し、
隣り合う数字の合計の下一桁の値を並べたものを次の文字列とし、
結果が一桁になるまで繰り返しそれぞれの過程の文字列を出力する。
[3] 環境:特になし
[4] 期限: 明日まで
[5] その他の制限: 例
525123214112431
77635535523674
4398088075931
727886872424
99564459666
8410894522
251873974
76950261
3545287
899705
78675
5432
95
4
0790デフォルトの名無しさん
2009/03/29(日) 00:12:29[2] 問題文(含コード&リンク): 課題2
>>789 の出力において(上から1段目だけは入力なので)
上から2段目から最後の段までに現れる0から9数字の
総出現数と各数字毎の出現比率を出力する。
[3] 環境:特になし
[4] 期限: 明日まで
[5] その他の制限:
129個
0: 10回 3%
1: 43回 20%
2: 8回 2%
...
9: 18回 6%
のように出力してください。
おながいします
0791デフォルトの名無しさん
2009/03/29(日) 00:13:25[2] 問題文(含コード&リンク): 課題3
>>790 のスクリプト名を p2.py とする
その入出力について入力はスクリプトへの標準入力として例えば
echo 525123214112431 | p2.py
という形で受け取れるようにし、
10, 0.03, 43, 0.20, 8, 0.02, ... 18, 0.06, 129
の様に0から9までの出現数、出現比率(末尾に総数)をカンマ区切りで
出力するように変更し、
さらに新たなスクリプト p3.py から別プロセスとして p2.py を起動し、
標準出力を介して 111111111 から 999999999 までの連続する数字を与え、
それぞれの結果を出力する。
[3] 環境:特になし
[4] 期限: 明日まで
[5] その他の制限:
0792デフォルトの名無しさん
2009/03/29(日) 00:14:09[2] 問題文(含コード&リンク): 課題4
>>791 の出力について
111111111 から 999999999 までの連続する数字を与える代わりに
N 桁の全ての数字を与え、N を 2 〜 9 まで変化させたときに
各 N における全ての出現数、出現比率を0から9までの数字毎に合計し、出力する。
[3] 環境:特になし
[4] 期限: 明日まで
[5] その他の制限:
N = 2 のとき 10 〜 99 について
10 -> 1 が 1回
11 -> 2 が 1回
12 -> 3 が 1回
...
99 -> 18, 9 -> 1 が 1回, 8 が 1回, 9 が 1回
の回数の合計として
0から9までの出現数、出現比率(末尾に総数)をカンマ区切りで出力する。
よろしくおねがいします。
0793デフォルトの名無しさん
2009/03/29(日) 00:15:21http://www.google.com/search?hl=ja&lr=lang_ja&ie=UTF-8&oe=UTF-8&q=525123214112431&num=50
0794デフォルトの名無しさん
2009/04/11(土) 17:13:180795デフォルトの名無しさん
2009/04/14(火) 23:18:01(x1、y1)(x2、y2)(x3、y3)を頂点に持つ三角形の面積を計算して、その値を表示するプログラムを作成してください。
・公式:底辺x高さ÷2を使って計算してください。
お願いします!!
0796デフォルトの名無しさん
2009/04/15(水) 00:12:360797デフォルトの名無しさん
2009/04/17(金) 00:02:27ヘロンの公式を使うか、y2 == y3 のような制約があれば簡単なんだけど。
初歩的なことを見落として面倒なことをしている希ガス。ツッコミ歓迎。
# -*- coding: utf-8 -*-
import math
x1, y1 = 2.0, 4.0
x2, y2 = 4.0, 0.0
x3, y3 = 0.0, 2.0
# P1 (x1, y1) と P2 (x2, y2) を通る直線 y = ax + b の係数 a, b を求める
a = (y2 - y1) / (x2 - x1)
b = y1 - a * x1
# 直線 y = y3 と直線 y = ax + b の交点 P4 (x, y3) を求める
x = (y3 - b) / a
# P3 (x3, y3) と P4 (x, y3) が成す線分の長さを求める
bottom = math.fabs(x - x3)
# P1, P3, P4 が成す三角形の面積を求める
height1 = math.fabs(y1 - y3)
area1 = bottom * height1 / 2.0
# P2, P3, P4 が成す三角形の面積を求める
height2 = math.fabs(y2 - y3)
area2 = bottom * height2 / 2.0
# 二つの三角形の面積を加減して P1, P2, P3 が成す三角形の面積を求める
if y1 < y3 < y2 or y1 > y3 > y2:
print(area1 + area2)
else:
print(math.fabs(area1 - area2))
0798デフォルトの名無しさん
2009/04/17(金) 00:12:05http://pc11.2ch.net/test/read.cgi/prog/1130329231/906
http://pc12.2ch.net/test/read.cgi/tech/1192201659/808
http://pc12.2ch.net/test/read.cgi/tech/1200175247/503
http://pc12.2ch.net/test/read.cgi/tech/1205156417/821
http://pc12.2ch.net/test/read.cgi/tech/1212409946/66
http://pc12.2ch.net/test/read.cgi/tech/1212498448/876
http://pc12.2ch.net/test/read.cgi/tech/1217575832/499
http://pc12.2ch.net/test/read.cgi/tech/1224719784/934
http://pc12.2ch.net/test/read.cgi/tech/1232055225/770
http://pc12.2ch.net/test/read.cgi/tech/1235927586/774
http://pc12.2ch.net/test/read.cgi/tech/1237091698/493
http://pc12.2ch.net/test/read.cgi/tech/1238032584/16
0799デフォルトの名無しさん
2009/04/17(金) 00:33:57点(x0,y0)と直線(ax+by+c=0)との距離dは
d=abs(a*x0+b*y0+c)/sqrt(a**2+b**2)
0800デフォルトの名無しさん
2009/04/17(金) 02:14:05# -*- coding: utf-8 -*-
import math
x1, y1 = 2.0, 4.0
x2, y2 = 4.0, 0.0
x3, y3 = 0.0, 2.0
# P1 (x1, y1) と P2 (x2, y2) の距離を求める
bottom = math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2)
# P1 と P2 を通る直線 ax + by + c = 0 の係数 a, b, c を求める
a = y1 - y2
b = x2 - x1
c = x1 * y2 - x2 * y1
# P3 (x3, y3) から直線 ax + by + c = 0 に下ろした垂線の長さを求める
height = math.fabs(a * x3 + b * y3 + c) / math.sqrt(a ** 2 + b ** 2)
# P1, P2, P3 の成す三角形の面積を求める
print(bottom * height / 2.0)
0801デフォルトの名無しさん
2009/04/17(金) 02:15:53bottom = math.sqrt(a ** 2 + b ** 2)
height = math.fabs(a * x3 + b * y3 + c) / bottom
だから
print(math.fabs(a * x3 + b * y3 + c) / 2.0)
となって結局
# -*- coding: utf-8 -*-
import math
x1, y1 = 2.0, 4.0
x2, y2 = 4.0, 0.0
x3, y3 = 0.0, 2.0
# P1 (x1, y1), P2 (x2, y2), P3 (x3, y3) の成す三角形の面積を求める
print(math.fabs((y1 - y2) * x3 + (x2 - x1) * y3 + (x1 * y2 - x2 * y1)) / 2.0)
と単純化できるのかな。うーん、>>797とは比較にならないシンプルさ。
0802デフォルトの名無しさん
2009/04/17(金) 06:14:190803デフォルトの名無しさん
2009/04/17(金) 15:50:56((x2-x1)(y3-y1)-(x3-x1)(y2-y1))/2
0804デフォルトの名無しさん
2009/04/18(土) 02:46:540805デフォルトの名無しさん
2009/04/19(日) 20:40:420806デフォルトの名無しさん
2009/04/19(日) 21:51:220807デフォルトの名無しさん
2009/04/26(日) 10:44:071辺の長さが1の正三角形の各頂点から有理数の距離にある三角形内部の点を少なくとも3つ求めよ。
おまいら わかりますか?
0808デフォルトの名無しさん
2009/04/26(日) 19:23:051/3回転の点対称で、不動点(中央)ではないことは明らかだから、
1つ見つければあと2つは自動的に見つかる。
で、その問題の一つは...3平方の定理を連立させて平方根が消える解を求めるのかな?
0809デフォルトの名無しさん
2009/04/26(日) 19:34:49点をランダムに選んで距離をチェック
のループでなんとかなるだろう。
0810デフォルトの名無しさん
2009/04/27(月) 01:21:56平面座標は(x,y)で表すから2点からの距離を有理数とする2つの方程式で求まるはず。
3点からの距離を有理数とするためには、2元連立方程式の中から条件に合うのを
探す必要があるんとちゃうかな?
>>809
距離を有理数にするには座標は無理数になる・・・・かもな。
そうするとランダムに座標を決めて条件に合うのを探すのはむりちゃうかな?
0811デフォルトの名無しさん
2009/04/27(月) 06:26:37(√hoge)の結果が有理数か無理数か区別付くのか?
0812デフォルトの名無しさん
2009/04/27(月) 13:26:21まず、
「座標がすべて整数となる正三角形の頂点を求めよ(大きさは問わない)」
って方が取り組みやすいのかな。
0813デフォルトの名無しさん
2009/04/27(月) 19:18:43力技で解いてみたけど辺の上にある点しか見つからない。
A=3/8, B=5/8, C=7/8
A=5/21, B=16/21, C=19/21
A=7/15, B=8/15, C=13/15
A=7/40, B=33/40, C=37/40
A=11/35, B=24/35, C=31/35
A=13/48, B=35/48, C=43/48
:
0814813
2009/04/27(月) 19:23:17def gcd(a, b):
if a < 0: a = -a
if b < 0: b = -b
while b > 0:
a, b = b, a % b
return a
class Rational:
def __init__(self, numerator, denominator):
self.n = numerator; self.d = denominator
def __repr__(self):
return "{0}({1}, {2})".format(self.__class__.__name__, self.n, self.d)
def add(self, r):
n = self.n * r.d + r.n * self.d; d = self.d * r.d; x = gcd(n, d)
return Rational(n // x, d // x)
def sub(self, r):
n = self.n * r.d - r.n * self.d; d = self.d * r.d; x = gcd(n, d)
return Rational(n // x, d // x)
def mul(self, r):
n = self.n * r.n; d = self.d * r.d; x = gcd(n, d)
return Rational(n // x, d // x)
def div(self, r):
n = self.n * r.d; d = self.d * r.n; x = gcd(n, d)
return Rational(n // x, d // x)
def equal(self, r):
return self.n == r.n and self.d == r.d
def real(self):
return float(self.n) / float(self.d)
0815813
2009/04/27(月) 19:30:38for d in range(2, N):
yield Rational(1, d)
for n in range(2, N):
for d in range(n+1, N):
if gcd(n, d) == 1:
yield Rational(n, d)
def main():
ONE = Rational(1, 1); TWO = Rational(2, 1)
cos_30 = math.cos(math.pi * 30 / 180)
n = 50
for A in rational_range(n):
for B in rational_range(n):
if A.real() > B.real() or A.add(B).real() < 1.0: continue
D = ONE.add(A.mul(A)).sub(B.mul(B)).div(TWO) # D=(1+A^2-B^2)/2
if D.real() < cos_30 * A.real(): continue
0816813
2009/04/27(月) 19:32:38if X.real() == 0.0:
T = D.sub(Rational(1, 2))
Y = T.mul(T).add(Rational(3, 4)) # Y=(D-1/2)^2+3/4
for C in rational_range(n):
if C.mul(C).equal(Y):
print(A, B, C)
else:
T = D.sub(Rational(1, 2))
Y = T.mul(T).add(Rational(3, 4)).add(X) # Y=(D-1/2)^2+3/4+X
for C in rational_range(n):
T = C.mul(C).sub(Y)
if T.mul(T).div(X).equal(Rational(3, 1)):#(C-Y)^2/X==3
print(A, B, C)
main()
0817813
2009/04/27(月) 20:30:041. 有理数 A, B を生成 (A < 1, A + B < 1)
2. D = |A^2 - B^2 + 1| / 2 を計算 (D < A cos(30))
3. X = A^2 - D^2 を計算
4. 有理数 C を生成。
5. C == sqrt((D-1/2)^2+3/4) (X == 0 のとき) または
C == sqrt((D-1/2)^2+(sqrt(3/4)-X)^2) (それ以外) ならば
A, B, C を解として出力。
rational_range() で有限の有理数の集合を作って、
1. と 4. でループを回して A, B, C の組み合わせを作っています。
有理数がからむ計算はすべて有理数のまま計算しています
(5. の条件式は平方根が要らない形に直して計算)。
また初歩的なことを見落としている希ガス。ツッコミ歓迎。
0818デフォルトの名無しさん
2009/04/27(月) 20:35:270819デフォルトの名無しさん
2009/04/27(月) 21:18:43http://docs.python.org/library/fractions.html
0820デフォルトの名無しさん
2009/04/27(月) 21:25:53を正三角形の頂点,各頂点への距離をa,b,cとすると
P1(997/2709,sqrt(3)*64/903) a:1051/2709 b:1744/2709 c:2045/2709
P2(457/1029,sqrt(3)*44/343) a:73/147 b:88/147 c:95/147
P3(723/1568,sqrt(3)*195/1568) a:57/112 b:65/112 c:73/112
のとりあえず3点が求まりました。
0821デフォルトの名無しさん
2009/04/28(火) 08:09:11a = j/m
b = k/m
c = l/m
Pの座標を(x,y)を
x = q/m
y = sqrt(3)*r/m
とするとj,k,l,m,q,rをすべて自然数とすることができました。
後はルートの中が平方数となるようなm,q,rの組を探すだけ
対称な点を省くためと探索範囲を狭くするために
x > 0
y > 0
x < 1/2
y < x/sqrt(3)
の範囲を探しました。
mを10から3000まで1づつ増やしてq,rを探したけど結構時間がかかります。
0822デフォルトの名無しさん
2009/04/28(火) 21:38:39pythonは文法を覚えてる最中でまだプログラムは無理
誰かpythonへ変換してもらえるとありがたいです。
0823デフォルトの名無しさん
2009/04/28(火) 21:39:40(labels ((dv (x y) (/ (round (sqrt x)) y))
(sqrtest (x) (let ((a (round (sqrt x)))) (equal x (* a a))))
(lt (x y) (< (car x) (car y)))
(fsj (q r) (+ (* q q) (* 3 r r)))
(fsk (q r m) (+ (* q q) (* 3 r r) (* -2 m q) (* m m)))
(fsl (q r m) (+ (* q q) (* 3 r r) (* -1 m q) (* -3 m r) (* m m))))
(defun solv3 (start end)
(let ((j 0) (k 0) (l 0) (ans nil) (point nil))
(do ((m start (1+ m)))
((> m end) (sort ans #'lt))
(do ((q 1 (1+ q)) (limq (/ m 2)))
((>= q limq))
(do ((r 1 (1+ r)) (limr (/ q 3)))
((>= r limr))
(if (and (sqrtest (setf j (fsj q r)))
(sqrtest (setf k (fsk q r m)))
(sqrtest (setf l (fsl q r m))))
(progn
(setf point
(list (/ q m) (/ r m) (dv j m) (dv k m) (dv l m)))
(if (not (member point ans :test #'equal))
(progn
(push point ans)
(apply #'format t
"P(~A,~A*sqrt(3)) a:~10A b:~10A c:~10A~%"
point)))))))))))
0825デフォルトの名無しさん
2009/04/29(水) 00:33:240826デフォルトの名無しさん
2009/04/29(水) 05:23:340827デフォルトの名無しさん
2009/05/06(水) 00:29:510828デフォルトの名無しさん
2009/05/10(日) 11:34:460829デフォルトの名無しさん
2009/05/10(日) 14:11:37nとn^2+2がともに素数となるnを求めてください
素数テーブル
ビッグエンディアン ttp://www.opendogs.org/pub/pn_be.dat.gz
リトルエンディアン ttp://www.opendogs.org/pub/pn_le.dat.gz
0830デフォルトの名無しさん
2009/05/11(月) 12:00:01『3』ですか?
0831デフォルトの名無しさん
2009/05/12(火) 23:02:25くだらん問題出すな ボケ!
0832デフォルトの名無しさん
2009/05/20(水) 23:11:170833デフォルトの名無しさん
2009/05/28(木) 19:14:46次に,キーボードから文字列を読み込み,読み込んだ文字列を引数として定義した関数を呼び出すようにせよ。
【 用語 】
【 期限 】5月29
【 Ver 】なし
【 補足 】だれかお願いします。
0834デフォルトの名無しさん
2009/05/28(木) 19:18:36【 期限 】5月29
連続ですみません。だれかよろしくおねがいします。
0835デフォルトの名無しさん
2009/05/28(木) 19:46:10# Python 3.0.1
def foo(s):
for i in range(len(s), 0, -1):
print(s[:i])
s = input("# ")
foo(s)
0836デフォルトの名無しさん
2009/05/28(木) 19:47:02# Python 3.0.1
import random
func1 = lambda x, y: (2 * x) + (2 * y)
for i in range(10):
x = random.randint(0, 100)
y = random.randint(0, 100)
s = "{0}*2+{1}*2={2}".format(x, y, func1(x, y))
print(s)
0837デフォルトの名無しさん
2009/05/28(木) 19:51:02def hoge(s):
l = len(s)
while(s[:l]):
print s[:l]
l -= 1
hoge(raw_input())
(↑python3.xならhoge(input()) )
>>834
x2, y2ってそれぞれxの2乗, yの2乗という解釈でいいのかなこれ
def func1(x, y):
return x**2 + y**2
0838デフォルトの名無しさん
2009/05/28(木) 21:08:400839デフォルトの名無しさん
2009/05/28(木) 21:12:240840デフォルトの名無しさん
2009/05/28(木) 21:59:240841デフォルトの名無しさん
2009/05/29(金) 02:03:01def foo(s):
while(s):
print s
s=s[:-1]
s = input("# ")
foo(s)
0842デフォルトの名無しさん
2009/05/30(土) 17:45:18[課題1]1から20までのすべての整数で割り切れる最小の数を求めるプログラムを書け.
[課題2]キーボードから自然数を入力すると,その約数をすべて表示するプログラムを書け.
これもよろしくおねがいします。.
0843デフォルトの名無しさん
2009/05/30(土) 18:19:33課題2
答えは一応出ますが入力が大きい時の効率化を考えてません
target = input()
for i in xrange(1, target+1):
if target % i == 0:
print i,
0844デフォルトの名無しさん
2009/05/30(土) 18:20:28def gcd(a, b):
while(b):
a, b = b, a%b
return a
result = 1
for i in xrange(2, 21):
result = (result * i) / gcd(result, i)
print result
0845デフォルトの名無しさん
2009/05/30(土) 20:29:30少なくとも割ってあまり0なら商の方も約数だし
確認は √target まででいいはずだし
0846デフォルトの名無しさん
2009/05/30(土) 21:08:29指摘ありがとうございます。修正しました
import math
target = input()
result = []
for i in xrange(1, int(math.sqrt(target))+1):
if target % i == 0:
result.extend([i, target/i])
print ', '.join(str(x) for x in sorted(result))
0847デフォルトの名無しさん
2009/05/30(土) 21:16:30- result.extend([i, target/i])
+ result.append(i)
+ if target/i != i:
+ result.append(target/i)
0848デフォルトの名無しさん
2009/05/31(日) 03:51:09ループは for i in xrange(1, target+1): でよくて
if target/i < i: を終了条件にして中断すれば良いと思う
0849デフォルトの名無しさん
2009/05/31(日) 05:15:500850デフォルトの名無しさん
2009/06/01(月) 14:47:47e = 1 + 1/1! + 1/2! + 1/3! + 1/4! + ...
= 2.7182818284...
0851デフォルトの名無しさん
2009/06/01(月) 18:10:27s = 0.0
for i in xrange(20):
s += 1.0 / math.factorial(i)
print s
0852デフォルトの名無しさん
2009/06/01(月) 18:25:180853デフォルトの名無しさん
2009/06/01(月) 19:25:340854デフォルトの名無しさん
2009/06/01(月) 21:26:51問題には書かれてないけど。
0855デフォルトの名無しさん
2009/06/01(月) 22:10:040856デフォルトの名無しさん
2009/06/01(月) 22:28:42だって float 精度で充分なら
math.e に敵うものはないよ
0857デフォルトの名無しさん
2009/06/01(月) 22:32:480858デフォルトの名無しさん
2009/06/01(月) 22:40:390859デフォルトの名無しさん
2009/06/02(火) 03:45:35では模範解答をおながいします
0860デフォルトの名無しさん
2009/06/03(水) 11:08:32fraction
ttp://docs.python.org/library/fractions.html
ttp://lightson.dip.jp/zope/ZWiki/192_e6_9c_89_e7_90_86_e6_95_b0_e3_82_92_e4_bd_bf_e3_81_86
ttp://d.hatena.ne.jp/inamori/20090417/p2
ttp://d.hatena.ne.jp/yatt/20080926/1222406535
decimal
ttp://www.python.jp/doc/release/lib/module-decimal.html
ttp://d.hatena.ne.jp/piro_suke/20070822/1187756537
ttp://jutememo.blogspot.com/2008/08/python_27.html
ttp://jutememo.blogspot.com/2008/09/python-2-eval-decimal.html
ttp://jutememo.blogspot.com/2008/09/python-3-float-decimal.html
0861デフォルトの名無しさん
2009/06/04(木) 02:21:170862デフォルトの名無しさん
2009/06/08(月) 23:47:00Polygonをスーパークラスとして,正三角形(Triangle),正四角形(Square)を表現するクラスをそれぞれ定義せよ.
辺の長さのみを引数に与えてインスタンスを生成する
自身の面積を計算して結果を返すメソッドarea()を持つ
√3 = 1.73 としてよい
メインルーチンでは,実際にインスタンスを生成し,各インスタンスについて,インスタンス自身,周囲の長さ,面積の3項目を表示するようにせよ
お願いします!
0863デフォルトの名無しさん
2009/06/09(火) 00:18:08def __init__(self, size):
self.size = size
def area(self):
raise NotImplementedError("%s.area() is not implemented yet." % self.__class__.__name__)
class Triangle(Polygon):
def area(self):
n = self.size
return 1.73 * n * n / 4
class Square(Polygon):
def area(self):
n = self.size
return n * n
あとはまかせた
0864デフォルトの名無しさん
2009/06/09(火) 04:26:32class Polygon(object):
def __init__(self, angles, length):
self.angles = angles
self.length = length
def area(self):
t = 2.0 * math.pi / self.angles
return (self.angles * self.length * self.length * math.sin(t)) / (4.0 * (1.0 - cos(t)))
class Triangle(Polygon):
def __init__(self, length):
super(Triangle, self).__init__(3, length)
class Square(Polygon):
def __init__(self, length):
super(Square, self).__init__(4, length)
あとはまかせた
0865デフォルトの名無しさん
2009/06/09(火) 04:31:21cos(t) を math.cos(t) にしてください
0866デフォルトの名無しさん
2009/06/09(火) 04:40:00Polygonの引数が辺の長さのみとなると
正多角形とする暗黙の了解でもあるのかな
(Squareは正方形でいいけど
Triangleは正三角形とは限らないのでは)
そうでなければ任意の多角形を考慮するべきで
Polygonの引数は辺の長さのリストの方が望ましい
0867デフォルトの名無しさん
2009/06/09(火) 04:54:00最小の内角が120度の多角形がある。
それに続く内角がその前の角より5度ずつ大きい多角形を作るとき、
その図形は何角形になるか?
(答えは2つあります。)
お願いします!
0868デフォルトの名無しさん
2009/06/09(火) 14:50:180869デフォルトの名無しさん
2009/06/09(火) 16:42:090870デフォルトの名無しさん
2009/06/09(火) 22:10:230871デフォルトの名無しさん
2009/06/10(水) 01:56:09初項 120 公差 5 の等差数列の和は
a(1) から a(n) まで
(120+120+5(n-1))n/2
従って
(120+120+5(n-1))n/2 = 180(n-2)
を解くと
n = 9, n = 16
9角形(凸型)
16角形(凹型)
0872デフォルトの名無しさん
2009/06/10(水) 02:00:48(self.angles * self.length * self.length * math.sin(t)) / (4.0 * (1.0 - math.cos(t)))
この式どこから出てきたん?
0873デフォルトの名無しさん
2009/06/10(水) 09:53:140874デフォルトの名無しさん
2009/06/10(水) 21:55:15そのあとが気になる
0875デフォルトの名無しさん
2009/06/11(木) 08:47:05簡単すぎてやるきがおきない
0876デフォルトの名無しさん
2009/06/12(金) 08:05:58if __name__ == __main__:
print("Triangle %d %d", 3, Triangle(1).area())
print("Square %d %d", 4, Square(1).area())
0877デフォルトの名無しさん
2009/06/17(水) 06:39:22a,b = input(), input()
#再帰関数
def gcd(a, b):
if b == 0:
return a
else:
gcd(b, a%b)
print d(a,b)
2つの自然数の最小公倍数を求める。
#上のgcdを用いて
print a*b/gcd(a,b)
0878デフォルトの名無しさん
2009/06/17(水) 06:44:10#(コードは煩雑そうに見えるが、速度が圧倒的に速い。
# 大きな数までの素数表が必要な場合に必要な方法。)
a = range(10000)
a[1] = 0 # 1 は素数ではない
for p in a:
if not p:
continue
elif p > 100: # 100 = sqrt(10000)
break
else:
for multi in xrange(p+p, 10000, p):
a[multi] = 0
# この時点で、aは、素数p番目にはpが、それ以外には0が入ったリストになっている。
a = [x for x in a if x]
for x in a: print x
0879デフォルトの名無しさん
2009/06/17(水) 10:31:51これってもっと簡単に書けない?
0880デフォルトの名無しさん
2009/06/17(水) 12:18:35あるいは
print '\n'.join(str(x) for x in a if x)
0881デフォルトの名無しさん
2009/06/18(木) 02:19:200882デフォルトの名無しさん
2009/06/18(木) 02:32:440883デフォルトの名無しさん
2009/06/18(木) 02:38:110884デフォルトの名無しさん
2009/06/22(月) 02:18:05def fact(n):
if n<=1: return 1
else: return n*fact(n-1)
e=0.0
for n in xrange(100):
e+=1.0/fact(n)
e
2.7182818284590455
math.exp(1)
2.7182818284590451
0885デフォルトの名無しさん
2009/06/24(水) 05:38:07(1)yに1を入れ
(2)yを2で割って
(3)yを表示
(4)1+yを1と比較し
(5)区別出来るときは(2)に戻る
(6)区別出来なくなったら終了
0886デフォルトの名無しさん
2009/06/24(水) 05:46:13while(True):
y/=2.0
print y
if 1.0+y-1.0==0.0:
break
結果が違うんですけどなぜでしょうか?
y=1.0
while(True):
y/=2.0
print y
if y==0.0:
break
0887デフォルトの名無しさん
2009/06/24(水) 17:58:25http://ja.wikipedia.org/wiki/%E8%AA%A4%E5%B7%AE#.E6.83.85.E5.A0.B1.E8.90.BD.E3.81.A1
0888デフォルトの名無しさん
2009/06/25(木) 14:59:430889デフォルトの名無しさん
2009/07/13(月) 09:32:503481
という数字(4桁/0含む)が与えられたとき
0 = 3 + 4 - 8 + 1
1 = 3 + 4 - 8 * -1
2 = -(3 + 4 - 8 - 1)
3 = 3 * 4 - 8 - 1
4 = (3 / (4 + 8))^-1
...
のように加減乗除のみで整数を順に造っていってください
0890デフォルトの名無しさん
2009/07/13(月) 11:57:58でいいじゃない。 ^-1って加減乗除なの?
0891デフォルトの名無しさん
2009/07/13(月) 13:33:080892デフォルトの名無しさん
2009/07/13(月) 20:27:26bitwise xorは反則だよな
0893デフォルトの名無しさん
2009/07/13(月) 22:01:341 : (((3) + (4)) / ((8) - (1)))
2 : (-(3) - ((4) - ((8) + (1))))
3 : (((3) * (4)) - ((8) + (1)))
4 : (((3) * (4)) - ((8) * (1)))
5 : (((3) * (4)) - ((8) - (1)))
6 : ((3) - ((4) - ((8) - (1))))
7 : ((3) - ((4) - ((8) * (1))))
8 : ((3) - ((4) - ((8) + (1))))
9 : ((3) * (-(4) + ((8) - (1))))
10 : (-(3) + ((4) + ((8) + (1))))
11 : (((3) * (-(4) + (8))) - (1))
12 : ((3) * (-(4) + ((8) * (1))))
13 : (((3) * (-(4) + (8))) + (1))
14 : ((3) + ((4) + ((8) - (1))))
15 : ((3) + ((4) + ((8) * (1))))
16 : ((3) + ((4) + ((8) + (1))))
19 : (((3) * (4)) + ((8) - (1)))
20 : (((3) * (4)) + ((8) * (1)))
21 : (((3) * (4)) + ((8) + (1)))
25 : (-(3) + ((4) * ((8) - (1))))
28 : (-(3) + (((4) * (8)) - (1)))
29 : (-(3) + ((4) * ((8) * (1))))
30 : (-(3) + (((4) * (8)) + (1)))
0894デフォルトの名無しさん
2009/07/14(火) 03:35:071278だとどうなりますか
0895デフォルトの名無しさん
2009/07/14(火) 09:25:380896デフォルトの名無しさん
2009/07/14(火) 09:30:250897デフォルトの名無しさん
2009/07/14(火) 11:01:380898デフォルトの名無しさん
2009/07/14(火) 12:45:320899デフォルトの名無しさん
2009/07/14(火) 17:17:140900デフォルトの名無しさん
2009/07/17(金) 13:34:071+1+8と1+8+1のように並び順が異なるだけのものは同一と考え、重複して出力しないようにすることが望ましい
0901デフォルトの名無しさん
2009/07/17(金) 13:38:12[(1, 1, 8), (1, 2, 7), (1, 3, 6), (1, 4, 5), (2, 2, 6), (2, 3, 5), (2, 4, 4), (3, 3, 4)]
0902デフォルトの名無しさん
2009/07/17(金) 13:41:32N個の自然数の合計が10になるような組み合わせをすべて列挙するプログラムを書け
0903デフォルトの名無しさん
2009/07/17(金) 14:09:02... if n == 1:
... if i <= sum: return [(sum,)]
... else: return []
... else:
... return [(x,) + rest for x in range(i, sum) for rest in f(n-1, sum-x, x)]
...
>>> f(1)
[(10,)]
>>> f(2)
[(1, 9), (2, 8), (3, 7), (4, 6), (5, 5)]
>>> f(3)
[(1, 1, 8), (1, 2, 7), (1, 3, 6), (1, 4, 5), (2, 2, 6), (2, 3, 5), (2, 4, 4), (3, 3, 4)]
>>> f(4)
[(1, 1, 1, 7), (1, 1, 2, 6), (1, 1, 3, 5), (1, 1, 4, 4), (1, 2, 2, 5), (1, 2, 3, 4), (1, 3, 3, 3), (2, 2, 2, 4), (2, 2, 3, 3)]
0904デフォルトの名無しさん
2009/07/17(金) 20:57:53・23本のマッチ棒からなる山があり,2人のプレーヤが山から交互にマッチ棒を取り除く
・一度に取ることのできるマッチ棒は1から3本
・山を空にしたプレーヤが勝ち
人間2人でこのゲームを行なうプログラムを作成せよ.
プログラムでは各プレーヤの手がルールに反していないかどうかのチェックと,勝負がついたかどうかのチェックを行なうこと。
また,最初に山にある本数と,各回に取ることができる最大の本数をプログラムの最初に変数にセットしておき,そこを変えるだけで本数の変化に対応できるようなプログラムにすること。
[期限]7月23
[var]わかりません…
0905デフォルトの名無しさん
2009/07/17(金) 21:46:550906デフォルトの名無しさん
2009/07/20(月) 00:42:33ファイル data1.txt の中に,次の形式でデータが格納されている.
田中,88
佐藤,65
このとき,ファイルの内容を読み出して,次の2つの処理を行なうプログラムを作成せよ.
* 平均点を計算し,表示する
* 最高得点と最低得点を得点者の名前とともに表示する
ただし,最高得点及び最低得点はそれぞれ1人ずつ(同点はない)と考えて良いものとする.
課題2. ヒストグラム
ファイル data2.txt には,1行に1つずつ点数データが書かれている.このファイルから点数データを読み出し,次のようなヒストグラムを出力するプログラムを書け.ただし,点数データは0以上100以下の整数とする.
* ヒストグラムは10点未満,10点〜19点,20点〜29点,...,80点〜89点,90点〜100点の10区間に分ける
* 人数の数だけ "*" を並べる
課題3 曜日計算
1999年1月1日は金曜日である.この日から2008年12月31日までの10年間に,1日が日曜日になった月が何回あったかを計算するプログラムを作成せよ.
0907デフォルトの名無しさん
2009/07/20(月) 01:34:21課題1 成績処理
from __future__ import division
data = [i.rstrip().split(',', 1) for i in open('date1.txt')]
f = lambda x: int(x[1])
s = sum(map(f, data))
print 'average:', s / len(data)
print 'max:', max(data, key=f)
print 'min:', min(data, key=f)
0908デフォルトの名無しさん
2009/07/20(月) 01:46:20課題2. ヒストグラム
t = [0] * 11
for i in open('date2.txt'):
t[int(i.rstrip('\n')) / 10] += 1
t[9] += t[10]
del t[10]
for n, i in enumerate(t):
print "%2d: %s" % (n * 10, '*' * i)
0909デフォルトの名無しさん
2009/07/20(月) 01:47:26課題3 曜日計算
from datetime import date
print len(list((year, month, 1) for year in range(1999, 2009) for month in range(1, 13) if date(year, month, 1).weekday() == 6))
0910デフォルトの名無しさん
2009/07/22(水) 16:45:52*先攻、後攻はゲーム毎に乱数で決定する
*人間が手を打った場合、コマを置ける場所かどうかのチェックを行うこと
*勝ち負けの判定を行うこと
*コンピュータ側の手はランダムでも良いが、可能な範囲で工夫してみよ
0911デフォルトの名無しさん
2009/07/24(金) 06:21:42S(145) = 1! + 4! + 5! = 1 + 24 + 120 = 145
となる.このように,S(n) = n となるn(n≧10)をすべて求めよ.
0912デフォルトの名無しさん
2009/07/24(金) 07:07:390913デフォルトの名無しさん
2009/07/24(金) 09:45:220914デフォルトの名無しさん
2009/07/24(金) 10:11:480915デフォルトの名無しさん
2009/07/24(金) 11:29:09s(1)=1
s(2)=2
0916デフォルトの名無しさん
2009/07/24(金) 14:15:010917デフォルトの名無しさん
2009/07/24(金) 19:48:00│●│
└─┤
_ ∩
( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘ おっぱい!おっぱい!
0918デフォルトの名無しさん
2009/08/02(日) 16:02:44英字一文字が一桁の数字(0-9)で表されるとき
one
+ nine
+ twenty
+ fifty
= eighty
となる組み合わせを検索してください
各行の先頭の文字は0以外です
0919デフォルトの名無しさん
2009/08/02(日) 18:24:27import itertools
for o,n,e,i,t,w,y,f,g,h in itertools.permutations(range(10)):
if 0 in (o,n,t,f,e): continue
if (100*o + 10*n + e) + (1000*n + 100*i + 10*n + e) + \
(100000*t + 10000*w + 1000*e + 100*n + 10*t + y) + \
(10000*f + 1000*i + 100*f + 10*t + y) == \
(100000*e + 10000*i + 1000*g + 100*h + 10*t + y):
print (o,n,e,i,t,w,y,f,g,h)
0920デフォルトの名無しさん
2009/08/02(日) 19:32:520921デフォルトの名無しさん
2009/08/02(日) 19:37:25if m<1:
yield()
else:
for r in perm(n, m-1):
for x in xrange(n):
if x not in r:
yield r + (x,)
def num(b, h, p):
return reduce(lambda x, y: x * 10 + p[h[y]], b, 0)
def check(a, s):
c = 0
h = {}
for w in a + [s]:
if w[0] not in h:
h[w[0]] = c
c += 1
d = c
for w in a + [s]:
for b in w[1:]:
if b not in h:
h[b] = c
c += 1
for p in perm(10, c):
if 0 in p[:d]:
continue
if sum([num(w, h, p) for w in a]) == num(s, h, p):
print '%s=%d' % ('+'.join(str(num(w, h, p)) for w in a), num(s, h, p))
if __name__ == '__main__':
a, s = raw_input('> ').replace(' ', '').split('=')
a = a.split('+')
check(a, s)
0922デフォルトの名無しさん
2009/08/02(日) 19:38:059567+1085=10652
> one + nine + twenty + fifty = eighty
984+8584+364832+75732=450132
0923デフォルトの名無しさん
2009/09/20(日) 01:30:400924デフォルトの名無しさん
2009/09/23(水) 02:40:24だいぶましになってる。完璧じゃないけど。
0925デフォルトの名無しさん
2009/09/23(水) 08:30:03ライブラリがUTF-8以外に対応してないなんてザラにある。
0926デフォルトの名無しさん
2009/09/23(水) 09:41:230927デフォルトの名無しさん
2009/09/23(水) 09:48:090928デフォルトの名無しさん
2009/09/23(水) 12:38:340929デフォルトの名無しさん
2009/09/24(木) 10:57:160930デフォルトの名無しさん
2009/09/24(木) 14:20:080931デフォルトの名無しさん
2009/10/25(日) 15:28:07どうみてもゴスリングだろと思ったらそうだった
0932デフォルトの名無しさん
2009/11/07(土) 15:36:23n! = 1 × 2 × 3 × ... × n (n ≧ 1)
0! = 1
引数nを与えるとn!を計算して返す関数fact(n)を定義し,それを用いて0!〜10!を計算して表示するプログラムを作成せよ.
0933デフォルトの名無しさん
2009/11/07(土) 15:45:13... return n * fact(n-1) if n else 1
...
>>> [fact(x) for x in range(11)]
[1, 1, 2, 6, 24, 120, 720, 5040, 40320, 362880, 3628800]
0934デフォルトの名無しさん
2009/11/07(土) 15:45:30for i in range(11):
print "%d! = %d" % (i, fact(i))
0935デフォルトの名無しさん
2009/11/07(土) 15:54:28次に,キーボードから文字列を読み込み,読み込んだ文字列を引数として定義した関数を呼び出すようにせよ.
0936デフォルトの名無しさん
2009/11/07(土) 16:05:22if s:
print s
foo(s[:-1])
foo(raw_input())
0937デフォルトの名無しさん
2009/11/09(月) 04:16:47指定したセルに抽出し、複数ある場合はそのしたに並べて抽出するようなプログラムを作りたいのですが、
どのようにしたらよいでしょうか?
Excel2003です
0938デフォルトの名無しさん
2009/11/09(月) 13:32:390939デフォルトの名無しさん
2009/11/09(月) 20:28:020940デフォルトの名無しさん
2009/11/11(水) 02:25:23urllib2.AbstractHTTPHandler.do_openにある
headers["Connection"] = "close"
を
headers["Connection"] = "keep-alive"
にすればできそうなのですが
# We want to make an HTTP/1.1 request, but the addinfourl
# class isn't prepared to deal with a persistent connection.
# It will try to read all remaining data from the socket,
# which will block while the server waits for the next request.
# So make sure the connection gets closed after the (only)
# request.
と注意書きがあります。これを無視すると重大な問題が起きるのでしょうか?
0941デフォルトの名無しさん
2009/11/12(木) 22:10:040942デフォルトの名無しさん
2009/11/12(木) 22:26:53いくつかの引数で呼び出して結果を確認すること.
0943デフォルトの名無しさん
2009/11/12(木) 22:27:502. 次に,data-0501.txtを読み込み,読み込んだ内容を表示しながら合計を計算して表示するプログラムを作成せよ.
0944デフォルトの名無しさん
2009/11/12(木) 22:30:39import re
print len(re.findall(r'(^#)', open('/etc/termcap').read(), re.M))
0945デフォルトの名無しさん
2009/11/12(木) 22:32:29x2 y2 ってなに?
0946デフォルトの名無しさん
2009/11/12(木) 22:39:49python -c 'for x in range(10): print x' | python -c 'import sys; print reduce(lambda a,b: a+int(b.replace("\n","")), sys.stdin.readlines(), 0)'
0947デフォルトの名無しさん
2009/11/12(木) 22:57:33内容表示しながらということだったので修正
python -c 'for x in range(10): print x' | python -c 'import sys; s=[]; print [s.append(n) or (n, sum(s)) for n in map(int, sys.stdin.readlines())]'
0948デフォルトの名無しさん
2009/11/12(木) 23:00:06ファイルを作成せよって書いてあるのに
パイプで受け渡ししたら題意満たして無いじゃん
0949デフォルトの名無しさん
2009/11/12(木) 23:07:51python -c 'import sys; s=[]; print [s.append(n) or (n, sum(s)) for n in map(int, sys.stdin.readlines())]' < data-0501.txt
0950デフォルトの名無しさん
2009/11/12(木) 23:14:21http://pc12.2ch.net/test/read.cgi/tech/1254281104/573
0951デフォルトの名無しさん
2009/11/12(木) 23:15:20スレ違い
0952デフォルトの名無しさん
2009/11/14(土) 12:04:10grep -c "^#" /etc/termcap
0953デフォルトの名無しさん
2009/11/14(土) 12:11:24それを popen2.popen3() または subprocess で書いたら許してやってもいい
0954デフォルトの名無しさん
2009/11/14(土) 14:49:500955デフォルトの名無しさん
2009/11/14(土) 14:55:21233168
ほんとかしら
0956デフォルトの名無しさん
2009/11/14(土) 16:28:361. 空のリストを変数intlistにセットする.
2. キーボードから整数を1つ読み込み,
* 整数が負の値だったら,読み込みは終了して3.へ進む.
* それ以外だったら,intlistの最後にその数を追加して2.を繰り返す.
3. 最大値を覚える変数maxnumを用意し,初期値として適切な値(各自で考えること)を代入する.
4. リストに入っている整数を順に変数iに代入しながら,リストの値がなくなるまで次の操作を繰り返す.
* maxnumとiの値を比較し,iの方が大きければ,maxnumの値をiで置き換える.
5. 最後にmaxnumに入っている値が最大値なので,それを表示する.
0957デフォルトの名無しさん
2009/11/14(土) 16:42:530958デフォルトの名無しさん
2009/11/14(土) 18:27:17#coding: UTF-8
intlist = []
while 0 == 0:
i = raw_input(u"整数を入力してください\n".encode("cp932"))
if not i.isdigit() and (not i[1::].isdigit() or i[0] != "-"):
print u"\n数値ではありませんでした".encode("cp932")
continue
i = int(i)
if i < 0:
if len(intlist) == 0:
continue
break
intlist.extend([i])
maxnum = -1
for i in intlist:
if i > maxnum: maxnum = i
print maxnum
0959デフォルトの名無しさん
2009/11/14(土) 18:32:460960デフォルトの名無しさん
2009/11/14(土) 18:37:21try: n = int(raw_input()); except ... とかやるよりいいね
0961デフォルトの名無しさん
2009/11/14(土) 19:04:150962961
2009/11/14(土) 19:13:46>
>文字列中に数字しかない場合には真を返し、その他の場合は偽を返します。
(*´・ω・)
0963デフォルトの名無しさん
2009/11/14(土) 19:14:31>>962を書いたのは>>960です
0964デフォルトの名無しさん
2009/11/15(日) 11:07:382. 氏名として"END"が入力されるまで1.を繰り返す.
3. "END"が入力されたら,ディクショナリの内容を "氏名\t電話番号\n" の形式でファイルに書き出す.
0965デフォルトの名無しさん
2009/11/15(日) 11:33:260966デフォルトの名無しさん
2009/11/15(日) 11:38:54#!/usr/bin/python
# -*- coding: utf-8 -*-
import os.path, sys
OUTPUT_FILE_PATH = os.path.expanduser("~/address_book.txt")
address_book = {}
while True:
name = raw_input(u"氏名: ".encode(sys.stdout.encoding)).decode(sys.stdout.encoding)
pnum = raw_input(u"電話番号 :".encode(sys.stdout.encoding)).decode(sys.stdout.encoding)
if name == u"END": break
address_book[name] = pnum
fp = file(OUTPUT_FILE_PATH, "w+")
for name in address_book:
text = u"%s\t%s\n" % (name, address_book[name])
fp.write(text)
fp.close()
0967デフォルトの名無しさん
2009/11/15(日) 11:45:05text = "%s\t%s\n" % (name.encode("utf-8"), address_book[name].encode("utf-8"))
0968デフォルトの名無しさん
2009/11/15(日) 11:50:39name = raw_input(u"氏名: ".encode(sys.stdout.encoding)).decode(sys.stdout.encoding)
pnum = raw_input(u"電話番号 :".encode(sys.stdout.encoding)).decode(sys.stdout.encoding)
こんな面倒なことしないとだめなん?
0969デフォルトの名無しさん
2009/11/15(日) 12:00:07あんまり環境(OS)に依存しないようにしてみた。
Windows持ってないからテストできないんだけどちゃんと動いた?
0970デフォルトの名無しさん
2009/11/15(日) 12:15:04この場合はどうなるんでしょうか?
0971デフォルトの名無しさん
2009/11/15(日) 12:16:07失礼
0972デフォルトの名無しさん
2009/11/15(日) 13:33:282. 人間はその数を推測し,キーボードから入力する.
3. 入力された値が正解であれば,「正解です」というメッセージと何回目の入力で正解したかを表示して終了する.
4. 入力された数が正解より大きければ,「大きすぎます」と表示して2.へ戻る
5. 入力された数が正解より小さければ,「小さすぎます」と表示して2.へ戻る
0973デフォルトの名無しさん
2009/11/15(日) 13:52:35#coding=utf-8
import random
A=random.randint(1,100)
i=0
while True:
i+=1
a=int(raw_input("数字を入力してください"))
if a==A:
print "%d回目で正解です"%i
break
elif a>A:print "大きすぎます"
else:print "小さすぎます"
0974デフォルトの名無しさん
2009/11/15(日) 14:01:56import itertools
ans = random.randint(1, 100)
for i in itertools.count(1):
try:
n = int(raw_input("# "))
except ValueError:
print "数字を入力してください"
continue
if n == ans:
print "正解です"
print i, "回目"
break
elif n < ans:
print "小さすぎます"
else:
print "大きすぎます"
0975デフォルトの名無しさん
2009/11/15(日) 22:49:370976デフォルトの名無しさん
2009/11/15(日) 23:27:450977デフォルトの名無しさん
2009/11/16(月) 06:32:29http://pc12.2ch.net/test/read.cgi/tech/1258320456/
0978デフォルトの名無しさん
2009/11/16(月) 07:31:360979デフォルトの名無しさん
2009/11/16(月) 07:32:340980デフォルトの名無しさん
2009/11/16(月) 09:02:530981デフォルトの名無しさん
2009/11/16(月) 09:05:420982デフォルトの名無しさん
2009/11/16(月) 09:10:260983デフォルトの名無しさん
2009/11/16(月) 09:35:180984デフォルトの名無しさん
2009/11/16(月) 09:36:210985デフォルトの名無しさん
2009/11/16(月) 09:37:050986デフォルトの名無しさん
2009/11/16(月) 10:34:440987デフォルトの名無しさん
2009/11/16(月) 10:37:300988デフォルトの名無しさん
2009/11/16(月) 10:57:240989デフォルトの名無しさん
2009/11/16(月) 11:06:080990デフォルトの名無しさん
2009/11/16(月) 11:08:270991デフォルトの名無しさん
2009/11/16(月) 11:13:07http://pc12.2ch.net/test/read.cgi/tech/1258320456/
0992デフォルトの名無しさん
2009/11/16(月) 11:20:570993デフォルトの名無しさん
2009/11/16(月) 13:01:040994デフォルトの名無しさん
2009/11/16(月) 13:01:370995デフォルトの名無しさん
2009/11/16(月) 13:02:030996デフォルトの名無しさん
2009/11/16(月) 13:02:230997デフォルトの名無しさん
2009/11/16(月) 13:02:460998デフォルトの名無しさん
2009/11/16(月) 13:03:070999デフォルトの名無しさん
2009/11/16(月) 13:03:291000デフォルトの名無しさん
2009/11/16(月) 13:04:40http://pc12.2ch.net/test/read.cgi/tech/1258320456/
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。