Python の宿題ここで ..
[2ch|▼Menu]
331:デフォルトの名無しさん
07/06/22 21:46:04
import time

def hoge():
 print 'hoge'

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

332:デフォルトの名無しさん
07/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)

URLリンク(www.python.jp)
URLリンク(www.python.jp)

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

334:timer
07/06/25 01:38:28
>>331>>332
ありがとうございました!無事解決しました!!


335:デフォルトの名無しさん
07/06/26 02:06:18
age

336:デフォルトの名無しさん
07/07/13 18:44:07
保守あげ

337:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/07/23 20:46:10
最小値より大きいものを1つのリストにまとめたリストを返す関数を作って再帰
ただサイズが大きいと計算時間が厳しいと思う

339:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/08/02 18:07:35
oxtu.py

345:デフォルトの名無しさん
07/08/02 19:06:37
oxtu.py age

346:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/08/12 18:17:13
list(set(lst + newlst))

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

349:デフォルトの名無しさん
07/08/12 22:24:18
> data同士の順序比較は出来ない
> 実際には通し番号などは無い

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

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


351:デフォルトの名無しさん
07/08/12 22:28:39
あれ、>>346見たら
> インデックスに飛びは無く

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

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

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

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

354:デフォルトの名無しさん
07/08/13 08:34:13
>>353
エントリ型って何?

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

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

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

357:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/08/16 12:12:37
>>358
zipでこんな簡単にできると思いませんでした。
ありがとうございました。

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

361:デフォルトの名無しさん
07/08/25 03:40:39
自分でJavaとJythonインスコすればおk。

362:デフォルトの名無しさん
07/08/25 14:19:06
telnet、ssh禁止とかだったらたぶん無理

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

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

365:デフォルトの名無しさん
07/08/25 23:51:18
無けりゃ入れるだけよ

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

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

367:デフォルトの名無しさん
07/08/28 00:26:15
いまどきCGIである時点であまりかっこいいとは言えない

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

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

369:デフォルトの名無しさん
07/08/28 10:42:50
wxPython

370:368
07/08/28 10:48:29
ラジャ。

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

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

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


372:368
07/08/28 11:04:25
ではショボイTkinterはやめておきます。

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

373:デフォルトの名無しさん
07/08/28 11:50:00
>>372
IDLE

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

375:368
07/08/28 12:36:35
>>374
wxPythonにケテーイはしましたが、マカーとはマカー文脈で会話するので...

376:デフォルトの名無しさん
07/08/28 13:50:51
wxgladeがいいんじゃね?

377:368
07/08/28 13:57:18
そうなの?...

378:368
07/08/28 14:03:09
あ、wxGladeってのはwxPythonのIDEみたいなものですね。

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

379:デフォルトの名無しさん
07/08/28 14:11:43
スレリンク(appli板:79番)

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

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

381:デフォルトの名無しさん
07/11/12 10:15:16
URLリンク(wiki.python.org)


382:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/12/03 01:45:37
やさしいなぁ。。

385:デフォルトの名無しさん
07/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
07/12/03 05:00:17
即レスありがとうございました。
本当に感謝してます。

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

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

387:デフォルトの名無しさん
07/12/03 20:47:50
nanoblog

388:デフォルトの名無しさん
08/02/03 19:52:36
URLリンク(polog.org)

(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:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/02/04 01:25:55
>>388
それRuby?
ださすぎw

392:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/02/07 16:51:26
URLリンク(www.uploda.org)

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


394:デフォルトの名無しさん
08/02/07 16:55:52
いやなスクリプトだなw

395:デフォルトの名無しさん
08/02/07 17:40:27
どういう宿題だよ

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

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

398:デフォルトの名無しさん
08/02/07 17:50:41
>>393
strに代入すんなよ

399:393
08/02/07 17:56:13
いや、とっくに規制食らって投稿できないからいらぬ心配ですよ。

★080204 ニュース速報+「糞スレは立てない約束」AA2get荒らし報告
スレリンク(sec2chd板)

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

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


400:デフォルトの名無しさん
08/02/07 18:13:43
URLリンク(scripts.web.fc2.com)

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

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


401:デフォルトの名無しさん
08/02/07 18:53:06
>>399
だれもそんな心配してないよwww

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

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

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


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

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


405:デフォルトの名無しさん
08/02/08 01:03:02
COMなんて使うからだ

406:デフォルトの名無しさん
08/02/08 01:26:55
だからどこの小学校の宿題なのか書けよ

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

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


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

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


409:デフォルトの名無しさん
08/02/09 00:29:27
文字コードとフォントがごっちゃになってないか?

410:デフォルトの名無しさん
08/02/09 00:55:22
>>409
なってないよ。

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

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


411:デフォルトの名無しさん
08/02/09 01:55:36
なんか生半可な人が来ちゃったなあ

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

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

414:デフォルトの名無しさん
08/02/09 10:11:35
>>412
CP932は大げさでしょ。

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

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

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

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


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


416:デフォルトの名無しさん
08/02/09 10:24:23
16ビットユニコードって何?

417:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/02/09 11:45:33
半角記号って何?

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

420:デフォルトの名無しさん
08/02/09 12:38:14
ucs4最強

421:デフォルトの名無しさん
08/02/09 12:49:58
>>417
UTF-16は固定長じゃないwww

422:デフォルトの名無しさん
08/02/09 12:59:35
UCS-2とは違うのだよUCS-2とは

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

424:デフォルトの名無しさん
08/02/09 13:24:20
成績表のファイルとやらの書式を言ってくれんとなんとも

425:デフォルトの名無しさん
08/02/09 13:24:55
プラットフォームは

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

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

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

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

428:423
08/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

説明がわかりにくかったらいけないのであげときました
URLリンク(sakuratan.ddo.jp)

429:デフォルトの名無しさん
08/02/09 13:55:46
>>417
君がわかってない人である事は通じた


430:デフォルトの名無しさん
08/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
08/02/09 14:36:49
>>430
正常に動作しました。本当にありがとうございますm(_ _)m
これからこのプログラムを理解したいと思います。

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

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

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

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


434:デフォルトの名無しさん
08/02/09 15:23:59
わたしのために喧嘩しないで

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

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

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

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

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


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



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

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

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


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

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

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


441:デフォルトの名無しさん
08/02/09 19:10:01
正確にはU"TF"じゃないけどな

442:デフォルトの名無しさん
08/02/09 19:10:50
サロゲートペア?

443:デフォルトの名無しさん
08/02/09 19:15:04
恥の上塗りってやつを久しぶりに見た。

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

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

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

447:デフォルトの名無しさん
08/02/09 19:31:05
「半角」は、無いよな、いくらなんでもな・・・

448:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/02/09 19:49:59
サロゲートペアもExtension Bも知らないでここまで大口叩く奴は初めて見た。

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


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

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


452:デフォルトの名無しさん
08/02/09 19:58:00
>>448には>>446の意味は一生理解できまい。

453:デフォルトの名無しさん
08/02/09 20:02:23
>>446
はいはいそうだね。

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


454:デフォルトの名無しさん
08/02/09 20:03:57
超大物釣り師が出現したのは、このスレですか?

455:デフォルトの名無しさん
08/02/09 20:06:29
>>448
デタラメを大雑把と主張する幸せ脳。wwww

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

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

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

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

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


457:デフォルトの名無しさん
08/02/09 20:09:29
いかん。上げてたせいで変なのが寄ってきた。


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

459:デフォルトの名無しさん
08/02/09 21:26:07
別の人じゃありません。全部同じ人ですよ。

460:458
08/02/09 22:37:15
ありがとうございます。
最初の人は恥ずかしくてもう出てこれないな、と思ってたので…

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

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


462:デフォルトの名無しさん
08/02/09 23:13:16
殺してしまうわけじゃないから良いスレですよ

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


464:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/02/09 23:59:59
まあ上げてる人を相手にしちゃいけないってことですよ

466:デフォルトの名無しさん
08/02/10 00:04:26
もう飽きた図ら


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

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

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

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

471:デフォルトの名無しさん
08/02/10 00:32:55
> 自分なりの結論
> 自分なりの結論
> 自分なりの結論
> 自分なりの結論
> 自分なりの結論
弱気になってきたな。wwww

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

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

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


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


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

477:デフォルトの名無しさん
08/02/10 00:38:17
↓そこでPythonがクソだからいけないんだ〜のやるおAA

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

479:デフォルトの名無しさん
08/02/10 00:42:25
>>478
内部なんか知るかよ。

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


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

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


482:デフォルトの名無しさん
08/02/10 00:52:49
つ"VB"

483:デフォルトの名無しさん
08/02/10 01:00:17
>>479
ヒント:オープンソース

484:デフォルトの名無しさん
08/02/10 07:51:37
俺のところには来るなw

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


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


487:デフォルトの名無しさん
08/02/10 15:46:37
python3.0っていつ出んの?

488:デフォルトの名無しさん
08/02/10 16:10:05
>>487
URLリンク(www.python.org)

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

>>482
いらね

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

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


490:デフォルトの名無しさん
08/02/10 16:55:50
わざわざageなくてもいいですよ

491:デフォルトの名無しさん
08/02/10 17:03:21
>>489
すげー被害妄想だな


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

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

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

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

496:デフォルトの名無しさん
08/02/10 22:29:34
>>489
お客さん、教習料が未納ですよ

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

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


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

499:デフォルトの名無しさん
08/02/10 23:35:24
放置しとけば自滅する。

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


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

502:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/02/10 23:54:15
ミス

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


505:デフォルトの名無しさん
08/02/10 23:57:12
これだけ耳の無い人も珍しいな

506:デフォルトの名無しさん
08/02/10 23:59:39
まだいたのか・・・

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

508:デフォルトの名無しさん
08/02/11 00:13:41

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



509:デフォルトの名無しさん
08/02/11 00:19:27
PhthonWinの場合の追加

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


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

511:デフォルトの名無しさん
08/02/11 01:05:01
みんな親切だな

512:デフォルトの名無しさん
08/02/11 01:45:59
おまえら日本語訳とか見てる?
ここ間違ってるんだが、何がどう間違ってるか分かる?
えらそうに説教たれてるんだから即答できるよな?
URLリンク(www.python.jp)


513:デフォルトの名無しさん
08/02/11 01:54:46
おまいは本当に論理的に物を考えられないんだな

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

Pythonドキュメント翻訳プロジェクト
URLリンク(www.python.jp)

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

516:デフォルトの名無しさん
08/02/11 02:18:45
その筋では有名なのか?
引き取ってくれよ。

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


518:デフォルトの名無しさん
08/02/11 02:35:57
IDLE 1.2.1 だと

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

ってなるよ

519:デフォルトの名無しさん
08/02/11 02:37:57
なるけど、間違ってるよな。

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


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


520:デフォルトの名無しさん
08/02/11 04:22:49
いや訳の間違い
URLリンク(docs.python.org)
元は 'äöü' だから気をきかせて 'あいう' に置き換えた
つもりで間違いを入れてしまったんだね

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

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

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



次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5376日前に更新/195 KB
担当:undef