くだすれ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/ えーと、ごちゃごちゃ続けて済まない
要は、「正当でない」「元のクラスの改版で衝突するかも」以外に、なんか実装の仕組みとか言語の根本思想とかに関わる「やったら駄目な理由」があるんなら知りたいんだ 正当である理由も知りたいんだけど。いったい何の正当? 衝突するかもが一番の理由だろ
使い捨てスクリプトなら好きにすればいいんじゃね 近代的なPythonプログラミングにおける一番の問題は静的型検査の能力が損なわれることだろう
VSCodeで補完できないし型チェッカー使ったらエラーになる 型チェッカーに詳しくないけど、ダックタイプなのに拡張プロパティが付いただけでエラーになるの? そりゃ型に存在しないメンバにアクセスしようとしてんだから正真正銘エラーだよ 凄い長いループ文の最後に取得したい値があるとして
ループの最初にp=[]するんですが最後のと距離が離れすぎてて
忘れそうor間違えて消しそうですが
p = []なしで値を集める方法ってありますか?
p = []
for v in vals:
____この間凄い長い
___p.append(s) p = [ hage(v) for v in vals ]
def hage(v):
____# この間すごい長い処理
____return s
これはだめなの? p = list(map(hage, vals))
または
p = map(hage, vals) p = list(map(hage, vals))
または
p = map(hage, vals) p = list(f(vals))
def f(vals):
____for v in vals:
________この間凄い長い
_______yield s “There should be one-- and preferably only one --obvious way to do it.”じゃないのー? C言語を触ってて今日からPythonを見始めたけど、クラスだメソッドだインスタンスだ横文字だらけで説明されてさっぱりだ🤔 >>115
Cができるなら新たな言語を学ぶ必要はないぞ
特にオブジェクト指向は学習コストに比して実効果が割に合わないしな >>115
オブジェクト指向を覚えるのは
(Cでの構造化)プログラミングを覚えるのと
同じかそれ以上に時間かかるが
学んだだけの効果は出るはず
正しく学べればだけど >>117
正しく学べなかった奴の一例が>>116というわけだな >>115
きょうびオブシコ機能がない言語の方が少なくない?
勉強して損はないと思うけど >>115
Pythonをやる前にC++をやった方が良いな
Cできる奴はすごい奴が普通だからC++はたいして難儀しないで習得できるだろ
で、C++後、Pythonをやるとあっという間に覚えられるだろ Javaは論外
C++はやりたければやっても良いが
おすすめは C → C# → Python 皆さんありがとうございます
そもそもdefにすべきだったんですね
せいとんして頑張ってみます >>86
しばらくログインできず、今日書き込みみて解決しました
ありがとうございます 仕事で目にするPythonコードってただ一本調子でデータを加工するだけで
オブシコどころか階層化プログラミングすら怪しいのが多いわ
コピペも多いし、ぶっちゃけCOBOLレベル Ruby を1 とすると、
Python : 3
JavaScript : 5
C++ : 10 >>121
そう簡単だよ
そしてたいていの言語はC++よりは簡単
>>122
JavaはC#より開発現場で使われてるからな
言語仕様は後発のC#の方がモダンだが
C → C# → Python
その言語の中ではPythonが一番易しいから
Pythonから始めるのがオススメ >>129
それはその通り
でPythonはメジャーな言語の中では比較的コード自体に興味がなくて目的を達成できさえすればよいと考えるタイプの人が多い
まあ、だからこそ収入も高い傾向があるんだけどね >>125
これは同感
良くも悪くもそういう用途にフィットした言語
オブジェクト指向をpythonで勉強しましたってやつにはロクなのがいない >>125
一本調子でデータを加工するだけの処理だからpythonでササっと書いてるのでは?
単に目的に合った選択をしているだけの様に思えるが コボル人(こぼるど)ばかにすんなよw
そろそろコボルのXデー近づいてるから
CやPythonに書き換えるお仕事わいてきてるはずなんだからー matplotlib pyplot とか使うとオブジェクト指向に出来なくて(出来なくはないけど)
適当に描いてるうちにダラダラしてしまうことが多いのは事実
だが意識他界系の人なら綺麗なコードになる あと Blender の python も気付くとダラダラしてしまってる
気を付けないとな バッチ処理みたいなものをわざわざオブジェクト指向丸出しで書く奴のがあほだわ。
関数型にこだわる方がまだマシ。(どっちも度が過ぎるとあほだが) 関数型っていまいち理解できないんだけど、どーゆう考え方なんですか? ITの巨大掲示板群 ttp://x0000.net
(アルファ・ラボ|学術掲示板群) つーかその場でササッと書いて動かしてナンボのやっすい言語で
いちいちクラス設計するのは本末転倒だわ
Pythonにはオブジェクト指向は似合わない >>139
オブジェクト思考が解らん言い訳はやめろ
そんなに難しいものじゃないぞ >>136
いうても関数型プログラミングのサポートしょぼいからな
結局昔ながらの手続き型がもっともPythonに合ってる 関数型って何だろうと思ってHaskellいじってみたけど、頑張って再帰関数で処理する事を考えるプレイとまでしか思えなかった 大抵の再帰処理はlispの時代に出尽くした
あとはそれの応用、というか真似るだけ
正規表現だって人類に必要なやつの80%はperlの時代に出尽くした
あとは考える必要はない、探して真似るだけ >>143
変に複雑に考えんでも、参照透過性、副作用させないってことを意識したプログラムって
考えればええわ。(そもそも lisp, erlang, haskell, その他色々でも捉え方は違うし)
それによってデバッグしやすくなったりパイプライン処理やブロードキャスト処理が
しやすくなるってことくらい押さえとけばよし。 すごくアホな質問だとおもうのですが
def df=input_data()
def df1=analyze1(df)
def df2=analyze2(df1)
.
.
.
def df10=analyze10(df9)
def draw_graph(df10)
みたいにテキストファイルからdfにデータ読み込み
10個ぐらい解析処理
df10でグラフを描写
みたいなプログラムを書きました。 df0からdf10まで11個あるんだろ
次はdf100までちゃんと書くんだぞ
コピペすれば早く終わるからな すごくアホな質問だとおもうのですが
df=input_data()
df1=analyze1(df)
df2=analyze2(df1)
.
.
.
df10=analyze10(df9)
draw_graph(df10)
みたいにテキストファイルからdfにデータ読み込み
10個ぐらい解析処理
df10でグラフを描写
みたいなプログラムを書きました。
ここまではうまく行ったのですが、
データ決定→グラフ描写
を1回だけでなく2回行い並べて表示させたくなりました。 この場合先程の
analyze1〜analyze10
までを一つのクラスProcessDataにして2つのインスタンスABを生成して実行すればいいかと考えたのですが、
process_dataA=ProcessData
dfA=process_dataA.input_data()
.
.
.
df10A=process_dataA.analyze10(df9A)
process_dataA.draw_graph(df10A)
process_dataB=ProcessData
dfB=process_dataB.input_data()
.
.
.
df10B=process_dataB.analyze10(df9B)
process_dataA.draw_graph(df10B)
とインスタンスAとインスタンスBに対して全く同じ処理を行うルーチンを2度書くのがあまりに冗長な気がするのですが、なにか良い方法ないでしょうか? 関数として処理を切り出せばいいんじゃないんですかね。。 >>150
途中のdfが不要なら上書きしていけばいい
Pandas使うときはよくやる
df = input_data()
df = analyze1(df)
df = analyze2(df)
…
それを関数に抽出
def analyze_data(df):
____df = analyze1(df)
____df = analyze2(df)
…
____return df
df = analyze_data(input_data())
draw_graph(df)
関数のリストを作ってそれを適用する方法もいろいろとあるけど
今の段階なら上の方法からやるのがいいかと >>152
>途中のdfが不要なら上書きしていけばいい
自分で書いといてなんだが
df = df.apply(analyze1)とかでapplyできる形でなく
全く異なる別のDataFrameを生成してるんであれば変数名は変えたほうがいいかも Categories > Tech > Languages (Python)
https://duckduckgo.com/bang?c=Tech&sc=Languages+(Python)
ドキュメントの探し方
https://news.mynavi.jp/itsearch/article/devsoft/4859
>任意の機能を持った対話システムを自分で開発する場合にはどうしたらよいのでしょうか。
当然ながら、必要なモジュールは自分で探す必要があります。しかし、プログラミングを始めて間もない方の多くは、
どうやって調べたらいいかわからないのではないでしょうか?
そこで今回は、「カレンダーを表示する対話システム」の開発を想定し、
カレンダー機能の実装方法を調べていくプロセスを紹介したいと思います。 >>152
なるほど
クラスにするとインスタンス生成して、ポインタ指定しなければいけないから、冗長になるけど、
あえてクラスにしないで関数にするとシンプルになりますね。
オブジェクト指向でクラスにしなければいけないと思ってたけどあまり黄にしなくていいのかなぁ。 df自体がDataflameオブジェクトのインスタンスなんだけどそんなこともわかってないのかな >>146
「df10」みたいに
変数名や関数名、クラス名などに
数字がつく時点で間違ってる
Pythonのまともな本の
サンプルコードでは
まずそうなってないはず >>156
Ruby では普通は、モジュール内にはクラスを定義するけど、
単にモジュール関数も定義できる。
例えば、my_utility.rb 内に、モジュールを定義する
module MyUtility
def my_func( 引数 )
end
module_function :my_func # 外部へ公開する
end
別のファイルで、上のモジュールを読み込んで、関数を呼び出す
require_relative "my_utility.rb"
MyUtility.my_func( 引数 ) >>156
あえて一言でポイントだけ言うと
クラスを作るかどうかは
状態を管理したいかどうか Pythonって文字列部分にダブルクオートを使わずに
シングルクオートを使って書かれてるコードの方が多い気がするんですけど何か意味あるんですか?
シングルクオートのキーボードの位置って結構押しづらい位置にあるからあんまり使いたくないんですけど >>159
すいません。
実際の名前を書くと長くなりすぎるかと思って適当な名前をつけてしまいました。
ちなみに実験条件1、実験条件2データを
experimental_condition1
experimental_condition2
というのもあまり良くないのでしょうか? >>161
状態を管理するってどういう意味でしょうか?
本とかでゲームを題材に敵を量産するためにクラスを作るのはわかりやすいのですが、
数値計算とかだと、どこでクラスを使うべきかよくわからなくなります >>162
USキーボードはダブルよりシングルの方が押しやすいから >>158
なるほど
関数型プログラミングとは聞いたことがありましたが、こちらの方が数値計算とかだとしっくりくるような気がしますね >>164
単純な数値計算は関数だけでもいい
むしろその方がスッキリする
三角関数とかに状態とかないから
ゲームの場合は状態遷移の塊で
状態を保存しておきたいから
クラスを作りインスタンスを生成する >>165
ありがとうございます
そういう理由なんですね >>163
dfA とか dfB とか dfZ とか使ってる人もいる
どっちにしろ素人丸出しコードになるのでお薦めはしない ぺっぷってやつにどっちが推奨とか書いてないの(´・ω・`) """hogehoge"""
↓よりも見易いのは
↓こっちやろ
'''hogehoge''' blackがダブルクォーテーション推してるからダブルクォーテーション使え >>163
(とくに二桁以上に増える可能性があるものは)
後で複雑化して大変になるから
たとえば配列を使ったりして
番号を振らないで済むようにする方が推奨できる >>163
なげーよ、短く且つなんのデータフレームかわかる命名しな。センスが問われる。 >>162
C#ではダブコ使うからダブコに合わせる >>177
pythonのほぼ公式formatter >>163
テストが2つしかないと明確に決まってるなら〜one,〜twoでいいと思うけど
それがいくつになるのか解らない、もしくは多いのならリストを使って
〜[x]としたほうがスマートというか扱いやすい
変数名、関数名、クラス名に数字を使わないというのは
プログラムの作法(?)として言語を問わず普通というか当たり前 あと、なんか知らんけどこのスレ、プログラミング自体が初めてな
感じの奴多い気がするんだけど、学生なのかね?
なんかpython選択しちゃってどうしたらいいか解らない的な
質問が多い気がする >>182
PythonのPHP化だよ
すそ野が広がれば初心者も増える 超初心者ってのはプログラミング自体初めてっていうヤツのことなんじゃないの
初心者に輪を掛けて超がついてんだよ
それ以外に何かいるの >>183
ユーザー層的にはPHP化というよりExcel化だな わいRuby厨、いまからプログラミング始める学生に勧めるならもうRubyよりPythonかなって思ってたけど、お前らは最初の言語は何がいいと思ってんの? 最初ならアセンブリ。冗談じゃなく。
ほんのちょっと齧っておくだけでいい。 >>182
本屋いってみ?
スクラッチとパイソンだらけだ
あの状況はちょっとやばい気がするぞ 供給過多で単価が下がるのはプロパー的にはありがたい
Pythonはコーディングスタイルを統制しやすいから低スキル層を束にして使うには向いてる >>167
なるほどわかりやすいです
自分はゲームとか作ることはないので、
クラスにする必要性はなかったのか・・・
C#の初心者本とか見てるとクラスにしないといけないような脅迫観念があった >>181
配列は自分も考えたのですが、
今回は2つまでなの確定なんですよね
before, afterの頭文字とって
DF_B, DF_A
とかしたら訳わかんなくなるんだろうな
名前決めるのって難しい plt.plotで2つのグラフを順番に表示させると、
1名目のグラフのウインドウを閉じないと、2枚目のグラフのウインドウが表示されないのですが、
同時に表示させる方法ってないでしょうか? >>195
>低スキル層
で、超ゆとり教育を激受けて脳が未発達で実質知的障碍者に近いレベルの奴が
たむろしているのが俺らのこのスレだからな。 ■ このスレッドは過去ログ倉庫に格納されています