X



【まず1嫁】くだすれPython(超初心者用) その53

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
垢版 |
2021/03/16(火) 07:19:44.36ID:PfTIXkDh
当スレに★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 ###
0337デフォルトの名無しさん
垢版 |
2021/04/13(火) 23:42:43.92ID:rKsAxx1w
>>289
新人>>288がその日のうちに
プロジェクトの全dtoのsetterを分解して
メンバーをpublicにしてその実装に書き換えたのを発見するのだった
0338デフォルトの名無しさん
垢版 |
2021/04/14(水) 00:30:19.71ID:aC9t3egY
>>337
マウント取りたいだけなら他所でやるがよろし
0339デフォルトの名無しさん
垢版 |
2021/04/14(水) 04:30:25.58ID:GFdnPTqO
>>337
Javaしか書いたこと無いんだなって速攻で分かる
Pythonだとgetter/setter的な書き方はしないから、書き方っていう事自体発生しないっていう
(どうしてもやりたい場合はデコレータかpropertyを使う)
0341デフォルトの名無しさん
垢版 |
2021/04/14(水) 07:16:34.98ID:S5Re0uMO
Javaスレと思い込んで書き込んでるでしょ
0342デフォルトの名無しさん
垢版 |
2021/04/14(水) 08:25:29.25ID:ksE3f3HI
pythonも一応getter/setterみたいな書き方できるけどもっと応用的に使うイメージ
単純な表示/代入は普通にアクセスすりゃいいし
0344デフォルトの名無しさん
垢版 |
2021/04/14(水) 10:34:06.68ID:nYFKaNdk
pyちゃんの貞操観念はガバガバ
でもgotoは死守
0347デフォルトの名無しさん
垢版 |
2021/04/14(水) 17:42:18.41ID:2JfXJ4J1
>>346
インスタンス化したときに(クラス変数で)初期化されるもんだと思ってた・・
というかクラス変数と__init__内に書いたself.◯◯のインスタンス変数は
書く場所が違うだけで同じかと思ってました
とりあえず「クラス変数はイジらない変数」で覚えときますありがとうございました
0348デフォルトの名無しさん
垢版 |
2021/04/14(水) 22:02:52.98ID:yznDmZt4
WindowsストアのPythonってどんなもの?
会社でライセンス違反と知らずにanaconda入れてるマシンが多数あり全社一斉に他のpythonに切り替える必要があるんだけど
ストア版はMSが用意するPythonだから安心と考えるのは安直かな?
0349デフォルトの名無しさん
垢版 |
2021/04/14(水) 22:06:10.97ID:ksE3f3HI
>>347
クラス変数はクラスそのものが持つ変数だから<クラス名>.<変数名>でアクセスするのよね
いつも使ってる<インスタンス名>.<変数名>でアクセスする方がインスタンス変数という
0350デフォルトの名無しさん
垢版 |
2021/04/14(水) 22:21:10.41ID:J0goiD5o
>>348
安直なのはanacondaも同じなので
ライセンス違反を回避するため
anacondaからmsにしましたでいいじゃない
0352デフォルトの名無しさん
垢版 |
2021/04/14(水) 22:30:43.72ID:8SA6aKsd
anaconda駄目なんか
ググったら社長がブログで小規模商用なら全然OK書いてるけど
0353デフォルトの名無しさん
垢版 |
2021/04/14(水) 23:17:12.18ID:S5Re0uMO
>>348
公式のPythonすごいですよ
0355デフォルトの名無しさん
垢版 |
2021/04/15(木) 13:38:30.08ID:oM6Je7sX
ストア版はコンパイル必要なのpipする時とか罠あったはずだから公式にしとけ
0356デフォルトの名無しさん
垢版 |
2021/04/15(木) 14:25:54.59ID:S5s4hWnU
anaconda
社員数200人以下のところはfreeの使ってもOK

businesses with less than 200 employees is allowed
0357デフォルトの名無しさん
垢版 |
2021/04/15(木) 14:58:20.65ID:Ajqhz/yy
ストア版はやめとけ
anacondaは普通に使えてる
0359デフォルトの名無しさん
垢版 |
2021/04/15(木) 15:48:03.15ID:S5s4hWnU
入る気がする
term of serviceに
「同一命令系統に服するemployeesが200人未満の組織」とも書かれてるから
0360デフォルトの名無しさん
垢版 |
2021/04/15(木) 15:48:28.03ID:f8nFgQ6z
>>358
社員って俗称なのでケースバイケースだけど通常はバイト等は含まないことが多い
法的には従業員数でこれにはバイトやパートも含まれる
0363デフォルトの名無しさん
垢版 |
2021/04/15(木) 19:55:48.99ID:GOi47ZCr
>>362
超えてる期間は使っちゃダメとかかな?w
まあそういう懸念があるならライセンサーに事前に確認すべきだろうね
0366デフォルトの名無しさん
垢版 |
2021/04/16(金) 00:38:53.74ID:pvt/ms85
tkinterで動的に複数のボタンを生成して
1つクリックしたら専用のスタイルを適用
他のを全部未クリックのスタイルに
ってやりたいんだけど、ウィジェット生成時に名前をつけてリストに格納しといて
ループ回しながら処理 みたいなことするしかないですか?
0367デフォルトの名無しさん
垢版 |
2021/04/16(金) 01:39:51.97ID:LtaeTzrP
ストア版が駄目ってubuntuも同様?
最近MSはOSSに協力的だしいずれWinとLinuxがシームレスに繋がる素敵な時代が到来するのかと夢想してたけど
0370デフォルトの名無しさん
垢版 |
2021/04/16(金) 11:35:05.67ID:32E1xYIW
選択肢の中に公式で配布してるPythonが入らない理由はなぜですか?どうしてanacondaとストア版の二択?
0373デフォルトの名無しさん
垢版 |
2021/04/16(金) 23:58:42.78ID:aQEfOnAX
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なんてのもスマートな気がしないのですが・・・
0375スクイズ
垢版 |
2021/04/17(土) 04:11:53.83ID:USl8OVEh
QMA的なクイズゲームを作りたくて今日からpythonを勉強し始めました
プログラムは初心者なので、わからないことがあったら手取り足取り教えてくれると嬉しいです!
0377デフォルトの名無しさん
垢版 |
2021/04/17(土) 12:13:20.22ID:WDJX7LIo
>>375
残念ながらPythonはゲームには向かない
初心者の第一歩としては悪くはないが、プログラミングの基礎の基礎だけ学んだら描画とかに深入りする前にUnityとかに移ったほうがいい
0381デフォルトの名無しさん
垢版 |
2021/04/17(土) 21:07:03.39ID:iAFP7ihp
pygameもpysdlも死んでる
唯一renpyがギリギリセーフ
0382デフォルトの名無しさん
垢版 |
2021/04/17(土) 21:26:43.05ID:0tYqrexD
if
elif
elif
else
とやるとき、ifのどれかに当てはまるなら真 を実現したい。elifとelseの間が欲しいというか
やっぱり式をorで繋ぐとかフラグ立てるとかですか?
なにかいい方法はないでしょうか
0383デフォルトの名無しさん
垢版 |
2021/04/17(土) 21:28:34.30ID:0tYqrexD
if節で一回、ifどれかで一回
2回真になるようにしたい
0385デフォルトの名無しさん
垢版 |
2021/04/17(土) 22:28:44.96ID:WCDDnWyK
>>382-383
>ifのどれかに当てはまるなら真 を実現したい。

>if節で一回、ifどれかで一回
>2回真になるようにしたい
は同時に成立するものなのか?
0386デフォルトの名無しさん
垢版 |
2021/04/17(土) 22:43:30.79ID:s7v5Gq+H
>>378
UnityはC#だな (ビルドするとC++になったりはするが)
Unityは純粋なC#と比べるとちょっと違和感あるかもしれんが、公式のサンプルたくさんあるからまずはそこからやるといいさ
0387デフォルトの名無しさん
垢版 |
2021/04/17(土) 23:02:56.25ID:77qs+FV5
>>385
x=1

if x==1
elif x== 2
if x==1 or x==2 ここが際限なく増えていく
else
0388デフォルトの名無しさん
垢版 |
2021/04/17(土) 23:21:28.32ID:ZK8Jz6D4
if x in (1,2,...):
0390デフォルトの名無しさん
垢版 |
2021/04/17(土) 23:49:49.78ID:XRREvbgB
cond(x,cand)を2入力、真理値出力の関数として
if any(cond(x, cand) for cand in cands)
みたいにすれば出来そう
0392デフォルトの名無しさん
垢版 |
2021/04/19(月) 12:14:38.41ID:OCDt9d2T
インスタンス変数ってすべてデコレータなどのpropertyでゲッターにしといた方がいいのでしょうか?
セッターもゲッターも作るとなるとそれ結局はインスタンス変数直接いじるのと変わりないのでは?と思ってしまうのですが。。
0393デフォルトの名無しさん
垢版 |
2021/04/19(月) 12:22:19.31
>>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)
0395デフォルトの名無しさん
垢版 |
2021/04/19(月) 16:55:55.60ID:yNbAi4BV
>>393
そんな話はしてない
0397デフォルトの名無しさん
垢版 |
2021/04/20(火) 07:29:55.55ID:j2wgvj4g
tabula-pyを使った。
pyinstallerでのexe化の難易度高すぎて泣いた。
こういうの自力で解決できる奴すげーな。
0400デフォルトの名無しさん
垢版 |
2021/04/20(火) 19:19:47.13ID:z53EQ1rJ
PyInstallerを簡単にするwrapperがあった気がする。
0403デフォルトの名無しさん
垢版 |
2021/04/21(水) 15:25:20.73ID:ZcIZV+lf
pythonに限った話ではないかもですが、
定期的にデータを取得して最大値を更新していくような処理をする時、

初期値として
max = None
としておくと、

if max is None or max < new_value:
____max = new_value

みたいに、Noneかどうかの比較というのが必要になりますが、たった初回のNoneのために毎回比較するというのは処理(とくに処理時間等)として無駄でしょうか?

例えば初期値を、ありえないぐらい小さい値にしておいて、どんなデータが来ても必ず更新されるようにしておく、というやり方もあるかと思いますが、Noneのように「未反映」という状態を示したいです。
上記に限らず初期値をNoneにするといたる所でis Noneの判定が出てくるのでどうも無駄な比較に思えてならないのです。
気にするレベルではないならそう言っていただけると安心です。
0406デフォルトの名無しさん
垢版 |
2021/04/21(水) 15:50:40.25ID:rPf7kV48
初回だけはpred.としてNoneと比較する関数をyieldする
次回からは値を比較する関数をpred.としてyeildする
0410デフォルトの名無しさん
垢版 |
2021/04/21(水) 17:28:45.33ID:ZcIZV+lf
inf無限大なんてものがあるなんて目からウロコでした!
これなら演算も比較も、format表示もエラーにならないので使えそうです。
yieldについても、なるほどそういう使い方があるんですね。
ありがとうございます。

>>407
速度については今度確認してみたいと思います。
0411デフォルトの名無しさん
垢版 |
2021/04/22(木) 15:08:18.73ID:RM6sGe2J
クラス内のメンバ変数って
やっぱり一番最初に全部宣言しとくべきですか?
色んな関数内で好き好きに宣言するのは良くないこと?
0412デフォルトの名無しさん
垢版 |
2021/04/22(木) 15:11:25.76ID:FRH+m68J
Pythonはどこで宣言してもゆるしてくれるが
人間的には先頭にかためておけよ って思われる
0413デフォルトの名無しさん
垢版 |
2021/04/22(木) 15:43:11.18ID:aclQQfDP
Javaの作法を敷衍させると先頭に固めるのが良いとの伝承がある
0414デフォルトの名無しさん
垢版 |
2021/04/22(木) 16:36:07.85ID:RM6sGe2J
あーやっぱりそうですよね
ありがとうございます
0415デフォルトの名無しさん
垢版 |
2021/04/22(木) 18:20:22.69ID:aGoOGFqx
チョンにはムリ
0416デフォルトの名無しさん
垢版 |
2021/04/22(木) 18:55:37.92ID:1EPV8o9V
pandasのdescribe()のような集計結果から(元データがなく、集計結果の数値のみが与えられた状況です)、これを用いてpythonで箱ひげ図を描く方法をご存知でしたら教えてください。matplotlibやseabornのboxplotは元データが必要のようで、行き詰っています。
0417デフォルトの名無しさん
垢版 |
2021/04/22(木) 19:08:28.16ID:FRH+m68J
>>416
ひげの長さのもとがないようなデータにあとからヒゲはやしても不自然なだけくね?
分析ずみのその値とやらだけ注釈枠作ってかいとけ
0418416
垢版 |
2021/04/22(木) 22:11:19.58ID:1EPV8o9V
>>417
ありがとうございます。結局エクセルの積み上げ棒を加工して描く方
法で乗り切ることにしました。
0419デフォルトの名無しさん
垢版 |
2021/04/22(木) 23:41:18.57ID:1DYnxoLB
大学の授業課題で使い方もろくに理解してないのにjupyter notebookを使って課題を提出しろとのお達しが出た
サンプルコードから見様見真似でいろいろやってみたけどエラーは出るし調べてもよく分からんし詰んだ

ちなみに「リスト同士の除算ができません」みたいなエラーメッセージが表示された。
0420デフォルトの名無しさん
垢版 |
2021/04/22(木) 23:48:13.63ID:1DYnxoLB
>>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
の部分で「リスト同士の除算は〜」みたいなエラーメッセージで弾かれた。
0421デフォルトの名無しさん
垢版 |
2021/04/23(金) 00:06:55.92ID:nXIvCLH2
書いてあるとおりnp.array同士では除算が定義されていないのでできないのだが
「どうなって欲しいか」とか「どういう値を求めたいか」とか
そういうことを教えてくれないと解決策は示せない
0422デフォルトの名無しさん
垢版 |
2021/04/23(金) 00:24:12.09ID:Ds5Mqwcd
最終的には3つの各々の条件下での折れ線グラフを描きたい。
そのために必要なのがy_1, y_2, x_2, x_1_astの各条件での各々の数値なんだけど、
x_1_astは求めようとしてもエラーしか表示されないから詰んでる
0424デフォルトの名無しさん
垢版 |
2021/04/23(金) 00:54:37.81ID:WdOS9cbk
みたいなエラーメッセージってなんやねん
そんな適当な情報で分かる訳ないやん
0426デフォルトの名無しさん
垢版 |
2021/04/23(金) 03:03:36.79ID:edw1EohB
>>420
自分で書いたコードを>>1に書いてあるサイトに張って
エラーメッセージをちゃんと全文書け

少なくともサンプルコードと書かれてる変更だけ加えてもエラーでないし
numpyはリスト同士の除算もできるし、実際のコード見ないとエスパーじゃない限り分からん
0428デフォルトの名無しさん
垢版 |
2021/04/23(金) 10:32:16.79ID:6lQGggig
>>424
本当に申し訳ないが、pythonは齧った程度しか触ったことがなくて、エラーの内容も調べた限りではそんな感じのことを言っていた。としか言いようがなかった
0429デフォルトの名無しさん
垢版 |
2021/04/23(金) 10:47:36.13ID:6lQGggig
>>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から増えていくとグラフはこのように移動していきます、ってのを表示させればいいんだけど、配列っぽくしてみたら詰んだ
どうせ課題の提出期限も切れたしこれを機にゆっくり勉強してみます。
0431デフォルトの名無しさん
垢版 |
2021/04/23(金) 11:43:43.46ID:edw1EohB
>>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
0433デフォルトの名無しさん
垢版 |
2021/04/23(金) 21:14:39.28ID:Sg24bGS7
大卒らしいのに小卒みたいな奴っておるやん
そういう人種だと思っていただきたい
0434デフォルトの名無しさん
垢版 |
2021/04/23(金) 23:28:58.65ID:dmYMi7DT
どうでもいいけどpython全然わからんて人向けの課題じゃない気が
0436デフォルトの名無しさん
垢版 |
2021/04/24(土) 11:34:27.43ID:V3n+Hqik
Tkinterでウィンドウの移動をマウスのドラッグで実施したいのですが、
タイトルバーではなく、表示部分?をドラッグする方法ってありませんか?
画像をサブウィンドウで表示させているのですが、タイトルを表示せず画像だけのサブウィンドウにしたくてお願いいたします
■ このスレッドは過去ログ倉庫に格納されています