Pythonのお勉強 Part66

レス数が1000を超えています。これ以上書き込みはできません。
2021/11/12(金) 07:48:11.11ID:vp8lzav70
!extend:default:vvvvv:1000:1024
!extend:default:vvvvv:1000:1024
↑スレ立てる毎に減るので、減ってたら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://codepad.org/      ほぼ直感的に使える。Run codeボタンあり。
ttp://pastebin.com/     まずまずシンプル。
ttp://dpaste.com/      とてもシンプル。消えるまでの日数は十分長ーく指定のこと。

◇Pythonオフィシャルサイト http://www.python.org/
◇まとめwiki ttp://python.rdy.jp/

●関連スレ● 自称初心者は↓へ
【まず1嫁】くだすれPython(超初心者用) その55
https://mevius.5ch.net/test/read.cgi/tech/1633070807/

〇前スレ〇
Pythonのお勉強 Part65
https://mevius.5ch.net/test/read.cgi/tech/1621749112/

次スレの建立は>>985が挑戦する。(980通過して24h後も落ちなくなった)
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
2021/11/12(金) 08:10:48.11ID:bpmS9XZOM
>>1
2021/11/12(金) 08:18:06.78ID:VqvTP9jX0
>>1
4デフォルトの名無しさん (スププ Sd43-8hHT)
垢版 |
2021/11/12(金) 10:26:50.95ID:uCoii1J0d
乙py
5デフォルトの名無しさん (スププ Sd43-8hHT)
垢版 |
2021/11/12(金) 10:28:18.45ID:uCoii1J0d
https://ideone.com/EAfGGN
エラーでない警告でないNaNにもならない
import numpy as np
a = np.array([[1,2,3],[4,5,6],[7,8,9]])
print(a)
print(np.linalg.inv(a))
6デフォルトの名無しさん (ワッチョイ 4b10-PeR0)
垢版 |
2021/11/12(金) 12:51:52.82ID:dmTMZhmo0
>>5
先にフルランクかチェック
7デフォルトの名無しさん (ワッチョイ 1536-+8FJ)
垢版 |
2021/11/12(金) 12:56:23.56ID:7GKDM9BX0
2021/11/12(金) 15:16:53.81ID:vp8lzav70
ファイルを指定するとそれを読み込んで加工したデータを返す
という関数を共通化したいのでclass化した

data = MyClass(file).get_data()
みたいな感じにして、処理は全部__init__()に書いて、get_data()はreturnするだけ

なんかすごくもにょるけど、どうするのがかっこいいだろう
2021/11/12(金) 15:34:41.07ID:PCxC9/Mt0
>>8
__init__()の中身は最低限にして
内部的にデータ加工用にメソッド作ったほうが良くない?
__init__に処理全部書いたらテスト面倒やん

ユニットテスト書いてみて、「これ面倒すぎじゃね……?」ってなったら
なんかおかしいイメージがある
2021/11/12(金) 15:56:57.93ID:vp8lzav70
改造元に初期化部分みたいなのが無いので難しい
やるなら、ファイル名だけ__init__で保存して、実行兼取得のメソッドを呼ぶとか

結局クラス化はやめて、関数のままimportすることにした
importにクラスと関数が並ぶと、それはそれで気持ち悪い
2021/11/12(金) 17:26:55.13ID:zcb9bs5A0
Javaあたり出身ぽいな
別に関数とクラスのimport並ぶのは問題ないし普通のことだよ
12デフォルトの名無しさん (アウアウウー Saa9-09aj)
垢版 |
2021/11/12(金) 18:37:46.63ID:JnXYuZWYa
>>8
genrator/iterator
13デフォルトの名無しさん (ワッチョイ 1536-+8FJ)
垢版 |
2021/11/12(金) 19:25:30.81ID:7GKDM9BX0
まあ、無理してクラスにしなくても関数で処理した方がいいかもね。
クラスはカプセル化だから、与えたファイルに対して、

読み込む、書き込む、処理A(データ加算した結果を返す)、処理B(データ乗算した結果を返す)

みたいに、色々処理があるなら意味があるけど。一つだけの処理なら関数のがすっきりするかもね。
14デフォルトの名無しさん (ワッチョイ 4b10-PeR0)
垢版 |
2021/11/12(金) 21:52:46.61ID:dmTMZhmo0
>>8
クラス化する理由が分からん
data=get_data(file)じゃいかんのか?
2021/11/13(土) 09:46:57.03ID:QiVf5l5lM
その後dataをどう使うかにもよるよね
2021/11/13(土) 10:34:21.46ID:AEtH6sJt0
何となくモジュールはクラスだけだと思ってたんだよ
しかも1ファイル1クラス
17デフォルトの名無しさん (アウアウウー Saa9-09aj)
垢版 |
2021/11/13(土) 12:28:44.78ID:GR8tTV2xa
あなたはJava病です
御愁傷様です
18デフォルトの名無しさん (ワッチョイ 4d33-U6JD)
垢版 |
2021/11/13(土) 13:09:30.79ID:0SlXheyX0
Javaに染まるとこうなるのか?
おっかねぇ
2021/11/13(土) 16:14:47.55ID:ykLruLAta
基本的に関数で作ってから後からこれ、もっとまとめられるんじゃね?ってなってからクラスにする感じ

最初からクラスを作ったり難しい事をするとバグに気づきにくくなる
2021/11/13(土) 16:31:19.80ID:K8NGEw2p0
>>19
普通はコーディング前の設計時にクラスは作られるんだわ
それこそ「アプリケーションとしての不具合をなくすために」クラスは作られる
2021/11/13(土) 16:39:52.82ID:Tmt+B6uyr
>>19
設計しないでコーディングしてるのか?
一番ダメなやり方だろ
2021/11/13(土) 16:42:44.96ID:uwHpm0Tc0
モジュール化しないとは誰も書いてないけど
インスタンス化しない設計ならクラスの方が冗長でしょ
2021/11/13(土) 19:42:10.31ID:K/485EK5a
ごめん、頭の中で設計しながらコーディングしてるから問題ないわ
2021/11/13(土) 19:47:16.69ID:K/485EK5a
あとPythonのクラスは動作速度を低下させるから無理にする必要もない
2021/11/14(日) 00:13:54.03ID:xnhKIbNQ0
>>21
おいオメー さっきからうるせえぞ
「設計する」「設計する」ってよォ〜〜〜
どういうつもりだてめー
そういう言葉はオレたちの世界にはねーんだぜ…
そんな弱虫の使う言葉はな………
26デフォルトの名無しさん (ワッチョイ 4b10-PeR0)
垢版 |
2021/11/14(日) 01:20:39.27ID:L6aMQe6P0
>>24
Python使ってる時点でこれ以上気にする程遅くならんやろ
2021/11/14(日) 08:16:59.25ID:oS1oS1yMM
クラス作るのを難しいとか言う人なのでそっとしておいてやってね
2021/11/14(日) 08:19:51.45ID:KajEYa8D0
再利用する必要が発生したらクラス化だな

この世の全てはオブジェクトなのであるー、とトップダウンでオブジェクト思考しようとしても無理で、
あんなもんは上等なライブラリに過ぎない
2021/11/14(日) 11:52:14.47ID:1vDNCXCc0
別にクラス出来ないとも言ってないし、Python速くしようと思えばだいぶ速くできるんだけども
2021/11/14(日) 12:04:28.87ID:KajEYa8D0
速度で困ることってあるの?
大抵は秒で終わる
2021/11/14(日) 12:55:06.17ID:r+uJUw0M0
そういう部分って塵積だから実際に困ってからリファクタしたらいいんだけど
エンジニア思考的には誤差でも遅い選択肢をとりたくないよね
余計な仕組みが介在してると読み解こうとミスリードしがちだし
2021/11/14(日) 13:07:34.46ID:BR/vBx9v0
グラスも変数なんだが、グローバル変数をクラスにまとめたらglobalは書かなくても良くなったわ。
2021/11/14(日) 13:11:14.12ID:KajEYa8D0
設計自体は間違ってないから、一旦グローバル変数多用して書いたコードが、
classにするとパズルが解けるようにするすると綺麗になっていくのは気持ちいい
2021/11/14(日) 13:51:57.42ID:E00roTgyF
>グローバル変数をクラスにまとめたら

グローバルなバカでかいクラスが生まれるのか
2021/11/14(日) 14:17:15.55ID:KajEYa8D0
コード上は明確に分離はしてないけど、処理としてはちゃんと分離していて、
ブロックとブロックの受け渡し部分にいくつかのグローバル変数がある

という状態のものを引数や戻り値に変更して、関数やクラスに切り分けて
すっきりさせるのは簡単
2021/11/14(日) 15:24:49.69ID:dwOSLptua
>>34
a.b.cと言った変数をクラスに定義して、para.aと使うだけ。
書き換えでもglobalは不要になる。
37デフォルトの名無しさん (ブーイモ MM39-+EiL)
垢版 |
2021/11/15(月) 16:52:45.22ID:wu1uqKJYM
お前らってわざとミスリードな読み方するよね
2021/11/15(月) 17:42:17.61ID:gIcwiD4A0
miss readだけにwww
2021/11/15(月) 20:02:39.05ID:HZC12ov+0
>>34
class アホ:
pass

アホ.ボケ="カス"
アホ.オレ="フサフサ"

こんな感じでアホの空クラス作っておいて後からアホに紐付いた変数を作ったり出来る
2021/11/15(月) 20:07:29.84ID:2nh4BpvC0
>>1
以前、Rubyの本読んでたけど、Ruby好きとは仲良くなれないと思った。
2021/11/15(月) 20:10:30.92ID:trxoMZbv0
perl使っててかゆい所に手が届くようにするとrubyになる
2021/11/15(月) 20:32:52.77ID:x301xsWW0
言語は痒くなくなったけど代わりに脳みそが痒い奴が寄り付くようになった
2021/11/15(月) 20:36:51.02ID:trxoMZbv0
既に言語はあって、それで目的のことはできるだろうに、
それでも新たな言語を作る奴というのは何か振り切ってるので、
出来上がった言語もそれぞれに振り切っている

pythonは何ていうか、全てに中庸なんだよな
力を抜きすぎないけど凝りすぎない
44デフォルトの名無しさん (ワッチョイ 1536-+8FJ)
垢版 |
2021/11/15(月) 22:22:57.49ID:vWqBfheN0
python は qt との相性が抜群なので、120%満足です。

力技でperl/Qtを使ってた頃がバカみたい w

perl と qt の相性は最悪。
2021/11/16(火) 01:10:42.53ID:iwzdrBCN0
ソ連の核は綺麗な核
ポル・ポトはアジア的優しさ
北朝鮮は地上の楽園
珊瑚自作自演事件
南京・慰安婦捏造
教科書書き換え「誤報」事件
朝日・武富士裏献金事件
拉致問題切り捨て
サイレント魔女リティ
風の息遣い
五味ボマー
変態新聞
村木局長犯人扱い
その他人民裁判ならぬマスコミ裁判は数知れず
そしてマスコミお得意の「報道しない自由」

これでも貴方は新聞を信用しますか
これでも貴方は新聞を購読しますか

よく考えて下さい
2021/11/16(火) 01:17:12.27ID:lkEbsocr0
>>44
他のGUI toolkitと比べてQtの優位性って何がある?
最近GUIにもちょっと手を出そうとしてるんだけど、QtがヨサゲならQtopia触ってた身としては他の模索省いてこのまま進めたい
2021/11/16(火) 07:24:30.85ID:MhaWhMirr
Qt自体が時代遅れ
2021/11/16(火) 07:50:46.32ID:rEvbb9QE0
>>46
ヤッパリ古いのは機能豊富だしカレテル
Qt利用経験あるならPyQtかPySide2で決まりだと思う
49デフォルトの名無しさん (ワッチョイ 1536-+8FJ)
垢版 |
2021/11/16(火) 08:44:38.99ID:mgTVYsIn0
Qt-designerが使えるのが一番だな、GUIで画面が作れないとメチャクチャ大変から。
2021/11/16(火) 09:05:22.55ID:nevdyZlN0
excelとかxmlとかいろんなファイルを読んで別のファイルを生成するツールがあって
自分用で使うなら設定用のテキストファイルに
読み込むファイルや出力ファイルを記述する方式で十分なんだけど、
社内で共有して使う用にアホでも使えるGUIを用意したい場合、
何を使うのがいいだろう
51デフォルトの名無しさん (エムゾネ FF43-09aj)
垢版 |
2021/11/16(火) 10:21:21.37ID:5D9mKY7bF
>>42
あっちのスレで引き留めて置いて欲しいんだが
色んなスレに拡散感染拡大して迷惑
それだけの吸引力も無いようだ
52デフォルトの名無しさん (エムゾネ FF43-09aj)
垢版 |
2021/11/16(火) 10:24:40.56ID:5D9mKY7bF
>>39
ハゲにハゲと言うのはハゲであることは事実だが名誉棄損にはなるらしい
2021/11/16(火) 10:28:07.61ID:5D9mKY7bF
>>45
https://www.jiji.com/jc/article?k=2021111500707
54デフォルトの名無しさん (エムゾネ FF43-09aj)
垢版 |
2021/11/16(火) 10:31:29.98ID:5D9mKY7bF
>>50
設定ファイルのテンプレをexcelで造って
excelから設定を読み込めば喜ばれる
2021/11/16(火) 11:15:16.57ID:nevdyZlN0
設定のexcelファイルはいいな
以前の設定の流用がしやすいし、操作にも慣れてる
説明も書き放題

ボタンをクリックするとpythonが起動する部分の設定が最難関だけど、
カレントにあると決め打ちでいいか
2021/11/16(火) 13:50:36.62ID:dtmpxDpX0
誰もがエクセル使えると思わないほうがいいよ
UIとして使うにも限度があるしマクロ使うといちいち警告でるし複数PCからアクセスされると編集禁止とか余計なエラーが出てとにかくみんなイラつくだけ
UIデザインはHTMLにまかせてNode.jsなりで管理するのが楽かと
2021/11/16(火) 13:57:58.94ID:nevdyZlN0
まあ、フリーソフトの配布ではないので
excelは全員が使えるとしてよい
2021/11/16(火) 15:21:38.88ID:6v6IG7710
ITリテラシーない人の相手したくない
59デフォルトの名無しさん (ワッチョイ 4dda-+EiL)
垢版 |
2021/11/16(火) 16:51:29.18ID:iw6chFt80
>>47
Qt6でようやくasync/awaitってな…
60デフォルトの名無しさん (ワッチョイ 1536-+8FJ)
垢版 |
2021/11/16(火) 20:17:26.68ID:mgTVYsIn0
チラッとネットで見たけど、async/awaitって真面目に使うとなると面倒そうだね。

これって主に何に使うの?fork()して実行より、楽って事?
61デフォルトの名無しさん (ワッチョイ 7501-09aj)
垢版 |
2021/11/16(火) 20:49:59.34ID:LLUTRYIZ0
コンピュータの性能を100%引き出し、最高のユーザー体験をお約束します。
2021/11/17(水) 00:58:48.67ID:TRGzpBEI0
PythonではFastAPI以外で使ったことないすね…
js/tsではないと困るけど
いつの間にかasyncio.runなんて追加されてたのか
2021/11/17(水) 01:16:00.95ID:+JwFzM8Ra
富嶽のsimで温暖化対策に貢献とか言ってるけど
なぜ富嶽を北海道に造らなかったし
64デフォルトの名無しさん (ワッチョイ 7501-09aj)
垢版 |
2021/11/17(水) 02:16:34.56ID:TmFCV0x+0
寒冷地域と温暖地域の温度差が少なくなると対流が起きず地球が冷やされないからでは?
2021/11/17(水) 02:24:11.13ID:vyPEPYRk
あんまりpython関係ないかもだけど
ちょっとした設定情報をjson形式で保存してて
更新とかするときに
json.loads,json.dumpsとopenで丸ごと上書き
ってやってるんだけどダメかな?
(他の重要というかシステムに近い設定とかはenvとかDBで管理してる)
jsonじゃなくてそういうのに特化した規格ってあるのだろうか。
2021/11/17(水) 03:12:57.62ID:HN5Eyc2m0
いいよ
2021/11/17(水) 06:34:49.63ID:h3betjKK0
json, yml, configparser
2021/11/17(水) 06:37:00.64ID:qr7EHiL50
json便利だけど読みにくい
読むコツ教えて
2021/11/17(水) 06:51:46.05ID:dwBhRem9a
>>68
整形してないからじゃ?
してあっても読みにくいなら、キミ自身に問題がある
2021/11/17(水) 07:49:12.20ID:5cuGb6Ey0
>>65
クラス化しとけば差し替えも簡単
2021/11/17(水) 07:49:51.40ID:5cuGb6Ey0
>>68
色付きで表示できるviewerで見る
72デフォルトの名無しさん (ワッチョイ ed5f-09aj)
垢版 |
2021/11/17(水) 10:36:40.12ID:wlAtkNPK0
jsonは無駄が多い
SQLiteでええやん
2021/11/17(水) 10:46:13.37
sqlだとソースからみるときクライアント選ぶのがなぁ・・
2021/11/17(水) 10:48:59.66ID:XqIxGMI20
無駄の多さならxml
2021/11/17(水) 11:44:41.09ID:qr7EHiL50
>>71
ありがとう!これなら見えるね。
2021/11/17(水) 12:52:40.46ID:XqIxGMI20
python2の方が良かったのに
という点ってある?
2021/11/17(水) 13:10:53.17ID:HN5Eyc2m0
IronPythonは未だに2やで
78デフォルトの名無しさん (ワッチョイ ed5f-09aj)
垢版 |
2021/11/17(水) 14:16:22.07ID:wlAtkNPK0
print
2021/11/17(水) 15:57:05.68ID:4FTJCengM
>>65
強いて言えば、一時ファイルに書き込んでからrenameで上書きした方が安全、くらい
80デフォルトの名無しさん (オイコラミネオ MM71-K2Uy)
垢版 |
2021/11/18(木) 09:17:27.97ID:tpBIFt92M
最初からSQLite使えばいい。
ジャーナリングも標準であるし。
2021/11/18(木) 17:38:05.48ID:naW8oYaR0
否定はしない
2021/11/18(木) 18:04:56.64ID:ah9sw/Zw0
俺は嫌だ
2021/11/18(木) 23:29:42.52ID:/dHqMjeMa
asyncioはI/Oに効く
データベースの読み書きとか通信処理とか
バックグラウンド処理はCPUにオーバーヘッドがある時
2021/11/19(金) 07:39:18.17ID:OFtNpZ320
3.8.5でwin8.1で動くものをwin7に持っていくと、
subprocess.Popenでエラーになって動かない

最新のpythonはそもそもwin7にインストールできない
win7で動くもっと新しいバージョンはある?
無い場合は何か解決方法はある?
2021/11/19(金) 07:50:08.35ID:UKOjKE+50
>>84
エラーメッセージは?
2021/11/19(金) 08:01:48.17ID:OFtNpZ320
FileNotFoundError: [WinError 2] 指定されたファイルが見つかりません。

実行しようとしてるのはbatファイルで、.batまで書くとエラーにはならない
でもサブプロセスとしては動かなくて、処理はそっちに移行して終了してしまう
shell=Trueを付けても同様の動作になる
やりたいのは、いつ止まるか判らないコマンドをサブプロセスとして動かして監視すること
2021/11/19(金) 08:08:51.54ID:+sXFtDSXD
Pyの知識以前のWinのシェルの知識だな
cmd . exeをスイッチ付きで起動してやればいい
2021/11/19(金) 10:41:55.94ID:fOs9i175r
3.7だと動くのかどうか

去年ですらopenCVがPython3.8で動かないとか問題になってたなあ
2021/11/19(金) 10:47:38.84ID:fOs9i175r
この辺が時々問題になるから
じゃあwheelで取ってくるかと思い
pep425とかget_supportedとかやってみたら無くなってる

調べたらutils.compatibility_tagsとかになってた

それをふざけてcolaboratoryでやってみたら3.7までしか対応してなかった次第
2021/11/19(金) 11:03:06.60ID:OFtNpZ320
perlだとwin7の時点で既に固まってたので、環境が古くて困ることは無かったけど、
pythonはまだ進化を続けてるので、後方互換性はかなり怪しいな
本番環境側をwin10にしてしまおう
2021/11/19(金) 11:18:00.59ID:eyeX0xyMF
>>84
cmd /K
とか
shell=FalseまたはTrueかな
この辺いい加減に描いてると動かない
2021/11/19(金) 14:17:42.60ID:ysK9uB2VM
>>86
Pythonの違いじゃなくてWin32 console APIの違いの可能性もあるね
Console切り離すのは結構version違いが激しい
Powershellでも厄介
batをVBで書き直すことを勧める
2021/11/19(金) 14:43:19.89ID:V+Ekt21U0
なぜVBw
2021/11/19(金) 14:54:41.80ID:ysK9uB2VM
>>93
Console切り離すのが簡単なスクリプト言語他にあるかな?
2021/11/19(金) 14:55:39.66ID:ysK9uB2VM
WSHでJavascriptなら簡単なんかな?
2021/11/19(金) 15:07:12.92ID:OFtNpZ320
問題はbatファイルの呼び出しだったようで、
実行ファイルを直接呼び出すように変更したらwin7でも動いた
2021/11/19(金) 15:46:55.28ID:bNc9xgI00
ぱい
2021/11/19(金) 18:23:50.32ID:NQkiHUfv0
ちゃんとした質問してほしい
2021/11/19(金) 22:02:42.25ID:R6tUvqDP0
2021/11/20(土) 06:35:11.10ID:MZWWAxGE0
cp932で表せないファイル名のリストを作る

cp932にencodeしてみてエラーになったらそれを出力する、という方式なんだけど、
printするとエラーになってしまうので、リダイレクトでファイルにできない
仕方ないので、encoding="utf-8"でopenしてwriteしてるけど、
改行とか付けないといけないし、printで済ませたい

printしてもエラーにならない方法とか無いのかな
python2ならそのまま行けた
2021/11/20(土) 07:45:20.38ID:Lukvfxqi0
>>100
https://docs.python.org/ja/3/library/functions.html#print

>>> f = open(path, 'w', encoding='utf-8')
>>> print(*objects, file=f)
2021/11/20(土) 08:24:40.92ID:MZWWAxGE0
cp932のエンコードなんだからcp932でないものは通さない
という例外を認めない姿勢は厳密ではあるけど融通がきかないよな

漢字のファイル名も使えるのに、たまに'〜'とか変なスペースとかで
処理できないツールは大抵そういう厳密さで引っかかってる
ノーチェックで通してれば処理も減るしツールも使える側に倒れるのに
103デフォルトの名無しさん (オイコラミネオ MM67-83eS)
垢版 |
2021/11/20(土) 11:19:01.66ID:/kqPbqrTM
なんとなく筋違いのことを言っているのだけはわかった。
2021/11/20(土) 12:11:56.36ID:MZWWAxGE0
既にファイルは開いてるんだから、そこにwriteするかprintでfile=を指定するかは、
処理上何も変わらない

知りたいのは、リダイレクトしてエラーにならない方法
os側は何が来ようがそのままファイルにリダイレクトするので、
標準出力に出す時点でのチェックを止めればいい
2021/11/20(土) 13:10:25.59ID:c6rYoMps0
python2でいけて、python3でエラーっていうのがわからない
CP932のコンソールの問題なら普通前者で起きると思うんだけど
2021/11/20(土) 13:20:06.78ID:c6rYoMps0
あと、openするときにバイナリ書き込みを指定すれば済みそうだけどな
改行コードもそのままにできるし
2021/11/20(土) 20:33:41.39ID:MS7q4miD0
https://www.pythonic-exam.com/archives/news/python_open_document
2021/11/20(土) 20:33:57.35ID:MS7q4miD0
いつ公開するのよ?
2021/11/21(日) 12:48:52.72ID:4kBJkMan0
https://qiita.com/righteous/items/c5f6fbf84c98c5a17043
これ全部できる?
2021/11/21(日) 13:09:44.82ID:DbnHICgp0
とどらんみたいなサイトに興味があるんですが、統計学とデータ分析どちらの知識が必要でしょうか?。
2021/11/22(月) 04:46:02.24ID:X0+jYONh0
a = ['a', 'b', 'c']
if 'x' not in a: print('hello') #1
if not 'x' in a: print('hello') #2

#1はaに'x'が含まれていない
#2は(aに'x'がふくまれている)の否定

この二つは全く同じものだと考えて良いのでしょうか?
112デフォルトの名無しさん (ワッチョイ 0610-0sbD)
垢版 |
2021/11/22(月) 07:57:31.23ID:sf/6XMlW0
同じ
2021/11/22(月) 08:01:58.64ID:HMeOIS1cM
>>111
同じだけど #1 で書けって言ってるみたい
https://kazusa-pg.com/python-not-in/
2021/11/22(月) 09:30:17.60ID:7Z6oy9Mm0
普通に優先順位が不安になるよな
2021/11/22(月) 10:10:59.14ID:XQq90Aj30
CIに必ずいれるしflake8なしでコード書くのは考えられん
116デフォルトの名無しさん (アウウィフ FF3b-YgSv)
垢版 |
2021/11/22(月) 12:23:27.94ID:vmkVXbGEF
if a is not None:
if a not is None:
if not a is None:
Python は書き方が一つしかない()っていったのは誰?
2021/11/22(月) 12:28:55.98ID:8fUDDfEEd
英語文法に強いと#1しかあり得んとなるが
否定文でこけた経験があると、どうしても頭に否定書きたくなってしまう
なんなら否定自体書きたくなくなる
2021/11/22(月) 12:42:04.92ID:7Z6oy9Mm0
そこでunlessですよ
2021/11/22(月) 13:10:59.47ID:z3oVlEgz6
if a:
2021/11/22(月) 13:58:34.46ID:WOttMYR/0
変数hogeに値がある場合はfugaにhoge(の値)を代入したい場合
if文や条件式を使わずに表現する方法ってある?
# python
hoge = "piyo"
fuga = hoge if hoge else ""

bashの変数展開みたいな書式ないよね
# bash
hoge="piyo"
fuga=${hoge:-""}
2021/11/22(月) 14:08:40.76ID:7Z6oy9Mm0
orは?
2021/11/22(月) 15:03:17.50ID:8fUDDfEEd
それこそwysiwygの精神に反するってすぐ分かりそうなもんだけどな
2021/11/22(月) 15:12:56.63ID:PHd8OvUid
Python初心者です
https://teratail.com/questions/251676
このページを参考にBytesIOを使おうと考えています

a = np.load(BytesIO(binary))
このように使った場合、BytesIOは不要と判断されて開放されるのでしょうか?

https://docs.python.org/ja/3/library/io.html
The buffer is discarded when the close() method is called.
とのことで、
stream = BytesIO(binary)
a = np.load(stream)
stream.close()
としたほうが良いのでしょうか?
2021/11/22(月) 15:24:31.25ID:XQq90Aj30
>>123
IOBaseの説明の対比でそう書いてるだけで
GCが働くからclose()は必須ではない
125デフォルトの名無しさん (ワッチョイ 0610-0sbD)
垢版 |
2021/11/22(月) 15:27:18.74ID:sf/6XMlW0
with BytesIO(binary) as stream:
__a = np.load(stream)

withブロックを抜けるとcloseされるから安全
2021/11/22(月) 16:09:57.46ID:7Z6oy9Mm0
withってなんか雰囲気で動いてる気がする
2021/11/22(月) 16:25:58.98ID:v4k6kYue0
>>121
なるほど、or はこんな動作もするんだな
ありがとう
128デフォルトの名無しさん (ワッチョイ 067b-cxg+)
垢版 |
2021/11/22(月) 16:37:47.59ID:2MDgP0Vy0
>>120
よくわからんけど
その例だったらfuga=f’{hoge}’でもfuga=hogeでも同じじゃないの?
2021/11/22(月) 16:54:42.37ID:v4k6kYue0
>>128
変数 hoge に "piyo" が入っているのは一例で、
例えば、hoge がもし None だった場合に ""(空文字)に変換されるので、
そのまま文字列(の一部)として出力したいときに使えるようになる
2021/11/22(月) 16:58:50.36ID:2MDgP0Vy0
あー、hogeが存在してなくてもエラーが出ないのか
131デフォルトの名無しさん (ワッチョイ ef36-QUTC)
垢版 |
2021/11/22(月) 19:05:57.15ID:lkDGIXBn0
まあ、自分しか見ないソースならいいけど見ずらくなりそだな、その書き方。
132デフォルトの名無しさん (オイコラミネオ MM67-83eS)
垢版 |
2021/11/22(月) 19:36:29.24ID:5E3QcxihM
undefinedに対応できない、Falsyのうっかりとかあるから、褒められる書き方ではないわな。
2021/11/22(月) 20:16:33.77ID:zjNStOpV0
>>124
>>125
ありがとうございます、勉強になりました
2021/11/22(月) 22:48:58.52ID:XQq90Aj30
fuga = hoge if hoge else ‘’
fuga = hoge or ‘’
どっちも’’とか特定の偽しか来ない前提だけど冗長でない分後者を推す
公式にも前者のコード例はたぶんないし
2021/11/22(月) 22:51:07.19ID:XQq90Aj30
‘’ or ‘’は意味不明やわ。日本語不自由ですまん
2021/11/22(月) 23:21:46.71ID:7Z6oy9Mm0
perlの // みたいなのは無いのかな
a // b はaがNoneでなければaを、Noneならばbを返す
2021/11/23(火) 00:17:52.93ID:Ln8GWMq+0
>>120
Ruby では、and/or の遅延初期化をよく使う

p a = a || 1 #=> aが未定義のnil で偽なので、右辺が評価されて1

a = 2
p a = a || 1 #=> aが真なので、短絡評価で2。右辺は評価されない

p b = b && 1 #=> bが未定義のnilで偽なので、短絡評価でnil。右辺は評価されない

b = 2
p b = b && 1 #=> bが真なので、右辺が評価されて1
138デフォルトの名無しさん (ワッチョイ a32c-pEHs)
垢版 |
2021/11/23(火) 00:44:36.44ID:xEN2JBOU0
>>136
それ
x = a if a else b
じゃね?
なんか避けたいって言ってるやつ
2021/11/23(火) 01:00:51.66ID:h5ckzt1c0
Noneかどうかで判定したいってこと
if a
だと0でも空文字列でも偽だから曖昧になりがち
if a is not None
でぜんぜん困らんけどね
140デフォルトの名無しさん (ワッチョイ 3bda-ObXG)
垢版 |
2021/11/23(火) 02:02:18.19ID:4MVUDnE90
ヌル合体とか欲しいよねPythonにも、
2021/11/23(火) 02:33:06.96ID:bb25eqH30
PEP505は全く進展ないね
3.10には入ると思ってたけど
2021/11/23(火) 10:09:13.49ID:OzyPSNUz0
値が入っていることを想定しているけれど、想定外にNoneだった時の為のガード
みたいな使い方をしたいんだろうけど、
そういうのは明示的にifとかtryで書いた方がいいよな
143デフォルトの名無しさん (オイコラミネオ MM67-83eS)
垢版 |
2021/11/23(火) 10:41:32.64ID:iYWDXWdAM
むしろ気をつけないといけないのは、想定外にTrueになってしまうケースだ。
たとえば、昔のDjangoのUserモデルのis_authenticatedは、プロパティじゃなくてメソッドだった。
2021/11/23(火) 13:28:59.61ID:Cd+od5Ii0
Noneも曖昧だからね
単なる未定義なのか空集合なのかエラーなのかNoneそのものなのか
ディクショナリー検索等でNoneが帰って来る仕様だがどう扱うか
2021/11/23(火) 13:32:03.52ID:KM4P0q2w0
結局は>>143の言うとおりなんよ…

我々はすでに知ってるんよ、中身がNullかどうかに注目した結果
普通にコード書くだけでトライキャッチスパムになってしまうJavaとかいう言語を…
2021/11/23(火) 13:40:48.37ID:OzyPSNUz0
エラーの情報をちゃんと持ってて、ずっと上流の呼び元までそれが伝わる言語あったな
なんだっけ

関数は引数に従って値を返します
という前提で普通の言語は設計されているけど、
関数は引数に従って値を返します。返さないこともあります
でないといけなかった
2021/11/23(火) 13:43:00.09ID:x4PI0/Sq
fastAPIのルーティングでデコレータ使わずに
app.add_api_route("/hoge", hoge, methods=["GET","POST"])
な感じで分離してやってみたけど、各リクエストメソッドでバリデーションが異なる時に躓いた

このまま共通のhogeだと互いのバリデーションclassが422 Unprocessable Entityを引き起こしてしまうので
app.add_api_route("/hoge", hoge, methods=["GET"])
app.add_api_route("/hoge", hogePost, methods=["POST"])
みたいにして新たにhogePost追加するという書き方に。

かと言ってデコレータ使うと
@app.get("/hoge")
def hoge():
@app.post("/hoge")
def hoge():
みたいにせっかくのルーティングの分離管理が二度手間かつ無駄に
というジレンマ

デコレータ使わない場合
>新たにhogePost追加する
というのが無難なのだろうか・・
2021/11/23(火) 15:02:56.49ID:Vfqk4Xs70
validator 内で GET/POST 区別したら?
149デフォルトの名無しさん (オイコラミネオ MM67-83eS)
垢版 |
2021/11/23(火) 15:18:14.11ID:nqaaqo53M
app.add_api_route("/hoge", hoge, methods=["GET"])
app.add_api_route("/hoge", hogePost, methods=["POST"])
これでいいんじゃね。関数として分けておけば、
validatorもデコレータ(ファクトリ)にしてみたり、いろいろ柔軟にできる。
@validate('GET')
def hoge()
@validate('POST')
def hogePost()
2021/11/23(火) 16:09:24.71ID:x4PI0/Sq
>>148
今はpydanticなvalidor使ってるけどクラス変数の評価前に区別する方法があったりするのだろうか
>>149
うんとりあえずはそんな感じでリクエストメソッド分だけ用意することにした

d
2021/11/24(水) 00:31:29.22ID:9nGxCHAd0
★★★★★
会話をすればポイントが増えてアイテムを買える。
次世代の大型掲示板、メルプラネット。
https://merpla.net/boards/
2021/11/24(水) 04:45:08.04ID:ZcuSX9hJ0
>>144
かと言って最初からOption型やmaybeモナドでライブラリ構成されてもウザいしね
2021/11/24(水) 15:08:35.99ID:lCK/bdd80
名前と数値がセットになったような内容を扱う時、
セットにしただけのclass作る?
2021/11/24(水) 18:01:26.90
キーと値がセットになった各値をどう扱うかによって
インスタンス化するか、辞書にとどめておくか、ライブラリ使うか
変えるかなぁ
2021/11/24(水) 21:37:03.97ID:YZcLPgmZ0
>>153
自分だけしか使わないならダラダラ書くけど
引き継ぐ可能性がある場合はクラスにしといた方がメンテしやすいんじゃないかと思ってる
2021/11/24(水) 22:14:50.32ID:lCK/bdd80
リファクタリングの本読んでて、オブジェクト指向の初心者は
小さなオブジェクトを使うのを嫌がる的なことが書いてあって、そんなもんかなと
157デフォルトの名無しさん (ワッチョイ a32c-pEHs)
垢版 |
2021/11/24(水) 22:49:34.83ID:Ph9UZvc+0
通常そういうデータってどっかのクラスのメンバ変数で辞書かnamed tupleじゃねえか?
keys:names のみのクラスってどういう状況であり得る?
158デフォルトの名無しさん (アウアウウー Sa3b-bFQI)
垢版 |
2021/11/25(木) 00:14:54.89ID:Mg+a9DvFa
集計目的ならdefaultdict
2021/11/25(木) 06:32:01.73ID:kAK1JHHz0
>>157
通常と言われてもなあ
2021/11/25(木) 07:36:38.15ID:1AK1NI0N0
ただの名前であってキーとは言ってない
重複のない保証はない
name[i]とval[i]で管理したいところ
valでソートをかける
classにせずとも余裕でやれる
やれるけど?
2021/11/25(木) 07:55:54.60ID:wc50HyKuM
ただの名前をキーと言う奴はもれなくアホだと思う
2021/11/25(木) 09:04:00.52ID:kAK1JHHz0
>>160
じゃあその組を管理するRDB風のクラスがいいんじゃないの?

#セットという言葉の使い方が気になる
2021/11/25(木) 09:23:53.44ID:1AK1NI0N0
いいんじゃない、の加減なんだよな

しなければならない / 是非するべき / した方がいい / しなくてもいい / しない方がいい / しない
そのへんの温度感が経験で違うのだろう
2021/11/26(金) 20:45:55.13ID:wc7annti0
urlopen()をwithで取得してwithを抜けると何が起きるの?
2021/11/26(金) 20:48:58.06ID:s3jo07500
シメられる
2021/11/26(金) 22:16:46.96ID:nRTAMUqI0
https://docs.python.org/ja/3/library/urllib.request.html#urllib.request.urlopen
> HTTP および HTTPS URL の場合、この関数は、わずかに修正された http.client.HTTPResponse オブジェクトを返します。

class HTTPResponse(io.BufferedIOBase)
で__exit__()はオーバーライドされてないから受信データにアクセスできなくなるだけ。
意図してる通りだろうけど
> より高水準のHTTPクライアントインターフェースとして Requestsパッケージ がお奨めです。
だし、説明が追加されることはなさそう。
2021/11/26(金) 22:30:51.87ID:wc7annti0
何かのリソースが自動で開放されるとかではないのか
2021/11/27(土) 18:48:32.12ID:Ce5RxaUa0
pygameってみんな使ってないのか?
せっかく二冊ほど読み終えたのに動かそうと思ったら
3.8じゃうごかないとか言われて途方に暮れてるんだが・・・

すなおにゲームはunityつかえってことか・・・・
2021/11/27(土) 19:23:42.37ID:QJDif1Cg0
2021/11/27(土) 19:29:31.81ID:IgXLbzKoM
>>168
たくさんあるから
 Python ゲームエンジン
で検索して目的に適してるのを選べ
2021/11/27(土) 19:45:13.67ID:JJsR/G8Z0
pygameでmidiが取り扱えるんだよな

ハノン弾いてリアルタイムで正確さを表示したら面白いと思って
ずっと前に作りかけて放り出してある
今ならすぐ作れそう
2021/11/27(土) 19:54:52.11ID:i0YnXTZB0
pygame、3.8.10で動くけど?
173デフォルトの名無しさん (ワッチョイ b72c-pIXc)
垢版 |
2021/11/27(土) 23:14:16.59ID:bPwHecSK0
pygame2やれ
2021/11/28(日) 00:16:01.67ID:0Kkbs8iXM
>>173
公式によれば3.9も
ただメインテナンスはやや停滞なんかね
2021/11/28(日) 00:55:05.96ID:YY1hk1pY0
色々試したらうごいたわありがとう
レースゲーム動かせるわ
2021/11/28(日) 00:55:37.48ID:YY1hk1pY0
普通にpipでいけたよ
2021/11/28(日) 09:18:19.48ID:swBDA3nq0
Pythonエンジニア認定試験のことってここでも大丈夫ですか?
2021/11/28(日) 09:26:25.30ID:6NVlX2It0
pythonが使いこなせるかどうかの能力なんて、
各種ライブラリのことをどこまで知ってるかだからなあ
言語仕様の部分はすぐに全員カンストするから差が出ない
標準ライブラリに限定して問題作ると、もっと便利な方法があって現実的でなくなる
2021/11/28(日) 09:39:22.33ID:o94Sh6rb0
そうだね
そもそもpython自体は簡単だし
ライブラリを使いこなす知識の方が重要だよね

認定試験無いよりはマシだろうけど
認知度が低いから結局試験の内容を説明しないとイケないんだよな
情弱処理持ってる方が話は早い
2021/11/28(日) 09:46:54.78ID:6+AWQcj90
>>177
とりあえず質問してみたら?
2021/11/28(日) 14:43:59.37ID:6NVlX2It0
改行区切りで書かれたファイルがあって、これを改行無しでリストに読み込みたい
そして、リストを改行区切り形式でファイルに書き出したい

内包表記で改行を削って、書く時にはjoinで改行付けるとかすればできるけど、
もう一段スマートにやれないかな
2021/11/28(日) 16:14:46.54ID:TzUvGqBa0
フツーにforで回してprintするだけじゃん
2021/11/28(日) 16:22:25.89ID:6NVlX2It0
読み込み側は、
f.read().splitlines()
ですっきり書けた

この逆をする関数があればいい
リストの各要素を改行で区切って文字列に変換するような関数
ってそれは単にjoinの特殊ケースに過ぎないから、無いのも頷ける
2021/11/28(日) 17:25:05.50ID:/1mvnnK50
頭悪そー
2021/11/28(日) 17:39:15.04ID:6NVlX2It0
あるべき姿はpickle
でもテキストエディタでも開きたいので、jsonとかyamlとか
それでも編集しにくいので、どうせリストだしと改行区切りまで落とすと、
スマートな手段が無くなる
186デフォルトの名無しさん (ワッチョイ d736-5r7x)
垢版 |
2021/11/28(日) 17:57:10.63ID:9rjB7eJM0
自分でjsonEditor作るのは面白いよ。中級クラスのレベルかな。
データも list >> dict >> dict >> list >> list >> dict >>int 見たいにnest構造になってるから編集しようとすると、そこそこ扱いも難しいし。

画面構成から考えれば、いい練習問題になるよ。
2021/11/28(日) 19:57:15.81ID:Wh0Bw3X30
>>180
ありがとうございます!


Pythonエンジニア基礎認定試験を受けようと思うのですが、
スッキリわかるPython入門を導入書として使ってからPythonチュートリアルをしようと思うのですが、同じように勉強して合格された方はいますか?
188デフォルトの名無しさん (ワッチョイ 9fad-39v0)
垢版 |
2021/11/28(日) 21:05:28.72ID:jvvYPFKj0
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^

あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!

クソチョンw
クソチョンはウンコを食べる糞食人種w
ゲリ便をじゅるじゅると
うまそうに食ってるw
2021/11/28(日) 23:19:25.63ID:SJI7MgMY0
>>181
Ruby なら、配列を出力するだけで、改行区切りになるけど

ary = [ "ab", 1 ]
puts ary

出力
ab
1
2021/11/28(日) 23:28:07.54ID:6NVlX2It0
perlだとこんな感じ
デフォルトはスペース区切りなので改行に変更

@a = (ab, 1);
$" = "\n";
print "@a";
191デフォルトの名無しさん (ワッチョイ 9f01-DInY)
垢版 |
2021/11/29(月) 02:28:05.31ID:Tbj9SxrO0
>>181
writelines()じゃね?

https://techacademy.jp/magazine/28281
2021/11/29(月) 06:26:32.46ID:8tyLAOgdM
>>191
writelines(lines)
行区切り文字は追加されないので、書き込む各行の行末に行区切り文字を含ませるのが一般的です。
https://docs.python.org/ja/3/library/io.html
って書いてあるからダメでしょ

そもそもそのリンク先
text = [
"メロンn",
"イチゴn",
"みかんn",
"スイカn",
"ぶどうn"
]
なんて書いてる時点で信用できない
193デフォルトの名無しさん (JP 0H8b-pIXc)
垢版 |
2021/11/29(月) 09:20:02.45ID:LowbA3aSH
テックアカデミー(笑)
2021/11/29(月) 09:26:34.67ID:LcIxau/K0
pythonの裾野の広さを感じさせてくれるサイトだよな
195デフォルトの名無しさん (アウアウウー Sa5b-lY6R)
垢版 |
2021/11/29(月) 11:03:42.15ID:uzcK9QD5a
Perlの文法も気持ち悪いな。
シェルスクリプトかよ。
Pythonのやり方はJavaかC++からの輸入だな。
196デフォルトの名無しさん (ワッチョイ 9f01-DInY)
垢版 |
2021/11/29(月) 11:04:55.76ID:Tbj9SxrO0
>>192
ダメじゃねえかwすまんこ
197デフォルトの名無しさん (ワッチョイ bf66-D8AZ)
垢版 |
2021/11/29(月) 11:29:59.53ID:FdW61dzG0
>>193
クソのくせにやたら検索に引っかかってくるからウザイ
2021/11/29(月) 11:37:52.94ID:pAg5RKMOd
テックアカデミーと侍は中学生に書き直させた方がまだ読めるようになるレベルのゴミ
2021/11/29(月) 11:46:02.57ID:FVbxGJ7fM
readlinesやwritelinesで改行コードを扱う方法を提供しないのがPythonクオリティー
テックアカデミーをバカにできない
2021/11/29(月) 12:00:17.47ID:7wd93ooE0
日本語の技術サイトはろくなのがない印象
Pythonに限らないけど
2021/11/29(月) 12:04:08.22ID:pAg5RKMOd
昔はインスタントPython、インスタントハッキングがjpy公式にあったから
そこで初心者は学習できた
あと結局pythonは公式ドキュメントとライブラリーリファレンス読み込むことで大抵の問題は解決する
個人的な問題を解決したかったらそれなりにキャリアのある個人ブログ探すのが安定する
2021/11/29(月) 12:16:52.32ID:BKJFnTwg0
>>195
Perlはシェルスクリプトの置き換えが目的そのもので順当
PythonはLuaのようなアプリ内スクリプティングな応用が当初多かったし
記述が簡便なのが特徴じゃない?なんで所々厳格でなくて歪なのが残念な点
というかJavaとは同世代だし
2021/11/29(月) 23:18:44.84ID:f/Sm4Tcj0
Python は、改行コードがめちゃめちゃ難しい。
global newline みたいに自動的に、OS に合わせて変換してくれる、機能はないのか?

Ruby では簡単なのに
2021/11/29(月) 23:25:16.24ID:LcIxau/K0
入力はどんな改行が来てもちゃんと読んで、
出力は今動いてる処理系に合わせて出力すれば、それで問題ないのでは
2021/11/29(月) 23:33:33.84ID:BKJFnTwg0
コード上改行はLFで統一できてる。
何も指定せずテキストモードでopenしたらCRLF→LFの変換はしてくるし
Windowsコンソールに出力したらLF→CRLFも透過的に行う。
バイトストリーム用にos.linesepも用意されてる。
2021/11/30(火) 06:02:42.47ID:uWG/s7m50
\nってCRLFのことだと思ってた
2021/11/30(火) 06:03:41.68ID:1Yo8WetK0
円得ぬ
2021/11/30(火) 06:04:10.45ID:TlXezoe70
どなたか
>>187
をおねがいします!
2021/11/30(火) 06:24:38.24ID:uWG/s7m50
まともな検定だったら、本だけ読んで通ると思えない
210デフォルトの名無しさん (オイコラミネオ MMab-umM0)
垢版 |
2021/11/30(火) 06:39:04.04ID:oWvAOz19M
>>205
自動なのがかえってめんどくさい。
2021/11/30(火) 06:49:20.24ID:uD8YTZMG0
>>208
いますよ
2021/11/30(火) 06:52:03.48ID:uPKcxb4Vd
>>211
ありがとうございます!
Pythonチュートリアルを読む前の参考書はどんなのを使われました?
2021/11/30(火) 07:02:57.59ID:uD8YTZMG0
>>212
ダラダラ質問小出しにされるのはウザいのでまとめて
2021/11/30(火) 07:09:37.62ID:uWG/s7m50
インタプリタなので仕方ない
2021/11/30(火) 07:17:14.56ID:uD8YTZMG0
じゃぁリストかタプルでちょうだい
2021/11/30(火) 07:35:53.88ID:uWG/s7m50
なんでリストが[]でタプルが()なんだろうな
一番使うものが一番普通な方が収まりがいいのに

辞書が{}なのも、別に[]を使っても中にkey:valがあったら辞書と判るのに
中身が無い時に区別付かないけど、そのくらい何とかなるだろ
217デフォルトの名無しさん (ワッチョイ ff10-1CBA)
垢版 |
2021/11/30(火) 08:13:31.92ID:JFviu3vk0
確かに辞書とsetは同じ{}だしな
2021/11/30(火) 08:51:28.65ID:XgdAJwDY0
>>207
'\n'がlength 1 string objectであると理解できてないのではないか

またCの'\n'も理解できてないのではないか
逆にCでのstrlen(”\n")の値とか
2021/11/30(火) 08:59:45.37ID:XgdAJwDY0
>>217
これまでの言語の慣習に合わせただけでは?
またそれは重要だろう
220デフォルトの名無しさん (オッペケ Srcb-1CBA)
垢版 |
2021/11/30(火) 09:29:09.44ID:BeJPAIX2r
>>216
タプルは()、は少し違うな
正確にはカンマがタプルを生成する
a=1,2
もタプルになるから
2021/11/30(火) 09:39:37.84ID:uWG/s7m50
[1,2]は?
2021/11/30(火) 09:44:19.36ID:aruulzL70
>>212
みんなの
2021/11/30(火) 09:56:24.48ID:kiCF8ukr0
受験料高いのね
落ちたらまた受ければいいやんと思ってた

Python 3 エンジニア認定基礎試験
一般価格 11,000円(税込)
学割価格 5,500円(税込)
2021/11/30(火) 10:11:17.27ID:H2NDp+pi0
会社から報奨金でもでんかぎり勉強だけして試験受けないのも手
分野にもよるがまだAWS/GCPの認定や情報処理とったほうがまし
2021/11/30(火) 10:38:38.92ID:aruulzL70
取れるなら取っとくのがいい
2021/11/30(火) 11:14:18.22ID:kiCF8ukr0
認定で得られるメリット > 受験料
ってこと?
2021/11/30(火) 11:18:02.71ID:PY+WseMod
java金とかオラマスよりは良心的
しかし内容によるな
2021/11/30(火) 11:32:23.65ID:aruulzL70
取る/取らないで悩むことがなくなる。それだけ
2021/11/30(火) 11:48:15.66ID:QYuq9tUEM
netmikoというライブラリを使って
ネットワーク機器のログを定期的に取るようにしてるんだけど、
そのログの任意の行にある値が閾値を越えたらslackに通知させる
仕組みを作りたいんだ。
どっか参考にできるサイトない?
230デフォルトの名無しさん (ワッチョイ b72c-pIXc)
垢版 |
2021/11/30(火) 13:06:16.43ID:q2Lbl4Ky0
pyエンジニア試験はゴミだぞ
古典的な教本商売。無価値
名札が欲しい、とか、仕事で言われたとかなら仕方ないけど
2021/11/30(火) 13:18:14.78ID:uWG/s7m50
E501 line too long ってちゃんと直してる?
232デフォルトの名無しさん (ワッチョイ 9f55-6Gdn)
垢版 |
2021/11/30(火) 13:39:36.66ID:OYiX8qDe0
応用技術者試験って意味ありますか?

昔受験して一応合格したのですが、あんな試験にパスしたからといって、実務には全く役に立ちそうにありません。
IT関連の実務は経験したことがありません。
2021/11/30(火) 13:54:40.00ID:kiCF8ukr0
>>232
ド素人でないことの証明にはなる
資格欄に書いた方がいい
234デフォルトの名無しさん (JP 0H8b-pIXc)
垢版 |
2021/11/30(火) 14:02:00.50ID:6g3UGVsgH
実務経験ないのに実務に役立ちそうにありません、とな
もう少し考えてから釣り糸たらせよボンクラ
2021/11/30(火) 14:07:37.43ID:OYiX8qDe0
例えば、ネットワーク関連の問題が応用情報技術者試験には出題されます。

ネットワークをいじったことすらありませんが、試験の問題は簡単に解くことができます。
2021/11/30(火) 14:28:57.07ID:PY+WseMod
>>234
人売りのシャチョさんこええw
使えねぇもんは使えねぇんだわ
237デフォルトの名無しさん (ワッチョイ d736-5r7x)
垢版 |
2021/11/30(火) 15:02:04.18ID:TfmLZpQ00
youtubeでラズパイをpythonで制御できる。って動画をみて面白うそうだなって思ったけど。。
真剣に考えるとやることがないww

LEDをフラッシュさせてもしょうがないしねw
2021/11/30(火) 16:29:17.49ID:PY+WseMod
ラズパイ買うときはセンサも買え
なんでもいいからいくつかの種類買っとけ
2021/11/30(火) 16:44:07.81ID:EQaczNMQ0
LEDをフラッシュ楽しいじゃん
2021/11/30(火) 17:02:52.22ID:jOio/b0h0
>>238
ちっちゃいモニターもな
これがあるとないじゃ全然違う
2021/11/30(火) 17:19:13.85ID:5Q9goXwA0
普通は受かるんだろう
2021/11/30(火) 18:21:51.55ID:kiCF8ukr0
世の中には頭の悪い人がたくさんいる
・簡単な計算ができない
・文書が理解できない

応用情報だけでもヤバイ人達との差別化にはなる
2021/11/30(火) 20:49:57.78ID:jJXnE01Z0
>>229
slack webhook requestsで検索するとヒントが出てきそう
2021/11/30(火) 20:51:58.08ID:Yy84c4aHa
>>242
それはあるかも
考える事が出来ない人って結構いるんだなと仕事し始めてから知った
245デフォルトの名無しさん (ワッチョイ ff10-1CBA)
垢版 |
2021/11/30(火) 21:08:34.16ID:JFviu3vk0
「半分の人間は中央値以下」
バカみたいな文だが忘れがち
2021/11/30(火) 21:11:58.36ID:uWG/s7m50
中央値ってなに?
2021/11/30(火) 22:08:35.06ID:NQxcoDS50
順番に並べた時に一番真ん中の値
2021/11/30(火) 22:10:40.94ID:uWG/s7m50
「半分の人間は平均値以下」
と言っとけば、なるほどなーうまいこと言うな
と評価を得られたものを、厳密さに拘って機会を逃す
2021/11/30(火) 22:12:15.69ID:NQxcoDS50
半分の人間が平均値以下とは限らないぞ少し頭使えw
2021/11/30(火) 22:16:13.42ID:5tXmj9hK0
中央値知らない人だから仕方ない
2021/11/30(火) 22:37:05.55ID:NQxcoDS50
まさに中央値以下側の人間だなw
2021/11/30(火) 22:46:36.86ID:uWG/s7m50
あんまり統計的に意味がある数字じゃないよな
平均値を避けるということは標準偏差ではないと判ってるんだから、
歪度とかの情報も無いと乱暴すぎる
2021/11/30(火) 22:52:42.79ID:Vh3EpRff0
上から埋まっていく分野では重要
2021/11/30(火) 22:54:30.10ID:5Q9goXwA0
釣鐘状の分布していないときに重要
2021/11/30(火) 23:07:37.57ID:n7GuuI4Q0
平均値でも中央値でもいいけど
そのレベルの人の能力が分からないので
そもそも議論にならない
2021/11/30(火) 23:30:12.90ID:5Q9goXwA0
別に議論に加わらなくても良いですよ
2021/12/01(水) 00:32:10.74ID:cGPzHP040
統計検定3級おすすめ
データ分析の議論に参加できる最低ラインの保証になる
258デフォルトの名無しさん (ワッチョイ ff10-1CBA)
垢版 |
2021/12/01(水) 00:42:15.22ID:X46if3HQ0
>>252
ロバスト統計ってご存知無い?
2021/12/01(水) 01:33:15.78ID:J8+WBzZ00
山本太郎の「れいわ」が躍進したのは、
25年の自公政権で、所得の中央値が108万円低下したことを、暴いたから

世界中で全体未聞の、GDP が上がらなかった国。
ほぼ全員を貧乏にした与党

消費税のほとんどが、福祉に使われなかった。
法人税の穴埋めに使われた

でも、こういう事を知らないから、選挙では自公が圧勝する
2021/12/01(水) 02:17:03.28ID:6ah9oYXi0
>>252
中央値なんて中学校の数学で習うもの知らないやつが
>あんまり統計的に意味がある数字じゃないよな
は草
2021/12/01(水) 03:17:11.02ID:+DdWHpjG0
>>259
よくわからん
知ったのか知らないのかはっきりしなよ
あとスレ違いだからよそでやって
2021/12/01(水) 09:34:10.31ID:pw8MGucb0
配列の範囲外を参照したら0を返してくれたら楽に書ける
初期化してない変数は0や空文字だとしたい

そういうのは許さないのがpythonの思想なんだろうけど、
クラスライブラリとか、「よく判らんけどいい感じにやってくれる」に満ち溢れてると思うんだよな
2021/12/01(水) 09:49:40.77ID:kOoI/dimd
さすがに初期化してないのに0で返ってきたら違和感ありすぎる
その0どこのやつやねん
2021/12/01(水) 09:53:13.32ID:jmLWjGmX0
listを継承したsafelistでも作ってsafelist.get()すればいい
2021/12/01(水) 10:43:06.24ID:cGPzHP040
numpy.zeros(m, n) じゃダメなのか
sparsityによるけど
2021/12/01(水) 10:53:16.07ID:kOoI/dimd
なんていうか、出来るからといって
何でもやっていいわけではないよな…?

型宣言して型無視したり、変数名と全然違う振る舞いのコードもかけるけど
やっていいかどうかを現場で議論してるんだよな?
2021/12/01(水) 11:08:20.51ID:+DQyoA+ZD
>>248
「半分の人間は平均値以下」
この命題は偽だぞ
90,80,85,30
この4つの数値の平均は71.25
平均値以下は1つ
2021/12/01(水) 11:13:00.90ID:+DQyoA+ZD
中央値に意味が無いと言えるのは中央値と平均値の乖離が小さい場合くらいで、
そんな状況はほぼない
日本全体の平均年収が436万円であるのに対して、日本全体の年収の中央値は370万円
これの意味分かるか?
269デフォルトの名無しさん (ブーイモ MMcf-39v0)
垢版 |
2021/12/01(水) 11:49:03.99ID:kM+Jjoc8M
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^

あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!

クソチョンw
クソチョンはウンコを食べる糞食人種w
朝鮮人はゲリ便をじゅるじゅると
うまそうに食うw
2021/12/01(水) 12:03:11.43ID:Qw3lWQwKr
>>259
Ruby氏は政治も語るのか
自分でRailsサーバー建ててそこでやってくれ

ここの本来の住人がやると、Djangoで作る
2021/12/01(水) 12:29:23.91ID:Jc7L6V7f0
統計は正しく使わないと意味のある結果を導き出せない
知らないで使えば無知だが
知ってて使わないのは詐欺だ
2021/12/01(水) 13:20:47.75ID:kQMiQMSXa
お前らほんとフワフワした話しかしねーのな
2021/12/01(水) 13:51:51.48ID:UViZzx3L0
バシッとお願いしやす
2021/12/01(水) 14:00:04.80ID:kOoI/dimd
Noneをゼロでキャッチするガイジは死ね
2021/12/01(水) 17:08:27.52ID:cGPzHP040
「意味がない」「正しい」
会社でこんな曖昧な表現使ってる人見たことないわ
2021/12/01(水) 17:48:31.00ID:CUbfchye0
>>263
DSPとかの飽和モードってそんなんだから
まぁ需要はあるんじゃね?

アセンブラ以外で実装した言語を見た事が無いから実装はされないと思うけど
2021/12/01(水) 18:05:55.99ID:AaatEAJta
配列はみ出してるのにそのまま処理続行されるとか悪夢でしか無い
2021/12/01(水) 20:10:29.91ID:lzZen0h80
世の中には3種類の人間がいる
数を数えられる人間と、数を数えられない人間だ
2021/12/01(水) 20:15:58.72ID:pw8MGucb0
モンティ・パイソンのスペイン宗教裁判
NOBODY expects the Spanish Inquisition!
Our chief weapon is surprise...surprise and fear.

単数で始めたのにandで繋げてしまって文法が破綻する、という部分が面白いのに、なかなか伝わらない

Our two weapons are fear and surprise...and ruthless efficiency.
言い直して複数形にしたけど、わざわざtwoを付けて3つ言うという部分はもはや惰性
2021/12/01(水) 20:22:16.08ID:vhG+/afG0
まったくわからない
2021/12/01(水) 22:31:02.94ID:toM1ybPg0
>>252
標準偏差→正規分布、の間違い?
結構統計や確率分布も勉強すると面白いよ。
積率母関数はラプラス変換で、特性関数はフーリエ変換とかね。
2021/12/02(木) 02:22:32.97ID:hQPCDoBz0
>>263
バカは書き込まないで
2021/12/02(木) 10:12:40.87ID:ItDkB8ePd
どうせJavaScriptでへんな自信付けてココに迷いこんだ口なだろうけどな
2021/12/02(木) 16:31:50.86ID:MTUgHWqu0
Pythonプログラマは年収が高いから魅力的なのかもな
285デフォルトの名無しさん (ワッチョイ 9f55-6Gdn)
垢版 |
2021/12/02(木) 17:15:47.74ID:OJ+Rt/5p0
Pythonを使った機械学習の本を読んでいます。

仮想環境を使うことを強く推奨すると書いてあります。

いままで、AnacondaのPythonを使ってきましたが、仮想環境を一切使ってきませんでした。

今から、仮想環境を作ってそれを使っても何も問題はないですか?
2021/12/02(木) 17:23:53.03ID:Z+Ui9JYG0
ライブラリのバージョンやらで混乱するくらいなら、最初から専用環境作れということでしょ
そっちのがめんどくさいと思うけど、仕事なら仕方ない
2021/12/02(木) 17:29:59.68ID:OJ+Rt/5p0
>>286
ありがとうございます。
趣味でやっているだけなので、必要性が実感できません。
仮想環境を作るとしても結局、最新のライブラリを使っていくだけになるのは目に見えています。
2021/12/02(木) 18:42:51.17ID:wokKeEK2a
趣味なら自分で必要になってから考えたらいいんじゃね
2021/12/02(木) 18:48:50.53ID:OJ+Rt/5p0
>>288
そうすることにします。ありがとうございました。
2021/12/02(木) 19:45:26.75ID:KxC58LYE0
>>284
因果関係がおかしいんだけどな。
プログラミングスキル以外が高い人(たとえは科学技術スキルやデータサイエンススキル)が、参入障壁が低いpythonに群がってるだけであって、pythonだけできたって仕方ない。
OpenCV,TensorFlow,Pytorch,jax,scipy,sclkit-learn,numpy,pandasあたりが使える人が年収高いというだけで、
それはPythonだけできても使える話ではない。
RDBや数学、統計の知識が必要なのだから。
2021/12/02(木) 19:52:09.42ID:Z+Ui9JYG0
稼いでる人はGoを使ってる
2021/12/03(金) 07:16:52.31ID:9BdS8doY0
マルチコアを活かしてくれないツールを高速化する為に、
複数を非同期で同時に走らせたい
ただ、無制限に subprocess.Popen すると負荷が100%に張り付いてやばいので、
同時起動数の上限を設定したい

で、まあpoll()がNoneかどうか見ながらsleepしながらで動くんだけど、
同じことをやりたいケースがちょこちょこあるので、自前ライブラリ化を考える
でも、そんなもんは既に誰か作ってるのでは? という気がするんだけど、どっかにある?
2021/12/03(金) 08:38:51.44ID:mlmp5wts0
オーバーヘッドを気にしないなら
multiprocessing.pool.Poolで任意サイズのプロセスプールを作ってそこからPopenする
threadingにも用意して欲しいんだが, 残念ながら無い

あとFutureでよければThreadPoolExecutorもワーカー数を指定できる
こちらはスレッドベースだ
2021/12/03(金) 09:23:02.26ID:9BdS8doY0
やっぱりそのへんになるよね

たすきに長すぎな感じで、そこまで高度なことをしたい訳でもない
IOがネックになるからそこで詰まらないように並列処理したら効率的になるだろう、という思想だけど、
もっと原始的な、4コアあるのに1コアしか使ってないじゃんというレベルで、ネックの場所が違う
2021/12/03(金) 11:23:24.64ID:7z17o3pC0
GNU Parallelとか
2021/12/03(金) 14:38:02.37ID:gYFV44kc0
ProcessPoolExecutor?
2021/12/03(金) 16:07:39.39ID:9BdS8doY0
100個のファイルに処理1を実行して、次に処理2を実行して、という場合、
並列でやるとしても処理1が全て完了してから処理2に取り掛かった方が安全で、
それは割と簡単にできる

処理順の依存関係まで指定してえいやっと全部一気に渡すと、済んだ人はどんどん先に進める方式だと、
効率最大でやってる内容は魔法みたいになる

キューに入れてもいいタイミングはユーザが判断してね方式だと、そんな怖いことはやりたくない
このへんの技術はとっくに枯れてる訳でもなくて、pythonのバージョンが上がるにつれて
よりシンプルに書けるようになってるっぽいので、いちばんいけてる奴だけ使いたい
2021/12/03(金) 16:50:15.61ID:MOk0xQBVd
>>297
よくわからんけど機械学習系のタスク管理ライブラリを当たってみるのがいいのでは
2021/12/03(金) 16:52:43.40ID:oOU/CY6L0
>>297
>並列でやるとしても処理1が全て完了してから処理2に取り掛かった方が安全で、

なんで安全なの?
ファイル間に依存性があるのかな?
2021/12/03(金) 19:20:43.02ID:TcDlgZdP0
使いこなせないから知らないけど
非同期処理ときたらasyncioじゃないの?
2021/12/03(金) 20:06:27.61ID:ilrP3hOYa
管理面倒だからそいうのはcelery使ってるわ
2021/12/03(金) 20:13:17.59ID:d1yD6wdJM
キューが空いたら依存関係見て依存してる処理が全部終わってる処理を検索してキューに入れるだけだろ
枯れてないとか意味わからん
2021/12/03(金) 21:05:26.85ID:9BdS8doY0
依存関係はケースバイケースすぎて処理1と処理2が終わってないと処理3ができない、
みたいなのは
p3(p1(), p2())
みたいに引数の関係で書いて、それがうまい具合に遅延して評価されればいい
その時点で結構凄いことだけど、処理10まであって、
p10(p9(p8(p7(p6(p5(p4(p3(p2(p1(
って書くのかと思うと、それも嫌

そのへんは既に解決済みでもっとかっこよく書けるらしいけど、理解できてない
2021/12/03(金) 21:31:34.82ID:nYt0d+Tj0
記述は依存している隣同士の関係だけでいいやん
それを動的に解釈していくか全展開するかはプログラムの中の話
2021/12/04(土) 13:56:24.80ID:OXNHy6KQ0
デフォルトは自動で0になってて欲しい系の代表は defaultdict だな
pythonをperl化してしまう悪魔のモジュール
いわゆるautovivification
声に出して読みたいプログラミング用語
2021/12/04(土) 14:43:09.92ID:clmSwDt/0
defaultdict()
引数なしで0はドキュメンテーション上ひどいけど
defaultdict(0)
callableじゃない引数ならcopy()する動作でもとは思う
307デフォルトの名無しさん (ワッチョイ 4601-cP/Y)
垢版 |
2021/12/05(日) 22:33:04.61ID:69iYFx7F0
東熱でデビューまだ?
2021/12/05(日) 22:50:01.39ID:gzedxBTO0
tipsとか説明してる動画がいろいろあるけど、
どう考えても動画で見るよりも文字のサイトで見た方が効率いいな
アニメーションで説明するならまだしも、コード映して音声で説明するだけだし
2021/12/06(月) 09:58:30.45ID:bmhBnFtY0
その通り
でも見るより聞くほうが頭に入るっていう人はいる
そして動画なら普通は飛ばされるちょっとしたエラーへの対応なんかも映されてたりしていい
そういう意味じゃまぁまぁ分かってるぐらいのやつが試行錯誤しながらやってる動画が一番いいかもしれない動画なら
それと小技100選みたいなのは動画のほうがサクサク見れていいなって思った
2021/12/06(月) 10:16:07.53ID:K9NwbhKq0
動画はチュートリアル向きだね
2021/12/06(月) 10:24:06.22ID:r+k7u56QM
仮に多少わかりやすかったとしても時間効率が悪すぎる
2021/12/06(月) 10:25:23.41ID:KAUrNTmh0
ん、今のとこ理解が追いついてない
と一時停止するのはまだいいとしても、
そこはもう判ったからくどく言わなくていい、
という部分だけ早送りするのは困難
2021/12/06(月) 13:10:34.16ID:Fv6sj5de0
いわゆる
教育サイトのヤツって制限つよいから使えんな
YouTubeのが倍速できていい
2021/12/06(月) 13:35:16.73ID:bFLz1Hfed
Udemyは倍速できた
開講者によって違うのかもしれんけど
2021/12/06(月) 15:04:28.27ID:V3VnXKsr0
python始めたての頃、日本語でpythonを解説してる動画があったんで見てみたけど、
内容の良し悪し以前にタイプ音が耳障りすぎて見てられなかったな
カチャカチャ…ッターン!!ってまんま昔のミサワの画像みたいな
2021/12/06(月) 17:57:42.22ID:fIaDMlsG0
こういうプログラム組みたい、みたいなのはここでもいいのですか?
2021/12/06(月) 18:55:42.20ID:K9NwbhKq0
Pythonが主題ならいいよ
2021/12/06(月) 19:03:22.19ID:fIaDMlsG0
python **.sy ディレクトリ1 ディレクトリ2

としてコマンドライン引数2個を使い
ディレクトリ1から特定条件のファイル・ファイルサイズを抽出し
外部プログラムを利用して処理しディレクトリ2の場所にファイル名でフォルダを新規作成しそこにアウトプットしたいのですが

これは難しいですか?
半日かけて色々こねくり回してもファイルを抽出するところまでしかできませんでした
2021/12/06(月) 19:11:53.57ID:4dOWqmq10
いいよ
2021/12/06(月) 19:14:31.95ID:KAUrNTmh0
どうせなら入力用と出力用は順不同でいけるように、-i -o オプションとか付けよう
2021/12/06(月) 19:16:54.93ID:YFGCwo230
Pythonを先週から使っててORMのdatasetを試してみてるんですけど、
find()に WHERE `hoge` > 10 相当の条件って指定できるんですか?
2021/12/06(月) 19:40:42.62ID:+xtv5Wsa0
>>321
https://dataset.readthedocs.io/en/latest/queries.html
公式サイトみてる?
非公式のまとめサイトはあくまで公式サイトを補完するもの
2021/12/06(月) 20:13:19.50ID:YFGCwo230
>>322

やさしいのぅ。有難うございます。
2021/12/06(月) 21:04:00.66ID:AXyP6TkQa
シンプルなORMないかなーって色々触ってみるけどあれこれ機能が足りず結局SQLAlchemyになっちゃうよな
2021/12/06(月) 21:10:58.44ID:JyBQF4AA0
>>318
難しくない。shutilかな。
2021/12/06(月) 21:33:56.87ID:fIaDMlsG0
>>325
できればヒントやサンプルをいただけませんか
2021/12/06(月) 21:42:01.16ID:K9NwbhKq0
ヒント : subprocess
328デフォルトの名無しさん (ワッチョイ 0333-Z6Z9)
垢版 |
2021/12/06(月) 22:13:57.72ID:rLSBlzT30
>>326
やろうとしてることを段階的に分けて書いてみて
2021/12/06(月) 22:22:51.24ID:fIaDMlsG0
>>328
1.ファイルの入ったフォルダをコマンドライン引数1に設定する

2.フォルダ内から特定の拡張子かつ一定以上のファイルサイズのものを抽出する

3.抽出したファイルを外部ツールにかける

4.外部ツールにかけた結果をコマンドライン2引数のディレクトリ内に展開する

5.フォルダは4の指定ディレクトリ内にファイル名で新規作成する

こんな感じです
for + os.walkとendswithでファイル一覧を抽出できてもその抽出したファイルをその先に持って行ったり
外部ツール利用の方法が全くわかりません
2021/12/06(月) 23:02:13.62ID:KAUrNTmh0
streamlinkはpythonで書かれてるのに、
pythonからの使い方が判らないので、subprocessでpython呼び出してる
2021/12/06(月) 23:06:57.52ID:+xtv5Wsa0
Pythonでやるからややこしい
1,2はfind
3,4,5はxargs + sh(cd, mkdir)
でできる内容

Pythonでやるのがお題ならごめん
2021/12/06(月) 23:16:45.17ID:fIaDMlsG0
>>331
バッチでってことですか?
FFMPEGがワイルドカード対応してなくて無理でした
333デフォルトの名無しさん (ワッチョイ f2da-m+op)
垢版 |
2021/12/06(月) 23:24:01.09ID:uKiaXwwm0
シェルの方が早そうだね
334デフォルトの名無しさん (ワッチョイ 0333-Z6Z9)
垢版 |
2021/12/06(月) 23:29:51.84ID:rLSBlzT30
>>329
>1.ファイルの入ったフォルダをコマンドライン引数1に設定する
>2.フォルダ内から特定の拡張子かつ一定以上のファイルサイズのものを抽出する
>5.フォルダは4の指定ディレクトリ内にファイル名で新規作成する
2と5の間はとりあえずスキップして、ここだけの実装は可能?
2021/12/06(月) 23:31:26.15ID:fIaDMlsG0
>>334
2の途中で詰まりました
抽出したファイルの扱い方がわからなく・・・
2021/12/06(月) 23:49:14.76ID:R0qeSVmL0
配列に入れればいいだけじゃね
2021/12/07(火) 00:14:41.57ID:ebSZa7bB0
>>332
バッチてことはWin環境なんかな
Pythonで解決した後でもいいからPowerShellもしらべてみて
習得にあるていど時間かかるけどやれることが広がるよ
あとワイルドカード展開するのはコマンドじゃなくて通常はシェルの仕事
2021/12/07(火) 00:34:04.97ID:P3Md4odo0
すみませんバッチファイルの本を買って勉強します
ありがとうございました
2021/12/07(火) 00:59:42.03ID:O2KWEQqW0
実際問題として、PS使うならPythonで書こうとするかなぁ
他のOSでも使うことができるし

とりあえずバッチとwshは使いたくない
2021/12/07(火) 01:31:43.51ID:q8J3SSC40
find -execかfind xargsが鉄板だと思うけど
外部コマンドのstdout/stderr出力をPython側でキャプチャする必要なければそんなにややこしくもない

for path in Path(search_dir).glob(pattern):
__if path.stat().st_size > 1000:
____dir_path = Path(output_dir).joinpath(path.stem)
____dir_path.mkdir()
____new_path = dir_path.joinpath(path.name)
____os.system(f'echo "{path}, {dir_path}" > "{new_path}"')

(同じファイル名があった場合の対処はしてない)
2021/12/07(火) 01:36:39.28ID:MjkMHobt0
winでもwsl2で >331が書いてる手順でヤレる
powershellも覚えれば便利なんだろうけど…
2021/12/07(火) 06:51:56.92ID:BLeYwod+0
>>329
2.は os.listdirすればリストで返してくれる
この辺見てみた?
https://note.nkmk.me/python-os-path-getsize/
2021/12/07(火) 07:18:25.74ID:Jl0mhXXA0
使うのがffmpegの場合、他にも考えるべきことが大量にあるので、
一括ではうまく行かないんだよな

何が来ても自分好みのファイルに変換する万能スクリプトを一つ書いて、
それに処理するファイル一覧を食わせる方式に落ち着いた
2021/12/07(火) 08:57:52.26ID:BFhf39Z30
awk,sedが必要になったらシェルスクリプトを諦めて全部Pythonで書くかな。
あれらを今から学習する気力が湧かない。
2021/12/07(火) 09:05:21.33ID:Jl0mhXXA0
PSはPSでしかできないパワフルなことがあるので、
その部分だけPSでやるのがいい
windowsの底の部分を簡単にいじれるのはPSだけ
2021/12/07(火) 10:45:42.99ID:F2U4yKHS0
質問するならコード貼ってほしいな
このスレのテンプレにpaste用サイトが書いてある
2021/12/07(火) 11:08:12.05ID:A/pvwvVNr
PSはlinuxでもosxでも動くし、あれだけで出来ること結構あるから知ってると便利だよな
2021/12/07(火) 11:49:17.79ID:G7aiaFNj0
ガチでヌーブなんですけどrequestsとbeautifulsoupでスクレイピングやってます
waitかけないとバンされるよと言われましたがどうすればいいですか?
requests.get()でtimeoutは今書きましたがforで同じサイトの似たようなページに何度もアクセスするのでサーバーへの負荷はすごいと思います
これに対してどうすればいいですか?
2021/12/07(火) 12:01:37.39ID:Jl0mhXXA0
適度にsleepする
2021/12/07(火) 12:17:07.83ID:yRaAbrIt0
手動でブラウザ操作したときまんまsleepしたらいいだけ
サーバ構築する側はボットなんか勘定にいれてコスト設計してないんだから
2021/12/07(火) 12:22:57.09ID:P3Md4odo0
>>342
for curDir, dirs, files in os.walk(sys.argv[1]):
for file in files:
if file.endswith("〇〇"):
os.path.getsize(ts)
print(os.path.join(file))

これでファイルは取得できるのですがそのファイルを参照する方法がわからず・・・
2021/12/07(火) 12:24:12.30ID:P3Md4odo0
こうでした

for curDir, dirs, files in os.walk(sys.argv[1]):
for file in files:
if file.endswith(".〇〇"):
print(os.path.join(file))
2021/12/07(火) 13:08:03.12ID:F2U4yKHS0
並列数1なら大したことないけどね
応答時間200ミリ秒なら、毎秒最大5リクエストだし
354デフォルトの名無しさん (オッペケ Sr5f-zXcE)
垢版 |
2021/12/07(火) 13:09:23.97ID:A/pvwvVNr
参照って何をしたいのか知らないけど、ファイル名取得出来てるんだからオープンするのも他のコマンドの引数に与えるのも可能では
2021/12/07(火) 13:32:14.96ID:lMfMxSoR0
>>352
Ruby では、glob に拡張子も指定できる

# 絶対パスのディレクトリ名の後ろに、*.txt を付ける。
# . で始まる、隠し directory, file を除く
glob_pattern = "C:/Users/Owner/Documents/**/*.txt"

separator = "-" * 30 + "\n"

Dir.glob( glob_pattern )
.select { |full_path| File.file?( full_path ) } # ファイルのみ
.each do |full_path|
puts "#{ separator }#{ full_path }\n#{ separator }" + File.read( full_path )
end
2021/12/07(火) 14:32:51.33ID:Jl0mhXXA0
できないglobなんか無いだろ

from pathlib import Path
p = Path("c:/path")
for filename in p.glob("*.mp4"):
print(filename)
2021/12/07(火) 15:09:33.84ID:NCVMykAH0
つかglobを何だと思ってんだガイジは
2021/12/07(火) 15:23:50.74ID:F2U4yKHS0
スレタイ読めない人がいるな
2021/12/07(火) 21:21:55.14ID:3sCD52Waa
オワコンのruby薦められても困る
2021/12/07(火) 21:40:58.38ID:Jl0mhXXA0
rubyとperlとVBとobjective-Cの人は、脱出するのが早いほど幸せになれる
2021/12/07(火) 21:43:22.87ID:P3Md4odo0
すんげえ苦労したけどなんとか形になりました
バッチなのですれ違いすみません
もっと勉強して最適化していきます
わかってしまえばすごくシンプル

set Tool="Tool"
set template="template"

for %%f in (%1\*.〇〇) do (
mkdir "%2\%%~nf"
%Tool% -i %%f -o "%2\%%~nf\%%~nf.dgi" -a -e
del "%2\%%~nf\%%~nf.log
)
2021/12/07(火) 22:06:22.51ID:zHaA7V/Y0
ワロタw
363デフォルトの名無しさん (ワッチョイ 0333-Z6Z9)
垢版 |
2021/12/07(火) 22:58:20.49ID:I8679kEJ0
嘘だろ
364デフォルトの名無しさん (ワッチョイ 6eda-9WRP)
垢版 |
2021/12/07(火) 23:00:21.81ID:oV2OkogX0
クソワロタ
2021/12/07(火) 23:12:35.70ID:7GhYBix30
templateって何?
2021/12/07(火) 23:44:21.65ID:F2U4yKHS0
ポテンシャルを感じる
2021/12/08(水) 01:37:02.26
from datetime import datetime, timedelta
import pytz
dt=datetime.now(pytz.timezone("Asia/Tokyo"))
print(dt)
print(dt.today())# timezone変更 不適用
print(dt.time())# timezone変更 適用
dt_utc=dt.astimezone(pytz.timezone("UTC"))
print(dt_utc)
print(dt_utc.today())#
print(dt_utc.time())#

#2021-12-08 01:34:40.591170+09:00
#2021-12-07 16:34:40.592894
#01:34:40.591170

#2021-12-07 16:34:40.591170+00:00
#2021-12-07 16:34:40.598068
#16:34:40.591170


.today()てtimezone変更引き継いで?くれないんですね・・
2021/12/08(水) 02:08:39.64ID:uCheTDCk0
Pythonで組みなおしています
デフォルト関数も多そうだし条件分岐とかが簡単そうですが
外部ツール起動に対するオプション調査中です
ファイル名を取得してその名前でディレクトリを作成するところまではできました

import sys
import os
import subprocess

for i in os.listdir(sys.argv[1]):
file, ext = os.path.splitext(i)
os.mkdir(sys.argv[2]+file)
2021/12/08(水) 07:20:30.37ID:OmzTkGs60
>>367
参考になるかも
https://qiita.com/shota243/items/91660ece72b5e84c3adb
2021/12/08(水) 13:19:52.67ID:uCheTDCk0
外部ツールに抽出ファイルをかけるのが難しいですね

%Tool% -i %%f -o "%2\%%~nf\%%~nf.〇〇〇" -a -e
この処理をPythonでどうやるのか?
subprocess.runあたりを使うっぽいのですがその後の書き方や処理方法が不透明
ターミナルにパイプして処理する?とかになるなら結局バッチかパワーシェルで
統一した方が早いのでしょうか
2021/12/08(水) 13:33:21.38ID:5HATgl/c0
標準出力を取得して、とかやるとそれ用のことを書かないといけないけど、
実行させるだけなら超シンプル

subprocessから取得したデータをパイプでffmpegに渡して、
とかやらせてちゃんと動くとちょっと嬉しい
2021/12/08(水) 13:43:19.97ID:lsXABI8+d
ニコ生のえっちなやつ録画したいニキおつ
2021/12/08(水) 15:21:18.60ID:M4uEosNe0
>>370
バッチで用が済むなら終わりでいいのでは
汚いスクリプトなんてプログラミングの勉強にならないし
2021/12/08(水) 16:12:58.05ID:5HATgl/c0
m = re.search('pattern', str)
if m:
  item = m.group(1)

みたいには書けるけど、ifの中にmの取得を一緒に書けない?
そうでないと、if elif elseで書けない
2021/12/08(水) 16:16:26.00ID:Z7ccVyDn0
昔のpythonでは書けなかったんですが
python3.8からassignment expression := ができるようになりました
2021/12/08(水) 16:22:47.75ID:5HATgl/c0
おおー、できるのか
でもうちのは3.7だからできないわ
会社のは3.6だからもっとできない

変な互換性のなさを作り込むよりは、3.6でもやれる方法を考えよう
2021/12/08(水) 16:31:06.57ID:cmZgcxZR0
>>370
各変数を別途取得して、subprocess.runで起動するアプリの引数として与えるだけ
自分で引数をオプションとして与えたいなら、argparseを使う
2021/12/08(水) 16:31:50.71ID:lsXABI8+d
item = data.get(1)
if item:
id(item)

#3.8
if item:= data.get(1):
id(item)
2021/12/08(水) 16:51:20.77ID:e5XneN8e0
pythonの野郎宗旨替えしやがったのか
2021/12/08(水) 17:00:08.30ID:cmZgcxZR0
>>374
スコープの話なら、関数こさえてreturnで拾うという手もあるけど、めんどくさいね
2021/12/08(水) 17:02:23.43ID:5HATgl/c0
無駄な処理は増えるけど
m1 = re.〜
m2 = re.〜
としておいてから、
if m1:
elif m2:
なら書ける

代入が評価もできる仕組みは、書き間違えてバグるからというよりは、
単純に読みにくくなる
2021/12/08(水) 17:12:25.01ID:+2BbFlMUa
Pythonのifのスコープは脳に優しくないな
2021/12/08(水) 17:22:50.60ID:aaXV5Kk80
プライベートだと思っていた彼女のホールがグローバルだった
2021/12/08(水) 19:30:48.14ID:5HATgl/c0
入力行をsplitして取り込む
arg1, arg2, arg3 = line.split('\t')
みたいな感じ

でも、入力がちゃんとしてなくて数が多くても少なくてもエラーになる
そこはよしなにやって欲しい
足りない部分はNoneで埋めて、余った分は捨てていい

というええかげんなことをしようと思ったら、ええかげん関数を作るしかないのかな
2021/12/08(水) 19:35:03.01ID:lsXABI8+d
hash = {'ぐれ':1, 'ぷ':2}

matched = m.group(1)

if not hash.get(matched):
print('i want to write else case')
elif hash[matched]== 1:
print('do 1 case')


???
2021/12/08(水) 21:14:52.99ID:/jR8/f4s0
>>384
arg1, arg2, arg3, *_ = line.split('¥t') + [None, None]
2021/12/08(水) 23:31:45.91ID:5HATgl/c0
+ でいいんだな
388デフォルトの名無しさん (ワッチョイ a601-CYhY)
垢版 |
2021/12/09(木) 02:15:13.68ID:WjLFVkiy0
すみません、質問なのですが、
newline= ってpython3じゃないと使えないのですか?
2021/12/09(木) 02:26:38.04ID:y+vTbIG00
調べてから質問してる?
390デフォルトの名無しさん (ワッチョイ a601-CYhY)
垢版 |
2021/12/09(木) 02:29:06.32ID:WjLFVkiy0
してる
2021/12/09(木) 05:36:26.42
"newline= を使う"ってなに?
文字列の中に改行コードは使えるか
って意味じゃないよね
それだとそっこーぐぐったら出てくるし。
なんかのライブラリやらフレームワーク的な話なのだろうか
2021/12/09(木) 05:39:43.24
あるいはクロスプラットフォームでのCRLFかLFかみたいな話かな
2021/12/09(木) 06:51:10.51ID:7v43kIFS0
openのオプションでしょ
2021/12/09(木) 08:02:22.78ID:I94H5Ioy
>>388
python3.8.1
https://techiedelight.com/compiler/?MQK2

python2.7.17
https://techiedelight.com/compiler/?lKam
2021/12/09(木) 08:48:12.08ID:zIpIn5ri0
beautifulsoupでattributeerror: nonetype nas no attribute stringが発生するんだけどnoneになることが想定される場合は一々いっこっこifでかこってやらないとだめなの?
2021/12/09(木) 08:56:56.15ID:zIpIn5ri0
ifっていうかtryか
2021/12/09(木) 08:59:10.31ID:7v43kIFS0
最大限何でも見つかるようにしとくから、緩めるのはユーザ側でやってね
という姿勢は間違ってないんだけどな
元から緩かったら厳しくしようがない
2021/12/09(木) 09:52:10.18ID:q+Lg0FmZ0
自分の管理できないデータを拾おうとする場合は
例外処理は必須だと思う
399デフォルトの名無しさん (ワッチョイ a601-CYhY)
垢版 |
2021/12/09(木) 10:42:48.76ID:WjLFVkiy0
>>394
ありがとうございます!!!
2021/12/09(木) 11:32:41.22ID:LJEXrIakM
>>395
ifかor

Pythonにはsafe navigation operatorがないからスクレイピングコードは煩雑になりがち
https://en.wikipedia.org/wiki/Safe_navigation_operator

要素がなければ空文字のようなデフォルト値を返す汎用的関数を自分で用意すると少し読みやすくなる
2021/12/09(木) 11:51:24.51ID:q+Lg0FmZ0
JSONなんかだと、get()で拾えばまぁ困らんな
2021/12/09(木) 11:58:39.98ID:LJEXrIakM
BeautifulSoupじゃなくてScrapyなら少しマシ
公式ドキュメントの質は段違い
2021/12/09(木) 12:37:45.04ID:LJEXrIakM
>>401
指定した要素がない状況を考慮する必要があれば階層ごとに自分でハンドリングが必要だからgetだけじゃダメなんだよね

safe navigation operatorがあればlodashのgetやrubyのdigのようなのが簡単に作れる

近いところでglomがあるけど処理を分割したり、つなげたりできないから使い勝手が悪い
2021/12/09(木) 14:43:48.67ID:kmW2UpC80
bsのドキュメントってなんであんな書き方なんかな
2021/12/09(木) 17:31:55.59ID:7v43kIFS0
クラスAを入力にしてクラスBに出力する時
a.process(b)
よりも
b.process(a)
の方が直感的だろうか
2021/12/09(木) 17:33:06.64ID:hfvG1WdLd
インスタンス作り直す
2021/12/09(木) 17:43:20.61ID:eEWQKJ8w0
>>405
processというメソッド名で二択ならまだ後者だけど直感的でない
どっちを主体にしたいかを決めてそれにあったメソッド名をつけるのが正解
2021/12/09(木) 17:47:49.86ID:y+vTbIG00
bの状態を変化させるなら後者かな
2021/12/09(木) 17:49:17.07ID:7v43kIFS0
名前をちゃんと付けると、データの抽出と設定を同時にやる訳だから
b.extract_data_and_write(a)
と書いたとしても、
from b to a なのか from a to bなのかは判らない
2021/12/09(木) 18:19:58.56ID:hfvG1WdLd
責任の所在はAにあるから
aの所有するメソッドがbを操作する、という書き方がいい
つまり前者
2021/12/09(木) 19:29:46.08ID:y36UsJ/D0
pythonって直感的ってより
少ない記述で書ける小型プログラムってイメージ
2021/12/09(木) 19:32:50.08ID:vdjQHUNbD
pythonって直感的ってより
コーディング規約みたいなのをなるべく減らすよう設計されてるイメージ
2021/12/09(木) 19:34:27.22ID:kmW2UpC80
イメージで語るな
2021/12/09(木) 20:11:20.59ID:lReNouCA0
すいませーん、入門したばかりなので低次元な質問ですけど教えてください。
DataFrameで行番号100以上のdf["hoge"]の値を全てNoneに置き換え、
って、どうやるんでしょう?
whereを使って列の値をキーにして置き換えみたいな記事はあちこちにあるんですけど、
うまく見つけられなくて…。
2021/12/09(木) 20:20:57.64ID:lReNouCA0
一応、出来たみたいです…。

df_subset = df2.query("index > 100")
df2.loc[df_subset.index, "hoge"] = None

2ステップになっちゃいました…。
もっと楽なやり方ってあるんでしょうかね?
416デフォルトの名無しさん (ワッチョイ 0a10-QDcv)
垢版 |
2021/12/09(木) 21:01:27.61ID:/XpwR6ak0
df.iloc[df.index>100,”hoge”]=None
417デフォルトの名無しさん (ワッチョイ 0a10-QDcv)
垢版 |
2021/12/09(木) 21:01:57.63ID:/XpwR6ak0
間違えた
df.loc[df.index>100,”hoge”]=None
2021/12/09(木) 21:09:37.78ID:7v43kIFS0
プロパティなんだよな
適当にネットのコードをコピーして改造して動いて、
後からよく見てなんだこれてなる
419デフォルトの名無しさん (ブーイモ MMcf-+02Y)
垢版 |
2021/12/10(金) 01:50:16.79ID:1XQlciewM
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^

あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!

クソチョンw
クソチョンはウンコを食べる糞食人種w
朝鮮人はゲリ便をじゅるじゅると
うまそうに食うw
2021/12/10(金) 08:35:11.18ID:DV16xl6X0
>>416-417

有難うございます、いけました。

DataFrame操作、便利なのはわかってるんですが、記述方法がこれまでやってきた他の言語にはなかった感じでちょと戸惑ってます。
2021/12/10(金) 08:58:00.11ID:5w3ky6J90
インデックス操作はスライス使う方がオレは好きだな
df.loc[100:,”hoge”]=None
2021/12/10(金) 09:27:24.28ID:LdVcQX3X0
上の方に要らない行があるからそれを削る、みたいな時には使うけど、
インデックスを数字で指定することがそもそもレア
2021/12/10(金) 12:18:46.95ID:DV16xl6X0
>>421

それでも行けるんですね。
424デフォルトの名無しさん (ブーイモ MMcf-+02Y)
垢版 |
2021/12/10(金) 14:44:01.80ID:dPm+RZp8M
クソチョンw
2021/12/10(金) 19:48:42.58ID:LdVcQX3X0
try - finally
はwithで置き換える
自作withはcontextlibで作る
2021/12/10(金) 21:51:15.63ID:jufFO9Qq0
javaでもない言語でtry自体を使いたくない
2021/12/10(金) 22:21:38.64ID:LdVcQX3X0
exceptが素早くタイプできない
2021/12/10(金) 22:33:35.69ID:CbPmL2LvM
javaって言えば今日は大騒ぎだったなw
影響範囲で言えば2年前のstruts2 RCE祭りより酷い

pythonのloggerは大した機能なくてハァ〜〜ってため息が出ることが何度かあったけど
今日だけはチープな実装でホントよかったと思ったわ
429デフォルトの名無しさん (ワッチョイ bfda-ULLt)
垢版 |
2021/12/11(土) 01:52:28.49ID:ZK42YBmJ0
>>428
穴ってレベルじゃねえよな
2021/12/11(土) 06:02:34.65ID:2pyL4JiA0
でも今までなんも起こってないからそのままだったんよね?
2021/12/11(土) 07:12:39.38ID:T68Lqt3h0
だからjavaなんてやめとけって何度言ったか
2021/12/11(土) 07:13:22.50ID:V5XtH56o0
loggerがどれだけ高機能でも、記録するだけなら何も起きない
なんで実行するかな
433デフォルトの名無しさん (テテンテンテン MM8f-XjgK)
垢版 |
2021/12/11(土) 07:47:37.23ID:w4ZoaW0AM
すいません。Pythonプログラムでpyxelを使ったゲームを作ったんですが、それを友達に共有したいのですが、どうすればいいですか?
zipとかファイルで送りましたが起動できないと言っていました。
2021/12/11(土) 07:51:50.61ID:V5XtH56o0
仮想環境を作らせて同じ環境にする
exeにする
435デフォルトの名無しさん (テテンテンテン MM8f-XjgK)
垢版 |
2021/12/11(土) 07:53:43.18ID:w4ZoaW0AM
exeにしたんですが、クリックして開いたと思ったらすぐ消えてしまいました。
また、環境はpyxelをインストールするだけでいいのですか?
2021/12/11(土) 08:03:49.93ID:V5XtH56o0
不明ならば、pip freeze全部
2021/12/11(土) 13:56:36.55ID:y0niRYqP0
先日入門した他言語者ですけど、閉じ括弧書かなくていいの、地味に楽ですね。
Yamlと同じ楽さです。
2021/12/11(土) 14:40:50.75ID:2wBn3+dOM
手動でdedentが必要なのでむしろ地味に苦痛
2021/12/11(土) 14:58:15.21ID:V5XtH56o0
秀丸でインデント戻す正解がまだ見つからない
2021/12/11(土) 15:50:15.48ID:T68Lqt3h0
vscodeで選択した行まとめてスペースするには?
2021/12/11(土) 15:51:33.44ID:y0niRYqP0
>>438

{}でブロック定義する言語の場合、
今どきの初学者キッズ達の書くコード、まじでインデント滅茶苦茶ですからね。
『しつけ』という観点においてはPythonのインデント強制が矯正になっていいんじゃないかと思います。
2021/12/11(土) 15:54:49.98ID:V5XtH56o0
対応する括弧へのジャンプ機能でブロックの先頭に飛べて便利なのに

上に探して行って、今のインデントレベルに最初に何か書いてあるところまでジャンプ
みたいなマクロが要る
2021/12/11(土) 16:19:42.62ID:E/VsNyVn0
>>441
そういう根性論じゃなくてフォーマッタとか仕事を効率化する方法を教えてやるべきだと思うぞ
2021/12/11(土) 16:32:46.63ID:PhRtUMglM
>>441
一発でオートフォーマットできるからインデントがめちゃくちゃなコードでも何の問題もない
python以外ではね
2021/12/11(土) 16:33:59.54ID:SDIYylIRD
>>443
何のために を教えてやるのが先でしょ
446デフォルトの名無しさん (ワッチョイ 4733-8/hI)
垢版 |
2021/12/11(土) 16:34:44.72ID:lBTOlMPp0
>>443
インデントするかしないかなんて癖とか慣れみたいなもんだし、根性論がどうとかじゃないだろ
それこそ、インデントに限らず変数名のつけ方とかコメントの書き方とかも同じだよ
実際に書きながらじゃないと身につかん
2021/12/11(土) 17:21:54.24ID:E/VsNyVn0
>それこそ、インデントに限らず変数名のつけ方とかコメントの書き方とかも同じだよ
>実際に書きながらじゃないと身につかん

それが根性論。
わかりやすい変数名は自動じゃ付けられないがインデントは自動でできる。
限りある時間と頭は前者に注力するのが合理的ってもんだろう。
2021/12/11(土) 17:30:00.42ID:OP1TuqIU0
インデントずれてる奴は雑なんだろうな
安心して仕事任せられないわ
2021/12/11(土) 17:41:42.05ID:yK8FRSrA
根性が嫌ならもうコーディングは他人にすべてを任せて貴重な時間を経営やコミュニケーションスキル学習へ回した方が合理的
450デフォルトの名無しさん (ワッチョイ 4733-8/hI)
垢版 |
2021/12/11(土) 17:43:26.35ID:lBTOlMPp0
>>447
わざわざフォーマッタとか使わせるなら最初からまともな開発環境なりエディタなり使わせるわ
2021/12/11(土) 17:52:32.22ID:VpQySh8l0
今日の不毛な議論のテーマ「インデント」です。
結論が必要ない人だけ参加してください。
2021/12/11(土) 17:52:48.44ID:E/VsNyVn0
わざわざ手でインデントすることを強制するよりまともな開発環境使わせろと言ってたのはこっちなんだが
2021/12/11(土) 18:12:04.65ID:ujbkP3uUM
書くのは多少ぐちゃぐちゃでもいいけどレビューの時にはちゃんと整形しとけ
2021/12/11(土) 18:13:25.17ID:4ZOnX4zTa
すげーどうでもいい
2021/12/11(土) 18:27:24.02ID:OP1TuqIU0
ちゃんと整形できない人
ご飯クチャクチャ食べてそう
2021/12/11(土) 18:40:51.75ID:w5YNy+Wd0
プログラムなんて正しく動けばそれで良いのさ
2021/12/11(土) 18:51:29.07ID:FrF9wjhg0
止め跳ね払いさえしっかり書けてればいい
2021/12/11(土) 18:53:13.77ID:V5XtH56o0
つかblackかけるよね
2021/12/11(土) 18:57:33.01ID:w5YNy+Wd0
文豪と呼ばれる人たちの字は汚くて読みづらい
2021/12/11(土) 19:14:05.90ID:4ZOnX4zTa
インデントなんてリフォーマットで一発だし
変数名なんて設計の問題
2021/12/11(土) 19:18:13.33ID:WRoIyzpK0
blackってあの宗教臭いフォーマッタだっけ
2021/12/11(土) 19:22:22.43ID:WRoIyzpK0
フォーマットがしょっちゅう変わるからblameが使いにくくて
何だこれウンコだなって評価してたけど少しはマシになったのか?
2021/12/11(土) 20:11:30.93ID:7e/RY26Q0
インデントずれてるのにリフォーマットしたらロジック変わるんじゃ…
464デフォルトの名無しさん (ワッチョイ 47da-Z7Vi)
垢版 |
2021/12/11(土) 20:16:46.10ID:LVLvmhJV0
意味のない議論だよ
2021/12/11(土) 20:27:04.83ID:E/VsNyVn0
>>463
さすがにブロックや折り返しを正しく認識できない状態で強行するフォーマッタはないだろうし
正しく認識できている状態でフォーマットするならそれが変わることもないはず。
2021/12/11(土) 21:03:52.73ID:BEyyuamvM
自動フォーマットできる範囲がPythonの場合限定的って話でしょ
インデント間違ってたら動かないケースがほとんどなんだから
467デフォルトの名無しさん (ワッチョイ 7f10-LoL2)
垢版 |
2021/12/11(土) 21:04:38.10ID:hm3+CMnM0
こういう話題は盛り上がるんだなあ
自転車置き場の議論だっけか
2021/12/11(土) 21:19:56.71ID:T68Lqt3h0
仕事で書き始めると内包表記とか全然使わんな
使わんでも書けるし
まぁ慣れなんかね
2021/12/11(土) 22:02:55.46ID:V5XtH56o0
内包表記と言われてもcomprehensionと言われてもピンとこない
もっといい呼び方なかったのか
2021/12/11(土) 22:12:01.24ID:OP1TuqIU0
2重の内包記法が出てくるとウッとなる
1重は問題ないが
2021/12/11(土) 22:19:40.70ID:V5XtH56o0
短く圧縮する為の技じゃないしな
理解を阻害するなら本末転倒
正しく使うと読みやすくなる
2021/12/11(土) 22:57:24.80ID:VpQySh8l0
内包表記 + ランバダ式は 「うー」っとなる
2021/12/11(土) 23:17:58.68ID:xs/Eto350
内包表記 + lambda でせっかく数式ぽく見やすく書けるのに
そこで複雑に書いちゃうのは本末転倒だし盛大にディスってええよ
2021/12/11(土) 23:50:48.35ID:+8dJDZod0
単なる長文折返しのときも4つスペース入れてる?
自分は意識的に2つにしてる(pep8でも許容されてる)
2021/12/12(日) 00:11:10.40ID:4/VBhxqq0
ペップ
2021/12/12(日) 00:37:21.74ID:ybDnKR8a0
内包表記は数学が得意な人向け
集合論ではこう書く
2021/12/12(日) 00:42:39.81ID:QuHtW41S0
数学が得意な人はnumpy使うから…(想像)
2021/12/12(日) 01:04:29.47ID:X/X0JWhG0
>>476
このレスみて気づいたけどまんまSQLなんだよな
2021/12/12(日) 01:06:40.44ID:Qvw+czy00
数学得意でもSQLが得意とは限らないよね
480デフォルトの名無しさん (ワッチョイ ff7d-Z7Vi)
垢版 |
2021/12/12(日) 03:26:26.60ID:/VVPjIN/0
まーた意味不明な議論してる
2021/12/12(日) 16:58:22.09ID:xtbg5MqF0
blackのリファレンス見てたら--safeってオプションがあるんだよね
つけないとフォーマット前後でASTが変化してたか検証しないんだってよ
すごくない?
2021/12/12(日) 17:00:27.87ID:xtbg5MqF0
てか普通はASTに解釈してからコード生成するもんだろ
そうすれば構文が変化する可能性は実装ミス以外で理屈上あり得ない
2021/12/12(日) 17:07:01.91ID:cgjbpF8I0
何かのコンファレンスでいろんな国の人が集まって英語で話している
でもみんな母国語は違う言語

なんかpythonはそんな感じで、他に慣れた言語もあるけどpythonでも書く
だから、いろんな方言が混じる
2021/12/12(日) 17:18:41.81ID:s1cq8TlgM
Pythonって言語というかコード自体に対する関心の乏しい人が多くて、
どっちかというとプログラミングオタクみたいなのより目的志向の人がクールだとされるような空気があるんだよな
だからPythonの流儀とか気にしないで無茶苦茶やる人が多い
最近ではJava専のSIerなんかも参戦し始めてて混迷に拍車がかかっている
2021/12/12(日) 17:23:35.86ID:aUiHIMOoa
そこにペチパーも入ってきたら最悪だな
スコープ区切ることもなくダラダラ長いスクリプト書き散らす文化最悪
2021/12/12(日) 19:30:52.03ID:5aMI8rIwM
実際どうでもいいだろ
好きに書かせればいい
ただ型指定強要とかそういうのはパイソニックじゃないから勘弁してほしい
今ん所必須と思ったことはない
2021/12/12(日) 19:46:42.88ID:H5I9C+V/a
さすがに型情報なしは一人プロジェクトじゃないと無理があるんじゃないかと
2021/12/12(日) 20:57:49.24ID:QuHtW41S0
そもそもPythonは大規模開発向きではない気が
2021/12/12(日) 21:14:27.80ID:HT/W5ldUM
一人趣味用だろ
仕事ならちょっとしたツールとか
2021/12/12(日) 21:15:05.32ID:5aMI8rIwM
>>488
これ
2021/12/12(日) 22:32:39.56ID:X/X0JWhG0
>>487
ようつべくらいのコンパクトなプロダクトじゃないとな
2021/12/12(日) 22:56:04.81ID:+lwr5pOP0
100万行のPythonコードとか頭イカれてるとしか
2021/12/12(日) 23:08:08.25ID:cgjbpF8I0
なんでや
多重継承無敵やろ
494デフォルトの名無しさん (ワッチョイ 6736-xNO7)
垢版 |
2021/12/13(月) 20:31:56.30ID:bmYI6DhG0
ts
495デフォルトの名無しさん (ワッチョイ 6736-xNO7)
垢版 |
2021/12/13(月) 20:40:34.40ID:bmYI6DhG0
C++だとクラスを継承して関数を再定義するとき、ヘッダーをみればvirtual関数か見分けがつくじゃん。
pythonだと普通に関数を書けば再定義できちゃうから、見分けが難しいよね。
特に、継承の継承とかしてると更に見分けがむずかしい。

これって、自分で関数名を工夫するとかしか手はないよね?
2021/12/13(月) 23:11:33.32ID:xUh4ce/50
>>495
継承元辿っていかないと仮想関数かどうかわからないのでは?一番親にvirtualついてればよかったよね?
2021/12/13(月) 23:19:20.83ID:lh9CDY7I0
for分のループがよくわからん
2021/12/14(火) 00:12:32.25ID:BYPDUL910
>>>497
https://docs.python.org/ja/3/tutorial/controlflow.html#for-statements
ここのどこでアレってなる?
2021/12/14(火) 02:21:09.13ID:7S3LFIel0
NFTアートが1300万円で落札。VRアーティストせきぐちあいみ「誰もがまだ見ぬ世界を創りたい」

ゴーグルの先に広がるのは、何もない真っ暗な空間。しかし、両手に持ったコントローラーを
振りかざすたびにバーチャルの空間に色が現れ、天地が生まれ、次第に豪華絢爛な異世界が立ち上がる。
その内部は360度から堪能することができ、地を這うことも空を駆けることも自由自在。
VRアーティスト・せきぐちあいみの創作活動は、まさに天地創造だ。
VRと出合ったことで人生が大きく動きだし、今では海外からも注目される存在になった、せきぐち。
VRで人は何を体験できるのか?
そして、彼女のデジタルアート作品に1300万円もの価値をつけたNFTの新たな可能性とは?
2021/12/14(火) 03:06:09.90ID:HCC7MYbd0
創ったやつでどう遊ぶかやな
501デフォルトの名無しさん (JP 0H4f-i5II)
垢版 |
2021/12/14(火) 10:10:15.90ID:DUXpvdCJH
変数名スレと迷ったんだけどpython+tkinter限定の話の気がするのでこっちに…

class App():
__def __init__(self):
____self.app = MyWidgets()
____self.app.mainloop()
____self.app.protocol("WM_DELETE_WINDOW", self.on_close)

__def on_close(self):
____global flg
____app.destroy()
____flg = False

if __name__ == '__main__':
__flg = True
__while flg:
____app()

アプリケーションのリセットを実装するためにこういう書き方を考えたんだけど
1 : 問題ないですよね?
2 : flgの適切な変数名はなんですか?
isAlive? loop?
502デフォルトの名無しさん (JP 0H4f-i5II)
垢版 |
2021/12/14(火) 10:11:31.22ID:DUXpvdCJH
失礼
on_close()内のappはself.appです
2021/12/14(火) 10:26:12.89ID:+EVhZbH90
アンダースコア付けまくる流儀なのかと思った
504デフォルトの名無しさん (ワッチョイ 6736-S64G)
垢版 |
2021/12/14(火) 11:12:22.41ID:0CLeNCku0
class App():
__def __init__(self):
____self.app = MyWidgets()
____self.app.mainloop()
____self.app.protocol("WM_DELETE_WINDOW", self.on_close)

こういうのて全角スペースを使うと見易くなるよ。

class App():
 def __init__(self):
  elf.app = MyWidgets()
  self.app.mainloop()
  self.app.protocol("WM_DELETE_WINDOW", self.on_close)

AAの感覚ねw
2021/12/14(火) 11:21:48.60ID:e0HER7LA0
・のほうがまだ見やすいよ
しかし空白文字を制御に使うなんてどこの誰が考えたんだよ

class App():
・def __init__(self):
・・self.app = MyWidgets()
・・self.app.mainloop()
・・self.app.protocol("WM_DELETE_WINDOW", self.on_close)
2021/12/14(火) 11:23:03.78ID:lIRTHhOV0
2021年になってもコード貼り付けられない掲示板
2021/12/14(火) 11:37:10.44ID:Or5YSda6a
コードがじかに張り付けられて
その場で実行されても困るからな
2021/12/14(火) 11:39:30.28ID:+EVhZbH90
普通は全角スペース使うな
そしてそのまま貼り付けてエラーになる

pythonもスペースとTABの他に全角スペースもインデントに許可してくれればいいのに
2021/12/14(火) 11:59:00.43ID:1bs/ZtcG0
どう考えてもこの掲示板がヤバイのにPythonが悪いって発想になる人が一定数いる辺りプロジェクトの破綻ってのは人類がいる限り絶対に避けられないんだろうな

Pythonに型定義が必要だと思ってるとかも...
2021/12/14(火) 12:04:36.90ID:+EVhZbH90
変数名に全角文字も使えるけど、全角スペースは使えないんだよな
だから、pythonも全角スペースをスペースの一種だとは思ってる
strip()でも削除される
でもインデントには使えない
2021/12/14(火) 12:23:23.14ID:1PoShsV10
>>501
Appクラスにstart, stop, restartメソッドを実装して使い分ければmainにflgやwhileは必要なくなる

現状のループ実装ならflgの名前はshould_restartとかかな
ただrestartするのがデフォルトの動きなら真偽を逆にしてshould_exitとかにしたほうが意図が伝わりやすい
2021/12/14(火) 12:25:50.36ID:W8qbVS9SM
じゃあ全角予約語や全角数値リテラルもよろしく
2021/12/14(火) 12:27:24.63ID:VQ9CDzMD0
どう考えてもこの掲示板がコード貼り付けにむいてないだけなのにこの掲示板の機能が悪いって発想になる人が一定数いる辺りプロジェクトの破綻ってのは人類がいる限り絶対に避けられないんだろうな
2021/12/14(火) 12:48:14.80ID:+EVhZbH90
この掲示板というより、htmlが連続スペースを無視する仕様を引きずってるんでしょ
ブラウザでやればどこでもそうなる
2021/12/14(火) 12:55:35.00ID:vLIDlmgW0
5ch は、命令によって表示を変えられる掲示板で、
単に文字列として表示しているだけの掲示板じゃない

色々な命令を受け付けるから、危険な命令を書き込めないようにしている
516デフォルトの名無しさん (ワッチョイ 872c-p36F)
垢版 |
2021/12/14(火) 13:00:57.82ID:6KyJPdov0
>>511
import tkinter as tk

class App():
__def start(self):
____self.root = tk.Tk()
____self.btn_1 = tk.Button(self.root, text='stop', width=10, command=self.stop).pack()
____self.btn_2 = tk.Button(self.root, text='reset', width=10, command=self.reset).pack()
____self.root.protocol('WM_DELETE_WINDOW', self.stop)
____self.root.mainloop()

__def stop(self):
____self.root.destroy()

__def reset(self):
____self.root.destroy()
____self.start()

app = App()
app.start()

こういう感じですかね
init経由しないの初めてなのでリセット時にきちんと初期化できてるのか不安
2021/12/14(火) 13:08:39.77ID:+EVhZbH90
Tk使うと途端に思考がイベントドリブンになるんだよな

コンソールに出力してちらつくのが嫌だから、
単に表示用のウィンドウが欲しいだけなのに、
実行開始ボタンみたいなのを追加した方がスムーズに作れる
2021/12/14(火) 13:22:01.69ID:ukp+dl0i0
Unicode的に全角空白含めホワイトスペース(混在不可)でインデントできてもいい気がするが
HTMLで連続する全角空白がそのまま描画されるのはバグ
2021/12/14(火) 13:30:18.23ID:1bs/ZtcG0
めっちゃ効いてて草
520デフォルトの名無しさん (ワッチョイ 6736-S64G)
垢版 |
2021/12/14(火) 13:44:53.68ID:0CLeNCku0
Tkか。
perlで使ってたな。
で、本格的なGUIを作りたくてQtに移行した。でもperl/Qtの使いにくさは異常ww

pythonに移ったらQtとの相性が抜群で驚いた。
本格的にGUIを使うならQtがいいと思う。少なくともTkはダメだな。

python/tkの現在のレベルがどの程度がしらんけどw
2021/12/14(火) 14:16:08.35ID:+EVhZbH90
手軽にGUI化したいか、ちゃんとやりたいかだよな

同じモジュールで簡単に作れるし凝ったものも作れるといいけど、
どちらかに特化してるので結局いろいろ手を出すことになる
2021/12/14(火) 17:36:00.21ID:EGYSSl+K
おれはpythonのGUIは全部webアプリに作り直したわ
個人でやる分にはwebアプリの方が使い勝手が良いというところに帰結した
一番の理由は仮想環境で安定して完結出来る、すぐにデプロイできるという点だったかな
(まぁその考えもまた変わるかもしれないけど)

GUIで作ってた頃はPySimpleGUIってライブラリがめちゃ直感的で使いやすかったな
2021/12/14(火) 17:39:17.97ID:EGYSSl+K
ライブラリというかフレームワークだった
他に何か補助的なライブラリをインストールするとかは必要なく
pysimpleguiだけでほとんどできた記憶
2021/12/14(火) 17:46:18.30ID:gY9N+5Mqa
人名の、外字をreportlabでPDFに出力したいのだけど、□になってしまいます。
PDFにフォント埋め込んで表示させる事はできないのでしょうか?
ちなみにエクセルからPDFに書き出すとちゃんと表示させる。
2021/12/14(火) 17:56:05.21ID:+EVhZbH90
特定の文字種だけ読めなくなってるpdfとかたまに見るな
あれは実は作った本人は読めてるのかもしれない
つまり、pdf自体は正しくて表示する側の問題かもしれない
2021/12/14(火) 19:02:21.60ID:Wlu2x8+4D
外字フォントを埋め込んでないから
2021/12/14(火) 19:07:15.88ID:3xSGx3Cz0
report labでどうやって外字埋め込むの?
2021/12/14(火) 19:34:38.23ID:ukp+dl0i0
埋め込んだフォントに外字が含まれているかどうかの話で
使う側は関係なくない?しらんけど
2021/12/14(火) 19:38:00.75ID:+EVhZbH90
そう思うんだけど、まともに読めないようなものを公開すると思えないんだよな
2021/12/14(火) 19:57:14.83ID:J7XSbp4E0
イメージにしてしまおう
2021/12/14(火) 21:32:31.59ID:Il/nsfIC0
PDFの文字コードはUnicodeじゃなくて独自だった記憶
2021/12/14(火) 21:54:50.72ID:3xSGx3Cz0
自作外字でも、エクセルからPDF書き出ししたらちゃんと見ることが出来るんだわ。windows10のエクセルで書き出したPDFがMacでちゃんと外字も見れるので出来るはずなんだ。
で、それをreportlabでやりたいんだけどやり方が分からんのです。
2021/12/14(火) 21:55:38.65ID:Ae5z0mHZ0
fx-CG50

full pythonでpytorchでも動くようになったら
いいのになぁ
2021/12/15(水) 12:50:56.44ID:lDA2oINn0
>>532

こういう話ではないのですのん?
https://gammasoft.jp/blog/pdf-japanese-font-by-python/
2021/12/15(水) 13:08:06.22ID:XQabx2r27
>>534
これはできる。
ただ、表示する文字列に自作外字が入ると□になる。
なので、pdfに外字の情報を埋め込まなきゃいけないと思うのだけど、やり方が分からないのです。
誰か教えて下さい。
2021/12/15(水) 13:46:40.32ID:N5WUcAXN0
外字の含まれるフォントファイルを読み込んでないんじゃないの、ということだと思うけど
2021/12/15(水) 14:18:04.11ID:0wo19brQ0
Jupyter Notebookに本のサンプルプログラムを
表示させたとき
in ソース
out 処理結果
って表示させられるんですけど
in ソースの部分だけを抜き出したくて困ってます
その部分だけ選択してコピペするには手間がかかります

質問なんですが
Jupyter Notebookで
out の部分を非表示にするいい方法ないですかね?
2021/12/15(水) 14:19:11.58ID:0wo19brQ0
複数in out があるので一気にです
2021/12/15(水) 14:32:36.32ID:NuYoj3Sh7
>>536
えーと、windowsの場合、EUDC.TTEとEUDC.EUFの二つのファイルがシステム標準の外字となっており、すべてのフォントにリンクできます。ですので、MS明朝でも、MSゴシック
でも同じ外字が出力されます。
ので、MS明朝をベースにして作った外字をMSゴシックで表示させると、外字だけ明朝っぽい表示になりその他はゴシックに
なります。
要するに外字のデータはフォントファイルに保存されているのではなくて、別ファイルからリンクが張られているのです。
なお、フォント個別に外字ファイルを作成して個別にリンクさせることもできますが、そっちをreportlabでやってもダメでした。
ExcelからPDF吐いたらちゃんと埋め込まれるのに・・・。
誰か教えて。
2021/12/15(水) 14:57:32.78ID:XLng8AET0
そこまで切り分けできてるんなら
reportlab-users
で聞いてみたら
2021/12/15(水) 15:41:40.80ID:hectGEVQ0
ここは?
https://www.blog.pythonlibrary.org/2013/07/19/reportlab-all-about-fonts/
2021/12/15(水) 16:42:33.36ID:4urMZ+Lwa
フォントを埋め込むのが前提のライブラリなんじゃない?
2021/12/16(木) 18:00:48.64ID:KcTXiqly0
いきなり書き始める段階を脱して、def main(): から書き始めるようになったぜ
2021/12/16(木) 22:09:25.20ID:egELuPRfd
おめでとう
2021/12/16(木) 22:32:14.19ID:KcTXiqly0
main()の呼び出し側を書くの忘れて、エラーは出ないけど処理もされなくてびびった
2021/12/16(木) 22:56:57.17ID:80W3ywqF0
おめでとう
2021/12/16(木) 23:03:54.00ID:S4I2Uas6M
おめでとう!
2021/12/16(木) 23:22:11.35ID:ufzc6HJ10
>>539
予め決められた標準フォント以外は埋め込むPDF規格が
PDF/x-1a
ISO 15930
です。
印刷業界でよく使われてます
reportlabがサポートしてるか調べてみて

まあghostscriptで簡単に変換できますが
2021/12/17(金) 05:12:55.31ID:JVmT4SX30
読み込む=埋め込む、として読んでたけど、
確かに別ファイルとして参照させてるだけみたいにも読めるな
だとしたら原因はそれ
2021/12/17(金) 16:56:27.27ID:JVmT4SX30
秀丸の色をqiitaみたいにする設定ファイル無い?
2021/12/18(土) 13:32:01.19ID:sE6UQAC00
>>550
それ有ったら自分も欲しい
2021/12/19(日) 00:25:09.02ID:CCxV8vx00
書く方は手数へって良さそうだけど読む方は一行で悩みそうな言語だなあ
2021/12/19(日) 07:39:26.57ID:ccGltiMB0
むしろ行数増えると思うけど
Sparse is better than dense
2021/12/19(日) 08:52:25.86ID:ccGltiMB0
pandasでtableを読み込んで、それぞれの要素に張られているリンク先を取得するにはどうすれば
555デフォルトの名無しさん (ブーイモ MM17-QNbc)
垢版 |
2021/12/20(月) 11:23:14.07ID:sxGOmJ2JM
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^

あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!

クソチョンw
クソチョンはウンコを食べる糞食人種w
朝鮮人はゲリ便をじゅるじゅると
うまそうに食うw
2021/12/20(月) 11:26:03.62ID:99Jhq6w50
↑何があったか知らんけど、この人なんでこんなに悔しがってんの?病人?
2021/12/20(月) 14:14:55.57ID:sn5XhEky0
BeautifulSoupでスクレイピングしようとしてるけど、全然楽にならない
素性のいいhtmlからさっくり持ってくるなら簡単に書けるけど、
そういうのはベタで書いても楽

素性の悪いhtmlから複雑なことしようと思うと、小回り効かなくて何も使わずに書くしかない
楽になるケースが無い
2021/12/20(月) 14:48:43.96ID:dr5rkOZYM
スクレイピングだけならJavaScriptをはじめとした他の言語で書いた方が数倍楽
2021/12/20(月) 15:25:46.48ID:sn5XhEky0
対象がごちゃごちゃしてて、やりたいことも単純じゃないなら、
どの言語で書いても簡単には行かないと思うな

htmlでやれることが多すぎるので、その中からよくあるやりたい事を選んでも、
大抵はそれでカバーできない
2021/12/20(月) 15:28:28.68ID:wokM+j500
どんな言語でも人のコードを解析するのは難しいもんな
自分はあんまりやらないからVBAで済ませちゃうことが多い
2021/12/20(月) 17:13:58.90ID:sn5XhEky0
d = {}
print(d['a'])
これは当然エラー

from collections import defaultdict
d = defaultdict(dict)
print(d['a'])
これならok

print(d['a']['b'])
でもこれはエラー

d = defaultdict(lambda: defaultdict(dict))
こうしておくとエラーにならない

print(d['a']['b']['c'])
でもこれはエラー

なかなかperlみたいには行かない
2021/12/20(月) 17:32:04.57ID:Hn2u2l7mM
>>561
>>403で書いたけどどうしてもPythonでやりたいならglomみたいなライブラリを使うか自分でヘルパー関数を作るかになる

glom(d, 'a.b.c', default=None)
563デフォルトの名無しさん (ワッチョイ 4a36-qxFW)
垢版 |
2021/12/20(月) 18:49:40.73ID:S8OedEgF0
buf = {}
buf['a'] = []
buf['a'].append(10)
buf['a'].append(20)

え、これいいの? って思うんだけど通るんだよねw
2021/12/20(月) 19:17:12.28ID:pmkgh/YZ0
何の不思議もないだろう
2021/12/20(月) 19:21:32.24ID:snB/Zb70d
不思議と思うポイントはどんなとこ?
566デフォルトの名無しさん (ワッチョイ a301-izju)
垢版 |
2021/12/20(月) 19:43:53.41ID:ceMzU2Ib0
圏論で言えばAUTOだから、良いのかな??って。
567デフォルトの名無しさん (ワッチョイ 4a36-qxFW)
垢版 |
2021/12/20(月) 20:09:27.72ID:S8OedEgF0
そうかw
Cから入った自分は、え、これは無理だろ。って感じてしまうw

list = []
list.append(10)
list.append(20)
buf['a'] = list

なら納得いくが。
まあ、最近は昔ほど抵抗は無くなったがw
2021/12/20(月) 20:24:35.62ID:sn5XhEky0
何が違うのか判らん
569デフォルトの名無しさん (ワッチョイ 4f33-g56a)
垢版 |
2021/12/20(月) 20:39:54.46ID:4NByXHes0
Cから入ると組み込み関数名を変数に使うことに抵抗なくなる?
それとも>>567が特殊なの?
2021/12/20(月) 20:50:17.97ID:sn5XhEky0
i = 1
といきなり書いてokなんだから、
d['a'] = 1
a[1] = 1
もいいやろと思うんだけど
571デフォルトの名無しさん (ワッチョイ 4a36-qxFW)
垢版 |
2021/12/20(月) 21:03:52.20ID:S8OedEgF0
数値はいいとして、普通はアドレスが格納されるから
list配列に値をいれて、そのlistのアドレスをdictに格納する。ってのが手順だよね。

まあ、いいか。気にしないでww
2021/12/20(月) 21:23:50.21ID:sn5XhEky0
宣言が必要と思うのは、入れ物を用意しないとと思うからで、
int i
と書くと整数の入れ物が、
float i
と書くと実数の入れ物が用意される

でもpythonは、いきなり
i = 1
と書くと整数が入るし、
i = 'abc'
だと文字列が入る

自由すぎやろと
何かの哲学に違反してねえかと

実際には、オブジェクトの入れ物でしか無いから、中身は何でもいいんだよな
2021/12/20(月) 21:25:46.04ID:EghhPRvN0
たまにnewしたくなるときがなくもない
実際したところでだから何が巻き起こるだけだけど
2021/12/20(月) 21:27:19.10ID:EWzfdFH+0
加齢臭がハンパないスレですね
575デフォルトの名無しさん (ワッチョイ a301-izju)
垢版 |
2021/12/20(月) 21:41:02.13ID:ceMzU2Ib0
カレーの匂い。
576デフォルトの名無しさん (ワッチョイ a301-izju)
垢版 |
2021/12/20(月) 21:47:39.96ID:ceMzU2Ib0
カレー味のウンコの匂い。
2021/12/20(月) 21:59:32.19ID:nWR8HCa10
>>572
void *a=new 10;
void *b=new 0.0;
void *c=new "abc";

Cだとこんな感じじゃねえの?
2021/12/20(月) 22:02:58.91ID:WrxYXVvN0
C言語にnewはない
579デフォルトの名無しさん (ワッチョイ b3ad-j66Y)
垢版 |
2021/12/20(月) 22:08:39.93ID:LaroeVvp0
アルゴリズムの問題で解けないやつがあるんですが、ここで聞くのはスレチですか?
2021/12/20(月) 22:11:35.11ID:dz5/LnJn0
C++と思えば?
2021/12/20(月) 22:12:58.25ID:WrxYXVvN0
似てるけど別のもの
コンパイルが通らない
2021/12/20(月) 22:14:19.44ID:WrxYXVvN0
>>579
Python限定のお題になるなら構わないのでは無いかな?
お勉強スレだし
583デフォルトの名無しさん (ワッチョイ b3ad-j66Y)
垢版 |
2021/12/20(月) 22:16:38.83ID:LaroeVvp0
Pythonの解くことを前提に与えられた問題なのですが、多分Python以外でも解けると思います。
一応投下させてください。
[問題]
n人の人間の身長が与えられる。
このn人を1列に並ばせるとき、「各々の人間において、自分より身長が高い人間が自分より前に1人以下である」という条件を課した際に、並び方は何通りあるか求めよ。
ただし、同じ身長の人間が複数人いるものとする。

方針だけでもいいので、教えて頂けると幸いです。
2021/12/20(月) 22:16:52.26ID:dz5/LnJn0
組み込みじゃないパソコン向けは++だよ。
2021/12/20(月) 22:16:52.71ID:EghhPRvN0
>>579
基本的にテスト問題は外部に漏らすのNGだから
サイトの規約をちゃんと守ってくれな
586デフォルトの名無しさん (ワッチョイ b3ad-j66Y)
垢版 |
2021/12/20(月) 22:20:53.13ID:LaroeVvp0
>>585
友人から相談された問題なのですが、確かにテスト問題の可能性がありますね。
確認しておきます。
2021/12/20(月) 22:23:58.82ID:sn5XhEky0
前に0人ならばただのソートなので1通り+同じ身長同士の入れ替えの組み合わせ
それを1人限定で崩していいので、崩し方のパターンだけ増やす
588デフォルトの名無しさん (ワッチョイ ea55-MOPJ)
垢版 |
2021/12/20(月) 22:29:28.14ID:2brWBIvz0
>>583

>ただし、同じ身長の人間が複数人いるものとする。

この条件はどう効いてくるのでしょうか?
n 人の身長を h_1, …, h_n とするとき、 #{h_1, …, h_n} = n となる場合をなぜ除外しているのか?
589デフォルトの名無しさん (ワッチョイ ea55-MOPJ)
垢版 |
2021/12/20(月) 22:32:40.36ID:2brWBIvz0
もちろん、この問題は速いアルゴリズムじゃないと駄目なんですよね?
590デフォルトの名無しさん (ワッチョイ b3ad-j66Y)
垢版 |
2021/12/20(月) 22:33:02.10ID:LaroeVvp0
>>587
151, 150, 153, 152 …(cm 略)
の並び方も考えられるので、ソートを崩していいのは1人限定とは限らないと考えました
591デフォルトの名無しさん (ワッチョイ b3ad-j66Y)
垢版 |
2021/12/20(月) 22:34:52.54ID:LaroeVvp0
>>588
分からないです…
少し問題が複雑になるんですかね?
592デフォルトの名無しさん (ワッチョイ b3ad-j66Y)
垢版 |
2021/12/20(月) 22:36:20.06ID:LaroeVvp0
>>589
速さに関する制約はないと思いますが、流石に全並びを考えてカウントするのは違う気がします
2021/12/20(月) 22:56:10.96ID:sn5XhEky0
なるほど
ざっくりソートされてれば細かい部分で無数に違反してていいのか
151 150 153 152 153
でもokなので、同じ身長を1つに縮退させることがそもそも無理

これは、とりあえず片端からやってみて、違反したらバックトラックして、
みたいに数えていくしかないのでは
594デフォルトの名無しさん (ワッチョイ b3ad-j66Y)
垢版 |
2021/12/20(月) 23:12:03.13ID:LaroeVvp0
>>593
やっぱり、ほぼ全通り考えるしかないんですかね…

あと関係ないですけどアルゴリズムの世界でも縮退って言葉使うんですね笑
2021/12/20(月) 23:28:55.61ID:nWR8HCa10
数学問題やね

まず同じ身長の奴がいない場合の並び方はA(N)通りとすると
A(1)=1
A(2)=2=2^1
A(3)=4=2^2
A(4)=8=2^3
...
A(N)=2^N通り

同じ身長の奴がいる場合はちょっと複雑
これをB(N)通りとすると
N人の中に150cmが3人いる場合
B(N)=A(N-2)*(3*2)
N人の中に150cmが3人と152cmが2人
B(N)=A(N-3)*(3*2)*(2)
2021/12/20(月) 23:37:02.50ID:nWR8HCa10
訂正:A(N)=2^(N-1)

A(N)=A(N-1)*2となることを証明すればいい
2021/12/20(月) 23:54:28.57ID:2rYNI2GJ0
分割統治でやって欲しいんじゃないの

ソート済みの状態から一番高い身長のやつをピボットにして左半分と右半分の問題に分割
右半分は同じ身長のみ入れ替え可能
左半分は一番高い身長のやつをピボットにしてさら左半分と右半分の問題に分割
左半分が1人になったらピボットの位置を移動させる
598デフォルトの名無しさん (ワッチョイ b3ad-j66Y)
垢版 |
2021/12/21(火) 00:03:41.16ID:0/0mhKq10
>>595
A(N)=A(N-1)*2の証明を考えてみましたが、思いつきませんでした…
あとB(N)の計算例が何故そうなるのか理解できません🙇
599デフォルトの名無しさん (ワッチョイ b3ad-j66Y)
垢版 |
2021/12/21(火) 00:04:48.55ID:0/0mhKq10
>>597
具体的な操作のイメージが分からないです…
2021/12/21(火) 00:29:01.50ID:+okGxHMi0
こんな感じか?
https://wandbox.org/permlink/8ZVMC6e2OxO4cOn3
601デフォルトの名無しさん (ワッチョイ b3ad-j66Y)
垢版 |
2021/12/21(火) 00:54:36.36ID:0/0mhKq10
>>600
コードの理解に努めましたが、難しいです…
ヒントを頂けないでしょうか🙇
2021/12/21(火) 06:25:11.98ID:wN0nPlTy0
>>593
Amortized sortって奴だね
2021/12/21(火) 07:07:48.53ID:meTPjnW+0
>>598
A(N)=A(N-1)*2の証明
時間がないから手っ取り早くヒント

背の高さでソートされた順列(a,b,c,...,x,y,z)があるとする
ここで一番背の高いzの位置に注目するのがポイント

zが一番後ろにいる場合を (abc...xy)zとする
ここで(abc...xy)の並び方の数をZ(N,1)とする
Z(N,1)=A(abc...xy)=A(N-1)

zが後ろから2番目にいる場合は
(abc...x)zy 
Z(N,2)=A(abc...x)=A(N-2)

整理すると
Z(N,1)=A(N-1)
Z(N,2)=A(N-2)
...
Z(N,N-1)=A(2)
Z(N,N)=A(1)

よって
A(N)=A(1)+A(2)+....A(N-2)+A(N-1)
変形して
A(N)-A(N-1)=A(1)+A(2)+....A(N-2)
すなわち
A(N)-A(N-1)=A(N-1)
A(N)=2*A(N-1)
2021/12/21(火) 08:46:56.71ID:04IauV3F0
君はテスト問題でないことが確定されるまでは参加禁止なのでは
2021/12/21(火) 09:41:15.85ID:+okGxHMi0
うーん場合分けは不要だったしちゃんと整理してから出せばよかったな
https://wandbox.org/permlink/U69DxyJb2ELWD78B
606デフォルトの名無しさん (ワッチョイ b3ad-j66Y)
垢版 |
2021/12/21(火) 10:22:33.61ID:0/0mhKq10
皆様、大変勉強になりました。
ありがとうございました。

この問題を聞いてきた人は、友人と言っても連絡先も知らない、週一でしか会わないクラスメイトなので、確認には少々時間がかかると思います。
>>604
この方の言う通りなので、ご教示はここまでで大丈夫です。

繰り返しになりますが、ありがとうございました。
2021/12/21(火) 10:25:33.80ID:TtujsDmTd
ぱっと見DP使わせるような問題に見えるし
どこかのコーディングテストの転載臭い
2021/12/21(火) 10:50:28.08ID:04IauV3F0
DPって何通りあるか計算できるの?
2021/12/21(火) 22:56:32.12ID:04IauV3F0
in placeなものとそうでないものが混ざってていちいち引っかかる
2021/12/22(水) 09:15:13.63ID:/f6dB3Se0
new_list = old_list.append(1)
old_list.append(1)

new_str = old_str.replace('aaa', 'bbb')
old_str.replace('aaa', 'bbb')

new_list = old_list.sort()
old_list.sort()

new_list = old_list.sorted()
old_list.sorted()

どっちが正しいでしょうと、pythonをよく知らない人に聞いても正しく答えられない
個別に覚えるしかないというのは辛い
2021/12/22(水) 09:19:13.50ID:tLI1n5rc0
お前もよく知らないだけだろ
2021/12/22(水) 09:51:11.06ID:/f6dB3Se0
pandasだと、基本的には非破壊で、
inplace=True
を付けると破壊的に処理する

sortみたいに、replaceとreplacedを用意するというのでもいい
デフォルトがどちらかに寄ってるべき
2021/12/22(水) 11:12:03.22ID:HgZu4pcO0
Pythonは全部破壊的変更だが
2021/12/22(水) 11:57:09.52ID:BoOcuWzad
破壊的というか、参照渡しだから同じもの見てるだけ
値で渡したかったら、つまり別々のものを見るようにしたかったら
空スライスまたはコピー関数で値をコピーするか
ミュータブルに一度変換して対象オブジェクトに再変換するかでいい

こう考えたらnewしたいな、と感じるときもある
だから関数設計するときも紛らわしさを考慮してリターンするオブジェクトは
関数内で新しく作ったものを出すようにした方が誤りが減る
2021/12/22(水) 17:46:32.03ID:/f6dB3Se0
ヘッダ
中身
ヘッダ
中身
...

というデータがあって、中身の数は不定
これをそれぞれのブロック毎に処理したい
シーケンシャルにやると、とりあえず次の行を読んでみて、
ヘッダだったらプールしておいたブロックを処理して、ブロック切り替え
そして、全部読み終わった時にもプールしてあるブロックを処理する

いかにも嫌なので、一度全部読み込んで、部分リストに分割して処理したい
でも、普通にやると部分リスト分割のところで、とりあえず次の行を読んでみて、になるので、
リストを一発でsplitしたい
splitのlist版みたいなのは無い?
厳密にはセパレータも残すのでsplitとも違うけど
2021/12/22(水) 21:45:12.58ID:/8KUW41f0
正規表現で
2021/12/22(水) 22:30:11.21ID:inR83KhS0
splitも次の要素をみてから判断してるにちがいないけど
じぶんのコードで書きたくないってこと?
ヘッダや中身も同時にパースできるし同じく正規表現(re.finditerあたり)推す
2021/12/22(水) 22:30:55.64ID:/f6dB3Se0
だから文字列じゃないんだってば
2021/12/22(水) 22:39:25.23ID:/8KUW41f0
じゃあ正規表現で
2021/12/22(水) 22:43:37.97ID:DICDdkFu0
バイナリデータなのか?
2021/12/22(水) 22:45:36.59ID:inR83KhS0
次の行ってのが論理的な要素を指してて実体はlist(iterable)ってんなら
more-itertoolsのsplit_beforeとか

バイナリなら書きづらいけどぜんぜん正規表現でいける
2021/12/22(水) 22:53:23.32ID:/f6dB3Se0
実体はopenpyxlのセルオブジェクトのlistなんだけどね
無理やりくっつけて正規表現でやっつけても、その後が困るのでlistで処理するしか
numpyのsplitが使えそう
2021/12/22(水) 23:35:23.55ID:/8KUW41f0
正規表現がいやならpeekable iteratorで
624デフォルトの名無しさん (ワッチョイ 4f33-g56a)
垢版 |
2021/12/22(水) 23:48:36.46ID:5pcWLKDp0
>>615
本来、そのデータを受け取る側はどうやって処理してるの?
2021/12/23(木) 03:26:08.15ID:uxCnZncsa
リストを逆から処理していってブロックのリスト作るだけでは
2021/12/23(木) 05:22:40.25ID:bOXEGJaS0
>>615
プログラマ向いてない
意味のないこだわりで問題を難しくするタイプ
2021/12/23(木) 06:08:20.68ID:W/nbBjGX0
>>622
処理速度とか気にしないなら自前で書いたほうが融通が利くだろうよ
でもヘッダとコンテンツというブロック構造は頻繁に現れるデータ構造だから一般化したものを使いたいね

この形はDB形式そのもの
sqlに落として使うのもいいかもな
2021/12/23(木) 07:01:17.49ID:4lpi36cc0
使い捨てのプログラムで、この拘りだったら永遠に考えとけって話だよなぁ
2021/12/23(木) 07:39:18.70ID:df0C7LZ20
listをsplitしたいという質問に対して、答えが判った今なら、
そんなもんはnumpyで一発でできるよ、という簡単な問いにしか見えない

ごちゃごちゃ変な回答してる人はどうせnumpy知らないんでしょ?
2021/12/23(木) 08:49:38.53ID:qBBxA2lI0
おっぱいは正義
2021/12/23(木) 09:55:17.80ID:uxCnZncsa
いるよな
こういう人
2021/12/23(木) 13:59:07.99ID:4BWUo4Pe0
ちょっと教えてほしいんだけど、print関数で出力される文字列を
変数に入れたいんだけどどうしたらいいだろう?
printと似たようなstringを返す関数を作れるならそれでもいいんだけど
カンマ区切りで複数パラメータを渡せる宣言がわからない
2021/12/23(木) 14:08:58.31ID:rKR7g5HU0
>>632
https://docs.python.org/ja/3/library/functions.html#print
> str() がするように文字列に変換
公式に書いてる
2021/12/23(木) 14:19:33.68ID:3yOXD4ws0
formatやf-stringのことかな

val = 123
a = f'残金{val}円'
または
a " '残金{}円'.format(val)
2021/12/23(木) 14:21:13.64ID:3yOXD4ws0
下の"は=の打ち間違い
636デフォルトの名無しさん (ワッチョイ 4f33-g56a)
垢版 |
2021/12/23(木) 14:49:22.66ID:qzls8RBa0
>>632
>>> def f(*args): return args

>>> f('abc', 'def', 'ghi')
('abc', 'def', 'ghi')

こういうことではなくて?
2021/12/23(木) 16:25:58.39ID:4BWUo4Pe0
>>636
それだとタプルで返ってくるだけで
文字列になってなくない?
2021/12/23(木) 16:35:06.82ID:dblhs2tn0
そこまで面倒見てもらわにゃならんのかw
639デフォルトの名無しさん (アウアウエー Sae2-RmhO)
垢版 |
2021/12/23(木) 16:46:24.32ID:wVsy9mb3a
msg = 'a,b,c'
print(msg)
values = msg.split(',')

こういうこと?
2021/12/23(木) 17:47:50.08ID:IBpnZJhO0
みてください
2021/12/23(木) 18:20:49.76ID:4BWUo4Pe0
ありがとう解決しました。
2021/12/23(木) 19:09:00.65ID:p+r9sE2/0
>>629
numpyでやってみせて
ぜひ
643デフォルトの名無しさん (ワッチョイ be10-w0pt)
垢版 |
2021/12/23(木) 19:33:07.91ID:lssFGhba0
>>629
numpy覚えたてみたいでかわいい
2021/12/23(木) 19:47:43.54ID:mMsR/cF20
仕事でnumpy使ってるけど未だによく分からないことあるな
2021/12/23(木) 22:06:57.32ID:oyXOfuSO6
まとまったメモリ確保して関数に渡すためだけにstructured array使ってる
2021/12/23(木) 22:51:15.20ID:df0C7LZ20
import numpy as np
l = [-1, 1, 2, 3, -1, 1, 2, -1, 3, 4]
header_position = list(filter(lambda x: l[x] == -1, range(len(l))))
for a in np.split(l, header_position):
print(a)

-1だとヘッダだとする
ヘッダ位置のリストをsplitの第2引数に渡すと、その場所でsplitしたarrayのlistが得られる
先頭のは要らないので捨てる
2021/12/23(木) 23:14:40.77ID:zCNeJPRa0
>>> import more_itertools
>>> l = [-1, 1, 2, 3, -1, 1, 2, -1, 3, 4]
>>> iter = more_itertools.split_before(l, lambda x: x == -1)
>>> list(iter)
[[-1, 1, 2, 3], [-1, 1, 2], [-1, 3, 4]]
648デフォルトの名無しさん (ワッチョイ 5d36-rb6c)
垢版 |
2021/12/24(金) 06:48:08.59ID:v3ycTrGF0
よく、more_itertoolsなんて知ってるね。
2021/12/24(金) 11:34:27.22ID:J23vcQI9M
numpyだけじゃなくpythonも覚えたてだったか
2021/12/24(金) 14:30:18.61ID:G9Y5EdGy0
python覚えたてチェック

yield使ったことある?
2021/12/24(金) 15:11:24.82ID:5MBwlF320
C#でつかいました
2021/12/24(金) 17:25:55.08ID:Nn/03+5S0
痛くしないでねハート
2021/12/24(金) 18:09:40.24ID:cMhJNtck0
>>646
俺の知ってる一発とは意味が違ってた

それはともかく
1周で済むところを2周して
split後に先頭が空配列なら捨てる処理も必要で
シーケンス限定なのでちょっとキツイかも
2021/12/24(金) 18:18:59.15ID:G9Y5EdGy0
この後、分割したリストに対してメインの処理をするので3周だよ
2021/12/26(日) 11:22:31.20ID:p3QxfO7m0
先日Pythonに入門したビギナーですけど、おおむねPythonは便利ですね。
プログラミング言語というよりはどっちかっていうと利便性の高い道具といった感じです。
道具なのでこれで業務システムは作りたくないけど、これがあると業務のめんどくさいところをいろいろ楽にできるといったイメージ。
加えてライブラリ類が超強力なのばっかりなので『そりゃ、これは流行るわ』と思いました。

いまんとこの不満はスタックトレースがASCじゃなくてDESCならよかったなーっていうのと
switch〜caseがほしいなーっていうのと、
三項演算子ほしなーっていうのくらいですね。
2021/12/26(日) 11:23:30.05ID:MmrJg2Uh0
チラウラ
2021/12/26(日) 11:41:09.08ID:0RqE/nlm0
文句は一人で壁に向かって
2021/12/26(日) 12:12:41.08ID:Pa0hIbgE0
urllib.requestで足りるんだけどエラー処理を自分でやらないと止まる
もう少し安全にしたモジュールないかな
2021/12/26(日) 12:20:07.54ID:BGcOWLCe0
requestsはだめなん
2021/12/26(日) 13:02:44.42ID:4NpXv1fj0
>>655
Python 3.10からパターンマッチ
2021/12/26(日) 17:15:39.98ID:Xt1KUxKEa
いい感じのGraphQLライブラリないかなと探してて見つけたTartifletteが最強だった
さらっとGraphQLいじりたいならgrapheneがあるけどこれ微妙なんだよね
Tartifletteマジおすすめ
2021/12/26(日) 17:48:55.27ID:go+9Hwgza
認定試験2回も落ちた…
プログラミングしてる人ほんとすごいわ尊敬する
2021/12/26(日) 17:54:33.56ID:v0ik1B7Yd
基礎の方?
2021/12/26(日) 18:03:37.10ID:go+9Hwgza
そうです。
社会人なのですが勉強がとても苦手で、合格率高いって聞いてほんと凄いなと思ってます。
エラーと例外が意味わからん…
2021/12/26(日) 18:12:13.74ID:Pa0hIbgE0
エラーと例外の区別は言語によるけど、pythonの場合は
止まってしまうのがエラー、回避できるのが例外
2021/12/26(日) 18:19:41.97ID:go+9Hwgza
>>665
ありがとうございます。
今年中には受かりたかったのですが、三度目の正直でがんばります。
2021/12/26(日) 19:55:23.10ID:mNkfpvhP0
PythonでカッコイイGUI作れるライブラリないですか?
Tkinter使ってるんですがいまいち見た目が古いです
2021/12/26(日) 20:07:46.98ID:Pa0hIbgE0
最終的には自分でskin作らないと、どこかで見たのになっちゃうな
669デフォルトの名無しさん (ブーイモ MM26-QwP1)
垢版 |
2022/01/01(土) 06:44:25.87ID:96//zQriM
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^

あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!

クソチョンw
クソチョンはウンコを食べる糞食人種w
朝鮮人はゲリ便をじゅるじゅると
うまそうに食うw
2022/01/01(土) 08:03:20.96ID:gORyD7C+0
>>667
PyQT5を試してはどうでしょうか?
ライセンスの関係でQt本家のPySideと
Qtバインディングは2つあります
2022/01/01(土) 09:27:43.44ID:jxskZh3E0
>>670
私もラズパイでpyQt5使ってるけど商売したら駄目ですか?
2022/01/01(土) 11:13:01.06ID:hoyIdEI/0
番号が飛んでるのはまたrub○狂信者が
暴れたのか?
新年早々ご苦労様
2022/01/01(土) 11:21:52.18ID:8K4M9wfP0
>>670
QtはC++で使ったことありますね
見た目は良い感じですね
2022/01/01(土) 12:01:34.66ID:GUl+vu92M
亀レスだけどpythonデータ分析試験のほうは実践的だからおすすめしたい。
教養としてアリ
675デフォルトの名無しさん (ワッチョイ e52c-45BR)
垢版 |
2022/01/01(土) 18:30:18.48ID:p7FpLgzA0
windowsの隠し属性などの判定で

import os
from stat import (
FILE_ATTRIBUTE_SYSTEM as S,
FILE_ATTRIBUTE_HIDDEN as H,
FILE_ATTRIBUTE_READONLY as R
)

path = '\foo\bar'
if os.stat(path).st_file_attributes & (S | H | R):

というような書き方を見たんですが
&から先って何してるんですか?
ビット演算? このカッコとパイプはなんですか?
676デフォルトの名無しさん (ワッチョイ e52c-45BR)
垢版 |
2022/01/01(土) 18:35:36.69ID:p7FpLgzA0
attr = os.stat.st_file_attributes
res = (attr & S) + (attr & H) + (attr & R)
と同じ?
677デフォルトの名無しさん (ワッチョイ ad33-hDuN)
垢版 |
2022/01/01(土) 19:52:40.32ID:GIF/ZHL10
>>675
整数型におけるビット単位演算
https://docs.python.org/ja/3/library/stdtypes.html#bitwise-operations-on-integer-types
678デフォルトの名無しさん (ワッチョイ 862d-M739)
垢版 |
2022/01/01(土) 21:00:31.24ID:CvAU7HCi0
ファイル属性にSまたはHまたはRが設定されているか判定している
2022/01/02(日) 00:11:17.32ID:CoptXtkZ0
>>675
ビットマスクってやつ

FILE_ATTRIBUTE_SYSTEM (0x4)
FILE_ATTRIBUTE_HIDDEN (0x2)
FILE_ATTRIBUTE_READONLY (0x1)

(S | H | R)が0x0111
st_file_attributeのほうの該当ビットがどれか1つ立ってればtruthyになる
2022/01/02(日) 00:18:41.67ID:CoptXtkZ0
あ、0111はhexじゃなかったわ
681デフォルトの名無しさん (ワッチョイ e52c-k4O9)
垢版 |
2022/01/02(日) 10:16:57.70ID:nOoY0tiG0
>>679
おービットマスク
ようやく検索のとっかかりが分かりました
ありがてえ
2022/01/02(日) 15:56:44.33ID:nL0v86D90
strの中に'aaa'か'bbb'か'ccc'が含まれている場合
という条件をスマートに書きたい

一致だったら
if str in ('aaa', 'bbb', 'ccc'):
でいいけど、含むになるとうまく書けない
2022/01/02(日) 16:13:04.92ID:etcFdF710
any(word in str for word in ['aaa', 'bbb', 'ccc'])
re.search('aaa|bbb|ccc', str)
684デフォルトの名無しさん (ワッチョイ ad33-hDuN)
垢版 |
2022/01/02(日) 16:18:01.84ID:F+6nt4Sk0
strって組み込み関数じゃないの
2022/01/02(日) 18:04:16.50ID:i5Las0bb0
もちろん推奨されないけど組み込み関数と同じ名前の変数は使えるよ
2022/01/02(日) 23:29:29.52ID:nL0v86D90
文字列が何かと一致する、の時は文字列は左辺でいいのに、
文字列が何かを含む、の時は文字列が右辺に来るんだよな

if [パターン1, パターン2, パターン3] in 文字列
みたいな書き方が許されない限りどうやってもすっきりしない
どこかにanyをねじ込まないと意味が判らんけど
2022/01/03(月) 00:00:34.18ID:jf23T2MpM
PythonのAPI設計が悪い見本と言われる所以
2022/01/03(月) 00:14:18.61ID:sIHXRaIE0
イタイ奴だなw
689デフォルトの名無しさん (ワッチョイ 4936-2HqO)
垢版 |
2022/01/03(月) 10:10:38.63ID:lr+q9xK20
all(),any()なんてあるんだね。
ここ見に来ると勉強になるよw
2022/01/03(月) 10:20:51.32ID:kXMj+7ik0
allとanyは必須

flag = False
for なんやら:
 if 条件:
  flag = True
  break

みたいなよくある書き方をしなくていい
よくある書き方すぎて、その方が通りが良かったりもするけど
2022/01/04(火) 17:34:09.24ID:3hJH9p5O0
なんでallとexistsじゃないのか
2022/01/04(火) 18:06:50.16ID:3tVRYKmq0
文章として読めないがな
2022/01/04(火) 19:23:17.27ID:bw33J4bp0
>>691
and or all anyでもはやidiomだ
2022/01/04(火) 19:28:18.99ID:3tVRYKmq0
aがbに含まれる、が
a in b
という順序なのも、文章優先
bがaを含む
b includes a
でも良かった
それなら
b includes any(a1, a2, a3)
もすんなり実装できた
695デフォルトの名無しさん (ワッチョイ 4136-2HqO)
垢版 |
2022/01/04(火) 20:22:48.31ID:ZoYK5W0O0
文章を読むように書かれたプログラムが一番美しいと、昔し何かで読んだことがある。

まあ、英語圏限定ですけどねww
2022/01/04(火) 20:29:10.53ID:zSGNibWZ0
COBOL 「呼んだ?」
2022/01/04(火) 20:29:39.65ID:3tVRYKmq0
C言語のポインタの複雑な文法も英語に変換するとそのまま読める
698デフォルトの名無しさん (ワッチョイ 4136-2HqO)
垢版 |
2022/01/04(火) 20:40:07.97ID:ZoYK5W0O0
じゃ、日本人は日本語で。

って間違った方向にいたのは秘密ですw
2022/01/04(火) 20:53:04.31ID:eEGYSZI70
mind か
2022/01/04(火) 20:57:24.27ID:3tVRYKmq0
逆ポーランド記法は日本語的だな
しかもスタックが少なくて済むという
2022/01/04(火) 21:31:38.94ID:/LIoFX6+M
>>694
in演算子が内部的に使う__contains__()っては用意されてる
でも変なこだわりでinに統一させるから拡張性がなく使いにくい仕様になってる

any( a in b for a in ['aaa', 'bbb', 'ccc'] )

ないわー
2022/01/04(火) 21:38:53.18ID:63k9tliX0
まあ悩むよりよくある書き方でええような
2022/01/04(火) 23:03:20.95ID:nlFraWk40
内包表記ではそうとしか書けないけど
>>701のコードきたらリジェクトするわ実際
2022/01/04(火) 23:38:46.30ID:l7pw94h+0
内包表記自体、書く側が気持ちよくなるための側面が多分にないともいえないから多用しまくるとレビューでリジェクトされまくりそう
2022/01/05(水) 00:15:54.21ID:PkTwoJNV0
googleのコーディング規約だと、内包表記に制御文を2つ使わなければOkだから、701のコードは通さざるを得ないな...
2022/01/05(水) 02:48:51.85ID:qZJk/ArP0
英語文法に近ければ使いやすいのは違うかなーと思う
sql文みたいにおかしい事になるだけだし
2022/01/05(水) 09:00:51.95ID:+XxZYylm0
atomでpython勉強してるんですけど
以下のところでエラーが出ます

txt = "aaab"
if txt == "aaa":
print("AAA")
else:
print("BBB")
---------------------
else:

^
SyntaxError: invalid syntax


コンソールで実行してもエラーでないんですけど、Hydrogenだとエラー出るんです
なんででしょうか?
2022/01/05(水) 09:07:27.53ID:YkBGR/1Q0
多分インデント
2022/01/06(木) 04:11:32.12ID:X/56yxxn0
seleniumで取得したdriverオブジェクトをbeautifulsoupの第一引数に渡してbeautifulsoupオブジェクトを作りたいんだけどどうすれば?
2022/01/06(木) 07:30:57.53ID:R8Cch/7s0
page_source渡すのじゃだめなん?
>>709
2022/01/06(木) 17:50:30.00ID:3TikDHA/0
ある画像とよくにた画像を探したい
ImageHashのハミング距離でいけるかと思ったけど全然駄目だった
もう少し真面目に比較してくれるライブラリ無い?
2022/01/06(木) 18:12:47.87ID:WCTWOnks0
ハミング距離でいけそうと思えるような奴に真面目な話なんてできないだろう
2022/01/06(木) 18:15:22.62ID:g2jOgONSM
pytorchを使いたまえ
2022/01/06(木) 18:20:50.07ID:3TikDHA/0
一気に難しくなりそう
ImageHashなら1行で書けるのに
2022/01/06(木) 20:04:27.41ID:X/56yxxn0
>>710
多分それで行けるthk
2022/01/06(木) 22:01:01.61ID:R8Cch/7s0
類似画像を探すディープでない方法ならカラーヒストグラムの一致度はいかが?
2022/01/06(木) 22:43:15.94ID:3TikDHA/0
テロップとか入ってるだけでマッチしなさそう
2022/01/06(木) 22:59:44.98ID:WkFaZ5Pd0
いまは理屈わからなくても
簡単にクラウドで画像認識モデル生成できるので
使うだけならかんたん
2022/01/06(木) 23:07:43.22ID:D3QjPRn+0
>>711
> ある画像とよくにた画像を探したい

どこから?
webからなら
tineye
google reverse image search
のAPI叩けばいい
2022/01/06(木) 23:22:05.58ID:3TikDHA/0
ある新規と思われる画像が、既にあるたくさんの画像と重複してないよね、という確認をしたい
2022/01/06(木) 23:46:07.72ID:AWPgbEUsa
エロ画像?
2022/01/06(木) 23:51:36.24ID:AWPgbEUsa
https://pypi.org/project/image-similarity-measures/

こんなのとかどうなんだろね
2022/01/07(金) 11:15:25.95ID:ZrHPqEwy0
エロ画像なんか重複しても何も困らない
724デフォルトの名無しさん (ワッチョイ 2e10-M739)
垢版 |
2022/01/07(金) 19:25:26.76ID:7jGAmvDk0
エロ画像を収集しようとして、肌色面積で判定するプログラムを書いたら、力士の画像が大量に集まった話を、思い出した。
2022/01/07(金) 19:30:28.88ID:ZrHPqEwy0
エロ画像というか、AVのパッケージ画像を深層学習させて、
好みに合いそうなのをピックアップさせたら面白いだろうなとは思う

深層学習は汎用品を使うより、自分しか使わないようなのを各自で作る方が役立つ筈
726デフォルトの名無しさん (ワッチョイ e52c-k4O9)
垢版 |
2022/01/08(土) 02:17:14.95ID:g/P8vIy30
>>720
それだけならDup File Eliminatorとかあるべ
車輪が云々
2022/01/08(土) 06:42:31.41ID:KkBIS3By0
それはやっぱり、謎の理由で重複を消したい人のツールだな

ある画像があって、それが新規ならばIDを登録する
既存ならばどのIDと同じか調べてそこに追加する
そんな処理がしたい
2022/01/08(土) 07:10:24.17ID:wsPrF+eEM
そうですかおめでとう
729デフォルトの名無しさん (バットンキン MM92-k4O9)
垢版 |
2022/01/08(土) 07:51:17.11ID:orDDjzsHM
ワッチョイ c23b-58y4
ワッチョイ e23b-Gc8h
ちょっと前から居着いてるスライスがどうの、改行コードがどうのと
屁理屈こねくり回したいだけで別に解答求めてるわけじゃない
面倒くさいやつだから、相手にするだけ時間の無駄ね
2022/01/08(土) 08:05:42.27ID:KkBIS3By0
だって質問スレではないから
質問者を罵倒して気持ちよくなりたい人はどっか行って
2022/01/08(土) 08:15:30.66ID:KkBIS3By0
レベルアップできそうなネタがあったから良ければ一緒に考えてみないかい?
というスタンスなので簡単ではない
手持ちの知識だけで気楽に回答できてお礼を3行以上貰いたい人には居心地悪いだろう
2022/01/08(土) 08:40:05.38ID:+gNN1Li50
>>726
> Dup File Eliminator

MS-Windows用ではないか。
https://dupfileeliminator.softonic.jp/

くそWindows用車輪でどうしろと言うのだ。
2022/01/08(土) 08:41:38.08ID:wVrxu3by0
>>726
あれ使うとわかるけど
全部を重複確認するから
だるいよ
片方のフォルダに新規が入るようなつくりならもう少し処理早くできるのに
2022/01/08(土) 09:20:40.74ID:E0kg7RDx0
>>725
>深層学習は汎用品を使うより、自分しか使わないようなのを各自で作る方が役立つ筈
確かに個人特化型が作れたらメチャクチャ便利になるはず
2022/01/08(土) 10:01:51.10ID:KkBIS3By0
あとは相場予測だな
AIで安定して儲けを出してる人はいる
でも、売られてるツールでは儲からない
儲かるツールは絶対世に出ない
自分で作れる人だけ得をする

それもAIが当たり前になってしまったら個人では大手に太刀打ちできなくなる
まだ勘を頼りにやってる人が食い物として一定数いる今だけがチャンス
2022/01/08(土) 10:28:23.87ID:DrVGMYzo0
10年前の人かな?w
737デフォルトの名無しさん (ワッチョイ 7f7c-igs8)
垢版 |
2022/01/08(土) 22:12:42.08ID:OZwS2Y610
PandasのDataFrameのpct_changeで取得した差分を別のDataFrameに適用することはできないでしょうか。
やりたいことは異なる基準を持つデータを全て100を基準としたデータに変換したいです。
変化率を順々に適用していくやり方があれば教えていただきたいです。
2022/01/08(土) 22:54:09.74ID:Df3tzX0P0
そいつは、>1 のテンプレをしょっちゅう改変している、テンプレ改変荒らし。
基本的に、ソースコードを書かない香具師は荒らし

「Ruby, Rails, クソチョン」などを、NGワード登録推奨とか、
自分が有利なように、いつもテンプレを改変する

荒らしがスレ主として、居座っているので、
まともな人がスレ立てして、テンプレも元に戻した方がよい

荒らしは必ず、短文で2回以上書き込む。
必ず、複数人がいるように見せかける
2022/01/09(日) 03:39:41.97ID:lzN+drLE0
新3点チャージ投資法2021の有効性検証(システムトレード)
https://nehori.com/nikki/2021/04/15/post-28658/

株式相場なら、明地文男の3点チャージ投資法による底値買いで、勝率98% とかでしょ?
使う指標も、乖離率・ボリューム・レシオ(VR)・相対力指数(RSI)の3つだけ
2022/01/09(日) 04:39:42.37ID:Q+pn+VgA0
トレードシステムはいいんだけど
どこからデータとってくるんだ?
あんまり連続でとったら問題あるんだろ?
2022/01/09(日) 09:45:18.80ID:+42TMcfM0
ガチでやるなら有料のAPIが各社ある
2022/01/09(日) 16:48:47.82ID:81erJpQwD
>>738
有利も何もそれらNGワード入れないとスレ乗っ取るじゃねーか
743デフォルトの名無しさん (ワッチョイ ff10-ojRl)
垢版 |
2022/01/09(日) 18:37:32.34ID:ZopVK8Nz0
>>738みたいな奴ってまともな社会生活送れてんのかな
2022/01/10(月) 00:06:11.26ID:E00LUTAL0
まともな社会というより社怪やね
2022/01/10(月) 00:19:24.76ID:MINWORCd0
スレ立てるまでもない質問はここで 158匹目
https://mevius.5ch.net/test/read.cgi/tech/1635193843/538

ここに、YouTube で有名な、雑食系エンジニア・KENTA のサロンの、
Ruby on Rails 初心者用コースの内容を書いておいた

基本的に、Rails以外のフレームワークは、シェアが少ないのでおすすめしない。
学習環境も揃わないので、無理

Railsでは、Railsチュートリアル・Railsガイド・
黒田努の3冊の本・パーフェクト Ruby on Rails・Ruby on Rails 6 エンジニア養成読本とか、
Rubyでは、改訂2版 パーフェクトRuby・改訂2版 Ruby逆引きハンドブックなどの教科書が揃っている

これほど、良い教科書が揃っているフレームワークはない!

Laravel のシェアは少しあるけど、KENTAがPHP は一生やる必要がないと言ったので、
PHP自体がオワコンになってしまったw

日本のウェブ開発の将来は、ほぼKENTAが決めている。
Scala を滅ぼしたのも、KENTA
2022/01/10(月) 01:04:10.17ID:B6AxtkfI0
悪い奴だな!
2022/01/10(月) 01:41:03.47ID:xmt2m3xj0
マジでKENTAうぜーな
いい加減にしろよ
2022/01/10(月) 04:22:16.65ID:xmgd4yKr0
本買わないとまともに勉強すらさせて貰えないのか
2022/01/10(月) 04:32:55.87ID:uRBXCWA/0
tkinter使ってるのですが

ボタンとかラベルとかのIDみたいの取得できないのですか?
C#だと自分でlabel1 とかlabel2とかつけられて
label2= でテキストとかラベルを指定して変えられると思うのですが
tkinterだとその指定があるように見えないのですが
2022/01/10(月) 06:23:55.74ID:4usmYwxA0
Ruby使いとは仲良くなれない
751デフォルトの名無しさん (ワッチョイ 5f2c-XI1N)
垢版 |
2022/01/10(月) 08:15:45.24ID:guhfn5fv0
>>749
そんなエセ質問じゃ賑やかしにもならない
変数名の付け方が分からんって言ってんのか?
2022/01/10(月) 11:42:21.03ID:c57lS1bu0
WinFormsの話だったら
Control.Nameプロパティで設定した名前をキーに, Controls["hoge"]でコントロールにアクセスすることを言ってると思う
https://dobon.net/vb/dotnet/control/findcontrolbyname.html

tkinterで相当の手段が提供されてるかは知らないけど, 仮に用意されてなかったとしても
Controlsってほとんど単なるDictionaryだから, 自分でdictに入れれば十分でしょ
2022/01/10(月) 12:18:33.50ID:VSAngJtV0
tkinterのinterって何?
2022/01/10(月) 12:21:08.40ID:/HUqlzb50
interface
2022/01/10(月) 12:26:32.41ID:VSAngJtV0
interfaceをinterとは略さんやろ
そもそも、どんなモジュールでもそれはinterfaceなんだし
2022/01/10(月) 12:33:34.38ID:wNGTpI/60
そんなこと言われても、英語版Wikipediaには

The name Tkinter comes from Tk interface.

って書かれてるし、オブジェクト指向とかのインタフェースじゃなくてUIのインタフェースでしょ。

どんだけ頭硬いんだ
2022/01/10(月) 12:38:09.75ID:VSAngJtV0
ほなinterfaceやないかい
2022/01/10(月) 12:38:30.42ID:mrZj63PS0
公式くらい読めや
https://docs.python.org/ja/3/library/tkinter.html
2022/01/10(月) 12:42:34.31ID:wnYIIVTM0
うちのオトンはUWF インターのInterや言うてたわ
2022/01/10(月) 12:45:18.90ID:VSAngJtV0
元からあるC言語で書かれたTkをそのまま使って、それをpythonに繋ぐ部分
という意味のinterfaceか

Tkに慣れてる人は抵抗なく入れるかもしれないけど、
pythonで簡単にGUIを実現したい、という人には新しく作った何かの方が楽なのでは
2022/01/10(月) 20:21:59.24ID:hkndD+qm0
TKinterならPySimpleGUIで使えばいいんじゃない?
2022/01/10(月) 20:36:47.54ID:xmgd4yKr0
htmlでいいな
2022/01/10(月) 20:45:51.07ID:VSAngJtV0
VBAでやった
764デフォルトの名無しさん (ワッチョイ 7f36-C7Df)
垢版 |
2022/01/10(月) 21:54:22.23ID:m/qphNtT0
QTにしろ。
2022/01/10(月) 23:01:48.14ID:D1Hm/f4s0
Tは小文字だぞ
知ったかすんなw
2022/01/11(火) 00:59:23.51ID:URNa5l+z0
いちいち細けぇ野郎だな〜w
2022/01/11(火) 04:12:33.59ID:QiqLURfnd
tkは小室哲哉か?
2022/01/11(火) 07:21:13.40ID:nPpeX7vK0
木村太郎だろ
2022/01/11(火) 23:17:12.33ID:0f3O8y+q0
トレーニングキットでしょ? 80
2022/01/11(火) 23:44:09.85ID:MGrX74j00
増大させる奴
2022/01/12(水) 11:41:36.16ID:hMoRL2ipa
ティキンタ
2022/01/13(木) 18:42:43.70ID:+CQL4q470
なんも考えずに再帰呼び出しで書いたらいきなり動いたけど、
どういう仕組みが働いてちゃんと動いてるんだろう
2022/01/13(木) 19:00:29.29ID:q6M7AFsLM
GUIはelectron使っときゃええんや
2022/01/14(金) 00:38:45.01ID:iF8Upe/u0
>>772
普通にスタックに積んでいるだけだが
2022/01/14(金) 01:23:52.59ID:+n/xYV5M0
>>774
tailcallならスタックにも積まれないよ
2022/01/14(金) 01:41:09.38ID:Luq9ZJps0
>>772
SCEDマシンをpythonで書いてみたら?
2022/01/14(金) 08:23:35.77ID:XfI2EzDt0
再帰呼び出しであることをインタプリタが判断して、
関数の呼び方を変えてる、ということだよね

自分で自分を呼ぶなら判断は楽だろうけど、
下請け関数が間に入っても動くんだろうか
2022/01/14(金) 08:43:02.09ID:eZOTyzBHM
>>>772
ちょっと意味が分からないんだが
普通の関数が動くのに、再帰だと動かない可能性があったってこと?オーバーフローするほど繰り返し呼び出した場合のことを言ってる?
2022/01/14(金) 09:05:22.39ID:Luq9ZJps0
>>777
> 再帰呼び出しであることをインタプリタが判断して、
> 関数の呼び方を変えてる、ということだよね

違う
2022/01/14(金) 09:12:15.51ID:7NM9YyV4M
>>775
pythonってtail call optimizationやってくれるの?
2022/01/14(金) 09:32:22.79ID:xbhBMebC0
seleniumでpostなformの中にあるaタグをクリックしてページ推移したいけどできない

どうすればいいんだろう
2022/01/14(金) 09:45:50.27ID:xbhBMebC0
switch_to.frameで出来た
2022/01/14(金) 09:58:49.80ID:eZOTyzBHM
>>780
しないよ
2022/01/14(金) 12:57:35.86ID:Zj5eAB/cd
pythonの再起はコールスタック積み上げるだけ
2022/01/15(土) 10:51:50.83ID:JQMxAH+/0
seleniumでformに入れた値がおかしかった時にjsのalertを検知して例外をraiseさせる方法を調べていたら偶然if driver.current_url: passで発生することを発見した
何故か分かる人いる?
2022/01/15(土) 18:13:55.65ID:ac9mIAIx0
djangoのsqliteDBって外部ツールで覗いたり値の変更って出来ないかな?
2022/01/15(土) 18:15:49.58ID:4V2AJqIK0
SQLite3じゃないの?
dbファイルを覗けばみれるでしょ
2022/01/15(土) 18:18:01.05ID:oXGiUqfh0
何故そんな事しないといけないか、理解に苦しむ
2022/01/15(土) 18:19:40.27ID:4V2AJqIK0
じゃあもっと知識と経験積んでからきてください
2022/01/15(土) 18:24:08.30ID:ac9mIAIx0
>>787
ありがとうございます!
やってみます!
2022/01/15(土) 18:27:14.32ID:s73J29SX0
HeidSQLならSQLiteにも対応してたはず
2022/01/15(土) 18:34:17.25ID:qPYmJbcu0
個人でDB使って便利なことってどんなのがある?
2022/01/15(土) 19:18:01.65ID:ac9mIAIx0
できました!
ありがとうございました!
2022/01/15(土) 19:23:48.15ID:HfYS4cPS0
DB使うかどうかは個人、非個人関係ないよ
2022/01/15(土) 19:43:42.54ID:qPYmJbcu0
要は小規模なデータをDBで扱うメリットはあるのか
2022/01/15(土) 19:52:26.84ID:GGoI8wNF0
無理して使う必要ない
2022/01/15(土) 19:55:30.29ID:s73J29SX0
あるよ
2022/01/15(土) 19:59:41.33ID:HfYS4cPS0
小規模って言い方も抽象的すぎるけど
検索したいならDB使えばいい

あとDB使ったことないんだろうけど疑問の解消には使ってみるのが一番いいよ
2022/01/15(土) 20:01:37.68ID:oXGiUqfh0
掲示板システムをファイルとDBの二通り作って見たことがあるが
結果ファイルで作る方が作りが面倒で手直しするのも大変だった
2022/01/15(土) 20:08:08.86ID:s73J29SX0
ファイル操作による排他制御が簡単と言えるスキルある人にワタシハナリタイ
2022/01/15(土) 20:09:34.21ID:s73J29SX0
真っ先に浮かぶメリットは排他制御とソートアルゴリズムの再発明しなくて良いことだろうな
まーなれてくると色々あるから自分で調べてみたほうがいい
2022/01/15(土) 20:18:11.54ID:qPYmJbcu0
排他が必要になると思えないし、ソートはDBでなくても既にあるし

ツールが自分で使うデータをどうやって持つかだけの違いなら変わらないような
ユーザからのクエリに対して検索して答えを返す、みたいなのが作りたいならDBだろうけど
2022/01/15(土) 20:23:20.56ID:s73J29SX0
そりゃー思えるか思えないかは要件と君のスキル次第だからな
小規模でも排他の必要な分野はいくらでもあるし、大規模でもいらない案件も当然ある
行列レベルの排他でなくても、トランザクションとかかなり面倒な処理が楽にできる

自分で調べてみることをおすすめしてるんだけどここで断片的な知識を仕入れたいの?
2022/01/15(土) 20:23:54.05ID:oXGiUqfh0
やり方は色々あるわけで、その中から自分が簡単でやり慣れていると考える方法を選択すれば良いと思う
一人で使うシステムなら、排他は不要だろう
いろんなソート方法を選択できるようにしたいとなると、DBの方が簡単そうに思える
2022/01/15(土) 20:30:07.92ID:s73J29SX0
一人が使うシステムにも普通に排他処理が必要なものはあるぞ
排他の要不要はそんな観点で判断できない
何度も言うけど、ちゃんと体系的に自分で学んだほうがいい

まー思うのは勝手だけど^^;
2022/01/15(土) 20:33:59.83ID:qPYmJbcu0
結局、決め手になるのは規模で、
DBを使わない方が簡単に実装できても、データ量が大規模になると、
検索やらソートやらに時間がかかるのでDBの方が高速になる
でも個人でそんなデータは普通扱わないから、わざわざDBを使う分面倒なだけ

という思い込みがあるので、何か他にメリットがあるなら知りたいけど、
自分で調べたら(・∀・)ニヤニヤの一点張りで特に説明はできなさそう
2022/01/15(土) 20:38:28.44ID:s73J29SX0
あー知識をつまみ食いしたい人か^^;
簡単に想像できる範囲だと、マルチスレッドプログラムと組み合わせたり、定時処理を複数走らせたりすること考えてみるといいよ

DB勉強するならRDBから入るのがいいかなぁ。NoSQLから入ると色々理解できなくなる
2022/01/15(土) 20:40:23.05ID:8O4fjVX10
どっちも消えろ
2022/01/15(土) 20:42:10.97ID:qPYmJbcu0
なんかよく判らん絡み方してくるな
知らんなら知らんでいいよ
2022/01/15(土) 20:47:56.67ID:SUNY4hKu0
>個人でDB使って便利なことってどんなのがある?

こういうのってアンケートか大喜利かと思ったが
2022/01/15(土) 20:49:28.80ID:bDOo10k6M
>>806
使い方を覚える手間はあるけどデータアクセス部分を丸投げできるんだから規模小さくても楽だと思うんだが
2022/01/15(土) 20:52:15.90ID:s73J29SX0
つまみ食いもできないのか^^;
自分のPCで.sqliteがどれだけ使われてるか調べてみるといい
2022/01/15(土) 21:02:24.36ID:+xanVnpp0
>>811
小規模だと Excel の方が便利まであるからなぁ。
RDBだとテーブル定義からやらんとだし、まぁめんどくさいよね。
2022/01/15(土) 21:14:41.54ID:qPYmJbcu0
そうそう、それそれ
フリーソフトとか使うと、結構SQLiteを使ってるのがある
内部データの保存に使ってるんだろうけど、DB使うようなことか? と感じてる

pythonだったらpickleで済むのでは?
2022/01/15(土) 21:56:35.43ID:qPYmJbcu0
うちだとexcelですらなくて、ただのプレーンテキスト+エディタで管理してるな
50万行くらいあっても瞬時に検索してくれる
2022/01/15(土) 21:57:37.30ID:4V2AJqIK0
エクセルで50万行は読みたくないな
2022/01/15(土) 22:57:41.19ID:JjAKhaIN0
素でデータだけいれとくってなくて式やらはいるから万行超えデータはエクセルでやりたくないよね
とはいえエクセルのお手軽uiはありがたいけどね
あとは話しの出だしに戻ってdjangoで例えばあの管理機能をDB無しでってのはやりたくない
2022/01/15(土) 23:03:36.40ID:GGoI8wNF0
csvとpandaでいいじゃん
2022/01/15(土) 23:12:13.07ID:0C30o+w5M
csv+pandaとSQLiteって速度差結構あるんじゃないの?
2022/01/15(土) 23:15:33.93ID:oXGiUqfh0
プレーンテキストだと検索は楽かも知れないが、
更新したいときはどうするの?
2022/01/15(土) 23:17:11.76ID:qPYmJbcu0
更新は毎回全体を生成させてる
かなり無駄
2022/01/15(土) 23:23:35.51ID:Klhpd5Rk0
低級プログラミング話はもうお腹一杯です
2022/01/15(土) 23:28:10.96ID:XtDGDCrq0
sqliteなら別途DBサーバー建てる必要ないんだしそんな大仰に考えなくていいのよ
2022/01/15(土) 23:45:04.52ID:EjYm1enEM
>>813
Excelが便利だと思うならExcelでいいと思うよ

>>814
pickleと比較するレベルならpickleでいいと思うよ
2022/01/15(土) 23:57:29.43ID:iJzr35B10
ブラウザなど、多くのアプリがsqlite3 を内蔵している

データベースの方が、検索したい項目にインデックスを貼れば、検索性能が良い。
B+tree
2022/01/16(日) 00:40:03.94ID:pPgujsKI0
検索木自作しろ
2022/01/16(日) 01:54:33.85ID:XxuplMo00
Python×Excelで業務自動化!

ブッwwww
2022/01/16(日) 04:04:35.81ID:T486FPBl0
休日にID真っ赤にして楽しい人生送ってそうだよな
2022/01/16(日) 04:14:53.73ID:oc/LJM7J0
IDを赤くする能も無いか。。
2022/01/16(日) 05:02:15.29ID:JeHrwNko0
そして俺の質問は流れたのであった
2022/01/16(日) 06:28:01.57ID:JeHrwNko0
seleniumでfind_element_by関数排除ってマジかよ
迷走しだすとオワコンの合図だけど大丈夫か
2022/01/16(日) 10:53:58.88ID:EmTsiZT20
>>826
洗濯機自作だと!?
833デフォルトの名無しさん (ワッチョイ 6e10-6KEr)
垢版 |
2022/01/16(日) 11:11:10.06ID:M5QOMeo90
find_element(by=‘xxx’)に統一されると何とか
2022/01/16(日) 13:02:21.17ID:tdI2bixr0
>>831>>833
やりたい事は分からんでもないけど
互換性の面で考えるとエライ事になりそうだな
2022/01/16(日) 15:52:52.53ID:goRiXQPd0
どうせ _compat とか付いた互換性維持のためのパッケージが作られる
2022/01/16(日) 16:40:29.53ID:IhI8UzoEd
互換関数自作しろ
2022/01/16(日) 17:47:00.51ID:EmTsiZT20
五感で乗り切れ
838デフォルトの名無しさん (ワッチョイ 9136-vRJH)
垢版 |
2022/01/16(日) 19:28:33.39ID:9K9mwOGs0
seleniumのプログラム初めて作ったけど、ネット情報と感でなんとかなるなw
「XPATHってどうやって探すんだよ」ってブラウザをいじり回してたなw

youtubeを自動で操作するプログラムを作った。
2022/01/16(日) 19:55:01.90ID:QQ2GlIIB0
何をするにもネット情報が頼り
毎回ぐぐるのも手間だから自分用にまとめた情報を参照するけど、
見ないで書けない以上ネット情報に頼ってるのと同じ

そら何でも細かく具体的に書けば読めるコードになるけど、覚えるのは無理
2022/01/16(日) 20:25:20.46ID:uN+C8rgh0
>>839
ラップかよ
2022/01/16(日) 20:27:20.10ID:QQ2GlIIB0
例えば、except XXX: に何を書くかも、
とりあえずエラー出してみてコピペする方式でしか作れない
そんなもん正確に記憶してる訳がない
842デフォルトの名無しさん (ワッチョイ 8d33-9BXF)
垢版 |
2022/01/16(日) 22:41:38.31ID:7yetUIaG0
別にググってでも書けるならいいじゃない
ちゃんとググった後に公式ドキュメント見て裏付け取る事さえ忘れなければだけど

それに、自分の知識にある情報がいつまでも正しいとは限らないし
2022/01/16(日) 22:44:38.30ID:QQ2GlIIB0
ぐぐれない環境で親切なエディタも無しに書けと言われても書けない
レガシーな言語はそれでも書けた
かなり慣れてもマニュアルみながらガンダム操縦しないといけない
2022/01/16(日) 22:49:15.12ID:PmXwxgCd0
kivy2.0、普通に実行はできるんだけど
ビルドが出来ないの困ったもんだ
2022/01/16(日) 23:17:08.81ID:IM8Jprt+0
tkinter, ウィジェットの上だけにマージンとかできればけっこうデザインできるんだが
padyとか両方に効いちゃう
2022/01/16(日) 23:57:47.02ID:RG8YDX1E0
>>838
XPath で作らない方がよい。
XPathは要素の順番で指定するから、順番が変わるとバグる

CSS Selector の方が、バグりにくい

E2E テストでは、Ruby のSelenium Webdriver, Capybara, Nokogiri、
JavaScript のCypress もある
2022/01/17(月) 06:01:14.38ID:4lMff3fz0
idとかないケースばかりで結局cssセレクターでも順番変わったらおかしくなるコードばかり書いてる
2022/01/17(月) 07:46:48.01ID:zhnOOb7Q0
xpathは属性での検索もできるしCSSセレクタの機能は包含していると思うが。
2022/01/17(月) 09:56:05.08ID:4lMff3fz0
未だに参照の仕様が分からない...
djangoでfor分を使ってmodelオブジェクトを作っていってそれを配列に入れていって、最後にDBに一括保存したいんだけど参照渡しならfor回す度に毎回オブジェクト上書きされるの?
2022/01/17(月) 10:35:40.33ID:u7InkFKc0
参照はwindowsのショートカットだと思えばいい
ショートカット経由でファイルを書き換えると
元のファイルの中身も書き換えられる
2022/01/17(月) 11:41:54.71ID:yVob9aV+M
>>849
array = []
for x in iterator:
__m = Model(x)
__array.append(m)

↑mは上書きされるけど参照関係ある?
2022/01/17(月) 12:22:45.63ID:G6emDPZd0
もし「参照渡し」だったら __m を上書きすると
append された後の「__mの参照」も上書きされるわけだから……

pythonのは いわゆる「参照の値渡し」なので大丈夫って言ってやるのが楽のよーな気がする
2022/01/17(月) 13:32:51.96ID:4lMff3fz0
分かったかもしれん
インスタンス化する時には暗黙的にnewをする事を思い出した
つまり>>851の場合はmは全部実態は別になるんだね?

そうじゃないと極端に使いにくすぎるもんな
2022/01/17(月) 13:37:15.96ID:eSi1/nEN0
慣例的に参照渡しという表現は「変数の参照」を渡す事を言う
通常変数が静的領域やスタックに実体を持つ値型の言語では。

しかしPython変数は全て参照型(C言語的にはヒープへのポインタ)
そしてPythonにC++の&やC#のrefに相当する参照渡しはないので
参照を格納している変数の内容を呼び出し先から変更は出来ない
ただし同じ参照(ポンイタ値)を経由する実体の操作は共有される

C# Doc曰く「参照渡しで渡すという概念と参照型の概念とを混同しないでください

>>853 Exactly.
2022/01/17(月) 13:47:46.96ID:W+/63TdwM
C++の&だって呼び出し側が書き換えられているように見えるのはポインタと同じようにアドレス値を渡してるからであって、"参照の値渡し"と変わらんのでは?
値渡しでない参照が使える言語なんてあるの?
2022/01/17(月) 14:36:13.35ID:eSi1/nEN0
>>855
本質はそうだけども、Pythonに変数の参照を渡す術がない
元々が参照型(ポインタ)、「変数」ではなく「実体」への参照が渡る
デリファレンスもなく代入は常に参照の割り当てで、元変数も書き換えない

C++やC#で言う参照渡しは変数への参照が与えられ、元変数自体を変更可能
元々が参照型やポインタの場合にはポインタのポインタ状態になる
857デフォルトの名無しさん (ワッチョイ a136-vRJH)
垢版 |
2022/01/17(月) 16:24:52.14ID:TnyU9nQo0
python で参照渡しにするなら、配列で渡すしかないって事だよね。
2022/01/17(月) 16:54:46.12ID:vsIyvMGR0
Cを始めたばかりの頃ポインタめんどくせえと思ったけど明示的だし楽だったんだなあ
2022/01/17(月) 18:41:48.63ID:f9N3zclk0
デリファレンスかったるいからC++の参照がええわ
とゆうかいちいち書くのメンドイから参照ができたんでしょ
知らんけど
2022/01/17(月) 18:49:49.25ID:aiJhHrOhM
言語仕様としての参照とで混同してる
指してるものはいっしょやけど
861デフォルトの名無しさん (ワッチョイ a136-vRJH)
垢版 |
2022/01/17(月) 18:49:50.03ID:TnyU9nQo0
昔はリターン値が一つしか返せなかったけど、今は複数個返せるから参照渡しもあまり意味がないんだろ。
まあ、どデカい配列とかを渡すときは、参照渡しは意味あるだろうけど。
2022/01/17(月) 19:59:12.78ID:VZGb/HpKd
>>853
そう、だから
>>573
863デフォルトの名無しさん (ワッチョイ f901-yENW)
垢版 |
2022/01/18(火) 22:52:58.92ID:aXITGa9l0
私もここに常駐して皆さんぐらいのレベルに早くなりたいです。
2022/01/18(火) 22:58:28.99ID:5DfJOP/a0
作りたいものがあるとすぐだよ
過去に別の言語で作ったものの移植でもいい
865デフォルトの名無しさん (ワッチョイ 6e10-6KEr)
垢版 |
2022/01/19(水) 00:31:22.28ID:bCy7bu6O0
>>863
志が低過ぎる
2022/01/19(水) 00:50:38.28ID:b3RzcCJx0
揚げ足取りは世界一
2022/01/19(水) 02:00:34.92ID:ND4+DLhI0
ここ初心者向けスレじゃないの?
最近見始めたから知らんけど
2022/01/19(水) 06:37:45.42ID:VHoBV8Rl0
日本語初心者の質問は多いな
2022/01/19(水) 08:08:07.59ID:Jw4BGPpA0
Pythonの試験増えたね
https://codezine.jp/article/detail/15471

https://it.impress.co.jp/articles/-/22573
2022/01/19(水) 08:22:24.60ID:ov2X7pn30
ぐぐってコピペするとか、作っておいた虎の巻を参照するとか、
ツールが候補を教えてくれるとか、そういう作り方をするのが常道なので、
記憶だけで答える試験は制約が大きい

持ち込み可(google含む)なら意味ある
2022/01/19(水) 09:26:51.15ID:VHoBV8Rl0
そうなんだよね
記憶だけで答える試験は年寄りには不利だ
試験問題難しくて良いから資料持ち込みはありだよな
2022/01/19(水) 10:28:34.76ID:9a+02jGb0
公式サイトのみ閲覧OKで
2022/01/19(水) 11:11:54.51ID:ND4+DLhI0
Pythonの試験www
情弱オブ情弱www
2022/01/19(水) 11:17:13.44ID:Gn+IJNl2a
基本情報処理とかな
2022/01/19(水) 11:32:28.79ID:ov2X7pn30
まあ、自費で受けるようなもんじゃないから何でもいい
2022/01/19(水) 12:47:17.28ID:R+1XHYGi0
ベータ試験って何か合格しても嫌だな
877デフォルトの名無しさん (オイコラミネオ MMd5-0hlo)
垢版 |
2022/01/19(水) 13:22:05.24ID:WxcLvF91M
python自体よりファイルのパスの指定方法とかライブラリのデータはどこへ格納してどうやって指定するの?とかpythonのバージョン合わせるのどうやるのとかpipやenvってどういう事?とか色々そっちの方が難しい
2022/01/19(水) 21:07:39.29ID:MU1QvUuQ0
Python以前にターミナルをちゃんと使えている人どれだけいるのって感じはする。
pythonを教え込まれた学生は脳死でAnaconda prompt開いてpython filepathすることしかできん。
カレントディレクトリ、相対パス、基本コマンドを全く知らないのに実行してるのはむしろ恐怖。
データサイエンスやりたいのはわかるけどpowershell教えたほうが生産的なんじゃないか
2022/01/19(水) 21:10:38.05ID:64KTdvqJ0
さすがにpsはない
2022/01/19(水) 21:21:07.11ID:MU1QvUuQ0
>>879
プリインストールで非プログラマでも使えるツールの中ではめちゃくちゃ使えると思うけどなぁ
CLIめちゃくちゃ大事なのに、Pythonの入門書でも何でも説明されている方が珍しいし、されていてもイケてないコマンドプロンプトだったりで頭抱える
2022/01/19(水) 21:34:56.27ID:ov2X7pn30
形式的にはCLIだけど、ガチでコマンドタイプしてpython使う奴はいない
別の手段で同じことを実現する
そんな古くて面倒なことはみんな忘れるのがpython
882デフォルトの名無しさん (ワッチョイ 6e10-6KEr)
垢版 |
2022/01/19(水) 21:51:30.92ID:bCy7bu6O0
ps使うぐらいならwsl入れろ
883デフォルトの名無しさん (ワッチョイ a136-vRJH)
垢版 |
2022/01/19(水) 21:52:01.11ID:XG/tmssg0
windowsじゃ無くてlinuxから入るべきだなw
2022/01/19(水) 22:24:33.31ID:uUfRyRoD0
PSみたいなゴミ導入するぐらいなら、最初からbash使わせろやって話だな
2022/01/19(水) 22:26:12.88ID:VHoBV8Rl0
>>881
その物言いだとbase環境だけで使ってる感じだなw
2022/01/20(木) 08:31:22.24ID:ESGatvgk0
要するに初心者と意識低い系はちゃんとmacを使えって事だな
2022/01/20(木) 08:38:55.47ID:fLKXds2N0
macの人はツールを使って何かを作る専門で、
仕組み自体を作ったりはしないのでは
2022/01/20(木) 10:17:40.64ID:VZGuEXXO0
公式サイトの1/14のニュースにはM1 Macで開発したとあるけどな
MacBookのトラックパッドが満足に動けばLinuxでもいいんだけどね
どうせ動作確認、CIはコンテナでするから端末はLinuxじゃなくても困らない
889デフォルトの名無しさん (オイコラミネオ MM29-o6XP)
垢版 |
2022/01/20(木) 11:52:16.52ID:AnlXyinuM
コマンドライン分からん思ってたがガラケーのメニュー入れ替えたり、iPhone3GS脱獄したりネット見ながら色々やってる間に知らないうちに触ってたんだな
無知とは恐ろしい
2022/01/20(木) 13:09:45.12ID:ZN8PVu5V0
たしかに無知だな
何も身についてない証拠
2022/01/20(木) 18:42:45.54ID:ESGatvgk0
俺も無知だからおk
それよりクラスごとtryで囲っていい?エラー吐いて終わったときにある処理をしたいんだが
2022/01/20(木) 18:57:01.24ID:ZN8PVu5V0
そのエラーとやら置きそうなとこだけtryで囲むのが普通
まぁでもいいんじゃない?クラスごとの意味が分かんないけど
やってみれば?
2022/01/20(木) 18:58:09.69ID:NuVLsXYX0
class定義をtryで囲むって事?
それだと定義時のエラーを捕まえるだけでインスタンスのエラーは捕まえられないよ
2022/01/20(木) 19:07:33.03ID:29Oj4UZnM
デコレータでうまくやれんかね
2022/01/20(木) 19:23:33.34ID:ZN8PVu5V0
クラス定義時のエラーって何
文法エラー?
2022/01/20(木) 20:27:41.96ID:ESGatvgk0
やりたいのはseleniumのdriverを、どんな例外が発生した場合でもclose()すること
ググったらwith使うパターンが良さそうかなとも思ったけど@contextmanagerを使うパターンもあるみたいだけどどっちもよく分からない
とりあえずwithを使えるのは内部に__enter__と__exit__を持つクラスとメソッド?なのは分かった

俺が作ったモジュールではdriverを引数としていくつかのメソッドに渡したりreturnしたりしてるけど機能するんだろうか
試してみようかな
2022/01/20(木) 20:45:32.87ID:3Ud5USvA0
seleniumのインスタンスが対象メソッド外からでもアクセスできるなら
>>894 のいうとおりデコレータで表現すればコードのスマートさが保てる
2022/01/20(木) 20:54:37.26ID:ZN8PVu5V0
withもデコれーたも分かってないなら
一連のdriver.〜を素直にtry catchしよう
2022/01/20(木) 21:16:34.29ID:ESGatvgk0
今流れでクロージャについて調べてる
最終的にはwith使う事になりそう
2022/01/20(木) 22:05:27.10ID:OJXHwtm40
close()じゃなくてquit()ならcontext manager実装されてるよ

with webdriver.Chrome() as driver:
__do_something_with(driver)
2022/01/21(金) 00:28:30.50ID:lqkWi8hl0
>>900
これdriverをreturnする関数作って試してるけどurllib3.exeptions.MaxRetryError出て上手く行かんわ

ちょっと調べないと
2022/01/21(金) 08:51:33.02ID:mgMk+9mL0
>>852
参照はポインタを抽象化した概念で値はない
2022/01/21(金) 08:55:24.44ID:mgMk+9mL0
>>861
関数の副作用として破壊的操作が必要な時
コピーではなく参照による引数渡しは必須の機能だ
なければ純粋関数型言語と同じになる

今どきのスクリプト言語は基本型以外ほぼすべて参照による引数渡し
2022/01/21(金) 15:30:08.32ID:lqkWi8hl0
>>901
これ結局djangoのBaseCommand継承クラスのhandleメソッド内でやったら出来た
原因不明
あとkeyboardinturreptでは機能しないんだな
2022/01/21(金) 17:24:35.56ID:Llt7QcId0
>>904
django?
テストコードでselenium使ってるならsetupとteardownで良くない?
2022/01/21(金) 17:46:15.09ID:lqkWi8hl0
>>905
いや普通のデータ収集
2022/01/21(金) 18:05:24.47ID:1bXl6qPl0
スクレイピングって結局、htmlを正規表現で解析した方が正確で速かったりする
自由に書けすぎるものを型にはめても絶対溢れる
2022/01/21(金) 18:13:55.00ID:pFjUBAs70
画面遷移でリクエスト構築するの面倒だしすぐbot判定されそう
2022/01/21(金) 18:27:50.59ID:uYMfMtVk0
なんで急にスクレイピングの話になったんだ?
大丈夫か?
910デフォルトの名無しさん (ワッチョイ f901-Nrkm)
垢版 |
2022/01/22(土) 14:06:13.46ID:P7lfAWJG0
args = sys.argv
id = args[1]
【エラー】
IndexError: list index out of range

★”id”には何が入るのですか、どなたか教えてくれませんか。
2022/01/22(土) 14:46:36.26ID:y3RiWYQh0
>>910
https://docs.python.org/ja/3/library/sys.html#sys.argv
2022/01/22(土) 14:50:38.03ID:xJ8GN0MU0
args = sys.argv[1:]
for arg in args:
print(arg)

こんな風にすると安全
2022/01/22(土) 15:10:05.08ID:QWAkInsq0
どっちも同じエラーになると思うけど、どう安全?w
2022/01/22(土) 15:12:07.97ID:QWAkInsq0
と思ったけど長さ0のリストにどんなスライスかけても同じもの返すのか
2022/01/22(土) 15:48:27.81ID:y3RiWYQh0
お前も落ち着いて>>911を読め
2022/01/22(土) 20:19:52.93ID:dTW6+L1p0
idに入るのはidなんじゃないか?
中身を聞かれてもそのスクリプトがどんな用途なのか知らないと答えようがない
2022/01/22(土) 20:29:14.09ID:xJ8GN0MU0
argcは無いんだからargvという名前は変だよな
918デフォルトの名無しさん (ワッチョイ 8736-3ds2)
垢版 |
2022/01/22(土) 20:30:52.89ID:j0z/5Y+Y0
って言うか、エラーが出てる時点で何も入らないんじゃねえの?
2022/01/22(土) 20:33:00.49ID:QWAkInsq0
上のやつのことなら、なにも入ってない
なんかいれる前に、配列外へアクセスしたことによるエラーでプログラムが落ちた
2022/01/22(土) 21:54:45.25ID:GJqn9WH1M
>>917
配列なんだし別におかしくないと思うが
2022/01/22(土) 21:58:36.37ID:f0jQfsum0
直後に
dir(id)
すればわかるが
idはそもそも組み込み関数なので変数名に利用すべきじゃない
2022/01/22(土) 22:03:45.12ID:ZquoYFuO0
>>920
vectorのvだもんな
2022/01/22(土) 22:11:38.24ID:v6co4ARz0
argument variableじゃなかったん?
2022/01/22(土) 22:26:58.29ID:QWAkInsq0
id関数って動くコードで使うこと殆んどないし別に…
ただidって言葉が自然言語として意味がバカ広くて
あとから読んだ時謎の変数に見えてくるのは容易に想像できるから
そういう意味ではおすすめできない
2022/01/22(土) 22:30:08.60ID:xJ8GN0MU0
listとarrayとvectorの違いを述べよ
2022/01/22(土) 22:31:23.98ID:y3RiWYQh0
未だに>>910分かってるやつ
俺と>>912しかいないの草
2022/01/22(土) 22:53:38.08ID:f0jQfsum0
>>926
第1引数必須のプログラムなら元コードがシンプルで素直
ヘルプだしたりフォールバックするなら例外補足したらいいんだし
>>912 は可変長を考慮してるんだと思うがさらに解析が必要だし
なら最初からargparse/getoptつかえばってなる
2022/01/22(土) 23:01:44.46ID:xJ8GN0MU0
引数で指定するものなんて処理対象だけだし
複数あればずらずら並べるだけ

設定と処理対象を混ぜる方式は面倒なだけなので、
そっちは別で指定して configparser で読み込む
2022/01/23(日) 00:10:54.70ID:KYoztYh80
>>927
俺じゃなくて>>910に言えよ
>>921も回答になってないけどw
930デフォルトの名無しさん (JP 0H8f-vKrE)
垢版 |
2022/01/23(日) 00:37:48.64ID:X663g2ceH
ser = serial.Serial('COM4', 9600, timeout=1)
【エラー】
could not open port 'COM4': PermissionError(13, 'アクセスが拒否されました。', None, 5)

どなたかおしえていただけませんか...
2022/01/23(日) 00:50:09.34ID:KYoztYh80
COMポート番号が合ってるか確認する
管理者権限で実行してみる
他にシリアル使ってるプログラムが無いか確認する
932デフォルトの名無しさん (JP 0H8f-z3gx)
垢版 |
2022/01/23(日) 01:17:24.35ID:X663g2ceH
>>931
管理者権限で実行したところ同じエラーが出ました。
また、COMポート番号はデバイスマネージャーからポートのところを見たらそれしかなかったので間違っていないと思います。
他にシリアルを使っているプログラムがあるかは、デバイスマネージャーのポートの詳細
設定のポートを選ぶ部分で使用中になっていなかったので大丈夫かなと思ったんですけどそれじゃ不十分だったりするんでしょうか...
2022/01/23(日) 01:32:18.11ID:KYoztYh80
>デバイスマネージャーのポートの詳細設定のポートを選ぶ部分で使用中になっていなかった
これは現在使用中って意味じゃない(現に自分にPCには存在しないポートも(使用中)と出る)
閉じていいアプリは全部落としてやってみそ
934デフォルトの名無しさん (JP 0H8f-z3gx)
垢版 |
2022/01/23(日) 01:37:35.86ID:X663g2ceH
>>933

ありがとうございます!やってみます!
935デフォルトの名無しさん (JP 0H8f-z3gx)
垢版 |
2022/01/23(日) 01:40:22.24ID:X663g2ceH
VScode以外落としてみたんですけどダメでした...泣
2022/01/23(日) 02:00:02.91ID:KYoztYh80
インタラクティブモードでやってる?
ちょっと試したけど既にポート開いてるなら2回目は PermissionErrorで失敗するみたい
serの中身がSerial<id=0x・・・・, open=True>みたくなってない?
937デフォルトの名無しさん (JP 0H8f-z3gx)
垢版 |
2022/01/23(日) 02:17:56.46ID:X663g2ceH
インタラクティブモードでやってなかったので今やってみたらこんな風に出ました
Serial<id=0x20237cc3880, open=True>(port='COM4', baudrate=9600, bytesize=8, parity='N', stopbits=1, timeout=1, xonxoff=False, rtscts=False, dsrdtr=False)
2022/01/23(日) 02:26:45.29ID:KYoztYh80
あごめん、言い方悪かった
別にインタラクティブモードじゃなくてもスクリプトでもいいけど
すでに開いてるポートを開こうとするとエラーになるんで
ser.close()せずに再びser=serial.Serial(..)してんじゃない?

>>> import serial
>>> ser=serial.Serial('COM8')
>>> ser
Serial<id=0x2992c530940, open=True>(略
>>> ser=serial.Serial('COM8')

serial.serialutil.SerialException: could not open port 'COM8': PermissionError(13, 'アクセスが拒否されました。', None, 5)
>>> ser.close()
>>> ser
Serial<id=0x2992c530940, open=False>(略
>>> ser=serial.Serial('COM8')
>>> ser
Serial<id=0x2992c043970, open=True>(略
>>>
939デフォルトの名無しさん (JP 0H8f-z3gx)
垢版 |
2022/01/23(日) 02:49:00.53ID:X663g2ceH
なるほど!
ありがとうございます。2つのファイルを実行して、どちらもserを使うので2回開こうとしてました!どこかで閉じるようにしてみます
940デフォルトの名無しさん (ワッチョイ c701-z3gx)
垢版 |
2022/01/23(日) 03:03:09.94ID:MLqhVhgC0
>args = sys.argv
>id = args[1]
>【エラー】
>IndexError: list index out of range

>>910の追加項目
私の機械:windows10 Python 3.9 
目的:SQLiteへデータを登録しようとするPG作成中です。
”id"を目的のサンプルPGの一番最初の部分です。
どなたか教えてくれませんか。
941デフォルトの名無しさん (ワッチョイ 8736-3ds2)
垢版 |
2022/01/23(日) 06:46:02.96ID:PgBhXr380
シリアルポートなんて、いまどき使うんだ。
RS232か、昔はよく使ってたなw
942デフォルトの名無しさん (ワッチョイ 8736-3ds2)
垢版 |
2022/01/23(日) 06:56:09.26ID:PgBhXr380
>>940

sys.argv[0] が プログラム名
sys.argv[1]が 第一引数。

プログラム起動時に引数を指定してないんじゃねえの?

prog id の所を prog で起動してるとか。
2022/01/23(日) 10:23:54.10ID:bZmeHR4M0
マイコン工作するとUSBで接続して仮想シリアルポートにして通信するのが楽
2022/01/23(日) 10:30:27.98ID:gURfbQct0
>>940
せっかく>>911が正解を書いてくれてるのに無視?
この程度が理解できないならあきらめた方がいい
2022/01/23(日) 10:41:43.43ID:bZmeHR4M0
いや、判らん状態で>>911読んでも判らんだろこの書き方では
サンプルや動作結果の一つでも無いと

そもそも[0]が本体の名前になるというのが、悪しき伝統な気がする
直感的には1つ目の引数がargv[0]であるべき
でも自分が誰か知りたいとかフルパスを知りたいとかの用途にも応える為に、
[0]にプログラム名を割り込ませた
そのせいで、大抵の場合は先頭を除去する処理が増えた
2022/01/23(日) 10:47:56.63ID:zjhM3+vK0
>>945
一回で覚えろ
2022/01/23(日) 10:59:24.82ID:v6WsaUYQ0
>>945
ターミナルに打った文字列まんまでわかりやすいと思ってたんだがそうでもないのか
2022/01/23(日) 11:04:06.14ID:bZmeHR4M0
コマンドラインそのものは、argumentではないんだよな
function(x)があって、functionの引数はと聞かれてfunction, xと答えるようなもの
2022/01/23(日) 11:07:00.46ID:abLOZeidM
正解は>>918だろ
>>911は教え方を知らないアホ
2022/01/23(日) 11:11:17.46ID:bZmeHR4M0
第1文の
> Pythonスクリプトに渡されたコマンドライン引数のリスト
だけ読めば、[0]が1つ目の引数だと解釈して当然

第2文の
> argv[0] はスクリプトの名前となりますが
これがいきなり第1文と矛盾していて、そのことに配慮していないのが問題
2022/01/23(日) 11:26:34.23ID:KYoztYh80
>>942
正解

>>949
アホ
2022/01/23(日) 11:36:42.70ID:Q5TMjrhP0
プログラミング言語を初めさわり始めたならあるあるの話題かもしれんね
cやら他やってからならコイツもかよって思うだろうけど
2022/01/23(日) 11:39:23.65ID:bZmeHR4M0
遠い昔の記憶
ARGC, ARGVの仕様を初めて知った時、何だそれ変なのって絶対思った筈なんだよな
そこからもう変えられない
少なくとも、argvの文字列を使う限りは同じにしないと余計に混乱する
そういうものだとして飲み込んでもらうしかない
2022/01/23(日) 11:47:46.49ID:1eJFWKb80
動かすOSによっても変わったりするよな
2022/01/23(日) 12:56:03.94ID:j6A/deIZM
やっぱりCLIの知識は必須だわな
2022/01/23(日) 13:09:06.98ID:IUy5ZWEo0
CLIというかUNIX/C
2022/01/23(日) 13:29:16.58ID:FdaSB2MR0
psおじさんに隙を見せない完璧なブロック
2022/01/23(日) 13:53:33.09ID:AR98MafLM
>>912
安全とは??
2022/01/23(日) 14:18:45.74ID:Yq0H6/EN0
以下envpについて小一時間説教を
2022/01/23(日) 14:21:29.12ID:j6A/deIZM
知らんけどとりあえずidを引数に期待しているんだからこれを叩いているプログラムやら手入力するidが存在するはずなんで作った人に聞けとしか言えないんだよな
2022/01/23(日) 15:26:37.17ID:gURfbQct0
CLIはDOS/Windowsが特殊だよな
Unix系ならviとviewとかを考えれば、argv[0]が本体を指しているのが当然と思うし
2022/01/23(日) 15:49:30.66ID:rkomqFH+0
winもDOSもそうじゃん
963デフォルトの名無しさん (ブーイモ MMcf-7oyM)
垢版 |
2022/01/23(日) 17:28:36.97ID:wYttYp2UM
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^

あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!

くそチョンw
くそチョンはウンコを食べる糞食人種w
朝鮮人はゲリ便をじゅるじゅると
うまそうに食うw

在日は強姦を繰り返す犯罪者!
皆殺しにすべし!
2022/01/23(日) 18:51:18.43ID:waRwT8NZ0
「私の機械」でスルー決定
965デフォルトの名無しさん (ワッチョイ e72c-FE29)
垢版 |
2022/01/23(日) 19:31:56.43ID:c39OPcdQ0
日本人ではないんだろうなとは思う
あとこのレベルでDBに接続しちゃいかん
まず変数名を_idにするところからやり直し
2022/01/23(日) 19:40:32.07ID:1eJFWKb80
やり直しというより、諦めさせる方が本人のためになる
2022/01/24(月) 03:47:21.15ID:VeWznQkJ0
Python では、
sys.argv[0] が プログラム名
sys.argv[1]が 第一引数

一方、Ruby では、実行するスクリプトファイル名は、ARGV じゃなく、$0 に入る

ruby script.rb 引数1 引数2
ARGV[ 0 ]・[ 1 ] は引数

script.rbの内容が、以下の時、
p $0, ARGV[ 0 ], ARGV[ 1 ]

ruby script.rb 123 abc
と入力すると、

"script.rb"
"123"
"abc"
968デフォルトの名無しさん (ワッチョイ c701-z3gx)
垢版 |
2022/01/24(月) 20:55:14.10ID:6lZDYIjP0
912>にすると何も表示されませんでした
911>読んでみたのですが意味が分かりませんでした、すみません。
924>id関数ではなく文章の中にある変数見たいです?
927>意味はよく分らずargparse/getopt今後使ってみます。
942>sys.argv[0] が プログラム名、sys.argv[1]が 第一引数見たい?。
945>そもそも[0]が本体の名前になるというのが、悪しき伝統な気がする
直感的には1つ目の引数がargv[0]であるべき
でも自分が誰か知りたいとかフルパスを知りたいとかの用途にも応える為に、
[0]にプログラム名を割り込ませた
そのせいで、大抵の場合は先頭を除去する処理が増えた
948>argumentではないんだよな
950>第1文の> Pythonスクリプトに渡されたコマンドライン引数のリスト
だけ読めば、[0]が1つ目の引数だと解釈して当然
第2文の
> argv[0] はスクリプトの名前となりますが
これがいきなり第1文と矛盾していて、そのことに配慮していないのが問題
953>ARGC, ARGVの仕様を初めて知った時、何だそれ変なのって絶対思った筈なんだよな
そこからもう変えられない
少なくとも、argvの文字列を使う限りは同じにしないと余計に混乱する
そういうものだとして飲み込んでもらうしかない
960>知らんけどとりあえずidを引数に期待しているんだからこれを叩いているプログラムやら手入力するidが存在するはずなんで作った人に聞けとしか言えないんだよな
967>Python では、
sys.argv[0] が プログラム名
sys.argv[1]が 第一引数
一方、Ruby では、実行するスクリプトファイル名は、ARGV じゃなく、$0 に入る
ruby script.rb 引数1 引数2、ARGV[ 0 ]・[ 1 ] は引数script.rbの内容が、
以下の時、p $0, ARGV[ 0 ], ARGV[ 1 ]ruby script.rb 123 abc
と入力すると、
お宅の説明が一番わかりやすかったです、皆さんありがとうございます。
2022/01/24(月) 21:14:03.25ID:DKgAl10f0
アンカーの付け方も知らないとかマジで向いてないから辞めた方が良い
2022/01/24(月) 21:16:28.00ID:6XFpWFl/0
まずコマンドライン引数ってわかるか?
2022/01/24(月) 21:20:27.09ID:XO4cGfGE0
判らなくてもがんがん使っていく姿勢が大事
2022/01/24(月) 21:22:15.16ID:XO4cGfGE0
今ちょうどクラスオブジェクトの、
object['item']

object.item
の違いが酔って判らなくなったところ
973デフォルトの名無しさん (アウアウウー Sa4b-Tsl1)
垢版 |
2022/01/25(火) 00:39:21.55ID:YRL+3AJRa
requestを使ってbingの画像検索からセーフサーチを無効にして画像を拾いたんですが、async?q=おっぱい&safeSearch=offで無効にできません><
ブラウザ上でも試したのですが、edgeだけは無効にして検索できます
safeSearch=offの他に何が必要なのか分かる方教えください
2022/01/25(火) 01:06:39.93ID:3XZ1Qcwj0
バイthon?
2022/01/25(火) 07:29:31.18ID:FbGdwSQ50
>>973
1. www.bing.com (Cookie発行)
2. www.bing.com/settings.aspx?pref_sbmt=1&adlt_set=off&adlt_confirm=1&GUID=MUID (MUIDはCookie MUIDの値)
3. www.bing.com/images/search?q=検索文字列

いつ仕様変わるかわからんからSelenium等で操作する方が堅い
2022/01/25(火) 14:02:19.44ID:UK+wjF4W0
py関連だからスレ適合
977デフォルトの名無しさん (アウアウウー Sa4b-Tsl1)
垢版 |
2022/01/26(水) 06:09:37.21ID:osHVDAzya
>>975
レスありがとうございます!
無効にして画像収集できました
Pythonの話題からズレちゃうんですが、settings.aspxにクエリを渡すとかってどうやって調べるんですか?
2022/01/26(水) 16:30:23.64ID:DYVcmqpl0
djangoでmodelを使ってbulk_create()でDBに保存したいがリレーションが分からない

カラムが一つだけでフォーリンキーを持たないモデルaがあってモデルbとcはaをフォーリンキーで参照している

けどcはbも参照している

これだと例えばcは二重にaを参照することになるんじゃないの?
こんがらがってきた
2022/01/26(水) 17:48:16.53ID:2fTicUd70
djangoの話でもないしましてやPythonの話でもない
リレーショナルデータベースの勉強しなさい
980デフォルトの名無しさん (ワッチョイ 4736-OMe5)
垢版 |
2022/01/26(水) 17:51:16.76ID:a2ABcE+j0
youtubeにpython、C、 X86 Assm で同時にプログラムを書き始めてどれが一番早く書けるか、実行はどれが一番早いか。
を比べる動画があった。

まあ、当然 python >= C >> assm ソース制作時間。

assm >= C >>>> python 実行時間。

だけどねw

X86 assmでプログラムが書けるのがカッコいいよね。
2022/01/26(水) 17:53:00.59ID:DYVcmqpl0
>>979
カスみたいな答えいいんで真面目に答えてください
2022/01/26(水) 17:55:01.25ID:Iww1vf4C0
この質問文言からだと、これが最適解だと思う
2022/01/26(水) 18:21:30.38ID:EasTiWyD0
bulk_create関係あんの?
2022/01/26(水) 18:23:10.64ID:XFmf31cH0
カスみたいな答えが良いとリクエストしてるぞ
2022/01/26(水) 18:25:43.41ID:/+UFoYsq0
>>978
cのレコードとcが参照してるbのレコードが
必ず同じaのレコードを参照する関係の場合は非正規形になる
ビジネスルールの観点と意図的に非正規化するかどうかという技術的な観点から設計判断が必要
2022/01/26(水) 18:31:37.21ID:EasTiWyD0
自分が訳わからずリレーション張ったなら間違い
誰かが張ったのをみたならオプションなどみてそのほかの意味を考える
2022/01/26(水) 19:47:04.47ID:6lp7RiSR0
pythonは計算が遅いけど、numpyを使えば高速化できる
そして、numpyが要るような高度な計算はアセンブラで書くのは不可能で、
コーディングはC言語よりも速く、実行速度がC言語と同じなら、
それはもうpython一択なのでは
2022/01/26(水) 19:55:45.82ID:HhYkIzhz0
        ____
        /     \
     /   ⌒  ⌒ \   何言ってんだこいつ
   /    (●)  (●) \
    |   、" ゙)(__人__)"  )    ___________
   \      。` ⌒゚:j´ ,/ j゙~~| | |             |
__/          \  |__| | |             |
| | /   ,              \n||  | |             |
| | /   /         r.  ( こ) | |             |
| | | ⌒ ーnnn        |\ (⊆ソ .|_|___________|
 ̄ \__、("二) ̄ ̄ ̄ ̄ ̄l二二l二二  _|_|__|_
2022/01/26(水) 20:01:37.42ID:xSTWaWcL0
最速のpythonで3Dゲームでも作るか
2022/01/26(水) 20:05:29.66ID:Iww1vf4C0
6Gの基幹システムはこれで決まりだな
2022/01/26(水) 20:13:21.40ID:DYVcmqpl0
次のバージョンで速くなるらしい
2022/01/26(水) 21:15:39.89ID:dhhZJlzR0
>>978
まずはリレーションの正しい意味を説明している本を探して勉強する。ネタとかじゃなくて。
2022/01/26(水) 23:41:44.44ID:e2k0MxNT0
Repl.itは、リンターやデバッガーからサードパーティのパッケージ、ホスティング、デプロイまで、
すべてを備えた、ブラウザー内の完全な共同クラウド開発環境です

以下のようなテンプレートがあります

React, Vue.js, Django, Node.js / Express
個人向けブログサイト、ポートフォリオサイト

A-FrameによるVRプロジェクト

p5.js / Phaser.js用のゲーム開発
Three.jsによる3Dコンテンツの作成

WebGL なら、Three.jsだろ?
2022/01/27(木) 17:01:17.18ID:CDh87jZI0
次スレ(再利用)
Pythonのお勉強 Part66
http://mevius.5ch.net/test/read.cgi/tech/1636970383/
2022/01/27(木) 17:01:27.52ID:CDh87jZI0
2022/01/27(木) 17:01:38.89ID:CDh87jZI0
2022/01/27(木) 17:01:49.50ID:CDh87jZI0
2022/01/27(木) 17:02:21.31ID:CDh87jZI0
2022/01/27(木) 17:03:23.88ID:CDh87jZI0
次スレ(再利用)
Pythonのお勉強 Part66
http://mevius.5ch.net/test/read.cgi/tech/1636970383/
2022/01/27(木) 17:12:24.85ID:jVjn5byT0
質問いいですか?
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 76日 9時間 24分 14秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


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

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

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

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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