くだすれ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/
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)ですね
0526デフォルトの名無しさん
垢版 |
2020/04/10(金) 21:41:23.04ID:L7OYJgcU
>>519
RegexMatchErrorを定義してるpytube.exceptionsモジュールをimportしてればexcept RegexMatchError:
import pytubeしてれば except pytube.exceptions.RegexMatchError:
0527デフォルトの名無しさん
垢版 |
2020/04/10(金) 21:58:12.08ID:GziE5Jrh
あーなるほど
どうもありがとうございました
0528デフォルトの名無しさん
垢版 |
2020/04/11(土) 09:01:41.18ID:baIYUoyt
メインクラスがあって、メンバとして別クラス(仮にA)のインスタンスを持っているとき、
Aの中のメソッドからメインクラスのメンバやメソッドにアクセスするにはどうすれば良いですか。
0529デフォルトの名無しさん
垢版 |
2020/04/11(土) 09:52:19.98ID:rpboyRp0
え、普通に
メインクラスのself.クラスAのインスタンス.メンバ
でアクセスできないですか?
0530デフォルトの名無しさん
垢版 |
2020/04/11(土) 10:05:21.63ID:3U1NgBPQ
おいーす 俺Python初心者
Pythonはインデントが必須らしいけどコピペするときとか困るんじゃないの?あとめんどくさくない?
この言語ってええの?
0531デフォルトの名無しさん
垢版 |
2020/04/11(土) 10:22:13.93ID:NNgfTpfC
>>528
Aのコンストラクタにメインクラスのインスタンス渡してA側でメインクラスのインスタンス保持させておいてそれ経由でアクセスする
0532528
垢版 |
2020/04/11(土) 11:40:33.99ID:baIYUoyt
>>529
有難うございます。
メインクラスからAのインスタンスのメンバにアクセスしたいのではなく、
Aのメソッド中からメインクラス(のインスタンス)を参照したいのです。

もうすこし具体的にやりたいことは、メインクラスでウィンドウやUI処理させて、
Aクラスは裏で通信やデータ処理をして、結果をUIに返すみたいなことです。
データ処理の結果を、メインのUIでメッセージボックスやログウィンドウに出力するのに、
メインクラスのメソッドを呼ぶにはどういうクラス構成にしたら良いのかなという疑問でした。

>>531
やっぱりどこかでメインクラスのインスタンスへの参照を渡さなきゃいけないのですね。
ありがとうございました。
0534デフォルトの名無しさん
垢版 |
2020/04/11(土) 12:51:21.82ID:l/viBljq
>>530
初心者以前じゃね?
こまんないよ めんどくさいかどうかは、入力補助アプリ使うかどうかとかによる
いいかどうかは目的次第だが、流行ではある。
0535デフォルトの名無しさん
垢版 |
2020/04/11(土) 15:17:05.23ID:Rx07X+Iy
>>530
コピペミスなら見た目で判断できるから問題ない
きれいに書くクセがついてない人を矯正する言語と考えれば初心者向けではある
0537デフォルトの名無しさん
垢版 |
2020/04/11(土) 16:09:21.34ID:Rx07X+Iy
>>536
直せばいいと思う
あなたはプログラミング上のミスをどうやって修正してる?
数百行書いてる時点でその他のミスもでてるはずだけど、それと同じように直せるはずだよ
0539デフォルトの名無しさん
垢版 |
2020/04/11(土) 16:19:28.66ID:l/viBljq
>>536
かの秀丸エディタ様には
範囲選択して右クリック→インデントを増やす・減らす機能があるぞよ。
0541デフォルトの名無しさん
垢版 |
2020/04/11(土) 16:38:34.48ID:Ni1vKiQd
>>536
Pythonはコピペに対して脆弱なのは間違いない
そこは諦めて使うかミスが発生しそうなコピペはやめるか
対象範囲のみdiffとったりしてリスクを許容範囲まで下げる

>>537
「目視でチェックするのか?」って聞かれて
「直せばいいと思う」ってなんやねんw

>>538
エラーが発生するケースはまだマシ
0542デフォルトの名無しさん
垢版 |
2020/04/11(土) 16:41:33.76ID:l/viBljq
そもそも
インデントエラーがスーパー出まくるような
くそ長いorむやみに深いネストを作るな。
538が言う通りである。
0543デフォルトの名無しさん
垢版 |
2020/04/11(土) 16:42:42.64ID:U79xAJ2e
こいつらpycharmもしらんのか?
使ってたらインドンテがずれるとか一発でわかるんだけど
0546デフォルトの名無しさん
垢版 |
2020/04/11(土) 17:16:36.96ID:3U1NgBPQ
>>542
出まくるとかじゃなくて一ヵ所でもあったら動作しないだろうに
0547デフォルトの名無しさん
垢版 |
2020/04/11(土) 17:32:32.18ID:YKvanYCA
>>541
エラーに行数出るんだから簡単に直せるじゃん
数百行はどうすんの? なんて言ってる奴はインデント以外のミスはどうすんだよ?って話
0548デフォルトの名無しさん
垢版 |
2020/04/11(土) 17:38:48.46ID:4HmUYAnX
どうすんの?って書いてる奴は別に今困ってるわけじゃないんだよな?

将来の杞憂をここに書かれてもな
嫌ならpythonやめて他の言語覚えてもいいんだよ?
0549デフォルトの名無しさん
垢版 |
2020/04/11(土) 18:49:20.39ID:Ni1vKiQd
>コピペミスなら見た目で判断できる
どうやって見た目で判断するの?

>直せばいいと思う
は?

>エラーに行数出るんだから簡単に直せる

見た目で判断できるから問題ないというのは
エラーで行番号がわかるから修正可能って意味だったのかー
エラーになってくれるといいね
0550デフォルトの名無しさん
垢版 |
2020/04/11(土) 19:00:25.49ID:M1rolH0E
すみません>>530ですが、メモ帳でしかプログラミングしたことないですのでツールの話はやめてください

pythonはやめてScalaにします
0551デフォルトの名無しさん
垢版 |
2020/04/11(土) 19:56:14.28ID:TRGikFff
ヲタはすぐにツールとかでマウント取りたがる
別に自分で開発したわけでもないくせに
ツールに頼るとコードを書く能力が落ちるぞ
0553デフォルトの名無しさん
垢版 |
2020/04/11(土) 20:49:46.83ID:6g5H7RR3
PythonよりScalaの方が難しいし
メモ帳しか使えないのに
使いこなせるとはとても思えない
0556デフォルトの名無しさん
垢版 |
2020/04/11(土) 21:48:03.64ID:zpjGHkVa
むしろツールを使いまくってコードをできるだけ書かないのが最近のトレンドだろ

目的がコードを書くことになっちゃあかんぞ
と、コードを書くことが好きな人が多い板で言ってみる
0557デフォルトの名無しさん
垢版 |
2020/04/11(土) 21:57:47.27ID:KrvrVmHy
Software Design 2月号の、Python 特集に、

VSCode で、Microsoft 製のPythonの拡張機能を入れて、
Python.jp の手順通りに、venv で仮想環境を構築すると書いてある

Windows 10, WSL, Ubuntu 18.04 なら、最初からPythonが入っている。
VSCodeの拡張機能・Remote WSL で、Linux にアクセスできる

file `which python`
/usr/bin/python: symbolic link to python2.7

file `which python2`
/usr/bin/python2: symbolic link to python2.7

file `which python3`
/usr/bin/python3: symbolic link to python3.6
0558デフォルトの名無しさん
垢版 |
2020/04/11(土) 22:05:56.66ID:TRGikFff
>>556
うまく表現できないが、補完機能を使って書いたコードには魂が入っていないから
書いた本人もコードの内容を三日で忘れてメンテできなくなると思うんだ
0559デフォルトの名無しさん
垢版 |
2020/04/11(土) 22:43:08.54ID:l/viBljq
補完機能を使ったらコード内にコメント書かないとか
あふぉといったらあふぉに失礼なレベルだぞwww
0560デフォルトの名無しさん
垢版 |
2020/04/12(日) 01:15:25.34ID:kO9eoW6/
software design ってネラーの暇人が小遣い稼ぎに記事描いてるイメージ
0562デフォルトの名無しさん
垢版 |
2020/04/12(日) 03:19:11.42ID:olxRYtrQ
a = 1
"a" + str(a)
型無しスクリプト言語なのに変換必要な意味ってある?
ここらへんの思想どっかに載ってないかな
0563デフォルトの名無しさん
垢版 |
2020/04/12(日) 03:42:46.67ID:43im3Bh2
お前はPHPやってろ
0564デフォルトの名無しさん
垢版 |
2020/04/12(日) 04:03:04.07ID:G3JTGpGI
>>562
Rubyも暗黙の型変換は(標準で)しない
なお型が無いのではなくて動的型付け言語だ

それでなぜ自動で型変換しないかといえば
バグの原因になりやすいから

個人的にもしなくていいと思ってる
ほんのちょっとの型変換を省く手間より
デバッグの労力が大変になる方が大きいから
0565デフォルトの名無しさん
垢版 |
2020/04/12(日) 04:13:48.20ID:VRY0Up0I
型がないというより、型がなんなのかを考えてくれる機能が付いている
その機能がカバーしてない部分は型を宣言しないといけない
0566デフォルトの名無しさん
垢版 |
2020/04/12(日) 07:02:05.23ID:zi/Lsyjr
ぶっちゃけ現場によってはセキュリティによって
ツールのインストールがくっそ面倒な所があるから、何となく気持ちは分かる

例えば秀丸のみ使用可の所とVSCode+使用可プラグイン(特にflake8とBlack)が使える所で
同じPythonプログラムの開発やらせたら絶対に印象が変わる
■ このスレッドは過去ログ倉庫に格納されています

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