Pythonのお勉強 Part70

■ このスレッドは過去ログ倉庫に格納されています
2023/03/04(土) 00:18:00.31ID:dUl31UkL0
↑スレ立てる毎に減るので、減ってたら3つに補充すること。

・当スレにRubyのソースコード類を書くことを禁ず
・Ruby等、Pythonではないプログラミング言語での回答類・質問を書くのも禁止
・「Ruby では」「Rubyでは」「Rails」正規表現→「^クソチョンw$」をNGワード登録推奨
・エラーを解決したいときは、かならず
 エラー文(勝手に省略orスクショうp等の横着禁止)と
 おま環(Pythonのバージョン番号+OS名とバージョン+IDE名)を書け。

★Pythonのソースコードを5ちゃんに直貼はインデントが崩壊するので、
  ↓等のコードうp用サイトに貼ってきてくだしあ。(スクリーンショットをうpる「横着」禁止)
ttps://techiedelight.com/compiler/  Run Code機能あり。
ttp://ideone.com/      デフォ設定がCなので、Pythonするには言語種選択ボタン押下がピコ手間かも。
ttp://pastebin.com/     まずまずシンプル。
ttp://dpaste.com/      とてもシンプル。消えるまでの日数は十分長ーく指定のこと。

◇Pythonオフィシャルサイト http://www.python.org/
◇Pythonドキュメント https://docs.python.org/ja/3/
◇まとめwiki ttp://python.rdy.jp/
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
2023/03/15(水) 20:23:25.07ID:6R/wfGBx0
>>29
ありがとうございます。
よく読んでコードに反映させたいと思います。
2023/03/15(水) 21:46:20.27ID:a+7TiLued
colab上で生成した多数のファイル(50KB程度で3桁くらい)を順次ダウンロードしようとしたんだけど
colabのセル中に
---
fori in range(len(ファイルパスのリスト)):
files.download(ファイルパスのリスト[i])
time.sleep(10)
---
と書いても
sleepの10秒中に「ブラウザのダウンロードのリストに入る」わけではなく
このfor文が終わってセルが終了したあとで、全部いっぺんに「ブラウザのダウンロードのリストに入る」みたいなんだよね

これってどうにかならないかな?
colabの仕様だからどうしょうもない?
32デフォルトの名無しさん (ワッチョイ fa7f-J1pc)
垢版 |
2023/03/17(金) 02:07:07.10ID:9GL040C80
50行で書かれたサンプルコードを500行にして実行時間1/20にした
達成感ある
33デフォルトの名無しさん (ワッチョイ 6b33-7LVk)
垢版 |
2023/03/18(土) 17:04:01.99ID:CeVtop+A0
ある程度期間開けてパッケージ化する方法調べてると、調べるたびに新しい方法出てる気がする
今回はsetup.pyなくても"pip install -e ."できるようになってた
setup.cfgとpyproject.tomlでも色々違うし覚えるの大変って言うか、まぁ覚えてはないけど
34デフォルトの名無しさん (ブーイモ MM33-ivup)
垢版 |
2023/03/18(土) 18:52:15.00ID:t/DO8+QPM
Googleコラボプロプラスに入ってる方いますか?コラボプロの良さを教えてね!
2023/03/19(日) 10:15:41.63ID:fPDrKYk/a
cargo
36デフォルトの名無しさん (ワッチョイ ebbb-mqp0)
垢版 |
2023/03/19(日) 15:20:20.90ID:vWJPT8yX0
機械学習系の本で簡単に解説される程度にしかPythonのことを知りません
今後Pythonに触れるに当たり、見たことのない演算子や文法等を見かけた場合、簡単に調べる方法とかってありませんか?
(わからないことが出てくるたびにググれば良い気がするものの、ググるための用語にたどり着けない気がしてしまいます)
2023/03/19(日) 16:27:29.24ID:XVcYEcdXM
chatgpt
38デフォルトの名無しさん (ブーイモ MM33-ivup)
垢版 |
2023/03/19(日) 17:49:49.84ID:d2x3qz3uM
gpt4を使いpythonで処理をしてる人は多いよね。ならば先人の知恵を使ってそれを真似した方が効率的だよね。
HTMLならどうだろう?
39デフォルトの名無しさん (ワッチョイ 6b33-7LVk)
垢版 |
2023/03/19(日) 17:54:15.55ID:GQuS0ALO0
>>36
そういう時にちょうどいいものがあります

Python 標準ライブラリ
https://docs.python.org/ja/3.10/library/index.html

Python チュートリアル
https://docs.python.org/ja/3.10/tutorial/index.html
2023/03/20(月) 08:05:27.12ID:ESW08vHy0
>>32
そういうの脳汁ドバドバでるよね
ネットに公開されてるサンプルコードだったら教えて欲しい
俺は1/50を目指す😤
2023/03/20(月) 20:20:22.06ID:prLzZlfe0
Pythonのdatetime.utcnowの精度ってどのくらいでしょうか?
2023/03/21(火) 02:41:54.67ID:JBvPlC1C0
xs = [1.0,2.0]
c = complex(xs)
だとエラー出るけれど、人のコード読んでいたら
c = complex(*xs)
だと普通に通ると知った。
ちゃんと調べたいんだけどこの機能ってなんていうんでしょうか?
2023/03/21(火) 04:30:28.10ID:UXBr+F/Qd
ドキュメント嫁
まあ俺も覚えてないけど
少なくともlispで50年以上使われてるこの記法の由緒正しい呼び方splicing(,@list)のはず
44デフォルトの名無しさん (ワッチョイ 6b33-7LVk)
垢版 |
2023/03/21(火) 08:46:38.88ID:stvAwo0m0
>>42
引数リストのアンパック
https://docs.python.org/ja/3/tutorial/controlflow.html#unpacking-argument-lists
2023/03/21(火) 10:02:36.68ID:JBvPlC1C0
引数リストのアンパックというんですね。
ありがとうございます。
2023/03/21(火) 21:33:34.15ID:BXGew+Jp0
dosでダウンロードして、vscodeでやろうとしてらパスが入ってないとか言ってできません
パスってWindowsの全てのフォルダに通せないんでしょうか
47デフォルトの名無しさん (スプッッ Sd73-LK7t)
垢版 |
2023/03/21(火) 22:55:34.57ID:w7Hhk0EMd
>>46
残念な頭の人は諦めろ
2023/03/23(木) 13:32:51.88ID:RFlYHIpb0
条件判定でandで複数条件を入れた場合
Falseが確定した時点で以降の判定は行われないみたいなんだが
1つ前の条件がTrueじゃないと次の条件式がエラーになる条件を
1行で済ますのは一般的に有り?
49デフォルトの名無しさん (ワッチョイ f197-aoGJ)
垢版 |
2023/03/23(木) 20:28:37.78ID:mBtK7sgT0
>>48
あり
len(val) > 0 and val[0] != 0とかはよく書く
50デフォルトの名無しさん (ワッチョイ eb46-O+fO)
垢版 |
2023/03/24(金) 05:57:17.49ID:k3bvKxeq0
個人的な好みを言えば、Err1と2は区別する方が好き。なので、andで1行で済まさない。
if len(val) > 0:
_if val[0] != 0:
_else:
__Err1
else:
_Err2
51デフォルトの名無しさん (ブーイモ MMc5-lHAu)
垢版 |
2023/03/24(金) 08:36:18.31ID:R/WhsjrEM
>PythonでC/C++に匹敵する実行速度を実現 米MITなどコンパイラ「Codon」開発

これだよこれ
昔っからどんな言語でも、コンパイラさえ優秀に作ればいいって思ってたんだよ
言語でやれること縛られたりデメリットあるのはおかしいんだよ
同じCPUで動かすんだからコンパイラが頑張れよっての
2023/03/24(金) 14:39:42.01ID:OrKfwrOa0
変数の型やスコープをコンパイル時に解決出来る部分は速く出来そうだけど
実行時解決の部分はJIT等に頼らざるを得ないし
Pythonの旨味は後者が多くを占めるからコンパイラが頑張れば良いだけの単純な話では無い気がする

C++でも実行時解決な処理が多いコードはそれなりに遅いし
2023/03/25(土) 00:36:23.03ID:kgmD9joZ0
perlみたいに自由に書きたいってか?
2023/03/25(土) 10:11:48.83ID:B9hd5fwCa
>>51-52
Nim でええやん
2023/03/25(土) 14:31:55.68ID:hlZ//oS70
>>54
そんな言語が既にあるんだね
教えてくれて有り難う
当面は互換性の面が怖くて業務で使うのは不安があるけど普及してくれると嬉しいね
2023/03/25(土) 20:09:03.73ID:4vFOtxlb0
c3dcoord = (0,0,0)
x,y,z = c3dcoord
x += 1
y += 1
z += 1

print(c3dcoord)
=>(1,1,1)

としたいんですけど、アンパックした変数
x,y,z = c3dcoord
って参照にすることってできないんでしょうか?
2023/03/25(土) 20:10:28.90ID:4vFOtxlb0
すいません。
c3dcoord = [0,0,0]
でした。タプルにしたらそりゃ変更できないです。
2023/03/26(日) 01:17:05.37ID:x8rcyUOT0
p = (3,4)
x,y = p
x+=1
p=(x,y)
print(p)
=>(4,4)
59デフォルトの名無しさん (ワッチョイ d2bd-+msU)
垢版 |
2023/03/26(日) 05:07:20.56ID:OlOn0nrS0
教科書でPython を使うに至った経緯って分かる?
もうPython 一択って塾の子供に言いたいけど、
変な理由でPython に決まったら嫌じゃん
60デフォルトの名無しさん (ワッチョイ 2e46-4NaH)
垢版 |
2023/03/26(日) 05:25:17.27ID:N7AJWMSJ0
新しい歴史教科書をつくる会が和製Ruby推しとか、そんな事でもあるのだろうか...
61デフォルトの名無しさん (ワッチョイ 6e33-wSlO)
垢版 |
2023/03/26(日) 11:37:36.64ID:NbG7mSEV0
流行ってる、文法がシンプルで読みやすい、ライブラリが豊富
こんなとこだろ
62デフォルトの名無しさん (ワッチョイ 6e33-wSlO)
垢版 |
2023/03/26(日) 11:38:46.21ID:NbG7mSEV0
大学のCS入門とかだとPython以外ではJava, Cが多いのか?
2023/03/26(日) 12:18:30.58ID:9IcBJ+NCa
>>59
言語は別になんでもいい
64デフォルトの名無しさん (アウアウウー Saa5-tUaT)
垢版 |
2023/03/26(日) 16:23:36.82ID:EIuzoBSLa
>>59
microPythonとか子供がおもちゃで遊ぶのにちょうどいいのがあるからな
2023/03/26(日) 16:30:57.43ID:1gNnWqJGF
>>62
10年前だけど俺はPascalだった
66デフォルトの名無しさん (ブーイモ MM6d-pkhP)
垢版 |
2023/03/26(日) 16:58:25.83ID:UjqQqbysM
>>59
教科書のマーケティング的な理由と元ネタになる講義や教科書本が豊富で作るのが楽だからでしょ

中高生がプログラミングに入門する際の有力な選択肢の筆頭と言う程度ならいいだろうけどPython一択とまで言っちゃうのは言い過ぎ
特に教育者が「〇〇一択」という悪い思考の癖を子供に植え付けるのは良くないぞ
67デフォルトの名無しさん (ワッチョイ d2bd-+msU)
垢版 |
2023/03/26(日) 18:53:47.57ID:OlOn0nrS0
子供には断定的な方が分かりやすいの
含みを持たせるとか抽象的な理解は難しいの
で、断定してPython 使わせたけど
裏側では変な政治家がハニトラで
Pythonに決めました。だったら嫌じゃん、
だから断定して教える前に理由を知りたくなったの
68デフォルトの名無しさん (ワッチョイ d2bd-+msU)
垢版 |
2023/03/26(日) 18:57:25.03ID:OlOn0nrS0
Python とJava がいいよとかって教えると
どっちも中途半端に覚えてしまうの
だからひとつだけ断定的に興味を持たせるの
私だけの意見で押し付けずにみんなの
意見を聞いて参考にしてるでしょ?
69デフォルトの名無しさん (ワンミングク MM92-h/t+)
垢版 |
2023/03/26(日) 20:00:18.71ID:i0hL3v/7M
Google Collaborates で pyinstaller 使ってexe ファイル作成完了通知出てるんだけど、肝心の完成したexe ファイルがgoogle drive の何処にも見当たりません
作業フォルダにある筈なのに
2023/03/26(日) 22:57:21.33ID:90L+5Zxw0
もしかして:Google Colaboratory
71デフォルトの名無しさん (ブーイモ MM26-pkhP)
垢版 |
2023/03/26(日) 23:11:28.31ID:zGe4zRyjM
>>68
子供の年齢や頭の良さやプログラミングを学びたい目的によって
どういう言語がいいかは変わってくるんだから
そこを無視して勝手に選択肢を限定するのはダメだろ
それぞれの状況にあった選択肢を提示しつつその中で自分の考える一番のおすすめと理由をあわせて伝えたほうがいいぞ

共通試験目的限定ならDNCLの範囲だけなので命令型で書ける普通の言語なら基本的にどれでもいい
しいて言えばインデックスがゼロベースじゃない言語はやや不利
2023/03/27(月) 00:02:23.30ID:Zr0uw00ma
バックエンドエンジニア : 80万円
Ruby : 90
Python, Go : 85

レガシー
Java : 80

ただし、Pythonはウェブ開発ではなく、AI・機械学習。
Javaは給料の中抜き構造があるので、
リモートワーク・副業など、モダンなバックエンドはRuby
2023/03/27(月) 00:14:37.02ID:oSkR0ochM
一番初めに覚える言語なんて極端に難しかったり非実用的だったりする言語でなければなんでもいいだろう
一つの言語に拘ってる奴は結局モノにならないよ。
74デフォルトの名無しさん (スプッッ Sdc2-sLGM)
垢版 |
2023/03/27(月) 02:12:05.21ID:rXMlzKKVd
Rubyは既に終わってる
これから学ぶのは愚の骨頂
75デフォルトの名無しさん (アウアウウー Saa5-l/MQ)
垢版 |
2023/03/27(月) 08:13:51.01ID:OH4YPBlYa
>>73
じゃあなにか一つ選んで
76デフォルトの名無しさん (ブーイモ MM26-0why)
垢版 |
2023/03/27(月) 09:05:16.71ID:3N4bL3ItM
エクセルとVBAは理想的
セルをメモリ空間に見立てて好きなとこに数字入れて演算させる
全てのプログラム言語がセル内包してりゃいいのにな

変数初期値もセル内に記述
プログラムはアルゴリズムだけ記述するだけっての
77デフォルトの名無しさん (ワッチョイ 2e46-4NaH)
垢版 |
2023/03/27(月) 10:19:19.01ID:tnMA91mR0
二次元配列を好きに使うと良いのでないの。
78デフォルトの名無しさん (ブーイモ MM26-0why)
垢版 |
2023/03/27(月) 11:42:54.48ID:3N4bL3ItM
セル内計算式もプログラムに記述しなくていい
2023/03/27(月) 18:35:08.31ID:yqCWHD4F0
>>75
目的と想定受講者を決めて。
80デフォルトの名無しさん (ワッチョイ 6e33-wSlO)
垢版 |
2023/03/27(月) 19:12:03.68ID:78ye37e60
>>79
じゃあ、中学生と高校生の情報の教科書
81デフォルトの名無しさん (ブーイモ MM19-pkhP)
垢版 |
2023/03/27(月) 21:59:41.94ID:OOl3bABcM
え?教科書決める側の人なの?
2023/03/27(月) 22:15:05.71ID:+kKm8gNC0
R7RS-small か R5RS
2023/03/28(火) 14:53:42.83ID:vZrgWFuJ0
>>62
1年次教養の純粋なCS/ITリテラシならPythonがLisp/Schemeを駆逐しつつあるな、数値計算ではFortranとMatlab(Octave),Python+scipy,Rが三強
東大の進振り後の理数系シラバス見るとFortran一強だけど

Fortranといっても今は2008水準が普通だから、ライブラリ無しの素でnumpyより配列操作が短く書けて強力、素で十分なので環境構築も楽

最近pipが検索出来なくなったり不安定なのが解決されれば、やはり最強エコシステムを持つPythonが完全覇権になるのは時間の問題だと思うが
2023/03/28(火) 15:15:05.26ID:vZrgWFuJ0
90年水準(33年前)だけどnumpyとfortranの対応表、完全に一致
https://www.fortran90.org/src/rosetta.html

そもそもmatlab(octave)/Fortran書きがPythonでもfortran風なコードを書けるようにするのがscipy/numpyの目的かつ求心力だから、どっちか書いてる人なら互いに移行するのは容易なんじゃないかな
多分うわべだけなら数日

numpyの核はFortranコードをコマンド一発でimportできるPythonライブラリにコンパイルするf2pyモジュールだから、Pythonで本格的に数値計算や配列プログラミングやるならFortranも多少学ぶべきと思う
85デフォルトの名無しさん (アウアウウー Saa5-tUaT)
垢版 |
2023/03/28(火) 17:01:21.71ID:hvNFNzxEa
>>75 >>80
Nim
86デフォルトの名無しさん (ワッチョイ 493c-+ld4)
垢版 |
2023/03/30(木) 21:47:14.33ID:8bCrCcnU0
すみません、勉強したてで教えてほしいです。
CSVファイルに機器情報が入っています。(以下参照)
そのCSVファイルを読み込んで、機器情報クラスに値をリストに格納していく処理をしたいと思っています。
リストに格納自体はできているのですが、クラスオブジェクトの値を出力すると、下記のようになぜかNoneと表示される部分があります。


1
router
192.168.1.1
admin
None
2
switch
192.168.1.2
admin
None


ソースコード
https://pastebin.com/1bkPJdVY

CSVファイルは以下のような構造になっています。
1行目はヘッダーです。
id,device,ipaddress,password
1, router, 192.168.1.1, admin
2, switch1, 192.168.1.2, admin
3, swtich2, 192.168.1.3, admin
4 ,accesspoint, 192.168.1.1, admin
87デフォルトの名無しさん (ワッチョイ 493c-+ld4)
垢版 |
2023/03/30(木) 21:49:01.61ID:8bCrCcnU0
print_device_list()メソッドで、自信のid,device,ipaddress,passwordの4種類を表示しているだけなのですが
何故5つ目にNoneという値が表示されるのでしょうか。

教えてください。。。
2023/03/30(木) 21:55:24.24ID:8C8DwwZp0
書けるかな
2023/03/30(木) 21:56:43.08ID:8C8DwwZp0
>>86
最後の行が間違い
device_info[num].print_device_list() の結果を print してしまって None が表示されてる
90デフォルトの名無しさん (ワッチョイ 493c-AYh6)
垢版 |
2023/03/30(木) 22:56:11.91ID:8bCrCcnU0
>>89
なるほど…
確かになんのためにメソッド呼び出したんだっていう最後のプリントですね…笑

ありがとうございます!
2023/04/02(日) 11:03:39.24ID:iE0mKbow0
スクレイピングするプログラム作ったけどロリポップのサーバーにアップロードして運用しようとしてるけど上手くできない。
みんなローカルでやってるのかな?
常時パソコンオンならそれでいいかあ
2023/04/02(日) 11:14:31.42ID:LokYTN6p0
そのレベルのやつがスクレイピングするなよ
2023/04/02(日) 11:15:43.27ID:iE0mKbow0
さーせん
2023/04/02(日) 13:49:47.16ID:Ky8sq4kqa
User-Agent は真面目に描いた方が良い
cookie 対応は必須
あとは逮捕されんように適度な wait
2023/04/02(日) 15:06:54.62
ゲームのキャラクターをクラス化するときに
class Player:
 def __init__(self, hp, mp, defense, speed):
  self.hp = hp
  self.mp = mp
  self.defense = defense
  self.speed = speed

 def attack(self, target):
  # 攻撃処理
  pass

こんな感じでやると思うけど
例えばattackの引数の部分って
(1)相手のキャラクターオブジェクトを入れる
(2)キャラクターのHPなど、使うパラメーターだけ入れる
のかどっちが良いのだろう

(1)の場合って
#攻撃処理 の部分でtarget.counter(self)とかできて便利そうだけど
パット見、内部で何やってるかわかりにくそう?
(2)の場合だと
attackの返り値を、攻撃され後のHPを返すとかにすると
player2.hp = player1.attack(player2.hp)
みたいに冗長感でる

(1)の方が、おそらく他のメソッド追加したときに基本は引数targetの一つで修正しやすそう
でも、もっとオブジェクト化してPlayerクラス以外の戦闘システムクラスとか作れば
player2.hp = player1.attack(player2.hp)の部分も見やすくなるし、より具体的なメソッド名にすればいい
どこまで分割して設計するかが難しいな・・
あと(1)でやってしまうと、あとでtargetの仕様が変わった時に
target引き継いだメソッド全部チェックしないといけないような
2023/04/02(日) 15:10:35.20ID:N+wJxevFd
>>94

> User-Agent は真面目に描いた方が良い
> cookie 対応は必須
> あとは逮捕されんように適度な wait
ありがとうございます!
2023/04/02(日) 17:03:42.13ID:FAkG0zqpM
>>95
自分だったら敵も味方も同じクラスにして、バトルマネージャークラスに引数1と引数2で渡して戦闘させるかな
2023/04/02(日) 21:44:47.49ID:pfBpJrjB0
>>97
そのマネージャの中の話ちゃうの?
2023/04/03(月) 23:29:26.65ID:vazLPyWV0
>>95
このような場合、引数に何を渡すかはプログラムの設計や実装によって異なります。一般的には、攻撃対象のキャラクターオブジェクトを引数に渡すことが好ましいでしょう。
これは、攻撃処理に必要な情報がキャラクターオブジェクトに含まれているためです。たとえば、攻撃力や防御力、素早さなどは攻撃側と防御側の両方に必要な情報です。また、攻撃によってダメージが発生する場合、キャラクターオブジェクトに現在の体力値が含まれているため、攻撃対象の体力を別途渡す必要がなくなります。
ただし、引数にキャラクターオブジェクトを渡す場合でも、攻撃側のプレイヤークラスのメソッド内で、攻撃対象のキャラクターのオブジェクト内部の状態を直接変更することは避けるべきです。攻撃処理は、攻撃側と防御側のキャラクターの両方のオブジェクトの状態を適切に変更する必要があります。
このような設計を行う場合、戦闘システムクラスなど、別のクラスを導入することもできます。攻撃対象のキャラクターのオブジェクトに対して、攻撃処理を実行するためのメソッドを定義し、戦闘システムクラスから呼び出すことができます。こうすることで、攻撃処理に関連する情報をまとめて扱うことができ、プログラムの保守性や拡張性を高めることができます。
2023/04/04(火) 00:33:15.86ID:Y1prdwvH0
chatGPTは中身がねえな
2023/04/04(火) 03:05:10.39ID:Vcg4gzRX0
@AIBoom_net 日本医師国家試験にGPT-4が合格
https://doi.org/10.48550/arXiv.2303.18027
ワシントン大・札幌心臓血管クリニック・東北大・イエール大学の研究者グループによる報告。 過去5年間にわたる試験で複数の大規模言語モデルをテストした所GPT-4は5年間全てに合格したとのこと。日本語においてもLLMの可能性を示唆。 https://pbs.twimg.com/media/FsxgcIqakAAy6El.png
2023/04/04(火) 21:54:16.17ID:gwk3sUuA0
プログラム全くの初心者だけど
最新がPython 3.11ってWikiに書いてあるけど
3.9の本で勉強するのはやめたほうが良い?
3.9もらったけど新しいの買うべきかな
2023/04/04(火) 22:10:09.40ID:eULr+R9z0
変更履歴
https://docs.python.org/ja/3.11/whatsnew/changelog.html
2023/04/04(火) 22:11:29.74ID:eULr+R9z0
ちなみにVscodeでインストールできるマイクロソフト提供の現在のバージョンは3.10.10
2023/04/04(火) 22:40:13.03ID:hpZyh5qR0
まだ大半の人が3.9以下の機能でしかコーディングしてないから学習上は問題ないよ
導入は最新にしといて便利な3.10や3.11の機能を見つけたら取り入れていけばいい
2023/04/04(火) 22:41:11.68ID:xfFnhO3R0
>>102
基本的には大丈夫だぞ!
分からなかったらココで聞いてくれれば答えるよ (規制されてなければ)
2023/04/04(火) 22:46:20.60ID:gwk3sUuA0
こんな親切なスレ初めてだ
ありがと
2023/04/05(水) 08:31:57.17ID:m7UpLh2J0
ほんとありがたいですよね。
感謝してます
2023/04/05(水) 09:09:36.82ID:9/ydvHjQ0
(普通は3.9の環境で学習して最終的に最新使うんだよ。Pythonの入門書なら仮想環境の作り方ぐらいのってんだろ)
110デフォルトの名無しさん (ワッチョイ ff33-9P2W)
垢版 |
2023/04/05(水) 09:21:31.45ID:jJ19tKHg0
>>109
頓珍漢な事書かないで
2023/04/05(水) 11:52:04.66ID:m7UpLh2J0
良いスクレイピングはサイト内移動は直接リンク指定よりクリックさせたほうがいいですか?
112デフォルトの名無しさん (スッップ Sd9f-yXQ9)
垢版 |
2023/04/05(水) 22:47:04.75ID:S76AEhIad
複数のDataframe型をひとつのリスト型にまとめたとき、
その変数(リスト)を出力・ファイル保存する方法、
保存したファイルを再び読み込んで元のリスト変数を取り出す方法、
を教えていただけないでしょうか?

to_parquetが使えるかと思ったら、リストには使えないようで、困っております
pythonにはmatlabのmatファイルのようなものは存在しないのですね?
2023/04/05(水) 23:22:13.78ID:CU/hLZe30
>>112
リストのままは行けないから中身を回しながら to_{任意の形式} する
読み込む時も同じ
2023/04/06(木) 02:43:39.76ID:E3jlMe5F0
>>112
リストをpickleファイルに保存する方法あるけどそれ使えないでしょうか
115デフォルトの名無しさん (ブーイモ MMa3-e2c1)
垢版 |
2023/04/06(木) 15:38:12.20ID:GjcsnpaqM
>>112
DataFrameのメソッドでシリアライズしたいならリストの代わりにネストしたDataFrameにすれば可能
リストを使いたいならpickle.dump/load
でもDataFrameごとに個別にシリアライズしたほうが扱いやすくていいと思う
116デフォルトの名無しさん (ワッチョイ cd46-zyVn)
垢版 |
2023/04/09(日) 10:35:43.18ID:Sk1Y+X+W0
intとNoneを返すfunc()の型ヒントはどう書くの。
Noneを返さない実装は少ないと思うが、そんな型ヒント例がない。Noneを省略でintのみ?

def func() -> int:
2023/04/09(日) 10:43:17.20ID:pP899uy+0
https://docs.python.org/3/library/stdtypes.html#union-type
公式に書いてるがな
古いPythonだとOptionalかUnion
2023/04/09(日) 11:42:14.17ID:RVii0j8Q0
>>116
Optional[int]
Python3.10以降なら int | None
2023/04/09(日) 14:35:42.69ID:l7RPhDng
型ヒントってエラーチェックもしてくれるようになる日はいつくるの
120デフォルトの名無しさん (ワッチョイ cd46-B/IP)
垢版 |
2023/04/09(日) 15:12:18.81ID:Sk1Y+X+W0
>>117,118
ありまとう。そのURLから辿った先の peps.python.org/pep-0484/ に例あった。
def lookup(self, name: str) -> Optional[Node]:
2023/04/09(日) 15:48:14.66ID:RVii0j8Q0
>>119
ダックタイプは捨てないから公式で強制は来ない
TypeScriptみたいになる可能性はある、dataclassに型指定がデフォルトで組み込まれた次のステップとして基本的なバリデートがライブラリからインスパイアされて入る未来はあるかもね
基本的にはmypy, pyright, pydanticあたりで対応
2023/04/09(日) 15:57:52.49ID:l7RPhDng
ABCモジュールで抽象クラスを作るメリットが全然ピンとこない・・

https://magazine.techacademy.jp/magazine/19310
継承して子のクラスでsayHello上書きすればいいだけじゃないの?
https://qiita.com/Akatsuki_py/items/3e35ba326ff254a6790d
これもattack上書きすればいいだけじゃないの?

→ 共通の変数やメソッドをたくさん持っていることが多いので、手間が省ける

継承するだけなのに手間ってある?

AIに聞いてみた
ようは
> 抽象メソッドを定義することで、サブクラスで実装する必要があることを明示的にすることができます。
> 抽象クラスを継承したサブクラスは、抽象メソッドを実装しない限りインスタンス化できないため、クラスの使い方が明確になります。
> 例外を発生させることで、抽象メソッドが実装されていないことを明示的にすることができます。
ってことらしい

ようは例えば、サブクラスを他の開発者に投げていたとき、オーバーライドすべきメソッドをエラーによって明示できる
ってこと・・?
2023/04/09(日) 15:59:55.38ID:l7RPhDng
>>121
なるほど
今のところ何かしらライブラリに付属しているバリデーション機能とか使ってるけど
そのライブラリ使ってないときは別の方法で、みたいにしてるから揃えたいなぁと前から思ってた・・
124122
垢版 |
2023/04/09(日) 16:21:39.12ID:l7RPhDng
・親クラスHumanを書く開発者A
・そのHumanを継承する子クラス(犬クラス、猫クラス)を書く開発者B、C
・犬、猫をインスタンス化して機能を実装する開発者D

よくよく考えると、たしかに開発者B、Cは実装し忘れが無くなっていいかもしれない
でも親クラスのabcモジュールで抽象化されたメソッドに変更があった場合
開発者DがsayHello実行したら、子クラスで上書きされたsayHelloが実行されるのでは・・?
だったら最初から上書き前提で書いたほうが、
と思わんでもないのですが
2023/04/09(日) 16:43:24.90ID:csvNgA1W0
そーゆーのは仮想関数でやるべき
2023/04/09(日) 17:34:31.05ID:RVii0j8Q0
>>124
なんの入門書みてるのか分からんが継承なんてPython関係なしに非推奨の流れだから使わなくていいよ
Humanを継承する猫なんて例えとしても論外
ライブラリやフレームワークなどの提供側で有用なケースは多いけど使う側のユーザーが手を出すケースはほとんどない、初学者ならなおさら
2023/04/09(日) 20:05:53.89ID:yYyAhZLzM
問題集おすすめしてほしい
ついにこの日がきた 姪っ子がPythonと書かれた教科書を持って帰ってきた
姪っ子は数学に時間がかかりすぎてるので、代わりにPythonを勉強して教えてやりたい
自分はずーっと食わず嫌いでPythonから逃げてたんだが、いい機会なので、高卒レベルくらいに使えるようになりたい

なお、日ごろはC++がちょろっと【しか】使えない
128デフォルトの名無しさん (ワッチョイ ae33-/aea)
垢版 |
2023/04/09(日) 20:42:55.90ID:jJFRgIVZ0
何か気持ち悪いな
あと、問題集とか聞いてるやつ初めて見たかもしれん
2023/04/09(日) 20:53:35.11ID:zwa/Onc+0
paizaでもやれば
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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