X



【まず1嫁】くだすれPython(超初心者用) その53
レス数が1000を超えています。これ以上書き込みはできません。
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 ###
0953デフォルトの名無しさん
垢版 |
2021/06/07(月) 23:05:20.97ID:x/kbgdh0
logging以外は全部str.formatにしてるわ
0955デフォルトの名無しさん
垢版 |
2021/06/08(火) 02:05:33.12ID:QU85yBSR
3.4(Win XPラスト)のために、それ以降に登場したf文字列のような手法やメソッドは使わないようにしてる
subprocess.run() の代わりにsubprocess.Popen() でシコシコやったり…
0957デフォルトの名無しさん
垢版 |
2021/06/08(火) 13:07:58.64ID:6SttzhsF
python入れたらpipが付いてくるってどこのサイトにも書いてあるけど、コマンドプロンプトでpipのコマンドを打っても認識されない
'pip' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
どうすれば使える?
0959デフォルトの名無しさん
垢版 |
2021/06/08(火) 13:22:16.83ID:XwHmRNqr
>>957
windows使ってる?
自分も何故かpipだけ動かなくて焦ったけど、パソコン再起動させたら動くようになった
あとシェルコマンド(正式名称わからん、青い画面)で試してみたら?
0960デフォルトの名無しさん
垢版 |
2021/06/08(火) 13:34:36.82ID:oCdJgv/h
どこのやつをどのようにしてインストールしたのか
公式windosインストーラー版ならAdd Python 3.x to PATHにチェック入れずにインストールするとpath通ってない
0961デフォルトの名無しさん
垢版 |
2021/06/08(火) 14:01:00.16ID:X0jbV2ox
>>957
インストール・ルートと、ScriptsディレクトリをPathに加える
%ProgramFiles%\Python39
%ProgramFiles%\Python39\Scripts
0962デフォルトの名無しさん
垢版 |
2021/06/08(火) 17:01:22.12ID:dOMi6vvz
Windows のPowerShell では、環境変数PATH は、; で区切り。
$env:Path.split( ";" )

Python を含むPATHなら、
$env:Path.split( ";" ) | Where-Object {$_ -like "*python*"}

Linux の環境変数PATHなら、: で区切り。
echo $PATH | tr : "\n"
0963デフォルトの名無しさん
垢版 |
2021/06/08(火) 18:20:40.58ID:KCPagTB6
windows公式ならpath通すやつにチェック初めからついてる
わざわざ外すとも思えんので取り敢えず再起動してみよか
0964デフォルトの名無しさん
垢版 |
2021/06/08(火) 18:43:29.68ID:zMtx/HCT
%USERPROFILE%\AppData\Roaming\Python\Python38\Scripts
これも場合によっては必要(というかこっちをメインにすべき)。
Windowsの場合は、pip使うときに--userを付けないと問答無用でPython本体の方に入れようとするので。
0967デフォルトの名無しさん
垢版 |
2021/06/08(火) 21:32:06.65ID:5GftIHto
getter(target):
__return eval("{target}_var.get()")

関数内で使われる(ユーザー入力と関係ない)evalですが
やっぱり避けるべき? こういうのは別にいい?
0968デフォルトの名無しさん
垢版 |
2021/06/08(火) 21:36:16.68
クラス変数を変更しようとしたときエラーを吐かせたいんですけど
どうするのがいいでしょうか

現状、
class A:
_# 変更しないでください
_TEST = 100
a = A()
みたいにしています。

できれば、self.TEST=、a.TEST=、A.TEST=
それぞれで変更しようとするとエラーを吐かせられたらなと。
前半2つはセッターでできましたが、結局A.TESTで変更できてしまうし
そもそもクラス変数を変更”してしまうミス”にそこまで注視しないといけないのかな?とも思い
変更しないよう注意喚起・自粛するだけに留めておくのがいいのかどうか迷っています
0969デフォルトの名無しさん
垢版 |
2021/06/08(火) 22:00:39.38ID:A0D+JkMn
>>968
一番手っ取り早いのはメンバ変数の頭に__(アンダースコアを2つ付けて)
プライベート変数扱いにする
詳しい書き方とかはググると出てくるけど、この辺かな
ぶっちゃけ『注意喚起する』っていうのは大体地雷化するから、正当な方法で実装した方が良い

https://docs.python.org/ja/3/tutorial/classes.html#private-variables
https://www.headboost.jp/python-property/
0972デフォルトの名無しさん
垢版 |
2021/06/08(火) 22:36:55.06ID:5GftIHto
>>971
あ、ほんとうですね
でもうちの場合は中で微妙に処理が異なるので分岐がいるのです(getする範囲が違うとか)
evalないとif連打か辞書使うとかになるけど、それでも回避推奨なのかなと思って
0973デフォルトの名無しさん
垢版 |
2021/06/08(火) 23:19:28.78ID:JbMjUK2X
検討すればいいんじゃ
自分で使うだけなら問題ないし
ネットでつながっても隔離されてれば問題ない
検討が面倒なら使わないと決めたほうが
楽な場合もある
0974デフォルトの名無しさん
垢版 |
2021/06/08(火) 23:24:47.79ID:UcvX2QEY
>>972
getattrとかリフレクション系のビルトイン関数使えば十分じゃない?
tkinterならそれも必要無いと思うけどね
0975デフォルトの名無しさん
垢版 |
2021/06/09(水) 00:16:11.63ID:BQ0ecELC
>>973
python関係ないけどevalて双方向通信のときにヤバいんでやめましょうね、だけですよね
0977デフォルトの名無しさん
垢版 |
2021/06/09(水) 02:09:05.41ID:NxdIgDtt
書けるけどゴチャつくって話でしょ
しかも別に対話しないなら使ってもいいしな
0978デフォルトの名無しさん
垢版 |
2021/06/09(水) 07:16:34.25ID:u3L+Vxsq
スレでえばる初心者
0979デフォルトの名無しさん
垢版 |
2021/06/09(水) 14:22:13.69ID:PlcFv7F9
どうでもいいけど上見たらくだらない質問の略だったのか
python蛇だからくだを巻いてるスレッドの略やと思ってた
0980デフォルトの名無しさん
垢版 |
2021/06/09(水) 15:58:48.26ID:o9EDXjUA
print(hoge.data[0][0][0][0])
を実行すると、値ではなく、
<NdArray(()) at 0x1c7b360b960>
が返ってきます。
このインデックスにある値を表示する方法を教えて下さい。

hogeは((1, 1, 8, 8))のNumpy多次元配列とのことで、
このprint文の直前で
hoge.data.zero()
とやっているので、すべての要素はゼロになっているはずです。
うまく表示できると値が「0」と表示されるはずです。
0981デフォルトの名無しさん
垢版 |
2021/06/09(水) 16:02:29.18ID:Gt06K9sH
getter(target):
__return getattr(self, [f'{target}_var').get()
__return locals[f'{target}_var'].get()
__return globals[f'{target}_var'].get()
0982デフォルトの名無しさん
垢版 |
2021/06/09(水) 16:59:23.95ID:ylbs+1ZI
getattrって存在すら知らんかった
これ本来はどういう用途のためにある関数なんだ?
0983デフォルトの名無しさん
垢版 |
2021/06/09(水) 18:33:02.13ID:J3IrN4Ey
tkinterならglobalgetvar()使うか
コールバック登録時にクロージャで変数をキャプチャしておけばgetattrは不要
0984デフォルトの名無しさん
垢版 |
2021/06/09(水) 19:31:32.53ID:2FVE2wAx
>>982
テスト用に便利
>>> for x in dir(obj):
... print x, ':', type(getattr(obj, x))
情報を得たり
クラス内の全テスト用関数実行するとか
関数の増減気にしないですむ
0985デフォルトの名無しさん
垢版 |
2021/06/09(水) 19:59:43.06ID:cSpjmop9
>>984
あーなるほど
便利かもしれない
0986デフォルトの名無しさん
垢版 |
2021/06/09(水) 20:41:17.87ID:WPb/eWBP
むー次スレ立てられなかった
>>987頼みます
0990デフォルトの名無しさん
垢版 |
2021/06/10(木) 11:00:17.95ID:smul9M+b
>>982
黒魔術
0991デフォルトの名無しさん
垢版 |
2021/06/10(木) 11:18:28.54
getattrの使いどころって、文字列としてメンバ変数名を扱いたい場合くらいしかない?
0992デフォルトの名無しさん
垢版 |
2021/06/10(木) 11:42:16.34ID:WX9l2lHR
業務でリフレクション使ってるコードあったらrejectするけどな
ライブラリは仕方ないとしてギリでアノテーション
0993デフォルトの名無しさん
垢版 |
2021/06/12(土) 10:25:56.27ID:ZfyfTVcF
もう3.10が出るっていうのに、アノテーションを忌避する理由もないだろ。
0994デフォルトの名無しさん
垢版 |
2021/06/12(土) 10:59:57.74ID:dWkts0ub
通常コード内のリフレクションはダメ
ライブラリやアノテーション内のリフレクションはOK
かな
0999デフォルトの名無しさん
垢版 |
2021/06/18(金) 20:03:59.50ID:DfkSYr0N
1000デフォルトの名無しさん
垢版 |
2021/06/18(金) 20:04:37.80ID:DfkSYr0N
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 94日 12時間 44分 54秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。

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