トップページtech
1002コメント300KB

Pythonのお勉強 Part50

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2014/10/17(金) 00:41:32.40ID:Db3yDsQb
Pythonオフィシャルサイト
http://www.python.org/
日本Pythonユーザ会 (※英語わかる人は上記のオフィシャルの方を見ることをお薦めします)
http://www.python.jp/
まとめWiki
http://python.rdy.jp/
関連スレ
http://find.2ch.net/?BBS=ALL&;TYPE=TITLE&STR=python
Pythonのお勉強 Part49
http://peace.2ch.net/test/read.cgi/tech/1387528488/

日本語の扱いで戸惑ったらこちらをどうぞ(バッドノウハウ集で笑える)
ttp://speirs.blog17.fc2.com/blog-entry-4.html
ttp://atomic.jpn.ph/prog/etc/encode.html
ttp://d.hatena.ne.jp/kakurasan/20100330/p1

ttp://pc11.2ch.net/test/read.cgi/tech/1217836194/339
339 :デフォルトの名無しさん:2008/08/23(土) 08:36:00
PythonのUnicodeEncodeErrorを知る
ttp://lab.hde.co.jp/2008/08/pythonunicodeencodeerror.html

よくまとまってた。あとで読む
01031012014/11/14(金) 15:14:53.92ID:Ft31Cy9l
>>102
ありがとうございます。
日本語パックを入れようとすると最後で止まってしまうので
インストールやめました。
0104デフォルトの名無しさん2014/11/14(金) 16:14:51.64ID:TuDYQczK
>>92
WindowsならActivePython
0105デフォルトの名無しさん2014/11/15(土) 07:59:30.67ID:oOqmQ36U
>>103
無責任で悪いけど英語のCmmu 2013入れたら一度リブート
WIN UPで更新ファル確認
関係する物が見つかるのでUPしてリブート
日本語パック入れる、最後にリブート
0106デフォルトの名無しさん2014/11/15(土) 10:18:38.75ID:YOiRMsLP
日本語化なしでおk
0107デフォルトの名無しさん2014/11/16(日) 11:54:29.39ID:R05ll4b0
Pythonやってるとそのうち英語漬けになるしね
早めに諦めるか身の振り方を変えた方がいいね
0108デフォルトの名無しさん2014/11/16(日) 12:33:05.34ID:xruxKRvz
いやマジで英語のわかるPythonユーザーは
ドキュメント和訳プロジェクトに参加して欲しいっす
あれは英語とPython両方の知識が必要っすが
今の翻訳はたぶんPythonの知識がない人が適当にやってるっす
0109デフォルトの名無しさん2014/11/16(日) 12:50:30.30ID:f+9LyVMI
だなぁ。日本語メチャクチャで理解に苦しむ箇所が多すぎるし。
コレでJavaに逃げたわ。

あと、〜することができます。 とかのですます体がウザ過ぎる。図書とかもそうなんだが。
〜可 これでいいし、こうすべきだろ。
0110デフォルトの名無しさん2014/11/16(日) 13:05:42.65ID:R05ll4b0
>>108
参加するメリットねーだろ
せいぜい売名か?
0111デフォルトの名無しさん2014/11/16(日) 13:06:19.75ID:01IXT5Y2
ツッコミどころ多過ぎてもはやネタなのかと
0112デフォルトの名無しさん2014/11/16(日) 13:16:48.92ID:/9JnOtYK
自分は参加してたけど、いつだったかメンバー承認制になったのが気に入らなくて辞めた。
いいじゃん。せいぜい内輪でお飯事してろよ。
0113デフォルトの名無しさん2014/11/16(日) 13:55:38.81ID:IsvJepgn
>>109
日本語ヨクワカラナイカラ Java シカデキナカタヨ


まで、読んだ
0114デフォルトの名無しさん2014/11/16(日) 13:58:52.50ID:f+9LyVMI
>>113
残念だけど、戻ってあげないよ ばーか
0115デフォルトの名無しさん2014/11/16(日) 14:05:27.36ID:zDSUi8Bd
たしかに python.jp のコミュニティはキモすぎる
0116デフォルトの名無しさん2014/11/16(日) 14:13:45.65ID:J83tdTef
文句だけ言ってるのが一番楽だよな。
0117デフォルトの名無しさん2014/11/16(日) 14:16:24.09ID:IsvJepgn
戻る気もない言語のスレに粘着とかキモ過ぎ w
0118デフォルトの名無しさん2014/11/16(日) 14:22:03.75ID:aPjF8Str
くやしいのぅω
0119デフォルトの名無しさん2014/11/16(日) 16:07:40.60ID:vMtJLncu
日本語圏の連中と馴れ合ってても時間の無駄だし
いつまで経っても使ってみた以上の記事書かない奴らと何をしろというのか
0120デフォルトの名無しさん2014/11/16(日) 16:32:58.52ID:ZGnt+rs2
書く側は書く側でいろいろ苦悩があるんだよ
0121デフォルトの名無しさん2014/11/16(日) 17:00:36.36ID:baimN4EK
だから言ってるだろう
英語できないならPython以外の言語やった方がいいって

たとえ英語出来ても翻訳となるとまた一段高い理解と語学レベルが必要になるし時間もかかる
そこまで時間と労力をかけて人のために翻訳している人たちはマジ神だと思うよ

俺はそんな面倒なものには絶対参加しない
0122デフォルトの名無しさん2014/11/16(日) 17:53:20.77ID:l0EvlzVA
サイトにアクセスしてスクレイピングして、何かいろいろ自動化したろうと企んだ時に、
perlでもいいけど、なんかpythonの方がもっと楽なパッケージがありそうな気がして
とにかく楽がしたい
0123デフォルトの名無しさん2014/11/16(日) 18:22:45.87ID:R05ll4b0
javascript動かそうとしなければどれもどんぐりの背比べですよ
javascript動かすならSelenium使うのが楽な言語
これ
0124デフォルトの名無しさん2014/11/16(日) 18:28:05.05ID:R05ll4b0
英語触るのがいやならとっととRubyあたりに鞍替えしてください
時間の無駄だから
0125デフォルトの名無しさん2014/11/16(日) 21:16:27.79ID:CldYWVpl
でもやりたいRailsは英語だしな…
0126デフォルトの名無しさん2014/11/16(日) 22:19:46.62ID:l0EvlzVA
説明なんか読まなくてもサンプルコードで判るだろ
0127デフォルトの名無しさん2014/11/17(月) 02:23:04.88ID:voT4yCE4
ドキュメントの翻訳は悩ましい問題だな。

そもそも、翻訳作業ができる人は、翻訳されたドキュメントを必要としない。
ここがコードそのものの開発と根本的に違う。

翻訳が欲しい人が寄付を集めて、翻訳ができる人を集めて温泉にでも無料で
行かせて缶詰で翻訳ハッカソンとか?そんなことが実現するとは思えないが。

あとは、どっかの企業がPRのために持ち出しで貢献するかだな。
日本で、Pythonサポートで食ってて、それなりに余裕ある企業ってあるかな?
0128デフォルトの名無しさん2014/11/17(月) 02:47:05.47ID:zZSkpM/5
ドキュメント原文も執筆者によっては結構駄文で中途半端な英語力の俺には(多分そんな俺でなくても)
わかりにくいのがあったりするからなあ。
ドキュメントにあるコードの例で、コードだけ書いてその出力を書かないのはマジやめて欲しいんだけど、
Pythonドキュメント(原文)の執筆ガイドラインてあるのかね?さがしてもよくわからん。
こういうメタっぽいのIssueとしてあげてもそういうガイドラインがないと浸透しにくいし、そういうのないとして、
そこまで踏み込んでやってってお願いするほどの英語力もないし。
0129デフォルトの名無しさん2014/11/17(月) 03:02:43.18ID:re+o/iO9
そんな提案に英語力なんて必要ないぞ
0130デフォルトの名無しさん2014/11/17(月) 03:16:58.42ID:zZSkpM/5
>>129
めっちゃ要るわw
英語そのものの知識だけじゃなく、それをベースとした英語でのコミュニケーション力な。
それを「英語力なんて必要ない」とさらっと言えるあなたこそPythonドキュメントの
翻訳に貢献してくださいおながいします。
0131デフォルトの名無しさん2014/11/17(月) 09:07:37.13ID:Bie68Q2E
>>127
翻訳出来るひと(もちろんpythonの知識も含めて)は
たとえ金払っても翻訳の仕事をさせるのはもったいないだろ
プログラム書かせた方が良い仕事してくれる
0132デフォルトの名無しさん2014/11/17(月) 10:35:04.06ID:FowapGmI
生産性がイマイチな人間を活用するためにはその逆だ
目先の小銭を追ってはならない
0133デフォルトの名無しさん2014/11/17(月) 10:59:44.21ID:zVrhBdcJ
python.jpの翻訳担当は生産性が低いから翻訳担当なのか
0134デフォルトの名無しさん2014/11/17(月) 11:39:23.58ID:HQeW7j2d
そりゃあ他にやることがある奴はやらねえよ
0135デフォルトの名無しさん2014/11/17(月) 12:37:47.34ID:C7tq3SGo
>>131
長期的に見れば、日本語圏でpythonが盛り上がる方がいい
0136デフォルトの名無しさん2014/11/17(月) 14:10:06.39ID:8zZNMcL6
現実逃避で翻訳してるなら
翻訳作業にも一定の需要がある訳だ
0137デフォルトの名無しさん2014/11/17(月) 22:23:52.56ID:2JrgHRvL
翻訳が終わったころには仕様が変わってるしな…
0138デフォルトの名無しさん2014/11/19(水) 00:27:02.33ID:+JOILsc/
医療プログラマーが超高難易度の免許制に / フリーソフトやオープンソースの無作為配布も全面禁止
http://fox.2ch.net/test/read.cgi/poverty/1416286592/
0139デフォルトの名無しさん2014/11/19(水) 01:14:11.05ID:/0kmKDiG
【読書】海外文学の翻訳者、印税なしで働かされていた。お前ら非英語圏の海外文学も読めよ。 [転載禁止](c)2ch.net [469534301]
ttp://fox.2ch.net/test/read.cgi/poverty/1416311016/
> 怖ろしい話を聞いた…。海外文学の翻訳は、初版1500部とか、初版印税ナシが普通になってきているという。
> 増刷はなかなかされないだろうから、初版印税ナシだと、実質、無報酬に。
> 初版1500部でも、生活はとてもできない。これでは翻訳をする人はいなくなってしまう。したくても生活できない。

> 海外文学を読む人が減ってきてしまったせいなのでしょうが、あまりにも悲しいことです。鎖国状態になってしまいます。

> 安直な入門書とか(私の本もそうですが)、昔は軽蔑していましたが、今はその重要性をとても感じています。きっかけはくだらなくてかまわないのですから。
0140デフォルトの名無しさん2014/11/19(水) 17:55:58.79ID:JZ2oYyd9
http://melpon.org/wandbox
0141デフォルトの名無しさん2014/11/20(木) 15:39:13.27ID:/BOXk5ak
cz_freezeでビルドで教えてください。

windows8の64bitでビルドしているのですが
AとBというプログラムがあってビルドすると
それぞれa.exeとb.exeができるのですが

python34.dll
_bz2.pyd
unicodedata.pyd

は同じなのですが

library.zip

はAとBで違うためどちらかのをコピーするとエラーになります。
できればそれぞれexeファイル1つだけにすることはできないのでしょうか?
0142デフォルトの名無しさん2014/11/20(木) 15:57:06.35ID:E/VQy6fP
一回のsetupで両方ビルドしたらいい
create_shared_zip = Trueなら共通のlibrary.zipができる
01431412014/11/20(木) 16:06:21.55ID:/BOXk5ak
両方のビルドがわからなかったのでlibrary.zipを埋め込めれるようだったので以下のように変更しました。

import sys
from cx_Freeze import setup, Executable

build_exe_options = {"packages": ["os"], "excludes": ["tkinter"], "create_shared_zip": False, "append_script_to_exe": True }

base = None

if sys.platform == "win32":
base = "Win32GUI"

setup( name = "xxxxx",
version = "0.1",
description = "xxxxx",
options = {"build_exe": build_exe_options},
executables = [Executable("xxxxx.py", base=base)])
0144デフォルトの名無しさん2014/11/20(木) 17:15:20.12ID:E/VQy6fP
executablesのリストに2つ入れるだけだよ
01451412014/11/20(木) 17:33:11.78ID:/BOXk5ak
>>144
ありがとうございます。
出来ました。
0146デフォルトの名無しさん2014/11/22(土) 09:48:59.44ID:Q3C7JEHj
最近のバージョンだと標準のインタラクティブモードでもtabで補完してくれるのね
0147デフォルトの名無しさん2014/11/30(日) 00:01:30.79ID:U56t6wGe
list = ['00','01','02']

python2.7 で、上記のような0 を埋め込んだ リストを作りたいのですが、
要素が多くなった場合(例えば要素数10万個とか)、
どのようにするのが良いでしょうか?

次のものよりコンパクトに書きたいのです。

list = []
for num in range(0, 11):
list.append(str(num).zfill(2))
# list.append(str(num).rjust(2,"0"))
# list.append("{0:0>2}".format(num))


perl では、次のように書いていました。
@list = ("00" .. "10");

宜しくお願い致します。(スレ違いでしたらごめんなさい。)
0148デフォルトの名無しさん2014/11/30(日) 00:08:51.81ID:awyRf5UB
リスト内で0が付いたデータである必要があるの?
処理速度で問題が起きないなら取り出す時に加工したら?
0149デフォルトの名無しさん2014/11/30(日) 00:17:45.83ID:HYaMRw5x
list = [str(item).zfill(3) for item in range(1, 100)]
0150デフォルトの名無しさん2014/11/30(日) 00:36:12.42ID:U56t6wGe
お返事をありがとうございます。

>>148
一昨日から python を使い始めたばかりで、
まだどうやって使うか決まっていないので、そういう解もありかも知れません。

>>149
うまくいくことが確認できました。こういう書き方もできるのですね。
0151デフォルトの名無しさん2014/11/30(日) 01:54:06.42ID:U56t6wGe
000000 から 999999 までの要素をもつリストを作成するのみのコードで、
実行時間を比較をしました。(tcsh に builtin の time にて)
(それぞれを10回ぐらい繰り返しての典型値です。)←テキトーですみません。

>>147 の3つのコードのバリエーション(cord 1,2,3 とする)と、
>>149 のコード(cord 4とする)と >>147 の perl のコード(cord 5とする)について。

code 1:
1.139u 0.054s 0:01.19 99.1% 5+170k 0+0io 0pf+0w

code 2:
1.305u 0.055s 0:01.36 99.2% 5+168k 0+0io 0pf+0w

code 3:
1.120u 0.039s 0:01.16 99.1% 5+169k 0+0io 0pf+0w

code 4:
0.995u 0.062s 0:01.05 100.0% 5+168k 0+0io 0pf+0w

code 5:
0.886u 0.110s 0:00.99 100.0% 5+165k 0+0io 0pf+0w

code 1,2,3 は大して変わりませんが、ほんのわずかに
cord 2 が遅く感じられました。

cord4, 5 の間にはほとんど差はないですが、cord 1,2,3 より
ほんのわずかに速いようです。


CPU: Intel(R) Core(TM)2 Duo CPU E7400 @ 2.80GHz
RAM: 2048 MB
OS: FreeBSD 10.1-RELEASE
0152デフォルトの名無しさん2014/11/30(日) 02:14:37.61ID:U56t6wGe
>>151
すみません。typo があったので訂正します。

s/cord/code/;
↑ perl ですみません。

re.sub('cord','code', item)
↑ python だとこんな感じでしょうか?

Python チュートリアル と Perl 言語リファレンスの目次に「正規表現」の記載がなくて、
挫折しそうになりました。 Python 標準ライブラリの目次に正規表現 をみつけて一安心。
うーむ、ライブラリなのですね。。。

おやすみなさい。
0153デフォルトの名無しさん2014/11/30(日) 05:17:22.58ID:b4nmdqGs
馬鹿には無理
0154デフォルトの名無しさん2014/11/30(日) 05:30:46.36ID:c9Q+Jt/4
>>151
pythonにはtimeitという計測ツールもある。
ipythonなら%timeit
0155デフォルトの名無しさん2014/12/02(火) 23:50:02.60ID:mXPAePsx
perlで、処理したものはハッシュに登録して、2回目からはやらない、
みたいなことをよくやるんだけど
if (!$done{$item}) {

同じことをpythonでやろうとすると、どうしてもtryしないといけなくなる
try:
 if(done[item]):
  pass
except KeyError:

そういうもの?
0156デフォルトの名無しさん2014/12/02(火) 23:54:44.97ID:1eIJ1xCz
if item not in done: do_something(item)
0157デフォルトの名無しさん2014/12/03(水) 00:20:47.52ID:klto8A+O
has_key が覚えられない
そもそも、EAFPでないし
0158デフォルトの名無しさん2014/12/03(水) 03:34:45.76ID:fPpGIPtv
if item in done: pass
0159デフォルトの名無しさん2014/12/03(水) 03:35:36.42ID:fPpGIPtv
has_key は deprecated
0160デフォルトの名無しさん2014/12/06(土) 09:06:25.05ID:oKYXPopG
>>155
>perlで、処理したものは
perl歴10年以上で、2年前にpythonに移行
しました。このような質問とその回答は、
とても参考になります。感謝、感謝!
0161デフォルトの名無しさん2014/12/06(土) 09:25:07.43ID:e/+1yPS4
>>155
item.getも、なければデフォルト返す。けっこう人のコードでも見かける。perlの例はこっちに近い気がする。
0162デフォルトの名無しさん2014/12/06(土) 10:06:25.40ID:BVXRqyRl
except側にメインの処理が来るのが嫌なんだよな
0163デフォルトの名無しさん2014/12/06(土) 10:17:49.65ID:e/+1yPS4
初回という例外であれば、exceptも有りとしている。
ただjavaとか例外処理のコストが気になる言語の場合はやらないな。pythonはサンプルコードでよく見かけるから使ってるけど、コストはどうなんだろうか。
0164デフォルトの名無しさん2014/12/06(土) 12:05:45.84ID:3xNo8KzC
pythonも馬鹿に出来ないと思うよ。調べてないけど
ただ内部的にexceptとかfinally,with使うのは当たり前だから気にしても仕方ない
0165デフォルトの名無しさん2014/12/06(土) 12:22:20.08ID:1MG24EwX
イテレータ1回舐めるごとにかならずStopIteration投げてるし

dict.set_defaultがvalueしか取らないのが俺は気になる
funcも取って欲しい
0166デフォルトの名無しさん2014/12/06(土) 15:37:39.38ID:bwgl3tYQ
例外処理ってどの言語でもコストが高いと予想
全ての文にif付けながら実行してるようなもんでしょあれ
0167デフォルトの名無しさん2014/12/06(土) 15:42:45.20ID:7IWME+c9
えっ
0168デフォルトの名無しさん2014/12/06(土) 15:52:30.13ID:BM1MQEaE
>>166
んなわけない

あんたが言ってるのは途中でreturnするかもしれない関数で全ての文にif付けて実行してるようなもんでしょって言ってるのと同じだよ。
0169デフォルトの名無しさん2014/12/06(土) 16:18:14.87ID:LlEDCa5Q
s = 0
for x in (1, 2, 3, "hoge"):
 s += x
return s

例えばこのfor文の中の s += x で、例外を補足するには毎回xが加算できるかをチェックする必要がある
ということを言いたいのではなかろうかと。
0170デフォルトの名無しさん2014/12/06(土) 16:18:22.30ID:BVXRqyRl
どんな言語でもエラーの判定はしながら実行してる
それで止まってしまうか例外として救えるかが違うだけで

どんな言語でもってことはないか
何も考えずにリソース破壊して終わりな言語はそれまでだけど、
それを軽くていいとは思えない
0171デフォルトの名無しさん2014/12/06(土) 16:20:34.40ID:1MG24EwX
例外処理という単語が指す対象による

例外ブロックを作ったことによる効率低下は大したことない
一部の最適化ができなくなるくらいだから

一方、実際に例外を投げたなら、どの言語でもそれなりのコストを生じる
0172デフォルトの名無しさん2014/12/06(土) 16:29:48.62ID:7IWME+c9
0除算は例外出るので有名だけど
いちいちif文なんか実行してないから
0173デフォルトの名無しさん2014/12/07(日) 02:49:25.06ID:QqVGX2+B
話の流れがわかってない子がいるみたいだね
0174デフォルトの名無しさん2014/12/07(日) 05:08:55.57ID:8OMeK6oQ
ifより例外のほうが重いイメージ
0175デフォルトの名無しさん2014/12/07(日) 10:45:35.98ID:5CT1OZvc
お前はたぶん馬鹿だから無理だろうなというイメージ
0176デフォルトの名無しさん2014/12/07(日) 10:49:56.50ID:s/qw7ugR
ぶっちゃけPythonで例外のコスト気にするようなプログラム書いたことねえよという事実
0177デフォルトの名無しさん2014/12/07(日) 12:51:19.52ID:8OMeK6oQ
まあループ最適化の脱出条件に例外使えば
最適化できるという誤解は誰もが通る道だわな
0178デフォルトの名無しさん2014/12/07(日) 12:54:25.49ID:GOj11zUj
PythonにもEffectiveJava的な本があるといいね
0179デフォルトの名無しさん2014/12/07(日) 13:12:03.36ID:8OMeK6oQ
そういった例外の使い方は例えばjvmでやると標準イデオムと比べて70倍程度は遅くなる
可読性もデバックのやりやすさも捨ててやることじゃない
10年以上前には話題に登ってて覚えてたんだが
pythonのvmは2001年時点のjvmより
おバカなのか?
0180デフォルトの名無しさん2014/12/07(日) 13:15:52.02ID:GOj11zUj
VMってかCPythonのインタプリタの実装は
かなり馬鹿正直、というか原始的なものだよ
0181デフォルトの名無しさん2014/12/07(日) 13:17:41.90ID:8OMeK6oQ
でもおじさんも計測してないや
pythonだとひょっとすると例外の方がはやいかもね
0182デフォルトの名無しさん2014/12/07(日) 13:30:04.59ID:om9D8KOg
多重ループ抜けるのにおもむろにオレオレエラー投げることはある
0183デフォルトの名無しさん2014/12/07(日) 13:32:59.51ID:GOj11zUj
PEP234でイテレータの終了判定にStopIterationを採用したことについて

> It has been questioned whether an exception to signal
> the end of the iteration isn't too expensive.

と述べられてる。
あまりコストが高くはなかったとはいえ、低いわけではない。
しかし続きを読むと分かるように、実装をシンプルに行えるメリットを彼らは選んだ。
0184デフォルトの名無しさん2014/12/07(日) 13:53:30.07ID:Mj+nApTs
コストなんざプロセッサが速くなれば屁でもなくなる
でも、コストを重視した設計やコードのツケはずっと残る
0185デフォルトの名無しさん2014/12/07(日) 14:11:22.03ID:GOj11zUj
どうかなー2倍速かったらクラスタのインスタンス数2分の1にできますよ
一概に容認されうるものじゃないと思うね
0186デフォルトの名無しさん2014/12/07(日) 14:15:51.13ID:8OMeK6oQ
http://ideone.com/MfOOfM
数値配列末尾に文字列入れて
意図的に例外で落とすようにしたらふつうのループの2倍程度遅い
でもif+型チェックよりは例外のほうが早かった

なんとも微妙な・・・
0187デフォルトの名無しさん2014/12/07(日) 17:17:03.41ID:E9NmwB+a
8おめこ
0188デフォルトの名無しさん2014/12/07(日) 18:17:38.73ID:XqgZFImA
>>186
例外が発生しなければ try/except のコストは極めて低いので、めったに発生しない例外ならば
例外を扱ったほうが良いというのFAQのどっかにあったね。
0189デフォルトの名無しさん2014/12/07(日) 19:32:02.09ID:8OMeK6oQ
try/except事態は早くてスタックフレームの巻き戻しとか重い操作は raise の時にやるんだよね
0190デフォルトの名無しさん2014/12/07(日) 22:39:07.66ID:gI6V648O
scipyのcurve_fitで、収束が悪くてある計算時間を超えたらスキップさせて次に飛びたいんですけど、どうしたら良いでしょうか?
0191デフォルトの名無しさん2014/12/08(月) 07:36:33.23ID:fTOrgTla
>>182
C# だけど、まさにそのコード書いたばかりだ w
0192デフォルトの名無しさん2014/12/08(月) 09:59:10.61ID:eZuxZoZp
今までみたPythonの例外処理で一番面白かったのはこんなの
http://atomic.jpn.ph/prog/etc/encode.html
http://speirs.blog17.fc2.com/blog-entry-4.html
http://d.hatena.ne.jp/kakurasan/20100330/p1
0193デフォルトの名無しさん2014/12/08(月) 10:14:48.98ID:moCEkmgW
>>192
エンコードが不明な文字列を片っ端からデコード試して
上手くいった奴が正解なんだよな
モヤモヤするけどね
0194デフォルトの名無しさん2014/12/08(月) 10:57:48.21ID:NGUYkyOW
エンコードが成功とか失敗とかどうやって判断してるか不思議なんだけど
人間だったら文字化けしてるの見て違うって判断できるけど
0195デフォルトの名無しさん2014/12/08(月) 11:17:03.49ID:UW8Yzuuq
もちろん例外が出ない意地悪な文字列を送り込むことは可能
あと例外出させるのにも判定の順番が微妙に影響する
どのコードで先にエンコードしてみるかっていうのが結構重要
0196デフォルトの名無しさん2014/12/08(月) 11:20:00.98ID:UW8Yzuuq
あと例えば送られてきたメールに
「ーソЫ\噂浬欺圭構蚕十申曾箪貼能表暴予・・・」
っていう文字列を発見して

「文字化けしてるっ!」て騒ぐひともいるし
「ああテストしてんだな」って暗黙の了解するひともいる
0197デフォルトの名無しさん2014/12/08(月) 11:21:52.23ID:UW8Yzuuq
>>195 の訂正
エンコードじゃなくてデコードと言うべきか
0198デフォルトの名無しさん2014/12/08(月) 12:22:31.05ID:B5d35WIQ
>>194
対応するコードがエンコード先の領域外、未定義だったら失敗でいいんじゃないか。
nkfみたいにマッピングしてるとこもあるかもだけど。
0199デフォルトの名無しさん2014/12/08(月) 21:25:30.06ID:NGUYkyOW
どうもありがとう
> 対応するコードがエンコード先の領域外、未定義だったら失敗
これだったらたしかに失敗ははっきりするね
それにあてはまらない場合もあってそのときは
けっこう微妙な判定をしてるってことかな
0200デフォルトの名無しさん2014/12/09(火) 08:02:03.59ID:8lyIelV0
ファイルを読み込む時には、バカの一つ覚えのように
decode('utf8')を行ってきましたが、正規表現の処理
をしない場合には必要ありませんよね?
0201デフォルトの名無しさん2014/12/09(火) 08:05:14.29ID:Uc1Az9NL
ああー馬鹿の一つ覚えですねそれ
0202デフォルトの名無しさん2014/12/09(火) 08:22:35.48ID:Uc1Az9NL
古来ダメ文字問題とか起こしてたのはこいつらです
■ このスレッドは過去ログ倉庫に格納されています