くだすれPython(超初心者用) その47【Ruby禁止】
■ このスレッドは過去ログ倉庫に格納されています
当スレに★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/ >>398
妖精とは?
ライブラリとはまた違うんですよね? >>397
一言で言うとPythonの中に命令が書いてあるから 妖精は心がきれいな人にしか見えないんだよ
ライブラリは心が汚い人でも見える >>400
そうなのですか
でもじゃあなんで他の言語じゃそういう仕組みがないんでしょうか >>402
それはPythonがわりと若い言語だから
同期のRubyも同等の短い命令で書ける Goもやってみたいけどライブラリが少ないからなぁ、kivyみたいな便利なものが欲しい >>403
短い命令で書ける代償に何か遅いとかある? あるよ
妖精さんのMPが尽きたら動かなくなっちゃう >>397
プリントなんてどの言語も大差ないと思うけど
どんなコードを見ていっているの? public class HelloWorld {
public static void main(String[] args) {
System.out.println("hello, world");
}
} Javaはいちいち大げさすぎる
Pythonとは文化が全く違うのでこのスレ民には用無し Javaは大規模開発に向いている
小規模でちょこちょこやりたいなら、Pythonで十分 しかしpythonのself地獄はいかんともし難い
となるとpythonはそれ用には作られてないのではと思ってしまう simulationライブラリで純粋な関数式プログラミングをする
ttp://x0000.net/topic.aspx?id=3631-0
UIライブラリ (C#, 2D) を作ったよ
ttp://x0000.net/topic.aspx?id=3688-0
学術巨大掲示板群: アルファ・ラボ
ttp://x0000.net >>412
そらそうよ
Pythonのオブジェクト指向機能は後付けだからな
最初から純粋なオブジェクト指向言語として作られたJavaとはモノが違う >>405
Pythonは遅い言語だよ?
部分的にトレードオフがある
型を書いた方が早いとか >>414
JavaよりRubyの方がより純粋なOOP言語だよ 後付けというかJavaScriptと同じプロトタイプだからな。
JavaScriptのthisとPythonのselfどっちがマシか? >>415
でも主要な所はライブラリでCで書かれたのを使うから
実質は速いから問題ないっていう声も聞くんですが グダグダ言ってないで書いてpythonのできる範囲内ではどうやって遅いと思うなら他の言語に移植すればいい
その程度のスピードは出る
最初から世界最速目指さないと死ぬっていうなら別の言語のほうがいいが >>397
> 短い行で他の言語と同じ命令ができる
そうとは限らない。 >>418
高速なライブラリがあるから、それを使う処理は高速にできる。
pythonという言語自体は他の言語に比べて相対的に遅いから、pythonで記述した処理は相対的に遅いから遅い。ただその遅さが許容できる範囲内かどうかは要件次第。
何も矛盾はしてないぞ。
要はケースバイケースなんだから、単に遅いとか速いとかバカな理解のしかたをしないで、正しく使い分ければいいだろ。 プログラミングせずに口だけ動かしてたら妖精さん逃げちゃうよ! Java 系と python 系では思想が違う
Java はなんでもちゃんと書くという思想
python はなるべく書かないという思想
それだけのこと
長所、短所は何とも言えない んな思想はない
Explicit is better than implicit. >Explicit is better than implicit.
この考え方も後付けなんだよね 遅い早いとかおまえらのレベルじゃ気にするレヴェルじゃねーだろ >>427
全くの別物だけど、どういうところが紛らわしいと思うの? >>429
スルーしてたけど全く別物でワロタwww ありがとうございます。こちらで教えていただいたおかげで無事に1ページ目のURLやタイトルを取得し出力することができました。
今はページを遷移して全ページのタイトル、URLを取得しようとして、次へのURLは取得することができたのですが
最後のページは次がない為苦戦してます。get_htmlメソッドで別のページのhtmlを解析している動画があったので私も使ってみたのですが、
なぜか使えずNameErrorになってしまいました。何が原因なのでしょうか?get_htmlメソッド以外にもラストページのhtmlを解析できる方法がありましたら教えていただければ幸いです。
質問がわかりにくく申し訳ございませんが、宜しくお願いします。 >>432
1.htmlを解析する
2.次のURLがある場合取得して1に戻る ない場合、終了する
だけなんだけど、エラー時の対処方法が分かりませんということかな
if文で分岐するか、try ~ exceptで囲んでしまうかなんだけども >>431
enumは後から値を書き換えられない&キーを追加できないかわりに、読みやすい、キーがシンボルなのでtypoしてもすぐに見つかる、値からキーを引けるのが大きな違いかなあ >>432
ようわからんからサンプルソース
https://ideone.com/0KvMNh
ideoneに貼っつけたらURL部分が変わってしまったので、
main()の最初のnext_urlにはtopのURLを入れたら動くはず >>434
違いはイミュータブルとみやすさってことですかね
値からキーなら辞書でもitems()と内包表記でできますね
キーがシンボルというのはどういう意味でしょうか >>427
元々は数十個の連番の定数を定義するためにC言語で使われた
enumなんかは存在せず、全てdefineでやっていた
それが40年ほど掛かって進歩して、今日のenumになった
なので直感的に理解しやすいのはC言語のenumで、それ以降のenumは抽象度が上がってるので理解し難くなっている
そして現代プログラミングではそもそも連番の定数というものは使わない
連番の定数による状態の区分けと、OOPでの状態の区分けは、機能が相反する 月の名前
4月 と April
とかは、一度定義すれば変わることはないので、一度定義したら変更不可にしておいた方が安全だというのが enum の有効な使い方 >>432
ありがとうございます。エラーの対処がわかりませんでした。if文で作ってみますね。
>>435
不十分ですみません。コードありがとうございます。参考にさせていただきます。 >>436
enumと辞書は根本的に用途が違うよ。
enumは固定の値として使うもの。一連のグループとして括られるある定数の集まりに、分かりやすく名前とその値を決めてあらかじめ定義しておくためのもの。
辞書は入れ物。プログラムの処理の中で、必要に応じて中身を追加したり変更したり取り出したり削除するための箱。 tkinter.ttkってtkinterのサブモジュールだからfrom tkinter import * でロードされないのですか?
また
from tkinter import *
from tkinter import ttk
だと丁寧でないので
import tkinter as tk
import tkinter.ttk as ttk
としたいのですが、なにか(二重ロードなど?の)問題がありますか? Pythonのインデント強制って結構欠陥じゃないか?
コピペが安定的にできんし見た目で何個空いてるのかも分からん 俺も強制インデント好きじゃないな
括弧の方が好き
> コピペが安定的にできんし見た目で何個空いてるのかも分からん
不可視文字表示のプラグインを入れればいい インデントがバラバラだと
イラつくから統一してるんだろ?
でもオレもRubyみたいに
整形の自由度高い方が好きだが そんなに嫌いではないけれど、やっぱ長い関数やクラスだと見づらいわな。
tensorflowとか長ったらしい関数使う割にインデント2って最悪だわ。 関数名や変数名で単語の区切りに大文字を使うことはしないの? kivyのcanvasにctypesでがっつり描いてGUIやってる >>447
そうでもない
>>448
のぞましくない という。
少なくとも、先頭には使っちゃいやーん。
(クラスかなにかと、まぎらわしくなるからだとかなんとか)
ただし、
不変な値の名前に、ならば、
全部大文字ならおk...らしい。
例) URL_TUPLE=("http://5ch.net", "https://5ch.net") >>447
じゃあ何で書いたら楽なの?
Ruby on Rails ぐらいしか選択肢がないが 偉大な言語には接頭語を付けて「おPython」と呼ぼう >>456
「(上級者wwwからしたら)くだらない(かもしれない)質問を書くスレ」の略語らしいぞ Python, Markdown, Yaml などは、
VSCode の有名な拡張機能、indent-rainbow でカラー表示できる! vscode入れ直したらクラスは2行開けとか、カンマの後はちゃんとスペース入れるとか、空の空白入ってるとかで警告出てたの出なくなっちゃった
どこいじったのか覚えてないや >>463
多分select interpritatorでpython実行環境を設定してないのが原因 python.pythonPath 設定してないんだろな pyautoguiでも何でもいいのですが、
別の仮装デスクトップ上に画面とか展開して自動で動かす方法はないですか?
メインのデスクトップ上では他の作業をしてるので、自動化作業は、別の仮装デスクトップ上で不可視の状態で進んでいて欲しいです。 >>466
無理
俺も前似たようなことやろうと思ったけど、仮想デクストップ系の制御はあんまり融通が効かない 出来ないこともないけど最初から仮想の方で動かせば完結してない? >>466
画面・マウス・キーボード切り替え器for2台用を購入して
パソコン本体を2台にしる 作業内容にもよるけどブラウザで完結するならselenium使えばいける Pythonでグラフィック使ったゲーム作りたいんですがGUIライブラリ入れたらできますか?
方法があれば教えて下さい。試しにKivyての入れようとしたら難しすぎて無理でした。 >>472-473
「ハサミを買っても使い方が難しくて分からない」と言ってるやつは
永遠に「ハサミで紙を切る」ことができないままだ。
アナコンダはGUIアプリを作るためのものではないので
へのつっぱりにもならん。 ゲーム作るならPythonを今すぐ投げ捨ててUnityを使おう
Pythonに拘って今どれだけ苦労しようともいずれ必ず他へ移行することになるんだし、Unityなら初心者向けの本などは腐るほどある kivy慣れるとめっちゃ便利なんだよな
しかも覚えるとUnityやSwiftまで簡単に見えてくる >>474 Kivyは使ったことすら無くてインストールでつまずいてます。
>>475 調べたらUnityはゲームエンジンで言語はC#ですね。C#用の無料IDEがあるかどうか。
>>476 そうですかインストール頑張ってみようかな。簡単に越したことはないし Unityはそれ自体IDEだし、個人ならVisualStudioも無料 GUIアプリってのもまた微妙な言葉だな。
ゲーム、ブラウザ、デスクトップアプリ、スマホアプリ
でも取り扱いが全然違うだろ。 わかりやすい解説見つけたからやってみたらKivyインストール出来た
せっかく環境作って途中まで勉強したしPython + Kivyで作ってみます。ありがとうございました >>480
ここまでスレ使ったんだから
その
「わかりやすい解説」とやらのページに行くための検索単語か
「h」をとったttp以降のアドレス書いてけよダボハゼ いやせっかくUnity教えてもらったし迷ったけどKivyの方が簡単て聞いたからだけど
結局Kivy入れるならもっとKivyのインストール調べてから聞くべきでした。失礼しました
参考にしたブログは
ttps://algorithm.joho.info/programming/python/kivy-install/ pythonとはライブラリである
実際のプログラムはjuliaで書く
pycallで呼び出せばいいのだ これのインストールのどこが難しすぎるんや???
煽り抜きでがちで解せぬ
zip解凍してexe叩くのに比べて難しいってこと?何と比較して難しいの?え? 質問です
100万個くらいの点があって、それぞれ名前、X座標、Y座標を持っていて、
その中で2点間の距離が、ある範囲にある点の組を抽出したいのですが、
速度が速いのは、どういう方法になりますか?
いまは全然Pythonっぽくなく、単に各点の名前、座標でリストにして、
X、Y座標のforループ2つで、距離はmathで三平方の定理…です
ただ、100万×100万÷2も回すのはさすがに辛いので、
一応時短のため、先にリストはX座標でソートしておいて、Xの小さい方から評価して、
X座標の差が、距離の範囲のmaxを超えたらbreakでXのループ抜ける…ってのだけしてます >>486
距離をもとめる計算の部分を
numpy.linalg.norm でも使ってみたらどうだろう とりあえずマンハッタン距離で評価してマンハッタン距離>=ユークリッド距離は自明だからそれでフィルタする 空間を適当なサイズのメッシュで分割して、互いに近くにあるセルのペアに含まれる点だけで距離を計算すればいい
俺も全く同じことをやったことがあるんだが、見も蓋もないことを言えば
ぶっちゃけ手間暇かけてそういう工夫するよりCで普通に二重ループぶん回した方が結局手っ取り早くて遥かに速いよ >>486
一回しかやらない処理ならpythonでいいけど、毎回計算処理入るようなシステムに組み込むならコンパイル言語でやった方がいいわ。 >>490
>互いに近くにあるセル
この判定がめんどくさそうだな >>486
理論的なことは他の人が答えているので実践的なことを一つ
モジュールscipy.spatialにKDTreeってのがあるからそれで解決 >>487-494
回答ありがとうございました!
いろいろヒント貰ったので、それぞれ試してみます
>>493
さすがに1兆回やりきったことはなくて、
>>486で、データによるけど100億のオーダーくらいには減らして、
6時間〜半日くらいかかってます(遅いノートPCだからってのもありますが) class Base():
__def __init__(self):
____self.a()
____self.c()
__def a(self):
____def b():
________pass
__def c(self):
____pass
self.c 内の処理でself.a内関数bを呼び出したいんですが、なんと書けばいいのでしょうか >>496
def a(self)の戻り値にreturn bとして関数を返す
そうするとself.a()で関数bが帰ってくるから
b2=self.a()
b2()
で呼び出せる
一行でかくならself.a()()となる ■ このスレッドは過去ログ倉庫に格納されています