【まず1嫁】くだすれPython(超初心者用) その53
■ このスレッドは過去ログ倉庫に格納されています
当スレに★Python以外のプログラミング言語での回答類を書くべからず★
派生言語はそれぞれ専スレがあるのでそっち池。
「Ruby」「某言語では」をNGワード登録推奨。荒らしは、完全スルー放置が一番きらいです。
このスレッドは「お勉強」スレのほうには書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を、勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますので、お礼は Python の布教と初心者の救済をお願いします。
★エラーを解決したい場合は、
表示されてるエラー全文(勝手に省略やスクショうp等の横着クソ行為禁止)と、
実行環境(Pythonのバージョン・OSとIDEの種類とバージョン)をシッカリ書くこと。
Pythonの★ソースコードをそのまま5ちゃんにコピペすると、インデントが崩れてチヌ★
5chの仕様【【【複数の連続半角スペースはなにもなかったことにされる&タブは普通には入れられない】】】のため、どうにもなりましぇん。
↓等の、いわゆるコードうp用サイトに貼ってこいください。
ttps://techiedelight.com/compiler/ Run Code機能あり。
ttp://ideone.com/ デフォ設定はC用のため、言語選択ボタン押下がピコ手間かも。
ttp://codepad.org/ ほぼ直感的に使える。Run codeボタンあり。
ttp://pastebin.com/ まずまずシンプル。
ttp://dpaste.com/ とてもシンプル。消えるまでの日数は十分長ーく指定のこと。
◇Python公式サイト◇ http://www.python.org/
◇まとめwiki◇ ttp://python.rdy.jp/wiki.cgi
〇前スレ〇 くだすれPython(超初心者用) その52【まず1嫁】
https://mevius.5ch.net/test/read.cgi/tech/1610137345/
次スレは >>985 あたりが挑戦してくだしあ。(980過ぎて自動落ちは、無くなって久しい)
### END OF TEMPLATE ### >>289
新人>>288がその日のうちに
プロジェクトの全dtoのsetterを分解して
メンバーをpublicにしてその実装に書き換えたのを発見するのだった >>337
マウント取りたいだけなら他所でやるがよろし >>337
Javaしか書いたこと無いんだなって速攻で分かる
Pythonだとgetter/setter的な書き方はしないから、書き方っていう事自体発生しないっていう
(どうしてもやりたい場合はデコレータかpropertyを使う) pythonも一応getter/setterみたいな書き方できるけどもっと応用的に使うイメージ
単純な表示/代入は普通にアクセスすりゃいいし pyちゃんの貞操観念はガバガバ
でもgotoは死守 クラスでめちゃくちゃハマったのでメモしときます・・
なんでこうなるのか上手く説明できませんが解決したコードと検証コードです
https://pastebin.com/pScxSpQ5 >>346
インスタンス化したときに(クラス変数で)初期化されるもんだと思ってた・・
というかクラス変数と__init__内に書いたself.◯◯のインスタンス変数は
書く場所が違うだけで同じかと思ってました
とりあえず「クラス変数はイジらない変数」で覚えときますありがとうございました WindowsストアのPythonってどんなもの?
会社でライセンス違反と知らずにanaconda入れてるマシンが多数あり全社一斉に他のpythonに切り替える必要があるんだけど
ストア版はMSが用意するPythonだから安心と考えるのは安直かな? >>347
クラス変数はクラスそのものが持つ変数だから<クラス名>.<変数名>でアクセスするのよね
いつも使ってる<インスタンス名>.<変数名>でアクセスする方がインスタンス変数という >>348
安直なのはanacondaも同じなので
ライセンス違反を回避するため
anacondaからmsにしましたでいいじゃない エンジニアがStoreのpython入れるって正気かよ anaconda駄目なんか
ググったら社長がブログで小規模商用なら全然OK書いてるけど 環境構築もままならない上に便利に使ってるなら普通に金払えよって思う ストア版はコンパイル必要なのpipする時とか罠あったはずだから公式にしとけ anaconda
社員数200人以下のところはfreeの使ってもOK
businesses with less than 200 employees is allowed ストア版はやめとけ
anacondaは普通に使えてる 入る気がする
term of serviceに
「同一命令系統に服するemployeesが200人未満の組織」とも書かれてるから >>358
社員って俗称なのでケースバイケースだけど通常はバイト等は含まないことが多い
法的には従業員数でこれにはバイトやパートも含まれる >>360
ある月は200名未満、ある月は200名超えたらどうすんの? >>362
超えてる期間は使っちゃダメとかかな?w
まあそういう懸念があるならライセンサーに事前に確認すべきだろうね tkinterで動的に複数のボタンを生成して
1つクリックしたら専用のスタイルを適用
他のを全部未クリックのスタイルに
ってやりたいんだけど、ウィジェット生成時に名前をつけてリストに格納しといて
ループ回しながら処理 みたいなことするしかないですか? ストア版が駄目ってubuntuも同様?
最近MSはOSSに協力的だしいずれWinとLinuxがシームレスに繋がる素敵な時代が到来するのかと夢想してたけど 選択肢の中に公式で配布してるPythonが入らない理由はなぜですか?どうしてanacondaとストア版の二択? ベースが公式だからかもしれん
公式のIDLE使いやすいからおすすめ IDLEは、pep8のコメントアウトすらできない出来損ないなのでパスです javaでseleniumを使っていましたがpythonに移行しようとしたら
javaでは普通だった
Wait<WebDriver> wait = new WebDriverWait(driver, 20);
を
wait = WebDriverWait(driver, 20);
として各関数で使っていたら「Shadows name 'wait' from outer scope」と怒られました
理由は理解できましたが各関数毎に異なる秒数で頻繁に使用したいので何かいい方法は
ありませんでしょうか、ステートメント毎に一々
WebDriverWait(driver, 20).until(...)
なんてやっていたくありませんし、変数名を関数毎にfnx_waitなんてのもスマートな気がしないのですが・・・ QMA的なクイズゲームを作りたくて今日からpythonを勉強し始めました
プログラムは初心者なので、わからないことがあったら手取り足取り教えてくれると嬉しいです! >>375
残念ながらPythonはゲームには向かない
初心者の第一歩としては悪くはないが、プログラミングの基礎の基礎だけ学んだら描画とかに深入りする前にUnityとかに移ったほうがいい >>377
なるほど、ありがとうございます!
UnityだとCとかか・・・
がんばります 一応PyGame使えば作れなくもないけど茨の道にはなるな pygameもpysdlも死んでる
唯一renpyがギリギリセーフ if
elif
elif
else
とやるとき、ifのどれかに当てはまるなら真 を実現したい。elifとelseの間が欲しいというか
やっぱり式をorで繋ぐとかフラグ立てるとかですか?
なにかいい方法はないでしょうか if節で一回、ifどれかで一回
2回真になるようにしたい >>382-383
>ifのどれかに当てはまるなら真 を実現したい。
と
>if節で一回、ifどれかで一回
>2回真になるようにしたい
は同時に成立するものなのか? >>378
UnityはC#だな (ビルドするとC++になったりはするが)
Unityは純粋なC#と比べるとちょっと違和感あるかもしれんが、公式のサンプルたくさんあるからまずはそこからやるといいさ >>385
x=1
if x==1
elif x== 2
if x==1 or x==2 ここが際限なく増えていく
else >>382
おれなら
NotElse = True
if
elif
elif
else:
NotElse = False
if NotElse:
...
ってやるかな cond(x,cand)を2入力、真理値出力の関数として
if any(cond(x, cand) for cand in cands)
みたいにすれば出来そう インスタンス変数ってすべてデコレータなどのpropertyでゲッターにしといた方がいいのでしょうか?
セッターもゲッターも作るとなるとそれ結局はインスタンス変数直接いじるのと変わりないのでは?と思ってしまうのですが。。 >>382
a=4
if a==1:
_f=lambda : 'if'
elif a==2:
_f=lambda: 'elif1'
elif a==3:
_f=lambda: 'elif2'
else:
_f=lambda: 'else'
r = f()
print(r) >>392
ゲット、セットする度に何か特殊な処理をしない限りはいらないと思う tabula-pyを使った。
pyinstallerでのexe化の難易度高すぎて泣いた。
こういうの自力で解決できる奴すげーな。 Python3.6になったあたりからね>PyInstallerがむつかしめになった PyInstallerを簡単にするwrapperがあった気がする。 フリーズとかなんとかってやつ?
あいつは重い でかい pythonに限った話ではないかもですが、
定期的にデータを取得して最大値を更新していくような処理をする時、
初期値として
max = None
としておくと、
if max is None or max < new_value:
____max = new_value
みたいに、Noneかどうかの比較というのが必要になりますが、たった初回のNoneのために毎回比較するというのは処理(とくに処理時間等)として無駄でしょうか?
例えば初期値を、ありえないぐらい小さい値にしておいて、どんなデータが来ても必ず更新されるようにしておく、というやり方もあるかと思いますが、Noneのように「未反映」という状態を示したいです。
上記に限らず初期値をNoneにするといたる所でis Noneの判定が出てくるのでどうも無駄な比較に思えてならないのです。
気にするレベルではないならそう言っていただけると安心です。 初回だけはpred.としてNoneと比較する関数をyieldする
次回からは値を比較する関数をpred.としてyeildする >>403
自分が気にならないレベルかどうかを%timeitとかで計測して確かめるがいいと思うよ max_val = float('inf')
にしておいて逐一
max_val = max(max_val, new_val)
で良さそう inf無限大なんてものがあるなんて目からウロコでした!
これなら演算も比較も、format表示もエラーにならないので使えそうです。
yieldについても、なるほどそういう使い方があるんですね。
ありがとうございます。
>>407
速度については今度確認してみたいと思います。 クラス内のメンバ変数って
やっぱり一番最初に全部宣言しとくべきですか?
色んな関数内で好き好きに宣言するのは良くないこと? Pythonはどこで宣言してもゆるしてくれるが
人間的には先頭にかためておけよ って思われる Javaの作法を敷衍させると先頭に固めるのが良いとの伝承がある pandasのdescribe()のような集計結果から(元データがなく、集計結果の数値のみが与えられた状況です)、これを用いてpythonで箱ひげ図を描く方法をご存知でしたら教えてください。matplotlibやseabornのboxplotは元データが必要のようで、行き詰っています。 >>416
ひげの長さのもとがないようなデータにあとからヒゲはやしても不自然なだけくね?
分析ずみのその値とやらだけ注釈枠作ってかいとけ >>417
ありがとうございます。結局エクセルの積み上げ棒を加工して描く方
法で乗り切ることにしました。 大学の授業課題で使い方もろくに理解してないのにjupyter notebookを使って課題を提出しろとのお達しが出た
サンプルコードから見様見真似でいろいろやってみたけどエラーは出るし調べてもよく分からんし詰んだ
ちなみに「リスト同士の除算ができません」みたいなエラーメッセージが表示された。 >>419
以下サンプルコード
y_2 = 0.04
y_1 = 0.4
x_2 = 0.0
m = 1
lgr = 2.2
# Calculation
#
x_1_ast = y_1 / m # x*_1
ys = np.linspace(y_2, y_1, 7) # 区間 [y_2, y_1] を 6 (=7-1) 分割
print(ys) # 分割点を表示
xs = y_to_x(ys, y_2, x_2, lgr) # ys の各点に対応する xs を計算
以上サンプルコード
y_2, y_1, mが他の値だった場合にどんなグラフになるかというのを一つの図で表示するのが課題なんだけど
y_2 = np.array([0.04, 0.02, 0.02)]
m = np.array([0.04, 0.02, 0.02)]
と変更すると
x_1_ast = y_1 / m
の部分で「リスト同士の除算は〜」みたいなエラーメッセージで弾かれた。 書いてあるとおりnp.array同士では除算が定義されていないのでできないのだが
「どうなって欲しいか」とか「どういう値を求めたいか」とか
そういうことを教えてくれないと解決策は示せない 最終的には3つの各々の条件下での折れ線グラフを描きたい。
そのために必要なのがy_1, y_2, x_2, x_1_astの各条件での各々の数値なんだけど、
x_1_astは求めようとしてもエラーしか表示されないから詰んでる みたいなエラーメッセージってなんやねん
そんな適当な情報で分かる訳ないやん numpy.ndarray
を見ると
んんだらアレイ
と読みがち >>420
自分で書いたコードを>>1に書いてあるサイトに張って
エラーメッセージをちゃんと全文書け
少なくともサンプルコードと書かれてる変更だけ加えてもエラーでないし
numpyはリスト同士の除算もできるし、実際のコード見ないとエスパーじゃない限り分からん >>425
N-Dimension-Array、N次配列の略じゃないか >>424
本当に申し訳ないが、pythonは齧った程度しか触ったことがなくて、エラーの内容も調べた限りではそんな感じのことを言っていた。としか言いようがなかった >>426
https://techiedelight.com/compiler/?PrKN
↑ソースコード全部(多分合ってるはず)
以下エラーメッセージ
ValueError Traceback (most recent call last)
<ipython-input-22-a6ecd68a1745> in <module>()
44 ys = np.linspace(y_2, y_1, 7) # 区間 [y_2, y_1] を 6 (=7-1) 分割
45 print(ys) # 分割点を表示
---> 46 xs = y_to_x(ys, y_2, x_2, lgr) # ys の各点に対応する xs を計算
47 # ==================================================================
48 # 作図
<ipython-input-22-a6ecd68a1745> in y_to_x(ys, y_2, x_2, lgr)
23 yy_2 = y_to_yy(y_2) # Y_2
24 xx_2 = y_to_yy(x_2) # X_2
---> 25 xxs = (yys - yy_2) / lgr + xx_2 # Xs=(Ys-Y_2) / LGR + X_2
26 xs = xx_to_x(xxs) # xs = xx_to_x(Xs)
27 return xs
ValueError: operands could not be broadcast together with shapes (7,) (6,)
要はlgrの値が0.5から増えていくとグラフはこのように移動していきます、ってのを表示させればいいんだけど、配列っぽくしてみたら詰んだ
どうせ課題の提出期限も切れたしこれを機にゆっくり勉強してみます。 (yys - yy_2) は要素数7でlgrは要素数6
形が違うので割り算できないよってこと >>429
>lgr = [0.5, 1.0, 1.5, 2.0, 2.5, 3.0] # 液ガス比 L'_M / G"_M
lgrnの要素数が6つで
>ys = np.linspace(y_2, y_1, 7) # 区間 [y_2, y_1] を 6 (=7-1) 分割
ysの要素数は7つで返ってくるから、要素数が違ってる関係でエラーになる
で、解決方法としては要素数を合わせればいいから
lgrに3.5を追加する、またはlinspaceの引数を6に変更すれば後は動く
以下はlgrに3.5を追加した場合のグラフ
https://i.imgur.com/gOS7wdU.png >>419
詰んだじゃなくて考えろよ
分からないなら調べろ
何しに大学行ってんだよ 大卒らしいのに小卒みたいな奴っておるやん
そういう人種だと思っていただきたい どうでもいいけどpython全然わからんて人向けの課題じゃない気が Tkinterでウィンドウの移動をマウスのドラッグで実施したいのですが、
タイトルバーではなく、表示部分?をドラッグする方法ってありませんか?
画像をサブウィンドウで表示させているのですが、タイトルを表示せず画像だけのサブウィンドウにしたくてお願いいたします ■ このスレッドは過去ログ倉庫に格納されています