くだすれPython(超初心者用) その39at TECH
くだすれPython(超初心者用) その39 - 暇つぶし2ch300:デフォルトの名無しさん
18/09/20 09:49:06.07 dj+2oZ6y.net
大量にあるDataFrameのデータの日付が
Year, month, day, ...
という感じで各時間区分ごとに別れて入っているのですが、これをtimestampに変換するいい方法はありますか?

301:デフォルトの名無しさん
18/09/20 10:51:05.31 fiW+YUJ7.net
>>283
とりあえずここを見て使えそうな処理を使えばいい
URLリンク(docs.python.jp)
俺だったらテキストとして結合して、strptimeで処理するかな
桁揃えの必要があるならzfillを使う

302:デフォルトの名無しさん
18/09/20 11:11:45.64 dj+2oZ6y.net
>284
ありがとうございます、テキスト結合→strptimeをforループで回してタイムスタンプのみの配列を作るのをやってみたんですが、レコードが数百万個あるので速度からすると数十分かかりそうでした。
forループを使わずになんとか早くする方法はないでしょうか?

303:デフォルトの名無しさん
18/09/20 12:19:46.96 7WHuQIEO.net
numpyに入れる

304:デフォルトの名無しさん
18/09/20 13:48:45.51 fiW+YUJ7.net
>>285
1回だけの処理なら中断保存・再開できる仕組みを入れつつ数十分ぐらい我慢しろ
何度も処理しなきゃいけないなら、処理が遅いPythonにやらせるべきじゃない
CやJavaみたいな処理が早い言語にやらせるべき
あと、リストを渡すと処理したリストを返してくれる関数は
内部的にはforループ使ってる
だから「forループを使わずに」なんて無理

305:デフォルトの名無しさん
18/09/20 14:06:39.21 2iENFSTM.net
年月日がバラバラならtimestampのコンストラクタに年月日をそれぞれ渡したほうが多少は早い�


306:ナないの?



307:デフォルトの名無しさん
18/09/20 14:55:31.07 tnMs4KBD.net
>>287
numpyみたいに内部的にはCで実装されてるライブラリもあるから使いこなせばPythonでも十分有望

308:デフォルトの名無しさん
18/09/20 15:49:34.65 gMhM2k+x.net
>>287
面白いねw

309:デフォルトの名無しさん
18/09/20 18:01:52.58 HnUdBV/V.net
WEBフレームワークにflaskを採用しようと思ってる超初心者プログラマーですが、flaskは仕事で一生使えるフレームワークなのでしょうか?
フレームワークに流行り廃りはあるのは承知ですが今学ぶならRailsみたいに人気のあるフレームワークを勉強した方がいいでしょうか?

310:デフォルトの名無しさん
18/09/20 18:07:51.35 wnlFKUtW.net
自然言語で何語を勉強しようかと迷うのに似てる

311:デフォルトの名無しさん
18/09/20 18:22:22.52 HnUdBV/V.net
>>292
何を選べば無難ですか?

312:デフォルトの名無しさん
18/09/20 19:31:20.85 DBWB48iV.net
>>291
そもそもweb屋自体おまえが働ける間生き残り続ける可能性が低いんやからいらん心配せんで好きなんやれや

313:デフォルトの名無しさん
18/09/20 21:45:31.05 Mlnbbzfh.net
tf-nightly 1.12.0.dev20180920 has requirement keras-applications>=1.0.5, but you'll have keras-applications 1.0.4 which is incompatible.
tf-nightly 1.12.0.dev20180920 has requirement keras-preprocessing>=1.0.3, but you'll have keras-preprocessing 1.0.2 which is incompatible.
tf-nightly-gpu 1.11.0.dev20180917 has requirement keras-applications>=1.0.5, but you'll have keras-applications 1.0.4 which is incompatible.
tf-nightly-gpu 1.11.0.dev20180917 has requirement keras-preprocessing>=1.0.3, but you'll have keras-preprocessing 1.0.2 which is incompatible.
keras-applicationsのバージョンが足りないって警告がでてくるんですがpip install keras-applications --upgradeを入力してもすでに入ってるって言ってきます
どうしたらいいでしょうか
ubuntu16.04.3

314:デフォルトの名無しさん
18/09/20 22:02:59.66 kFoauySG.net
>>293
Pythonを選ぶ時点で大冒険なので大差ない

315:デフォルトの名無しさん
18/09/20 22:23:37.92 8Bepevhe.net
>>285の用途なら、juliaがいいんじゃないの?
って思った
Pythonのライブラリも呼び出せるし、移行はカンタン
CSV読み込み用の不特定な型の集合を扱えるDataFrames構造も使えるから
元々大規模なデータ解析の為にjuliaが作られたようなもの
荒らしになるだけなので、この辺で

316:デフォルトの名無しさん
18/09/21 00:13:59.10 m8DL5ZJ4.net
>>291
掌田津耶乃
Python Django 超入門、2018
Node.js超入門、2017
Rails は、すべての言語のフレームワークの基礎になっているから、
無料のRails チュートリアルをやるのが定番
本当は、シンプルサーバー・Sinatra などで、フルスクラッチで書いていくと、
フレームワークを自作するのと同じになるから、よくわかる

317:デフォルトの名無しさん
18/09/21 07:37:02.86 PZuz7ukr.net
>>291ですが無難にrailsにすることにしました
色々相談に乗ってもらってありがとうございました

318:デフォルトの名無しさん
18/09/21 07:47:52.29 IzrcU96S.net
それがよい

319:デフォルトの名無しさん
18/09/21 08:34:45.57 OMTVor1h.net
>>299
念の為言っとくが295はpythonスレでruby宣伝を何度注意されても辞めないム版で有名なrubyガイジだからな

320:デフォルトの名無しさん
18/09/22 13:39:42.64 xOVRbYWf.net
>>298
書き込みと売り上げが連動してるのか
宣伝乙

321:デフォルトの名無しさん
18/09/24 02:48:42.15 6gosj3pF.net
tkinter学んでいるプログラム初心者です。
入力欄に文字を書いて、ボタンを押すと入力した文字が入ったメッセージボックスが出てくるというプログラムを作っています。
下記プログラムにて下から4行目のlambda式はどういった意味を持つのでしょうか?確かにlambdaの記述を省くとうまく動作しないのですが、なぜそうなるのか分からなくて・・・教えてください。
import tkinter as tk
import tkinter.messagebox as tkm
root = tk.Tk()
root.title("messagebox use")
root.geometry("400x300")
#メッセージボックス生成
def showMassage(text):
tkm.showinfo("info",text)
static1 = tk.Label(text="input space")
static1.pack()
#Entry 記述
entry1 = tk.Entry(width=50)
entry1.insert(tk.END,"言葉を入れてください")
entry1.pack()
#button 設置
button1 = tk.Button(text="push",width=50,command=lambda:showMassage(entry1.get()))
button1.pack()
root.mainloop()

322:デフォルトの名無しさん
18/09/24 08:23:14.19 hrySGkvz.net
>>298
掌田さんの本同じシリーズのNode.jsは読んだが
取っつきやすさはいいものの実用性は低いよな
あと付録のダウンロードサンプルが酷い

323:デフォルトの名無しさん
18/09/24 08:52:45.17 WK7dhq80.net
>>303
多分だけどlambda使わないと
ボタンが作られた時点で関数が実行されて
メッセージボックスが開いてしまうんじゃないかな

324:デフォルトの名無しさん
18/09/24 13:07:01.64 6gosj3pF.net
>>305
確かに使わない場合はそのような挙動になりました。

325:デフォルトの名無しさん
18/09/24 17:20:23.86 WK7dhq80.net
lambdaの部分を普通の関数として書き換えると
def func():
def showMassage():
tkm.showinfo("info",entry1.get())
return func
これってコールバック関数といわれていて内側の関数は
イベントが発生した時(ボタンが押された時)しか実行されなくなる
command=showMassage(entry1.get())
だと常にcommandにshowMassage(entry1.get())の値が
入ったままの状態になってしまう
コールバック関数を詳しく説明できる能力がないです、ごめんなさい

326:デフォルトの名無しさん
18/09/24 17:30:21.36 Kttr1loZ.net
decorator

327:デフォルトの名無しさん
18/09/24 17:37:31.00 y9vcPQXH.net
クロージャーで苦労じゃー

328:デフォルトの名無しさん
18/09/24 18:41:43.61 otYBczLg.net
みんなのpython終わったばかりの初心者ですが画像認証はオライリーの本でいいですかね?

329:デフォルトの名無しさん
18/09/24 18:53:58.73 QjVDfSuK.net
>>310
マルチポストする屑カスはしね

330:デフォルトの名無しさん
18/09/24 19:20:04.62 otYBczLg.net
>>311
聞いただけなのに(´・ω・`)

331:デフォルトの名無しさん
18/09/24 20:01:59.08 y9vcPQXH.net
>>310
画像認証はオライリーの本
これってどういう意味?

332:デフォルトの名無しさん
18/09/24 20:07:48.74 QjVDfSuK.net
>>313
コピペにレスすんなし
スレリンク(tech板:685番)

333:デフォルトの名無しさん
18/09/24 20:12:59.31 y9vcPQXH.net
>>314
マルチポストが気に入らんのならスルーしてりゃあいいじゃない
いちいちウザイよ

334:デフォルトの名無しさん
18/09/24 20:32:11.67 QjVDfSuK.net
( ゚д゚) 、ペッ

335:デフォルトの名無しさん
18/09/24 20:38:00.99 y9vcPQXH.net
>>316
URLリンク(i.imgur.com)

336:デフォルトの名無しさん
18/09/24 21:32:02.69 qyE/3qBT.net
>>307
騙されそうになったが、実質自分自身を返すだけで何もしない関数じゃないかw

337:デフォルトの名無しさん
18/09/24 21:50:36.77 cIWp1XlU.net
>>303
>button1 = tk.Button(text="push",width=50,command=lambda:showMassage(entry1.get()))
そのボタンを押したら、その関数・ラムダが呼ばれるだけ。
ボタンを押したときに呼ばれる、コールバック関数を指定している

338:デフォルトの名無しさん
18/09/24 22:24:49.58 y9vcPQXH.net
a = lambda x : x +


339: 3 print(a(4)) def hello(x):   def world(y):     return x * y   return world b = hello(2) print(b(9)) c = hello(3) print(c(10)) def hello(x):   return lambda y: x * y b = hello(2) print(b(9)) c = hello(3) print(c(10))



340:デフォルトの名無しさん
18/09/24 23:48:46.66 prONdPba.net
y未定義なのに、なにしてエラーにならんの?

341:デフォルトの名無しさん
18/09/25 00:41:04.42 5k+bdXu1.net
>>307
いや、でもなんかすごく納得できました!ありがとうございます!

342:デフォルトの名無しさん
18/09/25 00:43:35.28 5k+bdXu1.net
>>319
もありがとうございました。コールバック関数ググってみます。

343:デフォルトの名無しさん
18/09/25 09:26:57.75 iE/DG1HY.net
すいません。初心者ですがpythonインストールしたのはいいんですが何も始まらないんです。プログラムを書き込むためのウインドウはどこから開けるんでしょうか?

344:デフォルトの名無しさん
18/09/25 09:32:43.28 BC4c7eXL.net
Rubyガイジ出番だ

345:デフォルトの名無しさん
18/09/25 11:28:20.97 l358aERP.net
>>285
Juliaでやりましょう。

346:デフォルトの名無しさん
18/09/25 11:35:40.14 l358aERP.net
>>324
スタートメニューのIDLEをクリックしたらいいんじゃない。

347:デフォルトの名無しさん
18/09/25 12:36:47.64 b0qq2JBy.net
>>327
成る程、WindowsからPythonを使おうとしてたのか
ウチはMacだから、ターミナルからPython3打ち込んでポチポチやってたから
出たしで躓くようなことなかったな
UIからPython使えるAppもあるけど、単にスクリプトファイルを実行させるだけだし
Windows版Jupyter noteはないのかな?
これなら、Web上でPythonのプログラミングもできるから

348:デフォルトの名無しさん
18/09/25 12:47:18.17 +eWKZg0K.net
Google Collaboratoryでいいんじゃね

349:デフォルトの名無しさん
18/09/25 12:56:01.17 iE/DG1HY.net
>>327
なるほど、Integrated DeveLopment Environmentというやつですね。スタートメニューからですか。探してみます。
ちなみにarduirno等マイコンにもpythonは使えますか?

350:デフォルトの名無しさん
18/09/25 15:26:23.04 kqix37on.net
>>328
Windowsにjupyter notebookを入れてHello,Worldするまでのメモ
URLリンク(qiita.com)

351:デフォルトの名無しさん
18/09/25 15:31:19.89 kqix37on.net
>>330
PythonのIDLEの使い方の基本
URLリンク(gammasoft.jp)

352:デフォルトの名無しさん
18/09/25 18:08:08.89 kqix37on.net
>>330
【Python】Arduinoをシリアル通信で操作
URLリンク(algorithm.joho.info)
PythonでI/O制御ができるマイコンボード 「MicroPython pyboard v1.1」
URLリンク(select.marutsu.co.jp)

353:デフォルトの名無しさん
18/09/25 19:53:56.20 nX2ocrcO.net
ありがとうございます。まだアルファベットを表記させるだけしか出来ませんがいずれはモーター等動かしてみるつもりです。

354:デフォルトの名無しさん
18/09/25 22:31:30.68 3QVoU2wO.net
最近の月刊I/O見てないけど
pyboard特集やってそう
ラズベリーで工作しよう!な連載載ってたから
I/O誌では早い時期からPython講座連載してて
掲載プログラムリストといえば
Pythonが使われている
昔は、BASICやマシン語だったのに

355:デフォルトの名無しさん
18/09/26 14:56:26.05 gW7INjNq.net
「算数&ラズパイから始めるディープラーニング」というのもあるな。

356:デフォルトの名無しさん
18/09/26 18:57:46.78 cGc5yci5.net
pythonの2.7使ってるんだけど文字化けとかエンコとか面倒くさくない?
簡単なスクリプト書くだけなんでwinのコンソールから文字列受け取ってそれに合わせて多少処理変えてどうのこうのーてやるだけなんだけど
ideではエラー出んのにpyinstallerとかpy2exe使って配布する前に最後テストしたら文字化け頻発とかですごい混乱する

357:デフォルトの名無しさん
18/09/26 19:03:39.24 DFsxHyBv.net
>>337
めんどくさいから
今からやるなら3系にしんさい

358:デフォルトの名無しさん
18/09/26 19:31:13.27 cGc5yci5.net
>>338
仕事で使ってるsiem製品でスクリプト書いたりとかもするんだけど公式サポートしてるのが2.7らしく慣れるためにもとりあえず何でもかんでも2.7使ってる
けどやっぱり普段は3にして一部要求された時に2.7のが良いんかね

359:デフォルトの名無しさん
18/09/26 20:56:35.83 DFsxHyBv.net
>>339
なんか事情があるなら仕方ない
2.7の文字問題に慣れたまへ

360:デフォルトの名無しさん
18/09/26 20:57:51.04 DFsxHyBv.net
そして
2.7が時代遅れとなった際に
3なり4なりを学び直すのである・・・

361:デフォルトの名無しさん
18/09/26 21:57:57.79 SlOVL1Du.net
学び直すというほど変わらんけどな2と3

362:デフォルトの名無しさん
18/09/26 22:13:37.90 WQTU7aa+.net
>winのコンソールから文字列受け取って
2の時に比べたら全然マシだけど
他と連携したり、他から.py実行したりすると
3でも相変わらずエラー起きない?
まあ、対処法は見つけたので困ることはないけど
あ、ちなみにmacです

363:デフォルトの名無しさん
18/09/26 23:12:45.83 +un+mAjX.net
マカーならやむを得まい

364:デフォルトの名無しさん
18/09/27 00:27:16.96 Ft8D7cEG.net
頭悪いからな

365:デフォルトの名無しさん
18/09/27 00:41:45.56 3K4WTrnL.net
>>337
2.7なら、標準の__future__パッケージの各モジュールをインポートすれば、
わざわざ'u'ふらずに済むし、3.*との違いはそれほど大きくない

366:デフォルトの名無しさん
18/09/27 05:43:50.57 i5i/991d.net
>>341
python2のサポート2020年で来れるんだけど。

367:デフォルトの名無しさん
18/09/27 07:07:01.03 L3kO3oQ5.net
>>347
もちつけ

368:デフォルトの名無しさん
18/09/27 11:47:37.94 +X2PETpr.net
>>337
馬鹿には無理

369:デフォルトの名無しさん
18/09/29 13:56:00.42 IuTgmxg/.net
pythonなんか頭悪いのしかつかってない
しかもただのスクリプトのくせに普通にそのまま動かないとか
どんだけ役立たずスクリプトやねんと

370:デフォルトの名無しさん
18/09/29 15:44:00.08 5u9meNsM.net
こっちも荒らされてるのか

371:デフォルトの名無しさん
18/09/29 16:03:41.88 UwfF5QN4.net
ここは初心者スレなんで、pythonを普通にそのまま動かせない半角みたいな初心者でも暖かく見守ってあげないと。

372:デフォルトの名無しさん
18/09/29 19:05:41.87 /uKoNQUv.net
python絡みで嫌なことでもあったのかな

373:デフォルトの名無しさん
18/09/30 15:37:29.45 A7oy0eHN.net
URLリンク(www.daxx.com)
アメリカで需要と平均給与トップとかにわかには信じ難いんだが

374:デフォルトの名無しさん
18/09/30 16:39:57.82 eyIH13tv.net
にわかならしょうがないね

375:デフォルトの名無しさん
18/10/01 15:27:24.26 2uLYuzSw.net
誰か、pythonista3 の 活用本発行して!!
絶対に売れる。

376:デフォルトの名無しさん
18/10/01 16:46:09.34 2dwOGw6s.net
句読点の荒らし率は高いからこれに反応するレスがつくかつかないかで自演を判断できる

377:デフォルトの名無しさん
18/10/01 21:46:25.11 tVJz3rsp.net
Python始めたいんやけど、何からやればいいんや
今かけるのはJavaとシェルスクリプトを業務システムレベルや

378:デフォルトの名無しさん
18/10/01 21:58:34.22 ooXTjlBW.net
なにはなくともハローワールド
その次がファイル入出力
その次はたぶんそれだとテキスト置換の練習とか?
今から始めるなら3.x系にしておけ

379:デフォルトの名無しさん
18/10/01 22:01:27.51 YZMrVKUg.net
Javaとシェルスクリプトを業務システムレベルやったらpythonなんて楽勝やろ

380:デフォルトの名無しさん
18/10/01 22:03:49.06 tPw9Kpxi.net
>>358
他の言語で(自分で)書いたスクリプトをPythonでフルスクラッチするというのは、
一方をよく理解しているということも相まって、違いも比較できて結構勉強になるよ。
自分の場合2.xの頃から始めたので、結果として、3.xも同様にやる羽目になったけど。

381:デフォルトの名無しさん
18/10/01 22:36:46.55 Mau1OsTK.net
paizaでスキルチェックやってみたら

382:デフォルトの名無しさん
18/10/02 02:56:27.70 /QfTYNRi.net
たのしいRuby 第5版、2016
みんなのPython 第4版、2017
この2冊は双子。この順に読む。
先に、たのしいをみっちり読めば、みんなのもスラスラ読め�


383:� サイトのprogate でもよい



384:デフォルトの名無しさん
18/10/02 06:20:21.08 XHPfCFYq.net
パイキチ、またPythonスレを荒らしだしたのか
マッチポンプは今時流行らないってば

385:デフォルトの名無しさん
18/10/03 12:55:45.41 ULIaqVnE.net
保守上げ

386:デフォルトの名無しさん
18/10/03 21:59:47.02 Tma5IQla.net
不思議なんだけど、どの言語を贔屓したいかは理解できるが他の言語を貶してなにか得することあるの?
よくありがちなもので、iPhone貶してandroid上げするのは何となくだけど、まあ売り上げに貢献するかもって思うけど、プログラミング言語でそれやって誰が得するんだろう
プロジェクトマネージャーが雑多なスクリプト言語を使われて管理が大変、だから制限させようとした結果ダークサイドに墜ちて、ある言語を貶すようになってしまった
こんな理由でもない限り対立する意味が分からない
単純にダークサイドに堕ちて、非建設的な争いを好む人が多いってことなの?

387:デフォルトの名無しさん
18/10/03 22:02:02.48 NshUGL/I.net
>>366
まぁ現場で他人が書いた糞コードを見て苦労して言語自体にヘイトを溜めるっていうシチュエーションは少なくはないと思う

388:デフォルトの名無しさん
18/10/03 22:22:52.23 BYNnNKG/.net
「くだすれPython」を「くたばれPython」と見間違えてるんだろうな

389:デフォルトの名無しさん
18/10/03 22:26:57.33 b6hWRg0Q.net
アイデンティティを自分以外の事物や集団に委譲している奴はそうなる
その事物が傷つけられることはアイデンティティの危機となり、
事物が持ち上げられることはアイデンティティの強化になる
帰属意識が度を越したような奴だ
そんなに珍しくもない

390:デフォルトの名無しさん
18/10/03 23:54:17.11 H62SNGUL.net
キモすれPython

391:デフォルトの名無しさん
18/10/04 07:12:26.90 sNcNJ12C.net
Pythonが好きだからこそ他言語を挙げて叩くというマッチポンプをやりたいんだろうな
正直そんな理由でPythonスレを荒らすなよと

392:デフォルトの名無しさん
18/10/04 09:39:44.00 uDQ1dvui.net
プログラマは知識マウントしたがる奴が多すぎて、初心者を鬱に追い込む件

393:デフォルトの名無しさん
18/10/04 10:25:17.49 FXVBuQxV.net
VB/VBAとPHPは貶されて当然

394:デフォルトの名無しさん
18/10/04 10:57:37.99 vhCji18k.net
>>373
貶されて当然とゆう事は断じてない
間違いなくペチパー、ジャバパー、そしておまえ、は現代の三大バカやけどw

395:デフォルトの名無しさん
18/10/04 13:06:43.22 OaKCCsBZ.net
普通の荒らしかリアルでゴミみたいな扱いをされて俺の使ってる言語は凄くてそれを使える俺は偉い!他の言語使ってるようなやつはクソ野郎!ていう思考でも持っているのでは?

396:デフォルトの名無しさん
18/10/04 13:18:44.19 b8j5ZQ1w.net
どっちみちこのご時世でマッチポンプに引っかかる奴はいないだろ

397:デフォルトの名無しさん
18/10/04 15:24:58.18 7tiJnAAs.net
>>371
それはない。
pythonスレ以外でも全力でruby上げしてるガイジだぞ?

398:デフォルトの名無しさん
18/10/04 19:16:10.73 VCC0vX9L.net
if文が複数できない・・・
x = 2
if x == 2:
print("数字は 2.")
if x % 2 == 0:
print("数字は偶数.")
if x % 2 != 0:
print("数字は奇数.")
これを入力したいのですが4行目でエンター押して毎回エラーになります・・・なぜ…?

399:デフォルトの名無しさん
18/10/04 19:26:51.44 uDQ1dvui.net
print文�


400:フインデントは?



401:デフォルトの名無しさん
18/10/04 19:28:37.16 VCC0vX9L.net
あっすみません インデントはしっかりやってました
正確にはこうですね 失礼しました
x = 2
if x == 2:
    print("数字は 2.")
if x % 2 == 0:
    print("数字は偶数.")
if x % 2 != 0:
    print("数字は奇数.")

402:デフォルトの名無しさん
18/10/04 19:32:25.59 VCC0vX9L.net
ただ�


403:アれでもエラーになるという・・・ ええ・・・if文ホントは複数無理なんじゃね・・・? って心持です 参考書のままにやってるのに・・・ ちなみにバージョンは最新だと思います 3.7(32-bit)



404:デフォルトの名無しさん
18/10/04 20:15:29.41 wVc7LVoj.net
ふーん
URLリンク(ideone.com)

405:デフォルトの名無しさん
18/10/04 20:48:40.74 gfYLoY1b.net
>>381
2行目以降のifをelifに置き換える、が答えになると思う
一応そのままゴリ押しするなら一文ごとにelse:で閉じるでもできなくはないと思うが

406:デフォルトの名無しさん
18/10/04 20:52:07.59 P6ujSYbe.net
なんで? 今のままでエラーなんか起きないだろ?

407:デフォルトの名無しさん
18/10/04 20:58:51.04 S7+ANpdX.net
どんなエラー?
インデントにタブとスペースが混ざってたりしない?

408:デフォルトの名無しさん
18/10/04 20:59:28.68 zeP0iUEY.net
コンソールでやらないで.pyファイル作れ

409:デフォルトの名無しさん
18/10/04 21:11:59.01 lQWMlWLo.net
これは何とも面妖な

410:デフォルトの名無しさん
18/10/04 21:43:29.94 DS3BxQCZ.net
エラーメッセージをエイリアン語か何かと思って無視する癖を止めたら、超初心者は卒業できると思うよ。
兎に角エラーメッセージを晒してね

411:デフォルトの名無しさん
18/10/04 22:14:58.83 KoEltKNu.net
>>381
対話モードでやってるからエラーになるんだろうな
4行目を入力する前に空行を入力して
if文が終わったことを明示しなくてはならないかと
6行目のところも同じことがいえる

412:デフォルトの名無しさん
18/10/05 01:03:06.71 /hQuS5mo.net
へえ、そうなんだ、知らなかったよ

413:デフォルトの名無しさん
18/10/05 02:36:56.42 cxTW4oac.net
おまいら親切すぎる
なつかれたら面倒

414:デフォルトの名無しさん
18/10/05 06:17:27.57 euHA0F3o.net
>>389
ありがとうございます 納得しました
次はエラーメッセージも晒します
>>391
人になつかれたことなさそうな人がなんか言ってて笑える

415:デフォルトの名無しさん
18/10/05 07:00:21.00 37p1YF83.net
分からん。。。
もう一度、プログラムを見つめ直してみる。
ポジション取るんだけど、バックテストで資金が上昇してもロットは一緒。
>>392


416:デフォルトの名無しさん
18/10/05 07:00:40.10 37p1YF83.net
誤爆した。。。

417:デフォルトの名無しさん
18/10/05 10:49:11.38 kmGDPqXy.net
エラーメッセージそのままググるだけでもだいぶ違う

418:デフォルトの名無しさん
18/10/05 11:22:51.52 vpbu8eze.net
なんで、コンソールなんか使うのか?
Ruby, Python でも、VSCode を使え!
拡張機能のCode Runner で、何も考えずとも、右クリックメニューから実行できるわい!

419:デフォルトの名無しさん
18/10/05 11:59:37.83 zGlW4kB1.net
クリックとかしたくねえからだよ頭悪いな

420:デフォルトの名無しさん
18/10/05 15:22:39.94 xGDGeoHe.net
関数呼び出しの構文について教えて欲しいんだけどさ
AAA(BBB: CCC)とAAA(BBB=CCC)って一緒なの?

421:デフォルトの名無しさん
18/10/05 15:27:22.70 Ohnhdvdr.net
AAA(**{BBB: CCC})とAAA(BBB=CCC)
はホボ一緒だけど
関数の定義のされ方によっては違う

422:遊園地
18/10/05 15:40:53.24 oe8MXe/3.net
F5な。

423:デフォルトの名無しさん
18/10/06 17:47:15.35 ClYVvTDI.net
djangoでゲーム作ってる方っています?
作ってるなら、どんな感じのゲームを作ってるか知りたいです
djangoでのwebアプリ制作の練習も兼ねて、ログインとかデータ保存のできるブラウザゲームを作ろうと思ってるところなんですが、個人でフレームワークを使っての開発は手�


424:ノ余るかな、と気になって… JavaScriptの方が管理しやすいかなぁ



425:デフォルトの名無しさん
18/10/06 17:57:08.71 e52HQVrn.net
どうみてもDjangoの方が楽

426:デフォルトの名無しさん
18/10/06 18:03:47.60 WCVR4P9P.net
>>402
Dangoでゲーム?
フロントエンドどうすんの?
JS必須だろ

427:デフォルトの名無しさん
18/10/06 18:22:42.90 ClYVvTDI.net
ほんとだ、結局JavaScriptが必要ですね
それに、誰かにやってもらう場合だと、サーバー用意するか、相手の方にもPythonいれてもらわないとダメだ…

428:デフォルトの名無しさん
18/10/07 08:57:44.35 uCAn2+3z.net
言語より環境の方に縛られるという事だな

429:デフォルトの名無しさん
18/10/07 12:13:18.81 Q039ezIc.net
既に環境を構築してあるDockerを使え
便利だぞ

430:デフォルトの名無しさん
18/10/08 14:28:05.12 ofuYlJd2.net
webapiで取得したjsonのログデータを取得したあとcsvに変換するプログラム作ってます
pandas使ってappendで1行毎dataflameを追加していく方式でやっているんですが処理時間がかなり掛かってしまいます
jsonをcsvに変換する良い方法他にないですかね?
jsonはかなり深くネストされておりfor文使って特定のキーの場合のみdf追加としているので処理が重そうです
csvは10万行近くになります

431:デフォルトの名無しさん
18/10/08 15:11:28.99 +5qyKWRv.net
元のjsonファイルと出力したいcsvのイメージ貼ってみ

432:デフォルトの名無しさん
18/10/08 16:49:00.47 QZm1evdb.net
jsonはこんな感じにvisitの中身全部が欲しいです URLリンク(jsoneditoronline.org)
csvはこんな感じURLリンク(dotup.org)
keyがカラムで値がフィールド、actionsの中のthreatsが配列になってるのでその部分は複数行に分けて配列数分欲しいです

433:デフォルトの名無しさん
18/10/08 19:20:19.69 0S7LCRH0.net
1レコードあたりの行数に目途が付くなら
単にテキストファイルをシーケンシャルに読んで
レコード毎にループして正規表現とかで処理するか
丸ごと一個のjsonを読むんじゃなくて
json の visits [] の中身だけに適用して
やっぱりレコード毎にループで処理

434:デフォルトの名無しさん
18/10/09 11:08:24.97 ut46KIbF.net
ちょっと何言ってるか分からないです、もう少しかみ砕いてほすぃ

435:デフォルトの名無しさん
18/10/09 12:09:20.78 lquF7TGT.net
>>411
全体的にpandasは使わずに
正規表現などを使った自前の処理でカンマ区切りのテキストを生成して
テキストファイルに追記モードで行を追加していけば処理が軽くなるんじゃね
ということ
あと、countryとcountryCodeが常に同じペアになるなら長い方を削除するとか
"os": "Windows"を"win"とか"w"に変換するとかで書き込み量を減らせば
多少早くなるかも

436:デフォルトの名無しさん
18/10/09 17:28:44.16 c0UbTvkE.net
jsonのobjectって結局馬鹿デカいリストだから
全部pandasに食わせるのは非効率

437:デフォルトの名無しさん
18/10/09 19:09:14.17 QlHcI7ga.net
>>410
>>412
ありがとうございます
目処は付かないですね 25000件のjsonを中の配列単位で分けていくと10万行になったて感じですので…
pandasは勝手に軽いものと思ってたんですが


438:そうでは無いのですね もう少し自力で試しつつ、無理そうであれば別の方法探してみます 回答ありがとうございました



439:デフォルトの名無しさん
18/10/10 01:28:49.68 cxHjn/W/.net
25000件で10万レコードって意味なら
1レコードあたりたったの4行だぞ
大したことないじゃん

440:デフォルトの名無しさん
18/10/10 01:50:02.45 q9nqGoRh.net
恥ずかしい

441:デフォルトの名無しさん
18/10/10 07:27:32.29 sjNy7la0.net
anaconda環境でnotepadでプログラム書くのできますか?
Jupiter使ったほうが良いでしょうか?

442:デフォルトの名無しさん
18/10/10 07:48:52.41 qywSzTWT.net
メモ帳は、プログラミングに使ったらダメ!
BOM付きUTF-8 になるから、バグる。
BOMなしUTF-8(UTF-8N)にできるエディタを使うべき!
今は、すべての言語で、VSCode を使う

443:デフォルトの名無しさん
18/10/10 08:25:31.03 sQpJ1MsF.net
jupyterな

444:デフォルトの名無しさん
18/10/11 05:13:12.70 MfMAF/GN.net
>>418
ありがとうございます。PCが古いので軽いの探します。

445:デフォルトの名無しさん
18/10/11 06:05:36.88 4dmempzq.net
>>420
メモ帳のような気楽に使える軽いWindows用エディタでTeraPadがあるよ
BOMなしUTF-8にも対応してて、設定することでデフォルトで使う文字コードや改行文字などを指定できる
いろいろな言語の予約語の強調表示にも対応してる
TeraPad
URLリンク(www.vector.co.jp)

446:デフォルトの名無しさん
18/10/11 08:09:45.65 MfMAF/GN.net
>>418
すいません、ありがとうございます。
それとパスが通ってなくコマンドプロンプトからpythonと入れても起動できなくて、anaconda3\pythonだと起動するのですが。
環境変数にC:\Anaconda3;C:\Anaconda3\Scripts;C:\Anaconda3\Library\bin;など色々試してもダメでした。
英語のサイトとかを見てもできなくて、なんか根本的な所が足りないと思います。
なにか根本から勉強できるサイトはないでしょうか?英語でもなんとか頑張ります。

447:デフォルトの名無しさん
18/10/11 08:27:36.65 55KoDwWG.net
>>422
ログインし直す

448:デフォルトの名無しさん
18/10/11 09:45:22.82 /KTbB4eS.net
Python と Javascript ではじめるデータビジュアライゼーションの50ページです
URLリンク(ideone.com)
28行目でエラーになってしまいます。
Traceback (most recent call last):
File "./hoge.py", line 28, in <module>
cols.sort()
AttributeError: 'dict_keys' object has no attribute 'sort'
何がいけないんでしょうか?

449:デフォルトの名無しさん
18/10/11 11:12:50.15 dGtKIiaR.net
'dict_keys' オブジェクトは 'sort' 属性をもっていない
sortメソッドはおそらくリストオブジェクトのメソッドだろうから
dict_keysオブジェクトをlistオブジェクトにしたら動くと思うよ

450:デフォルトの名無しさん
18/10/11 11:17:30.10 6B3tPTW8.net
>>420
MeryやgPadがおすすめ
TeraPadはUTF-8で読み書きはできるけどShiftJISに無い文字は扱えないのでおすすめしない

451:デフォルトの名無しさん
18/10/11 11:25:22.78 /KTbB4eS.net
>>425
どうもありがとうございます
list()で括ったらうまくいきました
3年くらい前の本なんですが、Python2だとこれでも動いたのかそれとも誤記なのかどっちでしょうか?
次のページで、printする際に最後にコンマを付けると改行されないと書いてあったけれど、python3ではコンマ有る無しで表示結果は変わりませんでした。
print(hoge), # こんな感じで

452:デフォルトの名無しさん
18/10/11 11:31:34.26 3Bdkvxy9.net
漏れは、TeraPad は、メモ書きに使っている。
アプリのサイズが小さい
ただし、一部の文字が使えない。
中国の地名の「深圳」みたいな文字が「深?」になる

453:デフォルトの名無しさん
18/10/11 11:35:19.88 dGtKIiaR.net
>>427
詳しくはpython2とpython3の違いでググってね

454:デフォルトの名無しさん
18/10/11 11:43:56.19 3Bdkvxy9.net
>>422
例えば、コマンドプロンプトで、where notepad
と入力すると以下のように、メモ帳の実行ファイルのパスが表示される
C:\Windows\System32\notepad.exe
C:\Windows\notepad.exe
同様に、where p


455:ython と入力すれば? これで正しく表示されないのなら、 python.exe があるフォルダを、ユーザー環境変数PATH に追加する 環境変数PATHをいじるという事は、全システムの挙動を変える、危険な行為だから、 その知識がないと、開発なんてできない!



456:デフォルトの名無しさん
18/10/11 12:31:23.10 3et536X6.net
>>427
3年前でpython2なのか、スゲー本だな
訳注ぐらい入れれば良いのにね
python3だとprint(hoge end='')

457:デフォルトの名無しさん
18/10/11 12:35:06.81 3et536X6.net
いけねカンマ抜けた
print(hoge, end='')

458:デフォルトの名無しさん
18/10/11 13:10:38.79 bLRRmr2D.net
>>429
>>431
>>432
どうもありがとうございます。
2と3の違いググりました。
listで括らない方法はPython2でのやり方、printの最後のコンマもPython2でのやり方なんですね
2016年7月に原書が出て2017年8月に日本語版が出た本です。
今見たらprintの訳注が載ってたんですが、コンマはPython2でのやり方で3では使えないと言った事は書かれてありませんでした。
print(hoge, sep='')だとよりPythonらしい書き方だという風に書いてありました。

459:デフォルトの名無しさん
18/10/11 18:42:11.43 MfMAF/GN.net
>>430
ありがとうございます。
ずっとやってましたが、色々と調べててもわかりそうにありません。
anaconda3\pythonで動くのに、whereでpythonは出てこず、Path設定してもダメです。
ほんと基本がわかってないと思うので、pathにチェック入れてanacondaを再インストールしてみようと思います。
自分でいじるのは、知識をどうにかしてつけてからにします。

460:デフォルトの名無しさん
18/10/11 20:38:12.53 OPK+KI2v.net
>>434
Pythonで何をしたい?機械学習関係ならGoogle Colabがお手軽

461:デフォルトの名無しさん
18/10/11 23:48:03.56 gjrJHmO+.net
Anacondaのデフォインストール先C:\Users\<ユーザー名>\Anaconda3じゃん
C:\Anaconda3にパス通しても動かなくて当たり前
コマンドプロンプトからやらずにスタートメニューのAnaconda Promptから開けばパス通ったコマンドプロンプトが開く

462:デフォルトの名無しさん
18/10/12 05:14:13.33 sf+PB/Vk.net
>>435
将来的に検索もできる対話型AIを作りたいです。
>>436
その当たり前がわからなくて、色々サイトみてて当たり前にできてるようなので、問題解決しないとダメなのかなって思ってしまいます。
パスが通ったとか、コマンドプロンプトとanaconda pronptがどういったものかもわからない状態です。
一つ一つがどういったもので、どう動いてるとかから勉強したいと思います。

463:デフォルトの名無しさん
18/10/12 09:45:35.48 C1pVYns8.net
Linux の基本コマンドとか、環境変数PATH など、
OS の基礎を知らない人は、開発者になれない
情報処理資格とか、コンピューターリテラシーが必要
仮想環境では、activate を実行したときだけ、
環境変数PATH に追加するようなプログラムもある
activate する前には、python というコマンドは実行できないが、
activate した後には、python というコマンドが実行できる

464:デフォルトの名無しさん
18/10/12 14:37:53.89 46Wm2YVF.net
>情報処理資格
Linux とは関係ない
開発に必要ということは同意

465:デフォルトの名無しさん
18/10/13 20:39:27.21 i2AAnytP.net
EXCELを操作できるライブラリopenpyxl(ver2.3.0-1)なんですが行の挿入でエラーになります。
import openpyxl as py
wb = py.load_workbook('aa.xlsx')
ws = wb.active
ws['A1'] = 'NURUPO'
ws.insert_rows (1)
wb.save('aa.xlsx')
insert_rowsじゅないの?

466:デフォルトの名無しさん
18/10/13 21:34:22.63 f9khLXsZ.net
>>440
ちょっとググったら2.5.0から実装されたみたいよ
URLリンク(qiita.com)

467:デフォルトの名無しさん
18/10/13 22:05:44.95 i2AAnytP.net
サンクス
バージョンアップに挑戦してみる

468:デフォルトの名無しさん
18/10/14 00:43:28.48 7a55cFNG.net
re.searchでグループ化したものを取り出す時に
?P<name>で出来たのですが
re.subと同様に通常の正規表現の「\1」のように
書く書き方は出来ないですか? よろしくお願いします。

469:デフォルトの名無しさん
18/10/14 02:11:30.62 bkAbhEU5.net
>443
> m = re.search("b(.)", "abcdefg")
> print(m.group(1))
c

470:デフォルトの名無しさん
18/10/14 02:22:51.26 7a55cFNG.net
>>444
ありがとうございます!

471:デフォルトの名無しさん
18/10/14 06:13:05.25 Ov+YlZxq.net
アナコンダインストールすればIDEいらない?

472:デフォルトの名無しさん
18/10/14 16:58:59.85 G4e8iFcg.net
Py_INCREF()を呼ぶタイミングを教えてください

473:デフォルトの名無しさん
18/10/14 19:12:00.22 NuEYON6j.net
下のようなコードを書いたとして、
mainの中でfunc1が呼ばれない場合でもhogeはimportされますか?
func1はテスト用に置いてるだけで普段は使わない関数なので普段は余計なhogeをインポートされたくないのですがやはりコメントアウトしなきゃですかね?
def func1():
import hoge
...
def main():
...

474:デフォルトの名無しさん
18/10/14 19:35:54.62 FWr9wKhu.net
>mainの中でfunc1が呼ばれない場合でもhogeはimportされますか?
されないよ ためしてみそ

475:デフォルトの名無しさん
18/10/14 20:15:26.78 O0tCb1jZ.net
ありがとうございます!
確かめたくても方法が分からなかったですので。助かりました

476:デフォルトの名無しさん
18/10/14 21:15:09.25 jLw0xcfm.net
>>449
どうやったら試せますか?

477:デフォルトの名無しさん
18/10/14 21:16:06.39 WLfX4fFS.net
キャッシュで判る

478:デフォルトの名無しさん
18/10/14 21:44:29.12 FWr9wKhu.net
>>451
>>448の状態で、importしてないと呼び出せない機能をmainに書き込む
たとえば
def func1():
import re
re.compile('hoge')←これはfunc1をよんでくればエラーしない
def main():
re.compile('hoge')
↑func1をよんでないのにこれ書いたらエラーする

479:デフォルトの名無しさん
18/10/14 21:45:08.68 SE0u9ZQa.net
日本語で

480:デフォルトの名無しさん
18/10/14 21:46:06.36 WLfX4fFS.net
その理屈だと一回呼んで戻ってきたら使えることになるな

481:デフォルトの名無しさん
18/10/14 21:48:40.36 FWr9wKhu.net
>>455
あー
そのはっそうは なかったw
450のかき方(インデントは正しくできているものとしてクレン)したら、
func1の中でしかreのimportは効いてナインかな

482:デフォルトの名無しさん
18/10/14 21:53:34.20 FWr9wKhu.net
ちょっとちゃんと実験してみるは... 三 ( ´ⅴ`)

483:デフォルトの名無しさん
18/10/14 21:59:28.27 FWr9wKhu.net
( ・∀・)ノフォラァヨ!!---===≡≡≡ URLリンク(dpaste.com) :main内でエラーするかきかた

484:デフォルトの名無しさん
18/10/14 22:03:32.75 FWr9wKhu.net
つづき
URLリンク(dpaste.com) :やっぱりmain内でえらーしますた (この はっそうは なかった)
けつろん
 >453の注釈はまちがいまくりだな!ゲヒャ(∀・∀)
 >>455の疑問はどんぴしゃごもっともだった

485:デフォルトの名無しさん
18/10/14 22:19:11.86 FWr9wKhu.net
けつろん
> 450のかき方(インデントは正しくできているものとしてクレン)したら、
func1の中でしか
reのimportは効いてナイン

486:デフォルトの名無しさん
18/10/14 22:21:07.83 OWtIHbk2.net
importされたモジュールはimport 文が表れるスコープのローカル名前空間で名前を定義される
URLリンク(docs.python.org)

487:デフォルトの名無しさん
18/10/14 22:52:00.55 FWr9wKhu.net
>>461
ありがとーん

488:デフォルトの名無しさん
18/10/14 22:53:21.18 O0tCb1jZ.net
結局スコープ内でしか有効じゃないから確かめる方法は無いってこと?

489:デフォルトの名無しさん
18/10/14 22:53:49.91 jLw0xcfm.net
たいへん勉強になりますた。

490:デフォルトの名無しさん
18/10/15 04:25:17.24 0W4mw5Ny.net
>>463
>>452
キャッシュで判る
実行前にキャッシュを消して
実行後にキャッシュが出来ているかを見れば
読み込まれたか無視してるかは判る

491:デフォルトの名無しさん
18/10/15 08:59:02.58 pyA/8yHB.net
キャッシュはどうやって見れますか?
mainでキャッシュ見れる関数を書くのですか?

492:デフォルトの名無しさん
18/10/15 09:32:04.81 vNVpiBIf.net
マジでアホの考えなんとやらだ
importするとクラッシュするモジュールを用意して
func1からimportしてみりゃーいいだろ
クラッシュすればimportされてるし、しないならimportされていない

493:デフォルトの名無しさん
18/10/15 09:56:16.94 XOcEM3KA.net
importするとクラッシュするモジュールが発見出来ませんでした・・
よければ名前を教えて貰えますか?pipで入れられたらなおありがたいです。

494:デフォルトの名無しさん
18/10/15 09:57:31.08 vNVpiBIf.net
いや、自分で書けばいいだろ
馬鹿が

495:デフォルトの名無しさん
18/10/15 10:31:21.43 /DZZgAIK.net
importするmoduleを自分で書くなら
moduleの初期化時にprint('読まれたよ!')って書いて置けば桶

496:デフォルトの名無しさん
18/10/15 12:38:01.14 A4+xGAqj.net
なんなの遊園地?

497:デフォルトの名無しさん
18/10/15 16:32:59.34 13a7w8hI.net
>>470
天才現る!

498:デフォルトの名無しさん
18/10/15 18:05:35.02 5iEXqQwD.net
>>463
スコープ内で有効だから確かめられないではなくグローバル変数にすれば良いのでは
def func():
import re as _re
global re
re = _re
def main():
func() #コメントアウトするとprintでエラー
print(re)

499:デフォルトの名無しさん
18/10/15 18:19:51.97 /DZZgAIK.net
def main():
#func() #func()無関係にprintでエラー
import re as _re
print(re)

500:デフォルトの名無しさん
18/10/15 21:29:43.28 E6pr56BO.net
 私たち日本人の、日本国憲法を改正しましょう。
総ム省の、『憲法改正國民投票法』、でググって
みてください。拡散も含め、お願い致します。

501:デフォルトの名無しさん
18/10/15 21:35:11.02 E6pr56BO.net
 私たち日本人の、日本国憲法を改正しましょう。
総ム省の、『憲法改正國民投票法』、でググって
みてください。拡散も含め、お願い致します。

502:デフォルトの名無しさん
18/10/16 17:08:42.26 u7YyW5Kg.net
自作クラスのインスタンスが持ってる変数を全て、保存しておいた値に戻すようなコードを書きたいのだけれど、どうやって書けばいいかな?
ある時点の値にロールバックしたいということなのだけれど、継承していてもちゃんと動作するようにしたい
想定している処理はこんな感じ
class A:
 def rollback(self):
   全部のインスタンス変数を self.backup の値に戻す
 def make_backup(self):
   self.backup = バックアップを作成
class B(A):
 def proc(self):
   self.make_backup()
   # なんか処理
   self.rollback()
設計が悪いと感じたらなにか代替案を教えていただければ嬉しいです

503:デフォルトの名無しさん
18/10/16 18:16:27.10 YLHbxnbG.net
pickle

504:デフォルトの名無しさん
18/10/16 18:24:52.10 LVmCdvc6.net
あの、プログラム終わったら次のプログラムを起動したいのですがどうやったら開けますか?
最後にはシャットダウンしたいです。
p1.py実行
→最後の行でp2.pyを呼び出す
→p2.py実行
...
→最後の行でpn.pyを呼び出す
→pn.py実行
→最後の行でシャットダウン
こんな感じでやりたいです。

505:デフォルトの名無しさん
18/10/16 18:28:08.45 YLHbxnbG.net
subprocess.Popen

506:デフォルトの名無しさん
18/10/16 18:32:15.10 LVmCdvc6.net
ありがとうございます、できそうです。

507:デフォルトの名無しさん
18/10/16 18:34:41.31 +Y6Wm7U2.net
パイパイを実行?

508:デフォルトの名無しさん
18/10/16 21:07:08.91 uMB0oNTu.net
>>479
それチェーンにしないとダメなの?
普通にp1.py, p2.py, ..., pn.pyを次々に呼び出して最後にシャットダウンするシェルスクリプトなり


509:バッチファイルなりを書けばいいような気もするんだが



510:デフォルトの名無しさん
18/10/17 11:21:44.01 tSH31TrF.net
>>477
グローバル変数使うんじゃだめ?

511:デフォルトの名無しさん
18/10/17 11:49:20.45 LtC7K5yP.net
ORM

512:デフォルトの名無しさん
18/10/17 12:47:48.23 tSH31TrF.net
>>477
>>484です。知ったかぶりしてすみません。グローバル変数ではなくクラス変数でした。
test.pyで
class MyClass:
  commonVALUE=0
  def __init__(self,initv):
    self.value=initv
  def p(self):
    print(f'instance value= {self.value}')
    print(f'class value= {MyClass.commonVALUE}')
  def bkup(self):
    MyClass.commonVALUE=self.value
  def bkload(self):
    self.value=MyClass.commonVALUE
としといて
>>> from test import *
>>> a=MyClass(100)
>>> b=Myclass(0)
>>> a.bkup()
>>> b.p()
instance value= 0
class value= 100
>>> b.bkload()
>>> b.p()
instance value= 100
class value= 100
この後で
>>> c=MyClass(-1)とあらたにインスタンスを作っても
>>> c.p()
instance value= -1
class value= 100
で、クラス変数は0にはならないみたい。

513:デフォルトの名無しさん
18/10/17 13:06:09.93 tSH31TrF.net
行数制限のため連投ですみません。
継承も大丈夫です。
>>> class B(MyClass):
...   def dec(self):
...    self.value-=1
>>> d=B(1)
>>> d.p()
instance value= 1
class value= 100
>>> a.bkup()
>>> d.p()
instance value= 1
class value= 100
>>> d.bkload()
>>> d.dec()
>>> d.p()
instance value= 99
class value= 100

514:デフォルトの名無しさん
18/10/17 13:31:27.53 LGIAN4QA.net
pickle

515:デフォルトの名無しさん
18/10/17 13:35:53.65 cWz6TRDk.net
>>486
それじゃクラス共通になってまうやん
インスタンス毎にバックアップデータ持てないから意図と違うと思う
>>477 で良いと思うけど、何を懸念してるのかを書くともっといい案をもらえそう

516:デフォルトの名無しさん
18/10/17 17:07:18.34 tSH31TrF.net
>>489
クラスと継承クラス共通でバックアップって意味じゃないの? そりゃスマンコってす
...
各インスタンスごとのバックアップを作って、一括でpush/popしたいなら、
リストの要素を各インスタンスをにしといて、
for i in in instance_list:
 i.backup()
とかにすればいいだけなんでねの?

517:デフォルトの名無しさん
18/10/18 10:08:35.95 0gY6dccD.net
>>490
push-popと言いながらプログラムはpush-popじゃないのはわざと?

518:デフォルトの名無しさん
18/10/18 16:41:15.03 551Ojw2f.net
def 関数(arg1,arg2):
ゴニョゴニョ

return ←これが全く理解できないんだけど、目からウロコみたいなページみたいなのないです?

returnが入ると全くわからない。

519:デフォルトの名無しさん
18/10/19 07:14:22.21 97FgwNUY.net
codecs.openて普通のopenより処理重いきがするんですが認識あってるかね?
2.7使ってて文字コード指定で100mb前後のtxtなりcsvてり触りたいんだけど通常のopenでは文字指定出来ず、ioモジュールのopen使うと他のライブラリで使ってるopenの挙動がおかしくなる(?)し、codecs遅いしでどうするのがスマートなのかわからん

520:デフォルトの名無しさん
18/10/19 08:17:42.62 5hJcbR3H.net
codecs.openを使う
そもそもopenに追加処理をしてるのだから、重くて当たり前だろう

521:デフォルトの名無しさん
18/10/19 12:51:38.13 jQ8EJjtV.net
> 488
URLリンク(youtu.be)

522:デフォルトの名無しさん
18/10/20 14:00:43.26 aYMp4dZA.net
URLリンク(github.com)
こちらのgitで公開されているLinux用epubビューアを改造して使いやすくしようと思っているのですが、
行き詰まってしまいました。
ブラウザの戻るボタンのようにリンク先(引用元など)に飛んだ後、直前に戻るボタンを実装したいのですが
(ボタンはgtk3の都合上up arrowボタンを使っています)
改造したのはheader_bar.pyでして、
def __populate_headerbar(self):
(途中省略)
# Adds up arrow chapter navigation button
self.up_arrow_button = Gtk.Button()
self.up_arrow_button.add(Gtk.Arrow(Gtk.ArrowType.UP, Gtk.ShadowType.NONE))
self.up_arrow_button.set_sensitive(False);
self.up_arrow_button.connect("clicked", self.


523:__on_up_arrow_clicked) navigation_box.add(self.up_arrow_button) (途中省略) def __on_up_arrow_clicked(self, button): """ Handles Up Arrow clicked navigation event, go backward :param button: """ if viewer.Viewer.can_go_back(): viewer.Viewer.go_back() とすると、 WebKit.WebView.can_go_back() takes exactly 1 argument (0 given) というエラーがでてしまいます。 (viewer.Viewerはwebkitを継承したものです) どなたかお知恵をお貸し願えたら幸いです。



524:デフォルトの名無しさん
18/10/20 14:07:46.36 u8BRF3D8.net
URLリンク(99blues.dyndns.org)

525:デフォルトの名無しさん
18/10/20 14:24:18.46 n6bj2eyU.net
>>496
インスタンスメソッドをクラスメソッドみたいにして読んでるから、第一引数として暗黙的に渡されるはずだったselfが足りないって怒られてる。
ソースを斜め読みするとViewerのインスタンスはインスタンス構造上の親であるMainWindowが持っているようなので、
self.__window.viewer.can_go_back()でアクセスできるんじゃないかな

526:493
18/10/20 15:04:15.12 aYMp4dZA.net
>>498
if self.__window.viewer.can_go_back():
self.__window.viewer.go_back()
と書いてやってみたらエラーメッセージはでませんでしたが画面が真っ白になってしまいました。
とはいえ、当初のエラーは解消したので大きな進歩です。どうもありがとうございました。
後は勉強がてら自分でやってみます。

527:デフォルトの名無しさん
18/10/20 15:04:58.12 aYMp4dZA.net
>>497
さんもレスありがとうございました。

528:デフォルトの名無しさん
18/10/20 18:30:22.23 V2vR4ZZl.net
>>492
defがここでおしまいですよ 呼び出し元にかえりんしゃー
という意味

529:デフォルトの名無しさん
18/10/20 18:31:25.93 V2vR4ZZl.net
>>493
from codecs import open as codecsopen
とかやって、
codecsまるごとじゃなくcodecs.openだけ読むようにすればちょっとははやくできる
ちょっとは。

530:デフォルトの名無しさん
18/10/22 23:03:44.42 bT6j7LGV.net
素人質問で申し訳ないのですが助けていただきたく質問します。
いま「みんなのPython」をやりはじめたのですが
Anacondaがうまくできません
最初に普通?のPythonをインストールして
そのあとにPythonをアンインストールしたあと
Anacondaをインストールしました。
そして「ファイル名を指定して実行」で「python.exe」と入力しても
「'python.exe'が見つかりません」となってしまいます。
Windows PowerShellで「>python」と入力しても
「用語 'python' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません」
となってしまいます。
Anacondaのインストールでは
「Add Anaconda to my PATH environment variable」にはチェックは入れてません
「Register Anaconda as my default Python 3.6」にはチェックを入れました。

531:デフォルトの名無しさん
18/10/22 23:37:57.82 aY20u7RH.net
英語よめや。

532:デフォルトの名無しさん
18/10/22 23:54:05.62 bT6j7LGV.net
>>504
環境変数PATHを設定する | Pythonインストールと環境設定
URLリンク(www.javadrive.jp)
このサイトに書いてあるようにやったらできたんですけど
これでいいんですか?

533:デフォルトの名無しさん
18/10/23 01:14:29.19 uxH9lXGD.net
カレントフォルダからは「相対パス/python.exe」で実行できる。
カレントフォルダ以外からも実行したいのなら「絶対パス/python.exe」で実行できる
カレントフォルダ以外からも「python」というコマンドで実行したいのなら、
「python.exe」のあるフォルダを、ユーザー環境変数PATH に登録しないといけない
例えば、コマンドプロンプトで、以下のように入力すると、
where notepad
where python
そのコマンドの実行ファイルのある、場所を表示できる

534:デフォルトの名無しさん
18/10/23 06:47:31.22 EmL9QD5v.net
はじめまして ラズパイでpythonを利用してます。
Python3 ide?でファイルを実行するとmoduleエラーが起


535:きるんですけど、lxterminalで実行したりcronで実行するとエラーはでないで実行できます。 実行できるので問題ないのですが、なんでpython3 ideで実行するとmoduleエラーになるのかが気になります 詳しい方 お気づきがあれば教えてください



536:デフォルトの名無しさん
18/10/23 07:07:12.22 EmL9QD5v.net
追加ですが温度センサー使ってます。githubからすべて入手したものです。
ググってもなぜかエラー出るよみたいなことが書かれていて原因は不明だったのでお聞きしました。

537:デフォルトの名無しさん
18/10/23 10:24:36.04 d2CNB2CT.net
Python3でのsqlalchemyについて教えてください
URLリンク(ideone.com)
56行目のsession.commit()でエラーになってしまいます。
sqlalchemy.exc.IntegrityError: (sqlite3.IntegrityError) CHECK constraint failed: winners
[SQL: 'INSERT INTO winners (name, category, year, nationality, sex) VALUES (?, ?, ?, ?, ?)']
[parameters: ('Marie Curie', 'Chemistry', 1911, 'Polish', 'Female')] (Background on this error at: URLリンク(sqlalche.me))
こんな風に書かれてあります。(長いのでここに書くときに改行しました)
何がいけないのでしょうか?

538:デフォルトの名無しさん
18/10/23 10:29:07.79 ki4w8hD+.net
>>507
同じPythonを実行してる?(公式の純正PythonとAnacondaとか)

539:デフォルトの名無しさん
18/10/23 10:35:04.61 ki4w8hD+.net
>>509
yearはStringじゃなくてIntegerじゃ…?

540:デフォルトの名無しさん
18/10/23 10:40:12.34 d2CNB2CT.net
>>511
ほんとだ!あと、リストのMarieの性別も頭が大文字になってました。
凡ミスなのにありがとうございます!

541:デフォルトの名無しさん
18/10/23 10:45:40.79 d2CNB2CT.net
>>509
あと、29行目の%の所でpep8のE228の注意が出てしまいます。
%の前後にスペースを入れて、こう書くのが正しいんでしょうか?
URLリンク(ideone.com)

542:デフォルトの名無しさん
18/10/23 10:48:34.83 ki4w8hD+.net
>>513
その方がpep8に則ると正しいね

543:デフォルトの名無しさん
18/10/23 10:56:47.49 zGwQ/J/L.net
>>514
どうもありがとうございました

544:デフォルトの名無しさん
18/10/23 11:09:52.98 zGwQ/J/L.net
連投すみません
SQLAlchemyでのデータベースへのアクセスについてですが、filterとfilter_byってどう使い分けするんでしょうか?
違いが分からないです
# スイス人受賞者の取得
# filter_by の場合
result = session.query(Winner).filter_by(nationality='Swiss')
# filter の場合
result = session.query(Winner).filter(Winner.nationality == 'Swiss')

print(list(result))

545:デフォルトの名無しさん
18/10/23 11:13:00.78 aeA+1VC2.net
gtk3とpythonのpygobjectで質問があります。
URLリンク(stackoverflow.com)
こちらの質問にあるとおり、webkit2gtkを使うとlibwebkit1-3.0の時のようなタッチスクリーンによる
スクロールができなくなってしまうのですが、何とかタッチによるスクロール(パンというようですが)
をしたいのです。こちらの質問者の方はコールバック関数にスクロールイベントを書いたらできたと
書いてありましたが、具体的にはどのように記述すれば良いのでしょうか?
URLリンク(lazka.github.io)
こちらのpygobjectのAPIを見てもよくわかりませんでした。どうかよろしくお願いします。

546:デフォルトの名無しさん
18/10/23 11:16:03.36 zGwQ/J/L.net
>>516ですけど、
ふた通りの書き方があるよ、Pythonらしく、より簡単に書く方法はfilter_byの方だよって事ですかね?

547:デフォルトの名無しさん
18/10/23 12:43:50.18 EmL9QD5v.net
>>510
同じpythonです。ラズパイにはじめからはいってるやつです。
ほんと謎
パスかなと思ったけど動いてるから違うんやとおもうけど

548:デフォルトの名無しさん
18/10/23 13:18:18.96 ki4w8hD+.net
>>518
軽くググッてから投稿してみよう
URLリンク(stackoverflow.com)

549:デフォルトの名無しさん
18/10/23 13:20:20.07 ki4w8hD+.net
>>519
バージョンも同じなら、理由はわからんなぁ…

550:デフォルトの名無しさん
18/10/23 17:07:59.89 J7zWeAP4.net
みんなやさしいな

551:デフォルトの名無しさん
18/10/23 18:06:12.08 Afmb5nM2.net
別のフォルダに入った同名ファイルをjoblibのParallelで処理するために以下のようなコードを書いたところ1番目のフォルダの結果が常に出てきてしまうんだけど原因分かる?
・環境
Python: 3.7.0
joblib: 0.12.5
Jupyter Notebook上で実行
・ファイル
C:\a\a.txt -> 「1」とだけ半角で書かれたテキストファイル
C:\b\a.txt -> 「2」とだけ半角で書かれたテキストファイル
・コード
import numpy as np
from joblib import Parallel, delayed
# 実際はもっと大容量のファイルに対して重い処理を行う
def read_file():
return np.loadtxt("a.txt")
os.chdir(r"C:\a")
result1 = Parallel(n_jobs=-1)(delayed(test)() for _ in range(1))
os.chdir(r"C:\b")
result2 = Parallel(n_jobs=-1)(delayed(test)() for _ in range(1))
# 空のフォルダcに移動する
os.chdir(r"C:\c")
result3 = Parallel(n_jobs=-1)(delayed(test)() for _ in range(1))
print(result1) # 出力 : [array(1.)]
print(result2) # 出力 : [array(1.)]・・・[array(2.)]が出力されないのはなぜ?
print(result3) # 出力 : [array(1.)]

552:デフォルトの名無しさん
18/10/23 22:14:21.56 86mV9f+c.net
ファイルの数を返すメソッドはありますか?
例えばsrcの下にディレクトリaとbがあって
それぞれのディレクトリにa1.txt~a100.txt、b1.txt~b100.txtとファイルがあった時に
200と返してくれるメソッドはありますか?
defで関数とか作らず1行で済む方法を探しています。

553:デフォルトの名無しさん
18/10/23 22:22:44.49 zYWUn764.net
len(os.lisdir(ディレクトリのpath))

554:デフォルトの名無しさん
18/10/23 22:36:02.00 BDP8ufz9.net
いまやってみたらそのコードでは2が帰って来ました
aとbの2つのディレクトリがあるから2なのですかね?
欲しいのはそのまた下にあるファイルの数でした

555:デフォルトの名無しさん
18/10/23 22:46:04.08 oFF/C26V.net
Pythonは詳しく無いけど、そう言うは再帰でディレクトリが無い最下層まで潜るコードってよく見るね。

556:デフォルトの名無しさん
18/10/23 23:35:56.37 EZC/vVVW.net
>>524
import glob
len(glob.glob(“**/*”, recursive=True))

557:デフォルトの名無しさん
18/10/23 23:36:52.55 EZC/vVVW.net
src/**/* だったわ

558:デフォルトの名無しさん
18/10/23 23:53:26.39 BmpWcPqj.net
>>524
sum([len(files) for root, dirs, files in os.walk("src")])

559:デフォルトの名無しさん
18/10/24 00:12:08.40 2LYWqLo0.net
>>507
パス・カレントディレクトリとか、起動時オプションとか。
別の実行ファイルを起動しているとか
IDE の前提条件は、プロジェクトごとだろ。
プロジェクトフォルダ・プロジェクト設定ファイルありきだろ。
プロジェクトの条件を満たしていないのかも?
プロジェクトとシェルから実行する形式とは、異なるような気がする
そのエラーメッセージをここにも書いて、それで検索すれば?
>>516-520
「python sqlalchemy filter vs filter_by」で検索!

560:デフォルトの名無しさん
18/10/24 00:33:01.65 2LYWqLo0.net
>>524-530
ls -1UR | wc -l
「linux ファイル数 ディレクトリごと」で検索!

561:デフォルトの名無しさん
18/10/24 00:58:29.86 2LYWqLo0.net
>>517
「gtk webkitwebview」で検索!

562:デフォルトの名無しさん
18/10/24 15:19:12.25 B3/hQHxI.net
521,523です
教えていただいたのをやってみました。
525さんの方法は、フォルダーの数が含まれていました。結果は202が返りました。
527さんの方法は、ちょうど200が返りました。
529さんの方法は、windowsなので出来ませんでした。
これにて問題は解決しました。皆さまありがとうございます。

563:514
18/10/24 17:55:05.58 Vc8wznQf.net
URLリンク(webkitgtk.org)
>Note that WebKitWebView is scrollable by itself, so you don't need to embed it in a GtkScrolledWindow.
って書いてありました。スクロールをGtkで担当していないから、他のgtk3アプリのようにタッチでスクロールできないようです。でも、だったらなんで>>517のリンク先の人はGTK.gestureでできたんだろう・・・

564:デフォルトの名無しさん
18/10/24 18:10:34.94 95IsyUjL.net
>なんといっても、800g弱とは思えない軽さと、
薄型コンパクトな筐体はタブレットと同様に、
「出番はないかもしれないけど常時携行しても良い」レベルです。

いざ使おうとすると windows update が始まって再起動…何時間も待たされる…鞄にしまう。

放置

「出番はないかもしれないけど常時携行しても良い」

また持ち出す

いざ使おうとすると windows update が始まって再起動…何時間も待たされる…鞄にしまう。

放置

565:デフォルトの名無しさん
18/10/24 18:40:13.35 IR3xnlxd.net
リストにn個の要素があります。
このリストの要素から2個をランダムに選んだペアをm組作りたいです。
ただしペアを重複しないようにしたいのですが、
どうすれば実装できるでしょうか。もしくはライブラリがありますか?
いくら考えてもペアが重複してしまいます。(特に(a,b)と(b,a)のようなペアが出来てしまいます)
n=[1, 2, ... n]
m=3
new_n=f(n, m)
new_n
=[(1,8), (45,n), (n-2, 20)]
みたいになるfを探しています。

566:デフォルトの名無しさん
18/10/24 18:54:46.79 Uqd3UckS.net
>>537
itertools

567:デフォルトの名無しさん
18/10/24 18:57:07.94 K3Hn81Y7.net
リストの中身をシャッフル→前から二つずつ取得

568:デフォルトの名無しさん
18/10/24 18:57:08.14 Uqd3UckS.net
>>535
ここで回答を待つよりリンク先に直凸したほうがはやいきががが
Why could you "scroll" with GTK.gesture?

569:デフォルトの名無しさん
18/10/24 19:10:02.77 TphPHDjb.net
scrapyとXParhについて教えてください
URLリンク(ideone.com)
うまく動いてくれないです。
67行目からの関数が間違えてると思うんですが、77行目のp_templateはどう書くのが正しいんでしょうか?
9行目は
# URLリンク(github.com)
17行目は
BASE_URL = 'URLリンク(en.wikipedi)


570:a.org' 40行目は start_urls = ["https://en.wikipedia.org/wiki/List_of_Nobel_laureates_by_country"] 80行目は # https://www.wikidata.org/wiki/Q155525 です。



571:デフォルトの名無しさん
18/10/24 19:14:14.74 IR3xnlxd.net
>>538
これは指定した組み合わせ数に達


572:したら中断する方法はありますか? 実際にはnとmが両方4000程なので、nC2を全て取得するのは冗長と思われるので・・ とはいえやりたいことにとても近いのでありがとうございます。 >>539 実際にはm>n/2となるので難しいと思いました。 すみませんこちらの例題が悪かったですね・・



573:デフォルトの名無しさん
18/10/24 19:14:37.21 /bxb9sB2.net
>>537
itertoolsとrandom


574:.sampleを組み合わせる import itertools, random def pair(n, m): combi = list(itertools.combinations(n, m)) return random.sample(combi, m)



575:デフォルトの名無しさん
18/10/24 19:51:07.40 8aeYqShI.net
>>509
これ、モジュールを入れてますが、ideoneで外部モジュールってどうやって使うんです?

576:デフォルトの名無しさん
18/10/24 20:02:29.89 Uqd3UckS.net
>>542
いつでもやめれるぞ
おれはあほだから
count=0からカウントアップしていって
欲しい組数になったらbreak
とか思いつくが
もっとスマートなやり方あるとおもう

577:デフォルトの名無しさん
18/10/24 20:03:01.03 Uqd3UckS.net
>>544
ソースが貼れるだけで
外部モジュールをとってきて動かすまではideoneしてくれない

578:デフォルトの名無しさん
18/10/24 20:26:18.89 Uqd3UckS.net
>>541
大抵は日付Gregorianで書いてあるとおもうから
文字列Gregorianの 前の文字列を探したらよさげなんだが
80行目のアドレスにアクセスして見てみた
Xpathがもはや538が書いたソースと違っつる
(/html/body/pre/span[1577] ってなってて divに1ツも入ってないYO)ので
具体的にどうとは書けない

579:デフォルトの名無しさん
18/10/24 23:59:09.70 2LYWqLo0.net
wikipedia みたいに、しょっちゅう構成が変化するものを、
XPath みたいに順番で指定するものは、動かない
div[2]/div[1]/div/div[2]/div[2]/div[1]
「div の3つ目の、div の2つ目の...」
CSS セレクターみたいに、id, class などの意味で指定する方が、構成の変化に強い。
まだマシ
HTML を解析して、id, class などで限定していくのが基本

580:デフォルトの名無しさん
18/10/25 01:12:10.66 33Q6k0An.net
今日突然プログラミングに興味を持ちとりあえずpythonをインストールした初心者です。
連番を作成するとき range(10)と打ち込んでも結果がrange(0,10)になってしまいます
解説サイトを見ると9まで表示されるらしいのですが、なぜrange(0,10)になってしまうのでしょうか?
バージョンは3.7.1です

581:デフォルトの名無しさん
18/10/25 02:20:57.87 NT+vxu3F.net
>>549
解説サイトがpython2向けだから。
別のサイトを見つけましょう

582:デフォルトの名無しさん
18/10/25 02:27:15.39 ZE3NVml1.net
Ruby の範囲は、 終端を含む、.. と、含まない ... がある
0..3 → 0~3
0...3 → 0~2
python では、終端を含まないのかな?
推測だけど、range(10)と引数が1つの場合は、終端のみが指定されたとみなすのだろう。
その場合、始端は0 が指定されたのと同じ
つまり、range(0,10)と同じ

583:デフォルトの名無しさん
18/10/25 07:58:15.11 ANca8D/1.net
>>547
538を書いたのは昨日だけど、今試しても80行目のアドレスのdate of birthのXPathは
//*[@id="P569"]/div[1]/div/a
8 October 1927の部分のXPathは
//*[@id="q155525$82312275-D23F-4048-A710-6EC6AB12C2C2"]/div[2]/div[1]/div/div[2]/div[2]/div[1]
でしたよ
>>547
>>548
583のスクリプトだと誕生日、死亡日、出生地、死亡地、性別を77行目の天ぷらで取得するようになってるけれど、もう天ぷらを改変して使うことも無理だから、項目一つ一つそれぞれ取得しないといけないって事ですか?

584:デフォルトの名無しさん
18/10/25 08:09:34.19 ANca8D/1.net
URLリンク(www.wikidata.org)
この表の左側(date of birthとかplace of birth)のdiv classは
wikibase-statementgroupview-property-label
表示の真ん中の8 October 1927や、Bahía Blancaのdiv classは
wikibase-snakview-value wikibase-snakview-variation-valuesnak
のようでした。
これらを使って >>583 に当てはめる事できますか?

585:545
18/10/25 08:57:54.49 ZE3NVml1.net
例えば、Ruby で、5ch の書き込み内のa タグを、XPath で指定するのは、こういう感じ
# a を含む、post_node だけを抜き出す。descendant は子孫、ancestor は祖先
# div.thread > div.post > div.message > span > a
post_nodes = doc.xpath "//div[@class='thread']/div[@class='post']/div[@class='message']/descendant::a/ancestor::div[@class='post']"
/div[2]/div[1]/div/div[2]/div[2]/div[1]
こういう、1, 2 などの順番では指定しない
順番で指定すると、サーバー側で、HTML ページを作る時に、順番が変わるかもしれない
普通はXPathではなく、以下のような、CSS セレクターで指定する。
div.thread > div.post > div.message > span > a
thread クラスが付いた、div 要素の直下の、
post クラスが付いた、div 要素の直下の、
message クラスが付いた、div 要素の直下の、
span 要素の直下の、a 要素
ブラウザのF12 開発者ツールを起動して、自分でHTMLを解析する

586:545
18/10/25 09:17:05.90 ZE3NVml1.net
Chrome で、自分が解析したい要素上で、右クリックメニューで検証を押すと、F12 開発者ツールが起動する
表示されたHTML 上で、右クリックメニューでCopy の所から、
XPath, selector(CSS selector)をコピーできる
例えば、このスレの書き込み内のa タグを、検証してみると、
XPath, CSS selectorは、
//*[@id="550"]/div[2]/span/a[2]
550 > div.message > span > a.reply_link
id が550 の要素の直下の、
message クラスが付いた、div 要素の直下の、
span 要素の直下の、
reply_link クラスが付いた、a 要素
ただし、id は550など、先頭文字が数字では始められないから、これは間違い。
5ch の開発者が間違っている。バグ

587:545
18/10/25 09:39:35.73 ZE3NVml1.net
date of birth の、XPath, CSS selectorは、
//*[@id="P569"]/div[1]
#P569 > div.wikibase-statementgroupview-property
id がP569 の要素の直下の、
wikibase-statementgroupview-property クラスが付いた、div 要素
このCSS セレクターで要素を取得して、それが1つだけかどうか確認しないといけない。
このHTML の製作者は、このクラスを複数のタグに付けているかもしれない
このように、他人が作ったHTMLを、解析していくのが難しい。
その仕様は、その製作者が決めたもので、我々が知らないものだから、
隠された情報を暴くのに、時間を食うから、非常に無駄!
仕事以外で、他人の仕様を解析するのは辞めた方がよい。
製作者は答えを知っているけど、我々は答えを知らないから、時間ばかり食う!

588:デフォルトの名無しさん
18/10/25 09:43:11.50 wiUcTcgZ.net
たまにはいいこと言うじゃねえか

589:デフォルトの名無しさん
18/10/25 10:14:40.95 yIJtoQcC.net
今は1階層深くなっているようだ
//*[@id="{code}"]/div[2]/div/div/div[2]/div[1]/div/div[2]/div[2]/div[1]{link_html}/text()

590:デフォルトの名無しさん
18/10/25 10:21:59.94 Rw/1mEHp.net
>>556
なるほど
まだ途中までしか読んでないけどおそらく本の内容はこんな感じ
1
ウィキペディアにある現在までのノーベル賞受賞者の全員の一覧からウィキデータにある各人のパーソナル情報とウィキペディアの各人の概略と人物写真をScrapyでスクレイピング
2
そのデータをPandasとMatplotlibでクリーニング、分析
3
そのデータをFlaskを使って配信
4
そのデータをJavascriptのD3.jsで可視化
4の可視化に興味があって読み始めた感じ。けどせっかくなので1から読んでScrapyも学んでみようかと。
でも、他人が作ったサイト(ウィキペディア)で悩むよりもAPIなどで簡単に取得出来るような別のデータを使って2に進んだ方がよいですか?
(幸い、本の著作のGithubは数年前にすでにスクレイピングしたデータが置いてありました。数年前なのでもちろん今年の本庶さんは含まれてないですけどね。)

591:デフォルトの名無しさん
18/10/25 10:22:45.04 Rw/1mEHp.net
>>558
それどうやって見つけたんでしょうか?
ちょっと見てみます。

592:デフォルトの名無しさん
18/10/25 10:43:07.24 Rw/1mEHp.net
URLリンク(i.imgur.com)
date of birthのところでコピーしたXPath
//*[@id="P569"]/div[1]/div/a
URLリンク(i.imgur.com)
その日付けのところでコピーしたXPath
//*[@id="q155525$82312275-D23F-4048-A710-6EC6AB12C2C2"]/div[2]/div[1]/div/div[2]/div[2]/div[1]
2枚目の画像の部分を選ぶんだと思っていたんですけど、もしかして選ぶ場所間違えてますか?

593:545
18/10/25 11:01:29.24 ZE3NVml1.net
>>559
その本の例題が難しすぎる。
自分で他人のHTML を解析してまでやる必要はない。無視すべし
自分のやりたい部分だけを、やった方がよい

594:デフォルトの名無しさん
18/10/25 11:34:29.89 yIJtoQcC.net
>>561
目的地点はあってるが出発地点が違う
もうちょっとソースを読んで、どういう風にXPathをテンプレート化しているかを理解しよう

595:545
18/10/25 12:03:03.26 ZE3NVml1.net
date of birth の、XPath, CSS selectorは、
//*[@id="P569"]/div[1]
#P569 > div.wikibase-statementgroupview-property
id がP569 の要素の直下の、
wikibase-statementgroupview-property クラスが付いた、div 要素
place of birth の、XPath, CSS selectorは、
//*[@id="P19"]/div[1]
#P19 > div.wikibase-statementgroupview-property
id がP19 の要素の直下の、
wikibase-statementgroupview-property クラスが付いた、div 要素
ここで、id のP569, P19 みたいなものは、別のHTML から取れるのか?
だったら、CSS セレクターで取れる
XPath なら、div[1] とか番号指定よりも、class 指定の方がよい。
//*[@id='P569']/div[@class='wikibase-statementgroupview-property']
//*[@id='P19']/div[@class='wikibase-statementgroupview-property']

596:デフォルトの名無しさん
18/10/25 12:21:08.82 Rw/1mEHp.net
>>563
出発地点ですか!
例えば「8 October 1927」という文字の上で右クリックして検証を選んで出てくる開発者ツールのElements欄を見てるんですが、もしかしてそこから間違えているとかですか?
> もうちょっとソースを読んで、どういう風にXPathをテンプレート化しているかを理解しよう
どういう事なのかさっぱり分からないです…
>>563
>>564
そういう知識はどこで身につけるんでしょうか?
おそらくこれはPythonとは直接関係ない部分なのでPythonの本でもそんなに詳しくは書いてないのかと思います。
これらはWeb開発の知識でしょうか?
ほんのちょっとだけどPythonは覚えたから大丈夫だけど、Webは分からないから暗号にしか見えず恐ろしいです。
なるべくWeb開発をしなくてもいいように(ほんとはWebは専門の人に任せようって)、Web開発の部分はなるべく最小限で済むようにして、みなさんがPythonとJavascriptのプログラミングに専念してシングルページアプリを作れるようにってのがこの本らしいけれど、
XPathやChromeのこのツールやdivとかクラスっていうものの知識ってどういうところ(本?サービス?言語?)で学ぶといいんでしょうか?結局はやはりWebの知識が必要になってくるんでしょうか?
途中、SVGでグラフィックを作る章の最初にHTMLとcssの基本的な事が書かれてありましたけれど。

597:545
18/10/25 13:36:59.66 ZE3NVml1.net
先に、JavaScript, jQuery で、CSS セレクターを学ぶ。
CSS セレクターの方が読みやすい。
入門用サイトでも見て
HTML で、CSS デザイン用の属性、id, class などを付けるでしょ?
それを手掛かりにして、要素を取得する
XPath は後でよい。
入門用サイトを見る

598:デフォルトの名無しさん
18/10/25 14:08:58.54 JjKr6ouj.net
URLリンク(i.imgur.com)
>危険なWeb開発地帯
自分もこの認識
恐ろしい
>>566
早く先に進


599:みたいけれど、一旦Pythonは横に置いて、そういう学習してみます。 プログラミング言語としてのJavaScriptではなくWebで使うためのJavaScriptという位置付けで学ぶとcssなど理解できるようになるんですかね? あと、JavaScriptのスキルを身に付けたいならフレームワーク(jQueryなど)の存在は完全に無視すべきとありました。



600:デフォルトの名無しさん
18/10/25 14:10:23.63 f1dgb8e7.net
Python少し触っただけの初心者です。
インデント位置が変わるだけでプログラムのロジックの意味が
変わるのを知ってビックリしているのですが、
そんな言語を使ってまともなプログラムを書けるのですか?

601:デフォルトの名無しさん
18/10/25 14:13:05.16 JjKr6ouj.net
>>568
初心者ですけど、逆に分かりやすいと思いました。

602:545
18/10/25 1


603:4:20:16.10 ID:ZE3NVml1.net



604:538
18/10/25 14:29:40.72 JjKr6ouj.net
>>570
まさにこの本がPython学習者がデータの可視化に向けてJavaScriptを学ぶのにちょうどよい本だと思って手に取ったんですが…

605:デフォルトの名無しさん
18/10/25 15:37:48.62 5Cy/pQlU.net
最近裾野が広がって初学者が増えたのは良いが
FAQはどっかでまとまったの見ておくべき

606:デフォルトの名無しさん
18/10/25 15:45:19.08 K87hu2sk.net
>>568
同じ処理なら誰が書いても同じようなコードになる

607:デフォルトの名無しさん
18/10/25 16:04:24.36 g7JlCOxC.net
Python始めたての初学者です。
ファイルを読み込んで、バックアップをとってから、ファイルの一部を書き換えるというプログラムを書きました。
これをPython3.6.1環境のLinuxで実行すると、うまく動きましたが、2.7.5環境の別マシンでは、
TypeError: 'encoding' is an invalid keyword argument for this function
というエラーを吐き実行できませんでした。さらに、2.5.2環境の別マシンでは
AttributeError: 'str' object has no attribute 'format'
というエラーを吐き、実行できませんでした。
Python2と3では互換性がないということは存じ上げていますが、今回、3.6.1、2.7.5、2.5.2のすべての環境で動くものを作りたいです。
おそらくopenのencodingの部分と、datetimeの部分のformatの書き方がだめなんだと思いますが、
全バージョン対応の書き方をしようと思うとどういった形になるのでしょうか。
ちなみに、以下がコード全文です。
URLリンク(pastebin.com)

608:デフォルトの名無しさん
18/10/25 16:27:15.45 5Cy/pQlU.net
無駄な抵抗はよせ

609:デフォルトの名無しさん
18/10/25 17:20:42.65 YZYAqGHb.net
>>565,567
Pythonは詳しく無いので恐縮ですが、
>プログラミング言語としてのJavaScriptではなくWebで使うためのJavaScriptという位置付けで学ぶとcssなど理解できるようになるんですかね?
CSS(スタイルシート)はWebページの見た目を制御するためのものです。
HTMLの要素ごとに、サイズ、背景、フォントの種類、レイアウトなどをCSSで指定する。
HTMLの要素は、タグ、属性、値で構成される。divはタグ、id, classは属性。
よって、CSSを覚えるには、HTML+CSSのセットで覚える必要がある。
今だったら、HTML5+CSS3
さらに、HTMLの要素を操作して表示を変化させるにはJavaScriptを使う。
ホスト側で処理が必要な場合は、CGI(GET,POST)などの知識も必要。
Webページ(HTML)の解析をするのであれば、HTML+CSSの知識は必須と思う。

610:デフォルトの名無しさん
18/10/25 18:16:58.93 g7JlCOxC.net
>>575
抵抗させてください

611:デフォルトの名無しさん
18/10/25 19:39:32.30 Mzrh8O3p.net
まず2.5の文法だけで2.5で動く奴を書け

612:デフォルトの名無しさん
18/10/25 19:56:43.69 NF5xn3mp.net
>>578
なに偉そうに命令しとるんじゃ
しばくぞ

613:デフォルトの名無しさん
18/10/25 20:10:31.29 NRPlmaaN.net
>>574
  >>578
  しかるのちpythonのバージョンを検出し
  そのさき読み込む部分を切り替える処理を書く
おk


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