X



くだすれPython(超初心者用) その47【Ruby禁止】
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
垢版 |
2020/03/07(土) 00:40:52.77ID:k5ibAr7h
当スレに★Python以外のプログラミング言語での回答類を書くべからず★
☆「Ruby では」「Rubyでは」をNGワード登録推奨

このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。

★Pythonのソースコードはそのまま5ちゃんにコピペするとインデントが崩れるので
  ↓等のてきとうなソースコード用うpろだに貼ってきてください。
  スクショをImgur等にうp といった 手抜き(クソ行為)禁止。
ttp://ideone.com/      デフォ設定はC用のため言語選択ボタン押下がピコ手間かも。
ttp://codepad.org/      ほぼ直感的に使える。Run codeボタンあり。
ttp://pastebin.com/     まずまずシンプル。
ttp://dpaste.com/      とてもシンプル。消えるまでの日数は十分長ーく指定のこと。
ttps://jupyter.org/try    (旧try.jupyter.org)ちょっとめんどうそう

◆エラーを解決したい場合は、表示されてるエラー全文(勝手に省略禁止)と
  実行環境(Pythonのバージョン・OS名・IDEの種類とバージョン)をシッカリ書くこと。

◇Python公式サイト◇ http://www.python.org/
◇まとめwiki◇ ttp://python.rdy.jp/

〇前スレ〇
くだすれPython(超初心者用) その46【Ruby禁止】
https://mevius.5ch.net/test/read.cgi/tech/1577948214/
0432デフォルトの名無しさん
垢版 |
2020/04/04(土) 19:28:37.89ID:zx3zKRQP
ありがとうございます。こちらで教えていただいたおかげで無事に1ページ目のURLやタイトルを取得し出力することができました。
今はページを遷移して全ページのタイトル、URLを取得しようとして、次へのURLは取得することができたのですが
最後のページは次がない為苦戦してます。get_htmlメソッドで別のページのhtmlを解析している動画があったので私も使ってみたのですが、
なぜか使えずNameErrorになってしまいました。何が原因なのでしょうか?get_htmlメソッド以外にもラストページのhtmlを解析できる方法がありましたら教えていただければ幸いです。
質問がわかりにくく申し訳ございませんが、宜しくお願いします。
0433デフォルトの名無しさん
垢版 |
2020/04/04(土) 20:02:27.84ID:V/ZRChdf
>>432
1.htmlを解析する
2.次のURLがある場合取得して1に戻る ない場合、終了する

だけなんだけど、エラー時の対処方法が分かりませんということかな

if文で分岐するか、try ~ exceptで囲んでしまうかなんだけども
0434デフォルトの名無しさん
垢版 |
2020/04/04(土) 20:15:38.36ID:onN5/Dtn
>>431
enumは後から値を書き換えられない&キーを追加できないかわりに、読みやすい、キーがシンボルなのでtypoしてもすぐに見つかる、値からキーを引けるのが大きな違いかなあ
0436デフォルトの名無しさん
垢版 |
2020/04/05(日) 10:05:48.14ID:xV9Ma8xZ
>>434
違いはイミュータブルとみやすさってことですかね
値からキーなら辞書でもitems()と内包表記でできますね
キーがシンボルというのはどういう意味でしょうか
0437デフォルトの名無しさん
垢版 |
2020/04/05(日) 10:49:10.66ID:tgzR2K8y
>>427
元々は数十個の連番の定数を定義するためにC言語で使われた
enumなんかは存在せず、全てdefineでやっていた
それが40年ほど掛かって進歩して、今日のenumになった
なので直感的に理解しやすいのはC言語のenumで、それ以降のenumは抽象度が上がってるので理解し難くなっている

そして現代プログラミングではそもそも連番の定数というものは使わない
連番の定数による状態の区分けと、OOPでの状態の区分けは、機能が相反する
0438デフォルトの名無しさん
垢版 |
2020/04/05(日) 12:03:07.43ID:ZlQTcj/v
月の名前

4月 と April

とかは、一度定義すれば変わることはないので、一度定義したら変更不可にしておいた方が安全だというのが enum の有効な使い方
0439デフォルトの名無しさん
垢版 |
2020/04/05(日) 13:18:43.11ID:+59aBvhV
>>432
ありがとうございます。エラーの対処がわかりませんでした。if文で作ってみますね。


>>435
不十分ですみません。コードありがとうございます。参考にさせていただきます。
0440デフォルトの名無しさん
垢版 |
2020/04/05(日) 13:30:29.93ID:nuvXPfKL
>>436
enumと辞書は根本的に用途が違うよ。
enumは固定の値として使うもの。一連のグループとして括られるある定数の集まりに、分かりやすく名前とその値を決めてあらかじめ定義しておくためのもの。
辞書は入れ物。プログラムの処理の中で、必要に応じて中身を追加したり変更したり取り出したり削除するための箱。
0441デフォルトの名無しさん
垢版 |
2020/04/05(日) 16:48:45.00ID:zmv+0Bsd
tkinter.ttkってtkinterのサブモジュールだからfrom tkinter import * でロードされないのですか?
また
from tkinter import *
from tkinter import ttk
だと丁寧でないので
import tkinter as tk
import tkinter.ttk as ttk
としたいのですが、なにか(二重ロードなど?の)問題がありますか?
0442デフォルトの名無しさん
垢版 |
2020/04/05(日) 17:09:51.66ID:GKoximli
Pythonのインデント強制って結構欠陥じゃないか?
コピペが安定的にできんし見た目で何個空いてるのかも分からん
0443デフォルトの名無しさん
垢版 |
2020/04/05(日) 17:22:13.56ID:BHv6uIvk
俺も強制インデント好きじゃないな
括弧の方が好き

> コピペが安定的にできんし見た目で何個空いてるのかも分からん
不可視文字表示のプラグインを入れればいい
0445デフォルトの名無しさん
垢版 |
2020/04/05(日) 17:28:28.04ID:8W0pTwts
インデントがバラバラだと
イラつくから統一してるんだろ?

でもオレもRubyみたいに
整形の自由度高い方が好きだが
0446デフォルトの名無しさん
垢版 |
2020/04/05(日) 19:46:21.19ID:oKEzp2HP
そんなに嫌いではないけれど、やっぱ長い関数やクラスだと見づらいわな。
tensorflowとか長ったらしい関数使う割にインデント2って最悪だわ。
0450デフォルトの名無しさん
垢版 |
2020/04/05(日) 20:21:55.10ID:0MNLjFAZ
>>447
そうでもない

>>448
のぞましくない という。
少なくとも、先頭には使っちゃいやーん。
  (クラスかなにかと、まぎらわしくなるからだとかなんとか)

ただし、
不変な値の名前に、ならば、
全部大文字ならおk...らしい。
例) URL_TUPLE=("http://5ch.net";, "https://5ch.net";)
0456デフォルトの名無しさん
垢版 |
2020/04/06(月) 00:39:35.30ID:WU94L+3C
くだすれってなに?
0460デフォルトの名無しさん
垢版 |
2020/04/06(月) 06:07:21.92ID:1orLNsgs
>>456
「(上級者wwwからしたら)くだらない(かもしれない)質問を書くスレ」の略語らしいぞ
0462デフォルトの名無しさん
垢版 |
2020/04/06(月) 22:23:54.27ID:Dhdswjlr
Python, Markdown, Yaml などは、

VSCode の有名な拡張機能、indent-rainbow でカラー表示できる!
0463デフォルトの名無しさん
垢版 |
2020/04/06(月) 22:30:04.61ID:/pKVQL2g
vscode入れ直したらクラスは2行開けとか、カンマの後はちゃんとスペース入れるとか、空の空白入ってるとかで警告出てたの出なくなっちゃった
どこいじったのか覚えてないや
0466デフォルトの名無しさん
垢版 |
2020/04/07(火) 19:39:39.11ID:MVFjKYjb
pyautoguiでも何でもいいのですが、
別の仮装デスクトップ上に画面とか展開して自動で動かす方法はないですか?
メインのデスクトップ上では他の作業をしてるので、自動化作業は、別の仮装デスクトップ上で不可視の状態で進んでいて欲しいです。
0468デフォルトの名無しさん
垢版 |
2020/04/07(火) 19:51:36.91ID:nX2JoaOK
>>466
無理
俺も前似たようなことやろうと思ったけど、仮想デクストップ系の制御はあんまり融通が効かない
0472デフォルトの名無しさん
垢版 |
2020/04/08(水) 08:35:20.80ID:jQHFC0rR
Pythonでグラフィック使ったゲーム作りたいんですがGUIライブラリ入れたらできますか?
方法があれば教えて下さい。試しにKivyての入れようとしたら難しすぎて無理でした。
0474デフォルトの名無しさん
垢版 |
2020/04/08(水) 09:28:45.22ID:uM85rkI7
>>472-473
「ハサミを買っても使い方が難しくて分からない」と言ってるやつは
永遠に「ハサミで紙を切る」ことができないままだ。

アナコンダはGUIアプリを作るためのものではないので
へのつっぱりにもならん。
0475デフォルトの名無しさん
垢版 |
2020/04/08(水) 09:30:55.98ID:qM29robv
ゲーム作るならPythonを今すぐ投げ捨ててUnityを使おう
Pythonに拘って今どれだけ苦労しようともいずれ必ず他へ移行することになるんだし、Unityなら初心者向けの本などは腐るほどある
0476デフォルトの名無しさん
垢版 |
2020/04/08(水) 09:33:01.41ID:J0JU7WJK
kivy慣れるとめっちゃ便利なんだよな
しかも覚えるとUnityやSwiftまで簡単に見えてくる
0477デフォルトの名無しさん
垢版 |
2020/04/08(水) 09:51:20.83ID:jQHFC0rR
>>474 Kivyは使ったことすら無くてインストールでつまずいてます。
>>475 調べたらUnityはゲームエンジンで言語はC#ですね。C#用の無料IDEがあるかどうか。
>>476 そうですかインストール頑張ってみようかな。簡単に越したことはないし
0479デフォルトの名無しさん
垢版 |
2020/04/08(水) 09:53:16.19ID:Ph0iXt3g
GUIアプリってのもまた微妙な言葉だな。
ゲーム、ブラウザ、デスクトップアプリ、スマホアプリ
でも取り扱いが全然違うだろ。
0480デフォルトの名無しさん
垢版 |
2020/04/08(水) 10:53:59.23ID:jQHFC0rR
わかりやすい解説見つけたからやってみたらKivyインストール出来た
せっかく環境作って途中まで勉強したしPython + Kivyで作ってみます。ありがとうございました
0481デフォルトの名無しさん
垢版 |
2020/04/08(水) 11:03:39.60ID:uM85rkI7
>>480
ここまでスレ使ったんだから
その
「わかりやすい解説」とやらのページに行くための検索単語か
「h」をとったttp以降のアドレス書いてけよダボハゼ
0482デフォルトの名無しさん
垢版 |
2020/04/08(水) 11:25:39.26ID:jQHFC0rR
いやせっかくUnity教えてもらったし迷ったけどKivyの方が簡単て聞いたからだけど
結局Kivy入れるならもっとKivyのインストール調べてから聞くべきでした。失礼しました
参考にしたブログは
ttps://algorithm.joho.info/programming/python/kivy-install/
0483デフォルトの名無しさん
垢版 |
2020/04/08(水) 12:46:17.42ID:lWfV0IAd
>>472
pygame
0484デフォルトの名無しさん
垢版 |
2020/04/08(水) 14:37:45.00ID:eAo5BdNs
pythonとはライブラリである
実際のプログラムはjuliaで書く
pycallで呼び出せばいいのだ
0485デフォルトの名無しさん
垢版 |
2020/04/08(水) 18:51:34.73ID:91DNWNmi
これのインストールのどこが難しすぎるんや???
煽り抜きでがちで解せぬ
zip解凍してexe叩くのに比べて難しいってこと?何と比較して難しいの?え?
0486デフォルトの名無しさん
垢版 |
2020/04/08(水) 20:17:29.14ID:0wClQ2mN
質問です
100万個くらいの点があって、それぞれ名前、X座標、Y座標を持っていて、
その中で2点間の距離が、ある範囲にある点の組を抽出したいのですが、
速度が速いのは、どういう方法になりますか?

いまは全然Pythonっぽくなく、単に各点の名前、座標でリストにして、
X、Y座標のforループ2つで、距離はmathで三平方の定理…です

ただ、100万×100万÷2も回すのはさすがに辛いので、
一応時短のため、先にリストはX座標でソートしておいて、Xの小さい方から評価して、
X座標の差が、距離の範囲のmaxを超えたらbreakでXのループ抜ける…ってのだけしてます
0489デフォルトの名無しさん
垢版 |
2020/04/08(水) 20:47:22.64ID:Oqe9V/es
とりあえずマンハッタン距離で評価してマンハッタン距離>=ユークリッド距離は自明だからそれでフィルタする
0490デフォルトの名無しさん
垢版 |
2020/04/08(水) 23:10:17.60ID:qM29robv
空間を適当なサイズのメッシュで分割して、互いに近くにあるセルのペアに含まれる点だけで距離を計算すればいい
俺も全く同じことをやったことがあるんだが、見も蓋もないことを言えば
ぶっちゃけ手間暇かけてそういう工夫するよりCで普通に二重ループぶん回した方が結局手っ取り早くて遥かに速いよ
0491デフォルトの名無しさん
垢版 |
2020/04/08(水) 23:23:28.52ID:kz0qlGwe
>>486
一回しかやらない処理ならpythonでいいけど、毎回計算処理入るようなシステムに組み込むならコンパイル言語でやった方がいいわ。
0493デフォルトの名無しさん
垢版 |
2020/04/09(木) 01:10:22.16ID:fZEVtxvj
1兆回のループで何分くらい?
0494デフォルトの名無しさん
垢版 |
2020/04/09(木) 01:23:00.56ID:w8oVZoDk
>>486
理論的なことは他の人が答えているので実践的なことを一つ

モジュールscipy.spatialにKDTreeってのがあるからそれで解決
0495デフォルトの名無しさん
垢版 |
2020/04/09(木) 02:21:30.49ID:zooYQAb2
>>487-494
回答ありがとうございました!
いろいろヒント貰ったので、それぞれ試してみます

>>493
さすがに1兆回やりきったことはなくて、
>>486で、データによるけど100億のオーダーくらいには減らして、
6時間〜半日くらいかかってます(遅いノートPCだからってのもありますが)
0496デフォルトの名無しさん
垢版 |
2020/04/09(木) 02:50:53.88ID:4jvLaI/L
class Base():
__def __init__(self):
____self.a()
____self.c()

__def a(self):
____def b():
________pass
__def c(self):
____pass

self.c 内の処理でself.a内関数bを呼び出したいんですが、なんと書けばいいのでしょうか
0497デフォルトの名無しさん
垢版 |
2020/04/09(木) 03:19:05.59ID:w8oVZoDk
>>496
def a(self)の戻り値にreturn bとして関数を返す
そうするとself.a()で関数bが帰ってくるから
b2=self.a()
b2()
で呼び出せる
一行でかくならself.a()()となる
0499デフォルトの名無しさん
垢版 |
2020/04/09(木) 14:16:39.37ID:ksOzelVE
マルチスレッド・プロセスでやるとリークの温床になりそう。
Baseオブジェクトがbオブジェクトに依存するという関係が。
0500デフォルトの名無しさん
垢版 |
2020/04/09(木) 15:09:05.18ID:cpPSKMvd
マルチプロセス入れたら軽くなった
global使いまわしてるとこエラー出まくってたけどTryで解決した
0501デフォルトの名無しさん
垢版 |
2020/04/09(木) 19:52:09.26ID:XJeI50tK
座標系aで表された3次元の点群の組と
座標系bで表された3次元の点群の組があって
座標系a→bに変換する行列をsolveするライブラリはありますか
aとbはどちらも直行座標系で、回転と並行移動で変換できることは既知です
そして各座標における点の対応関係も全て既知なので、pnpみたいにsolveして欲しいイメージなのですが
0502デフォルトの名無しさん
垢版 |
2020/04/09(木) 20:06:42.40ID:ECwfuEfZ
ちなみに何をしたいかというと
座標系aでは点群は全てz軸上に乗っていてx,yは全て0なので
座標系a上で、別の2次元点群をx,yに配置して(zは等間隔に適当に配置)
a→bの変換によって座標系b上で点群に沿ってこの2次元点群を投影したい
0503デフォルトの名無しさん
垢版 |
2020/04/10(金) 06:52:09.43ID:uDvGi+nW
未経験から半年でフリーエンジニアになれる人の特徴
https://www.youtube.com/watch?v=YCxu0jn52Qw
フリーランスか会社員かどっちが簡単かについての最終回答
https://www.youtube.com/watch?v=JA4JNSmIdxI
【エンジニア】正社員/派遣社員/フリーランスのメリット・デメリットについて
https://www.youtube.com/watch?v=fTG-eMpwhCg
月収1000万円オンラインサロンオーナーの日常【飲み過ぎ】
https://www.youtube.com/watch?v=lPfWZLatYus&;t=107s
借金400万円から人生逆転するまでの軌跡
https://www.youtube.com/watch?v=fXdHlFFUjGY
エンジニアはお金を追求してはいけないという年寄りを論破してみた
https://www.youtube.com/watch?v=qJHCmxFv718
プログラミングスクールを否定する老害どもについて
https://www.youtube.com/watch?v=K2SN-Rr0PgY&;t=506s
新人叩きしてる古参勢がすぐ儲からなくなる理由
https://www.youtube.com/watch?v=Ch9Ir8O-iqU&;t=332s
0505デフォルトの名無しさん
垢版 |
2020/04/10(金) 10:12:41.92ID:nz1tlAhX
>501
>回転と並行移動で変換できることは既知

そこまで判ってるなら逆行列で終わり
0506デフォルトの名無しさん
垢版 |
2020/04/10(金) 10:14:56.72ID:nz1tlAhX
>>502
それって逆行列が無いパターンかもな
0508デフォルトの名無しさん
垢版 |
2020/04/10(金) 15:18:45.94ID:K9RJlzNI
Pythonはどうして同じ命令を他の言語と比較して簡素に記述できるのですか?
0510デフォルトの名無しさん
垢版 |
2020/04/10(金) 15:24:36.26ID:8EAe0xMT
>>508
簡素なことを書いたら
いっぱいある暗黙の作業な部分はPythonアプリ側が勝手にやってくれてるから
0511デフォルトの名無しさん
垢版 |
2020/04/10(金) 16:40:58.94ID:k/YdHOe5
中カッコを書かないとか
型宣言をしないとか
文の終わりに記号がないとか

そのへん?
0514デフォルトの名無しさん
垢版 |
2020/04/10(金) 18:00:16.30ID:tJvmHEKv
>>508
前にも言ったが言語(環境)の中に
より詳細な命令が書いてあるから
ただしその分実行速度が遅くなるが
0515デフォルトの名無しさん
垢版 |
2020/04/10(金) 18:09:58.00ID:EbTu80yE
型無し言語だからに尽きるんじゃないの?
ライブラリの充実具合ならjavaやc#に及ばないし
0516デフォルトの名無しさん
垢版 |
2020/04/10(金) 18:11:28.09ID:mRiiX+60
この質問別のスレでも見たな

>>508
・比較しているのは具体的にどの言語か
・具体的にどのようなコードか
この二点を明確にしてくれ
0519デフォルトの名無しさん
垢版 |
2020/04/10(金) 20:30:24.36ID:GziE5Jrh
from XYZ import XY as Z でパッケージを読み込み自作クラスA内でz=Z()とインスタンスを作成しています
このインスタンスzがエラー吐いたとき、exceptになんと書けば捕捉できるのかおしえてください
エラー内容は
raise RegexMatchError(caller="get_config", pattern="config_patterns")
XYZ.exceptions.RegexMatchError: get_config: could not find match for config_patterns
です
z.exceptions.RegexMatchError や z.RegexMatchError ではno attributeと言われてしまいました
0521デフォルトの名無しさん
垢版 |
2020/04/10(金) 20:35:16.10ID:K9RJlzNI
なるほど…

遅い遅いって具体的に何が遅いんですか?
0522デフォルトの名無しさん
垢版 |
2020/04/10(金) 20:39:22.03ID:8EAe0xMT
>>519
caller="get_config"
たとえば↑これだと、callerにはただの文字列「get_config」が渡ってるんだけど
それでいいのか?

もっと上の方で変数名get_configとかに何かリストなり文字列なりをあててて、
それを引数として渡したいのなら書き方違うぞ。

あと
raise RegexMatchErrorで検索するとpytubeなるものしかHitしない件。
そして
それんなかのpatternには
通常たぶんre.pattern(なんや正規表現な指示)で
コンパイル済みの文字列が入っている件。
0524デフォルトの名無しさん
垢版 |
2020/04/10(金) 21:03:10.70ID:GziE5Jrh
>>522
AtomのRunnerのコピペだと上記のような感じ
e.type すると class `XYZ.exceptions.RegexMatchError`>
e.aegs すると `get_config:could not find match for config_patterns`
です。インスタンスはz=Z(文字列)で、例外処理を書きたくてわざとアンマッチな文字列投げてるんですが
どうキャッチしたらいいのかわからないのです
0525デフォルトの名無しさん
垢版 |
2020/04/10(金) 21:04:53.89ID:GziE5Jrh
おっと
except Exception as e : str(type(e))とstr(e.args)ですね
■ このスレッドは過去ログ倉庫に格納されています

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