[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2chのread.cgiへ]
Update time : 05/09 23:01 / Filesize : 195 KB / Number-of Response : 712
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Python の宿題ここで答えます Part 1



1 名前:デフォルトの名無しさん mailto:sage [2006/07/23(日) 01:18:15 ]
【Pythonスレッド基本ルール】
1:問題文は自己省略せずに、直接全部貼り付けてください。
2:課題の「丸投げ」が最も好ましい提示法です。なるべく丸投げしてください。
3:数学問題は「○×法でせよ」だけでなく、その数式、前提条件も説明してください。
4:課題&宿題関連の質問はOKですが、それ以外の一般的な質問は禁止です。
5:もし回答プログラムがアップされたら、その返答と動作報告をお願いします。

【課題提示用テンプレ】
【 課題 】与えられた課題文をそのまま書きます 《必須》
【 用語 】数学用語、専門用語の意味、説明を書きます 《あれば必須》
【 期限 】提出期限、解答希望日があれば書きます
【 Ver  】希望するPythonバージョンがあれば書きます
【 補足 】課題について自分なりに補足する事、何か思う事があれば書きます。
       丸投げでない場合は、途中までのソースとその経過報告、
       質問点、疑問点を書きます(なるべく丸投げにしてください)

【回答プログラムの掲載場所】
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.cgi


39 名前:デフォルトの名無しさん mailto:sage [2006/08/08(火) 21:58:03 ]
>>Python2.3から2.5いずれにおいても動作することが望ましい。

この条件ってかなりきついな。
問題と無関係なところで苦労が多そうだ。

40 名前:デフォルトの名無しさん mailto:sage [2006/08/08(火) 22:45:03 ]
>>38

def 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:])


41 名前:デフォルトの名無しさん mailto:sage [2006/08/08(火) 22:49:18 ]
#!/usr/bin/python
# -*- 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()
    print
    ret = solv([int(n) for n in data])
    print u'最後に残った数字は %d です。' % ret

42 名前:41 mailto:sage [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が鬼門になりそうだけど。

43 名前:デフォルトの名無しさん mailto:sage [2006/08/08(火) 23:09:54 ]
>>42
手許のActivePython 2.4.2 on Windows XPではコメントアウトのままで大丈夫だよ
もちろんソースはUTF-8で記述
Cygwinは駄目だね

44 名前:41 mailto:sage [2006/08/08(火) 23:19:22 ]
>>43
本当だ。ActivePythonはいけますね。
cugwinはpythonに限らず、localeがちゃんと設定できないのが問題になる。

通常は locale.getdefaultlocale() で情報取れるんだけど、cygwinはNoneでした。
platform.platform() でCYGWINだとわかるから、これでcygwinかどうか判定して、cugwinなら決めうちにするしかないかな?

あと、codecs使わずにデフォルトのままでユニコード文字列が標準出力(変換)されるかどうかは、何を見ればいいんだろう?
もうすこし調べる・・・。

45 名前:デフォルトの名無しさん mailto:sage [2006/08/08(火) 23:23:30 ]
>>39
ふつうに作ったら、そうならない?

46 名前:41 mailto:sage [2006/08/08(火) 23:28:39 ]
cygwinが特殊なだけで、普通はutf-8で書いとけば問題ないようだな。
macとかはわからんけど。

47 名前:デフォルトの名無しさん mailto:sage [2006/08/08(火) 23:33:27 ]
えっ?普通utf-8なの?
全然しらんかった。



48 名前:41 mailto:sage [2006/08/08(火) 23:41:40 ]
>>47
windows上で動かすと決まっているなら、sjisで書いたほうが余計なこと考えずに済むようですね。(cygwin含む)

49 名前:デフォルトの名無しさん mailto:sage [2006/08/09(水) 00:06:37 ]
>>47
普通はソースの最初の # -*- coding: ×× とソースのコードが一致すれば大丈夫

50 名前:デフォルトの名無しさん mailto:sage [2006/08/09(水) 00:37:16 ]
# -*- coding: euc-jp -*-
import sys,string,traceback
import curses
stdscr = curses.initscr()
curses.nocbreak()
stdscr.keypad(0)
curses.echo()

stdscr.addstr(0, 0, "数字を入力してください。",curses.A_REVERSE)
numstr = stdscr.getstr(1,0, 10)

try:
  try:num = map(int,numstr)
  finally:curses.endwin()
except:
  traceback.print_exc()
  sys.exit(0)


51 名前:デフォルトの名無しさん mailto:sage [2006/08/09(水) 00:38:53 ]
x=10
y=3
while len(num) is not 1:
  for n in range( len(num) ):
    stdscr.addstr( y , y+x+n*2 , str(num[n]) )
  for n in range( len(num)-1 ):
    num[n] =( num[n] + num[n+1] ) % 10
  del num[-1]
  y += 1
stdscr.addstr( y , y+x+n*2 , str(num[0]))
stdscr.addstr(14,0, "最後に残った数字は %d です。" % num[0] )
stdscr.addstr(16,0, "\'q\' to Exit this program.",curses.A_UNDERLINE)
stdscr.refresh()
 
while True:
  stdscr.nodelay(1)
  c = stdscr.getch()
  if c == ord('q'):
    curses.endwin()
    break


52 名前:デフォルトの名無しさん mailto:sage [2006/08/09(水) 01:00:35 ]
>>49
あ、そうなんだ。安心したよ。サンキュ

53 名前:デフォルトの名無しさん mailto:sage [2006/08/09(水) 08:18:03 ]
step = lambda x: len(x[-1])==1 and x or step(x+[[(i+j)%10 for i, j in zip(x[-1][1:], x[-1][:-1])]])
print '¥n'.join([__import__('string').center(' '.join([str(s) for s in l]), 20) for l in step([[int(c) for c in raw_input('数字を入力してください: ').strip().split(' ')]])]+['最後に残った数字は%sです' %(s)])


54 名前:デフォルトの名無しさん mailto:sage [2006/08/09(水) 08:22:38 ]
まいなーりびじょん。
step = lambda x: len(x[-1])==1 and x or step(x+[[(i+j)%10 for i, j in zip(x[-1][1:], x[-1][:-1])]])
print '¥n'.join([__import__('string').center(' '.join([str(s) for s in l]), 20) for l in step([[int(c) for c in list(raw_input('数字を入力してください: ').strip())]])]+['最後に残った数字は%sです' %(s)])


55 名前:デフォルトの名無しさん mailto:sage [2006/08/09(水) 11:01:45 ]
ワンライナーもできたよ!
print '¥n'.join([' '*(len(s)-len(p))+' '.join([str(c) for c in p])
for p in [[reduce(lambda x, y: [(i+j)%10 for i, j in zip(x[:-1], x[1:])], range(r), range(len(s))) for r in range(len(s))]
for s in [list(raw_input('数字を入力してください: ').strip())]][0]]+['最後に残った数字は %s です' %c])

56 名前:デフォルトの名無しさん mailto:sage [2006/08/09(水) 11:13:36 ]
もはや検証してみる気にもならん

57 名前:デフォルトの名無しさん mailto:sage [2006/08/09(水) 12:38:32 ]
こういうスレ好き♥



58 名前:デフォルトの名無しさん mailto:sage [2006/08/09(水) 12:57:34 ]
sedでホワイトスペース2個を全角スペースにしたら
見やすいのか。。

59 名前:デフォルトの名無しさん mailto:sage [2006/08/12(土) 13:42:05 ]
こんな課題はどうだろう。
moe.homelinux.netの任意のスレッドに投稿されている絵を
ダウンロードするプログラムを作れ。


60 名前:デフォルトの名無しさん mailto:sage [2006/08/12(土) 15:05:20 ]
それは課題じゃなくてオマエがつくってほしいプログラムだろ。

61 名前:デフォルトの名無しさん mailto:sage [2006/08/12(土) 15:38:13 ]
もう作ってあるので心配しないで。

62 名前:デフォルトの名無しさん mailto:sage [2006/08/12(土) 22:53:36 ]
>>59
>moe.homelinux.net
なんだかわかんないけど同意させられそうになったんでヤメタ。

63 名前:デフォルトの名無しさん mailto:sage [2006/08/12(土) 22:59:17 ]
クッキー食べないとアクセスできなくなってるので
課題にはいいかなと。

64 名前:デフォルトの名無しさん mailto:sage [2006/08/12(土) 23:03:11 ]
PythonChallengeの10-20レベルあたりにCookieがあったな。

65 名前:デフォルトの名無しさん mailto:sage [2006/08/13(日) 05:00:18 ]
画像掲示板から物故抜くのを作ったよ。
よくあるネタだと思うけど、俺みたいな初心者にはほどよい難易度ですた。
流量によってアクセス頻度を調整しているので鯖にも優しいよ( ´ー`)

66 名前:デフォルトの名無しさん mailto:sage [2006/08/15(火) 22:21:31 ]
ファイル名にハイフンが入ったファイルをimportしたいんだが、
こんな感じで問題ないかな?

----------------
import imp

f = file('dame-file.txt', 'r')

try:
    dame = imp.load_module('dame', f, 'dame-file.txt', ('', 'r', imp.PY_SOURCE))
finally:
    f.close()
----------------

dame-file.txtというファイルをdameという名前でimportしてます。
一応実行してみたらちゃんと動いてるっぽいですが、見真似で書いたので不安です。

67 名前:66 mailto:sage [2006/08/16(水) 09:55:26 ]
朝になってよく見たらこれだけでOKだった。

import imp
dame = imp.load_source("dame", "dame-file.txt")



68 名前:デフォルトの名無しさん mailto:sage [2006/08/16(水) 09:58:41 ]
>>67
load_sourceは、obsoleteだけどね。



69 名前:デフォルトの名無しさん mailto:sage [2006/08/23(水) 08:51:57 ]
【課題】みんPy読書感想文を書け。
【補足】提灯記事はいらない。是非問わず忌憚のない意見を臨む。mojix語禁止。

70 名前:デフォルトの名無しさん mailto:sage [2006/08/23(水) 17:12:52 ]
感想文書くからZIPでくれ

71 名前:デフォルトの名無しさん mailto:sage [2006/08/23(水) 19:55:05 ]
>>69
まず最初に、公式ドキュメントで十分な人は買わなくても良い。
そうでない人は、はじPyより安くて軽いからおすすめ。
よく使うであろう標準モジュールの解説はもちろん、SQLiteとの接続モジュールや、
ElementTreeの解説もあって2.5以降も意識されている。
Web関連では、昔ながらのCGIだけでなく、Web2.0なことにも触れている。
Zopeまで含めているのはやり過ぎな気もするが、あって困るものじゃない。
その他、日本語関連の話題も抑えてあり総じて良い本といえる。
ただし、帯の「Google言語。」というコピーはいただけない。

72 名前:デフォルトの名無しさん mailto:sage [2006/08/23(水) 21:54:49 ]
>>69
> 69 名前:デフォルトの名無しさん :2006/08/23(水) 08:51:57
> 【課題】みんPy読書感想文を書け。
> 【補足】提灯記事はいらない。是非問わず忌憚のない意見を臨む。mojix語禁止。

宣伝乙


73 名前:デフォルトの名無しさん mailto:sage [2006/08/25(金) 00:38:03 ]
実況中継見てPythonにそそられて、PDF版のチュートリアルから入門して
自称中級者になりました。
もう入門なんてレベルじゃないけど みんPy は「お布施」として購入しました。


74 名前:デフォルトの名無しさん mailto:sage [2006/08/25(金) 00:53:58 ]
>>73
> 73 名前:デフォルトの名無しさん :2006/08/25(金) 00:38:03
> 実況中継見てPythonにそそられて、PDF版のチュートリアルから入門して
> 自称中級者になりました。
> もう入門なんてレベルじゃないけど みんPy は「お布施」として購入しました。
>
宣伝乙

75 名前:デフォルトの名無しさん mailto:sage [2006/08/25(金) 01:24:35 ]
その「お布施」で何かご利益があるのかよ?

76 名前:デフォルトの名無しさん mailto:sage [2006/08/25(金) 01:27:03 ]
お布施は、車とかプラズマテレビになる予定。


77 名前:デフォルトの名無しさん mailto:sage [2006/08/25(金) 08:59:08 ]
抽選で当たるの?いまざっと見たけど、応募ハガキは入ってなかった。



78 名前:デフォルトの名無しさん [2006/08/25(金) 12:25:09 ]
> もう入門なんてレベルじゃないけど みんPy は「お布施」として購入しました。

著者さん、Pythonに貢献してる人?

79 名前:デフォルトの名無しさん mailto:sage [2006/08/25(金) 12:36:50 ]
>>77
もれなく著者の自宅に届きます。


80 名前:デフォルトの名無しさん mailto:sage [2006/08/25(金) 12:37:38 ]
>>78
タダノリしてるだけじゃない。

81 名前:デフォルトの名無しさん mailto:sage [2006/08/25(金) 19:17:30 ]
>80
mojixさんってただ乗りしているの?

82 名前:デフォルトの名無しさん mailto:sage [2006/08/25(金) 20:19:36 ]
>>81
みんPyはmojix??

83 名前:デフォルトの名無しさん mailto:sage [2006/08/25(金) 20:28:42 ]
もう、みpは飽きた

84 名前:デフォルトの名無しさん mailto:sage [2006/08/25(金) 21:36:22 ]
>>78
本を書くこと自体が非常に大きな貢献。こればかりは誰にでもできることではない。

85 名前:デフォルトの名無しさん mailto:sage [2006/08/25(金) 22:08:30 ]
だれか二匹目のどじょうをあてこんで中級向けの本だしてくんないかなぁ。

86 名前:デフォルトの名無しさん mailto:sage [2006/08/26(土) 02:35:36 ]
Pythonでお宝動画を根こそぎゲット系の本とか

87 名前:デフォルトの名無しさん mailto:sage [2006/08/26(土) 02:41:52 ]
そこで256倍本



88 名前:デフォルトの名無しさん mailto:sage [2006/08/26(土) 18:34:35 ]
Pythonって、日本語の文章を処理するスクリプトを書こうとしたら途端にボロが出るんだな。
今まで便利に使わせてもらってただけにがっかりだ。

89 名前:デフォルトの名無しさん mailto:sage [2006/08/26(土) 19:06:48 ]
>>88
おまえの頭がボロ

90 名前:デフォルトの名無しさん mailto:sage [2006/08/26(土) 19:12:18 ]
>>89
激しく同意

>>88
どんな難しいスクリプト or 勘違いスクリプトなんだ?

91 名前:デフォルトの名無しさん mailto:sage [2006/08/26(土) 19:31:13 ]
>>88
勉強しろよ

92 名前:デフォルトの名無しさん mailto:sage [2006/08/26(土) 19:43:00 ]
日本語の使えなさはPerlレベルw

93 名前:デフォルトの名無しさん mailto:sage [2006/08/26(土) 19:45:26 ]
>>92
おまえの頭がPerlレベル

94 名前:デフォルトの名無しさん mailto:sage [2006/08/26(土) 19:49:12 ]
煽るだけのやつ、早くいなくならないかな・・・

95 名前:デフォルトの名無しさん mailto:sage [2006/08/26(土) 20:29:37 ]
perlで日本語処理かけないなんて
そうとうダメだぽ

96 名前:デフォルトの名無しさん mailto:sage [2006/08/26(土) 20:31:25 ]
そもそも日本語に限らずパイソンの文字列操作はダメだろ。
これがpythonicねぇとため息が出る。

97 名前:デフォルトの名無しさん mailto:sage [2006/08/26(土) 20:33:51 ]
Python至上主義者は、そんなことは些細なこととして、記憶から消し去ります。



98 名前:88 mailto:sage [2006/08/26(土) 21:05:27 ]
>>91
まさにそれなんだけどさw
一般的にPythonって、直感的に使えるし、難しいことはライブラリをimprot
すれば共通のインターフェイスで使える。
なのになんで日本語操作には勉強が必要なんだ、という叫びだな。
この変なトリックはパイ然としねーw
何、文字列型をユニコード型に変換ってw

99 名前:デフォルトの名無しさん mailto:sage [2006/08/26(土) 21:06:54 ]
Perlレベルw

100 名前:デフォルトの名無しさん mailto:sage [2006/08/26(土) 21:27:07 ]
なんだ勉強嫌いの子か

101 名前:デフォルトの名無しさん mailto:sage [2006/08/26(土) 21:52:08 ]
>>100
そんくらい面倒がらずにやるし、ましてや解かりませんとも言ってない。
「がっかり」だ、と言っているw
この仕様は、だせーよw

102 名前:デフォルトの名無しさん mailto:sage [2006/08/26(土) 22:11:12 ]
>>101
具体的に要望を書いたほうが建設的だと思う

103 名前:デフォルトの名無しさん mailto:sage [2006/08/27(日) 01:43:33 ]
Perl レベルなのは確かだと思う.
でもそれを言ったら Ruby 以外の外国産言語はどれも大差ない.

内部コードはユニコード、入出力時に変換します.
変換しなければ基本はASCII扱いで、SJISとかは危険よ.

問題なのは各言語のコーデックの機能を使いこなせないやつの能力.

104 名前:デフォルトの名無しさん mailto:sage [2006/08/27(日) 02:33:29 ]
> 問題なのは各言語のコーデックの機能を使いこなせないやつの能力.

いや、むしろ使いこなしのノウハウが誰にでも分かるように
まとまった形で広く公開されていないところが問題。

初心者に「とりあえずチュートリアル嫁」と言うのと同じぐらい簡単な
definitive なリソースが必要。



って言うのは簡単だけどな(苦笑

105 名前:デフォルトの名無しさん mailto:sage [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.

106 名前:デフォルトの名無しさん mailto:sage [2006/08/27(日) 05:05:25 ]
>>103
まともな評価が出来る人がいると分かって、安心したよ。

107 名前:デフォルトの名無しさん mailto:sage [2006/08/27(日) 09:48:54 ]
Ruby房が湧いた



108 名前:デフォルトの名無しさん mailto:sage [2006/08/27(日) 11:07:57 ]
>>105
自分が理解できないからって(w

109 名前:デフォルトの名無しさん [2006/08/27(日) 11:10:35 ]
わかるのだけでも(間違ってても)良いのでお願いします(>_<)

@地球の内部から地形を形成する力をなんと言うか
A地球の外部から地形を形成する力をなんと言うか
Bウェゲナーの大陸はパンゲアという1つの大陸から分かれたとする説を何というか
C地球の外周は約何kmか
D地球の表面は厚さ100kmほどのプレートに覆われ、これが移動するため、
現在のような大陸分布や山脈の形成が見られたとする説を何というか
E先カンブリア代の地層がむき出しになっている地形を何というか
F先カンブリア代の地層の上に古・中生代の地層が重なっているものを何というか
G新期造山帯と古期造山帯と安定陸塊で最も古い地形はどれか
H新期造山帯・古期造山帯・安定陸塊からでる地下資源をそれぞれ答よ
I新期造山帯は大きく2つに分けられる。2つの造山帯(山系)の名称を答えよ

110 名前:デフォルトの名無しさん mailto:sage [2006/08/27(日) 11:23:04 ]
>>109
スレ違い

111 名前:デフォルトの名無しさん mailto:sage [2006/08/27(日) 11:35:04 ]
''' 受験に備えて復習する 正誤は知らん

内的営力 外的営力 大陸移動説 40k プレートテクトニクス
楯状地 卓状地 安定陸塊 石油、石炭、鉄鉱石
アルプス・ヒマラヤ造山帯、環太平洋造山帯

'''

112 名前:デフォルトの名無しさん mailto:sage [2006/08/27(日) 12:09:27 ]
最近Pyスレを荒らしているのは高校生なのかなぁ

113 名前:デフォルトの名無しさん mailto:sage [2006/08/27(日) 12:36:16 ]
高校生にしてはレベル低いね

114 名前:デフォルトの名無しさん mailto:sage [2006/08/27(日) 22:36:36 ]
           Λ_Λ . . . .: : : ::: : :: ::::::::: :::::::::::::::::::::::::::::
 ナカチャン…   /:彡ミ゛ヽ;)ー、 . . .: : : :::::: :::::::::::::::::::::::::::::::::
         / :::/:: ヽ、ヽ、 ::i . .:: :.: ::: . :::::::::::::::::::::::::::::::::::::::
         / :::/;;:   ヽ ヽ ::l . :. :. .:: : :: :: :::::::: : ::::::::::::::::::
    ̄ ̄ ̄(_,ノ  ̄ ̄ ̄ヽ、_ノ
          ,,,,,
        / ,' 3  `ヽーっ
        l   ⊃ ⌒_つ
        `'ー---‐'''''

115 名前:デフォルトの名無しさん mailto:sage [2006/08/27(日) 22:49:33 ]
>>112
そのうち飽きるさ。

116 名前:デフォルトの名無しさん mailto:sage [2006/08/28(月) 18:23:41 ]
40kkmちょっと和んだ

117 名前:デフォルトの名無しさん mailto:sage [2006/08/28(月) 20:46:57 ]
おっpy



118 名前:デフォルトの名無しさん mailto:sage [2006/08/30(水) 23:55:41 ]
やっとおだやかになってきたねー

119 名前:デフォルトの名無しさん mailto:sage [2006/08/31(木) 00:45:21 ]
スレが立って一ヶ月以上。未だに宿題が出てこない件について。

つか、このスレいらんね。

120 名前:デフォルトの名無しさん mailto:sage [2006/08/31(木) 07:09:29 ]
夏休みの真っ最中にPythonの宿題が出るとは思えない。

121 名前:デフォルトの名無しさん mailto:sage [2006/08/31(木) 21:39:21 ]
さー、明日からしまっていこうかー

122 名前:デフォルトの名無しさん mailto:sage [2006/08/31(木) 23:18:27 ]
大学の夏休みはまだまだ続きます


123 名前:デフォルトの名無しさん mailto:sage [2006/08/31(木) 23:38:58 ]
もしかすると、平常日と夏休みとがはっきり区別されない人間が一番やばいのでは

124 名前:デフォルトの名無しさん mailto:sage [2006/09/01(金) 00:25:10 ]
8月で夏休みが終わる大学もあるんだがな

125 名前:デフォルトの名無しさん mailto:sage [2006/09/01(金) 08:44:33 ]
ま、今はどこの大学も中身は小学校レベルだしな。卒論も昆虫採集以下だし。

126 名前:デフォルトの名無しさん mailto:sage [2006/09/04(月) 12:15:34 ]
卒論大変だったなぁ…
>>125
は大学の先生ですね。それ以外はこういうこと書けないし。
大学の先生もPythonスレ見てるなんて、すごいぜpython

127 名前:デフォルトの名無しさん mailto:sage [2006/09/04(月) 12:51:19 ]
大学の先生も小学校レベルなんですよ



128 名前:デフォルトの名無しさん mailto:sage [2006/09/04(月) 15:14:54 ]
それは当たってる。

129 名前:デフォルトの名無しさん mailto:sage [2006/09/05(火) 00:36:59 ]
宿題ではないんですが誰も相談できる人がいないのでここで質問してもいいんでしょうか?


130 名前:デフォルトの名無しさん mailto:sage [2006/09/05(火) 09:07:09 ]
内容によるんでね?

131 名前:デフォルトの名無しさん mailto:sage [2006/09/05(火) 11:28:20 ]
やる前にふさわしいかどうか考えない
やってみてダメだったら例外処理する
それがPython流

132 名前:デフォルトの名無しさん mailto:sage [2006/09/05(火) 15:52:00 ]
突然の書き込みすみません。>< 集計とってます。
ベストなバストはなにサイズ? 協力してちょ
human5.2ch.net/test/read.cgi/honobono/1157286711/l50

133 名前:デフォルトの名無しさん mailto:sage [2006/09/08(金) 00:35:11 ]
>>129 の質問てのは >>132 のことだったのか?

134 名前:デフォルトの名無しさん mailto:sage [2006/09/08(金) 23:21:14 ]
ひさしぶりにMLを見たよー。
ムネオたんへの皆のレスがなんとなくちくちくしてるよー。

135 名前:デフォルトの名無しさん mailto:sage [2006/10/10(火) 23:24:09 ]
ムネオたんって誰?
鈴木宗男?

136 名前:デフォルトの名無しさん mailto:sage [2006/10/11(水) 00:06:07 ]
┐(゚〜゚)┌

137 名前:デフォルトの名無しさん mailto:sage [2006/10/11(水) 00:06:48 ]
そう



138 名前:デフォルトの名無しさん mailto:sage [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)として、一画面毎、表示を止める。

という二つの場合がある。
【 期限 】とくにないっす。
【 補足 】
なんか大谷大学っていうとこのここ→tibet.que.ne.jp/otani/2004python/2004pythonmenu.html
から見付けてきたやつです。
お暇な方お願いしますm(_ _)m


139 名前:デフォルトの名無しさん mailto:sage [2006/10/20(金) 19:54:49 ]
最近の宿題ってのはそこまで手取り足取り教えてくれるのな

>Pythonでテキスト・ファイルを扱うときも、リストとして処理される
これはどうかと思う

140 名前:デフォルトの名無しさん mailto:sage [2006/10/20(金) 20:35:50 ]
for-in使うとリストのように、処理されるってだけだよな。
enumrator?


141 名前:デフォルトの名無しさん mailto:sage [2006/10/22(日) 00:39:47 ]
pythonからexcelを起動して、表に上からa = 1, a = 2・・・・a = 100と
表示させよ。
という問題です。宜しくお願いします。

142 名前:デフォルトの名無しさん mailto:sage [2006/10/22(日) 11:57:38 ]
print "pythonからexcelを起動して、表に上からa = 1, a = 2・・・・a = 100と"

143 名前:デフォルトの名無しさん mailto:sage [2006/10/22(日) 12:47:31 ]
>>142
おい!
"と"、はいらなんじゃないかと

144 名前:デフォルトの名無しさん mailto:sage [2006/10/22(日) 13:08:09 ]
些細なバグだな

145 名前:デフォルトの名無しさん mailto:sage [2006/10/22(日) 13:52:50 ]
>>141
どうみても自分のやりたいことを問題のふりして聞こうとしてるよな。
素直に聞いてりゃ誰か教えてくれただろうにねぇ。

146 名前:デフォルトの名無しさん mailto:sage [2006/10/22(日) 14:56:04 ]
でも戸がねぇと埃が入ってきちゃうから

147 名前:デフォルトの名無しさん mailto:sage [2006/10/22(日) 15:40:18 ]
できたぞ

XList = []
for i in range(100):
 XList.append("a = %d" % (i+1))
XText = "\n".join(XList)

XFile = file("PyExcel.xls", "w")
XFile.write(XText)
XFile.close()

import os
os.system("open /Applications/Microsoft\\ Office\\ X/Microsoft\\ Excel PyExcel.xls")



148 名前:デフォルトの名無しさん mailto:sage [2006/10/22(日) 22:37:30 ]
>>147
動きました。どうもありがとうございます。

149 名前:デフォルトの名無しさん [2006/10/27(金) 02:56:48 ]
適当に文字を打ち込んで、その数をカウントする。

150 名前:デフォルトの名無しさん mailto:sage [2006/10/27(金) 03:10:48 ]
print len(raw_input('enter something'))

151 名前:デフォルトの名無しさん mailto:sage [2006/11/04(土) 02:21:15 ]
行列の足し算
map(lambda x: map(lambda y: y[0]+y[1],x),[zip(*x) for x in zip(a,b)])

152 名前:デフォルトの名無しさん mailto:sage [2006/11/04(土) 16:14:33 ]
>>151 行列はNumPy使おうよ。

153 名前:デフォルトの名無しさん mailto:sage [2006/11/04(土) 17:33:14 ]
標準に入ってないし


154 名前:デフォルトの名無しさん mailto:sage [2006/11/04(土) 22:47:45 ]
こっちが正解だった
[[sum(y) for y in zip(*x)] for x in zip(a,b,c)]

155 名前:デフォルトの名無しさん mailto:sage [2006/11/09(木) 10:12:32 ]
xの転置行列
zip(*x)

ベクトルu,vの内積
sum(s*t for s,t in zip(u,v))

行列x,yの行列積
[[sum(s*t for s,t in zip(u,v)) for v in zip(*y)] for u in x]

156 名前:デフォルトの名無しさん mailto:sage [2006/11/11(土) 02:08:14 ]
zipは99%parallel iterationにしか使われてない -- guido

ジード分かってねーーーーーーーーーーー!!!
転置行列だよ転置行列!!

izipって何語???キモーーーーーーーーーーー!!!ヤメレーーー!

157 名前:デフォルトの名無しさん mailto:sage [2006/11/11(土) 02:40:01 ]
行列はリストですが、リストは行列ではありません



158 名前:デフォルトの名無しさん mailto:sage [2006/11/11(土) 22:31:37 ]
誘導されてきました

1Gぐらいあるテキストファイルから適当な行をランダムサンプリングしたい
中身はこんな感じ
1 10 120 1.0
2 11 110 2.0
3 11 110 2.0
4 9 90 3.0
5...

1000000 .....

こここから1000行だけ
ランダムな行をとりだしたいのですがおねがいできないでしょうか?


10 ..
12 ..
100 ..
119...

1Gあるので一度にとりこめない


159 名前:デフォルトの名無しさん mailto:sage [2006/11/11(土) 22:37:26 ]
>>158
まずファイルの行数を数える。

次にサンプリングする行数を決める。

import random
lines = random.sample(xrange(line_of_file),1000)

あとはファイルを1行づつ読んでいって,inesにある行だけ取り込む。


160 名前:デフォルトの名無しさん mailto:sage [2006/11/12(日) 02:00:42 ]
チョイ変化球として・・・
その1Gのファイルの一行一行にそれほど意味が無いんだったら、
その一行ごとの各項目の平均とか標準偏差とかを出しておいて、
その数値に基づいて1000回ランダム処理することで、
1000行取り出してるように見せかけるとか・・・

161 名前:デフォルトの名無しさん mailto:sage [2006/11/12(日) 06:00:13 ]
> その数値に基づいて1000回ランダム処理することで、
> 1000行取り出してるように見せかけるとか・・・

kwsk

162 名前:デフォルトの名無しさん mailto:sage [2006/11/12(日) 16:28:17 ]
ある範囲内にある頻度でランダムに値をとる数値の組が欲しい
だけだったら、そのとおりに数値を生成してあげれば十分でしょうという
こと。ただし、1行が1人を表してて、数値がその人の属性を表してる
ような場合だと通用しないけど・・・

163 名前:デフォルトの名無しさん mailto:sage [2007/01/11(木) 14:44:01 ]
(゚∀゚≡゚∀゚) ?

164 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 00:05:57 ]
静かだね。



165 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 04:38:54 ]
アーヴェー、マリ〜〜〜〜ィアー♪

166 名前:デフォルトの名無しさん mailto:sage [2007/02/13(火) 11:46:13 ]
POPfileなどの迷惑メール検出ソフトを使って、
2chの工作員の発言を学習させて検出したいのですが
2chのインターフェイスをメールソフトにする方法ないのでしょうか?
futasukeみたいな感じで2chのアクセス方法にインターフェイスかませば
POPfileを経由して2chを診れるとおもうのですが

167 名前:デフォルトの名無しさん mailto:sage [2007/02/13(火) 11:58:28 ]
>>166
それpla(ry



168 名前:デフォルトの名無しさん mailto:sage [2007/02/13(火) 16:26:56 ]
2chブラウザの方に実装した方がスマートじゃない?

169 名前:デフォルトの名無しさん mailto:sage [2007/02/13(火) 20:05:23 ]
メーラー側で迷惑メール判定できるなら、dat を eml とか mbox とかに変換するのもありだね

170 名前:デフォルトの名無しさん mailto:sage [2007/02/13(火) 20:16:31 ]
gmailの迷惑メール分類機能とか使いたい場合は
本当に一度フォワードする必要がある

171 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 02:32:50 ]
>>167
pyagger とかないの?

172 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 02:36:27 ]
>>171
任せた

173 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 21:20:31 ]
それplaggerでできるんでしょ?

174 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 10:35:19 ]
宿題じゃないんですが、
初心者質問スレがないんで、お邪魔します。

ここのスクリプトなんですけど、
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'
と出やがります。

タブの使い方は問題なさそうなんですが、
これって文法的にどっか間違ってますか?

175 名前:174 mailto:sage [2007/03/30(金) 10:38:10 ]
ごめんなさい。
#!/usr/bin/env python
がないだけでしたorz

176 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 10:38:45 ]
         ナ ゝ   ナ ゝ /    十_"    ー;=‐         |! |!   
          cト    cト /^、_ノ  | 、.__ つ  (.__    ̄ ̄ ̄ ̄   ・ ・   
                                             
            ,. -─- 、._               ,. -─v─- 、._     _
            ,. ‐'´      `‐、        __, ‐'´           ヽ, ‐''´~   `´ ̄`‐、
       /           ヽ、_/)ノ   ≦         ヽ‐'´            `‐、
      /     / ̄~`'''‐- 、.._   ノ   ≦         ≦               ヽ
      i.    /          ̄l 7    1  イ/l/|ヘ ヽヘ ≦   , ,ヘ 、           i
      ,!ヘ. / ‐- 、._   u    |/      l |/ ! ! | ヾ ヾ ヽ_、l イ/l/|/ヽlヘト、      │
.      |〃、!ミ:   -─ゝ、    __ .l         レ二ヽ、 、__∠´_ |/ | ! |  | ヾ ヾヘト、    l
      !_ヒ;    L(.:)_ `ー'"〈:)_,` /       riヽ_(:)_i  '_(:)_/ ! ‐;-、   、__,._-─‐ヽ. ,.-'、
      /`゙i u       ´    ヽ  !        !{   ,!   `   ( } ' (:)〉  ´(.:)`i    |//ニ !
    _/:::::::!             ,,..ゝ!       ゙!   ヽ '      .゙!  7     ̄    | トy'/
_,,. -‐ヘ::::::::::::::ヽ、    r'´~`''‐、  /        !、  ‐=ニ⊃    /!  `ヽ"    u    ;-‐i´
 !    \::::::::::::::ヽ   `ー─ ' /             ヽ  ‐-   / ヽ  ` ̄二)      /ヽト、
 i、     \:::::::::::::::..、  ~" /             ヽ.___,./  //ヽ、 ー        

177 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 12:19:54 ]
ワロた



178 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 00:24:27 ]
エラーすら出ないはずじゃないのかなぁ・・・
その中途半端なエラーはなんなんだろう・・・

179 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 00:49:38 ]
/bin/shをキックしたんでしょ

180 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 01:13:06 ]
こんなことも分からない178に幸あれ...。

181 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 17:42:39 ]
【 課題 】テキストファイル(ttp://uproda11.2ch-library.com/src/112115.txt.shtml)に含まれる
      IPアドレス、時間、User-Agent、URLといったデータをそれぞれコンマで区切りファイルに出力せよ。
      (URLの場合はディレクトリもコンマで区切る。)

【 補足 】テキストファイルは中国語で書かれたHTTPによるmp3ダウンロードのログファイルです。
      Pythonのお勉強スレでみなさまのお力を借りながら自分で四苦八苦してコーディング
      しましたが、URLに含まれるエスケープ文字を処理する段階で壁にぶち当たりました。
      私が途中まで書いたプログラムは(ttp://uproda11.2ch-library.com/src/112116.py.shtml)
      です。非常に見難く恐縮ですがどうかよろしくお願いします。

182 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 19:56:25 ]
>>181

import re
import urllib

rexp1 = re.compile(r"[ ][-][ ][-][ ][[]|[]][ ]\"|\"[ ]\"|\"[ ]|[ ]\"|\"|[ ]")

def convert(linein):
record = rexp1.sub(",", linein, 9).rstrip("\"").split(",")
urlpaths = record.pop(4).split("/")

def decode(x):
bin = urllib.unquote(x)
try:
return unicode(bin, "gbk")
except UnicodeDecodeError:
return unicode(bin, "utf-8")

record += map(decode, urlpaths)

out = u",".join([x.rstrip() for x in record]) + u"\n"
return out.encode("utf-8")

converted = (convert(x) for x in file("112115.txt", "r"))
file("112115.csv", "w").writelines(converted)

183 名前:181 mailto:sage [2007/04/03(火) 11:54:15 ]
すみません、下から4行目のreturn out.encode("utf-8")はdecode関数の中にあるのでしょうか・・・
インデント構造も教えていただけませんか?

184 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 11:57:03 ]
関数の中でない場所から return してどうしようというのだ

185 名前:181 mailto:sage [2007/04/03(火) 12:03:27 ]
すみません、decode関数をconvert関数の内部にすると通りました。

【結果】文字化けしてしまう行が出てしまいました。
    (変換後1行目は問題なく表示されているが、2行目は変換してしまった為に文字化け(澶栨枃鐢靛奖鍘熷)してしまった。)
    もともとのログファイルがグチャグチャに保存しているのが元凶ですが、そこをうまく分別できないものでしょうか?

186 名前:181 mailto:sage [2007/04/03(火) 12:13:17 ]
文字化けした文字列は以下の通りです。もとのエスケープ文字をunquoteすれば正常な文字列を得られるのですが、そこからunicodeで変換すると文字化けしてしまいます。

澶栨枃鐢靛奖鍘熷
姊︿腑鐨勪綘
缁忓吀鑻辨枃閲戞洸
璁稿穽
瀹岀編鐢熸椿
鏃跺厜
鍒濋洩缁濅笘鍚嶄级

187 名前:181 mailto:sage [2007/04/03(火) 15:28:16 ]
ありがとうございます、自分のプログラムの無駄な部分が見えてきました。
もう一点、>>182のプログラムではUser-Agentの後ろのダブルクォーテーションが取れませんでした。

record = rexp1.sub(",", linein, 9).rstrip("\"").split(",")

のrstrip("\"")が機能していないようなのですが、私もなぜなのか分かりません。



188 名前:デフォルトの名無しさん mailto:sage [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>")

189 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 23:33:46 ]
専ブラ使ってなくても
先頭の連続した空白は消えます

190 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 00:18:00 ]
htmlだもん

191 名前:181 mailto:sage [2007/04/04(水) 00:41:54 ]
>>188
すごい・・・文字化けが全部解消されました。
私自身プログラムも文字列処理もズブの素人のため、今からコードを参考に勉強していこうと思います。ありがとうございます。
後学のために教えていただきたいのですが、タグをつけてまで出力をhtmlにするのには何か利点があるからなのでしょうか?

192 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 00:45:07 ]
ふふふ、良いところに気がつきましたね

193 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 00:50:58 ]
ふふふ
ふふふふふふ
ふふふふふふふふふふふふふふふふふふふ
ふふふふふふふふふふふふふふふふふふふふふふふふふふふふふふふふふ

194 名前:181 mailto:sage [2007/04/04(水) 02:27:44 ]
>>188
正規表現を「分割場所でコンマに変換(sub)する」のではなく、「データ自身をマッチさせてリストにする」に変えたんですね。
正規表現の部分は自分も自分のプログラムの中で一番美しくないと思っていたのでとても参考になりました。

ですがその次の
url = record.pop(3).replace("/", "\n\n")
の部分からが理解できません。
URLをディレクトリごとに二回の改行を入れるとdecode関数に値を渡す際に何か変化があるのでしょうか?
>>182のプログラムでunquote後のtryの中のgbkとutf-8を逆にすると>>188と同じ結果が得られるようなのですが・・・?

enumerate関数を使ったエラー箇所の表示も大変興味深いです。多謝多謝。

もう一つ>>182のプログラムから気になってはいたのですが、
converted = (convert(i, x) for i, x in enumerate(file("112115.txt", "r")))
といったforの特殊な使い方について解説されているサイトを教えていただけないでしょうか?
「はじめてのPython」やドキュメントを漁ってみたのですがどうもそれらしい記述が無いようなのです。

195 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 02:37:11 ]
漁ってないに3000ペリカ

196 名前:181 mailto:sage [2007/04/04(水) 02:40:20 ]
>>195
orz
もう一度漁ってきますッ

197 名前:181 mailto:sage [2007/04/04(水) 03:24:20 ]
漁れました。orz
ttp://docs.python.org/tut/node7.html#SECTION007140000000000000000

しかし入力するログファイルがあまりにも膨大だった場合、メモリの容量によっては>>188のconvertedに入りきらない可能性もあるのでは。それは杞憂なのでしょうか?



198 名前:181 mailto:sage [2007/04/04(水) 04:22:39 ]
>>188で二回改行を入れてからunquoteする理由は、unquoteによって"/"がデコードされる可能性があるからですか?
各ディレクトリに分割する際、本来ディレクトリ名の一部であるはずの"/"でぶった切ってしまうのを二回改行で回避している、と理解すればよいのでしょうか。


なるほど

そろそろ寝ます。みなさんお忙しい中付き合っていただきありがとうございます。本当に有意義な一日でした。

199 名前:182=188 mailto:sage [2007/04/04(水) 10:39:30 ]
>タグをつけてまで出力をhtml
単にブラウザで表示確認してただけ。俺が使ってるのはSJISエディタだから。

>url = record.pop(3).replace("/", "\n\n")
>二回改行を入れてからunquoteする理由は、unquoteによって"/"がデコードされる可能性が
そう。分割しないでデコードするのは、一度にデコードする量を増やして
エラーを出しやすくする(正しくないデコードをされる可能性を減らす)ため。
まあ予防的措置。完璧じゃないが、完璧にやるのは手間に見合わないので。

>unquote後のtryの中のgbkとutf-8を逆にすると>>188と同じ結果
>>182で化けたのは、utf-8でデコードすべきところをgbkでデコードしてエラーが出なかったから。
だから試す順を逆にした。他は前述の通り。

>converted = (convert(i, x) for i, x in enumerate(file("112115.txt", "r")))
これはリストの内包表記ではなくて、ジェネレータ式。
www.python.jp/doc/release/tut/node11.html#SECTION00111000000000000000000
ジェネレータだから、convertedの時点ではまだfileは読まれていない。
enumerateもイテレータに対応しているから、writelinesがconverted.next()した時点で
readlineされ、convertされ、writeされる。メモリは一行分あればよい。
ジェネレータ関数の方が解りやすかったとは思うけど、行数が勿体無かったので。

200 名前:デフォルトの名無しさん [2007/04/07(土) 20:49:24 ]
良い生徒&酔い先生age

201 名前:181 mailto:sage [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)を出力します。

202 名前:181 mailto:sage [2007/04/08(日) 03:39:07 ]
【 試した事1 】まず>>188のプログラムのファイル入力の部分を今回のログファイルに置き換えて実行。

【  結果   】UnicodeDecodeErrorが発生。

【 試した事2 】1585行目から文字化けを確認。decode関数内部における例外処理を以下のように変更して実行。
try:
return unicode(bin,"gb18030")
except UnicodeDecodeError:
try:
return unicode(bin,"utf-8")
except UnicodeDecodeError:
return unicode(bin,"gbk")

【  結果   】20677行目で正規表現とマッチせず終了。
         "GET (URL) (Protocol)"の形ではなく"-"となっていることを確認。
         1585行目からの文字化けも解消されず。

203 名前:181 mailto:sage [2007/04/08(日) 03:54:44 ]
【 言い訳 】前回に引き続き無理難題を持ち込んでしまい、本当に頭が上がりません・・・
       あまりにもログファイルがデタラメ(エンコードが統一しておらずサーバのディレクトリ構造も不明)
       なので教授に取り次いでもらって、このログファイルを出力したプログラムを書いた中国人と喧嘩してきます。

       素人目にもこのログファイルの解析は非効率であると思いますので、

       1.ログファイルのエンコードの統一について
       2.ディレクトリ構造
       3.ログファイルの仕様

       をそれぞれ聞いてこようと思います。プログラムを組む上でそれ以外に必要な項目があれば教えていただけますか?

204 名前:181 mailto:sage [2007/04/08(日) 04:01:36 ]
すみません、アップロードに失敗しているようです・・・もう一度してきます・・・

205 名前:181 mailto:sage [2007/04/08(日) 04:34:55 ]
4つのログファイルです。
ttp://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

206 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 05:38:59 ]
pythonで宿題を出すような阿呆な教育機関って日本にあるの?

207 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 07:35:47 ]
perlよりはいいんじゃね?



208 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 09:36:21 ]
Rubyの学習が囚人の苦役になる時代だからなぁ

209 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 12:38:32 ]
>206
むしろ大学とかは妙に使用率の低い言語好むから
Pythonくらいならまだマシなほうでわ

210 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 12:39:53 ]
素人囚人の人たちの作ったスクリプトは使い物にならないんだろうなぁ。w

211 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 13:13:36 ]
刑務所には娯楽もあまり無いだろうしむしろ上達するかも

212 名前:デフォルトの名無しさん [2007/05/03(木) 13:48:10 ]
レイパー、人殺しやコソ泥が使う言語Ruby.

213 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 13:59:39 ]
出所後の就職対策でもあるらしいが、刑期が長いと出所する頃には廃れてたりしないだろうか

214 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 14:34:22 ]
Rubyをちょっといじっただけの前科持ちを雇うとか信じられないな

215 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 14:49:46 ]
中で開発するんじゃなかったっけ?
何をかはしらんが・・・

216 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 14:52:21 ]
Perlはアニオタやオカマが作ってる言語。

217 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 15:00:14 ]
>>215
出所後に雇うって明言しているところがあるんだよ



218 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 15:00:56 ]
>>217
そうなのか・・・

219 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 15:32:27 ]
やさぐれソフトウェア商会だなw

220 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 16:34:43 ]
おまいらどんな宿題だよ(www

221 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 19:15:38 ]
>>216
それは事実だから無問題

222 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 19:43:08 ]
>>221
アニオタは分かるけどオカマは分からない

223 名前:デフォルトの名無しさん mailto:sage [2007/05/04(金) 00:36:10 ]
>>222
Audrey Tang(Pugs開発者)


224 名前:デフォルトの名無しさん mailto:sage [2007/05/04(金) 00:44:36 ]
そういえばRandal氏(ソートで有名な人)の有罪って取り消しになったんだってね

というかここはPythonスレ(ry

225 名前:デフォルトの名無しさん mailto:sage [2007/05/04(金) 01:01:19 ]
>>214
やー様経営のアダルトサイトとかフィッシングサイト構築とか需要あるかも・・・、って更生できないじゃんw

226 名前:デフォルトの名無しさん mailto:sage [2007/05/04(金) 01:18:54 ]
>>223
ttp://en.wikipedia.org/wiki/Audrey_Tang

これか?
山下達郎に似てね?(www

227 名前:デフォルトの名無しさん mailto:sage [2007/05/04(金) 01:27:39 ]
これは男か?



228 名前:デフォルトの名無しさん mailto:sage [2007/05/04(金) 01:30:02 ]
IQ180のオカマだ

229 名前:デフォルトの名無しさん mailto:sage [2007/05/04(金) 01:50:21 ]
IQ180って正規分布表に載ってない・・・と思って自分で計算したら
世界に1727人もいるんすね。

230 名前:デフォルトの名無しさん mailto:sage [2007/05/04(金) 01:54:46 ]
>>229
そのうちオカマのパーラーは何人だろ

231 名前:デフォルトの名無しさん mailto:sage [2007/05/04(金) 01:58:08 ]
IQ180くらいあればPerlでも読みやすいのかもしれんな

232 名前:デフォルトの名無しさん mailto:sage [2007/05/04(金) 03:08:12 ]
IQ180なのになんで中卒なんだろう・・・本と謎な人物だ・・・

233 名前:デフォルトの名無しさん mailto:sage [2007/05/04(金) 03:12:43 ]
オカマで天才だから一般人の下種な社会に適合できなかったのでは?
進学の必要性も感じなかったのかもね。

234 名前:デフォルトの名無しさん mailto:sage [2007/05/04(金) 11:25:20 ]
ttp://www.google.co.jp/search?hl=ja&q=%E9%B3%B3%E3%81%9F%E3%82%93&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja

鳳たんって愛称で親しまれてるのね…

235 名前:デフォルトの名無しさん mailto:sage [2007/05/04(金) 11:48:48 ]
ttp://video.google.com/videoplay?docid=-3876155376103839772&q=yapc+asia+2007

すぐ動画が見れるとか便利な時代になったよなぁ…

236 名前:デフォルトの名無しさん mailto:sage [2007/05/04(金) 12:11:51 ]
ttp://pugs.blogs.com/talks/yapcasia2007-pugs.pdf

動画のお共に pdf (文字がつぶれてても大丈夫)

237 名前:デフォルトの名無しさん [2007/05/04(金) 14:40:52 ]
>>212 レイパー、人殺しやコソ泥が使う言語Ruby.

女囚たちに Ruby を教えて Web アプリを作らせるのだぞ




238 名前: [2007/05/05(土) 00:39:57 ]
【 課題 】
未完成部分を完成し、適当な入力を与えて実行せよ。(検算も忘れない
こと。)
規格
 ◇引数は2 つの整数a, b.
 ◇関数の返り値は3つの要素を持つ配列[d; x; y] で、d = gcd(a; b) はa と
  b の最大公約数、x, y はd = ax + by を満たす整数。


239 名前: [2007/05/05(土) 00:45:03 ]
from math import
# d = gcd(a,b) = ax+by となる d,x,y を求め、
# 3つの要素を持つ配列 [d,x,y] を返り値にする
# 返り値の使い方は main routine の5行目以降を参照
def euclid(a,b):
if b == 0:
if a >= 0:
return [a,1,0]
else:
return [-a,-1,0]
else:
r0 = a
r1 = b
x0 = 1
x1 = 0
y0 = 0
y1 = 1
while r1 != 0:
q = r0/r1
##### ここを埋めよ #####
r0 = r1
r1 = r2
x0 = x1
x1 = x2
y0 = y1
y1 = y2
if r0 < 0:
r0 = -r0
x0 = -x0
y0 = -y0
return [r0,x0,y0]

240 名前: [2007/05/05(土) 00:46:12 ]
# ここから main routine
print
print 'Euclid のアルゴリズム拡張版のテストプログラムです。'
a = input('a = ')
b = input('b = ')
ls = euclid(a,b)
d = ls[0]
x = ls[1]
y = ls[2]
print
print 'd = ',d
print 'x = ',x
print 'y = ',y
print '検算 :'
print '(',a,') * (',x,') + (',b,') * (',y,') = ',a*x + b*y

# 実行例
#
# Euclid のアルゴリズム拡張版のテストプログラムです。
# a = 5**30
# b = 3**50
#
# d = 1
# x = -89115256441822303775825
# y = 115608417198323432874
# 検算 :
# ( 931322574615478515625 ) * ( -89115256441822303775825 )
# + ( 717897987691852588770249 ) * ( 115608417198323432874 ) = 1
何方かお願いします.

241 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 01:31:36 ]
PythonスレにはRubyへの劣等感で嫉妬が激しい人がいるのですね。

242 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 01:37:29 ]
どんな言語のユーザにも変な人はいるでしょ

243 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 01:44:52 ]
241みたいに日本語が不自由な人もいるんだね

244 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 02:21:11 ]
>>226
へー、凄い人がいるもんだな。5年で100のプロジェクトってw
Chen, Chun-ming. "別叫我「先生」! 電腦怪傑唐宗漢變性 改名唐鳳 (Don't call me "Mister"! Tang Zonghan changes sex, name now Tang Feng)", Eastern Television, 2006-02-08. Retrieved on 2007-03-22.

なんかかっこいい。

245 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 02:24:01 ]
立派なオカマだな

246 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 02:28:42 ]
彼女こそオカマの中のオカマだ

247 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 02:31:49 ]
>>244
Pythonを使えばもっと生産的になれるのに!
彼はバカなんだよきっと!



248 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 02:43:45 ]
×彼
○彼女

249 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 02:46:29 ]
>>247
頭が良すぎてパズルみたいな言語でないと楽しめないのかも

250 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 06:00:21 ]
>>239

251 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 06:05:40 ]
>>238-240 ソース見ても全くインデントされて無いんだけど?何がしたいのか不明なので無理

通常のgcdなら
def gcd(n, m): return n if m==0 else gcd(m, n%m)

252 名前:未完成部分を完成し、適当な入力を与えて実行せよ。 mailto:sage [2007/05/05(土) 16:39:37 ]
>>238-240
r2=r0-q*r1
x2=x0-q*x1
y2=y0-q*y1

253 名前:デフォルトの名無しさん [2007/05/06(日) 12:03:16 ]
>>251-252
ありがとうございましたm(_ _)m

254 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 11:58:42 ]
ここのページを参考にしてScipy と Numpy をインストールしました。
ttp://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 をはずしてもう一度挑戦してみたところ(…続きます)

255 名前:254 mailto:sage [2007/05/07(月) 12:01:12 ]
C:\Python25\Lib\site-packages\f2py2e>f2py -m sample1 sample1.f
Reading 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

256 名前:254 mailto:sage [2007/05/07(月) 14:28:11 ]
f2py2e.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.


どうやら -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

インストールすると上手く処理が動き始めました(…続きます)

257 名前:254 mailto:sage [2007/05/07(月) 14:46:59 ]
running build_ext
No 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のコンパイラも必要なのでしょうか?



258 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 14:54:40 ]
必要だろうねえ。MinGW でもインスコすれば?

259 名前:254 mailto:sage [2007/05/07(月) 15:05:05 ]
-------------------------------------------------------------------
f2py2e.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
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
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言語に関する知識が豊富でないと上手くやるのは難しいでしょうか?

260 名前:254 mailto:sage [2007/05/07(月) 15:20:22 ]
利用可能な環境
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 を動かすには、どれをインストールすれば良いのでしょうか?

261 名前:254 mailto:sage [2007/05/07(月) 15:34:36 ]
C-Compiler Wiki - MinGW/インストール
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 もコンパイルできる… よくわからないです…

262 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 15:42:34 ]
>>261
> gcc は gnu c comliler の略ですよね

違います。もっと落ち着いてちゃんと調べましょう。

263 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 16:03:31 ]
あのさ、よく分からんのだけど、Fortran コンパイラを使ったこともないような人が
何ゆえ F2PY を使おうとしているの?

SciPy や NumPy を使いたいだけなら Fortran コンパイラの出る幕などないと思うのだが。
禿しく間違った方向に進んでいる希ガス。

264 名前:254 mailto:sage [2007/05/07(月) 16:08:56 ]
>>262
GNUコンパイラコレクション - Wikipedia
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
ja.wikipedia.org/wiki/MinGW

>MinGW(Minimalistic GNU for Windows)
>または、Mingw32 は GNU ツールチェーン(GCCなど)の Windows 移植版である。
------------------------------------------------------------------------

つまるところ gnu compiler collection (not gnu c compiler) の
windows移植版が MinGW なのですね. 勉強になりまた。ありがとです ><

265 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 19:55:47 ]
ttp://d.hatena.ne.jp/odz/20060903

実行しても doctest の結果が表示されないのですが
どうしてでしょうか?

# a.py
import doctest

def foo(a, b):
'''return a+b
>>> foo(10, 1)
12'''
return a+b

doctest.testmod()

は、うまく実行できていました…

266 名前:265 mailto:sage [2007/05/09(水) 20:33:56 ]
すみません。doctestって成功したときは何も
表示されないんですね orz 自己解決スマソ。

267 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 18:13:11 ]
例外処理についての質問です。

# -- coding: cp932 --
import urllib2

url='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 です。どうぞよろしくお願い致します。



268 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 20:56:17 ]
exceptの書式が違う。

except IOError, e: # eはIOErrorオブジェクト
print e

269 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 22:04:40 ]
>>267
urllib2.urlopen の失敗時に発生している例外が IOError なら
> except IOError, (errno, strerror): ##オープンできないときは
のようにタプルとみなしてアンパック代入できるんだけど、
実際に発生しているのは IOError のサブクラスである URLError のインスタンス。
これはなぜか IOError のサブクラスのくせにタプルとみなせない。
ただ URLError の reason 属性を使えばこう書ける:

except urllib2.URLError, urlerror:
  errno, strerror = urlerror.reason

270 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 00:42:07 ]
URLError 以外にも WindowsError やら ValueError やら起こるみたいだから
except Exception, e:
みたいに一般的に書いとくのがいいんジャマイカ。

271 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 01:53:29 ]
except IOError, e: # eはIOErrorオブジェクト
  print 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__
www.koders.com/python/fidB6D47AFC04CE4977066FF7A79FC593FBBB9562C6.aspx#L139
>>269
このことですよね…。何となく例外の引数は一つ以上付けないほうが
無難そうな気がしました。というかあまり他の言語でも例外の引数
を一つ以上持ってるのを見たことがないですし。

どうもありがとうございました!

272 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 01:54:41 ]
>>270
よくわからないときは、Exceptionでやってしまうのもありでしょうか?
何か、それはそれで問題が生じそうな気もするようなしないような…(^^;)

273 名前:デフォルトの名無しさん [2007/05/14(月) 03:03:16 ]
>>272
複数の例外が起こる状況で、例外毎に処理を変えたいときは except 節を複数書く必要があるけど、
一律にキャッチしたいだけなら except Exception, e: または except: だけで十分かと。

274 名前:デフォルトの名無しさん mailto:sage [2007/06/01(金) 13:47:43 ]
ほしゅ

275 名前:デフォルトの名無しさん mailto:sage [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);

276 名前:デフォルトの名無しさん mailto:sage [2007/06/01(金) 15:05:16 ]
elif input < 9;
じゃなくて
elif input < a:
だろ

277 名前:デフォルトの名無しさん mailto:sage [2007/06/01(金) 15:07:54 ]
お! 動いた!

>>276
ありがとうございます。



278 名前:デフォルトの名無しさん mailto:sage [2007/06/01(金) 15:12:34 ]
>>> input = raw_input('Enter: ')
Enter: 8
>>> input
'8'
>>> input == 8
False
>>> int(input) == 8
True

がんばれー

279 名前:デフォルトの名無しさん mailto:sage [2007/06/01(金) 17:00:24 ]
セミコロンなんて付ける癖にしているからへんてこな間違いをやってしまうのだ

280 名前:デフォルトの名無しさん mailto:sage [2007/06/01(金) 19:40:17 ]
inputというのはビルトイン関数名でもあるので、それを変数名に使うのは行儀が良くない、
で、この場合raw_inputよりもinputを使った方が簡単。

281 名前:デフォルトの名無しさん mailto:sage [2007/06/03(日) 06:24:50 ]
>>> def myfunc(): print input()
...
>>> myfunc()
__import__('os').unlink(<漏れの大事なファイル>)
None

便利なファイルシェルだな。

282 名前:デフォルトの名無しさん mailto:sage [2007/06/03(日) 07:02:25 ]
公式ドキュメントより
> input( [prompt])
> eval(raw_input(prompt)) と同じです

兄貴と呼ばせてくれ >>281

283 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 13:48:47 ]
ファイル(バイナリ)から4byteづつ読んで実数表示する
のはどう書きますか?

284 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 15:13:44 ]
import array
ary = array.array('f')
fo = file('test.bin', 'rb')
while True:
 try:
  ary.fromfile(fo, 1)
 except EOFError:
  break
 print ary.pop()
fo.close()

285 名前:383 mailto:sage [2007/06/11(月) 18:27:37 ]
d>>284
しかし何も起こりませんでした。
インストしたpythonは
python-2.5.msi
pywin32-210.win32-py2.5.exe

286 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 19:44:33 ]
はい、次

287 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 21:07:35 ]
>>285
その4バイトのフォーマットが何なのか書かないとどうにもならないよ
ところで1バイトずつ読み込んでそれを表示するのなら書けるんだよね?



288 名前:285 mailto:sage [2007/06/12(火) 08:20:09 ]
>>287

想定は3Dモデルですが、公開されてるフォーマットでは
無い為とりあえず頂点のみ収めたファイルを指定しました。

バイナリの読み込み自体わかりません。スミマセン

289 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 11:06:26 ]
何も起こりませんでした… ってどんな呪文だよ

290 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 12:03:39 ]
>>288
単純にCのfloat型をファイルに書き出したものなら>>284のでいけるはず
まず>>284のがちゃんと動くようにするのが先決だね

・時下げ部分の全角空白を半角空白に置き換える
・その3Dデータを test.bin の名前でいっしょに置く

をしている?
それをして動かないなら動かないなりにエラーメッセージが出ているはずなので
そのエラーメッセージを書いてください

291 名前:288 mailto:sage [2007/06/12(火) 14:52:16 ]
>>290

丁寧にありがとう御座います。<(_ _)>

> except EOFError:
ここで止まっているようでした。
ファイルはtest.binでC:\(あれ? \打った時に確定されてIMEがオフになる〜)
に置きました。 これか?
取り急ぎお礼だけ。

292 名前:291 mailto:sage [2007/06/12(火) 15:18:16 ]
全角空白はエディタ読み込み時に文字化けしていたんで
半角空白にしてたんですが、位置が悪かったようです。
>>284と同じインデント? で動くようになりました。(PythonWin上)

実はPOSERで遊びたい3Dモデルがあるんですが、対応プラグイン
もプラグイン書くにしてもC言語は難しそう。
そこでインタプリタなら出来るんじゃないかと思い……。


4MBのファイル読み込ませたんだけど20分経っても終わらないや……。

293 名前:デフォルトの名無しさん mailto:sage [2007/06/13(水) 03:24:29 ]
とりあえず何形式かいうてみそ。

294 名前:292 mailto:sage [2007/06/13(水) 20:02:46 ]
>>293

えーと……ILUUSIONってとこのゲームのデータです。
今現在有志の手によりMetasequoiaのmqo形式での
読み書きは出来ます。
Metasequoiaがモーション対応してない為頂点カラー
にエンベロープデータを保持させるという特殊な手法
なので頂点の削除追加が困難になっています。

手持ちのPoserとXSI fndがPython対応しているんで
ちょっと夢見てしまったのでした。

295 名前:デフォルトの名無しさん mailto:sage [2007/06/13(水) 20:59:13 ]
しかし何も起こりませんでした。

296 名前:デフォルトの名無しさん mailto:sage [2007/06/13(水) 21:00:51 ]
そんなような台詞を多用するRPGが昔ありました

297 名前:デフォルトの名無しさん [2007/06/16(土) 18:20:53 ]
某大学でPYTHONの授業を取っているのですが、先生が全く何も教えてくれず放置
なのと、自分が他の課題で常に手一杯なので、PYTHONの知識については皆無に等しいです。
ですが、期限がとうとう来週までに迫ってしまいました。。。
課題は自由なのですが、「自分又は他者にとって有用性のあるもの」
とのことなので、以下のような課題を設定しました。どなたか分かる方
がいらっしゃれば、丸投げですが是非よろしくお願いしますm(..)m
□課題
「ホームページ(自分が作りました)の掲示板に書き込みがされたら、
 自動的にメーリングリストのアドレス宛に更新通知を送り、ついでにその掲示板のアドレスもそのメールに記す。」
というものです。
出来ればわかり易く「ここにHPのアドレスを入れる」とか「ここにメーリングリストのアドレスを入れる」
等のコメントを加えていただければと思いますm()m。
□提出期限
6月25日(月)
です。よろしくお願いします。




298 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 18:23:38 ]
ネットワークじゃなきゃならんのか?
自分のレベルを考えたらもっと楽なものにしないとボロが出るぞ。

299 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 18:25:15 ]
>PYTHONの知識については皆無に等しいです

じゃあ、何ならできるんだ?
Perlなら、WebProgバリバリか?


300 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 18:38:16 ]
>>297
掲示板プログラムはすでにあるの?
それを改造しないでPythonで定期的にチェックしてメール飛ばすの?

301 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 19:15:36 ]
  →諦める   諦めない

302 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 19:17:52 ]
>>297を読む限りpython知識だけでなく、webとかcgi知識も皆無に見えるんだが?

303 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 19:47:37 ]
まあがんばれ

304 名前:updatechecker.py [2007/06/16(土) 20:01:59 ]
>>297 どぞ。

# -*- coding: Shift_JIS -*-

import urllib, smtplib
from email.MIMEText import MIMEText
from email.Charset import Charset

def main():
    # 掲示板の URL
    bbs = "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

305 名前:304の続き [2007/06/16(土) 20:04:38 ]
    # 現在のページ内容を得る
    file = 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()

306 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 20:48:06 ]
傍から見てたんだけど、HTMLを丸ごとGETして
キャッシュと比べるっていうのは思いつかなかった。
(掲示板がどんなHTMLを吐くかも不明なのに
 更新チェックなんて無理とか思ってた)
勉強になったよ、ありがとー>>304

307 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 20:59:56 ]
大学生にもなって先生が教えてくれないって泣き言なんて馬鹿じゃね?
正直今の甘ったれた根性で社会に出るとお前個人じゃなくて同僚の迷惑になるのでそのまま留年してな



308 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 23:52:11 ]
何も教えてくれないなんてあるのか。
>297 が講義に出席してなかったとかじゃなくて?

309 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 00:01:00 ]
単にurllibの名前だけしか教えてくれなかったから使い方わからなーい!
とかそういう感じじゃないかなぁ・・・

310 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 00:23:45 ]
月曜日が楽しみですね

311 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 07:47:19 ]
>>306
掲示板の内容以外のものが、動的に生成されてるとだめじゃない?
テキスト広告とか、参照元とか表示してるところあるじゃん。
2chなら、おすすめ2chとか。

312 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 08:42:32 ]
自分のHPならそれくらい把握できるだろ。
そのぶぶんだけ比較対象からはずせばいいだけジャン。

313 名前:306 mailto:sage [2007/06/17(日) 09:53:57 ]
>>311
もちろん広告などが入ったらアウトだけど、
それは出題者が示して無いから仕方ない。
大抵の掲示板にはLast-ModifiedやETagは使えないから
>>304のアプローチがベストじゃないかな。
実際の利用時には、>>312が書いてくれたように
余分な箇所を削るフィルタを掲示板ごとに書くことになると思う。
あと、おすすめ2chは、datのLast-Modifiedを比較すればOK。

314 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 12:31:28 ]
そういう問題があるからRSSとかが発明されたわけだ

315 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 15:05:09 ]
illusionってエロゲメーカーか。

316 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 16:15:03 ]
>>314
いやRSSは最初はサイトサマリー
blog のエントリーの更新を通知する、程度まで援用されてはいるけど
bbs の書き込みをRSSで配信している例なんてほとんど見ないよ

317 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 16:32:02 ]
フリー・レンタルBBS業界の一般的な話は知らないけど
teacupはRSS配信してるみたいね



318 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 19:07:16 ]
>>316
BBSというシステムがあまり最近の流行ではないから、古いシステムをそのまま使ってることが
多いというだけだと思う。いまどき新規に開発するBBSでRSSに対応しないというのはあり得ない。

319 名前:デフォルトの名無しさん mailto:sage [2007/06/18(月) 01:16:36 ]
>>318
blog のコメント欄なんかは RSS 配信しない事が多いね
まあどこまでを BBS と言うかによるわけだけど

320 名前:デフォルトの名無しさん mailto:sage [2007/06/18(月) 20:25:19 ]
さて月曜日ですよ。 >297 はどこの課題だったのかなー。

321 名前:デフォルトの名無しさん mailto:sage [2007/06/18(月) 20:28:01 ]


322 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 06:20:26 ]
シカト来たーーー

323 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 15:13:28 ]
>>319
それは確かにそうだ。
たまには、コメントやトラックバックのRSSを配信できるシステムもあるが、主流ではないか

324 名前:デフォルトの名無しさん mailto:sage [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],
]
を返すようなものです。

325 名前:デフォルトの名無しさん mailto:sage [2007/06/20(水) 11:36:25 ]
zip関数を使う

326 名前:デフォルトの名無しさん mailto:sage [2007/06/20(水) 11:48:26 ]
>325
zip(*lst) でほぼ理想通りの結果が出ました!感謝!

327 名前:デフォルトの名無しさん mailto:sage [2007/06/20(水) 13:22:53 ]
2階層は zip で結構イケルんですけど
3階層以上の配列(テンソル?)だと
あまりいい手はないですよね

numpy の類を使うしかないかな



328 名前:デフォルトの名無しさん mailto:sage [2007/06/20(水) 19:58:32 ]
25日は来週の月y・・・

329 名前:デフォルトの名無しさん mailto:sage [2007/06/20(水) 23:08:10 ]
まだ猶予があったのか。ギリギリになってあわてる奴よりはなんぼかましですね。

330 名前:timer [2007/06/22(金) 21:34:32 ]
具体的な例ではなくて申し訳ないのですが、実行したい関数を数秒毎に繰り返し実行させる方法(ライブラリでもいいです)
が教えていただきたいのですが。。。お願いします!!


331 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 21:46:04 ]
import time

def hoge():
 print 'hoge'

while(True):
 hoge()
 time.sleep(1)

332 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 21:46:12 ]
>>330
import time
while True:
    foo()
    time.sleep(3)

fooが重い処理なら、例えばスレッドなんかを作る。

import time, thread
while True:
    thread.start_new_thread(foo, ())
    time.sleep(3)

www.python.jp/doc/2.4/lib/module-time.html
www.python.jp/doc/2.4/lib/module-thread.html

333 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 20:36:07 ]
youtube-dlをjp.youtube.comとwww.youtube.com
の両対応にしてください。
おながいします。

334 名前:timer [2007/06/25(月) 01:38:28 ]
>>331>>332
ありがとうございました!無事解決しました!!


335 名前:デフォルトの名無しさん [2007/06/26(火) 02:06:18 ]
age

336 名前:デフォルトの名無しさん [2007/07/13(金) 18:44:07 ]
保守あげ

337 名前:デフォルトの名無しさん [2007/07/23(月) 20:13:20 ]
[1, 1, 2, 2, 2, 3, 3, 4, 4, 1, 2]という数値のリストがあって、
それはリストのネストのレベルを表してます。

このリストをそのレベルどおりにネストさせるには、どうすればいいですか?
[1, 1, [2, 2, 2, [3, 3, [4, 4]]], 1, [2]]




338 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 20:46:10 ]
最小値より大きいものを1つのリストにまとめたリストを返す関数を作って再帰
ただサイズが大きいと計算時間が厳しいと思う

339 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 23:02:26 ]
>>337
ミもフタもない解答
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)

340 名前:デフォルトの名無しさん [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日(月)まで。

何方かよろしくお願いします。

341 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 00:40:10 ]
# -*- coding: Shift_JIS -*-

def 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))

342 名前:デフォルトの名無しさん [2007/07/24(火) 00:42:48 ]
        # 集めた要素をネストする(再帰)
        results.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]]

343 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 00:53:54 ]
>>340
import 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) 

344 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 18:07:35 ]
oxtu.py

345 名前:デフォルトの名無しさん [2007/08/02(木) 19:06:37 ]
oxtu.py age

346 名前:デフォルトの名無しさん [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は等価比較可能。

347 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 18:17:13 ]
list(set(lst + newlst))



348 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 18:33:50 ]
>>347
すまん、忘れてたが順序関係は維持したままで。
ただしdata同士の順序比較は出来ない。
インデックスは順序のために便宜的につけただけで、実際には通し番号などは無い。

349 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 22:24:18 ]
> data同士の順序比較は出来ない
> 実際には通し番号などは無い

ちょっ、そうしたら、
lst = [a, b, c]
newlst = [b,x,y]
のとき、c, x, y, の順序はどうやって決めるんだ?

350 名前:デフォルトの名無しさん [2007/08/12(日) 22:25:04 ]
ふつうに
for item in newlst:
    if item not in lst:
        lst.insert(0, item)
ではダメなの?


351 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 22:28:39 ]
あれ、>>346見たら
> インデックスに飛びは無く

って書いてあるな。順序あるのか無いのか、はっきりしてくれ。

352 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 23:29:08 ]
lst[:lst.index(newlst[0])] + newlst

353 名前:346 mailto:sage [2007/08/13(月) 04:15:28 ]
質問しといて何だが自己解決した。
色々前提条件説明しきれてなくてスマン。付き合ってくれた人有り難う。
dpaste.com/16708/

要はネットからエントリ型の更新情報をダウンロードしてローカルデータに追加するため、
lstとnewlstに重複した情報があるかもしれないが、そこだけstripしたかったというお話。
エントリに日時情報があればもっと簡単だったんだけどね。

354 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 08:34:13 ]
>>353
エントリ型って何?

355 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 08:35:28 ]
>353 を読む限り順序なんてなくて set で要素抽出をすればいいだけじゃん

元の list 保存しておいて orig_list.index( some_data ) で
個別 index はでるんだし

356 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 15:37:39 ]
最後lstとnewlstの足し算逆じゃね?
ていうか明らかにfor文必要ないから

357 名前:デフォルトの名無しさん mailto:sage [2007/08/16(木) 11:32:42 ]
下のような2つのリストがあるとき
a = ["A","B","C","D"]
b = [5, 3, 8, 2]
aのリストをbの値の大きい順にソートしたい、この場合、a = ["C","A","B","D"] b = [8,5,3,2]を求めたいのですがどのように書けばよろしいでしょうか。
アドバイスお掩蓋します。



358 名前:デフォルトの名無しさん mailto:sage [2007/08/16(木) 12:00:11 ]
>>> zip(b, a)
[(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']
>>> 

359 名前:デフォルトの名無しさん mailto:sage [2007/08/16(木) 12:12:37 ]
>>358
zipでこんな簡単にできると思いませんでした。
ありがとうございました。

360 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 02:27:14 ]
質問です。
外のwebサーバ(自分はドキュメントやCGIスクリプトの設置はできるユーザ権限)にJythonって設置できますか?
やっぱサーバの管理者権限いりますよね?

361 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 03:40:39 ]
自分でJavaとJythonインスコすればおk。

362 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 14:19:06 ]
telnet、ssh禁止とかだったらたぶん無理

363 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 15:37:04 ]
>>362
それがOKならいけるってことですね。
いっちょあやしまれないように暗躍してみます。

364 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 20:17:55 ]
Jythonについて質問した者です。
ローカル環境でいじくり、無事jythonのインストール方法を理解できました。
これで、python ver 1.5.2からアップデートしない大学のサーバを
出し抜いてやるぜと思ったら、javaすら入っていませんでした。

365 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 23:51:18 ]
無けりゃ入れるだけよ

366 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 22:24:08 ]
java設置失敗。
そして良く考えたらJythonとCPythonとの互換性も追い付いているのかどうか良く知らない・・・。

ファイルの実行や一般的なUNIXコマンドを使う権限があるので、リモートでPython2.5をコンパイルしてみた。
が、ソケットのヘッダファイルを読み込めなかった。
くそっくそっ。
かっこいいCGI置きたいよぅ。

367 名前:デフォルトの名無しさん mailto:sage [2007/08/28(火) 00:26:15 ]
いまどきCGIである時点であまりかっこいいとは言えない



368 名前:デフォルトの名無しさん [2007/08/28(火) 10:31:19 ]
結局GUIは、
・Tkinter
・wxPython
のどちら(その他にもありますか?)が良いのでしょうか?

環境はMac(できればLinuxも)、
一般的で、かつ、将来性のあるGUIを選びたいです。

369 名前:デフォルトの名無しさん mailto:sage [2007/08/28(火) 10:42:50 ]
wxPython

370 名前:368 mailto:sage [2007/08/28(火) 10:48:29 ]
ラジャ。

ついでですが、Tkinterのダメな理由を教えて下さい。
(それを知っておけば心残り無くwxPythonできるので)

371 名前:デフォルトの名無しさん mailto:sage [2007/08/28(火) 10:53:11 ]
Tkinterは、ちょっと見たら気づくと思うけど
ウェジットがしょぼい。

簡単なスクリプトには使えるだろうけど…


372 名前:368 mailto:sage [2007/08/28(火) 11:04:25 ]
ではショボイTkinterはやめておきます。

ところで、Pythonで配布されてるGUIツールってありますか?
サンプルとかコマンドで動くスクリプトはネットに転がってますが、GUIスクリプトはあんまり見ないような。

373 名前:デフォルトの名無しさん mailto:sage [2007/08/28(火) 11:50:00 ]
>>372
IDLE

374 名前:デフォルトの名無しさん mailto:sage [2007/08/28(火) 11:58:05 ]
>>372
wxPythonをインストールすれば、XRCedっていう_GUIでI編集出来るツールが入ってる。
あと、wxPython に決めたら決めたで、Mac板のプログラムスレにも書いとけよ。

375 名前:368 mailto:sage [2007/08/28(火) 12:36:35 ]
>>374
wxPythonにケテーイはしましたが、マカーとはマカー文脈で会話するので...

376 名前:デフォルトの名無しさん mailto:sage [2007/08/28(火) 13:50:51 ]
wxgladeがいいんじゃね?

377 名前:368 mailto:sage [2007/08/28(火) 13:57:18 ]
そうなの?...



378 名前:368 mailto:sage [2007/08/28(火) 14:03:09 ]
あ、wxGladeってのはwxPythonのIDEみたいなものですね。

了解しました。使ってみます。
レイアウトマネージャ方式っていうか、位置の融通は無さそうですね。
コツを掴めば良いのでしょうが。

379 名前:デフォルトの名無しさん [2007/08/28(火) 14:11:43 ]
hobby9.2ch.net/test/read.cgi/appli/1186504133/79

どなたか頼みます。。。。

380 名前:デフォルトの名無しさん [2007/11/12(月) 00:23:27 ]
pythonで作られたwikiが使えるサーバっていうか、
ここ↓みたいなのありますか?
wiki.fdiary.net/
(rubyで作られたwiki実装のhikiで自分?のwikiを作れる)

381 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 10:15:16 ]
ttp://wiki.python.org/moin/PythonWikiEngines


382 名前:デフォルトの名無しさん mailto:sage [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")

383 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 01:40:58 ]
一つ目:
file = 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()

がんばりましょう。

384 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 01:45:37 ]
やさしいなぁ。。

385 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 02:05:37 ]
>>382
# 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"))

386 名前:382 mailto:sage [2007/12/03(月) 05:00:17 ]
即レスありがとうございました。
本当に感謝してます。

教えてもらった答え丸写しじゃなく自分なりに工夫して動作確認してみます。
いつの日か教える側に回れたら・・・

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

387 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 20:47:50 ]
nanoblog



388 名前:デフォルトの名無しさん [2008/02/03(日) 19:52:36 ]
polog.org/archives/2007/12/01003449.php

(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 ですべての漢字を列挙するにはどうしたら
良いでしょうか?

389 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 21:52:35 ]
import unicodedata
kanji = []
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)

何を漢字とみなすかが問題だけど、一般的にはこんなもんでいいんじゃないかな

390 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 21:54:13 ]
kanji.py

for 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


391 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 01:25:55 ]
>>388
それRuby?
ださすぎw

392 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 02:38:29 ]
>>389
fd = 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):

集合演算が地味に便利だと思いました…
どうもありがとうございました!

393 名前:デフォルトの名無しさん [2008/02/07(木) 16:51:26 ]
www.uploda.org/uporg1238130.txt_OQa3BGD4faITEXwNBMoL/uporg1238130.txt

英語サイトならIE.LocationNameで取得した文字列を扱えるのに
日本語のサイトの場合にはエラーになり、
.encode('utf-8')などをつけてエラーを回避しても文字はアルファベット部分しか表示されません。
ほかにもfindとか文字列操作したいけどうまくいかなくて
ぶっちゃけこのスクリプトが日本語表示まで含めて動くコードを教えてください。


394 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 16:55:52 ]
いやなスクリプトだなw

395 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 17:40:27 ]
どういう宿題だよ

396 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 17:43:02 ]
2ゲットスクリプトじゃなければ答える人もいただろうにね

397 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 17:48:19 ]
真の目的を隠したスクリプトに書き換える程度の応用力が望まれますね



398 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 17:50:41 ]
>>393
strに代入すんなよ

399 名前:393 [2008/02/07(木) 17:56:13 ]
いや、とっくに規制食らって投稿できないからいらぬ心配ですよ。

★080204 ニュース速報+「糞スレは立てない約束」AA2get荒らし報告
qb5.2ch.net/test/read.cgi/sec2chd/1202100384/

このスクリプトを選んだのは作ったやつの中で短いからで、
別に動くのを確認したらそれでいいんですよ。

荒らしっていうけど3以降には書き込んだりしないんだから残り998スレはほかの人が自由に書き込めるんですよ?
何の問題もないでしょう。


400 名前:デフォルトの名無しさん [2008/02/07(木) 18:13:43 ]
scripts.web.fc2.com/scriptsup/Auto2Get2chNSP.uws

UWSCで書いたやつと同じものがPythonならどんな感じになるかなって作ってるわけで、
これを手助けしたから荒らされるなんて心配も無用。

一応目標はpanda3d.org/使って3Dぐりぐりすることなわけで。
ああ、3Dぐりぐりに文字エンコードは関係ないですかそうですか・・・


401 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 18:53:06 ]
>>399
だれもそんな心配してないよwww

402 名前:デフォルトの名無しさん [2008/02/07(木) 20:21:55 ]
>>398
やあ表示できたよありがとう。
DOSプロンプトにならちゃんと表示されるようになった。

src.split('<')とするのには気が付いたけどまた躓いてるし。

WingIDE無料版がそれなりに使える。
日本語表示はされないものの、文字コードはそのまま扱えてるし
プレーンテキストよりかなり楽チン。
エディタだけじゃなくShellまで漢字に非対応なのがちょっと残念。


403 名前:デフォルトの名無しさん [2008/02/07(木) 22:17:26 ]
流れがよくわからんだが、ようは、日本語のことを聞きたいわけね

404 名前:デフォルトの名無しさん [2008/02/08(金) 00:59:25 ]
なんとかHTML最後まで読んでスレッド表示できるとこまでいった
あとは制御を正しくやって投稿まで出来れば完成か。
丸二日かかる計算だけどここまでやってもまださっぱりだ。


405 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 01:03:02 ]
COMなんて使うからだ

406 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 01:26:55 ]
だからどこの小学校の宿題なのか書けよ

407 名前:デフォルトの名無しさん [2008/02/08(金) 01:27:08 ]
>>405
ちゃうちゃう。
COM部分はUTMSじゃなくてUWSCで既に作ってあった。
まあ漢字が表示されないとか言ってたけどそれはCOMに限った話じゃないし。

そういえばUTMSどうなったんだろ・・・




408 名前:デフォルトの名無しさん [2008/02/09(土) 00:22:01 ]
日本語を扱えないのはPython関係がASCIIフォントしかサポートしてないからで、
フォントをサポートした環境に対して出力すればそのまま表示された。
一番簡単な方法は、DOSプロンプトから.pyファイルを起動して実行し、DOSプロンプトにprint出力。
なまじPython実行環境が文字出力できちゃうもんだからコーディングが間違ってんのかと思ってしまう。

まあuでユニコード定義した文字じゃないと文字化けするけど。


409 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 00:29:27 ]
文字コードとフォントがごっちゃになってないか?

410 名前:デフォルトの名無しさん [2008/02/09(土) 00:55:22 ]
>>409
なってないよ。

Pythonのシェルでユニコードマルチバイト文字をprintして0x9999とか表示されるのは
2バイト文字をサポートしてないからだよ。
ああ、これについては文字コードかな。
WingIDEのエディタとか内臓シェルで表示されないのは単純にフォントの問題。

それよりなんでLって人気あるんだろ。
実写版LだとLは自分の名前書いてキラに勝ったんだね。
僕もデスノートを贈られたとき、自分の名前書いて洗脳を解いたんだけどまあいいか。


411 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 01:55:36 ]
なんか生半可な人が来ちゃったなあ

412 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 08:39:40 ]
とりあえず、UTF-8とかCP932とか、ちゃんとしたコードセット名を使って説明
していただけないと、私のような初心者にはちんぷんかんぷんです ><

413 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 10:01:10 ]
>>409
分けて考えられない人は、ごっちゃにしてない、としか答えられないと思う。

414 名前:デフォルトの名無しさん [2008/02/09(土) 10:11:35 ]
>>412
CP932は大げさでしょ。

ソースコード自身の文字コードを置いておくと、
基本的にはASCIIコードと16ビットユニコードなんじゃないの?
んでWindowsNT系、XPとかVistaとかの漢字は16ビットユニコードだから、
NT内部だけで処理する場合には文字をそのまま送信、受信できるし、
ネット上のものでもブラウザ経由なら自動的にエンコードされるから問題ない。

んでpythonやり始めてすぐは、
文字化けする環境のせいでうまくできてるんだか出来てないんだか分からないところでちょっとつまづく。
というのがすぐ上で僕が書き込んでた問題。

問題があるのは直接サーバーと通信したりして、いろんな文字コードのデータを
そのままで送受信する場合。
ほかには、日本語環境ならシフトJISで保存されたファイルへのアクセスでエンコードが必要になる。

あとは、現状で自動でエンコードかかったりするらしいので勘違いしてはまってしまったりするかも。


415 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 10:13:34 ]
>>409
>>413
ごっちゃになってるとしか指摘できないのは分かってないからじゃないの?


416 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 10:24:23 ]
16ビットユニコードって何?

417 名前:デフォルトの名無しさん [2008/02/09(土) 11:17:16 ]
>>416
UTF-16のことだね。
特徴は、半角英数なども16ビットで表現すること。
普通にユニコードと言えばこれのことだから16ビットって言わないだけ。
pythonでu指定するのもUTF-16だろう。
ただuと入れれば済んじゃってUTF-16って名前が出てこないんで逆に分かりにくいのかもね。

UTF-8は、半角英数が8ビットで、
見分け方は、半角英数が見えつつ、漢字1文字が%xxみたいな半角記号3文字に置き換わる。
URLで使ってて普段目にするからどんなのかは分かるでしょ。

アルファベット圏ではUTF-8だと互換性は高いしデータ量は少なくて済むし普及しちゃってるんだけど
日本語みたいなマルチバイト文字圏では互換性のあるコードと言えば、UTF-16。
2バイトで表現すればデータ量は少なくて済むしプログラムでも固定長だから扱いやすいし。

まあシフトJIS単一が一番扱いやすいけどね。
データ量が最小で表現できるし。
でも制約も大きくて、インターネットで国際化がデフォな現代には合わないんだな。
こんなとこで言うような話題じゃないけど、
とりあえず日本語対応してなさそうに見えるpythonには必要な話題と思ったから書いた。

まあ、ごっちゃになってないとか言ったけど用語とか適当だし言葉も適切じゃなかったりしたかもね。
ようは話が通じればいいんだ。




418 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 11:45:33 ]
半角記号って何?

419 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 12:08:57 ]
URL エンコードされた文字列のことなんじゃないか?

420 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 12:38:14 ]
ucs4最強

421 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 12:49:58 ]
>>417
UTF-16は固定長じゃないwww

422 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 12:59:35 ]
UCS-2とは違うのだよUCS-2とは

423 名前:デフォルトの名無しさん [2008/02/09(土) 13:21:57 ]
【 課題 】
成績表のファイルを読み込み,合計点の上位20人だけを印刷する。20番目に同点者がいた場合は,同点者は全員印刷する(20人を超えることがある)。
【 用語 】
【 期限 】2月12日まで
【 Ver  】2.5.1
【 補足 】丸投げですが、よろしくお願いします。
自分でも多少やったのですがよくわからなくなりました。

424 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 13:24:20 ]
成績表のファイルとやらの書式を言ってくれんとなんとも

425 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 13:24:55 ]
プラットフォームは

426 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 13:29:54 ]
外部表現なんか適材適所で好き好きでいいんだけどさ
UTF-16なんて実際どこで使われてるん?めちゃ失敗作だろあれだけ。
日本人だけどもUCS-2のままのがまだマシ。

427 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 13:45:35 ]
>>423
それだけじゃ具体的なコードは提示できないけど
単に人間がやる場合(モデル)をかんがえればいいんだよ。

a. 成績表を目で追っていき一番点数の高いやつを見つけて印刷。
二位以下も同様にくり返す。
b. 成績表から個々の成績(名前と点数の組?)をそれぞれ一枚の紙切れに写していく。
それらを点数順に並び替える。上位から印刷。

他にもあるだろうけどaよかbのが単純。



428 名前:423 mailto:sage [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

説明がわかりにくかったらいけないのであげときました
sakuratan.ddo.jp/uploader/source/date69811.txt

429 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 13:55:46 ]
>>417
君がわかってない人である事は通じた


430 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 14:32:04 ]
>428
適当に。

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

431 名前:428 mailto:sage [2008/02/09(土) 14:36:49 ]
>>430
正常に動作しました。本当にありがとうございますm(_ _)m
これからこのプログラムを理解したいと思います。

432 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 14:57:43 ]
sortメソッドに比較関数を渡してソートできるかを見る課題だと思った

433 名前:デフォルトの名無しさん [2008/02/09(土) 15:20:18 ]
>>429
じゃあどこまで分かってるのを分かってるって言うっての?

あんたが言いたいのはたとえば殺人罪だと初犯の罪状がこれこれで
何人殺せば死刑だけど年齢がいくつだとここまででで、さらに何条の何っていう
特例まで含めた法律を丸暗記してないと弁護士としては駄目なんじゃないのみたいな?

普通は死刑になりうるし懲役で20年くらい食らう程度に知ってれば十分なんじゃね?


434 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 15:23:59 ]
わたしのために喧嘩しないで

435 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 15:50:35 ]
大学入りたてでちょっと法律学んだ子が
法律事務所にずかずか入ってきて
法律とはこういうもんだと延々講釈を垂れる

ここを法律事務所に例えるのは少し無理があるがまあそんな感じ

436 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 16:02:57 ]
それならば「普通は懲役になりうるし懲役で20年くらい食らう」と知っていることだけ
答えればいいのに…
知らないことを無理して答えるから恥をかく。

437 名前:デフォルトの名無しさん [2008/02/09(土) 17:40:06 ]
>>436
どこら辺に知らないことを知ったかぶりしてる部分があるんですか?
馬鹿?

>>435
いや、よその法律事務所の人は来なくていいから。
ああ、非常勤職員でしたか。たまには顔出してね。




438 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 18:51:44 ]
内部表現が16ビットである事とUTF-16は全然別の話だから
それをごっちゃにしているのは馬鹿だと断定できる



439 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 18:54:47 ]
>>437
指摘されてもわからないところが、救いようのないバカ。

440 名前:デフォルトの名無しさん [2008/02/09(土) 19:05:24 ]
>>426
>UTF-16なんて実際どこで使われてるん?

WindowsのAPIではUTF-16が使われている
つまり最も使われている。


>>438
UTF-16の16は16ビットの16なのに16ビットとUTF-16が全然別の話だと?

そういうことを言うから分からなくなるんだろ。この役立たずが。
大学院と言う名の病院でおとなしくしてろ。

>>439
文字は表示されればいいってことが分からないアホがなに言ってんの?
内心の美しさは思い込みで作られるって知ってる?


441 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 19:10:01 ]
正確にはU"TF"じゃないけどな

442 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 19:10:50 ]
サロゲートペア?

443 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 19:15:04 ]
恥の上塗りってやつを久しぶりに見た。

444 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 19:15:13 ]
>>440
あーあ、わざわざ上げちゃって。 バカは驚くほど侮蔑に弱いからな。www
お前の説明はデタラメだ。

445 名前:デフォルトの名無しさん [2008/02/09(土) 19:18:32 ]
え、UTF-16=UCS-2 だと思ってた

446 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 19:21:41 ]
UTFは文字とコードのマッピングに関しては何も定義していない。

447 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 19:31:05 ]
「半角」は、無いよな、いくらなんでもな・・・



448 名前:デフォルトの名無しさん [2008/02/09(土) 19:45:25 ]
>>441
無関係なことを言って混乱させるなボケ

>>444
大雑把なのを出鱈目だってさ。

後ろにwwwつけるほうがよっぽどデタラメなのが分からないVipperが。
早いところ治療しろよ。
精神病は治らないんだっけ
一応アスペルガーっていう病気らしいから調べて病院に行って来い。

>>447
半角じゃないならなんだ。全角ですかそうですか。

>>445
正確には知らんが、UTF-16とUCS-2はほぼ同じもの。
2001年3月に策定のUnicode3.1以前はUTF-16もなかったわけで、
今一番普及してるWindowsXPが登場直後のUTF-16を満足してるかわかんないから実質区別はないかも。

僕が勉強したのは完全16ビットのユニコードのころだったし文字の深いところまでやってるわけじゃないから
別に16ビット固定で全然困らないよ。


それを訳分からんやつが小難しい辞書を引っ張り出してきて「あれ?ちょっと違うんじゃね?」って
具体的には何も言わないくせにけちばっかりつけてきやがる。


449 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 19:49:59 ]
サロゲートペアもExtension Bも知らないでここまで大口叩く奴は初めて見た。

450 名前:デフォルトの名無しさん [2008/02/09(土) 19:51:57 ]
>>449
俺知ってる。けど馬鹿に教えても無駄だから教えない。何のために知ってるって発言したの?自己主張ですか。じゃあ来なくていいよ。資源の無駄。


451 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 19:53:54 ]
具体的に言わないのはわざとなのです。
他人の間違いを指摘して、正してあげるほど
親切な人ばかりじゃないのです。

ちなみに「ちょっと違う」わけではりません。


452 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 19:58:00 ]
>>448には>>446の意味は一生理解できまい。

453 名前:デフォルトの名無しさん [2008/02/09(土) 20:02:23 ]
>>446
はいはいそうだね。

UTF-8とTUF-16を変換してもなんにもかわんないよね。


454 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 20:03:57 ]
超大物釣り師が出現したのは、このスレですか?

455 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 20:06:29 ]
>>448
デタラメを大雑把と主張する幸せ脳。wwww

> 半角じゃないならなんだ。全角ですかそうですか。
> 半角じゃないならなんだ。全角ですかそうですか。
> 半角じゃないならなんだ。全角ですかそうですか。
> 半角じゃないならなんだ。全角ですかそうですか。
> 半角じゃないならなんだ。全角ですかそうですか。
wwwww

> 正確には知らんが、UTF-16とUCS-2はほぼ同じもの。
必死でググッてきたようだな。「正確には知らんが」が笑わせてくれる。

> 2001年3月に策定のUnicode3.1以前はUTF-16もなかったわけで、
wwwww

456 名前:デフォルトの名無しさん [2008/02/09(土) 20:06:31 ]
>>451
文字コードを勝手に変換するようなスクリプト言語をそんな厳密な計算に使うわけないでしょ。

オートマチック車に乗ってるクセしていちいち1速2速3速ってレバー操作するんなら何のためにオートマチック車に乗ってんのかわかんないでしょ。
燃費を悪くするためですかそうですか。


457 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 20:09:29 ]
いかん。上げてたせいで変なのが寄ってきた。




458 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 20:11:54 ]
間違ってるよ、って教えてあげてる方々に質問です。
このひとって、もしかして、文字コードとフォントの区別がついてないひとだよね?
別の人が現れたわけじゃないよね?

459 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 21:26:07 ]
別の人じゃありません。全部同じ人ですよ。

460 名前:458 mailto:sage [2008/02/09(土) 22:37:15 ]
ありがとうございます。
最初の人は恥ずかしくてもう出てこれないな、と思ってたので…

461 名前:デフォルトの名無しさん [2008/02/09(土) 23:12:22 ]
教えて欲しい未熟な人と、教えてあげるやさしくて知識のある人のスレかと思ったけど
未熟な人をいじめてあざ笑ってストレス発散する場所だったんですね。
だから1年半経っても半分も埋まらないほど過疎ってたんだ。
新入りをいびって追い出すから。

まあ、どっかの相撲部屋みたいに殺してしまうわけじゃないからいいけど。


462 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 23:13:16 ]
殺してしまうわけじゃないから良いスレですよ

463 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 23:18:37 ]
いえ、未熟だと気がつかないばかりか、周りが未熟だと言い張るひとは
決して「教えて欲しい未熟な人」ではありません。


464 名前:デフォルトの名無しさん [2008/02/09(土) 23:58:51 ]
>>463
僕がここで質問して、まあ誰も教えてくれなかったけど解決して自分なりに結論を出して、
まあ質問が残ったままになるのも迷惑だろうしと書き込んだら、
いきなり人間的に未熟な人たちがケンカを売ってきたから応じただけですよ。

>>409とか>>411とか>>413とか
>421
>426
>429
>435
>436
>438
>439
>441
>443
>444
>446
>447
>449
>451
>452
>455
>460
>463

とか

一番最初に>>409がなんか勘違いしたところから始まってると思うよ。


465 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 23:59:59 ]
まあ上げてる人を相手にしちゃいけないってことですよ

466 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 00:04:26 ]
もう飽きた図ら


467 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 00:20:27 ]
妄想から結論だすひとは、まぁ、最後はこんなもんですな。



468 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 00:21:08 ]
> 僕がここで質問して、まあ誰も教えてくれなかったけど解決して自分なりに結論を出して、
> まあ質問が残ったままになるのも迷惑だろうしと書き込んだら、
デタラメが残るほうが1000万倍迷惑だ。

469 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 00:26:08 ]
>>464
間違いを指摘したら「人間的に未熟な人」になるの?

470 名前:デフォルトの名無しさん [2008/02/10(日) 00:29:55 ]
嘘が残って困るから僕も反論してるのに

471 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 00:32:55 ]
> 自分なりの結論
> 自分なりの結論
> 自分なりの結論
> 自分なりの結論
> 自分なりの結論
弱気になってきたな。wwww

472 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 00:33:57 ]
反論なぞどこを探してもないわけだ。
あるのはタダのイヤイヤだけ。

473 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 00:34:00 ]
だからCOMなんて使うからだろ。
その選択眼が全てを物語っている。

474 名前:デフォルトの名無しさん [2008/02/10(日) 00:34:13 ]
とりあえず言いたいのは日本語のフォントを選択させてくれれば日本語表示できるのに
英語フォントしか選択できないから日本語が表示できないってことなんだけど
カンケーネーだのそれは間違ってるだのウゼー


475 名前:デフォルトの名無しさん [2008/02/10(日) 00:36:28 ]
>>473
そうだね。
pythonなんてクソ言語を選択した僕の間違いだったね。
だけど、僕より先にpython使っててよく知ってるはずなのにその過ちに気が付かないあなたはもっと愚かですね。


476 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 00:36:47 ]
だって、文字コードとフォントの区別がついてないんだもん。
(最初に戻る)

477 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 00:38:17 ]
↓そこでPythonがクソだからいけないんだ〜のやるおAA



478 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 00:41:18 ]
おまけに内部実装と文字集合とコーデックの区別も付いていないと

479 名前:デフォルトの名無しさん [2008/02/10(日) 00:42:25 ]
>>478
内部なんか知るかよ。

逆コンパイルすると逮捕されるよ?


480 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 00:44:40 ]
だからさっさとPythonなんかやめて、
フォントの指定を言語仕様に含んだ言語へ行けって・・・

481 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 00:46:24 ]
>>480
だからフォントの指定を言語使用に含んだ言語がどれなのか教えてくれたらいけるんだってば。


482 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 00:52:49 ]
つ"VB"

483 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 01:00:17 ]
>>479
ヒント:オープンソース

484 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 07:51:37 ]
俺のところには来るなw

485 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 15:26:48 ]
久々にスレが延びてると思ったが
案の定バカが暴れてただけかorz


486 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 15:29:48 ]
>>456
AT車でもバックするときはRにGear入れるだろ
お前はDのままでバックしないっつって喚いてる馬鹿


487 名前:デフォルトの名無しさん [2008/02/10(日) 15:46:37 ]
python3.0っていつ出んの?



488 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 16:10:05 ]
>>487
ttp://www.python.org/download/releases/3.0/

489 名前:デフォルトの名無しさん [2008/02/10(日) 16:50:35 ]
>>483
僕が使ってるWingIDEは有料なんだけどソースコードはただでゲットできるの?

>>482
いらね

>>486
わかんねーから教習所に通ってんのに、お前らはなんにも教えてくれない自動車教習所の教官。
へたっぴな運転を見てからかってる。

僕も脇をすり抜けたりしてからかってはいるが、教官が一緒に乗ってるから安心してやってるんだ。
失敗できるのは生徒である特権だからな。
と、突然リアルに話を振って見る。


490 名前:デフォルトの名無しさん [2008/02/10(日) 16:55:50 ]
わざわざageなくてもいいですよ

491 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 17:03:21 ]
>>489
すげー被害妄想だな


492 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 21:28:53 ]
>>489
教習所の教官は金貰ってやってる仕事だ。
俺らは自分のプログラミングの為に来てるついでに
気が向いた時にボランティアもやってるってだけ。

493 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 22:05:48 ]
必死で考えた例え話なんだろうけど、低脳が考えただけ有って穴だらけでかなり笑えるな。

494 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 22:12:05 ]
DOS 窓でスクリプトのエンコーディング指定されたファイルの
unicode 文字列が文字化けしないのは
印字するときにどーゆーワケか DOS 窓のエンコーディングにエンコードしてくれるからで
フォント関係ないと思うんですが
違うんですか?

495 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 22:28:01 ]
いま暴れてる人は、フォントを指定すれば文字コードに関係なく
自分の意図した表示が得られると思っているのです。

496 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 22:29:34 ]
>>489
お客さん、教習料が未納ですよ

497 名前:デフォルトの名無しさん [2008/02/10(日) 23:06:30 ]
>>494
フォントが関係ないのになんで表示されるんですか?
英語版Windowsでは表示されませんがなんで表示されないんですか?

なんでそういう出鱈目を吹聴して回るんですか?




498 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 23:28:41 ]
時々、こういうヤツをどうにかして殺せないかと真剣に思う。

499 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 23:35:24 ]
放置しとけば自滅する。

500 名前:デフォルトの名無しさん [2008/02/10(日) 23:40:17 ]
pythonWinではDOS窓のように漢字が表示されないなあ。


501 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 23:43:39 ]
>>498-500
お前らまとめて富士の樹海ハイキング行ってこい

502 名前:デフォルトの名無しさん [2008/02/10(日) 23:44:54 ]
pythonWinの場合
>>> 'あいう'
'\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'


503 名前:デフォルトの名無しさん [2008/02/10(日) 23:53:04 ]
pythonWinの場合
>>> 'あいう'
'\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'あいう'
あいう


504 名前:デフォルトの名無しさん [2008/02/10(日) 23:54:15 ]
ミス

コマンドラインの場合
>>> 'あいう'
'\x82\xa0\x82\xa2\x82\xa4'
>>> print 'あいう'
あいう
>>> u'あいう'
u'\u3042\u3044\u3046'
>>> print u'あいう'
あいう


505 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 23:57:12 ]
これだけ耳の無い人も珍しいな

506 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 23:59:39 ]
まだいたのか・・・

507 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 00:04:43 ]
>>497
繰り返しますが
DOS 窓で unicode 文字列を印字するときは
勝手に DOS 窓のエンコーディングにエンコードされます
日本語版 Windows しか触ったことがないので分かりませんが
おそらく英語版の DOS 窓のエンコーディングは日本語表示できませんよね



508 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 00:13:41 ]

お客様の中に子供の知育、中でも特に
「分けて考える」という概念を芽生えさせる手法について
詳しい方いらっしゃいませんか?



509 名前:デフォルトの名無しさん [2008/02/11(月) 00:19:27 ]
PhthonWinの場合の追加

>>> s = unicode('あいう','sjis')
>>> s
u'\u3042\u3044\u3046'
>>> print s
あいう


510 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 01:04:15 ]
>>508
必要なのは発達障害児を支援する訓練を受けている人だろう。

511 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 01:05:01 ]
みんな親切だな

512 名前:デフォルトの名無しさん [2008/02/11(月) 01:45:59 ]
おまえら日本語訳とか見てる?
ここ間違ってるんだが、何がどう間違ってるか分かる?
えらそうに説教たれてるんだから即答できるよな?
www.python.jp/doc/release/tut/node5.html#SECTION005130000000000000000


513 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 01:54:46 ]
おまいは本当に論理的に物を考えられないんだな

514 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 02:15:04 ]
>>512
訳が間違ってるなら、連絡すれば?
人手が足りないらしいし。

Pythonドキュメント翻訳プロジェクト
ttp://www.python.jp/Zope/pythondoc_jp/

515 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 02:15:06 ]
なんかネタスレにレスが大量に……と思ったら
達人タンじゃないか。
こんな所で何やってんの?
また、横着言って暴れてるのかね。

516 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 02:18:45 ]
その筋では有名なのか?
引き取ってくれよ。

517 名前:デフォルトの名無しさん [2008/02/11(月) 02:27:13 ]
訳が間違ってるんじゃなくて説明が間違ってるだろ。
u指定した文字列のコードがぜんぜんユニコードじゃないのに気がつかなかったのかと。




518 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 02:35:57 ]
IDLE 1.2.1 だと

>>> u'あいう'
u'\x82\xa0\x82\xa2\x82\xa4'
>>> unicode('あいう', 'cp932')
u'\u3042\u3044\u3046'

ってなるよ

519 名前:デフォルトの名無しさん [2008/02/11(月) 02:37:57 ]
なるけど、間違ってるよな。

だってユニコードじゃないんだもん。


オブジェクト的にはユニコード扱いでも、壊れたデータだからユニコードじゃない。


520 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 04:22:49 ]
いや訳の間違い
docs.python.org/tut/node5.html#SECTION005130000000000000000
元は 'äöü' だから気をきかせて 'あいう' に置き換えた
つもりで間違いを入れてしまったんだね

521 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 10:42:24 ]
>>> u"abc"
u'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'

522 名前:デフォルトの名無しさん [2008/02/11(月) 11:38:34 ]
MLのログを見るとちょうど1年前に>>512と同じ指摘されて対応するようなことを言ってるね。
僕は新参者でよく知らなかったけど、u指定で自動的にユニコードにエンコードされるのは
あのドキュメントのバージョンあたりからで、それ以前ならあの訳の結果で正しかったらしい。
他の製品とで動作が異なるのは、仕様を引きずったかどうかだけっぽいな。

まあ最初の仕様がまずすぎだと思うけど。
äöüってのが、シフトJISでの半角カナの位置づけで、
そのままのコードでユニコードになるんだろうから言語仕様で問題にはならなかったんだろう。
・・・違うな。
ただデフォがunicodeなだけだ。

しかし、せっかくインタプリタがあるのに、画面から入力したものとファイルに保存したものとで動作が異なるようじゃ当てにならんな。
せめて画面とファイルの文字コードを統一できればいいけど、utf-8以外で保存してもエラーになるし。
最新版のコマンドラインとutf-8のファイル使えばちゃんと動くから僕はいいけどみんなはいろいろ衝突しちゃうだろうなあ。


523 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 12:10:07 ]
>>522
> utf-8以外で保存してもエラーになるし。 

#-*- coding: sjis -*-
とか付けてる?

524 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 13:22:04 ]
まだやってんのか

525 名前:デフォルトの名無しさん [2008/02/11(月) 13:24:53 ]
>>523
ああ、メモ帳で保存形式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で保存するべきだろう。


526 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 13:30:49 ]
やれやれ、coding指定を知らない人だったのか。これで終了かな。

527 名前:デフォルトの名無しさん [2008/02/11(月) 13:36:54 ]
coding指定知らなかったけど別に間違ってもないし。




528 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 14:06:27 ]
>>527
まあ、Rubyでも使ってろや

529 名前:デフォルトの名無しさん [2008/02/11(月) 14:27:48 ]
>>408-409
文字コードのお話はこれが最初。

延々やりあってる間に確かにいろいろ間違ってはいたけど、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
この人は正しかったようだが「フォントは関係ない」とか余計な事言うから。


それ以外について指摘すべきところはないな。


530 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 14:31:14 ]
>>529
>それ以外について指摘すべきところはないな。
人間性について

531 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 14:51:59 ]
半端な知識でつじつま合わせは恥の上塗り。wwww

532 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 15:09:13 ]
負けず嫌いな人をいじってると、いつまでたっても終わらないよ

533 名前:デフォルトの名無しさん [2008/02/11(月) 15:13:52 ]
ム板、マ板には長くいるが、こんなアホども見たことない。















こともない。


534 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 15:14:27 ]
>>529でサマリまで出してきたしもういいじゃん
これ以上やると突っついてる方がバカっぽい

535 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 15:21:43 ]
>>529を読む限りではそれほどの馬鹿でもないと思うんだが、変に自信満々な芸風を改めて
くれないと結構鬱陶しがられるだろうな。

536 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 16:04:39 ]
なんでみんな釣りの相手するのが好きなのはなぜ?
暇なの?

537 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 16:18:55 ]
釣るよりも釣られたい
愛されるより愛したい



538 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 16:30:08 ]
あぁなるほど、そういう事でしたか・・・失礼しました。
以前多少かじった程度なのでこの際に少し弄ってみることにします。

539 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 18:51:44 ]
結局ここまできて、文字コードとフォントを分けて考える事は出来なかったわけだ。

540 名前:デフォルトの名無しさん [2008/02/11(月) 19:17:59 ]
切り離しちゃったら文字が表示されなくなっちゃう品

541 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 19:18:30 ]
>>539
そんなに分けたかったらフォント削除しやがれ

542 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 19:30:18 ]
>>539
複数のレイヤーに分離して抽象化する事について、理解できない人は案外多いもんだよ。

543 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 20:20:02 ]
まぁ気持ちはわかるな。
いろいろ気持ち悪いから、utf-8で入力やprintがすんなりできそうな対話窓とか以前探したんだけど、
いまいちしっくり来るのが無かった。

544 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 20:53:06 ]
結局、内部と外部の境界を意識して
* 内部はunicodeに統一
* 入力はunicodeにデコード
* 出力はunicodeからエンコード
ってやるのが妥当なんじゃない?

545 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 21:01:02 ]
>>543
Poderosaとか、TeraTermとか、puttyとかあるじゃん

546 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 21:09:44 ]
UNICODEがそのまま表示できるターミナルでも
インタプリタでの出力は0xhogeになってしまうのはなぜ?


547 名前:デフォルトの名無しさん [2008/02/11(月) 21:11:52 ]
Pythonに対応したフォントが入ってないからだよ。



548 名前:デフォルトの名無しさん [2008/02/11(月) 21:22:33 ]
新しいギャグが生まれました。

549 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 00:28:37 ]
「うちではちゃんと表示できるよ」派

550 名前:デフォルトの名無しさん [2008/02/15(金) 18:36:44 ]
>>503
>>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全部いけちゃうのは知ってた?


551 名前:デフォルトの名無しさん [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')
縺ゅ>縺・


552 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 20:29:04 ]
>>550
知らなかったす。python用IDEみたいですね。
しかし対話でutf-8をスムースに使いたいのは、主にIPythonだったりするんで…。


553 名前:デフォルトの名無しさん [2008/02/18(月) 06:45:59 ]
>>30
>2chの任意のスレを複数登録・管理し、有益な情報が投稿されたときのみ通知、

これって簡単?

554 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 06:52:47 ]
>>553
有益判定が大変。


555 名前:デフォルトの名無しさん [2008/02/18(月) 06:55:02 ]
>>553
多分これは除外不可能
mamono.2ch.net/test/read.cgi/tvd/1202050287/901-907


556 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 12:25:58 ]
一見すれ違いかと思ったが

スレタイ「エジソンの母」

896の主張「エジソンは天才」

896の主張「天才が世のため人のためになるかならないのか」

901の主張「白(青)LEDの実用化は天才的かつ人のためにもなった例」

902(=901)の自慢話

903(=901)の自慢話(自演?)

904ネタ

905雑談

906スレ本来の流れにもどる?

907(906の自演)


557 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 12:27:48 ]
896〜901くらいまでは
辛うじてスレの主旨に合ってるが
それ以降は糞レス

ただ、いずれにせよ漏れにとっては全部無益だった




558 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 12:29:05 ]
>>553
「何も通知しないプログラム」を作れば、ほぼ仕様に適合する。

559 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 07:12:13 ]
>>555
俺には、スレ全部が無益だ

560 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 10:25:44 ]
>>553
できた

print "Hello World."

561 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 11:52:09 ]
妹に一緒にお風呂に入ろうと誘われたんですがどうすればいいですか?

562 名前:デフォルトの名無しさん [2008/02/24(日) 11:57:44 ]
>>561
さっさと入って来いこの幸せもん。

すみずみまで丁寧に洗ってやるんだぞ。


563 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 15:12:56 ]
PILを使って画像を縮小はできたんだけど
フォルダの中の複数の画像をまとめて縮小ってどうやりますか?

>>> 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文使うとは思うんだけど…
教えて偉い人

564 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 15:30:39 ]
>>563
>フォルダの中の複数の画像をまとめて縮小

この一言を実行するために必要な作業を、できるだけ細かく分けて考えてみな。
そして、リストにして書き出してみな。
まず日本語で書く。
書いたらここに貼り付ける。
「コンピュータの気持ちになる」ことが肝心。

565 名前:563 mailto:sage [2008/02/26(火) 15:41:28 ]
・フォルダを探す
・フォルダのファイルを1つ読む
・そのファイルを縮小
・そのファイルをセーブ
・次のファイルを読む
・次のファイルを縮小
・次のファイルをセーブ

こんな感じですか?

566 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 15:46:34 ]
for f in os.listdir(d):
    path = os.path.join(d, f)
    # ...

567 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 15:50:09 ]
for path in glob.glob(r"C:\pyphot\*.jpg"):
 # ...



568 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 15:59:20 ]
>>563
その質問のために「画像の縮小」という話題から入るところに、応用力の無さを感じる。
もっと抽象的に考える習慣を付けると良いのではないかな。

569 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 16:08:50 ]
>>565
次は、そのリストを最初から順番に実行するスクリプトを作ってみ。
もし行き詰まったら、リストの項目をさらに細かな処理に分けてみるとよいよ。

570 名前:563 mailto:sage [2008/02/26(火) 16:29:57 ]
>>568
抽象的ですか…

>>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")

こんな感じですかね?




571 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 16:33:11 ]
動かないだろそれ・・・

572 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 16:35:46 ]
動かざること山の如し

573 名前:563 mailto:sage [2008/02/26(火) 16:35:53 ]
あ、間違い
for 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

これでどうですか? 


574 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 16:37:42 ]
動くようになってから提出な

575 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 16:39:14 ]
ここに張る前にインタラクティブシェルとかに張って試せよ。

576 名前:563 mailto:sage [2008/02/26(火) 16:40:34 ]
>>574
>>575
すみません
了解しました 

577 名前:hint mailto:sage [2008/02/26(火) 17:19:32 ]
1. glob.globが返すのは何か
2. import Imageがなくなってる
3. i.save(r"C:\pyphot\resize.%s") % i は文法的におかしくて、i.save(r"C:\pyphot\resize.%s" % i)としないといけない、(でも、コレもなんか変)



578 名前:563 mailto:sage [2008/02/26(火) 17:32:15 ]
import glob
for path in glob.glob(r"C:\pyphot\*.jpg"):
  import Image
  r = Image.open(path)
  r.thumbnail((200,200),Image.ANTIALIAS)
  r.save(path)

できましたけど、上書きされる方法しか思いつかなかったorz
別に出力させたい時はどうしたらいいんでしょうか?

579 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 17:33:47 ]
saveするときファイル名を変えればいい

580 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 17:34:05 ]
ファイル名を変えればいいんじゃない?ってとこまで考えた?

581 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 17:40:21 ]
ココなんて育成ゲーム?

582 名前:563 mailto:sage [2008/02/26(火) 18:21:52 ]
import glob
for 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)

できました!
スレ汚しすまそ


583 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 18:44:06 ]
長さ決め打ちより os.path の basename, dirname, splitext
あたりを使ったほうが良いよ

584 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 21:12:41 ]
なぜglobモジュールに頼るのだろうか。
reとosで事足りる気がするが

585 名前:563 mailto:sage [2008/02/26(火) 22:20:44 ]
>>583
>>584
勉強不足で申し訳ないです…


586 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 22:41:24 ]
584は正規表現大好きなPerl由来のオールドタイプ。

587 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 22:52:36 ]
>>584
一般論として専用に設計されたものがあるなら、汎用品を使って再発明しないほうが良い



588 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 23:14:37 ]
globだとUnicodeファイル名が来たらアウトじゃね
os.listdirで列挙してreで絞込みのほうがいいと思うんだが

589 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 23:19:28 ]
>>587
文字コードの絡みで問題ないようにするには
メソッドじゃなくてreできちんと処理すべきだと思うんだ。
日本語ファイル名が0なら必要ないけど。

590 名前:563 mailto:sage [2008/02/26(火) 23:35:51 ]
たびたびすみません
勉強の為にどなたか書き直してもらえませんか?

591 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 23:55:17 ]
コレで十分

import 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)

592 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 00:13:22 ]
import os
import 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)

593 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 02:55:29 ]
import re, os, Image

re_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)


594 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 02:58:36 ]
>>> dirname, filename = os.path.split("c:\\test\\foo.jpg")
>>> filename, ext = os.path.splitext(filename)
>>> dirname, filename, ext
('c:\\test', 'foo', '.jpg')

この辺りも使うとスマートなんジャマイカ

595 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 03:22:54 ]
このスレも自演厨が棲息するようになったのか

596 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 03:31:35 ]
>>594
うーん、あんま変わんなかったような。まぁ練習ということで。

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)


597 名前:デフォルトの名無しさん [2008/02/27(水) 05:25:34 ]
ファイルシステムの文字コードは考えなくても大丈夫?



598 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 08:51:16 ]
os.listdirにUNICODE文字列を渡しているならOK

あとどうせやるなら差分なりポイントだけ貼ってくれよ
間違い探しなんか誰もしたくないだろう

599 名前:デフォルトの名無しさん [2008/02/27(水) 10:22:54 ]
誰もユニコード指定してないから大丈夫なのかなと思ったんだ。

600 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 11:40:06 ]
きっと Python 3000 なんですよw

601 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 13:27:37 ]
ファイル名にマルチバイト文字列を使うのを許されるのは中学生まで

602 名前:563 mailto:sage [2008/02/27(水) 15:00:26 ]
>>591
勉強になります
ありがとうございます

>>592
if fn.lower().endswith(".jpg") and os.path.isfile(fn):
がちょっと解りにくかったですが理解しました
ありがとうございます

>>593
正規表現は勉強不足ですorz
print fn, '->', fn_new ←これいいですね

>>594
なるほど
勉強になります

>>596
ファイル名分解した方がよさげですね



GUI使って便利に出来たらいいなぁ なんて
思ってますが、先は長そうです

みなさん、ありがとうございました

603 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 18:19:28 ]
始末書.docを送ってくる30代の部下が許せなくなってきました

604 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 18:31:19 ]
そうですか

605 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 18:55:15 ]
企画書.xlsを送ってくる20代前半美人OLはどうでしょう。

606 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 18:59:15 ]
ファイル名一覧.pptは、ちょっとめまいがした。

607 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 19:11:31 ]
あそこ.bmpはいかが?



608 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 19:16:12 ]
>>607
無圧縮ならOK

609 名前:デフォルトの名無しさん mailto:sage [2008/03/07(金) 23:01:09 ]
すみません。
宿題というほどではないのですが、
Pythonで2chのdatファイルを集めるプログラムを作成しています。
しかし、通信時間を設定していないせいか、何件かdatファイルをダウンロードしたら、
それ以降404エラーばかりになってしまいます。
そこで、一件獲得したら10秒待つようにしたいのですが、
どうしたらよろしいでしょうか?
宜しくお願いいたします。

610 名前:デフォルトの名無しさん mailto:sage [2008/03/07(金) 23:07:22 ]
>>609
import time
time.sleep(10)

611 名前:609 mailto:sage [2008/03/07(金) 23:09:44 ]
>>610
マジサンクス!!
すごく助かりました。

612 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 08:47:05 ]
>>611
更新をチェックして新規と更新のあった分だけをダウンロードしろよ?


613 名前:デフォルトの名無しさん [2008/03/29(土) 15:27:50 ]
ほしゅ

614 名前:デフォルトの名無しさん [2008/03/30(日) 12:24:53 ]
age

615 名前:デフォルトの名無しさん [2008/04/13(日) 18:48:34 ]
data = re.sub("[.*?]", temp, data)

『.』 を弾くにはどうしたら良いでしょうか?

616 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 19:50:45 ]
>>615
\.

617 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 20:11:32 ]
実際のスクリプトは何をしたいんだ?
[]の中じゃ、.*?とかは「その文字そのもの」を表して、
任意の文字とか最短マッチとかにならないんだが。

import re
data = 'a.b'
temp ='-'
data = re.sub("[.*?]", temp, data)
print data

結果
a-b



618 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 22:59:21 ]
宿題じゃなくてスレチかもしれませんが、PythonでTcl
構文を解釈するモジュールなんてないですか?


619 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 23:08:27 ]
SimpleParseでごにょごにょやればいいのでは

620 名前:618 mailto:sage [2008/04/29(火) 23:21:21 ]
それは1から実装するのとあまりかわらなさげ。
至れり尽くせり的なものがあるといいのですが。

621 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 23:28:36 ]
www.google.com/search?q=tcl2py

622 名前:618 mailto:sage [2008/04/30(水) 00:27:48 ]
tcl2pyみてみる。サンクス。

623 名前:デフォルトの名無しさん [2008/05/06(火) 13:56:32 ]
ニュートン法を使った平方根計算を作りたいのですが、例えば
Nの平方根を求める。初期値 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文は(コメントを取ると)出力されるので、
再帰計算中に、許容誤差範囲に収束しないという事ではなさそうです。

624 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 13:59:31 ]
>>623
最後の行に return が要るんじゃね?

625 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 14:04:34 ]
>>624
return my_sqrt(n, new_x,eps)でうまくいきました…ありがとうございました。
再帰で帰ってきた値を、さらに返さないといけないって事ですね。

626 名前:デフォルトの名無しさん [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つ並べたウインドウを表示せよ。
複数並べるには、親となるフレームを用意し、そこに配置すれば良い。


量が多いですがお願いします。


627 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 06:39:26 ]
>>626
他スレで同じ質問して既に回答例を出してもらってるじゃん。



628 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 08:04:45 ]
> 以下のコードを実行し、何が起きるかを理解せよ。

これは人に聞くもんじゃないだろ・・・

629 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 22:26:45 ]
述べよ、ならともかく理解は他人にはどうこうできないなw

630 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 23:53:07 ]
よし親切な俺が代わりに理解してやる

631 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 23:54:37 ]
俺も。
理解するだけだけどな。

632 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 00:26:57 ]
おれも理解できた

633 名前:デフォルトの名無しさん [2008/06/07(土) 00:37:13 ]
そういう問題は典型的なあれだな

レポート提出したあとに口頭諮問がある
そこでしどろもどろになったら終わり

悪いことは言わんから課題は自分でやっとけ


634 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 07:35:34 ]
>>626

la を l1 とか書くと可読性が著しく低下することを理解

635 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 13:10:08 ]
すいません、おれも理解してもらっていいですか?

636 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 14:05:19 ]
お断りします。

637 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 14:08:55 ]
      ハ,,ハ
     ( ゚ω゚ )  お断りします
    /    \
  ((⊂  )   ノ\つ))
     (_⌒ヽ
      ヽ ヘ }
 ε≡Ξ ノノ `J



638 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 14:19:16 ]
男割りします。

639 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 14:21:14 ]
いやん割らないで

640 名前:デフォルトの名無しさん [2008/06/09(月) 20:15:06 ]
【 課題 】
指定したフォルダの中身をフォルダの構成などを含めて完全にバックアップするソフトを作成すること。

尚、バックアップファイルには以下の機能を持つようにすること。

・ 対象ファイルや除外ファイルを指定できるような
仕組みを持つこと。
・ バックアップ経過のログを作成すること。
ログにはバックアップ処理の実行時間を出力すること。

また、既にあるフォルダが指定された場合の対処についてもそれぞれ考慮して
機能の実装を行うこと。


作業に余裕のある人は以下の機能を追加すること。

・バックアップしたファイルを圧縮する仕組みの追加。
・プログラムが常駐する仕組みの追加。

【 用語 】
【 期限 】6月13日まで
【 Ver  】2.5.1
【 補足 】丸投げです。
始めたばかりでまったくわかりませんでした。
なにとぞよろしくお願い致します。

641 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 03:10:52 ]
同じく初級者が>>640を作ってみました。
へたれコードで申し訳ありません。
ご指摘、ご批判お願いします。
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6848.txt

642 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 04:10:15 ]
いただきました
ありがとうございます

643 名前:デフォルトの名無しさん [2008/06/12(木) 23:20:10 ]
作成日が4日前より古いファイルを
どうこうするプログラムを作りたいのですが
日付の比較がわかりません。
変数nowをシリアル値に変換しればできるのでしょうが
何か違う気がします。
シンプルに比較できないでしょうか?
ご教授下さいお願いします。

now=datetime.datetime.today()
prv=now-datetime.timedelta(days=-4)

t1=os.path.getctime("c:/hoge.txt")

if prv>t1:←ここ
print "ok"




644 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 23:29:08 ]
prv>datetime.datetime.fromtimestamp(t1)
あとnow-datetime.timedelta(days=-4)だと4日後になるよ(-はどっちか)

645 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 02:41:04 ]
find だろ


646 名前:デフォルトの名無しさん [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);
}
}

647 名前:デフォルトの名無しさん [2008/06/13(金) 03:51:43 ]
>>646
指定は何もないの?
なに使ってもいいの?



648 名前:デフォルトの名無しさん [2008/06/13(金) 03:56:57 ]
問題ないと思います。

一応、教えてもらった後自分で理解しようと思いますんで
わからない部分はまた質問させていただきます。

649 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 08:26:30 ]
学校の宿題提出日が来週の火曜までなので
それまでに回答をお願いします。

一応、よろしくお願いします。

650 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 09:20:31 ]
import Tkinter as Tk
root = Tk.Tk()
canvas = Tk.Canvas(root, width=250, height=250)
canvas.pack()
canvas.create_line(50, 50, 200, 200)
root.mainloop()

参考:effbot.org/tkinterbook/canvas.htm

651 名前:デフォルトの名無しさん [2008/06/13(金) 12:55:16 ]
ありがとうございます。

些細な質問なんですが
from Tkinter import *

import Tkinter as Tk
はどのように違うのでしょうか?
同じTkinterを使用していると思うのですが?

652 名前:デフォルトの名無しさん [2008/06/13(金) 12:56:44 ]
643です

644さんありがとうございます。
fromtimestampで出来ました。
ありがとうございました。

後4日前はdays=4ですね
ご指摘有り難うございます。


653 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 14:00:14 ]
>>651
名前の管理の仕方が違う。後者の書き方はインポートする側の名前空間を汚さない。

from Tkinter import *

の場合は Tkinter モジュールで定義された名前が全部インポートする側(の名前空間)に取り込まれる。
メリットは取り込んだ名前をそのまま使えること。
例えば c = Canvas(...) のように Canvas クラスを直接使用できる。
デメリットは、取り込んだ名前をインポートする側のプログラムで上書き(再定義)してしまったり、
そうならないように注意してプログラムを書かなければいけなくなること。
例えば import 後に class Canvas: ... のように同じ名前のクラスや変数を再定義してしまうと
Tkinter の Canvas は使えなくなる。それで構わないこともあるが、うっかりミスにつながりやすい。

import Tkinter as Tk 

の場合はインポートする側(の名前空間)に Tk という名前しか取り込まない。
メリットは Tkinter モジュールで定義されたクラスや変数を上書き定義してしまう心配がないこと、
デメリットは c = Tk.Canvas(...) のようにいちいちモジュール名を前置きしないといけないことだ。

俺は名前空間を汚さない後者の書き方を好んで使っている。

654 名前:デフォルトの名無しさん [2008/06/14(土) 21:07:29 ]
>>653
なるほど、一長一短で好みが分かれるところですね。
回答ありがとうございます。

655 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 09:28:54 ]
後者のメリットで充分
前者は百害あって一理なし
いまどきタイピング量なんてよほど長くなければ気にするな


656 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 14:30:55 ]
書き捨てスクリプトとかは前者使うな
後者はas以降の識別子が人によって異なることがあるのが嫌い
import fooだけで使いたいからモジュール名がPEP8で薦められているように短いと嬉しい

657 名前:デフォルトの名無しさん [2008/06/15(日) 20:24:59 ]
Jythonのアプレットでexecが使いたい件
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



658 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 20:28:37 ]
スレ違い

659 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 21:03:32 ]
>>658
うるせーなテメーがやってみろ屑

660 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 21:20:49 ]
>>659
>>1

661 名前:デフォルトの名無しさん [2008/06/18(水) 11:38:15 ]
【 課題 】 外枠フレームの大きさが”x軸はX以上かつy軸はY以上”・・・(1)になった時にフレーム内の色を別の色に変更し、(1)が満たされなくなった時色を元に戻すプログラムを作りましょう。

【 期限 】 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

662 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 15:48:08 ]
>>661
うるせーなテメーがやってみろ屑

663 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 16:51:06 ]
#!/usr/bin/python
import 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()

664 名前:デフォルトの名無しさん [2008/06/19(木) 19:42:23 ]
>>633
ありがとうございます。

665 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 23:44:43 ]
>>661
どこの大学の課題ですか?

666 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 06:16:49 ]
層化

667 名前:デフォルトの名無しさん mailto:sage [2008/06/23(月) 22:53:42 ]
>>666
?



668 名前:デフォルトの名無しさん [2008/07/13(日) 11:36:39 ]
プログラミングの導入教育かな?
大学でのプログラミングの導入教育に使えそうなテキストってあるの?


669 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 21:27:36 ]
>>668
ttp://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)

670 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 12:26:02 ]
課題が長いので2回に分けます。

【 課題 】以下のチャットプログラムを書き換えて、これらの問題点を解決したチャットを作成せよ。
      ・udpを用いているため,パケットが届かない場合の処理をしていない
      ・サーバがメッセージをクライアントに送っている間に新しいメッセージが届くと、捨てられる可能性がある。
      ・だれのメッセージかがわからない。
【 用語 】特にないと思います。
【 期限 】8月4日まで
【 Ver  】特に希望はないです。
【 補足 】丸投げですが、よろしくお願いします。
もしかしたら行頭のスペース数が間違っている部分があるかもしれません。

671 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 12:27:54 ]
>>670
書き込めないので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)

672 名前:デフォルトの名無しさん mailto:sage [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()

673 名前:デフォルトの名無しさん [2008/09/23(火) 20:31:51 ]
☆湯

674 名前:デフォルトの名無しさん [2008/10/13(月) 15:28:21 ]
age

675 名前:デフォルトの名無しさん [2008/10/24(金) 23:42:14 ]
Rectangleクラスを利用する以下の処理を行うプログラムUseRectangle.javaを作成する。
(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

暇なときお願いします




676 名前:デフォルトの名無しさん mailto:sage [2008/10/25(土) 00:22:14 ]
UseRectangle.java……だと……?

677 名前:デフォルトの名無しさん mailto:sage [2008/10/25(土) 00:42:45 ]
PythonのJavaバインディングかと?



678 名前:デフォルトの名無しさん mailto:sage [2008/10/25(土) 01:27:10 ]
Jythonでいいだろ

679 名前:デフォルトの名無しさん mailto:sage [2008/10/25(土) 05:14:29 ]
import Tkinter as Tk

class 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()

680 名前:679の続き mailto:sage [2008/10/25(土) 05:15:29 ]
    def move(self):
        self.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()

681 名前:デフォルトの名無しさん [2008/10/25(土) 15:09:25 ]
675です。ありがとうございました。


682 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 18:18:45 ]
pythonチュートリアルの進行に応じた簡単な問題集が欲しいです

683 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 19:15:17 ]
newbieよ、ここは願掛けの井戸ではない

684 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 19:39:32 ]
下さい!

685 名前:デフォルトの名無しさん mailto:sage [2008/10/29(水) 10:25:12 ]
英語なんですけどいいですか??
Write 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.
リストなどを使えばいいらしいのですが、よく分からないんです。
誰か教えてください。

686 名前:デフォルトの名無しさん mailto:sage [2008/10/29(水) 12:13:11 ]
Why did you think to solve this problem using a list?

687 名前:デフォルトの名無しさん mailto:sage [2008/10/29(水) 12:42:26 ]
相変わらずオマエの英語はヘンだなあ。



688 名前:685 mailto:sage [2008/10/29(水) 13:06:58 ]
>>686
今やってるチャプターの宿題なんですけど、
このチャプターがストリングやリストについてで、
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.
ってことなんでリストを使うのかと…。

689 名前:デフォルトの名無しさん mailto:sage [2008/10/29(水) 13:19:54 ]
def getMonthString(month):
return [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)

690 名前:685 mailto:sage [2008/10/29(水) 13:36:31 ]
>>689
ありがとうございます!
mapはまだ習っていないので使っていいのか分からないけど助かります!
Pythonの知識が少ないのですみません。。

691 名前:685 mailto:sage [2008/10/29(水) 13:44:58 ]
print "%s %d, %d" % (getMonthString(month), day, year)
ってことは最後 March 12, 2008って出ますよね??
出力されないのですが、689のコードだけじゃだめってことですか?

692 名前:デフォルトの名無しさん mailto:sage [2008/10/29(水) 17:18:25 ]
Why did you try to solve the question by using lists ?

693 名前:デフォルトの名無しさん mailto:sage [2008/10/29(水) 18:39:08 ]
相変わらずオマエの英語はヘンだなあ。

694 名前:デフォルトの名無しさん mailto:sage [2008/10/29(水) 18:51:33 ]
import time
print time.strftime('%B %d, %Y', time.strptime(raw_input("input date (mm/dd/yyyy) >") , '%m/%d/%Y'))


695 名前:デフォルトの名無しさん [2008/11/03(月) 18:00:34 ]
Rubyよりまし

696 名前:デフォルトの名無しさん [2008/11/04(火) 12:48:09 ]
【 課題 】タートルグラフィックスを用いて円を書いてそれを三分割(ちょ
うどベンツのスリーポインテッド・スターみたいな形で間の角度120度)に分割
する線を引けという宿題 《必須》
【 用語 】
【 期限 】明日の12時までお願いします。
【 Ver   ありません
【 補足 】初歩の初歩しかまだ習っていません。よろしくお願いします。

697 名前:デフォルトの名無しさん mailto:sage [2008/11/04(火) 12:53:47 ]

print "○\x08\x08Y"





698 名前:デフォルトの名無しさん [2008/11/04(火) 12:56:30 ]
>>696
奇点が4つあるからみり

699 名前:デフォルトの名無しさん mailto:sage [2008/11/04(火) 13:04:28 ]
Pythonにタートルグラフィックスライブラリってあったん?

700 名前:デフォルトの名無しさん [2008/11/04(火) 13:30:41 ]
ありますがなにか?

701 名前:デフォルトの名無しさん mailto:sage [2008/11/04(火) 13:31:31 ]
さっさと回答しろ能無しども

702 名前:デフォルトの名無しさん mailto:sage [2008/11/04(火) 15:03:19 ]
>>696
from 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)

703 名前:696 [2008/11/04(火) 19:49:02 ]
702さんありがとうございます。まさしくその形でした。
僕もあなたみたいな立場になれるよう頑張りたいと思います。ありがとうございました。

704 名前:デフォルトの名無しさん [2008/12/02(火) 19:56:18 ]
過疎だな

705 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 20:51:52 ]
過疎ですね
ところで海の向こうではこんな本が出るですよ

Practical Programming: An Introduction to Computer Science Using Python
ttp://pragprog.com/titles/gwpy/practical-programming

日本でもCSの取っ掛かりにPythonとか定着すればいいのに

706 名前:デフォルトの名無しさん [2008/12/04(木) 16:26:40 ]
>>705
買うなら円の高い今のうちだな。

707 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 22:05:25 ]
 
【サンタクロース、トナカイの酒気帯び運用。有罪判決に、マジ逆切れ&大暴れw(動画有り)】(ZDNet)
builder.japan.zdnet.com/story_media/20384793/081204_sun-james-gosling_03_400x300.jpg
builder.japan.zdnet.com/story_media/20384793/081204_sun-james-gosling_01_400x300.jpg
builder.japan.zdnet.com/story_media/20384793/081204_sun-james-gosling_02_400x300.jpg




708 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 17:25:34 ]
どう見てもjavaの中の人だろ

709 名前:デフォルトの名無しさん mailto:sage [2008/12/08(月) 19:49:49 ]
過疎ですね

710 名前:デフォルトの名無しさん [2008/12/09(火) 05:22:15 ]
>>707
米サン・マイクロシステムズ バイスプレジデント兼フェローのジェームス・ゴスリング(James Gosling)氏
www.atmarkit.co.jp/news/200812/08/sun.html

711 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 07:34:22 ]
perlのオッサンカトオモタ






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<195KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef