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


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

くだすれPython(超初心者用) その32



1 名前:デフォルトの名無しさん mailto:sageteoff [2017/02/04(土) 11:01:07.30 ID:koQjiQcQ.net]
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。

エラーを解決したいときはエラー表示や環境(バージョン/IDE or command line)を略さずに書き込んで下さい。
騙りが頻発しています。質問する方は一時的なトリップをつけることを検討して下さい。
次スレは >>985 辺りで

前スレ
くだすれPython(超初心者用) その31
echo.2ch.net/test/read.cgi/tech/1476246889/
関連スレ
Pythonのお勉強 Part52
echo.2ch.net/test/read.cgi/tech/1483756857/
◆関連リンク Python の Home Page
ttp://www.python.org/
◆長いコードはこういうところにはってください
ttp://ideone.com/
ttp://codepad.org/
ttp://pastebin.com/
ttp://dpaste.com/
ttps://try.jupyter.org/
◆まとめwiki
ttp://python.rdy.jp/

ネットにはデマ情報がいっぱい残ってるので正しい情報をメモ
cmd で UTF-8 使える方法 (chcp 65001 について) ttp://nazochu.blogspot.jp/2011/08/blog-post_26.html
mintty ttp://dogmap.jp/2011/11/15/mintty/
mintty ttp://tanakh.jp/posts/2011-11-15-windows-terminal.html

色々紆余曲折あったけど Git インスコして GitBash 使うのが一番楽っぽい
https://git-for-windows.github.io/

266 名前:デフォルトの名無しさん mailto:sage [2017/02/21(火) 23:57:33.11 ID:aFqTV30T.net]
デバッガだけどIPythonのipdbってやつだと
from IPython.core.debugger import Tracer; debug_here = Tracer() と書いておいて
ブレイクポイントにしたいところにdebug_here()と書くといい

ただ今回の用途ならデバッガよりもエラー処理を学んでログ出力したほうが断然効率いいよ
apiの戻り値や加工処理結果を常にログ出力しておいてエラー発生時にもログ出力する

267 名前:デフォルトの名無しさん mailto:sage [2017/02/22(水) 00:20:15.62 ID:jpUU0ydx.net]
>>261
ええっ?!1ヶ月で1万円ですか?
格安過ぎて怖いのですが

>>262
やっぱり都度エラーログを出力するようなのが遠回りなようで正解なのですね
tracebackが発生した時はメールで送信とはしていたのですが、どこでエラーが発生しているか完全に突き止め切れずだったので。。。
ただ、どうしても一つずつの処理にエラーをキャッチする処理を書く以外に私には思いつかないです
数百行に数百回書くしか。。。
そういうものだと言われればそうなのですかとしか言いようがないのですが、私にはあまりに経験値がなさすぎて、経験者の方が取り敢えずこうしておくというノウハウがないので総当たり過ぎてちょっと辛いです

あまりに迷子過ぎて教えて頂ける方がいるならば募集したい所なのですが、どこでやれば問題ないでしょうか?
skypeで音声通話しつつ双方の都合の良い日に1時間〜3時間ほどの範囲で支払いはビットコインで行える等であればすぐにでもお願いしたいです
スレの内容から逸脱した内容でしたら申し訳ありません

268 名前:デフォルトの名無しさん mailto:sage [2017/02/22(水) 01:07:07.78 ID:0Zw166EC.net]
クラウドソージングに投げてみよう
ビットコインでは無理だけど

269 名前:デフォルトの名無しさん mailto:sage [2017/02/22(水) 01:27:03.20 ID:NAcKQUQP.net]
現職マ歴4JavaPHPPythonScalaなワイが1万でコードレビューしてやるぞ
どや

270 名前:デフォルトの名無しさん [2017/02/22(水) 01:44:25.92 ID:xbKot+oa.net]
>>265
初心者の俺に助言を頼む

じゃんけんゲーム
乱数要素ABC

配列に要素を登録して
出力(配列場所を基準)に+1で勝利評価 -1で敗北評価 等しいなら引き分け評価

配列最後の場合の評価は配列先端なら+1  残り  同等

全体の流れ
(入力側)乱数要素ABC→CPU側乱数要素ABC出力→勝利判定

長くなったゴメン 評価式の時に
配列の順番を+1の式が、どう書けば良いのか解らないので教えて下さい
m(;。_。)mオナシャッス

271 名前:デフォルトの名無しさん mailto:sage [2017/02/22(水) 01:53:27.23 ID:fluTtG1x.net]
たくさん難しい言葉が出てきて理解できないんだけど…
となりのスレで見たことあるっぽいってのは置いといて
まず何を入力して何を出力するのかもっと簡単に説明してよ

272 名前:デフォルトの名無しさん mailto:sage [2017/02/22(水) 01:54:52.74 ID:NAcKQUQP.net]
>>266
要件というか何がしたのかわからんから何ともだが
その設計はおかしい

273 名前:デフォルトの名無しさん mailto:sage [2017/02/22(水) 02:16:50.31 ID:jpUU0ydx.net]
>>264
そういったサイトもあるのですね。
質問がピンポイントで的確になっている場合は利用してみたいと思います!

>>265
レビューというと私のコードを見ていただいて、適宜修正案等を教示していただけるという事でしょうか?
そちらも大変うれしいのですが、初心者特有の分からないが分からないなのでうまく質問出来るかも不安です。。。

あまりスレの内容に適していないと思いますが、一度だけご容赦下さい。
こちらはPythonからスタートしてプログラミングというそのものの知識がアベコベです。
スレに書いた内容に関しては独学で調べてどうにか動くプログラムまでは作成出来ていますが、基本的にこうすべきということが一切分かっていません。
Pycharmを主として使用していて、vagrant?virtualenv?仮想環境とはどういった場合に利便性があるのか
Django、Bottle、Flask等のPythonwebフレームワークとは何なのか教示出来る方(知識0です)
基本的にエラーとはどう処理すべきでログはどう残しておくべきか
読むべきソースコードとその有用性と読んだ上での疑問点に答えていただける方
どれでも構わないのでSkypeを使用して音声による質疑応答に対応していただける方で
双方の素性は連絡手段以外に一切開示の必要がないよう対価はビットコインやギフト券等で応じていただける方
ご連絡下さると嬉しいです。

python☆btc☆challenge☆gmail.com
最初の二つはドットで三つ目は@です

274 名前:デフォルトの名無しさん [2017/02/22(水) 02:20:01.20 ID:xbKot+oa.net]
>>268
嘘やろ?

A=グー B=チョキ C=パー
だから、+1,-1 で勝利判定できると思ったのに……

自分側ABCのどれか一つ CPUの乱数ABCどれか一つ
自分の出した乱数からCPUの出した乱数の位置を基準に勝利判定したい

例 自分A相手Aで引きかけ
自分 A 相手 B  (自分側の勝利) AB +1
自分 B 相手 A  (相手側の勝利) 自分の負けとして相手を勝利させる BA -



275 名前:1
自分 C 相手 A  (相手側の勝利) CA +1(先頭に戻る)
[]
[ここ壊れてます]

276 名前:デフォルトの名無しさん mailto:sage [2017/02/22(水) 03:59:35.48 ID:fluTtG1x.net]
>>269
チュートリアルとかを一通りやって1〜2冊本を読むのがいいと思う
https://docs.python.org/3/tutorial/
https://docs.python.org/3.6/howto/logging-cookbook.html
https://docs.python.org/2/howto/doanddont.html#exceptions

フレームワークとか開発環境の話は後でもいい

277 名前:デフォルトの名無しさん mailto:sage [2017/02/22(水) 07:36:16.56 ID:NAcKQUQP.net]
>>270
ワロタ
ABCってグチパのことかよ

アンタの入力を返す関数
ランダムな数値を返す関数
数値によって決まった手を返す関数
引数2つの強弱判定してスコアを返す関数

この組み合わせでいけるだろ
ABCを配列にする意味がない
せめてEnumにすべき

278 名前:デフォルトの名無しさん mailto:sage [2017/02/22(水) 10:56:27.32 ID:eMNezfX1.net]
Haxe で書いた。Pythonに変換して
try.haxe.org/#7e342

var JANK = [ "gu"=>1, "cho"=>2, "pa"=>3 ];

var player = "gu";
var cpu = "cho";

var num = (JANK[player] - JANK[cpu] + 3 ) % 3;
trace( num );

var message:String;

switch( num ) {
case 1:
message = "Computer Win!";
case 2:
message = "Player Win!";
default:
message = "Even!";
}
trace( message );

279 名前:デフォルトの名無しさん [2017/02/22(水) 11:42:25.50 ID:NwTryTSd.net]
haxeからpythonに変換できるだろ?何のためにhaxe使ってるの?

280 名前:デフォルトの名無しさん mailto:sage [2017/02/22(水) 12:51:27.89 ID:gb4HH2mm.net]
>>270
インポrandom
ぢぶん = input("グーかチョキかパー")
ifぢぶん ==グーなら0、チョキなら1、パーなら2
あいて = random.randint(0,2)
if(ぢぶん-あいて+3)%3
0ならあいこ、1なら負け、2なら勝ちprint

一行で勝率判定できる(A-B+3)%3が知りたかっただけだろうけど。
あとこのじゃんけんのやつ、イルカ飛行机の入門書に丸ごと書いてある。あれは初心者におすすめの本

281 名前:デフォルトの名無しさん [2017/02/22(水) 13:36:43.38 ID:xbKot+oa.net]
>>272
>>275

ありがとう、愛してるぜ!!(今だけ)

282 名前:デフォルトの名無しさん [2017/02/22(水) 16:52:13.42 ID:x0LXFWQg.net]
>>276 井伊直虎か?

283 名前:デフォルトの名無しさん mailto:sage [2017/02/22(水) 17:47:31.14 ID:jpUU0ydx.net]
当然なのでしょうがメールは頂けませんでした。。。
試行錯誤してみます!

>>271
今使う覚えたい事しか覚えない性格でこうなっているのだと思うので
例示していただいたチュートリアルを一つずつやってみます!
アドバイスありがとうございますm(__)m

284 名前:デフォルトの名無しさん mailto:sage [2017/02/22(水) 21:46:11.92 ID:CgwYVmjb.net]
超初心者です、先生方教えてください!

sqlite3で、
curs.execute("""SELECT * FROM hoge ORDER BY hage DESC LIMIT 変数, 25""")
って具合に変数を組み込みたいのですが、どうすれば良いでしょうか。



285 名前:デフォルトの名無しさん mailto:sage [2017/02/22(水) 21:57:23.86 ID:uSNnz1NM.net]
>>279
こんなんでいいのか

curs.execute("""SELECT * FROM hoge ORDER BY hage DESC LIMIT %s, 25"""%変数)

286 名前:デフォルトの名無しさん mailto:sage [2017/02/22(水) 22:03:02.11 ID:CgwYVmjb.net]
>>280
ありがとうございます。

それだとcannot operate closed cursorと言われて上手くいかないんです...

287 名前:デフォルトの名無しさん mailto:sage [2017/02/22(水) 22:05:22.16 ID:fluTtG1x.net]
気をつけようSQL Injection
https://docs.python.org/3.6/library/sqlite3.html

288 名前:デフォルトの名無しさん mailto:sage [2017/02/22(水) 22:12:19.37 ID:5qWR99AP.net]
curs.execute("""SELECT * FROM hoge ORDER BY hage DESC LIMIT ?, 25""", (変数,))

289 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 08:00:40.21 ID:9j19p/xB.net]
>>281
> それだとcannot operate closed cursorと言われて
パラメータ云々以前の話じゃね?

290 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 09:40:01.23 ID:6aLFaur8.net]
一理ある

291 名前:デフォルトの名無しさん [2017/02/23(木) 11:06:02.78 ID:LR/71aIp.net]
pip使ってインストールした時に依存するパッケージも一緒にインストールされますけど
例えばfacebook製tornadoなど。pip install tornado

更新する場合は-Uつけてますけどpip install -U tornado
依存するパッケージなども更新されるのでしょうか?

292 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 17:14:10.21 ID:boStFqTs.net]
>>286
pip help installで-Uオプション見れば書いてるよ

293 名前:デフォルトの名無しさん [2017/02/23(木) 21:44:02.96 ID:XJ4ASJac.net]
エラー処理の方法について質問です。
定期的に実行するスクリプトを作っているのですが、予期しないエラーが出た場合にどうやって通知をすればいいんでしょうか。
1.loggingを使って.logファイルに出力する
2.try文を予め組み込んでおいて、規定の処理以外が出た場合(エラー時)に通知をする
3.その他

294 名前:デフォルトの名無しさん [2017/02/23(木) 22:09:32.41 ID:KME3N98n.net]
>>288
どうやって、定期的に実行するようにしてるのかと望む通知方法を書いた方がいい
logを残すのとは通知をするのは別の話



295 名前:デフォルトの名無しさん [2017/02/23(木) 22:17:37.46 ID:h64OL8bZ.net]
>>289
cronです。
今は規定の動作の場合のみ通知をしているのですが、想定外のエラーが起こったときに、その通知とバグの特定をしたいと思いまして。

296 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 22:17:43.63 ID:Q0T8wXh7.net]
好みなんだろうけど
cronでシェル叩くなら、自分はlogに書くかな

297 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 22:38:48.91 ID:qeINelhJ.net]
Mac上で例えばブラウザで選択されている文字を
取り込んでPythonで処理するような事を
Pythonだけで行う事は可能でしょうか?
現状Automatorを介してPythonに引き渡して対応しています。
クリップボードに入っているテキストなら
Python だけで行う事が出来るとこまでは調べて分かったのですが。

よろしくお願いします。

298 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 23:21:29.93 ID:v0zRNZ3l.net]
>>290
想定外のエラーが発生したらE-mail等で自分に連絡するようにすれば良い

299 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 23:35:55.85 ID:c1QVdaUC.net]
お前が監視するんだよ!

300 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 23:40:32.11 ID:02UQYlKd.net]
これがそうだとは言わないが、
バイトを雇うのが最適解だなって時はあるよな

301 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 23:42:55.89 ID:boStFqTs.net]
>>292
Pythonだけでの想定範囲にもよるけど基本無理じゃね?
Automatorの代替でAppleScript使うか
Pythonスクリプトを実行できるようなブラウザのアドオンを探すか

JavaScriptを実行できるようなアドオンはそこそこあると思うよ

302 名前:デフォルトの名無しさん mailto:sage [2017/02/24(金) 00:10:44.14 ID:hcCi+TdT.net]
>>288
ログ出力するかどうかとtry/exceptでエラーをハンドリングするかどうかは独立した項目だよ

エラーハンドリングは最初にエラーの種類とそのエラーが発生したときにどう対処したいかを考える
エラーの種類ってのはざっくり言うとビジネスエラーかシステムエラーかと回復可能か回復不能か
どう対処したいかはアプリケーションを停止させたいとかリトライしたいとか
ログだけ残してアプリは継続稼働させたいとか

で下位のレイヤーで発生したエラーは何でもかんでもとりあえずログだけ出力してアプリを停止したいとかなら
一番上位のmain関数的なところでそういうハンドリングをするtry/exceptを書けばいい
ハンドリングしたいところでだけtry/exceptを書く

エラーの種類

303 名前:ノついてはいろんな分け方・考え方があるから詳しく知りたければググって []
[ここ壊れてます]

304 名前:デフォルトの名無しさん mailto:sage [2017/02/24(金) 00:20:30.65 ID:aFzxanwK.net]
>>296
無理でしたか、ありがとうございました!



305 名前:デフォルトの名無しさん mailto:sage [2017/02/24(金) 00:52:01.89 ID:wGBUe+Mz.net]
ブラウザーをエミュレートすれば?

Selenium WebDriver とか、
Rails4 + Capybara + PhantomJS (poltergeist)

306 名前:デフォルトの名無しさん mailto:sage [2017/02/24(金) 01:07:03.31 ID:hcCi+TdT.net]
>>299
文字を選択するところが自動化できないから今のやり方してるんじゃない?

307 名前:デフォルトの名無しさん mailto:sage [2017/02/24(金) 03:16:34.05 ID:wxgF2xWD.net]
スクレイピングでは対応できない感じの処理なのかな?

308 名前:デフォルトの名無しさん mailto:sage [2017/02/24(金) 03:20:15.41 ID:Qm5h7Mta.net]
エッチなファイルの名前漬けやろ

309 名前:デフォルトの名無しさん mailto:sage [2017/02/24(金) 08:45:36.42 ID:VfqFzJAP.net]
>>292
テキストだけなら、ブラウザPythonで自作しちゃえば。そんなに、むずかしくないよ

310 名前:デフォルトの名無しさん mailto:sage [2017/02/24(金) 09:28:40.78 ID:PzeYdyhy.net]
Google検索結果で表示されるサイト一覧をクロールしてたのですが、何件かやるとbot判定されたようでキャプチャーに入力を求められます。
回避する方法など無いでしょうか?

311 名前:デフォルトの名無しさん mailto:sage [2017/02/24(金) 09:51:51.73 ID:CMR8Gyi/.net]
Googleのrobots.txtを見るとわかるように、検索結果のクロールは禁止されている

その上でどうしてもやりたいならクロール頻度を落として様子を見る
10秒に1ページ開く程度まで低速にすればまずばれまい

312 名前:デフォルトの名無しさん [2017/02/24(金) 11:23:35.02 ID:LPigsurN.net]
>>290
cronなら出力をメールで送れるように設定できる
MAILTO

313 名前:デフォルトの名無しさん mailto:sage [2017/02/24(金) 12:43:21.15 ID:YZGHPd2K.net]
>>290
通知の話とエラー解析の話は別だよ
通知は >>306 の言うように cron の設定
エラー解析のためのログ等はプログラムによるとしか言えない

314 名前:デフォルトの名無しさん mailto:sage [2017/02/24(金) 13:07:05.86 ID:dZjvDhSd.net]
Python3.5で標準ライブラリtraceback周りが改良されて
例外時のコールスタック各段階のglobalsとlocalsが得られるようになってるね



315 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 00:32:50.53 ID:HesvebqU.net]
win10+py3.6(anaconda4.3)だとtensorflow入らないんだけど
py3.6維持したまま3.5(とtensor)インスコできたりしないですよね?
おとなしくanaconda4.2に戻すべき?

316 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 00:40:30.26 ID:IvVV1H8V.net]
anyenvとかpyenvとかじゃだめなん?

317 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 01:04:36.03 ID:ZZ7bz2+n.net]
pipとかpyenvとかanalcondaとかanyenvとか
もうなんなんなんだよ!!

318 名前:デフォルトの名無しさん [2017/02/25(土) 01:08:40.34 ID:mPXEoMFs.net]
pyenv analconda git はいまだに使い方わかんねーわw

319 名前:デフォルトの名無しさん [2017/02/25(土) 01:13:25.60 ID:m3mFnvdx.net]
>>312
すごい予測変換だな

320 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 01:14:56.04 ID:IvVV1H8V.net]
stackoverflow.com/questions/38217545/the-different-between-pyenv-virtualenv-anaconda-in-python
qiita.com/oct_itmt/items/2d066801a7464a676994

しれっとLを入れるなLを

321 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 06:50:45.26 ID:bDlVJdoV.net]
尻の穴みたいなディストリだと思ってるから発言に出てきたのだろう

322 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 08:57:43.71 ID:IuYyalJ8.net]
古い人間なので、文字コードと言ったらシフトジスしか知らない世界に生きてきた
ゆえに近年広まってきたユニコード勢力が恐ろしくてたまらない
スクリプトはシフトジスが標準のエディタで書いているし、処理するデータもシフトジスだ

そういう職場でPython3.3で運用しているスクリプトがたくさんあるのだけど
もし3.6にしたら、エラーを吐いたり誤動作したり、Pythonが吐き出す
テキストが勝手にユニコードになったりするのだろうか?

>PEP 528 and PEP 529, Windows filesystem and console encoding changed to UTF-8.
この文が死刑宣告に見えてしまう
スクリプト先頭に #coding:cp932 があれば大丈夫?

323 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 10:26:44.63 ID:bBHLw00I.net]
>>304
今のgoogleはきついよね
俺もやろうとしたけど何やっても回避できなかった
諦めてyahooから取得してる

>>305
1分以上3分以内の間隔のランダムスリープでも駄目だったよ
間隔とかじゃなくてなんか違う方法でbot判定してるっぽい

324 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 10:39:42.28 ID:g1o1M7kt.net]
素直にAPI使おうぜって事やないの



325 名前:デフォルトの名無しさん [2017/02/25(土) 10:40:28.66 ID:ISi/aKp5.net]
>>309
windowsでpythonの3.6と3.5を共存したい理由って何?
linuxとかでマイナーバージョンを共有することでもあなりしないのに
windowsでそんなことしてどうするの?

326 名前:デフォルトの名無しさん [2017/02/25(土) 10:46:33.95 ID:ISi/aKp5.net]
>>309
あとどうしてもpython 3.6でtensorflow使いたいなら自力で
https://github.com/tensorflow/tensorflow/issues/6999
特定のライブラリ使いたいためだけにpython 3.5と3.6を入れるようなことはあまり感心できないね

327 名前:デフォルトの名無しさん [2017/02/25(土) 10:48:29.69 ID:ISi/aKp5.net]
>>316
>もし3.6にしたら、エラーを吐いたり誤動作したり、Pythonが吐き出す
>テキストが勝手にユニコードになったりするのだろうか?

憶測で語らないでね
実際にトライしてトラブルになったら聞きに来てね

328 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 11:01:58.61 ID:8zKCV9EA.net]
>>318
api100件までの制限ある

329 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 11:18:40.11 ID:6KEih4jH.net]
>>316
3.6からコンソール入出力とファイルパスで使うエンコーディングが
ANSI(日本語環境では通常Shift_JISあるいはCP932)からUTF-8に変わった

以前の挙動に戻したいなら環境変数PYTHONLEGACYWINDOWSSTDIOや
PYTHONLEGACYWINDOWSFSENCODINGを設定してインタプリターを起動する
https://www.python.org/dev/peps/pep-0528/#add-legacy-mode
https://www.python.org/dev/peps/pep-0529/#add-legacy-mode

スクリプト先頭にマジックコメント書くのは
ソースファイルのエンコーディング指定なのでPEP 528、529とは無関係

330 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 12:04:00.62 ID:ZgRLWjLK.net]
課金した者だけ許可されるんじゃなかったっけapi経由での検索結果大量取得って

331 名前:デフォルトの名無しさん [2017/02/25(土) 13:00:52.44 ID:5nIvEaeP.net]
文字列操作なんですけど、re.splitやre.subを使わずに、split()やreplace()を使う理由って何ですか?
文字列操作は正規表現を使ったほうが、便利だと思うんですけど、そうじゃない理由があるんでしょうか

332 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 14:06:45.15 ID:6KEih4jH.net]
正規表現は表現力に優れているけどスニペットのベンチマークを測ると文字列メソッドの方がはやい
だから使い分ける必要がある

$ /opt/py36/bin/python3 -m timeit -s "import re" "re.split(' ', 'FOO BAR BAZ QUX HOGE PIYO')"
100000 loops, best of 3: 2.43 usec per loop
$ /opt/py36/bin/python3 -m timeit "'FOO BAR BAZ QUX HOGE PIYO'.split(' ')"
1000000 loops, best of 3: 0.761 usec per loop

$ /opt/py36/bin/python3 -m timeit -s "import re" "re.sub(' ', '/', 'FOO BAR BAZ QUX HOGE PIYO')"
100000 loops, best of 3: 3.1 usec per loop
$ /opt/py36/bin/python3 -m timeit "'FOO BAR BAZ QUX HOGE PIYO'.replace(' ', '/')"
1000000 loops, best of 3: 0.378 usec per loop

333 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 18:49:43.49 ID:bDlVJdoV.net]
大富豪的プログラミングだったら気にしなくていいだろ
赤貧的プログラミングならC言語とか使った方がいいな

334 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 20:42:23.78 ID:NP4giB73.net]
>>327
大富豪的・赤貧的プログラミングに笑っが、でも、その通りだよな



335 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 22:01:39.15 ID:IvVV1H8V.net]
中産階級だからstring.split/replace使うことにする

336 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 23:35:56.30 ID:eR24TyuO.net]
.split()メソッドって区切り文字無しで一文字ずつ分けることできないの?

337 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 23:38:18.36 ID:Ot4yoOgj.net]
list('ABC')やforで1文字ずつになるよ

338 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 23:42:59.11 ID:IvVV1H8V.net]
区切り文字を指定しなければwhitespaceで分割されるよ

'FOO BAR BAZ'.split()
#=>[‘FOO', 'BAR', 'BAZ']

339 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 23:44:51.91 ID:eR24TyuO.net]
サンクス。スゲー、list("abc")って
[“abc”]にならないんだ不思議
わざわざ内包表記で[i for i in “abc”]ってしてたわ

340 名前:デフォルトの名無しさん [2017/02/26(日) 00:57:35.18 ID:Z6GpW5ZG.net]
文字列が、primitive じゃなく、iterable なんだろう

341 名前:デフォルトの名無しさん [2017/02/26(日) 05:56:54.75 ID:2i1axQxa.net]
python3.5系列をインストールしてほかにもパッケージ追加したりして使ってます。
pipを使っていろいろパッケージを追加したりしていたのですが、tensorflowがうまく導入出来ませんでした。
そこでAnacondaをインストールしようとおもうのですが、そのまま普通にインストールしても大丈夫ですか?
これまでに入れているpythonやその他のパッケージと競合してしまわないか心配です。

342 名前:デフォルトの名無しさん mailto:sage [2017/02/26(日) 07:51:30.11 ID:bUk9ykN5.net]
osは何?winならそのままインストールしてOK

343 名前:デフォルトの名無しさん mailto:sage [2017/02/26(日) 19:35:14.58 ID:KW1jvSVj.net]
python3でqt5を使いたいんですけど使い方を調べてもあまり出てきません。どこを見て作ればいいのでしょうか

344 名前:デフォルトの名無しさん mailto:sage [2017/02/26(日) 19:48:24.48 ID:JlxiU+ns.net]
https://wiki.python.org/moin/PyQt



345 名前:デフォルトの名無しさん mailto:sage [2017/02/26(日) 20:35:13.74 ID:qbYqdhND.net]
tes=[1,2X,3,太郎5,6]みたいなintと複数の文字種のstrが混ざってるリストがあります
strが太郎なら4、それ以外の文字なら0に置き換えて
全部int型のtes=[1,2,0,3,4,5,6]みたいにしたいんですが、どういうやり方が簡潔でしょうか
要素の順番は上記のような置換場所を保持したいというか、ゴチャゴチャにできません

346 名前:デフォルトの名無しさん mailto:sage [2017/02/26(日) 20:49:35.32 ID:vMjLm6yK.net]
>339
リストの二番目は、2Xになっているけど、2, Xの誤記という理解でいいかな?

347 名前:デフォルトの名無しさん mailto:sage [2017/02/26(日) 20:51:13.78 ID:vMjLm6yK.net]
>340
より細かく言うと、2, "X" か。

348 名前:デフォルトの名無しさん mailto:sage [2017/02/26(日) 21:39:14.90 ID:uA6QDUs5.net]
tes = [1, 2, 'X', 3, '太郎', 5, 6]
L = [x if type(x) is int else 4 if x == '太郎' else 0 for x in tes]
print(L)
こうかな

349 名前:デフォルトの名無しさん mailto:sage [2017/02/26(日) 21:56:12.56 ID:+I4Nnlvd.net]
forとifとアペンドの組み合わせでいいんじゃね

350 名前:デフォルトの名無しさん mailto:sage [2017/02/26(日) 21:57:45.64 ID:+I4Nnlvd.net]
ほんとリスト内包表記糞杉内

351 名前:デフォルトの名無しさん mailto:sage [2017/02/26(日) 22:04:11.50 ID:uA6QDUs5.net]
内包表記はいいけど、3項演算子みたいな書き方が見にくいな

tes = [1, 2, 'X', 3, '太郎', 5, 6]
for i, x in enumerate(tes):
  if type(x) is str:
    if x == '太郎':
      tes[i] = 4
    else:
      tes[i] = 0
print(tes)

352 名前:デフォルトの名無しさん mailto:sage [2017/02/26(日) 22:10:02.46 ID:+I4Nnlvd.net]
>>345
再代入してはいけない(戒め)

src = [1, 2, 'X', 3, '太郎', 5, 6]
dst = []
for x in src:
  if type(x) is str:
    if x == '太郎':
      dst.append(4)
    else:
      dst.append(0)
  else:
    dst.append(x)
print(dst)

353 名前:デフォルトの名無しさん mailto:sage [2017/02/26(日) 22:30:38.24 ID:/2VmdLBu.net]
なんでintかどうかじゃなくstrかどうかからチェックしてるの?

354 名前:デフォルトの名無しさん mailto:sage [2017/02/26(日) 22:49:04.24 ID:dCBTOlVh.net]
>>342
3項演算子使ったそれ読みにくいな
まぁ、3項演算表記自体が俺は好きじゃないからな



355 名前:デフォルトの名無しさん mailto:sage [2017/02/26(日) 23:02:51.45 ID:dCBTOlVh.net]
>>347
処理するものを明確にしたいからだろ
intは何もしない
strは処理をする
なら,str処理コード書いたほうが良いよなって感じだろ

356 名前:デフォルトの名無しさん mailto:sage [2017/02/26(日) 23:33:23.36 ID:/2VmdLBu.net]
>>349
なるほどね そういう考え方か
万が一floatとかが入ってた時にどうしたいのか次第だね

357 名前:デフォルトの名無しさん mailto:sage [2017/02/26(日) 23:37:21.56 ID:/2VmdLBu.net]
読みやすさ的には変換処理を関数にして
リスト内包表記なりmapなりするのが良さそう

358 名前:デフォルトの名無しさん mailto:sage [2017/02/26(日) 23:53:22.41 ID:H0vEppIh.net]
C風の?:の三項演算子の方が好き

359 名前:デフォルトの名無しさん mailto:sage [2017/02/27(月) 00:07:38.26 ID:qjhVDLKY.net]
>>346
なんで再代入したら、いかんの?
メモリ節約できていいじゃない?

360 名前:デフォルトの名無しさん mailto:sage [2017/02/27(月) 00:52:18.44 ID:HtNOCsJ/.net]
リストの書き換えや再代入はバグの温床
メモリ節約したいならCでも使え

361 名前:デフォルトの名無しさん [2017/02/27(月) 05:54:37.43 ID:RwLDhDHl.net]
ideone.com/iSjV7g
ideone.com/ehdzSj

362 名前:デフォルトの名無しさん mailto:sage [2017/02/27(月) 08:45:30.29 ID:HwAqiqRw.net]
いわゆる宣言的に書きましょうというやつですね

363 名前:デフォルトの名無しさん mailto:sage [2017/02/27(月) 08:50:51.24 ID:qIyoXB+n.net]
>>354
なるほど
ありがと

364 名前:デフォルトの名無しさん mailto:sage [2017/02/27(月) 10:38:19.21 ID:cQVaqrK/.net]
スペルミスを完璧に拾ってくれるならそれでもいい



365 名前:デフォルトの名無しさん mailto:sage [2017/02/27(月) 16:10:34.51 ID:ADDVNKtI.net]
>>355
そのRubyのコードはちょっと..
三項演算子かCase文で
ideone.com/58eS5t

366 名前:デフォルトの名無しさん mailto:sage [2017/02/27(月) 20:14:01.12 ID:qiZwo82Q.net]
とあるサイトの訪問歴のデータをindexにIDを、カラムに日付、訪問歴を0か1に加工し値としたデータフレームにしたのですが
連続何日訪問がなれけば以後訪問がないかどうか分析をしたいです
こういった場合どういう文を書けばいいですか?






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

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<249KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef