[過去ログ] Pythonのお勉強 Part68 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
117: (ワッチョイ 127d-nvXy) 2022/09/25(日)00:00 ID:TfTFVrn20(1) AAS
>>112
if all([a, b]):
else
118: (ワッチョイ 1e66-yYUR) 2022/09/25(日)00:30 ID:wq9M03AC0(1/2) AAS
allとanyは積極的に使おう
フラグを別に持つとか途中で抜けてループ変数を見るとか、
何でレガシーな言語はそれで満足してたのか判らん
119: (ワッチョイ b302-QcAE) 2022/09/25(日)02:03 ID:ouzeiwB30(1) AAS
今日からPython始めたんだけど、エラーが出て動かなくて悩んでたらインデントが原因だったw
調べたらインデント自体プログラム構造的に意味を持ってたんだな。。。
120: (ワッチョイ 1214-P81A) 2022/09/25(日)05:32 ID:WCcUyzUQ0(1/2) AAS
少しコードが長くなってきたので、関数を定義してみようと思ったのですが
関数を使うくらいなら、最初からclassとmethodでやった方が後々便利ですかね?
それから現段階ではまだinstance変数を使うかどうかは不明ですが
classの最初に__init__は決まり文句として書いておいて良いのでしょうか?
仮に全く使わなかった場合にバグの元になったりするのでしょうか?
121: (ワッチョイ 372c-nvXy) 2022/09/25(日)05:38 ID:iEmY5l+s0(1/2) AAS
そのレベルならまず関数に慣れよう
classはそのあと
122: (ワッチョイ 1214-P81A) 2022/09/25(日)05:54 ID:WCcUyzUQ0(2/2) AAS
了解しました
123: (ワッチョイ 96bb-sDLX) 2022/09/25(日)11:02 ID:sQFmQmse0(1) AAS
classを使うほうが常に優れていると思ってるなら認識を改めたほうがいいよ。
classと関数両方使えるがpythonのメリット。
標準ライブラリだって両方共存してるのにどちらかを捨てるなんてもったいない
124: (ワッチョイ 4b17-NGtF) 2022/09/25(日)11:22 ID:Sdaj2srm0(1) AAS
自己満だからといっていつも意識的にそれらを考えていかなければより良い設計はできないのかもしれない
125(1): (ワッチョイ b302-nX9g) 2022/09/25(日)11:43 ID:rlnwElI30(1) AAS
クラスはメンバ変数にselfが強制だからコードが冗長になって嫌だわ
126: (オッペケ Sr47-d9EM) 2022/09/25(日)12:37 ID:uj3dGGMEr(1) AAS
>>125
インデントも深くなるし、状態持つ必要が無ければモジュール化で十分よな
127(1): (ワッチョイ 1e66-yYUR) 2022/09/25(日)12:49 ID:wq9M03AC0(2/2) AAS
大仰なクラスを作ろうとするから
インスタンス変数が2つだけ、みたいなのでも十分役立つ
128(1): (ワッチョイ 1610-d9EM) 2022/09/25(日)17:18 ID:hs4ndUhv0(1) AAS
>>127
それくらいならNamedTupleでも良いかな
129: (ワッチョイ 372c-nvXy) 2022/09/25(日)17:41 ID:iEmY5l+s0(2/2) AAS
dataclassええで
130: (ワッチョイ 4b08-KM/t) 2022/09/25(日)17:54 ID:AFTbeWYX0(1) AAS
クラスは実装の詳細を見せたくない時に限る
131: (ワッチョイ 1610-Nf8B) 2022/09/26(月)07:24 ID:ciNDFZ6I0(1) AAS
クラス名をclass Hoge
ファイル名をhoge.py
インポートでimport hoge
インスタンス名何にしようかいつも悩む
??? = hoge.Hoge()
132: (ワッチョイ 2f97-5djn) 2022/09/26(月)09:07 ID:P9G+/qqR0(1/2) AAS
>>81
そもそも[0,1]のときにx[0]を2つ取り出したいのかどうかがよくわからないな
あと、最大(?)は[0,10]じゃないか?
[0,9]のときと[0,10]のときでどう処理を変えたいのかよくわからない
半開区間に含まれる最小最大を取り出したいなら、
for i in [idxs[0], idxs[1] - 1]でいいと思うのだけどこれは嫌?
133: (ワッチョイ 2f97-5djn) 2022/09/26(月)09:12 ID:P9G+/qqR0(2/2) AAS
木構造とかグラフ構造を自作したいなら(間々ある)、
クラスにした方が便利なときある気がするけどな。
get_tree_children(node)とかしだすなら、node.children()の方が名前空間がすっきりしていいし。
実装の詳細を見せたくないかどうかというよりは、関心の分離をしたいかどうかによるような気がするな。
確かにクラス作るまでもないようなことは多いけど。
134: (ワッチョイ 1e66-yYUR) 2022/09/26(月)20:32 ID:b9hyANFk0(1/2) AAS
>>128
値が変えられないがな
135(2): (ワッチョイ 429b-+bWc) 2022/09/26(月)23:15 ID:QR+uVx8I0(1/2) AAS
python 3.9.10
a = (1, 2, 3)
b = a
c = (1, 2, 3)
print(a==b)
print(a is b)
print(a==c)
print(a is c) #True?
なぜ a is c が true になるのでしょうか?
136(1): (ワッチョイ 429b-+bWc) 2022/09/26(月)23:17 ID:QR+uVx8I0(2/2) AAS
>>135
ideone に貼っときます
外部リンク:ideone.com
なぜでしょうか?
137: (ワッチョイ 1e66-yYUR) 2022/09/26(月)23:31 ID:b9hyANFk0(2/2) AAS
a = 1
c = 1
の時と同じ理由
138: (ワッチョイ 4b17-NGtF) 2022/09/26(月)23:32 ID:Gide+MMY0(1/2) AAS
>>136
ならない
139(1): (ワッチョイ 4b17-NGtF) 2022/09/26(月)23:33 ID:Gide+MMY0(2/2) AAS
ほらよ
画像リンク
140(1): (ワッチョイ d201-/Peb) 2022/09/26(月)23:49 ID:eE4Lst2k0(1) AAS
>>139
それREPLでやってるからinterningが効いてないじゃないかな
>>135
Tupleはimmutableだからaとcが同じオブジェクトを指しても問題なくて
Pythonが最適化をした場合はa is cがTrueになるケースがある
「interning」でググってみて
例えばTupleを関数で返すようにすればinterningされずにFalseになると思う
def foo(x):
return (x, x+1, x+2)
a = foo(1)
c = foo(1)
141: (ワッチョイ 4212-+bWc) 2022/09/27(火)00:20 ID:LFY5tutJ0(1) AAS
>>140
ありがとうございます、オプティマイゼーションの余地がある、ということですね、納得しました
142: (ワッチョイ 2f97-5djn) 2022/09/27(火)19:02 ID:zjZtbJ3M0(1) AAS
a is cが真になるかはかなりケースバイケースな気がするし、
中身を比較したいんだったら使うべきじゃないね
本当に同じtupleインスタンスかどうかを確認したいときだけにすべき
143: (ワッチョイ 3733-tX/F) 2022/09/27(火)22:33 ID:3OHfLHhN0(1/2) AAS
tupleだけの話ではなくてどの型でも同じだけどね
例えば文字列とか
144(3): 2022/09/27(火)23:35 ID:tKd9rAjb(1) AAS
n=12345.67
小数点以下が何桁あるのか調べたいのですが
len(str(n).split(".")[1]) if isinstance(n, float) else 0
こんなんでいいですかね・・?
145(1): (ワッチョイ 3733-tX/F) 2022/09/27(火)23:51 ID:3OHfLHhN0(2/2) AAS
>>144
外部リンク:ideone.com
146(1): (ワッチョイ 1610-DrlT) 2022/09/27(火)23:53 ID:+joc5Asc0(1) AAS
>>144
誤差で予想外の挙動しそうだからDecimal使う方がいい
上下前次1-新書関写板覧索設栞歴
あと 856 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.013s