Pythonのお勉強 Part57

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2018/06/25(月) 09:57:59.24ID:aY7uj4w5
Pythonオフィシャルサイト
http://www.python.org/

■前スレ
Pythonのお勉強 Part56
http://mevius.5ch.net/test/read.cgi/tech/1519430841/

次スレは>>980が挑戦する

ソース貼れるサイト
https://pastebin.com/ ペーストビン
https://ja.osdn.net/pastebin/ OSDNコピペ ログインしないで投稿すると一週間で自動削除
2018/09/11(火) 18:50:52.20ID:BRSYruD+
python 2/3 コンパチのスクリプトを書いてるけど、
素の環境に対応したものでやろうとすると名前の変わったモジュールの呼びだし方とかいろいろ工夫しないとダメなんだな。
__future__使えばだいぶ楽になるけど、使わないと事あるごとにユニコード地獄w
コンソール表示関連は場合分けがどうしても必要で更に面倒くさい。
2018/09/11(火) 18:54:15.18ID:0Qtu/zKE
>>519
ファイトォ*:.。..。.:*・゚(n‘∀‘)η゚・*:.。..。.:*!!!☆
521517
垢版 |
2018/09/12(水) 15:35:34.60ID:R+Q/u4sv
>>518
ありがとうございます!
2018/09/12(水) 20:53:31.66ID:Fp0BM1OM
やっぱPython楽で良いな
必要あって久々にJavaScriptで書いてら
あれ、なんでエラー?
}とか;とか忘れまくり。面倒くせー
2018/09/12(水) 21:41:57.39ID:1sLAkYsI
それは単にPythonの方に慣れてるだけだよ
久々にPython書くと逆に混乱することもあるんだから
2018/09/12(水) 22:08:38.46ID:1ZvyzLzx
;は忘れても困らんだろ
2018/09/12(水) 22:11:41.94ID:a/e6vCTz
文法無視して問題ないプログラミング言語などない
526デフォルトの名無しさん
垢版 |
2018/09/12(水) 22:21:10.08ID:sKdocRjF
なかったら作ればいいじゃないか
527デフォルトの名無しさん
垢版 |
2018/09/12(水) 22:45:38.75ID:yfKtIfo2
バカは日本語の文法すら無視するからな
2018/09/12(水) 22:50:04.43ID:T/3USJ28
if とかwhileの末尾に:があるのが一貫性ないな
529デフォルトの名無しさん
垢版 |
2018/09/12(水) 22:53:27.40ID:yfKtIfo2
;が1つの文の区切り
{}が1つの複文
一番分かりやすい
2018/09/12(水) 23:44:09.22ID:8ci0W4vQ
Javaとかの{}って何重にも重なるとどれとどれが対応しているのかわかりにくいよな

インデント最高
2018/09/12(水) 23:49:57.93ID:NE3pGswO
pep8とかのlintツールとか使ってる?
532デフォルトの名無しさん
垢版 |
2018/09/12(水) 23:51:27.61ID:sKdocRjF
次世代言語が目指すべきは
semantics without syntaxやな
2018/09/12(水) 23:53:39.64ID:pVbQPMMe
VSCode で、Bracket Pair Colorizer という拡張機能を入れれば、

対応したカッコが、同じ色で表示される
534デフォルトの名無しさん
垢版 |
2018/09/12(水) 23:53:47.13ID:yfKtIfo2
空文は
;だけ
わかりやすい
535デフォルトの名無しさん
垢版 |
2018/09/12(水) 23:56:56.14ID:yfKtIfo2
pythonというウンコスクリプトには
空文という概念すらない
2018/09/13(木) 00:00:22.27ID:/6DEARgS
pass
537デフォルトの名無しさん
垢版 |
2018/09/13(木) 00:02:18.61ID:yqnwLH2V
実行しないときに
なんでいちいち意味不明な文書くの?
538デフォルトの名無しさん
垢版 |
2018/09/13(木) 00:09:46.86ID:yqnwLH2V
ウンコスクリプトには致命的な言語としての欠陥がある

つまりそれを回避するために
意味不明なpassという制御が追加されている
2018/09/13(木) 01:28:54.97ID:3jfUP63G
致命的かなぁ。
2018/09/13(木) 03:03:01.76ID:TyIiud+k
ンフフ
2018/09/13(木) 08:44:49.57ID:RBuce5QU
数万個単位のファイルを時間をかけてDLするプログラムで
DL状況を記録したテキストファイルをしょっちゅう更新するのはディスクに悪そうだからと
ダミーファイルを作って、それを消していくことでDL状況を把握する手法のプログラムを作ってたんだけど
そもそもファイルをDLするんだから、 DLリスト-DL済みファイル でDL状況を把握できることに今更気づいてしまった
2018/09/13(木) 08:56:00.59ID:ou865DbU
そもそも大量のファイルをダウンロードしている中でテキスト数文字書き換えることによるディスクへのダメージなど無視していいレベルではないか
2018/09/13(木) 09:33:02.35ID:TEqZYDm7
SQLite使えよ
2018/09/13(木) 11:06:38.16ID:RBuce5QU
>>542
最初のDLリストが9999990バイト(約10MB)あったとして
1件処理して10バイト減ったリストをファイルとして保存すると
9999980バイトの書き込みが発生するだろ
DL1件につき約10MBはなんかディスクに悪そうでしょ
ファイルを一部だけ書き換える処理はよく知らんし、処理もめんどくさくなりそうだし

>>543
SQLiteは一応基本的なことができるレベルだけど
あんまり好きじゃないんだよなぁ
使うしか無いなら使うけど、使わなくて済むなら使いたくない
2018/09/13(木) 12:20:01.06ID:MFUY1dcP
Pythonって未経験だし文法もよく分かってないんですが、
C/C++、C#、Java、TypeScript、COBOL、Perlの経験があれば何とかなりますか?
546デフォルトの名無しさん
垢版 |
2018/09/13(木) 12:24:24.23ID:BkPZA0vF
なんとかならない事なんかない
2018/09/13(木) 13:45:14.81ID:/4sWr7p6
多分、もっといい言語を作れるんじゃないかな?
2018/09/13(木) 17:27:54.21ID:4Jt5EnVe
日本語未経験のマルチリンガルの御仁が、日本語できますかねぇと聞いてるのと同じだなw
549デフォルトの名無しさん
垢版 |
2018/09/13(木) 19:20:28.59ID:6Z3XXp4U
同じだとして何故そこでわろとるのか分からない件
550デフォルトの名無しさん
垢版 |
2018/09/13(木) 19:50:12.01ID:SHti9j2v
>>544
SQLiteはdeleteがクソ遅いから使わない方がいい
ファイルの書き換えならケツから削ってケツだけ書き出すべき
先頭から削ると確かにディスク負荷が馬鹿にならん

再起動を考慮しないなら俺は全部インコアで管理する
再起動を考慮するならダウンロードリストを適当な数で分割してjsonやpickleで管理するわ
2018/09/13(木) 20:17:07.00ID:U1nKZv8x
そもそも最初から全部書き出し直すのが前提?
seekして1バイトだけ書き換えるのではだめなん?
552デフォルトの名無しさん
垢版 |
2018/09/13(木) 20:18:31.29ID:l9KSlvFS
SQLiteはonmemoryで使うもんだ
553デフォルトの名無しさん
垢版 |
2018/09/13(木) 20:24:31.10ID:SHti9j2v
>>551
文字列置換で書き出してもいいかもな
どのみちページ単位での書き出しは避けられん

>>552
SQLiteはmemでもおせーよ
2018/09/13(木) 20:41:29.28ID:TW5jZxyk
pycon jp 今週だっけ?
2018/09/13(木) 21:01:35.44ID:4Jt5EnVe
>>549
初めての言語ならともかく、すでに複数の言語を駆使してる人なら、
釣りじゃない限り、改めてどうかなんてわざわざ聞かないでしょう、普通
2018/09/13(木) 22:43:21.63ID:7EcaHTzm
>>544
ページサイズを4KB とすると、千ページで、4MB

そのうちの、1文字を変えると、その1ページが書き換わる。
または、2ページ以上になる事もある

例えば、1-2-3-4-5-6-7-8 というページがあって、
ページ4 を書き換えた場合、それが2ページになったとすると、

1-2-3-(9-10)-5-6-7-8 のようにつながる
557556
垢版 |
2018/09/13(木) 22:51:27.63ID:7EcaHTzm
1-2-3-(9-10)-5-6-7-8 のようにつながる

ここで、ページ10 に、たった1文字しか入っていなくても、1ページ使う。
1文字でも、4KBでも、1ページ使う

変更のないページには、何も変化はない。
ページの並びが変わるだけ
558デフォルトの名無しさん
垢版 |
2018/09/13(木) 22:52:28.28ID:e5Ezbqnp
>>557
それどこのファイルシステムの話?
559556
垢版 |
2018/09/13(木) 23:03:48.08ID:7EcaHTzm
1-2-3-(9-10)-5-6-7-8 のようにつながる

ページ9, 10 は、1〜8 とは異なる領域に確保されるから、デフラグが起きている状態

シーケンシャルに読み込むと、ページ9, 10 だけは、異なる領域から読み込んで、
つながっているように見せるため

ツールでデフラグを解除すると、これらすべての領域を、異なる連続領域にコピーする。
連続した領域の方が、アクセスが速いから

HDD のアームが、内外内外など、行ったり来たりしないように、
1回のアームの動きで、データを読み込めるように、

HDDの方で、効率的な読み込み方をする
560デフォルトの名無しさん
垢版 |
2018/09/13(木) 23:05:55.21ID:e5Ezbqnp
>>559
それなんてファイルシステム?
561556
垢版 |
2018/09/13(木) 23:07:05.46ID:7EcaHTzm
Linux では、1-2-3-(9-10)-5-6-7-8 のような、ページの並びが見える

OSのすべての機能を学びたいなら、ムック本の
Linuxエンジニア養成読本、第3版、2016

カーネル、起動処理、仮想記憶、
ファイルシステム、シェルスクリプトなど
562デフォルトの名無しさん
垢版 |
2018/09/13(木) 23:08:52.06ID:e5Ezbqnp
>>561
ext4でもxfsでも同じ?
563556
垢版 |
2018/09/13(木) 23:09:23.07ID:7EcaHTzm
どのファイルシステムにも、デフラグツールがあるから、

たぶん、すべてのファイルシステムで同じだろ
564デフォルトの名無しさん
垢版 |
2018/09/13(木) 23:10:40.98ID:e5Ezbqnp
>>563
>>561のようなページの並びにするにはどんなwriteシステムコールを出せば確認できる?
565デフォルトの名無しさん
垢版 |
2018/09/13(木) 23:13:26.04ID:6Z3XXp4U
こうゆう見当外れな議論ごっこも時間が経てば良い黒歴史になるもんやからな
566556
垢版 |
2018/09/13(木) 23:15:45.68ID:7EcaHTzm
例えば、1-2-3-4-5-6-7-8 のように、8ページを読み込んだとする

ここで、ページ4を更新したら、ページ4に、更新した印のdirty bit を付ける。
他のページには、dirty bit が付いていないから、更新されていない事がわかる

だから、1-2-3-(9-10)-5-6-7-8 のように、ページの並びだけを変えて、
ページ9, 10以外は、何も変化がない
567556
垢版 |
2018/09/13(木) 23:24:36.66ID:7EcaHTzm
>>564
ページ4を更新する時に、バイト数が増えれば、
1ページだけの更新ではできないから、2ページの更新になる

それで、1-2-3-(9-10)-5-6-7-8 のようになる

だから、ページ10には、1文字しか入っていない事もある

その場合、4KB近く使われていない領域があるけど、
そこに、ページ5〜8 の内容をずらして更新したりしない

ページ1〜3、5〜8 には、dirty bit が付いていないから、更新されない
568デフォルトの名無しさん
垢版 |
2018/09/13(木) 23:27:43.30ID:e5Ezbqnp
>>567
ブロックマップを分かってなさそうだ
あとデフラグって言葉は違う
もっと勉強した方が良い
569デフォルトの名無しさん
垢版 |
2018/09/13(木) 23:54:36.62ID:/6DEARgS
10MB程度と予測できるならメモリー上でやれよ
めんどくさいからリストでさ
んで、100回おきにHDDに書き込む
finallyでHDDに書き込む
570556
垢版 |
2018/09/13(木) 23:59:59.43ID:7EcaHTzm
>>568
ファイルシステムのBlock bitmap は、dirty bit の有無じゃなかったっけ?

ちょっと今、手元に本がないから、わからないけど
2018/09/14(金) 01:54:16.61ID:eqs6pM6Z
ちゅーかディスクへの書き込みで、ディスクへの負担とか考えとったら、あんた禿げるで。
OSや他のアプリはもっと頻繁に読み書きしてるよ。
2018/09/14(金) 02:43:59.26ID:YQ1y2eFS
デフォルトでは、5秒毎にHDD に書き込んでいる設定を、15秒毎にするとか、
SSD では書き込み回数を減らすために、そういう設定にする人もいる

ただし電源断に対する、安全性は落ちる
573デフォルトの名無しさん
垢版 |
2018/09/14(金) 04:24:25.30ID:y006v5WX
質問
パイソンは何で20Mの制約があるの?
有料とかないの?
月々5000円くらいなら払ってやるのに
2018/09/14(金) 04:38:57.92ID:0Re1jVqu
Rubyガイジとハゲガイジやべえ
2018/09/14(金) 04:48:11.44ID:0Re1jVqu
Pythonガイジの諸君も女の腐ったような奴の扱いは上手くないらしいな
544の時点で「ああこいつ共感脳だ。そうだねって言わないといけない奴だ」と気づけ
2018/09/14(金) 07:01:25.26ID:rR71tzT7
他が頻繁に書き込みしてるからよい、って考えは良くないな
主処理に対してログや管理でどの程度リソースを使うかを考えるべき
DL総量100GBに対してログ書き込み量は1%以下に抑える、とかな
2018/09/14(金) 12:28:56.08ID:jZmQsV2I
大容量のリストファイルを頻繁に更新したくないなら
「リストの何番目まで進んだか」って情報だけを別のファイルに保存すればいい
これならDL1件につき数バイトの書き込みしか発生しない

リストをランダムに処理したい場合はリストの処理状況をビットで管理して
ビット情報を別ファイルに保存すればいい
これなら100万件のリストでも125000バイトで管理できる
578デフォルトの名無しさん
垢版 |
2018/09/15(土) 00:24:55.07ID:jV44o+ul
>>510
>>519
juliaでコーディングしちゃいなよ!
速度は速いわ、ユニコードどーんとこいの言語仕様だから
文字リテラルだけでなく、ユーザー定義関数名や変数名に漢字(絵文字)まで使えちゃうんだからさ

function ��()
println("ハロー、ウンコ!")
end

julia> ��()
ハロー、ウンコ!
2018/09/15(土) 09:09:55.60ID:BeLWlE1K
変数名関数名ならpythonも3から2バイト使えるぞ
2018/09/15(土) 11:44:55.49ID:tPiE10DN
テスト関数に日本語使うことはあるけどそれ以外の用途でマルチバイトなんて使いたくもない
581デフォルトの名無しさん
垢版 |
2018/09/15(土) 11:49:05.69ID:AVfR6YnT
既に化けてる
っていうか
コーディングのエントロピーは出来るだけ小さく保ちたいものです
582デフォルトの名無しさん
垢版 |
2018/09/15(土) 17:33:16.66ID:u773lREX
python初心者です。
今seleniumを使おうとしているのですが、http://127.0.0.1:4444/wd/hub
にアクセスできずに困っています。
プロキシは確認しましたが通していません。
どなたか対策が分かる方いらっしゃいますか?
583デフォルトの名無しさん
垢版 |
2018/09/15(土) 17:36:13.52ID:AVfR6YnT
自分で鯖立ててないだけじゃね
584デフォルトの名無しさん
垢版 |
2018/09/15(土) 17:53:08.90ID:u773lREX
サーバーを立てるというのはローカルサーバーの事でしょうか
2018/09/15(土) 17:55:17.27ID:i4j5g7Qc
スレ違い以前の問題だな
どこの板に誘導すりゃいいんだろ
586デフォルトの名無しさん
垢版 |
2018/09/15(土) 18:02:12.37ID:AVfR6YnT
カレントディレクトリに
wd/hub

wd/hub/index.html
を作って

import http.server
import socketserver

with socketserver.TCPServer(('127.0.0.1', 4444), http.server.SimpleHTTPRequestHandler) as httpd:
httpd.serve_forever()

を実行汁
587デフォルトの名無しさん
垢版 |
2018/09/15(土) 19:28:01.07ID:u773lREX
>>586
pythonのファイルなのですが、htmlファイルは何の用途で作成するのでしょうか
588デフォルトの名無しさん
垢版 |
2018/09/15(土) 19:30:23.47ID:u773lREX
ログです

[0913/014841.092:ERROR:process_reader_win.cc(123)] NtOpenThread: {アクセス拒否} プロセスはオブジェクトのアクセスを要求しましたが、アクセス権が与えられていません。 (0xc0000022)
[0913/014841.116:ERROR:exception_snapshot_win.cc(88)] thread ID 6820 not found in process
2018/09/15(土) 19:57:16.93ID:UgmXbThu
その知識だと無理だと思う
2018/09/15(土) 23:07:35.30ID:Uxv/p0LY
Pythonにおいて、ポリコレ議論が白熱していると話題。
奴隷制度を連想させる「master」「slave」という単語を削除が要望されてしまったという。

そもそも「master」という単語は非常に多くの場所で使われており、たとえばバージョン管理システムGitでは「masterブランチ」という概念がある。
そのため、これを変更するのは容易なことではない。また、master/slaveという単語は電子回路やソフトウェアアーキテクチャにおいて奴隷制とはまったく関係ない文脈で使われている。
そして、「slave」を置き換えられる単語で適切かつ広く普及している単語はいまのところ存在しない。
こういった理由から反対の声も出ていたが、最終的には「salve」という単語は「worker」や「helper」に、
「master process」という言葉は「parent process」に置き換えられることになったという。

なお、この議論は非常に白熱したため、Python開発において「優しい終身の独裁者」から離れるとしていたPythonの生みの親であるGuido van Rossum氏が仲裁し、提案された変更を受け入れる決断を下している。

https://developers.srad.jp/story/18/09/14/0935201/


Python終わったな
こんなん1つ認めたらどんどん汚染されていってまともに書けなくなるだろ
591デフォルトの名無しさん
垢版 |
2018/09/15(土) 23:52:43.14ID:Lh54kTnH
>>590
どこからslaveが削除されるっていう話なの?
592デフォルトの名無しさん
垢版 |
2018/09/16(日) 00:28:28.32ID:djAHrjHG
IDEにHDD繋ぐ時もマスター、スレーブと言ってたね
2018/09/16(日) 00:37:43.24ID:JuMgzwQF
>奴隷制度を連想させる「master」「slave」という単語を削除が要望されてしまったという。
こんな要望するやつ絶対プログラミング向いてないだろ
やっぱPython色んなやつに使われてるんだな
594デフォルトの名無しさん
垢版 |
2018/09/16(日) 00:43:22.70ID:SOVIz+sV
ご主人さまと奴隷
特殊なプレイを連想する
2018/09/16(日) 00:44:55.16ID:+eUSJ1U5
【IT】奴隷制を連想させるとして、Pythonで「master」「slave」といった単語が削除される
http://egg.5ch.net/test/read.cgi/bizplus/1536925223/
2018/09/16(日) 00:47:12.15ID:r3x3JD0E
slaveよりworkerやhelper、masterよりparentの方が役割や位置関係が分かりやすいけどね
2018/09/16(日) 00:49:04.82ID:AI9K0Igl
モンティパイソンのブラックさを見習ってほしい
ブラックを笑いに変えないと
2018/09/16(日) 01:05:34.57ID:EK9e0hMh
>>582-588
Ruby では、適当な作業フォルダへ移動してから、コマンドプロンプト・PowerShell で、
ruby -run -e httpd . -p 4444

これで、PC 内に、WEBrick サーバーが起動するから、
その作業フォルダ内に、index.html があれば、

ブラウザでアクセスすれば、そのHTMLページを見れる。
http://localhost:4444/

サーバーを止めるには、Ctrl+C を押す

君は、HTML, CSS, JavaScript を知らないの?
599598
垢版 |
2018/09/16(日) 01:37:04.25ID:EK9e0hMh
Ruby では、適当な作業フォルダに、index.html がある場合、
Selenium::WebDriver で、サーバーを立てずに直接、HTML へアクセスもできる

ローカルPC のファイルには、絶対パス、file:///何々でアクセスできる。
file:///何々/index.html

options = Selenium::WebDriver::Chrome::Options.new
options.add_option(:detach, true) # ブラウザを操作しない
options.add_argument('--start-maximized') # 画面最大

driver = Selenium::WebDriver.for :chrome, options: options
driver.manage.timeouts.implicit_wait = 30 # 要素の検索の timeout

index_url = "file:///" + File.join(__dir__, 'index.html')
driver.navigate.to index_url
2018/09/16(日) 02:15:40.68ID:8SACu1kv
>>590
その要望無視したらどうにかなんの?
2018/09/16(日) 02:57:27.65ID:sL6e6VNO
>>600
もう受け入れちゃったから今更取り消せないでしょ
しかも大きな話題にもなってしまったし
Python終わったな
2018/09/16(日) 08:47:58.72ID:+Pq0rgCm
>>595
ポリコレは便利な集りツール。
2018/09/16(日) 10:06:30.86ID:tx1ttOgr
クラス継承でsuper()についての質問です。

https://pastebin.com/eHYGS1Vq

super()してるのに親クラスの_init_が実行されてないのはなぜでしょうか?
2018/09/16(日) 11:13:32.88ID:SK8tGSq7
久々にpandasをアップデートしたら、日本語のパスもファイル名もそのままでは使えなくなってるんだね
と書こうと思ってたら似たような話題が上にもあった
一気に不便になったわ
2018/09/16(日) 11:18:03.18ID:SK8tGSq7
もしかしてpandasじゃなくてpythonの問題?
つか初心者スレと間違えたのでスルーして下さい
2018/09/16(日) 12:19:00.30ID:l8FAmx6W
>>603
どうしてそうなってるのか知らんけどsuperの第一引数はBを入れないといけないようだ。
607デフォルトの名無しさん
垢版 |
2018/09/16(日) 13:16:15.24ID:HF0YmRsW
裾野が広がると馬鹿も増える
2018/09/16(日) 20:38:44.74ID:Jzzvug2D
>>606
ホントだそれだと思い通りに動きますね、ありがとうございます
この引数はoverrideするクラスじゃなくてされるクラスを入れるのか、そんなの自明なのに謎仕様ですね
2018/09/17(月) 05:14:02.92ID:LR6Kygk+
まずsuperという関数名の意味から考えてみろよ
つか引数はPython3なら省略可だし
610デフォルトの名無しさん
垢版 |
2018/09/17(月) 12:33:21.10ID:ZxEuGzqt
RailsよりDjangoの方がしっくりくるかな...
2018/09/18(火) 07:34:10.91ID:emMxJE89
>>550
だが、ファイル一つで管理できるのは楽だべ
2018/09/19(水) 01:34:09.83ID:LZr6grGn
定数変数関数クラスの名前はキャメル、スネークどっちがよいの?
定数は大文字にするって暗黙のルールがあるみたいだけど、kiyoshi_name(kiyoshiName)をKIYOSHINAMEにすると分かりづらいから論外だと思うんだけどどう?
2018/09/19(水) 02:37:06.77ID:BAgNiBDl
>>612
両方使っちゃう
2018/09/19(水) 02:42:08.26ID:LZr6grGn
>>613
どう使い分けるの?
2018/09/19(水) 03:07:08.46ID:jkkFP0be
>>614
クラス、例外の名前 -> キャメルケース
変数名、関数名 -> スネークケース

PEP8というコーディング規約に書いてあるので読んでみて
2018/09/19(水) 04:04:03.02ID:6Ke1Nn09
ptpyhon3みたいな、分かりやすいUIのPython3インタプリンタでおすすめのはありますか。
ptpython3もいいんですけど 違うものを試してみたいです。
2018/09/19(水) 12:16:23.11ID:j0vZv9bU
>>612
パスを格納した定数は「大文字1文字_」ってルールにしてる
ディレクトリなら D_json
ファイルなら F_setting みたいな感じ
2018/09/19(水) 19:43:40.49ID:aiIpKBDG
>>617
参考までに、パスだけ特別扱いにするのはなぜ?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況