[表示 : 全て 最新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


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






[ 続きを読む ] / [ 携帯版 ]

前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