◎正当な理由による書き込みの削除について: 生島英之とみられる方へ:
Pythonのお勉強 Part72 ->画像>2枚
動画、画像抽出 ||
この掲示板へ
類似スレ
掲示板一覧 人気スレ 動画人気順
このスレへの固定リンク: http://5chb.net/r/tech/1703659345/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。
!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る「横着」禁止)
https://techiedelight.com/compiler/ Run Code機能あり。
http://ideone.com/ デフォ設定がCなので、Pythonするには言語種選択ボタン押下がピコ手間かも。
http://pastebin.com/ まずまずシンプル。
http://dpaste.com/ とてもシンプル。消えるまでの日数は十分長ーく指定のこと。
◇Pythonオフィシャルサイト http://www.python.org/
◇Pythonドキュメント https://docs.python.org/ja/3/
◇まとめwiki http://python.rdy.jp/
※前スレ
Pythonのお勉強 Part71
http://2chb.net/r/tech/1695168821/
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured ●関連スレ● 自称初心者は↓へ
【まず1嫁】くだすれPython(超初心者用) その59
http://2chb.net/r/tech/1689241721/ 次スレの建立は
>>985が挑戦する。(980通過して24h後も落ちなくなった)
### END of TEMPLATE ### ?
json.loads()で読み込んだすっごい深い階層のどこかにある特定のキーの中身を取り出すのはどうしたらいいだろう
前スレWindowsのショートカット(.lnk)はリンク先を呼び出すスクリプトだから
直接処理したいならLinuxと同じようにシンボリックリンクを作らないとね
って書いたけどバイナリ解析して取り出でWshShortcut呼ぶ必要が無くなるな
BeautifulSoupだと階層無視して検索とかできるけど、
あんな感じでキーは判ってるので構造に対して柔軟に取得したい
再帰で辞書かリストか判断しながら辿っていけばいいのは判るけど、
自分でいちいち書きたくない
いいね
globみたいに**で飛ばすのか
リストで返ってくるのがちょっと意外だった
古典的な方法として正規表現があるけど
それではだめなの?
htmlのスクレイピングでも、こんなもん直接正規表現で抽出した方が早い、
という局面はよくあるけど、回り道して正攻法でやった方が結局うまく行く
XPathを模したJSONPathってのがあって
Python用のモジュールもあるからそれのが潰し効く
Ruby なら、dig で、
配列はインデックスで、ハッシュはキーで指定できる
require 'json'
# 改行を削除する。削除しなくても同じ結果
json_str = <<'JSON'.delete( "\n" )
[{"あ":[{"い":1}, "x"]}]
JSON
p json_obj = JSON.parse( json_str )
#=> [{"あ"=>[{"い"=>1}, "x"]}]
p json_obj.dig( 0 ) #=> {"あ"=>[{"い"=>1}, "x"]}
p json_obj.dig( 0, "あ" ) #=> [{"い"=>1}, "x"]
p json_obj.dig( 0, "あ", 0 ) #=> {"い"=>1}
p json_obj.dig( 0, "あ", 0, "い" ) #=> 1
今からpyでGUIやるとしたら何がお勧め?
ちなみに社内利用のツール作りたい
PythonはGUIがとても弱い
これだけ流行ってもPythonでゲーム作る人少ないでしょう
GUIは簡単にやれるならやってみようと手を出したけど、
全然簡単じゃない上にやりたいのと違うのしかできない
どうせ自分しか使わないならGUIにする必要もない
ということで見限ってる
>>17 ライブラリが弱いって話だから大いに関係ある
目指すものによる
pygame(SDL)やEel(HTML)なんてのもあるし
copilotすげーな
もっと短くできない?って聞くと毎回短くなって勉強させてくれるわ
pysimpleguIってデフォルトのフォントサイズ変えらんないの?
いちいち設定するのめんどくせー
UIが欲しい訳でもないんだよな
設定やら入力はファイルから読み込むとかの方が楽に決まってる
動いてる最中に現在のステータスを表示させたり、
オプションをリアルタイムで変更したりしたい
CUIだと、コンソールにスクロールして表示されるのを目で追うとかになるし、
リアルタイムでの変更もできない
list1がインデックスのリストで、その[0:2]の内容をインデックスとした
list2の一部を取り出したい時はどう書いたらいい?
>>26 >動いてる最中に現在のステータスを表示させたり、
>オプションをリアルタイムで変更したりしたい
両方ともCLIでもできるでしょ
>>27 [list2[i] for i in list1[0:2]]
どういう形で取り出したいかとか
取り出した後にどう使いたいかで適切な方法は変わる
ああ、それだ
どうやってもループ的になるのは避けられないんだな
1行で書けるというだけで
def fill_rcsv(field, name, position):
candidate = search(name, field)
for position in candidate:
fill_rcsv(field, name, position)
要素だけ書くとこんな感じの再帰呼出しで、
複数回呼ぶとうまくいかない
for position in candidate[0:1]:
みたいに1回だけにするとばっちり動く
再帰で何かが上書きされてるんじゃないかと疑ってるけど、
そんな筈は無いし、何がおかしいんだろう
>>30 numpy使えば
arr2[arr1[0:2]]
>>31 何やりたいのか知らないけど引数のpositionが意味ないからそりゃ動かないだろうな
map(lambda x: list2[x], list1)
実際には終了条件の為にrestという変数も渡してる
fill_rcsv()の中でrest.pop(0)する
最初から空なら終了
呼び出しの時のrestを、rest.copy() にするだけで挙動が全然違う
再帰の時の引数にリストを渡した時の呼び出し元に対する影響がよく判らない
>>36 いや再帰どうこうの以前に
>>31見ただけでなんか設計おかしいのがわかるでしょ
candを計算するのにname, fieldしか使ってないのに
変数名positionをcandから取り出したやつで上書きしてイテレートしてる
副作用がばりばりあってそれでも想定通り動くコードなのだとしたらその部分だけ見せてもわかるわけないしどっちにせよおかしい
省いちゃったけど、positionはfieldを更新するのに使ってる
ループが1重ならちゃんと動作するので、設計自体はおかしくないんだけど、
2回目以降を呼ぶ時に前回の影響が何故か残ってるとしか思えない
>>36 >呼び出しの時のrestを、rest.copy() にするだけで挙動が全然違う
そりゃそうでしょ
>再帰の時の引数にリストを渡した時の呼び出し元に対する影響がよく判らない
再帰関係ないじゃん
引数にリストを渡した時の呼び出し元に対する影響がよく判らないのに
設計自体がおかしくないと思うのが間違い
そりゃそうでしょ、というのが全く実感できないんだよな
なんで動かないのか不思議で仕方ない
その根拠を知りたくて質問してるのに、
そんなの動かないよーだけでは同類
質問の仕方でpython弱いのが分かるレベルなのに
開き直って甘えてんなあ
teratailとかでそんな聞き方したらぶち殺されるぞ
あまりスレ民の優しさに甘えるなよ
Elixir の再帰では、リストの要素をすべて走査したら終了する。
引数には、accumulator・蓄積変数を持っている
リストを、[ head | tail ] に分解して、headを処理する。
tailを引数に渡して再帰する
終了条件は、tailが空[ ]になった時
[1, 2, 3] → [1,[2,3]] 1を処理
[2,3] → [2, [3]] 2を処理
[3] → [3, []] 3を処理
[] → 終了
再帰呼び出しがうまくいきません
・終了条件のための引数restは省略しています
・引数positionの参照は省略しています
・引数fieldの更新も省略しています
・引数positionの算出も省略
重要な部分が省略されてて不具合なんて分かるわけがない
Ruby のオブジェクトは、shallow copy だから、参照しかコピーされない。
内側のオブジェクトはコピーされずに、同一オブジェクトを使い回す
deep copy は難しい。
Python もそうなのかも?
添削を依頼してる訳じゃないんだよな
400行のコード貼ったって誰も読まない
ループじゃ無ければ動く、という部分をとっかかりに
はまりポイントが思いつく人だけ反応してくれればいい
今後もプログラミング続けるなら、まず質問する時に、後出し後出しで事故ってるとこをどんどん出すのはやめたほうがいい
教える側が普通に想像する事態について丁寧に説明しても、あとからあとから「いや、実はこうなんで」って出てくるなら、
どんな初心者の変なコードにも対応できる一般論や抽象的な話しかできなくなってしまう
そうなると有意義なアドバイスは難しい
それとは別に、ごくまともな指摘をもらっておいて
いや俺はわかってる、設計はあってる、でもなんかおかしい、俺は悪くない みたいなことを言わないほうがいい ムカつくし、単に嘘をついてるから
断片的な話だけで完全に設計間違ってることがわかるレベルで間違ってる
結論としては、deepcopy()で解決した
ピンと来た人いるかな?
>ループが1重ならちゃんと動作するので、設計自体はおかしくないんだけど、
>2回目以降を呼ぶ時に前回の影響が何故か残ってるとしか思えない
ここジワるな
リストをコピーして渡したいだけなのに、別モジュールのimportまで要ると思わんやん
ぐぐって見つかる再帰呼び出しの例は、再帰の魔法みたいな部分を強調したいので、
そんな面倒くさいケースは紹介しない
list.copy()というそれっぽいものが用意されていて、
大抵はそれでちゃんと別物として扱ってくれるので疑ってなかったのが敗因
浅いコピーと深いコピーの違いはぶっちゃけまだよく判ってない
ここまでで二重配列って説明一切出てないけどどうやってバグらせたかはわかるよ
そもそも再帰なのに入れ子のミュータブルをdeepcopyで渡さないといけない時点で書き方確実に間違ってるからどうでもいい
再帰関数の中でディープコピーとは
ヘビーなモノ作ってるねぇ
>>53 >浅いコピーと深いコピーの違いはぶっちゃけまだよく判ってない
もう答え出てるやん
荒っぽく説明すると
デスクトップのショートカットだけコピーするのが浅いコピー
ショートカットの中身までコピーするのが深いコピー
1. listを渡す
2. list.copy()した結果を渡す(shallow copy)
3. list.deepcopy()した結果を渡す(deep copy)
ショートカットだけコピーするのは1じゃないか?
だろうね
再帰でイミュータブル渡すならまずコピーでなく参照を渡して済むことがほとんどだし
そうじゃないならリストで渡さずタプルにして値で渡せばいい
あらゆる意味で変
>>26 遅レスだけどWebで良いやん
streamlitみたいなのでサクッと作れば良くね?
>>61 これ
もうネイティブアプリの時代じゃないんだよな
webなのかー
ブラウザでやること自体のメリットはあんまり感じないけど、
ハードルが低いなら巻かれてみよう
俺はネイティブ派だけどね
やはり速度的に全然違うし
ただプログラミングスタイルとしてネイティブは終わってる
入力と出力の部品が一揃いあって使い慣れたものが目の前にあるじゃろ
という話なんだろうな
いろんなプラットフォームを意識する必要もない
組み込みとか、金融とか、PGの仕事のジャンルという大きなくくりの一つとして、
webがあるんだよな
どこかの会社のホームページ作る仕事がそんなにあるの?
という話でもないらしい
何でもかんでもWebで作ろうとするのも何でもかんでもネイティブで作ろうとするのと同類
redditかなんかでwebはゴールデンハンマーじゃないって言ってる人いたな
pythonでスクレイピングを行うvbaを起動するとTimeoutになってしまうんだけど、どうしたいいでしょうか。
ただ、VBA単体で実行するとブラウザは起動します。
エラー文:TimeoutError The driver failed to open listening port 127.0.0.1:54568 within 10s
■python構文
app = win32com.client.Dispatch("Excel.Application")
app.Visible = 1
app.Workbooks.Open(Filename=r"C:\XXX\XXX\XXX\XXX.xlsm")
app.Application.Run('OpenScrping02')
■VBA構文
Dim Driver As New ChromeDriver
'Dim Driver As New Selenium.ChromeDriver
Dim XPath As String
Dim element As String
Dim FWFlag As Boolean
Dim myBy As New By
Dim tmp As String
Driver.Get "chrome://settings/defaultBrowser"
↑でエラー文が発生します
ここでnuitka知って使ってみたんだけど、作ったファイルがもれなくウイルス判定されちゃう。
どしたらいい?
exe化しなきゃ良いんじゃね
寧ろexe化って何でするの?
だからさstreamlitみたいなのでサクッとWebアプリ化して自社鯖なりクラウドにおいてURL叩くだけで使わせれば良いじゃん
わざわざexe化して配布して回るの?
修正とかしたらまた配り歩くの?
>>71 コンパイル中にウィルス判定くらうからびびるね
raw=pandas.DataFrame({…
gb=raw.groupby(['name1','name2'])
gbmaxts=raw.loc[gb['totalScore'].idxmax(),:]
とやって、グループごとのtotalScore最大値の行を抜き出したいのですが、
問題はtotalScoreが重複した場合、どれを抜き出すか選べないのです。
score2というのがあって、重複した場合それの最大値で抜き出したいのですが、
どうやって記述すればいいでしょうか?
>>70 外部のスクリプトからExcelを開いたときはアドインとかライブラリへの参照が自動で追加されてないからとか?
エラーの内容がちょっと違う気もするけど念のためVBAで追加するようなコードを書いてみては
>>77 もっといいやり方がありそうだけど
gb=raw.groupby(['name1','name2’]).apply(lambda x: x.sort_values([“totalScore”, “score2”], ascending=False))とか
windowsならbatかpslでpython3を叩く自動スクリプト組んで配布すりゃよくね?初回起動時はポータブルなpythonをダウンロードするようにしてさ
今時の企業PCでexeファイルを許可なしでインスコ出来る事有る?
大抵は監視ソフト入っててインスコ出来ないようになってるよね
システム部門に申請して云々って手続きが必要とかさ
>>78 ありがとうございます。他を調べても同様のケースがないため、大変助かります。
可能でしたら、外部スクリプトから実行する際の構文などをご教示いただけないでしょうか。
また、改善するか不明ですが、現状のPythonでブック開く・マクロ実行までを、Pythonでブック開くまでにしてそれ以降はOpenイベントでマクロを実行する方法を試してみようと思います。
print('' in 'abc')
はTrueになる
print('abc'.index(''))
も0になって、
print('abc'.index('a'))
と区別が付かない
その文字が含まれるかどうかのテストに''ならFalseになるように
書くにはどうしたらいいだろう
そういう方針なのかと思ったら、
print('' in {'a', 'b', 'c'})
print(None in {'a', 'b', 'c'})
こういうのはちゃんとFalseなんだよな
まず 'ab' in 'abc' をその集合表記で書いたらどうなるか考えてみるべきだな
pythonではそうなってますで終わりと言われればそれまでだが
包含か一致かの違いと考えれば辻褄が合うような
print('' in 'abc')
for c in 'abc':
print(c == '')
print('' in ['a', 'b', 'c'])
for c in ['a', 'b', 'c']:
print(c == '')
どちらもイテレータの中身のチェック
一番上だけTrue
len('')
len('a')
len('ab')
これは同じか?
in演算子について誤解があるようだな
print('ab' in 'abc')
を書いてみてわからなかったらあきらメロン
不便だし他と不整合だしメリットが見つからないし覚えにくい
最初にそうしちゃったから今更変えられないだけに見える
>>96 勘違いしてるが、別に君のために開発された言語ではないよ。
君が言語に合わせるか、君が別の言語に移るかだ。
毎度毎度、知能が足らないのか?
>>92 知らんかった、、
forの場合、in後の反復オブジェクトをiter化してStopIterationが出ると止めてるらしいので
in演算子後の文字列をiter化すれば同じ結果になるだろうけど
文字列だと「なにもない」を部分であるとみなして、
集合は「なにもない」は部分ではないとする
わざわざそうするのは、こういう処理の時にシンプルに書けて合理的でしょ
という例が思い浮かばないんだよな
1文字が含まれるかどうか調べるときは1文字でin演算すればいい
部分列を高速に検索かけられる分できること増えてるだけじゃん
言語仕様に文句を言っていいのは、不必要に文法を複雑にしてるor性能を落としてるときだ
文字列検索ほど頻出なものに不平を言うのは想像力も経験も知恵も足りてないだけ
つまり、変なのは判ってるし、本当はFalseを返したかったけど、
アルゴリズム的にTrueにした方が高速に検索できるということかな
空で検索するのって、そんなにコストかかるか?
最初にFalseで落とすだけな気がするけど
リストや文字列の+、 *は、数の+、*と動きが全くちゃうでしょ
でも同じ演算子を使う
inの動きが変わるのも、それと実装の仕組みは同じ
+、*は盲目で受け入れてこれには文句言うのは、君にプログラミングの才能がない証拠
え、こわい
> つまり、変なのは判ってるし
ここが盲目的ってことよ
その質問が、もう頭悪い
'' in 任意の文字列 は君の定義なら常にFalseでPythonの定義なら常にTrueなんだからどっちでも計算量O(1)
文字列照合のアルゴリズム1つも知らないでしょ
周りがおかしいんじゃなく、自分がおかしいと気づいて
まあ、そんなのはどうでもよくて
ちゃんと意味があってそうなってるんだから
っぽいことを口々に言ってるけど、誰も具体的に説明しない
疑問を持ってはいけない信者にしか見えない
まず、''がどの文字列のsubstringでもあることは納得している?
>>84 workbook = app.Workbooks.Open(workbook_path)
workbook.VBProject.References.AddFromFile(library_path) #ライブラリ参照の追加
app.AddIns.Add(addin_path).Installed = True #アドインの追加
>>109 ヒント出してる人はいるだろ。疑問を持っちゃいけないってんじゃなくて自分で考えてほしいんだよ。
print([] < ['a', 'b', 'c'])
print(set() < {'a', 'b', 'c'})
これはどちらもTrue
存在と包含は区別されている
文字列に対しては、部分文字列が存在するか、ではなく
部分文字列が包含されているか、という判断になっている
数学では、空集合は全ての全ての集合の部分集合と定義されている
pythonはそれを何の気なしに真似しただけで、
コーディング上のメリットは多分ない
家にあるバームクーヘン捨てた方が良い?
このままだと全部食ってしまう
ゴミ箱に入れて捨ててきた方が良いかな
痩せたいんだ
>>109 「話を逸らすなよ」から「そんなのはどうでもよくて」って頭おかしいのかな
君は馬鹿でプログラミングに向いてないからやめたほうがいいと思うよ
何故 'abc' でforループ回して出てくる 'a' でさらにforループ回せることは気にならなかったのかな。
for c in 'a':
print(c)
って書いてみな
その考えで言うとまず 'a' in 'abc' が判定できる時点でおかしいはず
'a'が配列なんだからね
君は論理的思考が苦手。論理的な人が文句をいうならそこに気付くはず
初心者が間違った思い込みを持って、現実で痛い目見てベソをかいてるだけ
2は、シバン(1行目)をどう記述するといいの?
1 実行できる。(前提)
$ cat hello.py
#!/usr/bin/python3
print('こんにちは')
$ ./hello.py
こんにちは
2 エラーになる。但しコマンドラインからは実行できる。
$ cat trace.py
#!/usr/bin/python3 -m trace --trace
print('こんにちは')
$ ./trace.py
/usr/bin/python3: No module named trace --trace
$ /usr/bin/python3 -m trace --trace trace.py
こんにちは
$
>>119 なるほど。ありまとう。
$ ./env-s.py
--- modulename: env-s, funcname: <module>
env-s.py(3): print('おはよう')
おはよう
$ head -1 env-s.py
#!/usr/bin/env -S /usr/bin/python3 -m trace --trace
>>1 データを作りたいのだが、
配列の応用のページはないですか、
辞書と組み合わせて作るのかな、、、
もうちょっと具体的に例出して
サンプルがほしいなら適度に複雑なjsonファイルを読み込んでマッピングされた構造を見れば、Pythonコンテナ型を組み合わせたデータの参考になるかもね
/usr/bin/python3 を単に、python3 と書けないの?
WSL2, Linux なら、
Ruby は、anyenv で入れた
which ruby
/home/ユーザー名/.anyenv/envs/rbenv/shims/ruby
which python3
/usr/bin/python3
ファイルの形式
file /usr/bin/python3
/usr/bin/python3: symbolic link to python3.6
file `which python`
/usr/bin/python: symbolic link to python2.7
file `which python2`
/usr/bin/python2: symbolic link to python2.7
file `which python3`
/usr/bin/python3: symbolic link to python3.6
readlink -f /usr/bin/python3
/usr/bin/python3.6
>>123 書けない。
$ head -1 seabang.py
#!python3 -m trace --trace
$ ./seabang.py
bash: ./seabang.py: 実行できません: 必要なファイルがありません
またコマンドラインで、
> $ /usr/bin/python3 -m trace --trace trace.py
と敢えてフルパスで書いたのは、コマンドサーチパスによって、
/usr/local/bin/python3 や、
/opt/bin/python3 をつかまされたのでなく、
> #!/usr/bin/python3 -m trace --trace
と同じものである事を明示した。
あの言語が初の2023年「プログラミング言語オブザイヤー」に TIOBE指標
http://2chb.net/r/newsplus/1705030870/ 酒飲みながらプログラムしたらダメだな、、、
完成しないのはともかく、これまで作ったプログラムもグチャグチャになった
>>123 alias python=/usr/local/bin/python3
shebang解釈するのはOS
シェルのaliasなんて知ったこっちゃない
lru_cacheを引数がリストの関数にうまく使えないものか
SQLAlchemy 2.0.x
リレーションシップ周りでめっちゃエラー出まくる
一応未だに更新のある1.4.x系の最新版で安定
速度とか関係あるのかわからないけど2.0.xはもう諦めた・・
FastAPIで画像を返す方法です
以下のurlをコピペしましまたが、/image/jpgにアクセスすると、サーバー側に
AttributeError: 'tuple' object has no attribute 'tobytes'
とエラーが出て画像が表示されません
どこがおかしいんでしょうか?
https://qiita.com/chikiku/items/e73ae8ff281c48e7f361 >>135 この部分を
byte_image = cv2.imencode(".jpg", im)
これに
_, byte_image = cv2.imencode(".jpg", im)
>>136 どうもありがとうございます!うまくいきました!
「_, 」はなにを表しているんでしょうか?
>>135 アンパック
例えば
ary = [11,22,33]
a=ary[0]
b=ary[1]
c=ary[2]
print(a,b,c)
を
d,e,f=ary
print(d,e,f)
みたいに書ける
>>138 どうもありがとうございます!
何かを省略する方法っぽい事はなんとなく分かりましたがそれ以上は全くわかりませんでした。。。😢
3.12.1でlen(list[str])=1270のlenを大幅に超える[8950:]でスライスすると
ランタイムごとコケるバグ見つけた
詳しい条件わからん
バグ報告任せた
訂正&メモ
>>134 1.4.51だとなぜか1ペアしかリレーションシップできない
1.4.35だとすべて完璧
原因はわからん
アンパックすぐバグる
やっぱり戻り値は1つで複数要るならclassにするべき
どうバグるのか知りたいが
最近は気軽にタプルでエラーも返すのも多いね
>>138 「_, 」と、(1)アンダースコア(2)カンマ(3)空白の説明を求められたのに、(2)しか説明していないじゃないか。一を聞いて1/3を知る病気ならともかく、そうじゃないなら真面目にやりたまえ。
戻り値の3番目を使って、とかやってるうちに、
設計変更で4番目に変わったりする
引数も順序に依存する実装は危険でこれは名前で渡せば済む
pythonはdictionary型の扱いが超簡単だから
あえてリストやタプル使うメリットは少ない
でも辞書はいちいち新規かチェックして新規なら空要素自前で追加しないとエラーになる
リストもタプルも使うべきところがある
位置引数とキーワード引数の使い分けも同じ話
常にどちらか一方が優れてるわけではない
あるのは知ってるけど、やっぱり使わない方がいいという結論になった
autovivificationは便利すぎて人間の手に余る
simplenote のAPIを使いたいと思っています。
PIPでのインストールはできたのですが、
その先に進めずにいます。
特定のノートの表示、或いは書き込みのサンプルって
どこかにありませんでしょうか。
>>152様、
早々のレスありがとうございます。上のサイトは確認しました。
ただ、まだそれを見て理解できるレベルに無い為、サンプルがあればなぁと思った次第です。
下のサイトはもう少し詳しい情報があるようなので、読んでみてすすめてみたいと思います。
モザイクを検出して、透過に塗りつぶして、別の画像に貼り付けるプログラムを
作ったので良かったら遊びにきて下さい
wikiwiki
同人誌同人ゲーム無修正化差し替え備忘録まとめ Wiki*
https://wikiwiki.jp/mozanashi/ 左のメニューのところにプログラムを貼り付けてあります
Pythonやってるのって韓国人ばかりだからな。
Pythonのことは韓国人に教えてもらうのがいいね!
スレ主も韓国人だよ!
よろしくね!
マンセー!
DNCLとかCASLとか?
環境から設計、構築せんとなにもできんけど
真の玄人は自作言語で遊ぶのかも知れんね
そして誰にも使ってもらえないうえにライブラリも作ってもらえない孤独と戦い続ける自分に酔う
自作言語はみんな作るでしょ
たとえば、改行で区切られたテキストファイルがいくつかあって、
それらのandをとりたいとか、orをとりたいとか、
引き算したいとかの要求があって
それぞれ別に演算したものを最後に結合するとか複雑になってくると、
簡易言語にして処理させた方が楽だし間違わない
>>163 それsedやawkとかを駆使するんじゃだめなん?
sedではさすがに無理だろうな
awkを駆使するのもperlを駆使するのもpythonを駆使するのもだいたい同じ
Pythonやってるのは朝鮮人だよ。
朝鮮民族は優秀だからね。
マンセー!
Ubuntuでpythonの仮想環境を作ってやろうと、virtualenvwrapperインストールしてみたんだけど、python2.7の仮想環境作れない
python3の仮想環境は作れるのになんでなんだよ
パズル解かせるツール作ったけど、時間かかる
手軽にコンパイルして1000倍くらい高速化できないかな
古い本だとpython2だから仮想環境作りたいのに
手直しでpython3のコードにするしかないのか
古いCPythonはOSが仮想じゃないと動かすのイヤだけど
IronPythonつかうのは?
>>171 PyPy
バージョンよって剰余演算子の挙動が違う?
-1%3とか
EXEを作るのにPyinstallerを単純に使うとDefenderに引っかかる上にできたEXEをマルウェアと誤認識する。
EXEを作るのに何かいい方法は無いですか?
beautifulsoup使うとpylanceに怒られて真っ赤になるのが悩みなんですが
isinstance使わないでアノテーションで上手く誤魔化す方法って無いんですかね
Pythonが遅いところはPythonで処理せずC言語等で書かれた速いライブラリで処理するので問題にならない
PythonをオワコンにするはずのJuliaがほぼ行きがけてます
Julia全く人気出ないよなー
悪くない言語だけどわざわざ乗り換えるほどではないというね
誰かがライブラリ作ってくれるのを待つのではなく、
時間がかかると判ってる部分を自力でCで書いて高速化するハードルが低いといいのに
あるべき進化の方向じゃない気がするけど、結局そういうのが楽で速い
いまどきの言語でCブリッジ書きにくいって稀
速度だけがネックならCodon, PyPy, Cythonとか使えばええし
GIL撤廃とmojoの完成でjulia等は完全あの世逝き
ぶっちゃけmojoはjuliaとやってることは同じ
juliaのシンタックスをpythonして作り直そうとしてるのがmojo
CodonとかPyPyとかnumbaは終わるよ
mojoが完成したら
>>194 DecimalとかMpmathも高速化する?
なんか最近頭の中にインタープリタでもできたのか知らないが
字句解析と構文解析と意味解析が自然にできるようになった。
>>168 バージョン管理して共存する方法あるでしょ。
>>198 その方法がわかんねって意味で書いたんだよ
メインのpythonの環境がpython3.11だったからこいつにvirtualenvwrapper入れたんだけど、ネットで調べた方法のようにmkvirtualenvで、python2指定してもエラーでて仮想環境作れない
python3なら作れるんだけど
ネットで調べたとあるけどマニュアルか公式サイトは先に読んだの?
ライブラリの集合を切り替えるのであってPython本体を切り替えるものではないよ
>>197 プログラム言語の字句解析と構文解析と意味解析ができないと、プログラムを組めないでしょ。
>>201 実行したコマンドとどんなエラーが出ているかを書かないと参考意見も言えないよ。
>>197 ある日急にニューロン繋がって分からなかったものが分かるようになるよな
脳みそって不思議
3.10から実行速度向上って見たけど、あんまり変わらない気がした
もともと速度欲しいなら自分でCython書けよって方針だろ
すみません
めっちゃ初心者なんですけど勉強でWEBアプリをM1 Macで作りたいです
フレームワーク?はDjango使おうと思うんですが多機能なので小規模開発にはかえって向かないみたいなのをみましたがどうなんでしょうか?
またIDEはVSCで良いですかね?
ドキュメントは検索ではなかなか欲しい情報に辿り着けないので本を買おうかと思います。
(スクールなり行けるのが一番でしょうが…)
Ruby on Rails 以外をやっても無駄
フレームワークの米国年収は、
Rails : 9 万ドル
Django : 6
Laravel : 3.8
筑波大学でも使っている、Railsチュートリアルのサイトで、
古いRails 5 なら、無料で読める。
ただ大規模すぎる。
未経験者が学ぶ、プロの転職用
だからSinatra で、MVC の構造だけを学んだりする
import email.policy
e = email.policy.EmailMessage()
print(type(e))
これをVSCodeで書くと補完が効かない上にmypyで
Module has no attribute "EmailMessage"
って出るんですがなぜでしょうか?
標準ライブラリのpolicy.pyでは
from email.message import EmailMessage
していますし実際上記のコードはエラーなく実行できます
いま自作のライブラリでは内部でimportしているモジュールの隠ぺいのために
__init__.pyで公開APIだけ__all__に入れて実装ファイルは先頭にアンダースコアをつけています
自作モジュールでは__all__に公開APIだけを書いても非公開部分まで補完候補に出てきました
email.policyと同じ要領でツールの補完から隠ぺいできるなら採用したいのですがどうすればいいですか?
>>1 p = [29, 30, 31, 32, 33, 34, 35, 36, 37]
q = [31, 32, 33, 34, 35, 36, 37, 38, 39]
r = [ [29,31], [30,32],,,]
としたい、
AIに聞いたがわかってもらえない、、、
>>213 何のAI使って何て聞いたんだよ
この程度が出来ないとかお前無能じゃね
>>214 そこに聞いたのだが、、、
ありがとう、
複数の配列から、各要素を取り出すのは、
Ruby では、zip を使う
ary_1 = [ 1, 2, 3 ]
ary_2 = %w(a b c)
res = [ ]
ary_1.zip( ary_2 ){ |num, text| res.push [num, text] }
p res #=> [[1, "a"], [2, "b"], [3, "c"]]
いっつもコードが冗長だし
linter(RuboCop)もつかったことなさそうだし
いろいろ不憫
ルビ夫のPCはgem以外ネットに繋がらない仕様にしてしまえ
無関係なリストから順に取り出して組み合わせることなんか無いしな
それは本来関係あるペアを別のリストに入れてしまったことがそもそもの間違い
r[i].pとr[i].qとして取り出せるように設計しておくのが正解
VSCodeで表示される関数等の説明の吹き出しが、Colaboratoryを使ってる時より少ないんだけどさ
これってどうすれば同等に表示されるようになるの?
初心者すぎて何を聞いたらいいのかもよくわかんないんで、どうかエスパーの人教えて!!!
なんかいつのまにかVSCodeのインテリセンスおかしくない?
ドットからのよく分からない候補が先頭にでる
俺はここ何日かvscodeが重くて困ってる
メソッドとか関数書くときに固まる
特にread_csvとか完全に固まる
なんで日本人のIT関係の人って冷たい人が多いんですか?
プログラム職業にしてる人で性格のいい人にあったことがないです
じぶんのミジンコみたいな性格は置いとくと
見識が広くておおらかな人が多い印象やわ
いい人というのは225にとって都合のいい人であって
そんな都合なんて知らねーよって話だろうな。
上から物を言ってくる人間は多いよね
淡々と答えれば良いものを一言二言多い
まあ、こんなところでしか威張れないからなんだろうけど
他人の事を検索エンジン程度にしか考えていない人に対しては塩だな。
しかしそのほうが本人のためであったりする。
pythonからスマホゲームとか作れる言語に乗り換えるとしたら何がいいの?
dart(flutter)?
得意言語で書きたいんじゃなくて乗り換えるならネイティブでいいんでは?
ターゲット環境を理解するコストの方が高いから言語なんてついでに習得できる
C#はMS-Windowsでしか使えない言語ちゃうの?
C# の.NET Core のASP.NET はサーバーサイド界隈でよう聞くぞ
>>238 C#の C++部分が動くだけちゃうの?
C++をパクって COMだか .Netだかに対応させたんちゃうの?
まず言語を選ぶんじゃなくて動作環境、開発環境やエンジンを選んでそこから適した言語が絞られてくるんじゃね
言語は手段であって目的が先にありきだよ
プログラムとか教える人がことごとくWindows嫌いなのはなんでなんだろう
>>249 言いたい事は分かるけどその目的の為に言語の熟練度が関係するとか有るじゃん
お前さんの言う様な感じで決まるのって要は「プログラムなんて誰でも出来る」って言ってる技術知らないバカな経営者と一緒やん
>>250 せやろか?
クライアントとしては特になにも思わない
サーバお前はダメだ!
windows以外の何かが好きなだけでしょ
選択肢はlinuxとmacの2つしか無いが
windowsのコマンドと改行コードと文字コードが嫌いだったなぁ
15年近く経った今はもう慣れたけど
行セパレータじゃないんだよな
テレタイプの制御コードでしかない
その通りの用途で使われたことあるんだろうか
>>251 設計がガチガチのウォーターフォールだと
末端のPGは誰でも出来るぞ
昔のWindowsならともかく現行のはWSLで簡単にLinux/Ubuntu環境を作れるから便利になった
最近C#がまた注目されるようになったのは似たC#とよく似たJavaがOracle問題で自滅しかけたからかなあ
サーバーサイドならJava/Kotlin、C#、Go、Rustのどれを使うか決めてからフレームワークを選んでやる
ゲームやりたいなら強力な3DレンダリングエンジンフレームワークのUnity、UnrealEngine、Godotのどれを使うか決めてから言語を選んでやる
C++プログラマーだが、
なんでPythonのclassコンストラクタって、
selfって引数あるの?
perlのオブジェクト指向化を見てるとselfがあるのはとっても自然
>>258 後方互換のため
pythonは最初はオブジェクト指向機能はなかった
グイドは後付けでオブジェクト指向をどう実現するか考えた
その結果第一引数に明示的にレシーバー(メソッドを呼び出すオブジェクト)をselfとして渡すことで
通常の関数呼び出しと差別化する案を思いついた
>>260 んー
だとしても特殊メソッドは、__XXXXXX__って感じでダブルアンダースコアで差別化されてるので、
selfがある理由がよくわかんない…
C++プログラマー的からすると…
今頃になって気がついたけど、IDLEってi=1+1って打っても半スペが自動で入らないんだな
IDLEみたいに軽くて自動で半スペが入る奴ってある?
>>261 名前解決の拡張が前提にあるけど
selfを引数で渡すことで従来の関数処理そのままでメソッドが実現できてる
いまとなってはメソッド呼び出しかどうかランタイムで知れるので
言わんとしてることはわかる
>>261 thisポインタを第1引数に取ってる感じ
じゃないとインスタンス空間に入らない。
ダンダーメソッドは オペランドのオーバーロードと同じ
純粋仮想関数はインターフェース使う感じ
整数のリストは std::vector <int> とかだけど
pythonはなんでもいける
レジスタ長指定するような処理命令書かないのならデフォルトのintで問題ない
厳密に型指定した整数値扱うならnumpyやら使ってもok
>>265 うん、selfはthisと同様だけど、不要なのでは?
って疑問。
試行錯誤の名残りって感じ?
暗黙的な多重継承だからだよ
明示するためにやってる感じ
objectクラスに含めるなら…と試してみるとわかると思う
ちなみにここまで全部勘で言ってるだけだから詳しくはちゃんと確認するんやで。
selfはpythonの美しくない部分の一つではありそう
せめて省略して.xyzとかで書けんものかなあ
>>268 C++とかのthisはキーワードで明示的に引数として渡さなくても
thisを使えばインスタンスにアクセスできるように作られてる
Pythonのselfはキーワードではなく名前は何でもよく
__init__などの第一引数で渡されるものがインスタンスへの参照というルールしかないので
引数にselfがないとメソッド内でインスタンスへのアクセスができない
それは知ってて、でもなんでそういう設計なの?という疑問にみえるが
メソッドと関数を別物として扱うか単なる専用関数と見るかの違い
ルールが2つあるより1つの方がシンプル
selfがあるからこそ美しいだろーがよお
別にcppをディスるわけじゃあないけどさ
ディスポインタって(笑)
->ってプログラマよりも設計っぽくて(笑)
>>263 メソッド内に関数も定義できるからメソッドと同じ名前の関数があった場合、どちらを呼び出して良いかルール付けが必要だしね
selfがあればスッキリ
>>225 関係ないスレに愚痴書き込むようなやつだから冷たくされてるだけだろ
IT関係なくみんなから冷たくされてるのがわかんないかな?
まぁJavaとかC#だとメソッドしかないから
それら上がりはメソッドと関数が両立してるpythonには違和感あるだろうな
Cがアセンブラを意識しないといけないように
pythonもやっぱりCを意識する必要があって
より抽象化された言語でも表層しか知らないと使えない
>>273、
>>274 うん、で、
そのselfは引数としては不要では?
って疑問。
存在する理由は?
変数名が省略されたらsyntax errorとせずにselfが省略されたと見なす
なんてルールを導入したら混乱とバグが増えるだけ
>>283 ありがとう。
最初にそこ見ればよかったw
でも、「第二」の説明がよくわからなかった…
>>285 それperl6で見たな
.から始まると現在のコンテキストのselfが勝手に解釈される
そもそもselfは予約語じゃないしな
nervと書いても通る
これが 0 1 を返す理由が分からない
False,Trueじゃないの?
def num(value):
return value
value1=num(0) and num(1) and num(2)
value2=num(0) or num(1) or num(2)
print(value1, value2)
value1=num(0) != 0 and num(1) != 0 and num(2) != 0
value2=num(0) != 0 or num(1) != 0 or num(2) != 0
なら期待通り
>>291 なんで複雑にしたがるかわからんが
>>> 0 and 1 and 2
0
>>> 0 or 1 or 2
1
ってことだよね
https://docs.python.org/ja/3/reference/expressions.html#boolean-operations だからこうする必要がある
>>> bool(0) and bool(1) and bool(2)
False
>>291 https://docs.python.org/ja/3/reference/expressions.html#boolean-operations > 式 x and y は、まず x を評価します; x が偽なら x の値を返します; それ以外の場合には、 y を評価した結果値を返します。
> 式 x or y は、まず x を評価します; x が真なら x の値を返します; それ以外の場合には、 y を評価した結果値を返します。
> なお、 and も or も、返す値を True や False に制限せず、最後に評価した引数を返します。
ブール演算だけど、TrueやFalseを返すわけじゃない
>>293 なんでと言われてもPython試験の問題集にのってたんで
TrueとFalseだけを返す仕様でも殆ど困らないよな
result = check() or error_process()
みたいに、評価したりしなかったりする処理が短く書けるけど、
それは果たしてpython的なのか
結局ライセンス意識せずに使えるGUIライブラリってtkぐらいか?
商用ダメならtkにするよね
でも作るのはSimpleが楽だからSimpleで作ったのをGPTでTKにしてもらうわ
Tkまで戻らなくてもwxPythonとかあるやん
有象無象がほとんどだろうけどPyPI漁ってみては
PySimpleGUIって趣味アプリ公開で金取らないなら無償なんか?
いまいちわかりにくい
何かあった時のリスク高いからもう使えないな
Qtとかもそうなんだけど難癖つけられたら詰むし
何でこの手のGUI使うのか俺には理解出来ない
StreamlitとかWebのUIで良いじゃん
商用ってツール作って売ってお金貰うってことだよね。
社内利用ツールって商用じゃないよね?
guiならtk1択か
simplegui学習するくらいの時間でtkも学習出来るよう感じだしな
何しろ標準ライブラリだからコスパが良い
過去に作ったやつをtkにして動くようにしたけど、やっぱ見た目が古いなぁ
customtkinterにしてみようかな
配布する目的だとどれもライセンス問題が付きまとうのが本当に面倒
flet良さそうだけどまだ発展途上感強し
flet良いよな
asyncアプリとしても作れるしかなりモダンな作りだ
安定性とか度外視すればこれ一択だろう
>>312 ネイティブっていうけど、GUIのネイティブ感出したいならそれぞれのOSの GUI書くのに適した言語を多少は学ばないと意味なくない?
GUIの自由度は無いけど洗練されててやりたいことが大抵できるようなのでいい
へーfletなんてあるんだね。
勉強してみる。ありがとう。
listboxがないからchatgptに聞いたらTkinter,PyQt,wxPython使えって言われたw
とりあえずchipで代用しようと思う
見た目ゴミで良いからとにかく無料で作りたい
tk
多少覚えること多くても良いからしっかり作りたい
kivy、PySimpleGUI
実績あるクロスプラットフォームのライブラリを使いたい
PyQt、PySide、wxWidget、gtk
未来のホープ
flet
GTKはメジャーVUP関連で多大な迷惑を世界中に(ryしたばかりだからな
オマケ
Webで作りたい
ガワをpythonで作る
Eel
ガワをJavaScript
Electron
ガワをrust
tauri
fletってPysimpleguiで言うところのkeyって無いのかな?
俺が天塩にかけてpysimlpeguiで作った社内ツールが社内から全削除することになったわ
上司に相談しなければ良かった
社内ツールに GPLが障害となるケースってなんじゃい。
>>329 なんで??
E資格って簡単なんですか?
機械学習のスレだとITパスポートと同じぐらいって書かれてるんですが
>>331 圧縮ファイルを解凍するのに遣ってたライブラリ引っかかったことならあった
公共交通機関関係の機器
でもfletだってライセンス変更する可能性もゼロじゃないよね
やっぱtkinterか、ダサいけど
GPLやLGPLは社内ツールだと使いにくいからねえ
PySimpeGUIは独自ライセンスで先週にも更新されている
社内利用してる奴らはちゃんと読んどけよ
最初からMIT, BSD, Apacheしか許可されてない
tkinterってテーマ自作できるからそれ使ってfletに似せてもいいよなー
>>338 > GPLやLGPLは社内ツールだと使いにくいからねえ
いやマジどういう場面で、GPLで社内ツールが使いにくいのよ??
>>340 社内ならコードを見せてもいいという感覚は理解できないな
ただGPLの場合同じ組織内なら配布には該当しないから社内ユーザーにソースを見せる必要はないんだけどね
独自のパッチ当てることは普通にあるからな
特に社内でいろんな部署が使うと要求が強くなってきてコア部分に手を入れなきゃいけない場合が出てくる
最初は必要なくても数年使ってると必ずパッチを当てる日が来る
その時はもう手遅れ
とんでもないミスをしていたと気がつく
だから俺はGPL系は仕事では使わない
社内利用の「公開」とは使う会社に対して公開すればいいってこと?
社内利用のアプリソースを全世界に公開するなんてしないよね
ごめん、勘違い
そもそもPySimpleGUIは個人利用以外有料化ってことか
俺も1アプリだけ使ってるところあったから修正する
バイナリを配布した相手に対してソースも公開しないとならないってだけ
公開すりゃいいだけなのにな
公開を要求したら配布自体辞めちゃうフリーソフトとかある
GPLを設計した段階では、みんなソース公開したらユートピアになるくね?
と思ってたけど実際はディストピアだった
>>349 > 社内利用の「公開」とは使う会社に対して公開すればいいってこと?
ツールが会社資産なら当然でしょ。
公開範囲は社の規程する事で、開発者の専断できる事じゃない。
部外秘コードを社内部外者が GPLをたてに見せろと言ったところで、社内規程的に無理。
Qiitaとかで当たり前のように何の説明もなしにmac環境を前提とした記事を見るとイラッとする
XCodeとか使わせてくるものじゃなければWSLや素ウブンツで代用できるっしょ
macの人もmacじゃない環境で作られた記事を普通に参考にしとるよ
>>353 そりゃ学生やフリーのうちはよくても
企業に属して色々縛られたら自分のコード公開するのは余計なリスク背負い込むだけだし
何の見返りも返さない連中にやってあげる義理はないだろ
なんかMac使ってたら1段階上みたいなのをずっと言ってるヤツなんなんだろうな
ThinkPadにLinuxインスコしてるやつが最強だと思うの
macの世界にツールを自分で作って問題解決しようなんて文化は無いのに、
macでpythonやってる人は何作ってるんだろう
ハードでmac使ってるだけで中身はlinuxだったりwindowsだったりしたな
パーティション切ってマルチブートさせて使うのが一般的だったが昨今はまぁ…秘密だわな
スタバでマック開いてる奴いたけどプログラミングじゃ無かったな
俺が見たのは某スポーツの試合を分析してる人だった
試合の動画を所々をコマ送りにして何か書き込んでる感じだった
プログラマーやデザイナーや仕事や学業で必要なわけじゃないのにMac使う人ってお金を無駄にしてる気がする
>>365 この言葉だけで無能って分かる
コード書くのに手首の位置にあるパッドって邪魔じゃん
家とかオフィスならマウスとか繋いで本体パッド無効にする
だけど本当に出先でラップトップ1台でコード書くならThinkPadみたいなキーボード中央のポインタ有る機種以外選択肢無いよね
>>367 今時ほとんどのノートはタッチパッドあるだろw
いつまであんな赤ポチ信仰してんだよw
あそこは手のひらを乗せる場所だからなあ
どうやっても勝手にマウスが動く
指でないと動かないみたいにいつか進化するだろうと思うけどまだできない
タッチパッドがダメな理由が全く理解できん
それにコード書いてる時はポチなんて触らんだろう
どういう状態なんだ?
ThinkPadって今中華PCでしょ?
客先に中華PCで出入りするの?
トラックポインタ慣れたらタッチパッドなんてクソすぎて使いたくないだろ
ThinkPadは支那に売られてから買わなくなったわ
>>370 コード書く時にポチを使うんじゃ無くてトラックを無効にしたい
今時のまともなノートPCならパームリジェクション効くから指以外でカーソル動かん
そもそもマウス使える状況なら手首は浮いてるけど
べったり触れてれば検知は簡単だろうけど、
手のひらの一部と指を区別するのはなかなか大変
志那は差別用語です
ネット右翼ばっかり
さぶれインパクトのように艦これ好きそう
シナが差別用語なのは戦時中日本が差別や侮蔑の意味を込めて使っていたからです
膺懲支那、戦時中の日本のスローガンですね
あとシナは国名じゃありません
>>370 > タッチパッドがダメな理由が全く理解できん
スペースバーの手前にタッチパッドがあると、親指の付け根、手相で言うところの金星丘がパッドに触れる場合がある。マウスポインタが移動して、大変邪魔だ。
> それにコード書いてる時はポチなんて触らんだろう
viエディタならそうだね。ただ、マウス必須のエディタも多いから、そんなのでコーディングしている場合、人差指が届くトラックポイントは便利だよ。
>>384 だから今時そんなクソ性能のトラックパッドないってw
どんなマシンを使ってるの?
どんなエディタでも基本的にマウスなんか使わないぞ
どのエディタ使ってるの?
教えてくれ
まさかカーソル移動にマウス使ってるの?
俺からアドバイスするとまずそれをやめた方が良い
エンジニアの会社なのにマウスでカーソル移動多様してるのみると
めっちゃ気になるしわかる
得てして最適化に無頓着だったりする
そこまで気にするならそもそもWindows使うのが無駄やし
windowsとか関係ないよ
むしろwindowsはやりやすい部類
Macはキーバインドがシステムのものと被りまくるからデフォルトでは訳わからないキーバインドになってる
まずそれを一斉に変更するところからはじめる
やってられんぞ
昔は1日に数回しかマウスポインタ動かさない人とか結構いたよなあ
コーディングのみ=CLIで完結(キーボード配列の方が重要でGUI操作は何でもいい)
資料作りやデザイン=マウス(マウスぐりぐり操作多用)
マウス持ち歩きたくない=トラックパッド、赤ポチ等(非製造者、営業向け)
マウス、トラックパッドと赤ポチを天秤に掛けてるのは
単に赤ポチに最適化されてる人がいるんだなってだけの話しでしかないように思う
webブラウザがどう考えてもマウス使った方が効率いいので、
マウス使うことに特に抵抗は無いな
逆にブラウザ以外では殆どマウス使わないけど
VSCodeがマウスを完全排除したデザインになってるからな
もうvimとかemacsとか関係なくマウス使う人は無能扱いで良いと思う
レビューとかする時はマウスのみでやった方がいいんだよな
多少はマウスも知っておかないと、どこにメニューがあるか判らんになる
とりあえずカーソル移動、ファイル移動にマウス使ってるやつは直した方が良いぞ
範囲選択して切り取って別の場所に貼り付けとか全部マウスだけでできる
VSCodeのVim拡張で編集モード中に日本語入力した後エスケープで抜けた時に日本語入力から抜けるってどうしたらいいの
>>398 IMEの設定
Google日本語入力の場合
キャンセル後IMEを無効化する
さらにMacだとキーボード設定の「書類ごとに入力ソースを切り替える」にしてIMEのモードをアプリごとに固定する
こうすることで切り替えごとにモードがコロコロ変わるのを防ぐ
このように徹底的に効率にこだわる
それこそ常人からしたら理解不能なレベルのね
>>398 設定にあるIMCmdでim-selectコマンドを指定してあげる
NTTドコモ、Python GUIライブラリ「Streamlit」でデータ可視化アプリを内製開発
https://it.impress.co.jp/articles/-/25986 ついに天下のドコモがstreamlit使うんだって
お前ら今すぐ勉強しろ
開発元のsnowflakeって日本に進出してるんだな
ドコモとコネを作るってどうなってんだ
Snowflake、NTTドコモが全社規模のデータ活用の取り組みに「Snowflake Streamlit」を採用
https://www.nikkei.com/article/DGXZRSP668681_S4A220C2000000/ >>403 これって事務職に給料上げないまま開発もどきをさせるって理解で合ってる?
事務というか営業とかマネージャーでしょ
こういうデータやグラフ欲しいとかいって開発に丸投げしてたものが
直接自分たちでできるようにするってことかと
良いことだと思う
C++の後継目指すプログラミング言語「Carbon Language」、Googleの技術者が実験的公開。C++は技術的負債で改良が困難と
https://www.publickey1.jp/blog/22/ccarbon_languagegooglec.html いちいち新言語にしないで、基本はpythonのままで、
書き方に制約を入れて高速実行可能にするとかのアプローチがいい
例えば型が決まってないことがかなり足枷になりそうだけど、
実際のpythonのコードは同じ変数をいろんな型に使わないケースが殆どなので、
それをルール化してしまえばいい
>>410 でも、
いまだにC++が圧倒的に使われてるのがすごいな
ゲームとかAIとか
組み込みなんかCだけどな
安全に使う為のチェッカーが物凄いことになってる
うちの周りは組込みでもみんなC++だけど、いまどき純粋なCで頑張ってるところってどのくらいあるんだろう
Cの方が多数派な感じだけど
CもC++も中身は同じだけど、C++の方がバイナリが大きくなって速度が落ちる
低級な言語で苦労して書いてるのは少しでも小さいメモリと安いプロセッサで動かす為なんだから、
C++に甘えていては本末転倒
>C++に甘えていては本末転倒
そういう精神論的なやり方してるところってまだ多いのかな。組み込みの世界は。
footprintが必要なサイズに収まりゃいいだけなのにな。
RAMもフラッシュもサイズのバリエーションがいろいろ用意されてるから、
小さければ小さいほどいい
必要な要件を超えた最適化ってのもオーバーエンジニアリングだよな。
C++で使える便利なあれこれを使ってる余裕なんか無い
数千とかある変数は全てグローバル変数
言語仕様にスコープして貰うのではなく、干渉は人力で避ける
競合相手も同じことしてるんだから、その方法を続けるしかない
>>417 ファームウェアなどはその上で動くアプリのほうが偉くてそちらにリソースを渡せるほど良いので固定の必要なサイズなんて無い
風景画ではAIと人間のどちらが描いたかを見抜けないことが明らかに
>>これらの生成AIは、事前に与えられたトレーニングデータを学習した情報やパターンを基に、画像や文章、動画などの新たなコンテンツを作り出すよう設計されています。
>>それゆえ生成AIが生み出す作品は高品質で、人間の作品と見分けがつかないものも存在します。
>>ロンドン大学のウルリッヒ・カーク氏(Ulrich Kirk)らの研究では、AI生成と人間が描いたアートに対する美的な評価を実際に比較しています。
>>実験では、fMRIに入った状態で参加者に、AIによって生成されたというラベルが貼られた絵と人間が描いたというラベルが貼られた絵を見て、美しさを評価してもらいました。
>>実験の結果、人間が描いたというラベルが貼られた絵は、AI生成されたというラベルが貼られた絵よりも美しいと評価されました。
>>新たに慶應義塾大学の周儀珍氏(Yizhen Zhou)らの研究チームは、AI生成のアートに対するネガティブなバイアスに関するより詳細な検討を行いました。
>>実験の手続き。参加者は20秒間自由に画像を観察することができた。 / Credit: Zhou et al., (2023).
>>実験者は、Vienna Art Picture System(VAPS)のデータセットから風景画20点と、Disco Diffusionにその風景画の名前と作成者の名前をプロンプトに入れ、生成された風景画20点を用いました。
>>また評価時には参加者の眼球運動を測定しており、注意が向いた場所や観察時間に違いがあるのかを比較しています。
>>またAIと人間のどちらが描いた絵なのかの判断においては、人間が描いた絵は約68%が正確に分類できたのに対し、AIが描いた絵を正確に分類できた確率は約43%に低下しました。
>>つまり、私たちは人間が描いたのか、AIが生成したのかを正確に判断することはできず、具体性や美しさなどの美的観点では同等の評価を下しましたが、人間が描いた
背景画像を先に描いてから人物を描けば正常な映像が描けるともとれる
便利なテクニックは習えても
不要な複雑性を導入しないってのはなかなか習えないからな
>>421 ふつう、ファームウェアはそのソフト自身が見積もるもんだと思うが、
その上で動くアプリって何だ?なんかあまり一般的じゃない例に聞こえるが。
まあなにか別のソフトを動かすためにメモリを空けておかないとならないんだとしても
どれだけ空けておくかは決めながら進めることになるだろうがな。
>ふつう、ファームウェアはそのソフト自身がどれだけメモリを使うかを見積もるもんだと思うが、
ファームウェアとミドルウェアを混同しているのかも知れんね
ここpythonスレだぞ
関係ない書き込みはするな
【AI】Stable Diffusion 3発表、Soraで話題の拡散トランスフォーマーを採用 [すらいむ★]
http://2chb.net/r/scienceplus/1708865670/l50 ボイス・トォ・スカるしている者も攻撃を受けるようになりました
Pythonが何言語でコンパイルされているか知ってる
emoji.emojize()すると、ある程度はちゃんと変換してくれるけど、
:hand-pink-waving:
:face-pink-drinking-tea:
:yougotthis:
みたいなのが結構残る
バージョン上げても全く変わらなかった
もっと完璧版は無いのかな
特定できてるならissuesで報告して
対応するまでパッチ当てとけばいいんでは?
>>417 組み込みでC++があまり使われないのは精神論じゃなくて、処理系が中途半端な実装であることも多くて処理系の癖をよく調べないとトラブルの元になるからだと思う。
Cに比べてC++は機能がリッチだからその分だけ調査対象が増える。特定の処理系しか使わないならその処理系とじっくり付き合っていけばいいけど、
組み込みの人っておそらく色々な処理系を相手にしているし、
ハード固有の事情も調べないといけないから処理系のことばかりに時間を割けないのだと思う。
組み込み屋さんと一緒に働いて感じた印象だけども。
組み込みってどこからどこまでが組み込みなんやろな?
バイナリエディタ使ってないならもうそれは組み込みではなくてソフトウェアの領域な気もするし
制御は、また組み込みともちがうくね?
デバイスドライバー限定で組み込み?
それも違う気がするんだよなぁ。
エンベデッドって一体どこまでがエンベデッドって感じ
マイナーなマイコンで炊飯器の制御するとかからARMでLinux動かすとかまで、
一口に組み込みといっても幅が広いからね。
罰ゲームみたいな環境での開発を強いられている人はご愁傷様。
家電のUIとか、特にAndroidTVのホームアプリあたりも組み込みソフトウェアって言ってるのかな
スレ的に全く関係ないけど
個人的にはデータシートじゃなくてAPIだけ読めばいいのは組み込みじゃない感じがするな。
つまり、少なくともハードウェアに直接アクセスするメモリマップドI/Oを自分で叩く、またはかなり薄いミドルウェア経由で叩くのが組み込みって感じ。
HALで抽象化されてるのはもうソフト屋な感じがする。
新規開発だったらどうしてもそうなるけど、
変更するだけならハードは何も触らない
世の中の開発の大半は変更なので、
組み込みといいつつハード知らなくてもどうにかなる
そんな範囲の開発だと品質の点からも
毎回ドラスティックに変更してるわけないしコピペだろうよ
気苦労は外部デバイスへの愚痴くらい
C→Pythonは意味がないし
仮想CPU上で実行とかでないと無理
日経ソフトウェアの2024年3月号を図書館から借りてきました。
佐賀大学の上田俊さんのNetworkxを使ったグラフ理論の連載がありませんでした。
前号、前前号には連載がありました。
なぜですか?
>>446 他の連載も毎回掲載される訳じゃないから今回はなし
pybind11だっけ?PythonからCってのはある
>>448 そうなんですか。ありがとうございました。
fastapiなりのマイプロジェクトで自作モジュールをインポートしたければプロジェクトルートの親フォルダーまでのパスをmain.pyみたいな起点モジュールでsys.pathに読み込めばいいの?
>>453 pipでインストールできるようにパッケージ化する
>>455 その発想はなかったわ
いいね
>>454 それもいいね
でもvenvでやるのめんどくさそうだったから避けてた
社内でpipリポジトリ作ってそこで管理してるね
公開するような質のものではないしw
pipでインストールできるようにするのとpypiで公開するのは別の話ぞ
デプロイの手段として、
開発環境でビルドして作ったwhlファイルをデプロイ先にもっていってpip install whlファイル
とか
gitリポジトリからcloneしてきて、pip install -e .
みたいなやり方もある
どうもそのやり方にピンとこないのだけど
whlは枯れたやり方だよね?
ならgit cloneしてmakeでビルドしてもらって
ローカルでpython setupでインストールしてもらったほうが…安全なのでは
とりあえず
>>460が枯れたの意味を誤解していることはわかった
いや枯れてるとかではなくただ古いから非推奨
setup.pyがいけてないからより進化したpipや現在の仮想環境構築系のツールが生まれた
そったを使おう
Flaskのチュートリアル
https://packaging.python.org/ja/latest/tutorials/packaging-projects/ パスをどうこうとかするよりも、pip installできるようにしたほうがいいよっていうだけ
方法は好きなの選べよ
pyinstallerでexe化するのにexeのファイルサイズが出来るだけ小さくしたいから、venvで新しいシンプル環境作ってプログラムが最小限に動くライブラリをpip installしてexe化したら
ごちゃごちゃしてる環境のexeよりファイルサイズがでかくなったんだけど、そんなことある?
pyinstallerに渡す引数は全く同じ
ライブラリ「これもいいなぁ、あっこれも。全部インポートしちゃお」
>>468「容量が増えた? なぜ??」
まずは中身を比較してサイズが増えてる原因を正確に特定する
妥当かどうかを確認するのはそれから
おそらくpyinstaller が何やってるか中身見たこと無いんじゃなかろうか。俺も見たこと無いけども。
onefile指定せずにつくって中みてみたらいいんじゃね
アンチウィルス反応するからexe化なんてしないしな
みなさんありがとう。
onefile指定せずに見てみます!
うーんfletのバグなのかな?
pyinstallerでやるとファイルサイズがシンプル環境<開発環境になるんだけど
flet packでやると逆になるんだよね。
よーわからんけど、exeにするなら別にpack使わなくてもいいか。
pythonめちゃ面白いな
ChatGPT使いながらだけど色んなの自動化したよ
宿題スレが機能してないっぽいけどここで質問しても良い?
難易度多分高くて普通の人には無理だと思うけど…
一応はスレ違い?だしレベル高い人居るのかな?って事で聞いてみた
もしスレ違いでも誘導されるか無視されるか罵倒されるだけなんだから、気にせずさっさと本来の質問をしろってことだよ
答えられる人が居るかどうかなんて分かる訳が無い
ちなみに俺は答えられない
>>480 もちろん良くないです。
宿題なら宿題スレへどうぞ。
VSCodeで右上の三角ボタン押すと開いてるPythonファイル実行できるけど、カレントディレクトリがルートディレクトリになっちゃう。
カレントディレクトリをファイルのある場所にしたいからとりあえずはCodeRunner入れてCTRL+ALT+Nで実行して
settings.jsonに
"python": "cd $dir && python -u $fileName"
追加すればできるけど、三角ボタン押してこの挙動にする方法ある?
VSCode の拡張機能・Code Runner は、
右クリックメニューから、選択したコード、またはファイル全体を実行する
この設定をチェックしておく
Code-runner: File Directory As Cwd
Whether to use the directory of the file to be executed as the working directory.
そうすると実行時にcd で、そのファイルがある場所へ、
current working directory(cwd) を移動してから、
例えばRuby なら、ruby "絶対パス/ファイル名.rb"
又は、ruby "絶対パス/tempCodeRunnerFile.rb"
で、そのファイルを実行する
tempCodeRunnerFile.rb は、Rubyのコード片をコピーした、一時的なファイル
設定項目、executorMap には、多くの言語の実行コマンドが書いてある。
"code-runner.executorMap": {
"javascript": "node",
"c": "cd $dir && gcc $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",
"cpp": "cd $dir && g++ $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",
"python": "python -u",
"ruby": "ruby",
VSCodeでnbimporter使ったコードのデバッグしたいんだけど、どうすればいいですか?
なんか文句言われます
flet 0.21から非推奨になったのあったりして書き換えないといけないよぉ
def func(number = 1) に型ヒントつけると、
def func(number = 1: int) でなく、
def func(number: int = 1) なのが不条理に感じられ腹立つ。
なんでやねん。__str__ は str とちゃうんか。
$ python3.9 x.py
Traceback (most recent call last):
File "/home/u-suke/x.py", line 8, in <module>
'区切'.join(l)
TypeError: sequence item 0: expected str instance, type found
$ cat -n x.py
1 #!/usr/bin/python3
2
3 class C:
4 def __str__(self):
5 return 'いろは'
6
7 l = [C, C, C]
8 '区切'.join(l)
>>494 もとい。
インスタンス化しても、変わらんな。
$ python3.9 x.py
Traceback (most recent call last):
File "/home/u-suke/x.py", line 8, in <module>
'区切'.join(l)
TypeError: sequence item 0: expected str instance, C found
$ cat -n x.py
1 #!/usr/bin/python3
2
3 class C:
4 def __str__(self):
5 return 'いろは'
6
7 l = [C(), C(), C()]
8 '区切'.join(l) __str__はなんか使ってくれないことがあるから、全部__repr__にしてる
>>496
ありがとう。でも変わらん感じ。
$ python3.9 x.py
Traceback (most recent call last):
File "/home/u-suke/x.py", line 8, in <module>
j = '区切'.join(l)
TypeError: sequence item 0: expected str instance, C found
$ cat -n x.py
1 #!/usr/bin/python3
2
3 class C:
4 def __repr__(self):
5 return 'いろは'
6
7 l = [C(), C(), C()]
8 j = '区切'.join(l)
9 print(j)
str()してやらんといかんのかねえ...
7 l = [str(C()), str(C()), str(C())]
# あ、ユーザ名書いてもた。 それは当たり前
l = [str(x) for x in [C(), C(), C()]]
l = [C(), C(), C()]
print(l)
みたいにprintに渡すと、printがstrを自動的にやってくれる
で、__str__だとそれすら意図通りにならない
withの中でループして
その中で関数にsession渡すと閉じられるとかいう謎仕様気づかなかくて
1週間かかったわクソ
初心者だけどflaskでポートフォリオいっぱい作ったら就職できますよね?
基本覚えてこのスレでtkinterとかarcadeとかpyxelとかfletとか触ってきて
あんまりしっくりこなくて
こんなの覚えても仕事ないよなあって思って
flask学び始めて、なんかこれ使いこなせたら強そうって思ってるところ
flaskだけで仕事できますか?
>>502 無理
まずc10K対応がされてないflaskでシステム作る事は殆ど無い
あっても極小規模システムというかツールなので単価は安い
何の仕事をしたいのか?
pythonを使うならデータサイエンスとか統計やってAI関係をやるしか報酬の良い仕事は無い
Web系がやりたいならNextjsやらJavaやらC#をやるのが仕事も多いし報酬も高い
>>502 > flask
しっくりくるってより単に他より簡単だったってだけなんでないの?
どれも使った事ないから知らんけど。
とっかかりとしては良いんだろうけど、
簡単だから良いとか思っているようでは仕事にはならんと思うわ。
>>502 flaskだけでは無理とは言わないが難しいかもしれないね。
プロジェクト毎に違うと思われるので、無駄にならないように基本型を学ぶ必要はある。
てゆーか、アーキテクチャに慣れたら他全部同じように使用されるので
フレームワークに依存しないよう別のフレームワークやツール使っても同じこと出来るようにしておくと生存確率もあがるし、選ばれやすくなる。
3人も詳しくて厳しいレス、本当に感謝です
flaskだけでは厳しいですか・・・
初心者はFlaskを選ぼうって聞いたんだけど、Django以外選択肢はないってことです?
Webアプリだとそれ以外ないですよね
Flaskだけって聞いたのは、モジュール毎に作法が違うから
なんか広く浅く手を広げても全然スキルアップしてる気がしなくて・・・
Webアプリって作ったことなかったけど、flaskは
テンプレートとかがあって、無駄を極限に削ぎ落として
無理やり汎用性をもたせようとする感じがなんか気持ちいいって感じです
Pythonが好きってわけでもないですが、
pycharmが好きで一生pycharm触っていたいなって感じです
でもWeb系は他の言語になるんですね
ブラウザでどこからでもアクセスできるものを作りたいって思ってますが
高卒なんで、AIとかできる気がしないから、Webアプリしかないですよね
こういうスレで就職できますか?
はどういうところを目指してるんだろう、システム開発専門のとこならPythonだけで済むわけないし、詳細設計書をもらって組むだけなら昔からのIT土方だし。設計できなければ将来はない。一般企業の情シス目指すならB2B(実際の会社はこれがほとんど)だとまずは会社の業務を知るところから始まる。ホームページはとりあえずあるけど、で放ったらかしは多い。
うーむ謎だ。
pythonだけで済むわけないのは同意だが
他のその分で単価上がってなければできる必要はない
ボランティアではないし、安く使おうとするところに居てはいけない
全言語中、Python だけが供給過多。
プログラマーはいらない
Pythonで欲しい人材は理系の大学院数学科か、
AWS 機械学習資格を持っている香具師
だから文系は、Ruby on Rails がチート職業と言われるわけ。
筑波大学も、Railsチュートリアルを使っている。
少し古いRails 5 なら、Railsチュートリアルのサイトで無料で読める
言語でも、Rubyは、Go/Rust/Elixir の3大言語を超えた!
Stack Overflow 米国年収。2022 -> 2023
Ruby : 9.3 -> 9.9 万ドル
Pythonなど多くの言語 : 6.5~7 -> 7.3~7.8
PHP : 5 -> 5.9
もし、ウェブ系でPythonを選ぶと、
なぜ、Railsを選ばなかったのかと聞かれて窮するw
KENTA や、Rails専門学校のRunteq の動画でも見れば?
勤怠管理、社内チャットツール、顧客管理、商品管理
こういうの買ってる会社にいてて
自分で作れたら買う必要内容なあってのと
教育関係にいるから、成績推移管理、内申点管理、進路希望管理
こういうのを一つにまとめて個人面談に使えるようなあってイメージ
以上のもの作るのにもPythonは向かないって思われます?
プログラマーってこういう仕事してるんだというイメージです
高校情報IがPythonかJavaScriptなんで
他の言語の選択しないし、一度Pythonを使うと
波括弧やセミコロンが鬱陶しくて他言語使おうと思わない
Pythonでやりたいってなるのは自然なことだと思ってました
>>511 まずその馬鹿な頭から作り直す必要があるぞ
EXCELでもpython使えるようになったしまずはEXCELを使いこなせるようになることだな
webアプリならフレームワークはflaskなり好きなの使えばいいけど、html, css, javascriptは必須やん
あとdbも
教育関係って言っても高卒の校長教頭の事務ITサポートだから
学力の低さと日本語能力は簡便してください
html、css、javascriptは習いましたが
学校出てからは全然書いてません
Webアプリケーション作るのにPythonが最適解で無いのだけは伝わりました
もうちょっと調べます
>>517 いや学校の教師だけが使う程度ならpythonで十分
問題は買った方が安いのを自分で作ればと勘違いしてる点
不具合対応や追加機能
インフラ整備
教職員への操作説明
そもそもの開発作業
どう考えても買った方が安いです
職場で使うことをターゲットにするなら買ってる部分以外にした方がいいと思うけど
まだ何にも作ってないなら、とりあえず買ってるものでも何でも動くもの作ってみたらいいんじゃね
ただ、確実に予算はつかないから職場で勝手につくるのと、職場から勝手に個人情報に限らずデータを持ち出すのはやめとけよ
仮に有用なものができたとしても事故か何かで突然作者が維持できなくなった時のことを考慮できるかというのが内製の一番の課題では?
その場合に予算つけて外に投げたとして業務を知らない赤の他人が処理を追える程度のコメントやドキュメントを維持することができるのかどうかとか
まあ高校の情報処理でプログラミングしか勉強してないから運用とか保守とか事業継続とかそういう視点が分からんのだろうね
だから自分で作れたら買う必要が無いって変な思考になってる
売ってるなら買えばいい
売ってないような細かい便利ツールが作れると仕事や趣味に役立つ
どうやっても本業にはならない
>成績推移管理、内申点管理、進路希望管理
この辺なら個人レベルで済むからpythonでstreamlit辺りでツールとして作るのは有り
俺だったらプログラミングの部活を作るかな
部活としてプログラミングを教え更に作品として学校関係のシステムを徐々に構築していく
代々の部員が機能追加しつつ修正しつつ作り直ししつつと受け継がれていく
全部Excelでいいだろ。
進路希望管理とか、紙で提出された内容を入力するだけじゃないの?
>>523 お前も似たりよったりのレベルじゃねーかwww
そもそも事務ITサポートサービスを提供してる会社の人間に部活作れるわけないじゃん
学校教育で教えるならJavaかc++だろう
Pythonはかゆいところがありすぎて結果的に自作ライブラリになってしまう。
サードパーティライブラリでできない事がまだまだ多いのでもっと楽させてくれ。
>>526 何言ってんだお前?
高校の教科書見た事ないのか?
>>527 見たことあるがそれがどうかしたか?
itssレベル1の内容程度のことばかりなので
javaもしくはc++やってほしいなって話なんだが
>>529 ありえない
やってもC言語
何故が分からないなら無能
明治時代の数学の教科書とか見ると、今と内容は同じ
ひらがながカタカナになってるだけ
学問ってのはそういうもんだ
普遍的な知識でないといけない
このスレってPython以外の話になるとスレが伸びるよね(´・ω・`)
結局Cになってしまうのか、でポインターってなんですかあ?から始まるのよな。
NiftyのCのフォーラムで同じ事が繰り返し聞かれるけど根気よく答えましょう、とか主が言ってたな。皆頑張れよ!ああジジイだよ。
>>532 基地外がよってくるからな
一切構わず無視してNG推奨
Numpy と PyTorch では多言語の追従を許さないじゃん
>>511 >勤怠管理、社内チャットツール、顧客管理、商品管理
Excel/VBA かRuby on Rails で、データベースもいるのか?
>成績推移管理、内申点管理、進路希望管理
統計・図なら、VBAかPython。
Rubyでも、HTML, CSS, JavaScript(JS)で図も描ける
そりゃ、高校ではPythonかJSになる。
でも職場では、VBA
それ以上のデータベースを使ったシステムなら、Rails。
AI・機械学習なら、Python
3大プログラマー投稿サイト、Qiita, Zenn, Note はRails製。
他にも、Shopify, Airbnb, Cookpad, Github, Gitlab, Hulu なども
そこらのお手軽環境でLispやSmalltalk並の生産性誇るのはRailsくらいだけど
品質や保守性かんがえると自社サービスでギーク抱えてないと無謀
掌田津耶乃のFlask の本を見たけど、Ruby のSinatra に相当するもの。
Rails ほど大規模ではない感じ
Bootstrap, Vue.js, データベースなども使う
{{ 式・文 | フィルター }}
みたいに書くのは、Shopify のRuby製のLiquid に似た文法
まあでも、Python でウェブ系をやる意味はない。
KENTA も初心者のキャリアパスは、Rails → Go のみと言ってるし
PythonでWeb系やれないやつがそう言ってるだけで実際は案件で一番多いのはPythonやからな
他にはPHPくらいじゃね?
>>543 無い無い
まず求人サイト見てご覧よ
言語で言うならPythonの求人はJavaの4分の1程度
その上でPythonの仕事内容の多くはデータサイエンスやAI
PHPは言うように以外と求人はある
でも多くのWeb案件はNextJSやJava C#
都内のpythonは多いが
田舎はjavaphpperlrubyばっか
Indeed
Next.js 4696
Vue.js 17271
Laravel 12150
Python 8637
Flask 1191
Django 4221
Rails 10694
Ruby 15154
React 24415
C# 45325
Php 60515
Java 85065
Javascript 85087
TypeScript 20636
Pythonは求人少ないんですね
>>545 田舎の方がモダンな言語の人気が高いということか。不思議だな。
Runteq の菊本だったか忘れたけど、誰かが言ってたかも知れないけど、
最近、Wantedly の求人の質が下がってきて、
Ruby on Rails は、Geekly へ行ってるとか
他には、Green とかはどうなの?
>>510 にも書いたけど、
PHP はKENTA がオワコン認定した。
サーバーの8割がPHPだけど、要するにWordPress 専門言語だろ。
AWS Lambda にも、デフォルト言語として採用されていない
米国年収でも、Dart と並び断トツに低い。
情報学部に行っていない高卒言語
Ruby : 9.9 万ドル
Pythonなど多くの言語 : 7.3~7.8
PHP : 5.9
必死にRubyを宣伝する馬鹿
Rubyこそオワコンなのに
>>526 pythonってライブラリが充実してるって言われてるけど
Javaのほうが充実してるの?
分野と数でいうならそう
業務系はとりあえずJavaっていう時代が長かったし
何か言語を選択しなければ、という発想が間違い
適したものや使えと言われたものを使えばいいだけ
この言語をやるとこの言語ができなくなる、みたいな制約は一切ない
最初の段階でデータ構造とアルゴリズムを分離して考える癖さえ付いてれば
LispだのPrologだのHaskelだの(Visualでない)Basicだのならともかく
普通の手続き型なりオブジェクト指向なりの言語、どれ使ったって書けるよ
それよりフレームワークなりライブラリの揃い方のほうがよっぽど重要
機能追加したろ、げGoで書いてある、で調べて書き直して
よし動いたGo完全に理解した
でレパートリーが増えていく
>>557 書けるのと使いこなせるの間には大きな壁がある
大抵の「なんでこんなコードなんだ?」ってのはお前のいう書ける程度の奴の戦犯
ファイルから読み込んで改行を外してリストにする
lines = f.read().splitlines()
これと、リストに改行を付けてファイルに書き込む
f.write('\n'.join(lines))
は逆の処理ではない
最後の行だけ改行が消えるから
joinの代わりに内包表記使うのも、最後に追加で改行書くのも、なんかスマートじゃない
改行が付いてたらそのままで無かったら改行を付ける、
みたいなインテリジェントwritelinesがあればいいのに
そもそもリストに入ってるものをセパレータも何もなしに結合するという破壊的な処理が
必要になる局面なんか無い
writelines(list)
は
write(''.join(list))
のシンタックスシュガーみたいなもんだよな
むしろ誤解を招くので、
writelineswithoutanyseparators()
みたいに名前にすべき
対になるのはreadlinesだし
不可逆になるsplitlines使うのが悪い
>>565 メモリの使い方ば少し違う
でかいファイルの場合は多少気ににする必要がある
Pythonのread/readlines/write/writelinesは
改行を追加したり削除したりできないので使いにくいのは確か
こことか見ればみんな不満に思ってるのがわかる
https://stackoverflow.com/questions/13730107/ >>565 > writelineswithoutanyseparators
読みにくいわー。日常的に、
def supercalifragilisticexpialidocious():
とか書いてるの?
要は、リストがあってそれをファイルに保存したりファイルから取り出したりしたい
csvやjsonやpickleのtxt版
もう少し処理が込み入ってればライブラリ化するんだけど、
1行で書けるからそんな気にもならない
>>568 それは一語だからそうとしか書けないでしょ
>>560 最終行の改行を気にするなら、splitlines()を使うこと自体がおかしくね?
>>> '1\n2\n3'.splitlines()
['1', '2', '3']
>>> '1\n2\n3\n'.splitlines()
['1', '2', '3']
splitlines()はまさにそういうものを対象にした関数
splitといいつつ、末尾にnullができればそれは無視する
writelinesもどう見ても行は書いてなくて、行を結合したものを書いてる
このへんの関数名と処理内容の不整合が一番の問題
想定と違えば作ればいいだけだけど、欲しいものが既にあるように見える
>>> "1\n2\n\n\n".splitlines()
['1', '2', '', '']
>>> "1\n2\n\n\n".splitlines(keepends=True)
['1\n', '2\n', '\n', '\n']
>>572 >'1\n2\n3'
バイナリじゃなくテキスト処理の対象なら
こういうのは改行コード入りの正しい形式に統一するほうが一般的には望ましいので
split/join使っても1つ足しとけば多くの場合は問題ない
末尾の改行コード入りで行単位のテキスト処理をするよりかは楽になることが多い
Ruby でも、join の最後には改行はない。
print の後ろにも改行はないが、
puts の後ろには改行はある
p [ 1, 2 ].join("\n")
print [ 1, 2 ].join("\n")
puts [ 1, 2 ].join("\n")
puts "end"
出力
"1\n2"
1
21
2
end
>>576 splitlines() は split() と挙動が違うのに split を名乗るなやゴラーと、
>>560 氏は言ったのでないの。どう処理するかでなく。
逐次処理してて、見つけたらその都度printする
それを改行せずにコンマで区切りたいので、
print(f'{item}, ', end='')
みたいにすると、
1, 2, 3,
みたいに最後に余計なコンマが付く
それが見苦しいので、一旦リストに入れておいてjoinすることはある
最後の余計なセパレータはNGなのか
C言語の文末の;はセパレータだと思えば余計だけど、無い方が不自然
付けたらエラーになるpascalの方がどうかしてる
リストやらの定義で複数行に分けて書く時に最後の行にも余計なコンマをわざと付けることで、
エディタで編集が容易になる
という状況を見ると、セパレータの追加処理は最後にも付ける方が自然な気がする
自然とか、一般的とか、多くの場合とか
そんな曖昧な話じゃないでしょ
csv.writerか似たようなをwriterを書けば幸せになるかもね
s1 = 'a\nb\nc\n'
print(s1.splitlines())
print(s1.split('\n'))
['a', 'b', 'c']
['a', 'b', 'c', '']
この挙動の違いをどうしたものかと
>>583 splitlinesは改行コードまでを一塊として処理する
\nだけに限らない
splitは指定したキーワードで分割する
>>583 その2つは用途が異なるからそれぞれ別の関数が用意されてるわけで挙動が違って当然
何を問題視してるのかわからない
>>584 splitもセパレータを指定しなければ\nに限らず空白文字(whitespace character)なら分割される
(それと連続した空白文字はまとめられるので空文字は含まれなくなる)
文脈からわかるけど空文字ってどこ界隈で使われてんだろう
pycharm使ってるんだが、
Windowsをクリーンインスコしたあとpycharmをインストールすると、
pythonの実行環境を再設定するのが面倒。
環境ってプロジェクトのフォルダー配下にあるはずなんだが、
その環境をpycharmが認識してくれない。
# 他人様の blogを勝手に拝借して恐縮だが、
/usr/lib64/python311.zip とは何ぞ? なんで sys.pathに zipが存在するのだろ。
https://www.tomoyan.net/python/pip#パッケージのインストールパスを調べる
> $ python -m site
>
> sys.path = [
> '/home/tomoyan',
> '/usr/lib64/python311.zip',
リヌクスならメモリ上に読み込む時にlzhに変換してから名前空間にロードするので
3.11はOS標準のpythonじゃないからzipにしてるんじゃないかな
PEP 273 – Import Modules from Zip Archives
https://peps.python.org/pep-0273/ 展開したディレクトリがあるのと同じ感覚で読み込めるらしい
c#とかやってるけど結局人工知能に興味が沸いてpythonに戻ってしまう
就職出来ればc#でもjavaでも何でもいいんだけど
この時代人工知能以外のIT技術って何を習熟していけばいいの?
もうjavaとかc#で文法以上の何をすればいいか分からん
興味あるならpythonでとことんAIやったらいい
他人のgithub落としてサンプル動かす程度は誰でもできるから勘違いすんなよ
>>595 いうて発展的にやることって大規模なデータ訓練とかでしょう?
それか卒論レベルの論文書けるくらいの研究を試してみるってこと?
>>594 人工知能に訊いてみりゃいいじゃん。人はなぜ生き、如何に死ぬべきでしょうと。
>>596 どう応用するかはお前の能力次第
好きにやれよ
>>598 そうだな
ただ成果はネットに公開しないほうがいいよね
ライセンス等に問題なければしょぼくても堂々と公開した方がいい
デメリットはない、就職時にもプラス評価
そもそも公開しても誰にも注目されないのが普通
>>601 お前もパクるんだろ?
気にすんな
実害被ってから考えたらいい
まずパクられるレベルになるのが難しい
平凡なアイデアでは間違いなく先人がいる
適材適所で言語変えてた、言語自体の研究してたくらいじゃないと
言語習得なんて就職時の評価にならん
どんな判断の上どんな応用してきたのかが知りたい部分
>>594のような有能な人は燃え尽きるタイプかなって思うので、常に謙虚でいられるように学ぶ姿勢を持つと良い。
一生学ばなればならないことを忘れてはならない。
AIが代わりに組んでくれる時代がすぐそこまで来てるからな
そのうち手で組むのは趣味だけになるよ
プログラムを作るプログラムを作るとシンギュラリティ来るぞ
>>605 有能じゃない
kerasとかtensorflowのバージョン上がって
2,3年前に書かれたコード拾ってもどう修正したらいいかもわからん
仮想環境で前バージョン入れてみるってことかな
流石に新しいコード書くのはスキル的に無理だし
大丈夫、始める前からパクられることを心配してるタイプの人間はすぐやめるから
パクられるようなもん作れたなら大したもん
誇っていい
>>594 言語仕様なんて勉強するものじゃないだろ
使いながら調べるだけ
本質はデータ構造とアルゴリズムだよ
>>613 使いながら?ライブラリと勘違いしてない?
あとから新発見があった場合にリファクタしに戻るんだろうか
言語仕様はひと通りみて作法がみえないと使いたくないな
>>614 どう適用して応用するかって一生つきまとう
道具の使い方じゃなくてそういう話
>>615 今はChatGPTあるからそんなこと勉強してるより書いた方が良いぞ
ChatGPTは古い書き方を出すことはまずない
たしかにたまにバグ入れてくるから鵜呑みはできないけど
書き方に関してはそうだね
次の機会に初手ChatGPTで試してみるか
文法や作法を初めから完璧に仕上げるのは無理なので書ける範囲でどんどん書いたほうがいい
>>615 仕事じゃなければ、後からリファクタリングでいいんだよ。存在しない美しいコードより存在するゴミコードの方が価値がある。
一通り見て作法がわからないと、っていうのはある程度プログラミング経験積んで、新しい言語の効力を最大限に発揮しないことには今よく知ってる言語で書いた方がいい場合でしょう
TwitterAPIV2でpythonで自動投稿するツール作ってるんですが
さっきまで投稿できていたコードで
Your account is not permitted to access this feature.
とターミナルに表示されるようになりました。
アク禁だと思うですが、Developer Portal見た感じ
そういうメッセージは出ていません。
時間経てばまた使えるようになるでしょうか
わかる人いれば回答ほしいです。
それか適切な質問スレ教えて欲しいです。
少なくともPythonの話じゃねーな
同じやり方ならどんな言語でもそうなるだろって
なんか特別なライブラリ使ってんなら別だけど
>>622 すみません、TwitterAPIに関するスレ探したんですがみつけられなくて
twitterはめんどくさいのでcookie読ませてselenium
とっくの昔に滅んでるがな
x86はソースコードみたいなもので、全然別の命令セットに翻訳して動いとるよ
x86もうダメぽと Intelが IA-64を出したけど、AMD64 (x86)に敗けちゃった。
結局バイナリ互換という強みに
誰も勝てないんだよな
不連続な変化は許容されない
SurfaceやMacのx64エミュレーションはそこそこ動くし
ユーザじゃなく設備とか特許とか提供側の都合じゃないかな
疑似的ボイス・トォ・スカル
組織はある程度大きくなるけれど構築方法
①Bluetooth v5.4
マルチ説ぞ可能なので同時に100に接続可能
飛距離は最大400メートル
②ピンマイク.完全ワイヤレスイヤフォン【マイク付き】
★これで司令塔を中心としたエリアが構築官僚
③ピンマイクのみの者は超指向性スピーカーにて指示を受けている
少し上のシステム
④家の防犯カメラを道路が映るように設置
⑤すまふぉのai機能拡張により仲間の未認識させる
⑥口パクによる読み取りやジェスチャーやアイコンタクトによりさらに指示できる内容を増やしている
①司令塔となる者にスマフォと全てのBluetoothをペアーリング
②aIアシストにより各仲間に隠語で話すウ
③警察にばれてモスク罪にAIによるアシストで行動パターンの変化をさせる
空き巣後の闘争中に路地に引き込んでの警察車両の足止め
仲間は通貨そのあとに車の故障で立ち往生これを繰り返す
万引きもチームプレイをすれば店員.万引きジーメンなどもかいくぐれる
ネットを返していない特設通信なのでサイバー警察からも逃げれる
>>594 > この時代人工知能以外のIT技術って何を習熟していけばいいの?
> もうjavaとかc#で文法以上の何をすればいいか分からん
就職先によってやることが違ってきますからね。
なんとも言えないんですが、
でも、俺が学生時代の自分に伝えるとしたら、
1.計算機の基礎(アセンブラ)を勉強してモニタ(OS)とコンパイラを作れ。
2.統計学の基礎理論を徹底的に勉強しろ。(数学もね!)
3.論文を書いて投稿しろ。教授か先輩に論文の書き方を教えてもらえ。(できれば英語で)
ですかね。
あなたの状況や能力が不明なのでなんとも言えませんが。。。
>>634 全く参考にならんな、そんな僅かなシェアの仕事を例にあげられても
計算機科学を応用せずに、計算機科学そのものを仕事の対象にして食っていけんものか
>>636 フランスに渡米してMITやStanfordの教授にでもなれば
pandas使いたかったから公式読んだが英語で全然わかんねーわ
翻訳も効果薄いし
仕方ないから日本語検索やcopilotでやりたいことだけ調べたんだが、みんな英語のマニュアル余裕で読めるの?
/\
/ ヽ\
/ ヽ \ / \
/ ヽ \__ / ヽ \
/ ‐_ ヽ ―――__/ ヽ \
/  ̄ / __ ヽ \
|  ̄ \
| |
| || |
| ゝ_ |||/ |
| ( ・ ブ ゝ__ ┃ ┃ |
|  ̄ ( ・ ̄ ̄ ブ ┛ ┗ |
| ゝ__ ノ ━┓ ┏ | ┃ ┃
| __  ̄ ┃ | ┃ ┃
| | ̄ ̄ーヽ | ┃ ┃
| | ヽ |
| | |ヽ | ━┓
\ _⊥_ | | ┃┛
\  ̄ ̄ヽ_⊥ |
\ | ┏━┓
\ / ┏┛
\ / ・
| |
| \
/ \
/ \
コンピュータ英語ってありきたりな表現しかないし翻訳の精度も悪くない
そのドメインの基礎知識が足りないだけじゃ
>>642 日本人でも読み書きは普通に出来るし得意な奴は多いぞ
日本人が苦手なのは聴くと話すな訳で…
>>642 大卒なら普通に読めるだろ
読めないってのは大学受験してないか
推薦でしたといってるようなもんだぞ
恥ずかしいから言わないほうが良いぞ
翻訳で「パンダ」って出てきても動物の方じゃないことは分かるしな
>>647 Twitterとかでも英語わかんないとか言ってる奴いてお察し
その発言自体がやばいと認識できてない
それなりの大学に行ってるやつは英語ができるのが当たり前という意識がない
文系なら言わずもがな
理系でもセンターで英語はやる
英語を捨てて受かる大学などない
テストでちゃんと実力は判るので問題なし
英会話はできないけど、それは論文読むのに不要
やりたい人は個人的に駅前留学で
駅前のハワイでおしぼりポンと抜いて
シコシコピュしてもらって英語もばっちり
なわけない
実際、read/writeとlisten/speakだと役に立つ度合いは圧倒的にR側だと思う
toeicだとLも同じ比重でテストされるので、ちょっと特訓するとスコアどんどん上がる
Rのスコアはもう上がらない
お前らスレ違いの話を、下手くそな日本語でずっとしているな
普通に喋れて外資系の会社で海外メンバーとコミュニケーション取りながら働けたら給料余裕で一千万円越えるから
エンジニアとして並レベルでもな
Pythonの検定てとっておいた方が良いです?
受かれば会社から補助は出るので金銭負担は実質ないけど
pythonそのものは1日もあれば理解できるけど、
各モジュールの使いこなしは1年経っても途上
どのモジュールが必要かも判らない状態で一律に検定できる訳がない
会社はそれで営業力上がるんだから取ってあげればいい
brew経由でアップデートしたら、急に仮想環境じゃないとパッケージをインストールできないとか
>>663 brewで直接導入できるpythonは他パッケージも使うものだから
システム部分をカスタマイズする使い方は避けたほうがいい
やるならpyenv等で独自に導入する
>>665 3.11までは問題なかったんだけど PEP 668 とかいうので急に。
anacondaもプラン登録とかめんどくさそうなので、pyenvが良いですかね。色々乱立しすぎて辛い。
pythonの環境構築は色々ありすぎるな(´・ω・`)
嫌々pyenvにしたら、普通には使えるもののjupyterからは!which pythonでpyenvのものが参照されるのに、python自体はmacのdevtoolの3.9を参照してたり、まじで意味がわからない。macもpythonもセキュアにしようと思ってるのか厳しくなり過ぎじゃないの。
もう嫌になってシステムのpythonにインストールしようとしたら、インストールできないパッケージもあり頓挫。環境構築がつらすぎる。
>>668 JupyterでつかうPythonはJupyterのカーネル設定で行う
!はシェルの結果なので関係ない
そこは昔から変わってない
jupyterのカーネル設定で、なぜか新しいのが認識されない。消した古いのpyenvを延々に参照したりしてる。minicondaもパスが自動で通ったり通らなかったり、プログラミング以外の部分があまりに辛すぎ。こりゃ大学もcolabになるわ。。。
>>670 docker使えよ
なんで生で使ってるんだ
venvも現在のpython環境との依存があるから大して便利でもない
pythonの環境作るのにpythonが必要な時点でナンセンスなんだよ
pythonのバージョンをとっかえひっかえして使いたい人にとってはそうなのかもしれんが
俺はあんまり気にならんな
Linux のローカル開発なら、Docker を使うのが簡単だが、
日本人が作った、多言語バージョンマネージャーのanyenv で、rbenv, nodenv も使える。
pyenv も同様。
asdf でも、多言語の好みのバージョンを入れられる
echo $(anyenv root)
ただし、$ANYENV_ROOT は定義されていない
/home/ユーザー名/.anyenv
echo $(rbenv root)
echo "$RBENV_ROOT"
/home/ユーザー名/.anyenv/envs/rbenv
echo $(nodenv root)
echo "$NODENV_ROOT"
/home/ユーザー名/.anyenv/envs/nodenv
システムに最初から入っているバージョンをいじってはならない!
他のアプリがシステムバージョンを使っているから、
それを変更すると、多くのアプリが動かなくなる
だから開発環境は、自分だけのユーザー環境以下の
/home/ユーザー名/.anyenv 以下に入れる
システムバージョンは、
file `which python`, file `which python2`, file `which python3` で確認できる。
/usr/bin/python, /usr/bin/python2, /usr/bin/python3 など
pythonの仮想環境とやらがよくわからない
こいつら裏で何してんの?
単に特定のディレクトリに別のpythonをインストールしてるだけ
使う時は環境変数を切り替えてそのディレクトリを参照するようにしてる
>>680 pythonは3.8、3.9、3.10、3.11と無限にバイナリを変える方針になったから
もうそれじゃ無理なんよ
完全に破綻する
>>684 サポート切れとかでもない限りユーザーが必要なバージョンを使い続ける形でなんの問題もない
読みができるなら、自動翻訳が正しいかチェックできるので、書けるのと同じ
>>686 サポートがすぐ切れるのがpythonのモジュールの特徴
パッケージなら自分が困るような不具合が見つかるかauditで指摘が上がるまで使い続けるかな
一生懸命最新バージョンを追いかけるモチベもないし
そんなマイナーパッケージを使う方が悪いし、そもそもPythonとは関係ないだろw
普通に関係あるでしょ
Pythonのライブラリは古いバージョン対するサポート期間よりも
新しいバージョンへの対応がめちゃくちゃ遅いほうが問題
メジャーなライブラリでも3.12対応してないものまだまだある
どんなプログラミング言語でもあることだし、使いたいライブラリに合わせてPythonのバージョンを選ぶくらい普通のことでは
JavaみたいにEOLまでの期間がめちゃくちゃ短いならわかるけど、
3.9ですらあと1年以上あるでしょ
そもそもOSSにそこまで期待してもねえ
金払って作らせてるならともかく
3.12を使わなければならない理由があるの?あるのだとしたら自分で直すぐらいの気概でいる必要があるのでは
pythonで顔を検出してモザイクかけるのができるのなら
陰部に自動でモザイクかけることもできる?
というかそういうソフトってあるの?
>>695 陰部がそのままなら難しくは無い
だけどオモチャだったりプレイだったりすると判定が難しい
まあ顔もそうでしょ
パーティグッズみたいなの付けてたら判定難しいのと同じ
>>694 メジャーなライブラリが言語の新バージョンに対応するのに
半年~1年かかるのが常態化してるのはPythonだけ
Java、C#、Go、Swift、Ruby、JavaScript、PHPあたりではなかなか見ない
3.9は去年の10月でSPEC 0のサポートが切れてるから特別な事情がない限り選択肢としては無い
Numpyとかでも既に落とされてる
言語の公式サポートは5年と長いけど
ライブラリの関係で実質サポートは2年~2年半程度と短いのが実状
>>696 プレイは難しいか…
Inpaint-Anythingみたいなので頑張るしかないのな…
手動はもう嫌だ…
>>694 JavaよりPythonのほうがランタイムのEOL短くね?
来年のEOLでどう更新するか既に頭痛いぞ
お前らそんな事気にしてるのか?
客先でWindows95でVB5で動くシステムが現役で今でもメンテと追加機能開発が普通に有るんだぞ
ちなみその客は大手チェーン店で件のシステムがインスコされてるPCが5万台だぞ
クローズドだからいいんじゃね
本当にクローズドならな
FC98がいまだに使われてるこんな世の中じゃ~(´・ω・`)
ベーシックマスターLv2が半導体製造装置の制御に使われてるの見た時はびびった
今のpcのスペックにwin95でSSDとかなら胸が熱くなるなw
30年前のOS動いてるのを観測するとちょっともう1回見たくなる
大きな駅とかイベント会場に設置してある電子看板とか偶にシステムエラーでデスクトップ画面見えるけどWindows95とか多いからね
顔検出のやつでこういうの見つけたんだけど
https://huggingface.co/Bingsu/adetailer import cv2
from PIL import Image
img = "

;
output = model(img)
pred = output[0].plot()
pred = cv2.cvtColor(pred, cv2.COLOR_BGR2RGB)
pred = Image.fromarray(pred)
pred
これをどういじれば赤枠内をモザイク処理させることができる?
デジタルサイネージ Windowsでググると面白いな
95 98 MEでまだ動いてるんだな
パチンコ屋のパネルはなんでぶっ壊れても直さないんだろうな
Windows95は起動してるだけで何もしてなくても1週間で落ちる(面倒なので原因は追求しなかった)
>>694 専ブラ動かすのにしか使ってないから実情知らんけど
JavaはLTS選べば長い方になるんじゃね
今からなら17
>>707 FC知らないのかガキめ
if a < b:
flag = True
else:
flag = False
は
flag = a < b
と書ける
圧倒的にすっきりするけど、なんか頭に入ってこなくなる
どっちがいいんだろ
別にどっちでも良い
細かいことを気にし過ぎ
ただし頭に入ってこないってのは不味い
自分は書かなくても書かれてるコードを理解して頭に入る様にする必要はある
理解できない訳はないけど
0.1秒で判るか0.5秒かかるかという話
>>721 普通はどっちもダメ
単純な比較結果をフラグ化したりしない
そんなこと言ったらflagという名前も具体的でないのでNG
>>721 現実に前者を書くことは無いような気がする。大抵は、
if a < b:
flag = 'hinomaru'
else:
flag = 'union jack'
みたいな使い方でしょ。
a < b の評価値を保存したい場合は、自然と後者になるように思う。
filled = bool(count == limit)
みたいにbool()使ってたな
Pythonのand/orはbool返さない場合あるし
霊感的には、それは、
(flag = a) < b と解釈させたら、
flagがtrueかfalseにより動作が
違くなるような気がする。というか
flag ← (a < b) って感じで
ゼッタイ何時でもπソンは解釈するのだろうか。
flag = True if a < b else False
flagの代入以外に副作用ないならまずこう書くけど
flag = a < b
でいいやんとなる
>>728 >(flag = a) < b と解釈させたら
Pythonの場合はflag=aがstatementで値を返さないのでそういう解釈をさせることができない
(flag=a)だけでもassignment statementの文法に反してるからエラー
(flag := a > b)と(flag :=a) > bでflagの値が変わる
前者が後者のように評価されないのは演算子の優先順位で決まってるから
>>726 >a < b の評価値を保存したい場合は、自然と後者になるように思う。
boolを返すa < b を保存するのが妥当な場合ってどんな用途を想定してるの?
・a < bの処理にそれなりの時間がかかる
・a < bの結果を繰り返し使う
・比較演算子がbool値を返す
・関数ではなく演算子を使うのが妥当
俺は↑これを全部満たすような用途は思いつかない
いずれにしろflagを使うほうのコードも含めて考えたほうがいいように思う
>>732 > ・a < bの結果を繰り返し使う
繰り返しというか、後で使いたいのだろうな。
a と b 各1ワードを保存できる余裕はないけれど、評価結果 1ビットなら64個保存できる! みたいな。いつの時代の話だよ...
元は、後でif文で使う条件が複数あって、最初Falseで初期化して、
一つでも成立したらTrueにして、みたいな処理になってた
で、いろいろリファクタリングしてる途中で、
>>721みたいな変形があった
最終的には条件が1つになったのでそのままif文に入れた
a, bが不変であっても
変数化することでコードの見通しがよくなるなら
情報が冗長になってもそうする
現実ではしないflagって命名に囚われてそう
>>735 それは条件が複数あったとしても条件式部分を関数化して関数内で早期リターンするパターン
forの中でアーリーcontinueとか、関数からアーリーreturnは便利に使うけど、
抜ける先が無くてアーリーなんやらできないと困る
関数内関数はなんか読みにくいし
735みたいに、コードの詳細がわからないのにこう書くべきって決めつけてくる人ってなんでなのかな
理想的なケースでは切り出しやすくても、泥臭いケースだと切り出しても見通し悪くなるだけ、みたいなこと
よくあるのに
>>739 話題の発端の人だろ、
>>735 は。
仕様書を書いてないから、条件分岐の意味がわからなくなるんだよ。
>>739 >>740 ごめん、まちがえた。737だった。735すまん。
たくさんのファイルを3ステップで加工したい
一つずつやると時間かかるので、並列処理させる
全ファイルをステップ1処理 -> 全ファイルをステップ2処理、という感じ
それでかなりスピードアップはするけど、
ステップの継ぎ目部分で全体の完了を待つのが無駄
全体は待たずにファイル毎にどんどん先に進む並列処理を
簡単に書くモジュールある?
>>748 処理がファイル間で独立しているならmultiprocessingモジュール
Unix環境ならxargsコマンドで足りる話にみえるけど
concurrent.futuresモジュールのが書きやすいかもしれん
どっちも見てみて
あんまりいいサンプルが見つからない
キモは、プロセスの実行に条件があるという点
file1-step1が完了してないとfile1-step2は実行できない
必要なプロセスを全部登録して実行させるとそんなことは考慮されないので、
どのプロセスが実行可能か依存関係を教えてやらないといけない
モジュール使う分には単純だから公式ドキュメント読んで
https://docs.python.org/ja/3/library/multiprocessing.html https://docs.python.org/ja/3/library/concurrent.futures.html それでファイル単位に並列にして
ファイルを引数にstep1/step2を関数化したら後は呼ぶだけよ
あるいは外部コマンド化して
cat paths | xargs -IZ -P $(nproc) sh -c 'step1.py Z; step2.py Z'
step1とstep2でプロセスを分けずに全体を1つのプロセスにするということかな
実際にはそれぞれで別のexeファイルを実行するのでなかなか難しい
for file in files:
step1.exe file
for file in files:
step2.exe file
という形じゃなく
step1.exe files
step2.exe files
という形で実行してるなら各exeがファイル毎に進捗報告やコールバックしてくれないと
ファイル単位で処理を先に進めるのは無理
前者でやってるならやりようがあるけど
ファイル単位じゃなくステップ単位にまとめるとスピードアップしたということなので
その原因を先に確認した上でやり方考えたほうがいい
性能向上のための並行/並列化は
具体的な処理内容やワークロードの特性によってアプローチが変わる
one size fits allなやり方は存在しない
何を言ってんだこいつは
プログラミング言語の前に国語をやり直せ
そうだな
>>748を100万回読み直して相手に何が伝わってると思うか感想を述べよ
>>752 >'step1.py Z; step2.py Z'
これは'step1-3.py Z’でよくない?
キャッシュされてもインタプリタ起動のオーバーヘッドはそれなりにかかるので
>>755 なるほど
実際にはまだ何も並行化/並列化できてないという話なのか
>実際にはそれぞれで別のexeファイルを実行するのでなかなか難しい
だったら↑この思い込みを捨てることから始めたほうがいいよ
結局のところPythonで並行/並列化するなら以下の4択なので
具体的な処理内容とワークロードの特性を加味して適切なものを選んでね
1.非同期
2.マルチスレッド
3.マルチプロセス
4.非同期+マルチプロセス
結局、
proc1.exeをsubprocess.Popen()で並列処理
proc2.exeをsubprocess.Popen()で並列処理
proc3.exeをsubprocess.Popen()で並列処理
となっていたものを、
proc1.exe
proc2.exe
proc3.exe
を実行するbatファイルに移動させて、
batファイルをsubprocess.Popen()で並列処理で目的は達成できた
batファイルかー、という気もするけど、並列処理で依存関係を気にした例は見つからなかった
(並行処理なら普通)
バッチファイルのことをbatファイルと書いているのは初めて見た
マジか
"バッチファイル" 473,000
"batファイル" 134,000
だから少数派ではあるけど、22%くらいの勢力はあるのに
そもそも、batファイルを使った経験自体が少ないのでは
>>758 テキストファイルの操作みたいだけど、そういうのは処理範囲を指定して同時に動かすんだよ。
>>760 batファイルという書き言葉は最近、発生しているようだけど、一般書籍でもマイクロソフトでもbatファイルとは呼んでいない。
日本語ではバッチファイル、英語ではbatch file。
バッチファイルを使ったことがないというのは、シェルスクリプトを使ったことがないというのと同じで、Pythonコードも動かいたことがないと思われてしまうレベル。
>>762 ステップは行という意味に思われるからやめた方がいい
>>762 複数のファイルと書いてあったな。
並列化には担当するファイルを分けるなどいくらでも方法はある。
マルチプロセスの日本語訳が並列処理、マルチスレッドの日本語訳が並行処理だが、英語ではマルチという言葉で同時実行という言葉ではない。
同時実行という意味を付加しているのは日本語。
EXEファイルを二重起動とかPythonもバッチファイルも関係ねえな
実行ファイルを引数なしで実行するとか、シリアル前提処理を多重起動して、想定どおりにならないとか狂っんなw
ID:poYagYhe0 は自作自演のネタ野郎だった
>>763 batファイルでも別に普通じゃない?
拡張子batのファイルには違いないんだし
txtファイル、jpgファイル、mpgファイルと同じだよ
テキストファイルの拡張子をtxtとしているのはWindowsの世界だけ
Windowsを使っていてバッチファイルを知らないなんて素人だろ
>>770 拡張子は拡張子でしかない
JPEGのファイルの拡張子はjpegが本来の拡張子で、jpgはWindows、MS-DOSの拡張子は3文字までという仕様で発生したもの。
さらにWindowsのデフォルト設定だと拡張子を表示しないんだぜ?
何をどう勘違いしているのかな。
拡張子がhtmlだとhtmlファイル、拡張子がhtmだとhtmファイルだと呼ぶなら、単に無知をごまかしているだけ
バッチファイルはマイクロソフトの命名のセンスが悪かっただけだが、バッチファイルと作っている会社が言っている名称を使うのが素直
拡張子が3文字だと思っている疑惑があるのと、UNIX、Linuxの世界では拡張子はあくまで目印にすぎない
ファイルが何のファイルかは少し読み込んで判断する
WindowsでUTF-8のテキストファイルを扱う場合は、テキストファイルにBOMという情報を先頭に書く
シェルスクリプトも1行目に自分自身の種類と何で実行するのかを書く
どうでもいいことで盛り上がってんなww
batファイルってのは同じバッチファイルでも.cmdじゃなく.batだぞってこと
htmファイルも同じ
まあ個人的には.batファイルのようにドット付きでなら書くけどドット無しでは書かないな
>>758 proc1.exeをsubprocess.run()
proc2.exeをsubprocess.run()
proc3.exeをsubprocess.run()
↑この一連を関数にまとめればbatファイルはいらない
それとまとめた関数は直接Popenじゃなくmultiprocessing経由で処理すれば
Poolを使う分だけオーバーヘッドが減る
あと処理内容次第だけどasyncio使って全部非同期ににしたほうが
コードは多少面倒でもリソースが減って速度も出る可能性もある
Pool版も問題なく動いた
if __name__ == '__main__':
が要るのね
子供がエラー出てもなんも判らんのな
get() すると判るけど、マルチプロセスにならないので、デバッグ終わったら外す
グローバル変数経由で参照させようとしても見えないとか罠がいろいろ
apply_async(func, args=(arg,))
の余計なコンマもなんじゃこれと思ったら、無いと動かないんだよな
そんなもんバグやがな
グローバル変数が参照できるかどうかは処理系依存な気がするんだよな
Copy-On-Writeでプロセス増やしてたら普通に参照できる筈
そんな互換性の無いコードが書けていいのかとは思うけど
さすがにこのレベルの基礎を押さえていない人は
自称Python初心者でなくても↓こちらのスレへどうぞ
>●関連スレ● 自称初心者は↓へ
>【まず1嫁】くだすれPython(超初心者用) その59
>
http://2chb.net/r/tech/1689241721/ 要素1個のタプル 1,
要素0個のタプル ()
なんでやねん
コンマこそがタプルを表しているなら、コンマだけが空タプルの本質だろうに
冗長に書いて(,) でもエラーになる
コンマがタプルで括弧はおまけだけど空の時だけ例外ルール
>>790 あのさ(1)だとタプルじゃなくてただ数値がカッコで括られてるだけと判別出来ないだろ
>>792 要素数が変化しない空のシーケンスを表現するためにある
fが引数1個を取る関数、gが引数を取らない関数だとしたら
apply(f, (1,))とapply(g, ())
のようにempty tupleを使うのが理にかなってる
SQLで書いてるクエリをSQLAlchemyでORMにしたいのに
全然出来んわ、半分諦めかけてる
なんかコツとかないんか?
word1かword2かword3のいずれかがstrに含まれているかどうか
はどうやったらすっきり書けるだろう
内包表記なら書けるけど、
if (word1, word2, word3) in str
くらいの判りやすさが欲しい
すぐに思いつかないようなゴルフが仮にできるとしても
関数化した方がわかりやすいとおもう
any(w in str for w in words)で不満か?
>>798 >>796 さんは「すっきり」と仰っていますが。
# 敢えて反語法で表現しました。
>>800 (word1 in str) or (word2 in str) or (word3 in str)
を、すっきり書きたいのですと。
list in str
を許容するように文法を変える
結果のリストが得られるので、
any(list in str)
みたいに使う
>>796 ここで言うstrって変数じゃなくて型か?
any([isinstance(x, str) for x in (word1, word2, word3)])
any(map(isinstance, (word1, word2, word3), [str]*3))
関数一つかますしか無いだろうな
def find_words(list, str):
return [w in str for w in list]
print(any(find_words(['a', 'b'], 'bcde')))
、pythonでWEBスクレイピングをしてるのですが、タスクスケジューラで動かすと画面が欠けます。
ログイン中だと問題なくでます。
なぜかサイズ指定しても効かないのですが、タスクスケジューラで登録して自動実行させてる方いませんでしょか?
>>810 「ユーザーがログオンしているかどうかに関わらず実行する」が選択された場合、
タスクはセッション0のデスクトップが無い環境で実行される(Vista以降)
通常のブラウザでイスクレイピングをしたければ適当なアカウントにログインしていなければならない
またはヘッドレスモードのあるブラウザなら動きそうではあるがどうだったかな
>>811 ありがとうございます。
ヘットレスモード試してみます。
まずはログインした状態でタスクスケジューラ起動とかが一番近道かもですね!
>>796 s = set(str.split())
if {word1, word2, word3} & s != {}:
...
>>796 ごめん間違えた
s = set(str.split())
if {word1, word2, word3} & s != set():
...
配列のインデックスが1じゃなく0から始まる利点て?
0の方がいろいろ合理的だけど、
printf(f'{count+1}')
とかやるよな
範囲を示す時に始点と終点よりも、始点と終点+1(次の要素の始点)の方が
便利なケースが圧倒的に多いけど、なんか怖いので愚直にやる
>>813-814 スマソ、なんか Trueにならなくね?
>>> word1 = 'abc'
>>> word2 = 'def'
>>> word3 = 'ghi'
>>> sstr = 'aaabcddd'
>>> s = set(sstr.split())
>>> {word1, word2, word3} & s != set()
False
>>> s = set('zzzzzzz'.split())
>>> {word1, word2, word3} & s != set()
False
>>>
>>815 Pythonって配列無いんじゃ?リストやろ
C言語系とかの配列的に添字が0から始まるのはメモリアドレスを計算する時に高速な為
1. {'sss'}.issubset({'s', 'ss', 'sst'})
2.
strings = ('miss')
ret = any([s for s in ('s', 'ss', 'ss') if s in strings])
3. filter(lambda s=s: s in strings, strings)
4.
strings = ('ss', )
is_in = strings in ('s', 'ss', 'sss')
ヒント
画像情報 テレポート
エネルギー 瞬間にどう
観測結果論部あり
※情報とエネルギーを送れるのなら任意の波と線とHzを任意の場所で発生可能
上記の技術に脳内インプラントデータを対象者全身に送信で操り人形
地球外宇宙人もサイコパスが使用中
高度な科学を使用できていても自然環境も人間社会いも狡猾な者【人間を物として見る者】が圧勝
ガスライティング.ギャングストーカー.電磁波攻撃 等
現在の若者サイコパスで無い者は何%いるのかな?
地球派【マイクロ波聴覚効果】は違法でないので宇宙人が行っていても合法
別の惑星はテロに該当なので問答無用で戦争
マイクロ波は波の種類なので
X線でマイクロ波を起こしているので
お前に200回のx線を打ち込んだも理解できるでしょう
※5Gはミリ波で動的動作も追跡可能になるのでマイクロ波より便利
テラヘルツ波はミリ波と比べて現在不明なので研究中
何Hzの帯域は対象者周囲の状況に応じて変化していると思われるので
線種類 + 波種類 + 何hz + 使用w数 = 音波【音の高さ】?
requests.get() したものに対して、
<meta charset= の内容を見てencodingを設定してくれる機能ってある?
>>817 その条件では使えない
英文みたいに空白で単語が区切られている時に使える
部分一致はsuffix arrayみたいな重く複雑なsetが必要
ひょっとしたら何かエレガントな書き方があるのかもしれないが
>>822 まずdecodeしないでmeta見れるの?
apparent_encoding にするといいよという記事をよく見るけど、
encodingに困ってる時にapparent_encoding使うと悪化する
困ってない時は何もしなくていい
結局使い所が無い
>>818 高級言語なのにそこにつっこむセンス
速度に影響するから知っておいても損はないけども
むしろ内部実装でいうとlistは配列ちがう?
>>826 エンコーディングの推論って日本語だとうまく機能しないよな
結局決め打ちして試すしかない
決め打ちしなくても、meta読めばそれが正解なんだよな
答えが書いてあるのに推測しようとして失敗する
charsetに嘘書いてある事もあるから
metaは参考程度
>>827 なんで配列がリストと同様だと思ったん?
「動的配列は配列じゃないリストだ」と言い張る人なんじゃね?
それか何か根本的な勘違いをしてるか
まあどうでもいいけど
その辺の言葉の使い方は言語や人や実装によって違うからまずは定義をちゃんとして欲しいな
言語も何も指定せずにプログラム関連でリストというと、リスト構造を指すよな
基本情報も持ってないような奴はその辺のデータ構造としての配列とかリスト分かってないんだろ
大抵はリンクリストを指すのだろうけど動的言語あたりが好き勝手用語を解釈し始めて
動的配列を指すこともあるし一般的にモノが並んでいることをリストと言ったりもする
ややこしい時代になったもんだ
データ構造に言及しない文脈なら一般的に一覧とかリストで済ますでしょ
PythonスレはVBAスレに並ぶ初心者が集うスレだからこんな議論が度々起きても仕方ない
ごくごく一般的な言葉を環境特有の用語として使う馬鹿が悪い
数学なんかそんなんばっかり
わざとだろと思うくらい
俺の投稿GW以降初なんだが馬鹿の自演言い訳扱いにされてんの?
>>833 配列そのものが連続したアドレスのメモリ領域のことだからな
動的にメモリを確保する場合は、型が後づけになるから配列と呼ぶの違和感があるのは仕方ない
サイズ決めてからリスト作ったら
内部データは1つの配列?
それとも1つ1つ個別のリンクリスト?
>>843 >配列そのものが連続したアドレスのメモリ領域のことだからな
何を主張したいのかよくわからん
Pythonのlistは配列じゃないと言いたいの? それとも配列だと言いたいの?
>動的にメモリを確保する場合は、型が後づけになるから配列と呼ぶの違和感があるのは仕方ない
動的にメモリを確保することと型が後付になるかどうかは関係ないよ
メモリなんかいつでも好きな時に確保できるように見えるだけで、
実際はmallocで頑張って実現してるしな
思想は先進化していくのに実現手段はずっとCなので、
職人がどんどんハゲる
結局
>>839 だよな。お前の言う「配列」はどれなんだってな。
「環境特有の用語」として使ってるやつなんていないだろ
発端はこれ
>Pythonって配列無いんじゃ?リストやろ
書き方から配列ではない”リスト”、リストではない”配列”について述べてることは自明
つまり抽象データ構造としてのリストを指してるわけではなく、その具体的実装のうち配列ではないもの(リンクリスト等)を指しているか、Pythonのlist(リスト型)を指していることになる
次にこれ
>なんで配列がリストと同様だと思ったん?
これはlistの内部実装が配列だというレスへの返信内容なので、発端となったレスと合わせるとlistがリンクリスト的なもので実装されてると勘違いしてたということ
同じ勘違いをしてると思われ、かつ同じように二言目にはCに言及してるレスが散見されるのは偶然ではないでしょう
トートロジーなんだよな
中身のアドレスが規則的に並んでいるものを配列と呼ぶ
と定義すれば、配列はアドレスが規則的に並んでいる
自分の定義に疑問を持つような文章を書くから、
知らんがなお前の脳内にしか答えはねえよになる
python変化目まぐるしくて追いつくのがしんどすぎる....
最先端のpythonライブラリのポータルサイトとかないの?
毎日確認したいわ
本でkeras、tensorflowとか必死で習得(完璧ではない)したのに
今はpytorchも主流らしいね
こんなの追いつくの大変だわ
webとpythonは本当に頭がスポンジじゃないと無理だわ
>>852 https://pypi.org/ だいたいのライブラリはGitHubでプロジェクトつくってるから
バグやリリース前の情報を追いたいならissuesをみる
>>852 pytorchも生で使う人はいないぞ
transformersというpytorchを使いやすくしたライブラリしか使われてない
まあそれも計算資源がある会社や組織しか無理だけど
日本向けにCPUでうまく学習できるライブラリ作れよって思うけどね
スパコンはあるわけだし
もう作れる技術ある人がいないのだろう
悲しいなあ
>>853 見方がわからんw
>>854 人工知能のアルゴリズム組めるってそこそこ優秀で大学院レベルだと
思うんだよね
javaとかだとベテランが大量にいるだろうけど
それってjavaの取り巻く環境と文法についてのベテランであって
pythonのベテランっていうともろに数理科学に精通した人達だから
地頭レベルでいい人なんだろうな
もしかして独学は途方もない挑戦なのかも
>>855 昔はライブラリなんてなかったし
どんな分野でも大企業の人間とか研究室の教授とかが作ってたんだよなあ
>>851 >トートロジーなんだよな
>中身のアドレスが規則的に並んでいるものを配列と呼ぶ
>と定義すれば、配列はアドレスが規則的に並んでいる
またまた
>>843と同じで何を主張したいかわからん文章だけど
結局Pythonのlistは俺の定義する配列ではないということ?
AIはいい方法が見つかって、あとは規模を拡大していくだけじゃないの
その先に強いAIもあるよ
循環定義と言いたかったんじゃね?
循環してないから的外れだけど
>>860 循環してないならトートロジーで合ってるのでは
>>861 もちろん合ってない
哲学板ででも聞いてくれば?
そんな板があるのか知らんけど
>>855 PHP の本を書いている、たにぐちまこともPython の動画を出そうとしたけど、
大学で勉強しないと無理と言っていた
KENTA が既に言っている。
理系で、8年も掛けて勉強するのは効率が悪い。
何年も勉強する看護師とかもそう
文系のアホが唯一金持ちになれる、最強のチート職業はRuby on Rails である!
Runteq の菊本も、千時間と言っている。
外人も言っている
Railsでは頭の良さが必要ではなく、再現性が高い。
東大受験と同じ。
アホでも3千時間の暗記で、偏差値が40上がる。
75時間で1偏差値上がる
だから、ほとんどの学校・サロンではRailsを教える。
知識が勉強時間に比例するから。
東大向け予備校と同じ
一方、Pythonは大学院数学科とか、地頭の良さが問われる。
文法を知っていても雇われない。
全言語の中で唯一、人余りの言語だし
文系なら絶対に無理。
理系で偏差値70以上なら独学でもできるだろうけど
Java は建設業と同じ、5大SIer の多重請負構造の身分制度があるから、
間に1社入る毎に、3割抜かれる。
絶対に大企業系列での身分が変わらないから、
一発逆転を狙うdrop out 組は、Railsへ進む
東大数学も難なく解けるような人間だとpython+人工知能も余裕なんだろうな
高卒にプログラマかなり多いけど彼らは人工知能理解できるのだろうか?
確率過程、解析学、線形代数など大学数学レベルの応用なわけだが
建築現場の労働者が強度計算できるのか心配してるようなもの
独学で学習したが動かせるようになるまで2.5年かかった
理解できているかは、分野や扱い方次第でどうとでも言えるかと
人工知能という単語が広すぎるので
何の何でどのモデルをどの手法でどうやってトレーニングして、何をできるようにしたことがあって、何に適用したことがあるか?
位まで説明してくれないとわからない
マクドに行ってハンバーガーくださいと言っているのと変わらないということ
>>846 動的に確保したメモリ領域を1バイト単位の変数からおかしくないが、可変のマルチバイトの型にすると物理アドレスで追えなくなる。
Pythonは一般的にコレクションにあたるものが独特の定義と変な構文・命令文で操作するから、素直な配列をリストと言う名称にして、配列とも呼ぶということにしたせいでわかりにくくなった。
配列は連続したメモリ領域という意味合いがあるが、Pythonは完全に無視しているので、初心者にはハードルが高い。
変にかじってるから連結リストを連想するんでは
シンプルに一覧、複数の要素を含むデータ構造ってだけ
>>871,872
配列の領域を動的に拡張する動的配列の話と
ヒープというか1つの配列で複数の型の値を管理する話がごちゃ混ぜになってたのね
動的配列であるPythonのlistも連続したメモリ領域(内部はCのarray)
先頭アドレス+インデックスでインデックス番目の要素にO(1)でアクセス可能
連続メモリ領域である配列に型の異なる要素を入れられるのは
PyObjectというオブジェクトへのポインタを格納してる配列だから
intやfloatを格納してもポインタの間接参照が必ず入るので
それを必要としないarray.arrayやndarrayに比べるとシーケンシャルスキャンなどは遅い
なんでappendした時のアドレスは最初から空いてるんだ?
動的配列(dynamic array)とか可変長配列(variable length array)でググってください
>>874 それは実装の瑣末な問題
ポインタに整数を埋め込んでいるrubyやv8などもある
>>866 Stack Overflow 米国年収。2022 -> 2023。
Rubyは、Go/Rust/Elixir の3大言語を超えた!
Ruby : 9.3 -> 9.9 万ドル
Elixir : 9.3 -> 9.6
Go : 8.9 -> 9.3
Rust : 8.7 -> 8.7
多くの言語 : 6.5~7 -> 7.3~7.8
PHP : 5 -> 5.9
Dart : 4.4 -> 5.6
プログラマーは、大卒コンピューターサイエンスが必須。
ただし、PHP, Dart だけは高卒用言語だから低収入。
だから、高卒で人工知能などをやっている香具師はいないはず
TIOBE Index 2024/4 では、
PHPは、9位 → 17。
一方、Ruby は、18 → 13
2019年「滅びゆく5つのプログラミング言語」として、
Ruby, Haskell, Objective-C, R, Perl の記事が出たけど、
実はRubyよりも、PHPの方が先に滅んでしまった
KENTA も、PHPをオワコン認定した。
そして初心者のキャリアパスは、Rails → Go のみと言う
滅ぶ為には一度栄える必要があるからな
滅ぶことすらできない言語が死屍累々
str.replaceとre.subがどっちがどっちだったか覚えられません
>>874 知識がないようだけど、配列はすべて参照型というわけではない。
同じバイト数のデータ型なら、連続の領域を使う。
動的メモリ確保をして、メモリの断片化をさせる実装はあまりに無駄が多い。
RAMがハード的に仮想アドレスを持てるようにすれば、
ソフトが断片化とか気にしなくてよくなるな
CPUにMMUが追加されたかなり昔からOSが似たようなことをしているわけで
>>883 何言ってんだ?
全て参照だぞ
>同じバイト数のデータ型なら、連続の領域を使う。
これもデータをメモリに格納する話
先頭アドレスだけ解ればデータ型のビット数で算出出来るでしょ
ちんちんシュッシュッ
>>886 pythonはレジスタ長では
>>883 全参照なのでそこは間違い
連続になるのはcで連続に扱ったほうが高速に動くように改善されたデータ型だけで
必ず連続になるわけではないよ
>>890 >連続になるのはcで連続に扱ったほうが高速に動くように改善されたデータ型だけで
Pythonのlistにそんな最適化はされてなくない?
何故appendするとappend後のものを返すんじゃなくて元データが変更されるのか
>>893 >>832のソース見てもわかるようにそういう機能は無いね
>>894 appendは何も返さない
新しいlistを生成して返すのではなく
元のlistをmutateするのはそのほうが効率がいいから
>同じバイト数のデータ型なら、連続の領域を使う。
「連続領域を使う」というのは「配列の中身がポインタじゃなく実データになる」という意味なんだろうけどバイト数が同じかどうかで判断したりはしないでしょ
少なくともndarrayやarray.arrayはそういう実装にはなってない
他の言語の話だとしてもバイト数で判断する実装というのは聞いたことがない
読んでないけど、普通に実装したらポインタの配列にするのでは
array型すら中身はポインタだろ
値を直接突っ込む意味がない
pythonで扱う対象は全てオブジェクトです
というのは、高級なことを言ってる訳でもなくて、
全部ポインタで管理してるというだけの意味なんだよな
数字の1を入れたいと思っても、
0x01とか0x00000001を直接入れずにその実体は別にあってそのポインタを入れる
>>898 array.arrayそれ自身はPyObjectのポインタだけど
配列に格納してる中身はポインタじゃなくて実データ
取り出す時にPyObjectのポインタに変換してる
値を直接突っ込む意味はポインタのデリファレンスが必要なく
ローカリティが高いので処理によっては高速化できる(numpyが好まれる理由はこれ)
あとは必要なメモリサイズを小さくできる
>>886 Pythonの配列のことではない。Pythonはコンテナというコレクションしかないので、他のプログラミング言語からするとアクセスの遅いコレクションしかないという何とも言えないクソ
>>890 リストあたりは連続領域だよ?
要素に次の要素のアドレスが入っている。
>>899 それは違う。普通の変数は関数などの呼び出し時にその変数の領域が割り当てられる。
Pythonのスレはコンピューターをわかっていない人間が多すぎるよか
関数の引数で渡されるのが変数の実体なのか参照なのかは参照渡し云々で、
オブジェクトとして管理してるかとは別次元の話
>>908 関数というサブルーチンを呼び出すときはCPUがスタックに呼び出し元の情報を保存して、関数というサブルーチンをプログラムからメモリにコピーする。
ノイマン型コンピューターなんだから、プログラムが保存されているところと、実行するプログラムは別物。
スタックから取り出したものが実体なのかポインタなのかは実装次第
コンピューターをわかっていない人間が多すぎる
ID:oNhs0c9T0の言ってることは、一見それらしいことを言ってるように見せかけて全部メチャクチャなので読む努力をしない方がいい
わざとやってるのかな?
>>910 スタックはメモリ構造のこで、スタックにブッシュしたメモリのアドレス順とは逆にポップではメモリの値を戻す。
GPT-4oに頭の悪い文章を書かせるテストをしています
>>906の頓珍漢レスを解説すると
彼が「関数などの呼び出し時に割り当てられる変数の領域」と読んでるものはスタックフレームのこと
対して
>>899はスタックフレーム内の各変数が指してるのが
内部表現ではポインタなのか実体なのかという話をしてる
Pythonの場合は変数が指してるのはすべてポインタ(PyObject *)
もういちいち指摘しないけど
>>903や
>>904もすべて間違いなので
良い子は騙されないようにしましょう
>>915 スタックはコンピューターのスタックでCPUの仕様
コンピューターを知らずに特定のプログラミング言語の用語だと思っているのか情けないねえ。
100%発達障害
- 文脈が全く読めない
- 自分だけに通じる言葉使い
- 異常なまでに過大な自己評価
- とにかく自己正当化する
>>913 違う
ブッシュって何?
プッシュ(push)ね
間違えちゃダメだぞ
>>916 CPUについて詳しそうだから聞くんだけど
なぜ逆ポーランド記法?
正規ポーランド記法もトルーマン記法でもよくないか?
ぶん回してるのがオーバーフローかなんかで落ちるんだけど回避できるの?
エスパーよろ
一般論でいえば精度をあきらめるかアルゴリズム見直す
桁の上位・下位のベクトルで持つとか
いっそPython捨てるのもあり
リソース無くなったら誤動作する、というのはCPUの宿命だよな
そこを絶対安全にするアイディアが無い
算術オーバーフローなのか
スタックオーバーフローなのか
バッファオーバーフローなのか
ヒープオーバーフローなのか
どれも回避は可能だけど
ものによっては手間がかかる
(100!)!を計算するソフトをメモリ4kBで書いて
ありがとう
例えば一定時間たったら自殺して再スタートとか、同じような別コード走らせてお互いに監視して死んでたら復活させるとかはインプレスのパイソン入門一通り全部理解した程度の私でもググればいけるレベルでしょうか?
>>929 前者は別プロセスで処理を再スタートさせてから自分を落とす順序にすれば簡単
後者は初心者には難しい
あとはプロセスを定期的に監視して再起動するようなツールを使う手がある
>>928 そんなに余裕持って書いていいの!?
超余裕じゃん96バイトあればかけるんちゃう?
>>931 100!>2^100だから96バイトのメモリじゃ計算できないでしょ
非ノイマン的に、メモリは変数領域に全部使って良いとする
>>930 ありがとう!
supervisorというのを見つけたんでこれやってみます!
子どもが言語を獲得していくのと同じようにAIモデルに学習させることに成功
AIの真価が加速する
プログラミングやったことないんだけど、
すごく興味あります。自動学習的なやつとか特に。
たぶん、ある程度基本的なことを勉強したら、
どこかから画像認識できるプログラムのパーツ的なものを拝借して
作れるのかなと思ってるんですがあってますか?
あと、疑問なんですけど、
画像を読み込ませて学習するっていう話を聞いたことがあるのですが、
それってどんなものでも行けるんでしょうか?
例えば、産業用みたいな感じでベルトコンベヤーに乗って流れてきたものが
ギョウザだと認識できたらロボットアームでつかむ、
饅頭だと認識したらスルーみたいなプログラムと
おっぱいとお尻を区別するプログラム(昔ネットでやってる人を見ました)とかって
プログラム的には同じで覚えこませる画像が違うだけというイメージであってますか?
わかりにくい文ですみませんがご教授ください。
現実同様全ドメインを把握しなくても生活できるように
社会を構築しているのであってる
物事をモデル化するときは現実のようなしがらみが少ない分
できるだけ一般化を進めるので後半もあってる
どちらも良心に基づく話だから当てはまらない界隈も多いけど
>>936 拝借して作れるけど精度上げたいなら転移学習
モノを掴むとかもできるけどラズパイのgpioなどをも学ぶ必要あり
見分けるには教師データが転移学習でも数千枚必要
そんなものを数千枚ずつ入れたフォルダを素面で見て自己嫌悪にならないなら作れるw
ラズパイのプログラミングはまた別なんですね。
画像データって色々あると思うんですが、
動画取ってそのキャプチャ画像とかでも使えますか?
やっぱり解像度とか精度に影響与えますかね?
数千枚は確かに重労働ですね・・・
良心はconscienceの訳語なのに、
conscienceの意味が全然理解されてないんだよな
4年前のソースコードgithubから落としてきたんだが
kerasとかtensorflowとかpytorchとか色々変更があって関数の変更がめちゃ大変
こういう時って
ライブラリを当時のバージョンに合わすか
関数を今のライブラリに変更するか
どっちがいいですか?
なんかの仮想環境で当時のライブラリで動かすほうが簡単
巨大なら環境を合わせるしかないだろうけど、
大抵はちょっと直せば動く
Google colabでseleniumどうやって動かすのです?
digits1="0123456789"
print(digits1[2:4])
これで文字列"23"が返ってくるんだが"234"にならない理由ががわからん
インデックスが0から始まってるからインデックス2番目からインデックス4番目までの文字を表示するんじゃないの?
自称初心者は↓へ
【まず1嫁】くだすれPython(超初心者用) その59
http://2chb.net/r/tech/1689241721/ range(2,4)
とかも何が返るか最初は直感と違う
for i = 2; i < 4; i++
と同じだと判るとすんなり入る
箱と箱の間の仕切りのところにindexがあります
みたいな説明もよく見るけど、本質的ではないんだよな
{'name1':1, 'name2':2}
みたいな辞書よりも、
[{'name':'name1', 'value':1}, {'name':'name2', 'value':2}]
みたいな辞書のリストで持った方がよっぽど取り回しいいな
>>951 ソートが必要ならlist
不要ならdict
>>951 郵便番号から住所を補完するプログラム書いてみ。
郵便番号をkeyにした住所の辞書ってどういう変数名にするのがいいんだろうな
>>957 業務システムならそうかもしれないけど、分析用のコードとかだったらわざわざRDBMSに入れることしないでCSV直読みとかいうことも多いでしょ
「取り回しいいな」と言っている背景に、限定されたユースケースしか見えていないのでは?という疑問があるということ
住所しか引かないなら何とかなっても、
座標データも追加しようとした途端に破綻する
>>960 それは値をどのように持つかの話でキーやインデックスをどのようにするかとはまた違う話なのでは?
リストにしたら0,1,2..と続く数値がキーに課される制約になる
RDBMSで高速化に使われるインデックス作成も辞書みたいなもので、なぜ導入されているかを考えると、
辞書的なアクセスができないのって結構実用プログラムを作る上で問題だということが予想できる
ちなみに値の方をなんでも辞書にしておけばいいというのは柔軟性の意味ではそうだけど、過度な柔軟性は仇となるのがわかってるからnamedtupleやdataclassがあるわけで、
「座標データも追加しようとした」ときに一旦考え直した方がいいことだと思うけどなあ
>>958 例えばテラバイトのCSVをストレスなく読み込めるライブラリは少ない
データベースに入れておけばテラバイトでもOK
扱いがはるかに楽
データ分析屋はその辺りの感覚おかしい人が多い
基本的に素人みたいな人が多いからね
その時はそれが最善だと思ったのに、ちょっとした仕様変更でデータ構造を根本から変更しないといけなくなった
それは見通しの甘さなのでは
辞書から辞書のリストへは根本変更で、
辞書のリストの名前追加はマイナー変更
改造を前提として、柔軟な設計とする
やりすぎると過剰設計
>座標データも追加しようとした途端に破綻する
どうして破綻するの?
>>951 辞書でぶっこむのが多いのかな
クラスつくっていれてしまう
scikit-learnで手書き文字を認識するサンプルを見てるんですが早速理解できないんです
from sklearn import datasets
digits = datasets.load_digits()
flag_3_8 = (digits.target == 3) + (digits.target == 8) #★ここ
どうして "digits.target == 3" とすると3の箇所のみTrueになるんですか?
>>966 ==演算子を独自のものに変えることができるから
numpyがそういう動きになってるだけ
>>966 のようにぱっと見て解釈がわれそうな書き方を思いつくのは天才
初心者スレに書き込んでも荒らししかいなかったのでこちらに質問します
Anaconda3-2024.02-1-Windows-x86_64をインストールしたいのですが、
エラーが出て実行できません。OSはちょっと古くwindows7になります。
インストールしている最中、このようなエラーが発生します。
最初は『Failed to extract packages』のエラーです
略すと、パッケージの抽出に失敗しました。と言う内容です。
『無視』を押してインストールを進めると今度は、
Failed to link extracted packages to C:\Anaconda! というエラーが出ます。
抽出したパッケージを C:\Anaconda(インストール先フォルダ) にリンクできませんでした。
これも『無視』を押して進むと、Failed to initialize conda directoriesというエラーで
ディレクトリの初期化に失敗しました。というエラーです。
これも無視してもインストールできるのですが、
インストールフォルダを開いて実行しようとすると、
コンピュータにapi-ms-win-core-path-l1-1-0.dllがないため、
プログラムを開始できませんでした。
というエラーが出ました。
こういうエラーはだいたい、Microsoft Visual C++が入ってないことが原因ですが、
私のPCには既に、
Microsoft Visual C++ Redistributable 2013
Microsoft Visual C++ Redistributable 2015-2022はインストールされています。
しかし、このエラーが出ます。
どうすればいいでしょうか?
糞ウケるw
自分が荒らしておいてスレ民の方を荒らし認定
尚且つ解決したならどう解決したかの報告も無いクズっぷり
まあ恥ずかしくて言えないよねw
他人に質問するときは問題を整理しなければならないからね
その中で見落としに気がつくこともある
anaconda入れるってことはAI系だろうけどバージョン問題クソ鬱陶しいから古いパソコンでやるのは地獄だな
次はきっとGPUまわりでコケるぞ
OS最新にできないならGoogle colabがある
GPUほしけりゃ課金で解決
この手の環境に苦戦してるやつはセンスないからやめたほうが良い
anacondaはわけわからんエラー出がち
結局は自分でパッケージ集めた方が楽だぞ
>>973 質問スレで役に立たん荒らしのゴミが相手にされなかったから発狂してて草w
死んどけよカスw
何の回答にもなってないゴミニート野郎の幼稚な構ってちゃん荒らしになんで付きやってやらんといけんねんダボ
>>978 何処がメチャクチャなのか論理的な説明をどうぞw
まぁ無能だから100%無視して逃げ込むだろうけどなw
質問者に相手にされなかった幼稚な煽り書くだけの荒らしが、
相手にされなかったからって逆恨みすることはあるあるだ
質問がナンセンスなんだからそれを指摘しただけのこと
質問する側にも最低限のマナーやルールは必要
当たり前のことだ
>>987 その辺の事はどうでもいいが、
どう解決したの。
>>988 何がナンセンスなのか論理的な説明をしてみそw
パッケージの抽出にしたとエラーが出た
そのまま続行したらファイルがないと言われて起動しない
メッセージの通り解凍だかアーカイブが壊れててとかで抽出出来なかったファイルが足らないだけだよね
グダグダ書いてるけどそれだけでしょw
-curl
lud20250130030124caこのスレへの固定リンク: http://5chb.net/r/tech/1703659345/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。
TOPへ TOPへ
全掲示板一覧 この掲示板へ 人気スレ |
Youtube 動画
>50
>100
>200
>300
>500
>1000枚
新着画像
↓「Pythonのお勉強 Part72 ->画像>2枚 」を見た人も見ています:
・Pythonのお勉強 Part49
・Pythonのお勉強 Part66
・Pythonのお勉強 Part63
・Pythonのお勉強 Part68
・Pythonのお勉強 Part71
・Pythonのお勉強 Part60
・Pythonのお勉強 Part62
・Pythonのお勉強 Part54
・Pythonのお勉強 Part55
・Pythonのお勉強 Part56
・【実験台】 Python 3.0 のお勉強 Part 1 【非互換】
・Pythonのメリットって何
・ワイ、JavaとPythonの勉強を始める
・プログラミング言語Pythonの弱点
・プログラミング言語Pythonの最大の欠点
・洋画・海外ドラマで英語のお勉強 Part18
・AI作りたいけど、CとC++とPythonのどれがいい?
・株のためのお勉強 経済や会計のおすすめ本
・pythonの演習課題について教えてください
・洋画・海外ドラマで英語のお勉強 Part15 [無断転載禁止]
・Python CGI
・PyQt5 Python
・暇だからPython始めるよ
・Python初心者スレ
・Pythonが嫌いな理由
・Python2終了のお知らせ
・Excel Python 質問スレ
・Kivy Pythonライブラリ
・pythonやってる初心者だけど
・pythonがこの先生きのこるには
・pythonに詳しいやつ来てくれ
・Python初心者が質問m(_ _)m
・【sk8】How to【trick】
・python学んだ後django振れたけど
・FX自動売買をpythonで作ってみた
・Python の宿題ここで答えます Part 2
・FX自動売買をpythonで作ってみた ★2
・go言語、python言語自信ニキ来てくれ
・くだすれPython(超初心者用) その32
・くだすれPython(超初心者用) その33
・初めてココ来たけどpython人気なさ過ぎるだろ。
・Sound Horizonの不満を語るスレ 18
・【悲報】俺、pythonが分からなさ過ぎて泣く。
・くだすれPython(超初心者用) その39
・Forza Horizonの方向性について語ろう
・python始めたいんだが [無断転載禁止]
・pythonをマスターしたいから教えて?
・Pythonプログラムできるやつ来てくれ!
・Pythonが第二のPHPみたいになってきそうだな
・Pythonとアフィリエイトの親和性の高さ
・Python⇐これの読み方wwwwwwwwwwwwww
・【AOM*EE】Age of Mythology 第98幕【総合・雑談】
・javaとpythonってどっちが初学に向いてる?
・詐欺師系ITコンサル「Pythonは稼げる!」
・pythonでwseb系を製作したい。お前ら助けて!
・iOSでおすすめのPython開発環境アプリくれ
・くだすれPython(超初心者用) その38
・【Python】スクリプト バトルロワイヤル48【pl,rb,php,js】
・【まず1嫁】くだすれPython(超初心者用) その57
・【まず1嫁】くだすれPython(超初心者用) その55
・Python勉強しようと思うんだが、実際どうなん?
・pythonを仕事で使えるレベルにするには何日かかる?
・pythonista総合スレ【IOSで勉強できる】
・pythonでわからない問題があるので教えて下さい
・【まず1嫁】くだすれPython(超初心者用) その59
15:07:07 up 54 days, 16:05, 0 users, load average: 8.13, 8.40, 8.07
in 0.084182024002075 sec
@0.084182024002075@0b7 on 061104
|