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
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 これからこのプログラムを理解したいと思います。