Pythonのお勉強 Part66

レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん (ワッチョイ 9f02-4fXk)
垢版 |
2021/11/15(月) 18:59:43.37ID:f2uNQEAt0
!extend:default:vvvvv:1000:1024
!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後も落ちなくなった)
### END of TEMPLATE ###
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
2021/11/17(水) 11:16:56.38ID:4tNSHn/XF
Pythonでの描画の保存について質問です。
白地の窓の中にマウスで描画した図形をTiKZ形式で保存するアプリを作成したいです。

TkinterのCanvas Widgetで描画しましたが、ポストスクリプト形式でしか保存できないようです。

@TkinterのCanvas Widget以外で、描画した図形をTiKZ形式で保存できるWidgetはありますか?
Aもしくは、GhostScriptなどを使わずにポストスクリプト形式をTiKZ形式に変換する方法はありますか?

どちらか簡単そうな方を教えて下さい。
3デフォルトの名無しさん (ワッチョイ 4b5f-iUmB)
垢版 |
2021/11/25(木) 13:38:38.69ID:bDvmxdn90
memo
https://www.geospatial.jp/ckan/dataset/plateau-tokyo23ku-3dtiles-2020
4デフォルトの名無しさん (ワッチョイ 9f55-6Gdn)
垢版 |
2021/12/02(木) 17:15:32.33ID:OJ+Rt/5p0
Pythonを使った機械学習の本を読んでいます。

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

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

今から、仮想環境を作ってそれを使っても何も問題はないですか?
2021/12/03(金) 05:13:20.69ID:W4uBSINU0
仮想環境というのは、日常的にリリースしてる人がポータビリティテストする為のものだから
本読んで勉強してるとかそういうレベルの人には不要
2021/12/03(金) 05:32:39.73ID:W4uBSINU0
使ってるライブラリが競合して困るとかなら渋々venv使う事はアリかもしれない

そもそもそういう事態に煩わさせられぬよう、anaconda (大体必要なモノ全部入り俺々環境)を使ってるのでしょう?

ただしPython自体の勉強もしたいなら、標準のpip/venvに執着して、パッケージ管理を学ぼう
7デフォルトの名無しさん (スフッ Sd70-KgTm)
垢版 |
2021/12/07(火) 15:53:27.74ID:gm0ARZfdd
すみません、質問なのですが、
newline= ってpython3じゃないと使えないのですか?
2022/01/27(木) 17:06:05.88ID:lruDDKrJ0
prev:
Pythonのお勉強 Part66
https://mevius.5ch.net/test/read.cgi/tech/1636670891/
2022/01/27(木) 17:07:19.77ID:lruDDKrJ0
何故3日後に立てた?
10デフォルトの名無しさん (ワッチョイ 4736-OMe5)
垢版 |
2022/01/27(木) 17:14:44.98ID:fB8Pijx80
ts
2022/01/27(木) 17:36:34.64ID:vDI9VKsi0
クソスレ再開しまーす
2022/01/27(木) 18:25:32.82ID:dShxSjXN0
有り難う御座います
2022/01/27(木) 20:17:18.79ID:KzGip6sl0
もの凄く簡単にwebアプリ開発出来るの無いですかね?
Djangoが一番解りやすいけどフロントエンド作るの面倒くさいと言うか難しい
2022/01/27(木) 20:23:17.93ID:HehBpiSx0
前スレでこんがらがってた人?
2022/01/27(木) 20:36:38.49ID:lruDDKrJ0
こんがらコネクション
2022/01/27(木) 20:51:29.45ID:vDI9VKsi0
PHPでゲストブックでも作ってろ
立派なWebアプリだぞ
17デフォルトの名無しさん (ワッチョイ a733-4V6Q)
垢版 |
2022/01/27(木) 21:29:26.16ID:jpFTlq6I0
>>13はhtml, js, css触らずにWebアプリ作りたいということか?
2022/01/27(木) 21:40:27.90ID:lruDDKrJ0
cssって腐ってないか?
あれずっとメンテするの?
2022/01/27(木) 21:57:33.83ID:kowYjA+c0
YouTube で有名な、雑食系エンジニア・KENTA のサロンのRuby on Rails 初心者用コースでは、
Heroku, CircleCI, Bootstrap(SASS) が基本

最近の未経験者は、AWS Fargate, Github Actions, Terraform, Vue.js, TypeScript で差別化する

Railsの作者・DHH の動画では、React, Stimulus、Tailwind も使う。
他には、Bulma とか

ElementUI, Material-UI を使う香具師もいるのかな?
知らないけど
2022/01/27(木) 22:53:14.02ID:HehBpiSx0
消費期限内に食べきってください
2022/01/27(木) 23:33:47.10ID:p2Ip8o8vM
フロントエンドのデザイン簡単なのはflutterじゃない?
2022/01/28(金) 00:08:11.27ID:cEGzsm9y0
実は勉強に金掛けない奴ほど全然成長しない
いつまでも無料学習リソース()を半端にかじってるだけ

プログラミングスクールに通いなさい
2022/01/28(金) 00:15:36.31ID:Ab/Iwzcp0
プログラミングスクールに通ってたハッカーなんて世の中に一人もいないだろ…
2022/01/28(金) 00:16:48.65ID:dRbZojn90
この方ははっかーを目指してたんですか・・
2022/01/28(金) 00:21:50.28ID:6yVeWEnW0
大学
2022/01/28(金) 00:37:29.10ID:PT0Apdmn0
センスのカケラもない奴はスクールに引き取られて養分になってて貰えると助かる面はあるよね
27デフォルトの名無しさん (ワッチョイ a536-T4N9)
垢版 |
2022/01/28(金) 06:49:25.78ID:E829Z+gn0
プログラム覚える奴って独学が普通だろ?

特にいまはネットがあるんだから、いくらでも勉強できるだろ。
2022/01/28(金) 06:56:31.13ID:yiat9g860
目標もなく自分で学ぶ力もない軟弱者がスクールに通う
家で稼げるとか、響きがかっこいいとかのしょうもない理由でやってるんだろうな
実際はそんなことないのに
2022/01/28(金) 07:35:17.89ID:1pViqn3d0
興味あるのに独学しない方がおかしい
学校や研修で学ぶ人は別に興味はなかったけど必要に迫られた人

絵を描くとか曲を作るみたいに、専門性は高いけどそれ自体楽しいことなので、
きっとみんな楽しくてやってるに違いないという思い込みがあるけど、
普通に金を稼ぐ技術だと思ってる人もいる
2022/01/28(金) 10:52:52.85ID:dRbZojn90
親方について10年くらい修行を積むと良い
2022/01/28(金) 10:57:38.84ID:t8N8IyjY0
ネットの情報はありがたいよね
ただ元ネタはだれだかわからないけど全く同じコードと説明まるぱくりで広告バンバンいれている人達多過ぎだよね
2022/01/28(金) 11:07:48.83ID:1pViqn3d0
今回は、Pythonに関する内容だね!
どういう内容でしょうか?
Pythonの{thema}について詳しく説明していくね!
お願いします!

内容分かりやすくて良かったです!
ゆかりちゃんも分からないことがあったら質問してね!
分かりました。ありがとうございます!
33デフォルトの名無しさん (ワッチョイ 3933-tIr1)
垢版 |
2022/01/28(金) 11:12:49.65ID:w3tV6BHz0
独学で系統的に勉強できてる人は限られてるけど、独学で勉強できる素養がないと向いてないとは思う
2022/01/28(金) 11:20:02.73ID:dRbZojn90
ネットは隙あれば金儲けだからね
2022/01/28(金) 13:07:31.53ID:R7kaBz5I0
おっpyについて修行したい
2022/01/28(金) 13:11:28.75ID:L4Fef8wK0
>>35
スクールでお前が学ぶには難しすぎるからあきらめろ
ネットで素振りしているといい
2022/01/29(土) 10:19:59.17ID:pj16Qw8Y0
オライリーの入門 Python 3の次って何の本やればいいの?
機械学習とかそういうミーハーなのもやりたいけど純粋にコードとしてPython書いてく上でなんかいいのない?
2022/01/29(土) 10:24:36.66ID:N2C0jQSh0
Githubでコード読むとかぐらいじゃね
2022/01/29(土) 10:29:46.04ID:xX6BWfTK0
お勉強が目的じゃないならガンガン書いていくしかないだろ
2022/01/29(土) 10:39:45.12ID:LOKM/1Ez0
写経するにしても、手本にならないコードもたくさん溢れてるからなあ
なるべくすげー奴のコードを真似する
2022/01/29(土) 10:42:05.04ID:pj16Qw8Y0
dクス
このあとは書いてくのがいいのね
fluent pythonとかeffective pythonとかあるし悩んでいたが
とりあえず書いてみるわ
2022/01/29(土) 14:46:32.66ID:M5LDIREHM
>>41
入門pythonはページ数はあるけど広く浅くで中身薄いから
しばらく実践した後でもいいから他の本かまとまったWebサイトで補完しといた方がいいと思うよ

effective pythonは入門2冊目に最適
fluent pythonは他言語経験者がガチめでpython学ぶ1冊目としてかなりオススメ
今なら原著第二版のearly releaseがベター
2022/01/29(土) 16:17:42.14ID:+Zz2snza0
中級者向けサイトってある?
2022/01/29(土) 18:04:54.53ID:epNEx3Xj0
実際に物を作っていってこんなの欲しいなこんなのきっと頭のいい人が考えた言語だから何かしら用意してあるだろうといって調べるやり方だなあ
勉強して最初から知っとけば後から無駄な処理してたって気が付くことがなくなるんだろうけどモチベ的にまず作る派
まあジジイの趣味だから
2022/01/29(土) 20:12:51.51ID:pj16Qw8Y0
>>42
Pythonが1つ目の言語だからeffective pythonやるわ
ありがと
2022/01/29(土) 20:21:34.10ID:LOKM/1Ez0
初版と2版はどのくらい違う?
2022/01/30(日) 08:35:05.10ID:foIqd9DY0
JSONのような再帰構造にマッチさせてそこに含まれる値を入れ替えたいんですが、
re.sub()の第二引数に渡す関数をを再起的に呼べばいいんですかね?
2022/01/30(日) 08:51:19.88ID:TPMWv/Gz0
ちゃんとデータ構造に戻してから加工してシリアライズする
2022/01/30(日) 16:19:11.74ID:dBS0qGe1a
エンジニア認定基礎試験3回落ちた
模擬試験は3つのサイト全部受けて80付近取れたんだが
向いてないのかな〜
2022/01/30(日) 16:35:54.41ID:b3oK/Xd40
>>49
本番でやたら間違えたという自覚があるなら大丈夫
自信満々で落ちたのなら勉強の方針変えたほうがいい
51デフォルトの名無しさん (ワッチョイ 112c-gRU3)
垢版 |
2022/01/30(日) 16:44:44.56ID:JEnagIMx0
座学っていうか、教科書暗記系の勉強って身につかねえで
普段からなにか自分のコード書いてる? 便利ツール作ったとか、仕事でもいいけど
そういう経験値あるやつは教科書で範囲おさえるだけで受かるでアレ
漢検英検みたいなスッカラカンの内容だし
2022/01/30(日) 16:49:27.81ID:dBS0qGe1a
>>50
やたら間違えたという自覚はあるんです。。
エラーと例外とクラスがめっちゃ苦手なのでそこをなんとかするよう復習中です!
がんばります!
2022/01/30(日) 16:52:14.96ID:s6N3Eq50a
資格屋を養ってあげるのえらい!
2022/01/30(日) 16:54:45.26ID:dBS0qGe1a
>>53
ホントそうですよねー…

お上から言われてやらされてる感覚で勉強してるのでそれも良くないんだろうなと

3回も落ちてプログラミングはホント向いてないと感じましたが、負けたままじゃ嫌なのでがんばります!
2022/01/30(日) 16:58:24.22ID:dBS0qGe1a
>>51
コードは書いてますが、とにかく暗記で覚えようてしまうところがありますね。
流石に3回なので出てくる問題も同じものが多くありました。。
56デフォルトの名無しさん (ワッチョイ 112c-21ac)
垢版 |
2022/01/30(日) 17:07:11.65ID:JEnagIMx0
まあ会社的に取らざるを得ないんなら仕方がないな

エラー処理とクラスが苦手なら
不特定多数が使う想定でGUIのツール書いたりしたらいいじゃん
色々なツールを書いて、実力ついてきたら書き直していくと良いべ
手続き記憶ってめちゃ強いで
テストの文言がどうとか関係なく「は?この場合はこれ以外ねえじゃん」てなるからよ
2022/01/30(日) 17:20:43.43ID:TPMWv/Gz0
手続き記憶にはならんけどな
あれは大脳じゃなくて小脳が記憶しとる
2022/01/30(日) 17:25:43.29ID:abA0NDao0
レスは延髄が担当してます
2022/01/30(日) 17:38:30.77ID:+44ZrKAj0
頭で記憶するより腕が覚えてれば何もしなくても受かる。
2022/01/30(日) 17:45:34.94ID:TPMWv/Gz0
未だにexceptを身体を覚えない
2022/01/30(日) 18:57:36.36ID:b3oK/Xd40
プログラミング始める前は世の中の意外なライブラリが個人用ツールが発祥だったりして驚いたけど、最近は自分も毎日何らかの効率化ツール書いてるから腑に落ちてきた
62デフォルトの名無しさん (ワッチョイ a536-T4N9)
垢版 |
2022/01/30(日) 21:13:57.26ID:EDpuAdiW0
>>47
json は文字列として扱えないよ。

先ずはimport json して、json.loads() でpythonのdictとして読み込んで、そのあとdictに対して処理していかないと。
2022/01/30(日) 21:30:01.91ID:s6N3Eq50a
だから文字列処理がしたいんだろ
64デフォルトの名無しさん (ワッチョイ 3933-dw97)
垢版 |
2022/01/30(日) 21:40:49.50ID:x+YpW7Pn0
>>62
ライブラリにあるjsonってjson以外にも使えるの?
2022/01/30(日) 21:52:14.30ID:+b1ooMw2a
JSONのような
yamlなのかtomlなのか独自の何かなのか?
2022/01/30(日) 21:59:21.89ID:TPMWv/Gz0
独自形式でしかもデシリアライズする手段を持たない何か
67デフォルトの名無しさん (ワッチョイ a536-T4N9)
垢版 |
2022/01/30(日) 22:06:11.28ID:EDpuAdiW0
>>63
値を変えたいっていってるけど、それが文字列かintがfloatかで処理方法が変わるって事。
2022/01/30(日) 22:26:16.20ID:b3oK/Xd40
どんな構造のデータなのかわからんけどパースできないのは欠陥じゃないか
69デフォルトの名無しさん (ブーイモ MM8e-+2bg)
垢版 |
2022/01/30(日) 23:09:43.81ID:Ps75IfQGM
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^

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

クソチョンw
クソチョンはウンコを食べる糞食人種w
朝鮮人はゲリ便をじゅるじゅると
うまそうに食うw
2022/01/30(日) 23:10:36.42ID:s6N3Eq50a
だからre自体が問題なんでしょ
お前らほんと馬鹿だな
まあ再帰は正規表現の守備範囲じゃないから、外部でループなり再帰なり使うのが筋じゃろうね
2022/01/30(日) 23:17:27.79ID:TvXHiKPx0
re.subで解析器つくるチャレンジ俺はすき
最適なモジュール・ライブラリ適用していくのも正しいとは思うが
2022/01/30(日) 23:46:56.10ID:s6N3Eq50a
牛の名前がついた道具使うよりも直接パーサ書いたほうが楽って感じの仕事しかないわ
2022/01/30(日) 23:50:39.06ID:TPMWv/Gz0
パーサ or パーザ
2022/01/31(月) 00:17:47.91ID:h5qWS5JPa
濁らないネイティブの方が多い印象
2022/01/31(月) 04:35:23.49ID:p09y8eC/0
>>71
始めたばかりの頃は正規表現を駆使してそれやってたw
jsonが標準ライブラリなので流石に今はやらんけど
2022/02/01(火) 08:29:06.07ID:MgBeWJgP0
>>47 なんですけど、皆さん確かにその通り、なんですけど、困った点として

1. JSONの変更チェックはソースコード同様テキスト差分でやっいてる
2. シリアライズ/デシリアイズすると元のデータとの変更の差分がよくわからない(多分

2. がクリアできればたぶんシリアライザで問題ないのですが、どうでしょうか。なにか
こういうツリー構造状のものの論理的差分をうまく表示できるものがあれば。
もしかして毎回同じシリアライザ/デシリアイザを使えばテキスト差分でも割とわかり
やすい可能性はありますかね?
2022/02/01(火) 08:37:49.30ID:KfVUVBlEM
>>76
新旧のJSONが手元にあるなら
わざわざ正規表現で書き換える必要なくない?
よくわからん
2022/02/01(火) 08:46:55.62ID:cb/LIcKT0
新旧それぞれjson状態で比較するだけでいいのでは
内容同じだけど表現が変わって余計な差分が出るというなら、
もう一度同じ系でデータに戻してそのままjsonにすれば消える
2022/02/01(火) 08:47:52.82ID:Vdz9s5Wt0
JSON構造維持できててもホワイトスペースの違いがあると
テキスト差分になるから避けたいってことなら
コミット前にかならずjq他で正規化するとか?
更新もjqでできる範囲ならPython自体いらんし
2022/02/01(火) 09:09:07.24ID:snO12m+pa
jsondiffみたいなのあるよね
まあ再帰的に歩きながら要素をsetとして比較するとか
2022/02/01(火) 10:01:24.43ID:VIAeEFNz0
読み違えてなければ
なんでテキスト差分にこだわってんのか分からん
2022/02/01(火) 10:04:13.76ID:at58GuQOH
>>77 結構な数の旧のJSONがあり、それを特定のルールでアップデートして新にします。
で正しくアップデートされたかを検証するために新旧を比較します。

>>78 内容が違う場合に人間が理解しやすい形で見たいという。

>>79 スペースや改行もそうですが、例えば辞書の要素をどういう順序で書き出すかは
シリアライザ次第 or 手書きをした人次第ですよね... あ、jqで正規化できるのかな?
jqを知りませんでしたので見てみますです。
ただしいて言うと正規化というのも... 実際には例えば位置情報を含む要素があったり
して、その場合位置順で要素が並んでいると本当は嬉しい、とかもあったり。

>>80 なるほど、ググるといろいろヒットしますね。検討してみます。
2022/02/01(火) 10:15:12.61ID:hvUdGcmR0
要は手書きは手書きの良さがあると言うか(意味不明
2022/02/01(火) 10:18:51.13ID:snO12m+pa
配列以外で順序に意味もたせたらあかんやろ
85デフォルトの名無しさん (ワッチョイ 6d36-T4N9)
垢版 |
2022/02/01(火) 10:21:13.84ID:BTrEast20
>>82
jsonの機能にフォーマットして出力ってのがあるよ。
新旧をファイルなり端末なりに出力して比較したら。
2022/02/01(火) 10:39:12.47ID:jpDLaV3CM
>>84
順序維持したまま辞書化したいニーズは多々あるし、そういうクラスも用意されてる。
確認してないから想像だけどjsonパーサも子要素の順序維持するんじゃないかな
2022/02/01(火) 10:48:36.31ID:snO12m+pa
>>86
いやそういう辞書があってもいいけど、jsonで期待しちゃだめでは?
2022/02/01(火) 10:50:59.31ID:6/JwMCIKM
>>84
差分を取りたいという話なのは理解してる?
2022/02/01(火) 10:59:29.24ID:VIAeEFNz0
・テキスト差分を人が見やすいようにしたい

・旧から新へ書き換えたい&検証したい
は別々に対応したほうがいいと思う
2022/02/01(火) 11:03:47.87ID:snO12m+pa
>>88
だから80でsetで比較しろと言うとる
91デフォルトの名無しさん (ワッチョイ 3933-tIr1)
垢版 |
2022/02/01(火) 11:05:33.91ID:R8oq8dq80
なんでjsonのままザブングル取ろうとしてるの
読み込んでから比較できるようにしたらだめなの
92デフォルトの名無しさん (ワッチョイ 3933-tIr1)
垢版 |
2022/02/01(火) 11:06:57.50ID:R8oq8dq80
ていうか、そのファイルはjsonのようなファイルなの?
それともjsonなの?
2022/02/01(火) 11:07:35.70ID:cb/LIcKT0
バールのようなファイル
2022/02/01(火) 11:09:46.48ID:jpDLaV3CM
>>87
jsonは人可読であることも利点だから、読みやすく並べたかもしれない順序を維持するのも大事だと思うよ
2022/02/01(火) 11:12:59.06ID:snO12m+pa
>>94
じゃあ文字列比較のためにソートするのも禁止じゃねえか
2022/02/01(火) 11:19:24.60ID:VIAeEFNz0
47には固有のルールがあるようだしそれに沿ったソートを書けばいいだけ
2022/02/01(火) 11:28:32.69ID:mtN06K+LM
>>90
> まあ再帰的に歩きながら要素をsetとして比較するとか
具体的にどうやるの?
jq -S でキーをソートして差分取るより簡単なの?
2022/02/01(火) 11:41:19.17ID:snO12m+pa
>>97
手間はあるよ
で、80で親切にjsondiffも挙げてやっとるやん
まあなんでもいいけど、なんかソート禁止という条件が導入されたからソートしない方がいいよ
2022/02/01(火) 11:50:19.81ID:7JwpJFltM
>>98
set 関係ないやん…
引っ込みつかなくなってて笑える
2022/02/01(火) 12:03:06.99ID:snO12m+pa
>>99
集合がわからんということですか?
それはまあ中学校で勉強してもらうしかないんですけど、なかなか便利ですよ
2022/02/01(火) 12:09:18.37ID:7JwpJFltM
>>97
日本語がわからんということですか?
それはま小学校で勉強してもらうしかないんですけど、なかなか便利ですよw

> 具体的にどうやるの?
> 具体的にどうやるの?
> 具体的にどうやるの?
2022/02/01(火) 12:29:21.07ID:snO12m+pa
大丈夫か?
2022/02/01(火) 13:11:25.40ID:g2E7LE8j0
>>98
set使ったら順序保証されないじゃん?
jsonの同一性をどう定義するかだけど、jsonオブジェクトが同一でいいなら自分なら二つ読んでdumpsして文字列比較だな。
わざわざ木構造を探索して確認はしないわー。車輪の再発明だもの。
2022/02/01(火) 13:14:14.12ID:HjKbLPGF0
つまらない意地の張り合いは止めて欲しい
2022/02/01(火) 13:24:00.14ID:7JwpJFltM
>>102
顔真っ赤なお前が大丈夫じゃないだろw
2022/02/01(火) 13:25:06.37ID:7JwpJFltM
>>103
差分リストとか見たことないの?
どこを変更 した/された んだっけ? って言うのを見たいんだと思うよ
2022/02/01(火) 13:25:39.60ID:snO12m+pa
>>103
もちろんされないよ
jsonの話と順序があるjsonの話とjsonの様再帰構造を持つナニカの話が出てきてるわけよ
2022/02/01(火) 14:23:16.43ID:VIAeEFNz0
質問あるあるだけど後だし要件多くてつまらん
2022/02/01(火) 14:40:07.76ID:cb/LIcKT0
最初から直接いじるって言ってるけどな
2022/02/01(火) 14:53:12.59ID:BDMLLBwS0
json.load(〜, object_pairs_hook = collections.OrderedDict)で読めばキー順維持できるし
json.dump(〜, indent=4, ensure_ascii=False)あたりで出力すれば人も読みやすいけど
縛りプレイしたいみたいだから違うんだろうね
2022/02/01(火) 14:58:51.99ID:VIAeEFNz0
質問者がほんとうに欲しかったものは全然違うんだろうなぁw
2022/02/01(火) 14:59:28.13ID:cb/LIcKT0
あるべき姿ではないけど、差分で作ってるからなるべく変えずにやるしかない
というのは業務では往々にしてある

そっち方向に特化して、なるべく差分を少なく変更するツールを作ったりする
2022/02/01(火) 17:16:00.77ID:Cj8PsmmI0
OrderedDictはいまは必要なくなったらしいが
古い環境のことを考えて一応入れておくかな
2022/02/01(火) 18:22:53.99ID:+p3toWRQ0
金曜日までまて!
115デフォルトの名無しさん (オッペケ Srbd-1iGg)
垢版 |
2022/02/01(火) 18:29:53.63ID:NciR+oItr
Python3.7以降辞書は順番を保持する事が仕様で規定されたが、一般的に辞書はそう言ったものではないから明確に順番を保持する意図があるならOrderedDict使うべき
2022/02/01(火) 18:37:17.14ID:cb/LIcKT0
セキュリティの為に意図的にランダムにしとるよ
117デフォルトの名無しさん (ワッチョイ 6d36-T4N9)
垢版 |
2022/02/01(火) 18:40:59.45ID:BTrEast20
>>110
linux使ってれば、ファイルに落とした後 diff か sdiff で一発でわかるんだけど。
windowsってファイル比較ソフトとか使うの?
2022/02/01(火) 18:57:53.68ID:YIpBnXPz0
wslがあります
2022/02/01(火) 21:48:27.03ID:b8/MsqKZM
変更だからgit diffとかでしょ
CLIで確認するならgirattributeでjsonはフォーマッタ経由させとく
2022/02/02(水) 03:09:29.57ID:gdOUqCG30
>>106
毎日嫌というほど見とるがなw
2022/02/02(水) 11:29:50.32ID:0scplIwD0
どうも>>47です。色々なアドバイスありがとうございます! レス一つ一つの引用は割愛
させていただきますが、アドバイスを元に試してみます。

あ、JSONのようなと書きましたがJSONです。
辞書の可読性というのは、例えばほぼ碁盤目状に並んだ住宅配置みたいのがあって、
{ "山田邸": {x=,y=, ...}, "鈴木邸": {x=,y=, ...}, ...} みたいのが配置の順序で(キーボード配列
で言ったら q,w,e,r,...., a,s,d,f, .... 等)並んでいる状態のことです。
元の可読性を維持するには〇〇邸でソートして欲しくなく、やるならyでソートして次にxで
ソートするみたいな... しかしふと、この場合はそもそも配列のほうがよかったのかも。
まあとにかく、キー順縛りでいけるのかな?

あと、差分を表示するのも標準的なdiff、差分付近の表示でなく、例えばLinux上ならmeldの
ようなものを使いたく... と思ったら json-diff には -f (full) というオプションが。
2022/02/02(水) 12:12:55.55ID:R8Mm1Nfi0
winny開発して
2022/02/02(水) 12:22:30.14ID:8JcfLiOmd
テキスト比較ならwinmerge
2022/02/02(水) 12:23:40.23ID:qgs+N5K10
それです
2022/02/02(水) 12:35:09.17ID:R8Mm1Nfi0
araxis mergeがいいよ
2022/02/02(水) 12:37:34.48ID:750HFVx7M
>>121
dictionaryをJSONにシリアライズする前に(y,x)bナkey指定してsortすればいい
配列にしたほうがいいかどうかはアプリケーションの使い方次第
2022/02/02(水) 12:53:10.62ID:PDm/NhWY0
JSONだっていってんだから元の構造からArrayにしないとダメ
その周辺だけいまは大丈夫だったとしても
なにか加わったら破綻する可能性抱えることになる
2022/02/02(水) 13:08:50.57ID:R8Mm1Nfi0
jsonの可読性なんか気にせずに、整形して見る仕組みを作った方がいい

差分をjsonのテキスト比較でやりたいならば、
専用のシリアライザを作るか、標準のシリアライザに統一して、
手書きからシリアライザへのジャンプの1回だけ頑張って差分が無いことを示す
2022/02/02(水) 13:23:14.33ID:atXKuk6GM
設定ファイル的なものの書き換えツールを作ろうとしてるんでしょ?
そのツール上は整形して見れたとしてもツールを使って更新した結果が問題ないかどうかをテキストの差分比較したいケースがあるのは普通のこと
130デフォルトの名無しさん (ワッチョイ 7933-tIr1)
垢版 |
2022/02/02(水) 15:05:32.48ID:ig8XBRXZ0
だから、jsonからPythonオブジェクトとして読み込んで好きなようにソートして、比較すりゃいいだろ
そうしないっていうならもうPython関係ないんだよ
頑なにjsonのまま比較しようとするなら、どっかよそで聞いて来いよ
2022/02/02(水) 15:24:45.92ID:GpllQ/ot0
そんなキレんなよw
2022/02/02(水) 17:07:28.13ID:xX3ktvVZM
読み込んで、ordereddictに入れるときにソートして、キー比較して値比較してってのが簡単かな、再シリアライズしなくていいなら
10行ぐらい書けばいけそう
2022/02/02(水) 17:34:38.06ID:FmeGoeQ70
差分確認ならこれ参考にしろ
https://qiita.com/set0gut1/items/be9247910eb7c155d592
2022/02/07(月) 15:18:40.32ID:HhuH8Ieg0
a = [1, 2, 3, 4, 5, 6]

(a.remove(i) for i in (4, 6))
print(a) # [1, 2, 3, 4, 5, 6]

[a.remove(i) for i in (4, 6)]
print(a) # [1, 2, 3, 5]

なんでこうなるの?
2022/02/07(月) 15:26:19.64ID:jzNjAoA60
(a.remove(i) for i in (4, 6))
は何を返す?それを理解してないだけ
2022/02/07(月) 15:33:14.88ID:HhuH8Ieg0
>>135
ありがとうございました
2022/02/07(月) 15:37:25.18ID:HhuH8Ieg0
もう一つお願いします
a = [1, 2, 3, 4, 5, 6]
for i in a: a.remove(i)
print(a) # [2, 4, 6]

aは[]になると思ったのですが‥]
2022/02/07(月) 15:43:57.98ID:HhuH8Ieg0
>>135
すいません
やっぱりわかりません
a.remove(i)しているのでaの内容が書き代わってると思うのですが‥
なにか根本的に理解が足りないのでしょうか
2022/02/07(月) 16:00:04.42ID:91CWjkaMa
まだ実行してねえんじゃ?
2022/02/07(月) 16:01:55.06ID:91CWjkaMa
タプルじゃないもんね
2022/02/07(月) 16:02:55.00ID:8jdPUSw20
>>137
https://dev.classmethod.jp/articles/python-delete-element-of-list/
2022/02/07(月) 16:04:05.95ID:jzNjAoA60
(a.remove(i) for i in (4, 6))
はジェネレータ式
https://docs.python.org/ja/3/reference/expressions.html#generator-expressions

ざっくり言うと関数を作ってるだけで中身のa.remove(i) for i in (4, 6)は実行されてない(おまけに作った式も変数に保存してない)
なので1つ目のprint(a)は何も変更されてないaを表示してるだけ
gen = (a.remove(i) for i in (4, 6))
b = list(gen)
print(b)
を実行してみよう
2022/02/07(月) 16:19:43.96ID:Afq51Jp90
>>137
>>> a = [1, 2, 3, 4, 5, 6]
>>> for i in a: print(i); a.remove(i)
...
1
3
5
>>> a = [1, 2, 3, 4, 5, 6]
>>> for i in a.copy(): print(i); a.remove(i)
...
>>> a
[]
歯抜けになるのはPythonのarrayの実装がそうだからだけど
挙動が予測しにくいから一般的に同時に使う作法が誤り
2022/02/07(月) 16:21:15.83ID:Afq51Jp90
141 にもう書いてたしにそう
2022/02/07(月) 16:40:04.66ID:HhuH8Ieg0
>>139
>>142
ありがとうございます!
角括弧の代わりに丸括弧を使うとジェネレーター式になるとは
今までタプルになると思ってました

>>141
>>143
仕様だったんですね
2022/02/07(月) 19:59:17.54ID:ZoZ1XgI6a
すごい、Pythonってこんなことできるんだ
147デフォルトの名無しさん (ワッチョイ ff10-XN8f)
垢版 |
2022/02/07(月) 20:25:55.13ID:WJa2Jvem0
removeすると番号がズレるから後ろからremoveするのがセオリー
2022/02/07(月) 20:46:50.85ID:0jla5CHw0
そんなバグの元は使わない
149デフォルトの名無しさん (ワッチョイ f72c-6/W1)
垢版 |
2022/02/08(火) 05:23:38.31ID:nYjjFW0t0
ループremove再代入とかバカの極み
150デフォルトの名無しさん (ワッチョイ b75f-zD41)
垢版 |
2022/02/08(火) 12:51:03.44ID:HdA5CgPa0
おう、これ全然消えねーんだけど何とかしろやゴルァァァアアアアアア

/bin/sh: -c: 行 0: 予期しないトークン `(' 周辺に構文エラーがあります

ねえっての、キチガイ
2022/02/08(火) 13:22:18.64ID:WarIH046M
ようキチガイ
shebangがないかBOMついてるか\rが入ってるかのどれかだろ
2022/02/08(火) 13:46:58.20ID:jSMs3LfK0
構うな
153デフォルトの名無しさん (ワッチョイ b75f-zD41)
垢版 |
2022/02/08(火) 17:58:46.74ID:HdA5CgPa0
レベルが低いなココw
他で聞いたら一発で通った(⌒▽⌒)アハハ!
2022/02/08(火) 20:58:08.23ID:NLc/sB5qa
5chにたむろしてる輩はなぁ
155デフォルトの名無しさん (ワッチョイ 1763-AiWJ)
垢版 |
2022/02/09(水) 23:11:13.01ID:4OQbC8Dn0
windowsのデスクトップアプリを作ろうとしていて、pythonのライブラリを使いたいけど、
KivyとかTkinterとかだとGUIがwindows風とは結構印象が違う。
画面デザインもやりにくそう。

こういう時、どうしますか?
2022/02/09(水) 23:15:15.23ID:BADAjEq60
フラッターを使ってみる
2022/02/09(水) 23:16:20.37ID:7gH1eikT0
PyQt
2022/02/09(水) 23:27:02.98ID:rq+afW6M0
JavaとかもそれっぽいUIになるし
全てのUIが同じであるべき、という思想はむしろ危険
2022/02/09(水) 23:44:09.06ID:7gH1eikT0
根拠や理屈を述べようかw
2022/02/10(木) 00:26:40.43ID:nXbautJ20
見た目なんか気にしなきゃ良いのよ
2022/02/10(木) 00:29:45.14ID:iAe5Imd/0
浅いなw
162デフォルトの名無しさん (ワッチョイ 9fae-8TV6)
垢版 |
2022/02/10(木) 14:26:19.15ID:u9gdDWsi0
Pythonでautohotkeyみたいな事できますか
2022/02/10(木) 14:31:20.82ID:xRgtfTzz0
ahkいろいろできて面白いけど言語仕様が腐り切ってるからな
どうせ書くならちゃんとしたものにしたいのは判る
2022/02/10(木) 15:31:21.44ID:9h95sgkl0
https://hotkeyit.github.io/v2/
ググっただけでうごくかはわからん
2022/02/10(木) 16:44:31.96ID:hwuAb01X0
keyhacじゃいかんのか?
2022/02/10(木) 18:50:29.98ID:f1tH8Y8aM
Qt周り敷居高くて手を出せない...
2022/02/10(木) 19:09:03.43ID:xRgtfTzz0
keyhac使いこなしてる?
2022/02/10(木) 19:40:36.74ID:Bfsj9FyQ0
自分もAutoHotKeyで色々作ってたけどPython伸べんきょのためにちょっとずつ移行していこうと思ってる
2022/02/10(木) 19:46:58.86ID:hwuAb01X0
どの程度を使いこなすというのかわからんが
自分のやりたいことは特に不満もなくできてるかな
2022/02/10(木) 20:52:26.42ID:zy0nUNzD0
pythonのfor文めんどうくせえと思ってたけど使い始めたら便利だった
171デフォルトの名無しさん (ワッチョイ 1763-AiWJ)
垢版 |
2022/02/10(木) 22:29:52.99ID:pn1FthPf0
>>155です。
昨日はありがとうございました。毎日長時間残業なので遅レスですみません。

>>156 >>157
フラッター、PyQtですね。週末試してみますね。ありがとうございます。
あとは、C#からpythonを呼び出すのはありですよね。
フラッター、PyQtの見た目、デザインのしやすさは未知数ですが、
C#の方が画面デザインは慣れていてるので、そっちも一つの方法かなと思っています。
ただ、マイナーなやり方をして、ハマった時の対処が面倒なので一朝一夕ですね。
172デフォルトの名無しさん (ワッチョイ 1763-AiWJ)
垢版 |
2022/02/10(木) 22:31:03.85ID:pn1FthPf0
×一朝一夕
○一長一短

残業で疲れていて、頭が回っていません・・・汗
2022/02/10(木) 22:49:24.09ID:6jtK/Myh0
死ぬなよ
174デフォルトの名無しさん (ブーイモ MMcf-l5Gy)
垢版 |
2022/02/11(金) 16:59:47.44ID:bxnKydDQM
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^

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

クソチョンw
クソチョンはウンコを食べる糞食人種w
朝鮮民族はゲリ便をじゅるじゅると
うまそうに食うw
175デフォルトの名無しさん (ワッチョイ 3302-piVT)
垢版 |
2022/02/12(土) 03:21:44.21ID:7pTDLltz0
PythonでWebサイトの自動操作をするプログラム作る仕事をもらったんだけど料金いくらが適正なのかわからん
ざっと見積もった感じ200ステップくらい
2022/02/12(土) 04:06:32.74ID:DcUREbCJ0
>>175
何を使う?
177デフォルトの名無しさん (ワッチョイ 3302-piVT)
垢版 |
2022/02/12(土) 13:37:13.71ID:7pTDLltz0
>>176
seleniumを使うよ
200ステップもなかったわ
120ステップくらいでできそう
2022/02/12(土) 14:22:35.18ID:8PhKwT/VM
ステップ数で見積もるのに驚いた
スクレイピング系はサイトの分析、仕様化、テストで8割以上なので
その部分の価値を考えて自分で値付けしないといけない
179デフォルトの名無しさん (ワッチョイ 3302-piVT)
垢版 |
2022/02/12(土) 14:32:15.98ID:7pTDLltz0
>>178
ステップ数だけで金額見積もる訳ではないよw
ステップ数も判断材料ではあるけど、とりあえずコードの規模感を伝えたかったから

これまで組み込み系ばっかりやってきたからWebサイドの相場がわからんのよね
2022/02/12(土) 14:35:55.15ID:9D2blOG10
掛かる時間×時間単価×自己のスキル
181デフォルトの名無しさん (ワッチョイ 7236-+7DC)
垢版 |
2022/02/12(土) 15:26:37.92ID:6bokzAB80
難しい話だね。
これ、複数人に見積だしたら値段が全然違うって事だろ?
2022/02/12(土) 15:30:25.56ID:8ted8XK+0
山浦清透、2021/6

【作業工程フル公開】エンジニアが30万円案件の制作過程を公開
https://www.youtube.com/watch?v=tYbVl6N8oxI

クラウドワークスの案件

会社情報・求人情報の収集
mynavi: 14日で30万円
doda: 10日で20万円

納品物は、ソースコード・テーブル設計・SQL, Excel

YouTube のエンジニアチャンネルでも、30万円の案件を作っている動画があるけど、
実際には、やりたい人が殺到して、1万円ぐらいに下がる

やっている事は、Ruby のAnemone と同じ。
スクレイピングした内容を、データベースに保存していく
2022/02/12(土) 15:39:19.91ID:JWu2f6If0
基本定価のない商売だからなまあ自分で使った時間で計算して
見積もりは>>178の費目に当てはめればいいんじゃないかな?
2022/02/12(土) 16:05:09.75ID:7okJcLKPM
>>179
ステップ数だけで見積もると思ったから驚いたわけじゃなくて
規模を見るのにステップ数を使うこと自体に純粋に驚いた

別にバカにしてるわけじゃないから気に障ったんなら悪かったね
2022/02/12(土) 17:00:42.99ID:Y4zqZwfd0
規模とステップ数は普通に相関あるだろ
規模と工数にあんまり相関が無いだけで
2022/02/12(土) 17:17:40.88ID:eEW1lKo00
スクレイピングごときのステップ数(コーディング時間)なんか他の工程と比べて鼻くそって意味でしょ
2022/02/12(土) 17:38:24.10ID:D6NDLaG/0
今スクレイピングやっててこれ綺麗に出来るならwebなら何やってもまず大丈夫だという確信を得てるわ
188デフォルトの名無しさん (ワッチョイ 73ad-rCQD)
垢版 |
2022/02/12(土) 19:39:44.01ID:JnpNavPQ0
スクレイピングはヤバいよ
逮捕されるかもしれないから
今すぐやめた方がいいよ
2022/02/14(月) 18:00:43.68ID:3BgOP7zj0
脱初級向けの書籍あれば教えて下さい
Pythonらしいコードが書ける感じのやつ
2022/02/14(月) 18:09:07.21ID:SjaA8f+R0
こんな面倒なことしなくても、もっと上手いやり方あるのでは?
というのがpythonらしさなので、まず問題意識を持たないと
2022/02/14(月) 18:16:35.06ID:3BgOP7zj0
まあその・・・
問題意識があるんで参考になる書籍なりが欲しいんですが・・・
2022/02/14(月) 18:17:32.37ID:LqGSbUPR0
>>189
色々と自分でコード書きつつ
・Effective Python
・エキスパートPythonプログラミング
辺りを流し読みして見ると良い
2022/02/14(月) 18:28:23.99ID:BJP9kXLWa
みんな偉いなあ。
俺はラズパイでタッチパネルのアプリを作るので初めてPyQt5を使いました。
それまでvs2019のC#でした。
難しい書き方はやれません。
2022/02/14(月) 18:53:50.59ID:SjaA8f+R0
組み込み系は何がいいんだろう
趣味ならもうメモリとか速度とか気にせず何でもいいのかな
売り物は未だにただのCでやってるけど
2022/02/14(月) 19:08:31.61ID:pMPjLXNiD
コンパイラ通すなら何でもいいんじゃないの
196デフォルトの名無しさん (ワッチョイ 637c-/R/x)
垢版 |
2022/02/14(月) 21:56:39.13ID:TlkOyAoi0
5chへの書き込みしてみたいんだけど、
urllib.request.Request
使って動かしたら処理エラーにもならないんだけど書き込みも成功してない。
何が悪いんだろう。。。
2022/02/14(月) 22:10:00.02ID:SjaA8f+R0
実在のブラウザを操作する方が楽
2022/02/14(月) 22:34:54.92ID:mGEtBv7h0
逮捕されるらしいぞw
2022/02/14(月) 22:55:10.93ID:s+1bFgnJ0
今度は書き込みで捕まるのか
2022/02/14(月) 23:20:45.13ID:j/z18xUpM
>>197
レスありがとう。
seleniumでブラウザ操作しての書き込みは簡単に出来ました。
ブラウザ使わないサーバー処理出来ないものかと。

>>198
何罪でつかまるの?
運営への業務妨害とか?
2022/02/14(月) 23:29:51.44ID:SjaA8f+R0
ブラウザにできるんだから、同じことを実装してやれば当然できるけど、
膨大な再発明が要るのでやりたくない
2022/02/14(月) 23:29:53.27ID:mGEtBv7h0
もうすぐキチガイがやって来て詳しく説明してくれるだろう
2022/02/14(月) 23:46:34.04ID:s+1bFgnJ0
結果を得ることが目的なのか、それとも仕組みを学びたいのかで
2022/02/15(火) 00:01:15.09ID:SsAr8nyF0
>>192
ありがとう
エキスパートPythonプログラミングがマッチしてそうなので買ってみます
2022/02/15(火) 04:34:23.51ID:icHGwoxXM
>>203
両方ですね…。
httpのデータ授受が問題だと思ってるのでどこに引っかかっているのか突き止めたい。
突き止めた上で出来たという満足を得たい。
2022/02/15(火) 12:34:02.60ID:LH9Iimee0
推測だけど、5ch はブラウザのユーザーエージェントとか、クッキーとかで判断しているのかも

ツールから投稿されると、サーバを落とされるから、
ブラウザ以外からのアクセスをはじくのかも
207デフォルトの名無しさん (ワッチョイ 335f-eDyG)
垢版 |
2022/02/15(火) 17:30:17.11ID:uIU4ym+Y0
初心者です
pythonでclassまでは勉強し終わったのですが、そこから先は何を勉強すればいいですか?
2022/02/15(火) 17:35:47.17ID:LlWAK5ve0
他になにをやったのかがわからないのに答えられるわけがねぇだろw
209デフォルトの名無しさん (ワッチョイ cb2c-iYXi)
垢版 |
2022/02/15(火) 19:59:30.71ID:b7qvGJQj0
>>207
自分探し
何がしたいか見つけてこい
2022/02/15(火) 20:07:32.64ID:1ykYgjP/0
勉強したいと思うものを勉強すればいい
211デフォルトの名無しさん (ワッチョイ 9312-KCtF)
垢版 |
2022/02/15(火) 20:17:10.13ID:VFuzIyBk0
そもそも勉強するもんじゃなくて作りながら学んでいくもんだろ
次はクラウドワークスとかで適当に案件受けとけ
212デフォルトの名無しさん (ワッチョイ b736-+7DC)
垢版 |
2022/02/15(火) 20:32:03.46ID:IopdvUct0
まずは、数字が入ってるファイルから読み込みを行ってソートして出力だな。
できればソートも自力でね。
2022/02/15(火) 21:07:36.72ID:1ykYgjP/0
乙。Pythonしたかったら、Python関連の本片っ端から読んでいけばいい
2022/02/15(火) 22:20:04.29ID:IvLqDe1bd
>>209
>>210
したいのは大学で使う機械学習です
とりあえず作るのを決める→必要なやり方をネットで調べてく 
みたいな感じですか?
215デフォルトの名無しさん (ワッチョイ 1610-mOTO)
垢版 |
2022/02/16(水) 00:13:55.00ID:Z5z7rnnG0
機械学習ライブラリやれ
scukit-learnとnumpy
216デフォルトの名無しさん (ワッチョイ 1610-mOTO)
垢版 |
2022/02/16(水) 00:14:45.38ID:Z5z7rnnG0
scikit-learn
2022/02/16(水) 00:48:54.95ID:BDbReL2F0
そこ間違っちゃうやつのアドバイスは信頼できん
2022/02/16(水) 00:56:29.21ID:RsiKRGuF0
scikit-learnはちょっとAPIが優し過ぎて、pythonも初心者だと何やってるか分かんないと思う
まあ公式サンプル良く出来てるから、一日2つ程度写経とパラメータイジりをやれば概観は掴めると思うよ
https://scikit-learn.org/stable/auto_examples/index.html
俺はこれを2ヶ月くらいで全部やったけど、とりあえず使えるレベルには達した
2022/02/16(水) 00:58:26.18ID:RsiKRGuF0
Pythonはバズってからネットはゴミ情報の山だから、グーグルは封印しといたほうがいい
2022/02/16(水) 01:25:08.62ID:RsiKRGuF0
また補足、何度もごめん
scikit-learnは実用に値するライブラリではないことは頭に入れておくべき
あくまで機械学習のワークフローを学ぶための学習用環境
だからscikit-learn固有のAPIの呼び方を覚えよう、というのはあまり意味がない、と心得るべし
2022/02/16(水) 01:33:26.70ID:0tMX/fqQd
>>215,216,218,219,220
ありがとうございます勉強してみます
2022/02/16(水) 02:33:02.97ID:PKeB5mV60
google, amazon, microsoft の公式の機械学習チュートリアル
の評判は近頃どうなの?
2022/02/16(水) 10:08:58.32ID:JWrspx0L0
ちゃんと機械学習やるなら数学的背景も知るべきだし、
そこすっ飛ばすならnumpyすら知らなくていい
2022/02/16(水) 11:45:46.00ID:GSgIUABer
機械学習やるなら行列から始めないとだめだよね
2022/02/16(水) 12:09:12.48ID:af4psPwx0
分数の足し算が出来ません
2022/02/16(水) 12:12:20.59ID:RsiKRGuF0
俺でもできてしまうんだな
そう、fractionsモジュールならね
2022/02/16(水) 12:34:24.44ID:Nuw/c3FA0
>>196
ほとんどのサイトは、HTML を送って来てから、
script タグに書いてある、JavaScript(JS)ファイルをダウンロードして、
文法を解析して実行して、HTMLの内容を変えていく

だから単に、HTMLを取得しても内容が入っていない。
Ajax でJSが実行されて、外部のデータベースからデータを取得して、HTMLにはめ込む

JSを実行できる環境(V8 エンジン)が必要。
それを含んでいるのがブラウザとか、Electron
2022/02/17(木) 03:51:18.74ID:IqS64M8v0
>>220
機械学習の定義によるだろ
DNNには適してないのは明らかだが
そこまで必要でない要件などいくらでもある
2022/02/17(木) 16:18:14.21ID:kgagnHsZ0
>>207
https://codingbat.com/python 基礎のドリル
2022/02/20(日) 16:06:40.76ID:KzkAi6Sf0
数学勉強したいんだけどどうすればいい?
行列ってのは確か授業でやったけど留年して退学したレベル
231デフォルトの名無しさん (ワッチョイ cf10-llH5)
垢版 |
2022/02/20(日) 19:03:42.86ID:OPHfZVwg0
高校の教科書
2022/02/20(日) 19:20:59.88ID:Ws511W1E0
高校数学は本質的でないからなあ
行列なんて連立方程式を解く為のもので、2x2行列では大したことはできないのに、
そこで終わってしまっている
2022/02/20(日) 19:23:01.59ID:WQ47VxUu0
高校は2行2列では終わらないだろwww
2022/02/20(日) 19:25:43.80ID:Z72DeEda0
今の子は高校で行列を習ってない
今年から復活するとか
2022/02/20(日) 19:28:32.44ID:WQ47VxUu0
マジかw道理で理解できないわけだ
2022/02/20(日) 19:46:10.71ID:a352Z6Xpa
>>230
「Pythonゲームプログラミング 知っておきたい数学と物理の基本」
とりあえず、この本の目次を見てみれば?
2022/02/20(日) 19:53:00.42ID:Ws511W1E0
数学パズルは積分だけあれば十分
2022/02/20(日) 19:53:26.55ID:+FA7tgiJ0
(hoge == 'foo') or (hoge == 'bar')
hoge in ('foo', 'bar')
これが等価と知ったことが最近の収穫
2022/02/20(日) 19:56:20.31ID:Ws511W1E0
正規表現でも似たような書き方をしようとしてもにょれ
2022/02/20(日) 20:18:30.21ID:goq4DWQe0
いやいや、高校数学からの積み重ねだよ
高校数学で大学学部レベルまでの書籍で勉強してる人も多いから、なにが高校数学かわからんが
とりま、高校で挫折したなら、大学受験用の参考書
大学学部レベルなら線形代数の書籍か

いずれにせよ、勉強に必要な書籍すら選べないようでは、とは思う
2022/02/20(日) 20:20:52.51ID:goq4DWQe0
というより、習ってないという文言が気になる
自習でわからんところはわかる人に聞く
書籍でも論文でも、直接、個人にコンタクトできるから
2022/02/20(日) 20:29:32.18ID:Ws511W1E0
行列をやらない代わりに複素平面が増えた
やれることが限られてるなら、複素平面の方がもっと重要
複素関数やらなくてどこまで踏み込めるのか知らんけど

行列でベクトル回転させるより、オイラーの公式の方がよっぽど面白い
2022/02/20(日) 20:34:30.31ID:wjI9mVo30
>>237
何するにも割とマジで線形代数が必要になってくる気がするが
2022/02/20(日) 20:39:29.98ID:Ws511W1E0
高校数学なんて大学入試の試験範囲だから
どれだけ勉強したかを測るのには積分やらすのが一番
覚えてないと解けない問題が山のようにある
2022/02/21(月) 00:45:24.18ID:EnKPT8cD0
昔と違って今はQ&Aサイトとかたくさんあるから
分からなかったらそこで聞けばいいだけ
2022/02/21(月) 01:02:04.87ID:QMGr56KL0
行列、線形代数、そう複素平面のあたりと、
微積はまた違うから
微積も必要だし微積も大切だが、ベクトルの微積も当然に出てくるが、とりま、行列のどので挫折したかによる
とはいえ、挫折した地点に戻れずどうやって学習したらいいかも含めて自学せなあかん

オイラー偉大は確かだが
2022/02/21(月) 08:39:33.46ID:wcqamZBYa
線形代数と複素解析が2大巨頭
2022/02/21(月) 09:37:23.50ID:KPnDg4JY0
記号だけでも高校で偏微分やっといてくれよ
大学1年生がまだ偏微分を知らない段階で他の講義でばんばん出てくる
2022/02/21(月) 10:39:27.29ID:4nlh3avWM
セガがマ向けの数学教材無償公開していたような
2022/02/21(月) 11:26:12.31ID:KPnDg4JY0
行列は結局、連立方程式の簡略表記でしか無いんだよな
では行列を活用して5元の連立方程式を解いてみましょうって思ってもそんなもん手計算できない
3x3行列の逆行列で限界

じゃあもう連立方程式のことは忘れて、逆行列が手で計算できる2x2行列に限定しましょうってなって、
そうすると扱う対象は平面上の点なので、回転したり拡大したりの方向に特化して遊ぶしかない
行列の存在意義はそんなんじゃない
2022/02/21(月) 11:34:19.64ID:MEWOzonN0
行列と行列式は違うぞ
2022/02/21(月) 12:06:58.64ID:G9vG90f80
お前ら凄いなあ
算数でくじけた俺には何言ってんのかさっわりわからん
2022/02/21(月) 12:12:52.72ID:caJ6+47Ar
早速東大の本屋が60年前から出してる線形代数入門買ってきた!
2022/02/21(月) 12:35:43.60ID:SlMrMd1Q0
>>250
高校数学の話?
2022/02/21(月) 12:40:34.42ID:KPnDg4JY0
高校で行列をカリキュラムから外すなんてとんでもない
という意見に対して、どうせ本質的なことはやれないんだし、
浮いてるから無くしちゃっても全然困らんよ、という話
2022/02/21(月) 12:48:10.10ID:SlMrMd1Q0
>>255
なるほど、その意見には同意できる。対角化とかを手続的に覚えてもしょうがないよなあ。
2022/02/21(月) 12:50:16.58ID:MEWOzonN0
芸術高校や商業高校みたいに数学高校があっても良いよね
2022/02/21(月) 12:54:14.59ID:Vv5lB4cH0
pythonで線形代数の数値計算知らずに困るのは、何でもgルーチンに投げちゃう事くらいでない?
3重対角や三角行列は別に呼ぶとか、ちゃんと条件数チェックをするとか
そのへんが一番大事
2022/02/21(月) 13:02:53.09ID:Vv5lB4cH0
抽象数学としての線形代数を学ぶには行列はむしろ理解の妨げになると思うし、線形代数の具体表現の一つとしての行列は掃き出し法だけやっとけばいいと思う
numpy引くときの落とし穴と効率のよい引き方の学びが全て凝縮されてる
2022/02/21(月) 13:16:29.98ID:Vv5lB4cH0
numpyにはeinsum等配列表現を隠蔽してくれる関数があるから、線形代数の学習にとても教育的だと思う
とりあえず行列で考えてしまう癖が付くと、多重線形がイメージ出来ずに詰む
2022/02/21(月) 13:34:40.55ID:FnAxVQSVM
最近、行列の結合法則も知らずにフォントまわりの実装始めてドハマリしてた蟻○間とかいうやつを見かけた気が…

行列なんて色んな分野で四則演算のように当たり前に登場するんだから高校の指導要領でいいんだよ
262デフォルトの名無しさん (ワッチョイ 8336-J7CF)
垢版 |
2022/02/21(月) 13:38:43.00ID:wf0/YaB30
昔、テトリス作ってて回転させる時どうやろう?って考えてたんだけど、なかなか良い案がうかばず(予め回転させておいた図形を用意しておくとか)、
プロ?のソースみたら行列処理でパッと回転させてた。

数学って大切だなって思ったよw
2022/02/21(月) 13:47:44.61ID:KPnDg4JY0
AtCoderとか、プログラミングを競ってるように見えて、いかに数学知ってるかだしな
264デフォルトの名無しさん (オイコラミネオ MM47-nAeH)
垢版 |
2022/02/21(月) 18:35:55.64ID:4B6rIEmtM
>>248
概念としてでも、全微分と偏微分の説明がある方が理解しやすいと思うんだけどね。
高校数学で微分法のやり方だけ教えられても、なんのこっちゃってなるわな。
2022/02/21(月) 20:16:27.67ID:L+huZtJR0
重積分も要るよね
2022/02/22(火) 13:11:29.21ID:ZRiDdWVcD
>>263
数学知識はアルゴリズムでは有利だろうけど、
データ構造の部分は補完できない気がする
267デフォルトの名無しさん (オッペケ Sr07-83Jl)
垢版 |
2022/02/22(火) 16:26:08.38ID:tFq2X4Pyr
JupyterLab上でCythonとNumbaを混ぜて書くのって、皆さんどうされてますか?
268デフォルトの名無しさん (ワッチョイ cf10-llH5)
垢版 |
2022/02/22(火) 19:28:51.42ID:VxZFbCEQ0
>>266
配列はベクトルだし辞書は写像だぞ
クラスもそう言ったものの組で表せる
2022/02/23(水) 04:11:43.69ID:ecVw6j+60
なんすか写像って?
2022/02/23(水) 08:14:28.55ID:dEsRB2rO0
関数のことじゃないか?
2022/02/23(水) 11:00:59.33ID:q4+ZzjL10
だめだこりゃ
2022/02/23(水) 16:12:00.78ID:wNcLFBxP0
数学で関数を一般化したものが写像
2022/02/23(水) 16:34:11.50ID:k6cUpA1I0
始域とか終域を気にしないなら写像も関数も同じ
274デフォルトの名無しさん (ワッチョイ 932c-jpDQ)
垢版 |
2022/02/25(金) 19:28:54.22ID:g1yppKye0
型ヒントでTrue, False, 0, 1を書きたいときはどうすればいいですか?
単にx: boolだと0か1を入れようとしたとき怒られてしまう
2022/02/25(金) 19:39:00.99ID:+MW+aCEYM
0,1を許すならintの全範囲を入れるしかないな
276デフォルトの名無しさん (ワッチョイ b35f-b3pi)
垢版 |
2022/02/25(金) 20:13:35.43ID:V7gW7EMD0
requests.get

has not うんたらだと

ファイル名を変えろとあるが、ファイル名の何が引っかかってるのかすらわからんわ
ほんとくそ

クソすぎPython
277デフォルトの名無しさん (ワッチョイ 7f0c-JxlO)
垢版 |
2022/02/25(金) 20:21:17.06ID:Gd8T12Wp0
>274
文字列として if x in ['True', 'False', '0', '1'] にする。
278デフォルトの名無しさん (オッペケ Sr07-llH5)
垢版 |
2022/02/25(金) 20:27:27.26ID:ACjsrF+lr
>>274
Union[bool, Literal[0,1]]
279デフォルトの名無しさん (ワッチョイ 932c-jpDQ)
垢版 |
2022/02/25(金) 20:37:59.00ID:g1yppKye0
>>278
あーやっぱりこれしかないんすね
了解
280デフォルトの名無しさん (ブーイモ MMe7-n5qM)
垢版 |
2022/02/25(金) 21:51:21.25ID:jsx2tRykM
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^

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

クソチョンw
クソチョンはウンコを食べる糞食人種w
クソチョンはゲリ便をじゅるじゅると
うまそうに食うw
2022/03/02(水) 15:38:22.24ID:idBaDh/00
win10の話

batファイルに
python script1.py
python script2.py
pause

みたいに書いても、1行目だけ実行して終わってしまう
明示的にpythonのパスを指定すれば大丈夫
何故?
2022/03/02(水) 15:45:27.74ID:JcG9HuPr0
俺は動いたぞ
2022/03/02(水) 17:11:23.86ID:T840wOH30
where python
の結果とパス指定したpythonがちがうんでない
2022/03/02(水) 17:19:36.94ID:idBaDh/00
shims/python.bat が動いてるみたい
余計なことを
2022/03/02(水) 18:22:43.21ID:crGwBSaoa
call python ~
batはだいたいcallしたらどうにかなる
2022/03/02(水) 21:18:52.61ID:IV+v6BgH0
>>281
1行目と2行目並行してうごいてたりしない?
2022/03/02(水) 21:22:34.26ID:idBaDh/00
そうはならない
batからbatを呼ぶとそっちに処理が移って戻らない
288デフォルトの名無しさん (ワッチョイ aa36-VNNE)
垢版 |
2022/03/02(水) 22:08:07.22ID:eLOo0YcD0
逆に凄いなw
2022/03/02(水) 23:30:03.53ID:JgRDiBWO0
>>287
基本shのexec相当になるってこと?マジか知らんかった
2022/03/03(木) 03:47:53.51ID:2VolXl3W0
cmdスクリプトはcmdが解釈できるからcallするセマンティクス(サブルーチン)、exit /bで明示的にリターンする
非cmdスクリプトなら解釈できないので当然使えないので、コマンドのセマンティクスになる

pythonを単にコマンド的に使いたいのならエイリアスにするか
PS> nal python -p \path\to\python.exe
(cmd使いなら多分
doskey python=\path\to\python.exe )

あるいはグローバルな変更になるけどシンボリックをPATH通ってるところに置くか
PS>ni python -v \path\to\python.exe -i symboliclink
2022/03/03(木) 03:55:25.10ID:2VolXl3W0
>>286
非同期にプロセス走らせるのはstartコマンド
2022/03/03(木) 04:00:59.79ID:2VolXl3W0
>>289
プロセスを置き換える訳ではないから違う
cmdはcmdスクリプトを直接解釈できるからそもそも化ける必要が無い、shなら.(source)に近い
2022/03/03(木) 04:14:15.66ID:2VolXl3W0
Pythonはpyとかpython.exeとかpython.bat?(俺環にはなかったはず)とか色々cliがあってややこしいね
294デフォルトの名無しさん (JP 0H4f-r1bE)
垢版 |
2022/03/09(水) 18:00:08.18ID:QXIvPM7CH
data = db.idx[10]
print(data.idx) #10

みたいなことがやりたいんですが
外部ライブラリなしで実現できますか?
pandasありゃ事足りるんだけど

data.name[src.name].state = False
みたいな感じに書きたい

print(data.get(name=src.name).id) とかでも…
2022/03/09(水) 18:00:40.60ID:6qKP0lKwa
FastAPIのdependsのようにメソッドへ依存性を注入するライブラリやデコレータってないでしょうか?
2022/03/09(水) 18:24:05.80ID:BS7+0xn70
>>294
そうゆうクラス書けば??
297デフォルトの名無しさん (ワッチョイ 9b2c-r1bE)
垢版 |
2022/03/09(水) 18:45:58.35ID:Va7Ks72V0
>>294
組み込みでやるならmy辞書クラスにドットアクセス機能つけたらいいよ
チェーンもできる。使いやすい
2022/03/09(水) 18:46:28.42ID:BmuwHDcN0
>>294
collections.namedtupleで我慢するか
適当に拡張する
2022/03/11(金) 18:31:46.93ID:I+f+ofSh0
環境がわけわかめになってる
VS code EditorでPowerShell使って、WSLの中に入ったのか、PowerShell使ったのか
とりまAnacondaで環境作ったのに、
どこを定位置にするか
2022/03/11(金) 18:33:01.39ID:I+f+ofSh0
Dockerで作ったほうがいいのか、コラボラトリーも便利だし
2022/03/12(土) 10:53:58.88ID:2x7XRkpq0
ランタイムだけなら小さいから両方入れればいい
俺は特にwslに用は無いんだが、リモートコマンドを試す為に入れてみた
変数のスコープ(ローカル/接続先)とか今まで気にしたことなかったので勉強になります
302デフォルトの名無しさん (ワッチョイ 7e02-t0a9)
垢版 |
2022/03/12(土) 16:53:20.02ID:0WnO0bNJ0
smtplibでメール送るプログラム作っているのですが
こんなBodyの中に変数埋め込む事できますか?
body = u'''
本文1行目
本文2行目
'''
2022/03/12(土) 17:06:53.14ID:vOggJ4gq0
今時旧石器時代のPython2使ってるなら我慢して%フォーマットとかstr.format使ってくださいよ
旧石器時代の遺物なんだから
2022/03/12(土) 17:10:13.85ID:tO7UJ8Pfa
%は使わんわ…
2022/03/12(土) 17:42:38.98ID:8w9oH7w/0
何故最初からf文字列を発明しなかった
2022/03/12(土) 22:11:32.35ID:9cczQYeA0
Ruby on Rails で初心者なら、クラウド開発が簡単。
Heroku, Cloud 9, CircleCI/Github Actions とか

ローカルPC は、OS の設定が難しい

WSL2, Ubuntu, VSCode の拡張機能・Remote WSL とか、

日本人が作った、バージョンマネージャーのanyenv で、
rbenv, goenv, nodenv, pyenv, tfenv(Terraform)とか。
同様のツールに、asdf もある

WSL2 なら、Windows 10 Home でも、Docker Desktop を使えるようになった
2022/03/12(土) 23:26:39.09ID:I8V3fNpzr
>>306
Ruby の話題は、Ruby のスレへ書き込んでください!
2022/03/12(土) 23:55:16.06ID:8w9oH7w/0
dataを入れるリストをdatasにしようと思って、dataは複数形だと思い出す
2022/03/13(日) 00:06:36.81ID:FJ5LNgJs0
dataとか単語選んでる時点で失敗
2022/03/13(日) 00:10:17.75ID:q5deeCy80
別にdでもいい
2022/03/13(日) 00:14:39.66ID:+47b0DPf0
>>308
昨日の俺かよ
イキってギリシャ語やラテン語をそのまま輸入するから変なことになる
312デフォルトの名無しさん (ワッチョイ 7e02-t0a9)
垢版 |
2022/03/13(日) 08:44:57.29ID:PNg3e3/T0
>>303
ありがとうございます。Python始めたばかりなので
なので参考になりました。f’’’で解決しました。
2022/03/13(日) 08:54:54.23ID:q5deeCy80
参考にしたであろうperlとかでも、
"文字列中に $var を混ぜる"
とかできたんだから、python1でやれてて当然なのに
2022/03/13(日) 09:52:45.18ID:LZlYUQW/0
Perlを反面教師以外に参考にしてるなんてRubyくらいやろ
315デフォルトの名無しさん (オイコラミネオ MMe9-HUYZ)
垢版 |
2022/03/13(日) 10:08:52.18ID:3EInARLLM
標準ライブラリのtemplateもある。formatでできることより単純な差し込み向け。
2022/03/13(日) 11:28:50.07ID:HQz48e8Z0
>>308
なんでもsつけて複数形にするのはよく見かけるわな
メガネとか靴とかもとから複数形の物もあるし混乱の種
複数形は集合を表すものじゃないんだから使わないのが一番
2022/03/13(日) 11:37:43.97ID:q5deeCy80
nameのリストの名前
name_listで特に困らない
ちょっとハンガリアン
2022/03/13(日) 11:51:57.64ID:HQz48e8Z0
アドレス帳をaddressesなんて言わんしな
単純にはaddress listでいいわ
データベース的にはfield, record, tableという構造になってる
これに即して命名するのもあり
2022/03/13(日) 12:26:52.57ID:xFTnNj9la
listsがlistのlistだった
2022/03/13(日) 12:35:44.52ID:q5deeCy80
perlだと$nameと@nameは別扱いなので、
push @name, $name;
とかやってた

それはやれてしまっていたというべきで、どう考えても混乱の元だから、
やれてもやるべきではなかった
2022/03/13(日) 13:32:36.18ID:w8tCkHdJM
そりゃアドレス「帳」ならAddressListだろうよ
例えばメーリングリストに含まれるアドレスを処理するために配列に取り出すとかした時の配列名とかの話だろ
2022/03/13(日) 21:39:49.63ID:FJSpDIi20
特定のホットキーを押したら、ウィンドウを動かす的なの
作ろうと思ったんだけど、もしかしてPythonじゃ遅すぎて無理?
2022/03/13(日) 21:48:17.53ID:q5deeCy80
keyhacを試してみるのだ
324デフォルトの名無しさん (ワッチョイ 82f7-qdIG)
垢版 |
2022/03/13(日) 22:05:12.64ID:Eg2cTOah0
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^

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

クソチョンw
クソチョンはウンコを食べる糞食人種w
クソチョンはゲリ便をじゅるじゅると
うまそうに食うw
2022/03/13(日) 22:40:55.14ID:FJSpDIi20
>>323
助かった。dクス
2022/03/14(月) 01:44:51.55ID:j1ckIHBu0
RubyはPerlと同じ罠にひっかかって
ユーザーがぐちゃぐちゃにしたなw
2022/03/16(水) 22:26:49.82ID:pk8gMscxd
配列なら○○Array、リストなら○○List
常考だろ?
2022/03/26(土) 02:56:43.62ID:tYKPI2AU0
printに()を付けるようにするのはどうしても必要だったん?
urllib.urlopenがurllib.request.urlopenになったり、pythonは2→3で必要文字数が無駄に増えて退化したように感じるんだけど
2022/03/26(土) 03:58:19.10ID:Hiiwe0bS0
インポート次第で問題なし
2022/03/26(土) 11:47:46.87ID:O3+9n+yo0
関数のほうが式として使えるから、文としてしか使えない2のprintよりいろいろ便利だよってことみたいだけど
2022/03/26(土) 11:54:09.36ID:FtvuvX4h0
a = ["hoge", "foo", "hage"]
[print(x) for x in a]

昔こんな使い方したことがある
2022/03/26(土) 11:58:33.72ID:Yf6WKcI40
2の文字列の扱いとか面倒だったし3を忌避する理由がわからん
2022/03/26(土) 13:29:55.11ID:0NM75cEC0
いまさら1.5や2にはもどれんけども
最近なんでも取り入れて糞化がすすんでる
2022/03/26(土) 15:07:48.48ID:7QixBL050
そんなほいほい新しいアイディアなんか無いやろ
2022/03/26(土) 15:44:34.49ID:G8hldp180
C++のマジそれ誰が実践で使うのっていうここ5年ほどのライブラリにくらべれば、まだPythonはマシな方。
2022/03/26(土) 16:09:36.02ID:/EcDyLpw0
未だに2と3どちらでも動かせるスクリプトをメンテしてるんだが、
モジュールのインポートで書き分けている(urllib/urllib2など)と、
そのあたりを理解できない頭の悪いPylanceとかが
インポートの問題が解決できないとかうるさい
環境に応じてtryしてるんだから理解してくれよって感じ
2022/03/26(土) 16:20:10.80ID:qLHTxQhk0
頭が悪い以前にそもそもpython2には対応してないかと。
2022/03/26(土) 16:21:50.03ID:k6daO3eta
>>336
おまえバカなんじゃねえの
2022/03/26(土) 17:11:52.39ID:/EcDyLpw0
>>337
3で使われていないモジュール名は理解できないということか
なるほどね
おとなしくJediにしておくかな
2022/03/26(土) 17:21:06.49ID:7QixBL050
2でスタートしたツールは未だに2が多いな
printとか自力で直しても、なんか謎のバグで動かなくて、
まあいいやってなる
2022/03/27(日) 12:16:29.81ID:/rdy5yNE0
長い文字列が
キーワード 文字列1 キーワード 文字列2 ...
みたいに並んでて、
[キーワード 文字列1, キーワード 文字列2, ...]
みたいにリストで切り出したい

固まりの終わりにも別のキーワードがあれば正規表現の .+? でうまくいくけど、
そういうのは無い
愚直に検索して見つかった位置から切り出すしか無いだろうか
2022/03/27(日) 12:27:04.30ID:o0+t6QgP0
「キーワード」と「文字列」は、何で区別できるの?
2022/03/27(日) 12:33:03.46ID:6UVMlVA40
csv
2022/03/27(日) 13:44:52.67ID:cSpAMJara
>>341
キーワード□文字列1□キーワード□文字列2□...(□は空白)
ってこと?
まさかと思うけど文字列nは任意の文字列(空白やキーワードなんかも含む)ってことはないよね?
2022/03/27(日) 13:47:59.10ID:QfDpYMDt0
https://docs.python.org/ja/3/library/re.html#re.findall

re.findall(r'(¥S+)¥s+(¥S+)', 'キーワード 文字列1 キーワード 文字列2 junk ')
2022/03/27(日) 14:01:37.59ID:/rdy5yNE0
理解できないふりをして遊んでるんだろうか
347デフォルトの名無しさん (ワッチョイ a901-VQaK)
垢版 |
2022/03/27(日) 15:12:28.59ID:nYvTQ02C0
質問なんですが
# -*- coding: utf-8 -*-
import glob,os,re
file = glob.glob(‘C:\Users\name\Desktop\*.jpg’)
で取り出したファイル名を使ってファイルを開こうとすると
ファイル名が日本語の場合文字化けしてファイルが開けませんでした。
文字化けを直すにはどうしたら良いのでしょうか?
print(file)した時に文字化け表示される文字は
'C:/Users/name/Desktop\\\x83A\x83\x8a\x83G\x83N\x83`\x83\x83\x83b\x83g\x91\xce\x89\x9e.JPG'
こんな感じです
2022/03/27(日) 15:47:21.70ID:Pt4QK33b0
>>341
単純に前から2つずつ取っていけばいいだけように見えるから
もう少し仕様の詳細を書かないとと何で困ってるのかよくわからないな

正規表現の.+?でうまくいく想定なら求めてるのはlookaheadなのかな?
re.findall(r'(キーワード .+?)(?= キーワード|$)', target_string)
2022/03/27(日) 16:03:23.39ID:/rdy5yNE0
|$ か、なるほど
今ひとつすっきりしないので、キーワードでsplitして先頭を捨てた
キーワード部分は必要なら後からくっつける
350347 (ワッチョイ a901-VQaK)
垢版 |
2022/03/27(日) 17:20:34.91ID:nYvTQ02C0
くだすれがありましたのでそちらに移動します
スレ違いすいませんでした
2022/03/27(日) 17:39:52.96ID:/rdy5yNE0
レコードの先頭だけ識別できて、次の先頭の直前または末尾までをレコードとする
構造を書き下すと、|$ そのままなんだよな
実装が面倒なんじゃなくて構造が本質的に面倒なのか
書く側としては素直なのに

pythonの字下げが終わるまでがブロック、も似たところがある
2022/03/27(日) 20:59:24.88ID:kcBBkNsT0
最近Python入門しました
ドットインストールのPython講座をデータ構造編までやって、今日からスッキリシリーズの機械学習に取り組んでます
パイソニックな書き方に早く慣れたい
2022/03/27(日) 23:13:28.78ID:jm3hrSJpd
機械学習やっててもパイソニックな書き方なんて身に付かないぞ
PandasとJupyterばっかり使ってる奴なんて、プロのデータサイエンティストでもPythonの使い方はだいたい無茶苦茶
2022/03/27(日) 23:55:14.61ID:ZGPAKte20
他の言語で言うところのスマートな書き方って奴で、初心者と中身のない奴が拘ってる印象
2022/03/28(月) 00:02:49.99ID:EKbaCAth0
pythonでより短く書ける程、それはいいコードだ
2022/03/28(月) 00:14:01.99ID:3F3AyQ/Q0
↑典型的な厄介
2022/03/28(月) 00:29:33.98ID:EKbaCAth0
そうやってリファクタリングしないから上達しないんだ
2022/03/28(月) 00:54:28.17ID:fOuoq+z3H
インタープリタとしてなるべく一行に色々書きたい気持ちはある
2022/03/28(月) 01:17:42.79ID:3F3AyQ/Q0
>>367
import this
2022/03/28(月) 01:18:10.72ID:3F3AyQ/Q0
アンカミスってこっ恥ずかしい
2022/03/28(月) 07:51:15.41ID:bggr0gZp0
>>347
>>350
Python の質問だから「くだすれ」よりも、このスレで良いと思う
2022/03/28(月) 08:01:06.10ID:bggr0gZp0
>>361
自己修正

「くだすれ」は、【まず1嫁】くだすれPython(超初心者用) その56
の事だったのか

それなら、そちらで良い
2022/03/28(月) 08:54:05.92ID:EKbaCAth0
商品の名前とコードがある
name[i]とcode[i]で管理していたものを、クラス化して
product[i].nameとproduct[i].codeに変更した
かっこいい

新しい商品をappendする時にコードが既存かどうか調べたい
new_code in code で判別できていたものができなくなった
駄目じゃん

リストのインスタンス変数だけのリストって書ける?
364デフォルトの名無しさん (ワッチョイ 5e10-tloP)
垢版 |
2022/03/28(月) 09:06:37.44ID:oSVMyGhC0
code_list=[p.code for p in product]
365デフォルトの名無しさん (ワッチョイ 5e10-tloP)
垢版 |
2022/03/28(月) 09:09:29.67ID:oSVMyGhC0
appendの度にnew_code in code_listで判定するのは効率悪い。
codeのsetを分けて作って判定に使用する方がいい
366デフォルトの名無しさん (ワッチョイ 12b1-l0Ke)
垢版 |
2022/03/28(月) 09:34:45.03ID:2JNAs0aN0
product = {}
product[code1] = name1
product[code2] = name2
product[code3] = name3

#new_codeが新規だったら、new_nameを追加

if( not product.get(new_code) ):
product[new_code] = new_name

では?クラスじゃないけどw
2022/03/28(月) 09:40:50.82ID:EKbaCAth0
実際には付随する情報はいくつもあるので、クラスでないと都合が悪い

原始的なデータ構造は効率よく書けるけど取り回しが面倒
凝ったデータ構造は効率が落ちるけど簡潔に書ける
というトレードオフをいかにかいくぐるか
2022/03/28(月) 09:43:30.32ID:AxcesplD0
Productsクラスにクラス変数でsetのcode_listを作って、
クラスメソッドに判定メソッドを作る、かな
2022/03/28(月) 09:47:41.39ID:rI7b9so+0
それならlistを拡張したProductsみたいなコンテナつくって
append(): codeが重複してたら例外発生、setに追加、super()
__contains__(): code in setを返す
370デフォルトの名無しさん (ワッチョイ 12b1-l0Ke)
垢版 |
2022/03/28(月) 09:50:50.05ID:2JNAs0aN0
じゃ、productにnameじゃなくて、クラスをいれたら?
クラスをcodeで管理。


product[code] = ClassProduct()

product[code] .name = name
product[code] .stat = stat



codeがわかれば、必要なクラスも直ぐ抜きとれるし。
2022/03/28(月) 10:17:25.10ID:EKbaCAth0
確かに
iは何の意味も無いし、codeが一意であることは保証されてるので、
辞書にするのは正解かもしれない

存在しないcodeでアクセスしようとした時のエラー処理がいちいち要るけど
2022/03/28(月) 10:55:41.63ID:Y00SKHGka
>>371
> 存在しないcodeでアクセスしようとした時のエラー処理がいちいち要るけど
そもそもそれってバグじゃないの?
バグじゃないとしても何らかの処理は必要だろうし
2022/03/28(月) 11:06:41.88ID:VVqEOzkp0
>>367
一般的に効率を求めるならn×n型の正方行列でデータをモデリングするのがいい
取り回しのしやすさも大事だから多少崩すのはあり

製品名と製品コードだけの言わゆる縦に長いリストは事前にB木のような検索しやすい形に落としておくのがいい
どこまでこだわるかは知らんがな
2022/03/28(月) 11:27:49.01ID:EKbaCAth0
まあ、速度が気になるほど大規模で複雑になってきたら、
素直にsqliteとかにするだろうな
2022/03/28(月) 20:46:45.46ID:s4wdkh4mr
openpyxlでExcelのセル値を取得して
その値をwin32com.clientでoutlookメールの本文に
入力しようとしました。

取得しないといけないセルの値が複数あって
for文で繰り返そうとしたら、mymail.bodyごと繰り返すことになって最後の値しか入力できなくね?ってなって詰みました

そもそもプログラミングの考え方的な勉強が足りてないきがする…
2022/03/28(月) 20:57:33.77ID:dq36COO4M
複数の値をいったんどこか(配列や文字列)に格納しておけばいいんじゃね?
2022/03/28(月) 20:58:08.35ID:jFIHrb030
>>375
せやな
2022/03/28(月) 21:18:21.40ID:s4wdkh4mr
普通に考えたら簡単だった
勉強して出直します
2022/03/28(月) 21:21:44.90ID:ZoVE0EsFa
>>375
> for文で繰り返そうとしたら、mymail.bodyごと繰り返すことになって最後の値しか入力できなくね?ってなって詰みました
for ...
 mymail.body += …
ってやればいいだけじゃね?
2022/03/29(火) 19:42:12.33ID:zByYJvCZ0
10年ぶりにプログラミング学習勧めてるけどpython面白いなー
5chではそんな流行ってない感じ?
2022/03/29(火) 19:54:54.17ID:OSL8rQck0
面白いかというと、普通だなあ
もっと変態性があった方が面白い
2022/03/29(火) 20:01:42.37ID:Lm+VBmJe0
10年前と比べて5ch(2ch)自体が流行ってないのでここを見る価値はほぼほぼ無い
383デフォルトの名無しさん (ワッチョイ 2b02-QwOq)
垢版 |
2022/04/04(月) 09:06:38.82ID:6BJg7Haj0
配列のスライスで開始は含まれるけど、終了は-1までしか取り出されないので不思議じゃないですか。
。なんか意味があるんでしょうか。
2022/04/04(月) 09:25:59.95ID:aNvi7YwD0
assert L[a:b] + L[b:c] == L[a:c]

これが成立するように決められたので後ろは-1なのだ
2022/04/04(月) 12:10:36.42ID:LZrp0Tnpr
A = A[:len(A)]
で同じってのもスッキリ
2022/04/04(月) 12:56:48.98ID:B4gsyUD40
rangeの文法も未だに入ってない

perlで1 .. 10
の感覚でrange(1,10)
とやってしまう
for文のエッセンスだと思えばいいんだけど
2022/04/04(月) 14:59:17.94ID:ipv6RaUy
親ディレクトリ
├子ディレクトリ1
│ └○○.py
├子ディレクトリ2
│ ├△△.py


【△△.pyにて】
import 親ディレクトリ名.子ディレクトリ名.○○
でimportできるのがモヤモヤするのだがそういうもんだと割り切るしかないのだろうか・・
2022/04/04(月) 15:21:10.29ID:plLvQfyK0
>>387
import sys
できるのは違和感ないんだよね?
sys.path
をプロジェクトルート(親ディレクトリ?)からの対話モードかプログラム内で表示してみて
2022/04/05(火) 08:00:21.63ID:lvTK6cMoa
京都大学、Pythonの基本を解説した無料の教科書「素晴らしすぎる」「非常にわかりやすくて良い」
ttps://ledge.ai/kyoto-u-ac-python/
2022/04/05(火) 08:51:58.37ID:+KUidK0I0
とにかく何か面白いものを作ろう、というアプローチは正解だな
逆に言うと、面白いものが作れないなら勉強なんかしない
次点で役に立つもの
次次点でいつか役に立つもの
391デフォルトの名無しさん (ワッチョイ 155f-2JBZ)
垢版 |
2022/04/05(火) 17:55:19.15ID:dfVFJu6e0
プログラムがち初心者です
すごく初歩的な質問かもしれませんが

パスワードやアカウントの管理プログラムを作りたくて
とりあえず色んなサイトを参考に手探りで書いては見ました

IDアカウント
string = input("安倍カード")
string = input("abeshinzo14")
print(string)

パスワード
string = input("安倍カード")
string = input("purinkure")
print(string)


ただこれだとパスワードが知りたくてもパスワードで文字入力enter押しちゃうと
IDアカウントの「abeshinzo14」が表示されてしまいます
パスワード文字入力なら「purinkure」が表示されるようにするには、どうしたらいいでしょうか?
2022/04/05(火) 17:58:44.93ID:xeLAL8CDM
俺は理解できなかった
2022/04/05(火) 18:28:19.46ID:EtikemGCa
>>391
とりあえずそれぞれ違う変数に入れたほうがええんちゃうかな
394デフォルトの名無しさん (ワッチョイ 155f-2JBZ)
垢版 |
2022/04/05(火) 18:43:25.77ID:dfVFJu6e0
>>393
こう?

string = input("安倍カード:")
ID = input("abeshinzo14")
print(ID)
string = input("安倍カード:")
パスワード = input("purinkure")
print(パスワード)
string = input("安倍カード:")
暗証番号 = input("92614")
print(暗証番号)
2022/04/05(火) 18:47:10.87ID:km/WzABP0
とりあえず書いたコードそのまま貼り付けてくれないと何をやったのかよく分からん
396デフォルトの名無しさん (ワッチョイ 155f-2JBZ)
垢版 |
2022/04/05(火) 18:56:17.94ID:dfVFJu6e0
>>395
これがそのまま貼り付けた奴なんだけど……
2022/04/05(火) 19:13:09.71ID:km/WzABP0
>>396
え?Pythonてマルチバイト文字をエスケープしなくてもエラー出ないんだっけ??

IDアカウント

とか

パスワード

とかを行頭にそのまま書いて.pyで保存して実行してもエラー出なかったり、変数名に

暗証番号

みたいなマルチバイト文字を使えるん?
他の言語から入ったから先入観でダメだと思っててそんなことしたことなかった
帰ったら試してみる
2022/04/05(火) 19:20:06.14ID:km/WzABP0
やってみたら出来た
マルチバイト文字を変数名に出来るの初めて知った
2022/04/05(火) 19:58:10.19ID:J34PMljY
>>391
暗証番号の下りがちょっとわからなかったんだがこういうことかな
違ってたらすまん
https://colab.research.google.com/drive/1kpMrSN0u-FUxmJja8DoeTnq-FWV8tx-C

items=[
{"id":"abeshinzo13","pass":"purinkure3"},
{"id":"abeshinzo14","pass":"purinkure4"},
{"id":"abeshinzo15","pass":"purinkure5"},
{"id":"abeshinzo14","pass":"purinkure44"},
]

id = input("idを入力してください: ")
print(id)
print(*[ item for item in items if item["id"]==id ])
400デフォルトの名無しさん (ワッチョイ 8536-ez/W)
垢版 |
2022/04/05(火) 20:31:06.69ID:2OfObjEt0
猫も杓子もpythonだからpythonを始めることにしたよ
おすすめのIDEと入門書籍を数冊教えておくれ
2022/04/05(火) 20:59:47.88ID:1oxAZtDGa
>>398
今時は多くの言語で識別子に漢字とか使えるぞ
2022/04/05(火) 21:01:28.17ID:+KUidK0I0
使えるけど使わないよな
ファイル名くらいは使うようになってきた
403デフォルトの名無しさん (ワッチョイ 155f-2JBZ)
垢版 |
2022/04/05(火) 21:55:58.76ID:dfVFJu6e0
>>399
>>391
だと例えば「安倍カード:」が表示されて
enter押すとID「abeshinzo14」が表示される
これを特定の文(IDとかIDアカウント)を入力すると
ID「abeshinzo14」って表示が出るようにさせたい
今のままだとパスワードとか打ってもID「abeshinzo14」って出ちゃうので
2022/04/05(火) 22:20:21.24ID:BnUwK9y40
マルチバイト文字はトラブルの基だから使わない方がいいと思うけどな
ひらがなの「へ」とかたかなの「「へ」とか似た文字が多すぎる
2022/04/05(火) 22:24:04.47ID:+KUidK0I0
そんなこと言ったらIとlと1が似てるからアルファベットも禁止
2022/04/05(火) 22:35:28.61ID:WsEAfLP70
>>400
無料でやるならVSCodeにPython関係の拡張機能入れればOK
有料でも良いならPyCharmが一番使いやすいし、機能も多い

>>403
超単純に実装するならdictionaryを2重で使って
キー(安倍カード)とバリュー(ID:abeshinzo14,パスワード:purinkure)みたいな構造にする
真面目に作るなら専用のクラスを作って、ID、カード名、パスワードとかを一元管理する
(というかアカウント管理とかはWeb系のフレームワーク使ってたら専用ライブラリがあるので、普通はそっち使う)

とりあえず根本的な問題として基礎的なプログラミング知識が欠落してるっぽいから
素直にチュートリアルを一通りこなして、全体的に何が出来るかを身に着けた方が良い
407デフォルトの名無しさん (ワッチョイ 155f-2JBZ)
垢版 |
2022/04/05(火) 22:49:13.48ID:dfVFJu6e0
>>406
やっぱ基礎からして終わってるか……
本買うしかないのかね
ありがとう
408デフォルトの名無しさん (ワッチョイ b501-ez/W)
垢版 |
2022/04/05(火) 22:49:51.63ID:hHj4ru+60
>>406
アドバイスあざーす
2022/04/05(火) 22:54:09.41ID:saYBpjkL0
>>407
Pythonは公式ほかWebサイトが充実してるから本はいらんおもう
大学の講義ノートもいっぱい公開されてる
410デフォルトの名無しさん (ワッチョイ 155f-2JBZ)
垢版 |
2022/04/05(火) 22:58:04.48ID:dfVFJu6e0
>>409
webサイトは意味不明なのが多すぎる
何を参考していいのか分からん
2022/04/05(火) 23:03:57.97ID:saYBpjkL0
わかるw
だから公式サイトか適当な大学の講義ノートでいいんじゃない?
Python関係なく非公式なサイトは知見を得るためで教科書がわりにしない方がいい
2022/04/05(火) 23:09:06.02ID:+KUidK0I0
なんか変なエラー出た
みたいな時はぐぐるとあっさり解決したりする
デバッグにネットは便利
2022/04/05(火) 23:16:00.25ID:J34PMljY
>>403
こういうことか
管理はやりにくそうだが
https://colab.research.google.com/drive/1Pt_OpflcqhA7ZoshdtiLzQgBfs59SbsM
items={
"安倍":[
{"id":"abeshinzo13","pass":"purinkure3"},
{"id":"abeshinzo14","pass":"purinkure4"},
],
"岸田":[
{"id":"kishida13","pass":"purinkure3"},
{"id":"kishida14","pass":"purinkure4"},
],
}

def ck(card):
res=input(f'{card}カード: ')
res = ck(card) if res!="" else input('"アカウント" "ID" "パスワード" いずれかを入力してください。')
_items=items[card]
if res=="アカウント":
return [ item for item in _items ]
elif res=="ID":
return [ item["id"] for item in _items ]
elif res=="パスワード":
return [ item["pass"] for item in _items ]
else:
ck(card)
return
print( *ck("安倍") )

暗証番号追加したければ{"id":"","pass":""}のとこに暗証番号のキー追加と
条件分岐のとこで増やしてやるだけ
2022/04/05(火) 23:27:57.61ID:J34PMljY
訂正
>>413だと二回目のinputで無い値を入力するとエラー吐いてしまう
2022/04/05(火) 23:29:26.87ID:EtikemGCa
日本語はどんどん使うほうが良い
2022/04/05(火) 23:35:33.16ID:J34PMljY
途中で送信してしまっていた
→ return ck(card)
更新しといた
>>413,414
2022/04/06(水) 06:00:22.07ID:ectiuS9Ja
>>410
ちょっと前に紹介されてただろ ⇒ >>389
すでに実行できる環境あるなら最初の方はすっ飛ばして3章から読めばいい
2022/04/06(水) 08:18:27.18ID:eECC6ZwCM
全角アンチは過激派?
2022/04/06(水) 08:27:37.40ID:9/E23nPzM
そもそも入力めんどくて効率落ちるだろ
少なくともローマ字打ちで補完してくれる機能がないと無理
2022/04/06(水) 08:37:41.91ID:AJGoEzsz0
コーディングしている中で変数名を決定してる時間なんてごく僅か
あとはコピペとか一覧から選ぶだけなんだから何バイト文字だろうが同じ
2022/04/06(水) 08:45:14.38ID:sx1QEzgKa
時間の半分以上変数名関数名考えてるが…
2022/04/06(水) 08:52:30.71ID:9/E23nPzM
それは流石にだるすぎ
2022/04/06(水) 08:55:36.92ID:996roFDIr
最近ファイル名に日本語いけることを知った
使わんけど

テスト.py
print("hoge")

main.py
import テスト

hoge
2022/04/06(水) 10:28:54.41ID:tVvTTFdNr
困った時の辞書型か
425デフォルトの名無しさん (ワッチョイ 155f-2JBZ)
垢版 |
2022/04/06(水) 11:18:58.65ID:V6m5p1Ce0
https://www.python.jp/train/string/method.html

これの一番下の練習問題が解けない……

text = input("A") # 変数 text に文章を入力
lower_text = text.lower("A") # 入力した文字列を小文字に変換
print(text, "を子文字に変換すると、", lower_text, "になります。")

これだと何故かエラーになる
何が間違ってるのか
2022/04/06(水) 11:23:48.85ID:sx1QEzgKa
lowerの引数なに?
2022/04/06(水) 11:26:32.14ID:Svke+2Xid
text.lower()
2022/04/06(水) 11:35:39.53ID:KjCsX+rW0
>>425
text.lower()でしょ。引数は受け付けない。
エラーが出たらエラーも内容書かないと。

つか質問内容的にこっちでしょ。
http://mevius.5ch.net/test/read.cgi/tech/1640536690/l50
2022/04/06(水) 12:10:24.51ID:Zq17ImTq0
引数とか変数の代入とか関数とか、どこに書いた値がどこに入るのかという、
基本の基本の基本を勉強しないと

y = f(x)って書いておいて、yをさらに変換したいのに、
z = f(x)って書くようじゃ数学から勉強しなきゃダメじゃない?というレベル
2022/04/06(水) 12:11:25.49ID:Zq17ImTq0
z = g(x)か
431デフォルトの名無しさん (スッップ Sd43-kuSK)
垢版 |
2022/04/06(水) 12:17:33.71ID:Gm88HsPQd
クラス関数は初学者には分かりにくい
俺はオブジェクト指向じゃない言語から入ったから、むしろクラスを理解するだけで「そういうもの」と分かったけど、
初学者は関数に引数として変数を与える場合と、変数のクラス関数を使う場合の区別の仕方が難しいんじゃないかな
432デフォルトの名無しさん (ワッチョイ 155f-2JBZ)
垢版 |
2022/04/06(水) 12:56:47.14ID:V6m5p1Ce0
>>428
A
Traceback (most recent call last):

lower_text = text.lower("A") # 入力した文字列を小文字に変換
TypeError: str.lower() takes no arguments (1 given)
2022/04/06(水) 12:57:36.01ID:3uPNH9WcM
>変数のクラス関数
お前も初学者だろ
2022/04/06(水) 12:59:52.71ID:AJGoEzsz0
method
りぴーとあふたみ?
めそっど
めそっど

おけ
2022/04/06(水) 13:08:18.65ID:KjCsX+rW0
>>432
Traceback (most recent call last):は
text = input(“A”)を実行した後何も入力していないから
AAAって入力してみ

その後、上に書いた通り
lower_text = text.lower()で実行
2022/04/06(水) 13:11:06.40ID:3uPNH9WcM
そこじゃねーよ
オブジェクト指向の文脈なんだから関数かメソッドかなんて言語によっても呼び方違うし正直どうでもいい
2022/04/06(水) 13:13:33.65ID:XDrR8E8Nr
>>432
初心者のしがちなミスですね

print(text.lower())
で、小文字でaと出てくる筈です

()が付いているからついその中に代入しないといけないかと思われたのでしょうが、

これはオブジェクトのメソッドで、引数なしで動くものなので

文字列変数の後にピリオドでつなげて、
()の中は何も書かなくて大丈夫です

まあ、少しずつ文法覚えていって、
分からなかったら検索して用例を見ましょう
438デフォルトの名無しさん (ワッチョイ 155f-2JBZ)
垢版 |
2022/04/06(水) 13:18:39.68ID:V6m5p1Ce0
>>435
ごめん正解はこのままでよかったのね

text = input() # 変数 text に文章を入力
lower_text = text.lower() # 入力した文字列を小文字に変換
print(text, "を子文字に変換すると、", lower_text, "になります。")

適当にAIUEOって入力したらできた

AIUEO
AIUEO を子文字に変換すると、 aiueo になります。
2022/04/06(水) 13:24:52.63ID:XDrR8E8Nr
GJ!!!
2022/04/06(水) 13:49:08.09ID:r+m0Iqav
詰まったら分解して考えるといいかと
(1)text = input("A")
(2)lower_text = text.lower()
(3)print(lower_text)

この程度だと出てきたエラー見て解決できるのが大前提ではるが
それを置いておくと
(1)inputのドキュメントみる
(2)lowerのドキュメントみる
(3)printのドキュメントみる
ドキュメント見るのが億劫なのであれば少なくとも
(1)inputで試行する
(2)lowerで試行する
(3)printで試行する
をやればいい
例えば
(1)
text = input("A")
print(text)
(2)
text="AIUEO"
print( text.lower() )
(3)
text="AIUEO"
text="OEUIA"
print( text )
などなど。

いきなり(1)(2)(3)合わせ技から入るとそもそも何がわかからないのかがわからない状態に
441デフォルトの名無しさん (スプッッ Sd03-kuSK)
垢版 |
2022/04/06(水) 14:06:50.56ID:oXFBIC4yd
>>433
あー、確かに言い方はおかしいな
だけど正確に簡潔にはどう言えば初学者に伝わる?
文字列を入れた変数は文字列型(クラス)のオブジェクト(インスタンス)で、
その文字列型のクラス関数(メソッド)を…

ファルシのルシがコクーンでパージされたレベルだと思うわ

変数の型宣言とかの「省略できるようになった」ことが、省略されてるだけで実際には処理されてるってことを知ってないと分からないと思う
Pythonは書くのには便利だけど初めて勉強するのにはどうだろ
関数とか条件式の定義の始まりとか終わりもなんとなく分かりにくいし
面倒くさいけど宣言しなきゃ変数を使えなくて{}で囲まなきゃシンタックスエラーが出る言語の方が、
理解はしやすい
2022/04/06(水) 14:16:43.73ID:AJGoEzsz0
オブジェクト指向とはそういうもんだと飲み込むしか

プログラミングのパラダイムシフトなんか2回しか起きてないんだから
BASICみたいな何でもありから、pascalみたいに構造化されて、
それで行き詰まったからオブジェクト指向になった
どこかの言語でマスターしとけば当分使える
2022/04/06(水) 14:20:12.75ID:ogQpv1VG0
> その文字列型のクラス関数(メソッド)を…

>>> text.__class__.lower(text)

>>> str.lower(text)
'aiueo'

コードの構造や統一感からこう書くときもある?わからん
444デフォルトの名無しさん (ワッチョイ 155f-2JBZ)
垢版 |
2022/04/06(水) 15:40:11.39ID:V6m5p1Ce0
>>440
分かりました
プログラミングって方程式が得意じゃないと難しいですね
445デフォルトの名無しさん (ワッチョイ 0d33-2JBZ)
垢版 |
2022/04/06(水) 17:06:40.17ID:LhkpmHw80
>>444
https://www.python.jp/train/index.html
でもやってみたらいいんじゃない
446デフォルトの名無しさん (ワッチョイ 155f-2JBZ)
垢版 |
2022/04/06(水) 17:10:54.79ID:V6m5p1Ce0
>>445
そのサイト参考にして勉強してます
2022/04/06(水) 17:15:43.87ID:ogQpv1VG0
python.jp は公式サイトではなく
雑多な趣味サイトのひとつなのでよろしくお願いします。
2022/04/07(木) 05:53:17.46ID:kD80L8Q0a
import webbrowser, time
[(webbrowser.open('=q?/moc.ogkcudkcud//:sptth'[::-1] + x),time.sleep(21)) for x in [
'兵願志02%旗日旭02%wt!'[::-1],
'省務外02%旗日旭のてしと化文統伝02%ty!'[::-1],
'画動ーリフ】VT項条間水【】旗日旭【回1第』編結完題問史歴アジア東『02%ty!'[::-1],
'reV02%NPJ02%VM02%eineG02%ty!'[::-1],
'wJ-fwbL_c4A02%ty!'[::-1],
'】NAPAJめたるな【出続々人るす惑困」!ろだ話り作「→」すまり語を実真に後最。すで人老の歳59「】応反の外海【02%ty!'[::-1],
'】VT項条間水【回885第』るすにから明てべすを密秘の下投」)年3102(弾爆識認史歴「で会国が員議院議衆彬成山中『02%ty!'[::-1],
'版地外02%蔵聞02%ihasa!'[::-1]]
]
449デフォルトの名無しさん (ワッチョイ 4b10-7Nbo)
垢版 |
2022/04/07(木) 08:16:28.59ID:F7M3b5EM0
>>447
その癖ググるとpython.orgより上位に出るんだよな
2022/04/07(木) 08:37:15.39ID:NQLstles0
Stackoverflowよりコピーサイトを上に出してくるマヌケ検索エンジンだから仕方ないだろ
451デフォルトの名無しさん (ワッチョイ a389-zoQf)
垢版 |
2022/04/07(木) 22:03:32.13ID:CVXmLsvy0
macのAutomatorにマウスやキーボードの操作を記録して再生できる機能を再現させたい
ざっくりでいいから作り方教えてほしい
pyautoguiは多少覚えてます
2022/04/07(木) 22:12:52.44ID:bWKh8TzS0
最近必要に迫られてselenium使ってみたけどなかなか面白い
ちゃんと動くようにしようと思うとエラー処理の固まりみたいになるな
2022/04/07(木) 22:24:52.90ID:mc5hILqJ0
>>451
Automator上からCLIのcliclick叩くのもシンプル
Python関係なくなるけど

>>452
Playwrightという選択肢も
2022/04/07(木) 22:40:15.09ID:CY3kh5ar0
tensorflowを2.8に上げるに伴って対応CUDAを日本語で調べたのが失敗だった
Google一番上に出てきた金子なんちゃら研究室の通りにCUDAとcuDNNのバージョン入れたらGPU使う動作でデバグできないエラー出てかなり悩んだわ
結局あれやこれや試したあと環境見直すときにTFの公式ページ熟読してバージョンが一致してないことが発覚
pythonに限ったことじゃないけど情報を集める場所は考えたほうがいいわ
2022/04/08(金) 00:32:49.12ID:ZCeEf8ov0
AIプログラミング初心者のための勉強ってどんな教材がいい?
ネットの月額教材は月額万単位のものも多いし、書籍はTensorflow1.xにしか対応してないものも多くて何を使えばいいのかさっぱり
2022/04/08(金) 00:51:37.04ID:aiXehUxt0
やりたいことがあればそれに突き進めばいいんだけど
英語が苦じゃなければいきなりKaggle
あとはこんなの
https://campaigns.google.co.jp/kids_ai/
2022/04/08(金) 01:07:42.82ID:r95liLn00
nn console
458デフォルトの名無しさん (ワッチョイ 4b10-7Nbo)
垢版 |
2022/04/08(金) 01:11:12.45ID:ViZWtTWj0
公式チュートリアル1から嫁
2022/04/08(金) 05:20:03.80ID:RDLEcCmed
ん10年ぶりに何かつくろうかとpython触ってみて
動的にクラスが作れるのはびっくり
2022/04/08(金) 11:20:08.15ID:pzSgmDvP0
seleniumのwebドライバはサウンド機能もあるので、
起動すると音量ミキサーに追加される
でも閉じる時に何故か消えてくれないので、
何度も起動してると音量ミキサーにブラウザが無限に並んでえらいことに
461デフォルトの名無しさん (ワッチョイ e568-eL9I)
垢版 |
2022/04/08(金) 12:08:05.20ID:ZCeEf8ov0
AI教材の件
教えてくれてありがとう
いろいろ試してみる
2022/04/08(金) 12:13:33.91ID:pzSgmDvP0
driver.close()の他にdriver.quit()も要るのか
463デフォルトの名無しさん (ワッチョイ a389-zoQf)
垢版 |
2022/04/08(金) 12:39:02.65ID:6ypNPyRK0
>>453
ありがとうございます。
やはりpython内でできるようにしたいので他の方法を考えてみます。
2022/04/08(金) 15:03:37.81ID:CY2NgfkZ0
すみませんPython初心者ですが質問です

MAX/MSPから常に値をOSCで送って、配列を長くしていきたいんですが、
.appendしても配列が常に更新されて長さが1のままです
ソースは下です

https://dpaste.com/2F4FM24EE

OSCで値が送られてくるたび配列に格納していきたいのですが、それでトライ&エラー的に
変数aをインクリメントしようとしてるのですが、ずっと1のまま
なぜでしょうか
教えてください
2022/04/08(金) 15:07:23.70ID:ty7rgx/da
>>464
pythonの基本的な書き方確認すればええよ
2022/04/08(金) 15:10:50.60ID:CY2NgfkZ0
>>465

レス有難うございます、もう少し具体的に教えていただけませんか。。
2022/04/08(金) 15:12:51.87ID:ty7rgx/da
>>466
いや全然わからんわけでしょ?
現状では無理よ
2022/04/08(金) 15:17:52.05ID:CY2NgfkZ0
ではPythonではなく一般論として、まず普通関数が呼び出されたらそのつど実行されますよね
そこで単に呼び出されるたびに数字をひとつづつ足したものを表示していけば数字は増えていくはずなのに、
そうなっていない

これはなぜなのですか?
Pythonに特有の現象なのですか?
2022/04/08(金) 15:19:50.44ID:ty7rgx/da
>>468
数字を一つずつ足す関数が書けるんですか?
2022/04/08(金) 15:25:52.75ID:CY2NgfkZ0
>>469

関数を呼び出すたびに
a += 1

これでいけませんか?
文法的な間違いはないようですが
2022/04/08(金) 15:29:34.61ID:pzSgmDvP0
インデントの間違いでは
2022/04/08(金) 15:37:04.91ID:CY2NgfkZ0
>>471

インデント、ほかの言語と違ってかなり重要なんですね、有難うございます
揃えましたが、結果的には同じようです・・・
2022/04/08(金) 15:44:58.02ID:+3oW9fkFM
同じなわけ無いだろ
もっかい確認しれ
2022/04/08(金) 15:45:50.65ID:pzSgmDvP0
あとは変数のスコープ関連だな
2022/04/08(金) 16:23:41.40ID:CY2NgfkZ0
>>473, 474

有難うございます、インデントを揃え、スコープもググったうえで関数内の変数をグローバル変数にしましたが、
11111111111111111111111111111111111111111111111

と出ます
ソース↓
https://dpaste.com/G7LWT56FW

なぜでしょうか・・・
2022/04/08(金) 16:39:41.66ID:pzSgmDvP0
呼ばれ方が判らないけど、毎回初期化してるのでは
2022/04/08(金) 16:42:17.38ID:CY2NgfkZ0
あ、上のソースで出来ました・・・お騒がせしました。
みなさんありがとうございました。
2022/04/09(土) 12:10:03.12ID:clV5r5o80
forのループのやり直しってできないのかな
continueはやり直しではなく、残りの処理を飛ばして次のループになってしまう
そうではなくて、今のループをもう一度
2022/04/09(土) 12:20:19.97ID:qQptZxW8a
成功するまでやった方が健康には良さそうだが…
480デフォルトの名無しさん (ワッチョイ 4f5f-n8Mu)
垢版 |
2022/04/09(土) 12:22:58.15ID:V7cnhGCg0
それ、ちょっとミスると無限ループだよね

何をやりたいのか分からないけど、例えばforループの中での処理を関数で定義しておいて、
条件を満たすときだけその関数をもう一度呼び出すとかじゃダメなの?

def funcA(int):
 hogehoge
 fugafuga

for i in range(20):
 funcA(i)
 if hoge == fuga: funcA(i)
2022/04/09(土) 12:38:06.09ID:clV5r5o80
やりたいのはエラー時のリトライだけど、どうやっても無限ループの可能性は残るので、
リトライ回数とか見て抜ける仕組みはどうせ必須で、
それならwhileループをもう一重増やしても大差ないし遥かに読みやすい

需要が無いから機能も無いんだろうな
2022/04/09(土) 12:52:43.14ID:qQptZxW8a
ループじゃなくて、キューを用意した上で動的にスケジュールすると考えた方がよいのかも
483デフォルトの名無しさん (ワッチョイ 0610-3n4s)
垢版 |
2022/04/09(土) 13:00:31.56ID:DVQDA1Qq0
>>478
詩的だね
484デフォルトの名無しさん (ワッチョイ 0610-3n4s)
垢版 |
2022/04/09(土) 13:02:55.56ID:DVQDA1Qq0
単純にwhileで成功時のみカウントをインクリメントするか
2022/04/09(土) 13:49:13.82ID:a9m8EYfTM
無理にrange使う必要ないもんな
2022/04/09(土) 14:50:19.51ID:clV5r5o80
リトライ処理の書き方

for _ in range(リトライ回数)
 処理
 if error:
  continue
 break
else:
 エラー処理

正常終了したら必ずbreakで抜けるというのは、驚きなく読まれるだろうか
487デフォルトの名無しさん (ワッチョイ 67b1-WWIQ)
垢版 |
2022/04/09(土) 15:56:36.21ID:dKyIxCe60
whileを使え。
無理矢理、力技やると後から見てワケわからん状態になるぞw
2022/04/09(土) 16:03:55.14ID:8+YqGKMM0
過ぎ去った青春をやり直したい
2022/04/09(土) 17:02:20.14ID:clV5r5o80
forでもwhileでも本質的には変わらない
正常時にbreakで抜けるのは慣用句かどうか
2022/04/09(土) 17:24:47.82ID:mo38de660
複数のif文をループ内で続ける場合は
breakを使えば次のif文はelifでなくてもいいという違いはあるな
2022/04/09(土) 17:38:36.12ID:87umrizs0
俺が引き継ぐとしたらwhileにしておいてほしい
2022/04/09(土) 17:38:52.45ID:fKWuF8Ed0
forとかWhile文にelse文付けるやり方って可読性落ちるからやりたくねーな……

よく見かける書き方だとこんな感じでね?
While isError AND リトライ回数 < リトライ上限:
2022/04/09(土) 17:43:24.27ID:jgJoozbM0
StopIterationやAttributeErrorも正常系でつかうし
こねくり回したコードになるならbreakでスッキリ書きたいしありかな
2022/04/09(土) 17:46:50.44ID:132nXd6zM
よくわからんけど関数化してデコレータでリトライすればいいんじゃないの?
495デフォルトの名無しさん (ワッチョイ 232c-TG4f)
垢版 |
2022/04/09(土) 17:53:31.16ID:lCz4U8HD0
limit = 00
count =0
while True and count <= limit:
__count +=1
__try:
___for
__except:
2022/04/09(土) 18:26:43.74ID:clV5r5o80
>>492
ループ抜けた後に、結局処理できたのかできなかったのかはカウンタ見るの?
2022/04/09(土) 19:01:16.37ID:erlZKZM80
>>486
普通こうじゃないの?
for _ in range(リトライ回数)
 処理
 if success:
  print('正常終了')
  break
else:
 print('リトライオーバー')
2022/04/09(土) 19:10:11.63ID:clV5r5o80
確かに
出口を2つも書くのは追いにくい
2022/04/09(土) 19:30:36.35ID:fKWuF8Ed0
>>496
カウンタで見ても良いけど、
結局ループ抜けた直後はisError(エラーかどうか)の値は変わってないから
そっちで判定しても問題ない
2022/04/09(土) 19:46:27.41ID:clV5r5o80
どっちにしても流用してる感があるなあ

エラーかどうかが戻り値や式なら変数に入れなくてもいいのに、
後で参照する為に変数を増やさないといけない
それより、elseの方が明示的
2022/04/09(土) 19:57:04.93ID:jgJoozbM0
運悪くクソコードで学んでしまってそこで止まってるんだからしょうがない
切り替えていこう
2022/04/09(土) 20:09:17.21ID:fKWuF8Ed0
>>500
>後で参照する為に変数を増やさないといけない
変数を増やすことに抵抗感じる人とかおるのか……
そら極端に細かく分ける事はないけど
エラーチェック結果ぐらいは変数に入れてもええやん
2022/04/09(土) 20:14:18.56ID:TiDOyS5/0
新しい職場でpyspark使うことになったけど日本語ドキュメント少な過ぎて困る
せめてpandas主体ならいいのにデータ量多くてpandasだと処理しきれないことがある
2022/04/09(土) 22:19:11.52ID:ybdxAeLn0
>>478
breakで不適切な数値の時に対処してないかな?

passかcontinueで
2022/04/10(日) 00:38:55.00ID:YY9dKz/y0
pylintかけると、
continue, breakで抜けてる場合は
elseは余計と怒られるな
2022/04/10(日) 00:43:35.19ID:dAyCsfYJ0
>>478
やり直しのためのループとメイン処理のループは目的が違うんだから一つにまとめず分けたほうがいい
結果として2重ループになるわけだけどもインデントが深くなるのを避けるために関数化
2022/04/10(日) 07:40:38.07ID:Cd8Fw5+60
continueで終わった時もelseは実行されるでしょ
そこに混乱は無いと思う
breakとelseは当然排他するけど、その性質を使いたいのに使うと怒られるのか
2022/04/10(日) 11:42:15.24ID:sN01S/ry0
>>505
それelseのインデント位置が間違ってない?
2022/04/10(日) 11:44:29.83ID:vpYyJyBEa
いや、pylintは自明なelseが嫌いなんだよ
510デフォルトの名無しさん (ワッチョイ a289-6nGD)
垢版 |
2022/04/10(日) 12:16:55.10ID:1+/qESij0
macで作ったpyファイルをmac内でexeファイルにする方法ってあったけ?
pyinstallerでappはできた
2022/04/10(日) 12:19:19.45ID:Cd8Fw5+60
breakしてないのにelseしてたら、
そんなもんループの外に書いても同じだから紛らわしいだけだけど、
普通はわざわざelse付けるのはbreakしたことをフラグで覚えるのが嫌だからなので、
自明でもなんでもない
2022/04/10(日) 12:24:01.06ID:Q6S0/uRR0
>>510
https://pyinstaller.readthedocs.io/en/stable/
> it is not a cross-compiler: to make a Windows app you run PyInstaller in Windows;

Wineか仮想マシンでやるしかなさそう
2022/04/10(日) 12:32:11.07ID:wfU7fa8L0
for_else有り
https://ideone.com/zfxztw

for_else無し
https://ideone.com/nnc884

まあどっちが見やすいかって話やね
確かEffectivePython辺りだとforとかwhileみたいなループ処理にelse付けると
読みにくくなるから止めろっていう風には書かれてたな
2022/04/10(日) 13:02:42.81ID:Q6S0/uRR0
読みやすさでいうとこういうコード自体ユーザコードで書かないでほしいけどね
is_errorみたいな状態変数が不用意だし
読み解かないとリトライ処理だなーてわからんから見通しが悪い
>>494みたいに処理側にretryデコレータつけるとか
命名がはいる余地をつくって明示的に書いてほしい
2022/04/10(日) 13:06:47.56ID:Cd8Fw5+60
elseありの方は、エラー無しの時にbreakして、continueは省略できる
is_errorのフラグが前提になってるから大差ないように見えるけど、
is_error = process() みたいに戻り値で判るならフラグも省略できる
2022/04/10(日) 13:15:28.04ID:Cd8Fw5+60
effective pythonの言い分
https://i.imgur.com/AhPKvgG.png

やっぱり直感的ではないよね
>>486の疑問に戻る
2022/04/10(日) 13:28:21.33ID:Cd8Fw5+60
キーワードがelseではなくuncompletedとかならまだ読めただろうに
2022/04/10(日) 13:41:07.96ID:tqQl7G5m0
final とかならまだわかるけど uncompleted とか意味不明
動作理解してる?
2022/04/10(日) 13:45:49.68ID:8N8Sc6On0
ループが最後まで回ったら完了なのか途中でブレークしたら完了なのかは場合によるんだからcompleteなんてキーワード使ったら余計混乱するんじゃね?
2022/04/10(日) 13:47:15.18ID:Cd8Fw5+60
ああ、逆
uncompletedでない時だから普通にcompleted
finalyだと何でもいいから最後に実行に思える
elseだとそうすら思えない
2022/04/10(日) 13:49:36.77ID:+G9OWortM
結論で言うと糞構文だから使うなってことかね
2022/04/10(日) 13:53:38.37ID:GqpgRuIN0
たぶん、議論の前提が噛み合ってない
・for/while文の中のif文のelse
・pythonでのfor/while文のelse
2022/04/10(日) 13:56:40.53ID:Cd8Fw5+60
古い言語での常套句みたいなのがあって、
pythonならそんなことしなくても言語仕様で書けるよ、という提案がいくつもあって
それらの多くは便利だと取り入れられたけど
ループのelseはもう少しなんとかならなかったのかと
2022/04/10(日) 14:04:16.70ID:sN01S/ry0
>>516
early returnしとけばいいと思う

for i in range(max_tries):
 try:
  return fn(*args, **kwargs)
 except errors as e:
  if i + 1 >= max_tries:
   raise RetryOverError from e
  else:
   print(f"Will be retried after {delay} sec...")
   sleep(delay)
2022/04/10(日) 14:36:08.85ID:tqQl7G5m0
これでよくね?
for i in range(max_tries):
 try:
  return fn(*args, **kwargs)
 except errors as e:
  print(f"Will be retried after {delay} sec...")
  sleep(delay)
raise RetryOverError from e
2022/04/10(日) 16:21:54.44ID:sN01S/ry0
>>525
リトライオーバー時に不必要なdelayが入って
リトライしますよってメッセージも出ることになるよ
2022/04/10(日) 16:29:36.99ID:sN01S/ry0
あと細かいけどfrom eのところでeがスコープ外になるはず
528デフォルトの名無しさん (ワッチョイ a289-6nGD)
垢版 |
2022/04/10(日) 17:07:41.15ID:1+/qESij0
>>512
ありがとう
大人しくwindowsの方に環境作り直すわ
2022/04/10(日) 17:27:46.30ID:Cd8Fw5+60
うまく処理できませんでした
とう結果をどう扱うかはその場では判断できなくて、ずっと上まで持ち帰る必要があるんだよな
それをそのまま実装すると、エラーリトライの結果を受け取った関数がまたリトライして、
その結果を受け取った関数がまたリトライして、みたいにリトライまみれになる

だからリトライなんか気にせずに必ず成功する体で実装して、
末端がエラーをraiseして、それを適切なレベルの人が拾う
という仕組みがあるべき姿な気がする
2022/04/10(日) 18:16:57.91ID:dAyCsfYJ0
>>529
せやからリトライとメイン処理のループの目的が違うんだから分けなきゃわけわからんことになる
2022/04/10(日) 18:55:25.09ID:ImIzhDab
for _ in range(リトライ回数)の中を関数化するのはダメなん・・?
2022/04/10(日) 20:20:59.84ID:2AahvlRad
>>528
Github ActionsのWindowsランナー使えば
2022/04/10(日) 20:55:29.50ID:ImIzhDab
>mac内で
ブラウザ使っちゃいけない縛りがある場合はあれだけど
google colabでは一応実行ファイルは作れた >>510
できた実行ファイルの動作確認はしてないすまん
https://colab.research.google.com/drive/1z8aScMiKu7NBclJ7xv88WovewhJyzTDf
2022/04/11(月) 04:33:58.47ID:+2lQ4ezC0
なんでvenvで検索してんのにpyenvが出てくるのか分からんわ開発者にはちゃんと意味のある命名して欲しいわ本当に
535デフォルトの名無しさん (ワッチョイ db89-6nGD)
垢版 |
2022/04/11(月) 14:46:19.50ID:Lw7h7fgH0
以下を参考にOpenCV使って類似画像を見つけられるようになった
https://qiita.com/best_not_best/items/c9497ffb5240622ede01のfeature_detection

だけど数が多いと処理にすごく時間がかかる
どうすると処理を短くできるでしょうか?
2022/04/11(月) 15:16:20.14ID:rtvFP8bxM
実行中にCPUやGPU(有効になってる場合)は使い切ってる?
使い切ってないなら並列に実行すれば短くなる可能性あるよ
ただ、ファイル単位の並列実行なら大して難しくないけど、画像を領域分割してだと割と難しいかもね

使い切ってるなら別のアプローチが要るね
検出パラメータの調整、強力なハードウェア、途中計算のキャッシュ、検出結果を再利用できるようなアルゴリズムの開発…
再利用できるようなアルゴリズムっていうのは、例えば素朴なレーベンシュタイン距離で類似度を計算しているとする
で、dist(a, b)で計算される距離が10で、dist(a, c)が255だったら、少なくともdist(b, c)>=245は距離を直接求めなくても分かる
というような奴
2022/04/11(月) 15:52:47.45ID:2aNotDwL0
ImageHashだと速い
見つけてきたものは確かに似てるけど、
似てる筈なのに見つけてくれないケースもある
2022/04/11(月) 16:19:12.98ID:6TVRVlNI0
>>535
要件によるけど、そもそも抽出した特徴点をDBに保存しておいて、新規画像が来たらその特徴点抽出だけ行い、DBに保存した特徴点群との比較を行えばよいように作る
さらに言えば特徴点はどうせベクトルだろうからあり物の近似最近傍探索ライブラリを使う
539デフォルトの名無しさん (ワッチョイ db89-6nGD)
垢版 |
2022/04/11(月) 17:56:47.55ID:Lw7h7fgH0
>>536-538
ありがとうございます。
最終的にSimiPixの様な物が作りたいと思っています。
https://www.vector.co.jp/soft/winnt/art/se363819.html

すぐできそうなことは並列処理とImageHashとデータベースですね。

近似最近傍探索はあまりわからないのですがこの辺りを調べてみようと思います。
https://qiita.com/wasnot/items/20c4f30a529ae3ed5f52
2022/04/11(月) 19:00:35.25ID:6TVRVlNI0
>>539
YahooのNGTってライブラリもなかなか使いやすいので見てみて
541デフォルトの名無しさん (ワッチョイ df01-BBqR)
垢版 |
2022/04/11(月) 19:31:41.07ID:xDb1C0xA0
質問です。
flaskやりたいのですがpycharmだとプロ版じゃないと使えないっぽいです。
vsではできますか?
またvs以外でflaskできる環境があれば教えて下さい。
*マルチgpu対応ならグラボ3枚買いたいです!
宜しくお願いします。
2022/04/11(月) 20:23:41.43ID:UtSmTUXjM
3枚じゃ重くて開発できないよ
最低5枚は刺さないと
543デフォルトの名無しさん (ワッチョイ df01-BBqR)
垢版 |
2022/04/11(月) 20:31:08.79ID:xDb1C0xA0
>>542
おすすめのgpuありますか?
2022/04/11(月) 20:50:52.80ID:2aNotDwL0
2枚で十分ですよ
2022/04/11(月) 21:07:06.61ID:TOCZtKxx0
なんなら最初は1枚でおk
546デフォルトの名無しさん (ワッチョイ df01-BBqR)
垢版 |
2022/04/11(月) 21:13:55.33ID:xDb1C0xA0
>>544
ありがとう!
>>545
マルチGPUでcudaとか使いたいので複数枚希望してます。
2022/04/12(火) 09:19:08.59ID:jVqQVAI70
初心者の質問失礼します。

MAX/MSP からリアルタイムで値を送ってそれを配列に格納するところまでは完成したのですが、
配列を格納している関数内でprintするとちゃんと値が入っています。
しかしその関数をスタートさせてる関数のなかでは、グローバル変数として扱ってにも関わらず、全く値が入っていません。
ソース↓
https://dpaste.com/9WVLDX4X5

このfrag1という関数で、MAX側でフラグを1にしてやったときプロセスがスタートして値が格納されるのですが、
MAX側でフラグを切ってif条件分のelseにいったところでその配列をprintしてやっても、何も格納されていないようです。

どういった原因が考えられるでしょうか・・・
2022/04/12(火) 09:27:40.69ID:/ALgm6Us0
冒頭でsendfragを上書きしてるのはいいの?
2022/04/12(火) 09:32:25.70ID:jVqQVAI70
>>548

レス有難うございます。
sendfrag自体は問題なく機能しています、つまりMAX側でフラグを変えれば、Pythonのif条件文周りは問題なく機能しています。
2022/04/12(火) 10:43:40.14ID:tkql2Ido0
別プロセスだから共有メモリやプロセス間通信使わないとだめなのでは?
2022/04/12(火) 11:44:07.75ID:fdFUG1QIa
python でグローバル変数は地味に難しい
2022/04/12(火) 11:57:34.40ID:/ALgm6Us0
最初関数すら無いような状態で作り始めて
一部を下請けにしたくて全体をmain()にして機能で切り分けていくと、
スコープから外れてどんどん動かなくなる

ちゃんと作ってあれば少ない引数の受け渡しで改造できるけど、
設定とかにどうしてもグローバルが残る
2022/04/12(火) 12:00:13.55ID:6Wdm1QxL0
この規模ならグローバルでぜんぜんいいけど
>>550のとおりmultiprocessing提供の共有メモリつかわないとダメなだけ
554デフォルトの名無しさん (ワッチョイ 62b1-WWIQ)
垢版 |
2022/04/12(火) 13:51:08.30ID:dw2Fe42d0
プロセス間通なら、socketかfifoだな。
2022/04/12(火) 15:34:53.41ID:hFx0KRR+M
変じゃなければ、範囲選択して自動で関数化すれば引数付きで関数になるのでは?
2022/04/13(水) 06:10:53.03ID:LecAqBoo0
皆様
有難うございます、共有メモリが簡単かなと思ってやってみようとしているのですが、定義した共有のための配列をProcessの引数に指定すると思うのですが、
そのProcess自体は値を受け取る関数なので値を格納する関数ではないですよね。
OSCを扱うのでなければそういった煩雑な問題は出てこないですが、
この場合実際に値を配列に格納する関数に共有メモリの配列を渡す(引数として指定する)のはどうしたらよいのでしょうか。
2022/04/13(水) 08:32:05.98ID:Rs+TlID+0
>>556
https://docs.python.org/ja/3/library/multiprocessing.html#multiprocessing.Process
https://docs.python.org/ja/3/library/multiprocessing.html#sharing-state-between-processes
説明をもいっかい読んでみて
2022/04/13(水) 11:52:47.93ID:niNa+U7k0
tkinterのmessagebox.showinfoでポップアップを出す
でも動画を全画面にして見ていると、音はするけれどポップアップが出ないことがある
cmdから拡張子の関連付けで起動した時は正常で、
ファイラーから直接py.exeが起動してる時は出ない

何が違うんだろう
2022/04/13(水) 13:26:13.63ID:I52UvZ5a0
>>558
たぶん、最前面絡み
2022/04/13(水) 13:56:12.81ID:niNa+U7k0
起動の仕方で最前面の扱いが変わるとして
最前面にできないからといってポップアップだけでも出しておけばいいのに、
それすら諦めるというのは挙動としておかしい
2022/04/13(水) 17:02:20.48ID:I52UvZ5a0
起動した場所(プログラムやウィンドウ)が違うんだから
もし思い通りにしたければ基準点を指定したり
システム上で最前面にすればいいだけでしょう
2022/04/14(木) 01:43:10.91ID:3gvLDhW60
デコレータというアイディアはpython独自?
強力というか何でもありというか、言語仕様の根底を揺るがす概念だと思うけど
2022/04/14(木) 02:24:11.34ID:3gvLDhW60
仕組みはシンプルなんだよな
@デコレータ
関数定義
と書くと、関数呼び出し時にデコレータ(関数)と処理が置き換えられるだけ
それでちゃんと動くのかは全てデコレータ側の責任だけど、
そうやって1枚外側を作れる効果が計り知れない
564デフォルトの名無しさん (ワッチョイ 86bb-LlEv)
垢版 |
2022/04/14(木) 03:45:46.28ID:Ug0FwDKu0
アノテーションとか属性とかいった名前でいろんな言語に存在するよ
2022/04/14(木) 08:56:03.64ID:uR9P0b4dM
>>562
独自じゃないよ、GoFのデザインパターンの1つ
デコレータ専用の文法を用意してデコレータでAOPを実現してるのはたぶんpythonくらい

クロージャだけでもデコレータは実装できるけど
pythonの場合はclassmethodみたいなのが読みにくく面倒くさ過ぎたので
@でアノテートする文法が導入された
2022/04/14(木) 09:35:28.61ID:3gvLDhW60
デザインパターン? はて?
という感じだけど
1995年に本が出ている
その頃pythonはまだ1.0
デコレータが導入されたのは2.4あたりの2004年
Javaの真似らしいけど、Javaとデコレータがいつからあるのかは知らない
2022/04/14(木) 11:25:56.29ID:sRJ1a9w60
get-pip.pyのプログレスバーがなんかカッコイイ
2022/04/14(木) 12:59:27.29ID:9+b6u7oSM
javaよりc#が先だろ
勝手な想像だけどqtのスロットをみてmsが汎用化したんじゃなかろうか
2022/04/14(木) 13:20:27.48ID:3gvLDhW60
デコレータの実現方法は多分それぞれの言語で違ってて
pythonのはただのシンタックスシュガーだよね
こう書いてあったら関数を引数にして呼び出すだけっていう
デコレータの為に何も特別な処理は追加されてない
570デフォルトの名無しさん (ワッチョイ 0610-3n4s)
垢版 |
2022/04/14(木) 21:15:06.05ID:EmhbVbhO0
>>567
最近tqdmからrichに変わったね
2022/04/14(木) 23:33:45.17ID:3gvLDhW60
windowsだとあんまりリッチでないのう
2022/04/14(木) 23:52:16.35ID:9olkL8VT0
Pythonでデザインパターン勉強する良い方法ありますか?
573デフォルトの名無しさん (ワッチョイ 4f7c-L4Li)
垢版 |
2022/04/15(金) 00:10:31.74ID:bTXslgSI0
残念ながらpythonじゃ無理
rubyを使いましょう
2022/04/15(金) 10:48:12.61ID:XSmjIIQ30
途中経過もいろいろ表示しつつプログレスバーが崩れない方法は無いものか
2022/04/15(金) 13:20:24.06ID:sm6VHVYM0
もうデザインパターンって概念Javaでしか通用しなくね
同じOOPのC++は言語自体デロデロで〜イディオムみたいな言い方してるし
2022/04/15(金) 14:35:47.56ID:XSmjIIQ30
変数名ぶつかりまくるから構造化するぜ
という流れの時は、なるほどそれは確かに合理的だとみんな賛成しただろうけど、
もっとライブラリの使いまわしが楽なようにオブジェクト指向にするぜ
の時は、アイディアは判るけどネーミングどうなん、みたいな受け止めで、
当初の継承しまくりのオブジェクトな感じは早々に破綻して、
なんとかオブジェクト指向を生かすような実践的な方法論が必要で、
それがデザインパターンなんじゃないかと
2022/04/15(金) 15:09:47.08ID:NJzLAbi30
モデリングの柔軟性が高すぎてハチャメチャになったから
よく使うものをテンプレ化しようぜってだけで
なんとかの流れはよーわからんな
2022/04/15(金) 15:12:59.43ID:4gmwZfQuM
>>575
デザインパターンの考え方は今でもどの言語でも役立つよ
クックブックや逆引きのレシピ本みたいに実装方法しか見てないなら役立たない
2022/04/15(金) 16:26:36.26ID:EDPxttoOM
というか、役に立つパターンやイディオムを共通言語化して、
いちいち説明しなくても分かるようにしようぜ!っていうのがデザインパターン

中身自体は大昔から変わってない
580デフォルトの名無しさん (ワッチョイ 1701-PN9y)
垢版 |
2022/04/16(土) 14:34:35.01ID:422/a46R0
プログラムとかやってる人はノートPCを使っている人が多いと思うけどおすすめある?
Mac以外であれば教えてください
2022/04/16(土) 16:24:22.31ID:GtnKHoFPM
基本的にMacを選ぶべきだけど、次点はLinuxとの相性でThinkPadだな
2022/04/16(土) 16:28:54.62ID:fPn+eEc/0
pytorch がCUDA推奨だから、アリエンワー
583デフォルトの名無しさん (ワッチョイ 1701-PN9y)
垢版 |
2022/04/16(土) 16:42:16.08ID:Llx2MiFf0
>>581
ちょうどThinkPad見てた
Zを待とうかと思います
2022/04/16(土) 17:03:21.00ID:UaTk+ysz0
最近プログラムならmacなんだ
知らんかった
2022/04/16(土) 17:06:36.78ID:T/7W1nNv0
最近というかずっとだけど
いまはWSLあるからWindowsのがいいかもね
Macは余計なことできない点が良い

> Linuxとの相性でThinkPad
20世紀のノリで適当書くやつ
2022/04/16(土) 17:07:00.01ID:/caeFrXL0
python講座みたいなのネットでやってる人はmacが目立つな
何作ってるんだろ
2022/04/16(土) 17:21:19.31ID:MoK8GTpb0
LinuxならわかるけどMacが開発に向いているってのはよくわからんな。
たしかにMac使っている開発者は多いけど彼らは単に好きで使っているもんかと思ったが。
2022/04/16(土) 17:30:34.02ID:r+tsNBiH0
昔のThinkPadはパーツリストも公開していて
自由に拡張や改造ができて便利だったな
2022/04/16(土) 17:44:20.11ID:fE0J8eTv0
7割以上はwindows使ってるのに基本的にはmacとかイミフ。windowsでまったく問題ないから。


あ、僕はmacです
2022/04/16(土) 18:01:28.33ID:ao4WfoXYd
実行とコーディングは別環境がほとんどだから好きな方でよかろう
2022/04/16(土) 18:39:38.03ID:/caeFrXL0
んなこたーない
2022/04/16(土) 18:41:01.38ID:hbdJ6/T+0
>>589
Windowsは4割程度だぞ
https://insights.stackoverflow.com/survey/2021#most-popular-technologies-op-sys-prof
2022/04/16(土) 18:46:51.02ID:mRWbE3uU0
機械学習もwindwosでやってるけど特に困ることがない
594デフォルトの名無しさん (ワッチョイ 1701-PN9y)
垢版 |
2022/04/16(土) 18:52:55.02ID:eXXbUkkg0
>>592
そこが調査した8万人の話だな
Visual Studio Codeが7割ってすごい人気だ

ところでノート持って出歩く?
2022/04/16(土) 19:00:12.96ID:r+tsNBiH0
丸腰は危ない
武器は持とう
2022/04/16(土) 19:02:19.53ID:/caeFrXL0
大抵の家はPC用の机なんて用意してないからノート
使う時だけ食卓に広げて終わったら本棚に片付ける
作業性は低い
597デフォルトの名無しさん (ワッチョイ 1701-PN9y)
垢版 |
2022/04/16(土) 19:12:47.74ID:eXXbUkkg0
>>596
勉強になります!
自分で考えても室内で持ち歩くぐらいだから15〜17インチぐらいにしようかと思います
2022/04/16(土) 20:55:02.88ID:cvz/IVkr0
macじゃないとiphoneアプリ作れないんだから仕事でやる人はmacじゃないとダメでしょ
2022/04/16(土) 21:16:47.20ID:CvZeRz/V0
>>598
ダメ?
2022/04/16(土) 22:33:22.47ID:/caeFrXL0
iPhoneアプリはそもそもpythonで作らない方が
2022/04/16(土) 23:28:26.43ID:mRWbE3uU0
iOSのアプリはmacじゃないと作れないわけ無いだろ
2022/04/16(土) 23:33:21.81ID:r+tsNBiH0
MacはWindowsアプリも作れます
2022/04/16(土) 23:52:33.97ID:/caeFrXL0
クロスプラットフォームも進んでるし仮想マシンも進んでる
winでもmacでもなんも変わらんという状態で敢えてmacを選ぶのは、
イキりたい欲求の現れでしかない
2022/04/17(日) 00:00:01.04ID:s/Vt0+2b0
特許あるのかしらんがトラックパッドの操作感はApple一強だし
M1 Airのコスパ良すぎる
2022/04/17(日) 00:04:38.31ID:PLdVLPVe0
macイキりはよくわかる
やっぱwinでもいいんだね、ありがと
2022/04/17(日) 00:13:22.40ID:XnfVQZZXM
>>601
Mac無しには作れないよ
2022/04/17(日) 00:15:00.35ID:BCi3dvJNa
MacっていうかM1を選ぶ価値があるよね
608デフォルトの名無しさん (ワッチョイ 1701-PN9y)
垢版 |
2022/04/17(日) 05:19:25.70ID:zITxNUbG0
機会学習とかまでやるならMacはないでしょ?
Mac使ってる人は単に軽量薄型を求めている印象
あとこんなんあった

PC Watch: Lambda、Razerと共同開発のディープラーニング向けノートPC.
https://pc.watch.impress.co.jp/docs/news/1402848.html
2022/04/17(日) 11:09:16.66ID:E+w90SEK0
ノートで機械学習ってのがギャグだから
610デフォルトの名無しさん (オッペケ Sr8b-AfOb)
垢版 |
2022/04/17(日) 11:16:16.10ID:KpiaC8A1r
マラソン向けサンダル
2022/04/17(日) 12:11:51.23ID:gIiTfJry0
winpython のjupyterlabのx86版がどうやっても起動できないんですが
できている人いますか?
dot.exe版インストーラーみたいなものしかなくてx64 OSからでもx86 OSからでもx86版は起動しません。
インストーラー同梱のスクリプトを操作したからなのか一度出来ていたんですが環境構築をやり直したら
出来なくなってしまっていて困っています。
2022/04/17(日) 12:18:14.50ID:9+gT6VMg0
M1の性能も知らん情弱か
2022/04/17(日) 12:29:57.63ID:E+w90SEK0
>>611

https://winpython.github.io/
リリースノートを読む限り、dot版はPython以外のライブラリ類は同梱されてないみたいよ
dotがついてない奴はライブラリ類が同梱されてるけど、jupyterlabは入ってたり入ってなかったりする
なぜ…このような分かりにくいことを…?

で、肝心の32bitのPythonでjupyterlabが入ってるやつはないっぽい
諦めるしかないんじゃね?
まあGitHubのリリースやSourceForgeのファイルリストを全部確認したりはしてないので
君は諦めてもいいし、一縷の望みに掛けて探し続けてもいい
2022/04/17(日) 12:33:42.05ID:gIiTfJry0
>>613
Jupyter Lab.exe自体はdot.exe版にもありますし(エラー出ますが)
pipとかでライブラリをインストールすればできる想定っぽいですし、
何より一度は動作を確認しているんでもう少しやってみます。
2022/04/17(日) 15:05:16.59ID:AOEgISdE0
御自慢のM1もpytorchが正式サポートされるまでは
検討対象にも入らないな。

ザビエルAGX君を凌駕したらまた薦めてくれたまえ
616デフォルトの名無しさん (ワッチョイ 1701-PN9y)
垢版 |
2022/04/17(日) 15:50:37.63ID:EdUbJBrr0
そもそもMacを買う理由がないんだよな
AIプロセッサーもCUDAとかインテルしか使われないんじゃね?
2022/04/17(日) 15:59:56.71ID:teiy6RS+0
あらしに構うなよ
どっちもうざい
2022/04/17(日) 16:05:10.49ID:KqZdXt700
pythonならwindowsかmacかじゃなくてwindowsかubuntuかじゃないかな
2022/04/17(日) 23:18:33.30ID:AQnDrSye0
WSLがあるからubuntuがいいならwinでいい
2022/04/18(月) 01:42:22.68ID:RCFi9M08
お試しでgoogle colabから始めてもいい
時間制限も言うほど気にならないし
githubに上がってる.ipynbファイルはほぼそのまま使える
2022/04/18(月) 08:59:50.03ID:Yovapa2v0
OSの違いでそんな困るようなことって何があるか分からん(初学者)
pip3かpipぐらい?
エスケープ文字にかんしてもPathモジュール使えばいいやん

他に何かあれば教えてください
2022/04/18(月) 09:12:38.02ID:/vdFVqv00
macで作ったファイルは濁点付きの文字がおかしい
2022/04/18(月) 14:47:12.80ID:uqtSNIbba
>>448
import webbrowser, time, urllib, random
lst = [ ['sit', 'e:ko', 'kk', 'ai', '.ndl.', 'go', '.jp '], ['世耕弘一','神近市子','小泉純也'] ]
kok = ''.join(lst[0]) + ' '.join(lst[1])
[( webbrowser.open(''.join( ['gkcudkcud//:sptth'[::-1],'=q?/moc.o'[::-1]] ) + urllib.parse.quote(x)), time.sleep(random.choice(range(21, 39))) )
for x in ['0uhM5AR4db0 ty!', 'IPA 録議会会国 wt!', '!g ' + kok]
]
2022/04/19(火) 18:39:16.79ID:07MNtLt/M
vsCodeのRun Current File in Intaractive Windowでテストコードを実行したら

print("プラグイン実行開始")
print(str)
print("プラグイン実行終了")

の部分でstrだけが出力されて目が点になった
コンソールだと問題ないのでvsCodeが裏でアレコレやってる副作用だと思うが、
複雑なコードだとバグとの切り分けで悩みそうな・・・

>>621
コンソールの文字コードとかパスの文字コードとかテキストファイルの文字コードとか
テスト用のファイルは"テスト 予定表.txt"とかにしとくとデバッグが捗る、かもしれない
625デフォルトの名無しさん (ワッチョイ bf02-t5pi)
垢版 |
2022/04/19(火) 23:48:12.47ID:9ABXe8CI0
Python触り始めて2ヶ月(プログラミングがはじめて)でクラスくらいまでできるようになったんだけど、
中級者の入口って感じの人間におすすめの書籍ある?

この3つが良さそうなんだけど違いがわからないんだ

Python実践入門
エキスパートPythonプログラミング 改訂3版
Pythonプログラミングパーフェクトマスター
2022/04/19(火) 23:56:34.22ID:57SIux/H0
これだけネットにいろいろ溢れてるのに本なんか要らんやろという気もするけど、
effective pythonは買った
何かを系統的に網羅したい、みたいな時は本の方がいいけど、
大抵は知りたいことができたタイミングでぐぐれば解決してしまう
627デフォルトの名無しさん (ワッチョイ bf02-t5pi)
垢版 |
2022/04/20(水) 00:48:11.04ID:0Fmphqft0
よさそうな本!ありがとうございます!
2022/04/20(水) 07:21:30.44ID:c4dT/jW/0
エキスパートPythonプログラミングは持ってるけど、
どう考えても希望するような本じゃないからやめた方がいいよ
自分もeffectiveを勧める
2022/04/20(水) 08:44:24.47ID:XRJ+JvmG0
初級の網羅的な本、というのを買わずにネットで済ませているので、
組み込み関数って何があるの?
文字列のメソッドって何があるの?
組み込み関数のオプションって何があるの?
みたいな部分が欠けてる

実は簡単な解決が用意されてるのに知らずに自作したりする
丸暗記は無理でも、一度目を通すだけでもそういえばあったかも、と気づけるのに
2022/04/20(水) 08:51:57.73ID:ZWJp7NrP0
まぁ俺みたいにそういうのが退屈で挫折するタイプは都度ググるスタイルで本当に基本的な部分だけ理解してやっていくのがベストなんだなと最近思う
631デフォルトの名無しさん (JP 0H4f-PzL5)
垢版 |
2022/04/20(水) 08:59:05.47ID:jxJDrfOFH
はー面倒くせえ絶対ライブラリかなにかあるやろpythonさんよぉ?→ないんかい!!!
このフローが大事
2022/04/20(水) 09:04:52.96ID:TaePMpKy0
何で公式のドキュメントを読まないの?
2022/04/20(水) 09:11:42.11ID:bmxzWQRQ0
>>632
退屈だから
2022/04/20(水) 09:12:33.00ID:FOGiwy27a
本は何か面白いこと書いてあるん?
基本的にリファレンスだけで済む言語だと思うんだけど
2022/04/20(水) 09:19:21.96ID:K1Uis8o8M
>>625
>Python実践入門
1冊目に読む入門書
1冊も読んだことないなら読んで損はない
公式のチュートリアルに比べれば遥かに良質

>エキスパートPythonプログラミング 改訂3版
中級者向けのネタを浅く広く紹介する本
質は良くないのでお勧めしない
原著はいつものセールで$5
円安なので$5が4000円也

>Pythonプログラミングパーフェクトマスター
知らない

プログラミング始めてみたいだからPython実践入門かもっと簡単なやつを1冊は読んだほうがいい。
Effective Pythonは2冊目に読む入門書
2022/04/20(水) 09:29:36.16ID:5rbWZxAKM
公式チュートリアルも一応目を通すといいと思うが
プログラミング初心者向きではないので公式から始めるのはすごく効率が悪い
637デフォルトの名無しさん (ワッチョイ bf02-t5pi)
垢版 |
2022/04/20(水) 10:11:06.29ID:0Fmphqft0
ありがとうございます!ありがとうございます!

公式ドキュメントとっつきづらくて敬遠して、
Udemyで勉強してました。

UdemyはPython3.6とか古い情報が多く本探してたんです。

Effective買ってみます
2022/04/20(水) 12:07:45.55ID:u+BmvqbW0
自分は気になった本は合う合わないあるから片っ端から電子書籍で買って積ん読しちゃってる・・・
2022/04/20(水) 12:38:27.51ID:XRJ+JvmG0
手に入れると満足してしまう
2022/04/20(水) 13:18:19.93ID:rPdu1iv+r
文字列囲う時にダブルクォーテーション派なんだけどpythonのコーディング規約にシングル使えとかある?
2022/04/20(水) 13:22:26.46ID:M5GT5W2m0
ない
String Quotes
In Python, single-quoted strings and double-quoted strings are the same. This PEP does not make a recommendation for this. Pick a rule and stick to it. When a string contains single or double quote characters, however, use the other one to avoid backslashes in the string. It improves readability.
2022/04/20(水) 14:12:57.18ID:XRJ+JvmG0
基本はシングルだけどどうせblackがダブルにしてしまう
2022/04/20(水) 14:19:10.50ID:XRJ+JvmG0
print(f"can't open file {file}")
と書けるので多分ダブルの方が優れている
'は本当はクォーテーションマークではなくアポストロフィ
2022/04/20(水) 14:38:37.69ID:n9GDGrfB
import pandas as pd

def printH(self,n=1):
_return self.head(n)
pd.DataFrame.printH=printH

df = pd.DataFrame([{"a":22,"b":33},{"a":44,"b":55}])
df.printH()

こういう既存のクラスに(複数行)メソッドを追加したいときって
(上の例だと)def printHのように分けないといけない?
なので

import pandas as pd
adding_method_to_DataFrame = lambda f:setattr(pd.DataFrame,f.__name__,f)

@adding_method_to_DataFrame
def printH(self,n=1):
_return self.head(n)

df = pd.DataFrame([{"a":22,"b":33},{"a":44,"b":55}])
df.printH()

こうしたけど何かしっくりこない
要は「複数行にまたがる無名関数」さえあれば
pd.DataFrame.printH=無名関数
みたいにできるのに・・と渋々仕方なくデコレータ使ってる気がする

何かうまい方法ないかな
なければなくてもまったく困らないけど
2022/04/20(水) 15:15:15.68ID:TaePMpKy0
公式のチュートリアルに出てくるぐらいの専門用語は
理解しておいた方がいいと思うけどな
2022/04/20(水) 16:16:10.92ID:XRJ+JvmG0
日本語の文字列が長すぎると
Non-UTF-8 code starting with '\xe3'
のエラーになるの何なんだろう
分割すると正常
2022/04/20(水) 16:25:51.06ID:FOGiwy27a
文字コード指定しとらんのでは
648デフォルトの名無しさん (ワッチョイ b7a6-piRp)
垢版 |
2022/04/20(水) 18:23:25.55ID:ycpxNL7k0
>>646
Pythonのバグ、3.10で修正済
https://github.com/python/cpython/issues/82936#issuecomment-1093846612
2022/04/20(水) 19:08:53.38ID:XRJ+JvmG0
3.8.5だった
なんでこんな古いの使ってるんだ?
2022/04/20(水) 19:26:11.73ID:2isIGBT30
そんな古くもない
LTSなOSつかってたらもっと古いのもある
だから開発用途だとターゲットにあわせたバージョンを導入するのが筋
2022/04/20(水) 19:34:37.00ID:XRJ+JvmG0
f'{var=}'
が書ければ、機能的にはあんまり新しいの要らないしな
matchは使えるのかな
2022/04/20(水) 19:58:48.20ID:M5GT5W2m0
うちの指定開発環境はfも:=も使えなくて泣ける
2022/04/20(水) 20:05:18.88ID:XRJ+JvmG0
:= は使ったことないけど、よく考えたら使えそうな箇所いっぱいあるな
m = re.search(...
if m:
みたいに仕方なく書いてる箇所無数にある
2022/04/20(水) 21:07:19.32ID:2L6Gu7fQ0
f文字列はformat()で事足りるし、
セイウチも一行増えるだけで、なくても困らんしな
655デフォルトの名無しさん (ワッチョイ 772c-PzL5)
垢版 |
2022/04/20(水) 21:16:31.37ID:McqjamI60
俺はセイウチしないコード書くやつは見下す
2022/04/20(水) 21:30:26.91ID:2L6Gu7fQ0
互換性のほうが重要
バージョン依存のトラブルにいちいち対処していられない
2022/04/20(水) 21:33:20.47ID:XRJ+JvmG0
そんなこと言ってたらpython2から出られない
2022/04/20(水) 21:46:35.13ID:2L6Gu7fQ0
サポートを外れた2.xとサポート中の3.7とで同じ扱いをするつもりならそうだな
2022/04/20(水) 22:08:00.26ID:XRJ+JvmG0
過去に使えたものは今でも使えるだろ
OSとかのサポートと同じに考えてはいけない
2022/04/21(木) 03:40:04.49ID:v5S8QBIca
>>623
import webbrowser, time, random
[( webbrowser.open(x), time.sleep(random.choice(range(21, 39))) ) for x in [
'8.51412=emit&15364=di_iled&=epyt_aidem&LV=xe?php.xedni/pj/pj.og.vtniiguhs.www//:sptth'[::-1],
'82602002610X350504511/txt/elpmis/pj.og.ldn.iakkok//:sptth'[::-1],
'/7138538911/2swen/igc.daer/tset/ten.hc5.42swen//:sptth'[::-1],
'82602002610X350504511/txt/elpmis/pj.og.ldn.iakkok//:sptth'[::-1],
'D352%MAC=ps&nohtyP+__+stols__=yreuq_hcraes?stluser/moc.ebutuoy.www//:sptth'[::-1],
'3.0004=emit&20935=di_iled&=epyt_aidem&LV=xe?php.xedni/pj/pj.og.vtniiguhs.www//:sptth'[::-1],
]]
661デフォルトの名無しさん (ワッチョイ 26f7-pAiX)
垢版 |
2022/04/24(日) 00:03:48.01ID:XmcVNZmY0
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^

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

クソチョンw
クソチョンはウンコを食べる糞食人種w
クソチョンはゲリ便をじゅるじゅると
うまそうに食うw
662デフォルトの名無しさん (ワッチョイ 56bd-dMjb)
垢版 |
2022/04/24(日) 21:27:25.10ID:HIpPs7yi0
横浜市立大学に通う大学生です
pythonを使った最初の成果物です
ぜひつかってみてください
http://nohakai.pythonanywhere.com/
2022/04/24(日) 21:46:13.85ID:jDRTt3+c0
脳破壊?
2022/04/24(日) 22:32:49.15ID:uGNTu5m80
>>662
これが何かわかったほうがいいと思います。
2022/04/24(日) 22:41:01.61ID:7Kh82zxr0
横市生の悩み雑談えとせとらを解決
666デフォルトの名無しさん (ワッチョイ ab89-tZFv)
垢版 |
2022/04/25(月) 10:35:35.34ID:WJrl4/Pb0
web上にある画像の縦幅と横幅を取得するにはどうするといいでしょうか?
2022/04/25(月) 15:56:41.96ID:++hN3TXvd
聞いてみる
2022/04/25(月) 16:28:38.76ID:r1r1WO9P
スクレイピングでaタグのhrefやらからurlを取得するとき
ざっくりわけて
@すべて
https://hogehoge.com/foo/paa
Ahttps:だけがない
//hogehoge.com/foo/paa
B相対パス
./foo/paa

があるけど
ABも@のように変換、をうまいこと処理できないかな
ゴリ押ししかなさそうか
2022/04/25(月) 17:32:04.06ID:0z7a6nfp0
うまいこと処理って何?selenium?bs4?
2022/04/25(月) 17:32:19.08ID:hbeTPUwi0
>>668
urljoin(current_url, found_url)
2022/04/25(月) 17:48:22.75ID:i3YLMcU20
めんどくさいものは大抵誰かが何とかしてくれてる
2022/04/25(月) 17:48:24.28ID:0z7a6nfp0
よく通じたな
2022/04/25(月) 18:09:48.49ID:/lXNimhV0
>>671
pythonの一番のキモやね
電池付きでなんでもござれ
2022/04/25(月) 20:52:16.57ID:r1r1WO9P
>>670 ありがとう
urljoin("https://fuga.com";,"//hogehoge.com/foo/paa")
てっきり"https://fuga.com/foo/paa";にするものだと勘違いしてurljoin避けてたけど
改めてやったら"https://hogehoge.com/foo/paa";になってくれた
これでドメインが異なるリンクの場合もすべてに対応できそう
2022/04/26(火) 14:57:30.45ID:Vb+2Y9m70
tabnine入れたらクソ重い
これ使いたいがために良いスペックのPC欲しくなってきた
Mac買うか
676デフォルトの名無しさん (ワッチョイ 0101-zH0q)
垢版 |
2022/04/26(火) 17:56:51.38ID:9y/B6ECi0
気象予報のプログラムで参考になるサイトありますか?
このようなものを作りたいです。
ttps://cmap.dev/#7/35.810/140.316
参考になるサイトや文法があれば教えて下さい。
2022/04/26(火) 18:09:41.99ID:FuwezC5i0
計算力が膨大なのでは
678デフォルトの名無しさん (ワッチョイ 0101-zH0q)
垢版 |
2022/04/26(火) 19:36:54.98ID:9y/B6ECi0
数理計画モデル分析における気象リスク評価方法
これがカギになるかもな。

tps://www.weather.gov/enterprise/weather-data-software-5a

これであと120時間あれば完成する。
処理が膨大だから某研究所でやらなきゃあかんっぽいな。
679デフォルトの名無しさん (ワッチョイ 0101-zH0q)
垢版 |
2022/04/26(火) 19:54:15.13ID:9y/B6ECi0
tps://www.nag-j.co.jp/naglib/pdf/NL2022-001.pdf
これ買えばはやそうだな。
680デフォルトの名無しさん (ワッチョイ 0101-zH0q)
垢版 |
2022/04/26(火) 20:02:46.28ID:9y/B6ECi0
面倒だからunreal5を使うわ。
そっちの方が楽。
681デフォルトの名無しさん (ワッチョイ 9101-/zPW)
垢版 |
2022/04/28(木) 16:09:50.20ID:7fcK0MfL0
UTF-8のデコードについてどなたか教えてください。。。。

print(b'\xe3\x81\x82'.decode('utf-8'))
で、「あ」と出力されるところまでは理解できたのですが

srt1=xe3
srt2=x81
srt3=x82

と文字データが3つあるとき、これらを
bytearrayに変換してデコードまで持っていくやり方が
わかりません・・・
\\\
2022/04/28(木) 16:12:21.15ID:CB8RhFnM0
srt1=xe3
というプログラムは動作しないので何がやりたいかわからない
2022/04/28(木) 16:16:26.63ID:vi5k4+uL0
そんな変なのはpython2に置いてきた
684デフォルトの名無しさん (ワッチョイ 9101-/zPW)
垢版 |
2022/04/28(木) 16:23:24.74ID:7fcK0MfL0
>>682

srt1="xe3"
srt2="x81"
srt3="x82"

です。失礼しました。

とある状況下で、上のような文字列3つを
b'\xe3\x81\x82'
みたいにbytearray化させてデコードしなければならないのですが、
それができず・・・
2022/04/28(木) 16:48:58.45ID:CB8RhFnM0
int(str1[1:], 16)とかで数値にしてbytes([227, 129, 130])
2022/04/28(木) 16:57:16.91ID:7NZvEQkTa
足せば良い
bytes=a+b
2022/04/28(木) 17:01:47.22ID:CB8RhFnM0
bytes.fromhex(str1[1:] + str2[1:] + str3[1:])でもいい
688デフォルトの名無しさん (ワッチョイ 9101-/zPW)
垢版 |
2022/04/28(木) 17:02:14.41ID:7fcK0MfL0
>>685

わあああああああああああ。。。。。いけた・・・・!!!
ありがとうございました。助かりました 涙
2022/04/28(木) 17:04:46.38ID:CB8RhFnM0
ドキュメントをよく読んで自分で調べるんだよ
https://docs.python.org/ja/3/library/stdtypes.html#bytes
690デフォルトの名無しさん (ワッチョイ 9101-/zPW)
垢版 |
2022/04/28(木) 17:06:46.64ID:7fcK0MfL0
>>689

はいっ!勉強します。リンクまでご丁寧にありがとうございます・・・!
2022/04/28(木) 17:15:23.95ID:hPMohmUF0
b'\xe3\x81\x82'

srt1="xe3"
srt2="x81"
srt3="x82"

xe3, x81, x82 など、x だけは付かない。
16進数表示は普通、0x

例えば、Ruby で、
"あ".each_byte { |byte| p byte, byte.to_s( 16 ) }

出力
227, "e3"
129, "81"
130, "82"

単に、10進数の129 は、16進数の81 と言うだけ
2022/04/29(金) 05:19:00.84ID:1KLK/zAN
https://techiedelight.com/compiler/?Whtw
ラジオボタン0-1
ラジオボタン0-2
が選択状態にならないのですがなぜなんでしょう?
マウスオーバーでようやく選択状態になります
2022/04/29(金) 05:20:29.34ID:1KLK/zAN
訂正
ラジオボタン0-0
ラジオボタン0-1
でした >>692
2022/04/29(金) 05:45:28.60ID:1KLK/zAN
さらに関数の中に入れると
ラジオボタン1-0
ラジオボタン1-1
も選択状態が解除されました
https://techiedelight.com/compiler/?BHer
2022/04/29(金) 05:49:44.90ID:9YqnfbQUd
ちんちんシュッ!シュッ!シュッ!
2022/04/29(金) 12:10:15.61ID:PBd2dG0G0
>>694
int_vがGCされてしまうから生存期間が長いどこかに保存しておく必要がある
2022/04/29(金) 12:39:42.91ID:1KLK/zAN
>>696
そうなんですね
コード総書き換えレベルの面倒なことになりそうだったのでpysimpleguiに代えました
ありがとうございました
2022/04/29(金) 12:51:26.18ID:founf1iZ0
GUIっつっても、設定を変更したり入力を指定したり、
みたいなことはconfigファイルとかでやった方が便利で楽なんだよな

スライダーで値をアナログ的に変えたいとか、
モジュールとモジュールをマウスで線で繋ぐと構成がグラフィカルに表示されるとか、
本質的にGUIである必要があるもの以外はむしろGUI面倒なだけ
2022/04/29(金) 14:01:05.14ID:1KLK/zAN
そうなんですよね
私も少なくともpythonではGUIはほとんどやりませんね
API前提でwebアプリ化した方が後々メンテナンスしやすいし
そもそもGUIいるかどうかを後回しにできますしね
今回は友人にちょっとしたツールを作るために配布含めて最適かなと思い手を出しました
dockerでもいいですがやはり極力お手頃な手段となると
ランチャー+pythonかな、と
「これをダブルクリックすれば普通のアプリのように使える」
みたいな
2022/04/30(土) 01:50:41.94ID:64v4nlhT0
あるオブジェクトのプロパティを使いたい時にそのプロパティがNoneだった場合に例外が発生する
この問題を解決する場合どうすればいいか?
プロパティを呼び出す前にifでNoneかチェックすればいいのか?
2022/04/30(土) 02:08:18.23ID:X9Bb5Kqda
例外を拾う
702デフォルトの名無しさん (ワッチョイ df0c-Nh0L)
垢版 |
2022/04/30(土) 07:52:07.66ID:tF/VvMGW0
try~exceptで例外処理を加えるか、if ~ == Noneでチェック。
2022/04/30(土) 08:05:06.08ID:X9Bb5Kqda
駄目条件と比較して抜けるのはpython的にはちょっとダサく見えるかもね
2022/04/30(土) 08:19:30.91ID:RBLOnO9Wa
tryの方が他の隠れたエラーも回避できるからとりあえずいいんじゃね?
例外要因がNone以外なら何らかの爪痕残して動作し続けると。
2022/04/30(土) 08:31:53.31ID:r/ZKILRd0
因みにNone判定は==よりもis使うほうがpythonicらしい
どっちでも同じだけど
2022/04/30(土) 08:54:03.70ID:sUE68ZYJ0
ここだけでも考え方固定しとこうよ
If 〇〇 is Noneで
2022/04/30(土) 10:21:03.74ID:wiaMGPVaH
tensorflowでGPU計算してるんですが、
タスクマネージャー見ると4GBの専用GPUメモリしか使ってくれません
共有GPUメモリのほうが24GBあるのでそっちも使ってほしいのですが、
どうすれば共有のほうも使ってもらえるんでしょうか?
2022/04/30(土) 10:26:35.39ID:3TsZhUq60
UnifiedMemoryが使えるGPUにする。
2022/04/30(土) 10:32:01.67ID:yMKkpkM10
Noneは使わない方向で考えた方がいいらしい
エラー用の戻り値と正常で0や空文字列を返す場合を厳密に区別するのを忘れていつかバグる
2022/04/30(土) 10:51:16.61ID:ymkt03N20
ページロックすればホストのメモリも使えるけど上限があった気がする
2022/04/30(土) 11:14:15.89ID:XZrd/bpX0
tupleあるから成否と返り値返すのは素直に書けるけど
他みたいに標準化されてないから導入するのは躊躇する
クラスにするのもなんか野暮ったいし
2022/04/30(土) 12:02:23.95ID:25RDc2CyM
>>709
それはNoneと比較することの説明じゃなくてNoneを使わずに直接ifの条件に突っ込んだ場合の説明では
713デフォルトの名無しさん (ワッチョイ c72c-u3tg)
垢版 |
2022/04/30(土) 12:08:52.82ID:46aR4GCy0
>>700
例えばpilのimageオブジェクトにn_framesっていうプロパティがあったりなかったりする。通常はない
フォーマットを問わず静止画像だけ対象としたいとき

if hasattr(im, 'n_frames') and im.n_frames == 1:
__対象処理
else:
__非対象処理

などとする
いきなりim.n_framesを触ろうとするとあとりびゅーとゑらーにぬる
2022/04/30(土) 14:03:39.34ID:Vilh5bg10
もしかしてPythonの文字列型って\rも\r\nも内部的に全部\nに変換してしまうのか?
改行コードが混在しているテキストファイルをバイナリで処理しなきゃいけないとか勘弁してほしいんだが
2022/04/30(土) 14:20:31.21ID:XZrd/bpX0
>>714
ioが標準動作がそうなだけでstringは各改行コードを保持する
https://docs.python.org/ja/3/library/io.html
の特にnewlineのあたり読んでみて
2022/04/30(土) 14:33:26.14ID:Vilh5bg10
>>715
とりあえずopen()が良かれと思って悪さしているって事はわかった
thx
717デフォルトの名無しさん
垢版 |
2022/04/30(土) 14:37:18.51ID:FKqPSOQO
class Hoge: pass
def hoge(): pass
ary=["string","",123,0,[1,2,3],[],{"a":1,"b":2},{},None,hoge,Hoge]
for n in ary: print(type(n),type(n).__name__)

こういうので条件分岐するとき何か罠あるかな
718デフォルトの名無しさん
垢版 |
2022/04/30(土) 14:56:33.01ID:FKqPSOQO
class Hoge: pass
def hoge(): pass
ary=["string","",123,0,[1,2,3],[],{"a":1,"b":2},{},None,hoge,Hoge()]
res=["str","str","int","int","list","list","dict","dict","NoneType","function","Hoge"]
print([ (type(a),b,type(a).__name__==b) for a,b in zip(ary,res) if type(a).__name__==b ])

改めてやってみたらclassはtype(Hoge)で<class 'type'>を返した
条件分岐で使う多くの場合はインスタンスの方だった
719デフォルトの名無しさん (ワッチョイ dfb1-mddC)
垢版 |
2022/04/30(土) 20:37:14.85ID:9rE3Ygx80
アンドロイドスマホにtermux入れてpythonダウンロードした。
これでスマホでpython使える。




さてぇ何しようか?w
720デフォルトの名無しさん (ワッチョイ 2701-Ap7g)
垢版 |
2022/05/01(日) 15:28:04.16ID:VZ3UC19t0
質問です。グーグルコラボで、ファイルをアップロード・ダウンロードして
IPYNB ファイル (.ipynb)は無事ダウンロードしたけど
IPYNB ファイル がひらけません。
教えてえらいひと!
2022/05/01(日) 16:46:01.72ID:Qa1o7mjl0
>>720
jupyter notebookをインストールするしかない

そしてjupyterのインストールはanacondaを入れたら一緒に付いてくるが
公式のpythonだけだとpipインストール
2022/05/01(日) 16:49:46.04ID:gTYMk0Yb0
jupyter notebookって便利か?
使いかけたけど思ってたのと違うからやめた
2022/05/01(日) 17:00:52.50ID:9SHXjw1Br
jupyter labの方が見た目がいいよ
なんか設定がおかしいみたいでf文字列閉じるときとかにクオーテーションが3つになってアアアアアアアア(怒)
2022/05/01(日) 18:17:11.39ID:zLsUFjCyH
2022-05-01 18:14:51.136506: W tensorflow/python/util/util.cc:368] Sets are not currently considered sequences, but this may change in the future, so consider avoiding using them.

これは何を意味していますか?
毎回出るのですが不具合ないので放置してます
2022/05/01(日) 18:24:13.28ID:/FY9XBISr
集合は、シークエンスと考慮されている電流ではありません
しかし未来でわ変化する可能性があります、ですのでそれらを使うことは避けることを考えておいてください
726デフォルトの名無しさん (ワッチョイ bf2d-VGkv)
垢版 |
2022/05/01(日) 19:06:32.91ID:0ggTu6P00
>>720
VSCodeで開ける
727デフォルトの名無しさん (ワッチョイ bf2d-VGkv)
垢版 |
2022/05/01(日) 19:14:34.49ID:0ggTu6P00
>>724
set型(集合)は現状sequence(listとかtensorとか:[i]で中身参照できるヤツ)と見做されないが、これは将来変わる可能性あるから直したほうがいいゾ、と言っている

バージョンアップで不具合が出るかもしれない
2022/05/01(日) 19:19:07.90ID:SE1vC0S9H
>>727
どれのことだかわかんないんですよ
ソースコード貼るわけにもいかないし
セット型を[i]で参照してるってことなのかな?
つまり[i]を使ってるやつの書き方を見直せってこと?
2022/05/01(日) 22:11:45.77ID:S5MUx0uW0
多くの言語では、辞書・集合は順序不定なので、
順序アクセスはできないか、その度に変わる

だから、キー・値のみのインターフェースにしている
2022/05/01(日) 22:24:31.09ID:tQAUcym90
Python3.7以上の辞書なら順序は保証される
2022/05/01(日) 22:31:54.05ID:gTYMk0Yb0
順序が推測できることが脆弱性になってなかったっけ
2022/05/01(日) 23:07:38.45ID:n5o6XFHLa
保証されるけど、集合でそんなもん期待するのはちよっと心が貧しい
2022/05/02(月) 00:17:27.20ID:zZIONtog0
>>731
hashdosと混同してない?
あれ順序の問題じゃないよ
2022/05/02(月) 07:43:06.25ID:QBTh3ay3
プロセスの実行中、
辞書もしくは配列に値を入れて消してを繰り返しするのって
プロセス実行時間が長くなろうがメモリって増えていきませんよね?

items=[1つ100バイト未満の文字列を1000個、数秒置きに入れ替え]
items=[]で初期化したりitems.pop(),item.append()で追加したりで更新
一応24時間実行しっぱで確認してみたのですが、そこまで変わりませんでした
勝手に開放してくれるのでしょうか
2022/05/02(月) 08:20:31.28ID:utX47pRC0
>>734
値が参照されなくなった時点で開放されるはず。実際のタイミングはGC次第?
2022/05/02(月) 08:50:01.10ID:fxcianp60
>>732
それ
たとえ実装が見透けてても
2022/05/02(月) 09:05:28.53ID:QBTh3ay3
>>735
なるほど
なにか明示的に開放するようなコードがあるのかなと思いました
とりあえず実測で問題ないっぽいので現状ヨシとしてあとで調べてみることにします
ありがとうございました
2022/05/02(月) 09:24:15.36ID:8dvAAWOXa
>>732
そもそも保証されるのは辞書で集合は保証されないでしょ
そのためにordered-setパッケージなんてものがあったりするんだし
2022/05/02(月) 10:19:27.63ID:fxcianp60
ordered-setって勝手に大小並ぶんじゃなくてエントリ順維持なんだ
なんかうれしくない
2022/05/02(月) 10:23:15.15ID:2DpQa6LB0
'りんご'と'みかん'はどうやって大小区別するんだ
2022/05/02(月) 11:07:53.86ID:8dvAAWOXa
>>739
そう言うのはSortedSetとかの名前になるかと
https://grantjenks.com/docs/sortedcontainers/
2022/05/02(月) 11:15:17.59ID:gz0EbZLn0
哲学
2022/05/02(月) 11:24:39.08ID:2DpQa6LB0
global order
2022/05/02(月) 11:42:17.68ID:fxcianp60
>>740
そういうケースには適用しない(つかわない)

>>741
別物だったかありがとう
2022/05/02(月) 11:55:01.66ID:2DpQa6LB0
集合は値を持たない辞書

集合の無い言語で、値は要らないけどとりあえず1とか入れてkeyだけで管理する、
みたいなことをやることが結構あるので、値なし版も用意された
存在しないkeyを指定するとエラーになるめんどくささは辞書と同じ
2022/05/02(月) 12:12:58.18ID:8dvAAWOXa
>>740
そういうのは文字コード順なり比較関数を与えるなりすればいいだけかと
747デフォルトの名無しさん (ワッチョイ dff7-TUWr)
垢版 |
2022/05/02(月) 13:07:09.36ID:ZthOcqCz0
在日は自分に不都合なことは
全て差別と言う。

だったら半島へ帰れよクズども!
極悪非道の在日どもは皆殺しにすべき!
2022/05/02(月) 17:26:08.70ID:t8liBSRX0
クズなネトウヨには帰る場所もない
殺処分してやるのがせめてもの慈悲
2022/05/02(月) 20:07:27.95ID:tq0eJ7pv0
日本人が韓国に住みながら韓国マジクソ、韓国人死ねばいいのにって言ってたらお前なんて言うの?
750デフォルトの名無しさん (ワッチョイ 2701-I+xZ)
垢版 |
2022/05/02(月) 21:20:52.22ID:srM4fb0r0
>>749
「スレタイ読めよ」って言うだろうね。
2022/05/02(月) 21:24:19.62ID:wJauN5Uz0
>>750
一票❤
2022/05/03(火) 02:00:07.03ID:P2nTfFou0
cssセレクターでspanタグに囲まれているかどうかを問わないってどうやって指定すんの?

最悪xpathでもいいけど
2022/05/03(火) 03:46:30.15ID:P2nTfFou0
テーブルのスクレイピングをしててtrをforループで回しながらその中のtdの中にあるbr入りのtextを取りたいけどそのtrのうちの一つだけtdの中が直接textじゃなくてspan > dになってて、そのdタグの中にtextがある

それでどんなコードを書くかで詰んでる
beautifusoup4
誰か分かる?
2022/05/03(火) 05:03:35.73ID:UnZpzFGu0
tr > td で、ループ処理する

そこで、もし、tr > td が、span > div を内包していたら、そこからテキストを取得する
2022/05/03(火) 09:18:26.12ID:IxHOa5QLH
俺はいつもテキスト取得からfind位置取得で切り出しだなあ
2022/05/03(火) 11:52:36.28ID:P2nTfFou0
ごめん分からなかったんでtryでcss selectorで'td b'検索してAttributeError出たらexceptで単に'td'で検索かけるようにしたわ

それで得られたTagオブジェクトに.get_text(',').strip(',')してようするに</br>で区切ってlistにした

例外処理の多用は良くないと聞いたような気がするけどまぁいいよね
2022/05/03(火) 12:09:25.14ID:PFPUtHlZ0
>>753
brを改行にしたいということなら手動で改行入れる必要がある(pタグとかも)
for x in soup.select('tr td'):
 for node in x.select('br'):
 node.insert_before('\n')
 print(x.text.strip())

brタグが入ったままのinnerHTMLが欲しいのなら
for x in soup.select('tr td:not(:has(span d)), tr td span d'):
  print(x.decode_contents())
2022/05/03(火) 12:18:27.54ID:2dvea2Ox0
テーブルはちゃんと規則通りに書かれてることが多いし、テーブルの中身にしか興味ないから、
いきなりpandasにしてもうまくいく

問題はずらずら書かれてるケースで、特徴的なタグを見つけようにもうまく行かない
人間があれこれ考えて駄目なんだから何かのモジュールで対応できる訳もない
専用にきっちり書いてもマイナーチェンジされるとメンテ必要になるし、
余分に出力される程度にしておいて人間の判断を入れる、に倒す
2022/05/03(火) 12:59:02.27ID:P2nTfFou0
>>757
なるほどdecode_contents()で内側のhtmlをstring型で取れるのか
そしてhasとかnotや,の使い方も学べた
これで文字列処理するのが簡単で良さそうだね

brは改行にしたいわけじゃなくて単にbr区切りで関係性の薄い情報が書かれていたから前後で分裂させたかっただけ

最初の例が難しいな
クラスオブジェクトがミュータブルだからnodeに対しての操作がxにも影響を及ぼしてる?
2022/05/03(火) 15:07:34.95ID:PFPUtHlZ0
>>759
ツリーを変更するメソッドは元のBeautifulSoupオブジェクト(soup)が直接変更される
xもsoupオブジェクトへの参照なので変更が反映される
反映したくなければ部分的にコピーするか新しくsoupオブジェクトを生成するか

↓インデントが間違ってたので修正
for x in soup.select('tr td'):
 for node in x.select('br'):
  node.insert_before('\n')
 print(x.text.strip())
761デフォルトの名無しさん (JP 0Hcf-PwpY)
垢版 |
2022/05/04(水) 10:23:15.33ID:pkoGSX5+H
質問です。

macOSを使っています・

pythonのバージョンを調べるために、
「python -v」
を入力すると
/Users/xxxxxxx/.pyenv/shims/python: line 8: /usr/local/opt/pyenv/bin/pyenv: No such file or directory
と表示されます。

それで
「type python」
を入力すると
python is /Users/xxxxxxx/.pyenv/shims/python
と表示されますので、pythonは在ります。

なぜ、「python -v」が
No such file or directory
になるのでしょうか?

どうすれば良いのでしょうか?
2022/05/04(水) 10:46:01.03ID:8Q1g3mAXD
/usr/local/opt/pyenv/bin/pyenv
がないから
2022/05/04(水) 11:12:58.06ID:GAB8HZoP0
2^17179869183って計算できる?
2022/05/04(水) 11:39:04.52ID:KgzdHtkKa
>>763
マルチすんな、ハゲ
2022/05/04(水) 14:53:35.01ID:272uYDtq
エンドポイントを考えるとき
(1)http://hogehoge.com/items

(2)http://hogehoge.com/items/
末尾のスラッシュ有り無しどちらでもいいと思ってた

けどパスパラメータにパス(例/path/my/dir)を与えたい(こんなケースあるのかは知らないが)場合
(2)は
http://hogehoge.com/items//path/my/dir
(1)は
http://hogehoge.com/items/path/my/dir
パースできたとしても視認性落ちる

なので(2)の"/items/"が正しいとすると
http://hogehoge.com
のみのurlであってもスラッシュで閉じた方がいいのか
webフレームワーク側とかでスラッシュ有りに統一してた場合に野暮になりそうな気が
2022/05/04(水) 15:49:59.91ID:h7+OiRil0
>>765考え方がおかしい
普通urlに部分パスを追加する時はパラメータが/で始まるならルートからの絶対パス、そうでなければカレントの相対パスって意図になる
../path~みたいな親を遡る相対パスが与えられた場合も考慮すると文字列の追加に留まらずパスを正規化せざるを得ない
視認性とかの問題ではない
2022/05/04(水) 16:30:47.72ID:272uYDtq
>>766
部分パスがちょっとわからないからあれだけど
ルーティングによるのでは?と思う

例えばクエリパラメータで
http://hogehoge.com/items?path=/path/my/dir
とした場合は
http://hogehoge.com/items/?path=/path/my/dir
でも問題ないけどパスパラメータ>>765だと
どっち?ってならないかな(もちろんドキュメントに準じればいいだけだが。)
そういうことではなくて?
2022/05/04(水) 20:50:47.03ID:mmwxiGlBM
柏野雄太は名を挙げたね
2022/05/04(水) 23:36:56.20ID:AJMM67e40
>>761
漏れは、Windows 10, WSL2, Ubuntu 18.04 に、
日本人が作った、多言語バージョンマネージャーのanyenv で、
ruby, node.js を入れているけど、

ruby -v
ruby 2.6.6

node -v
v14.18.1

which ruby
/home/ユーザー名/.anyenv/envs/rbenv/shims/ruby

which node
/home/ユーザー名/.anyenv/envs/nodenv/shims/node

anyenv と同様のツールに、asdf もある
2022/05/04(水) 23:39:37.70ID:8rho1RVna
2**21 = 2**3 * 2**9 * 2**9
2022/05/05(木) 02:32:35.30ID:FeY8iOM40
高度IT人材、富士通は最大年収3500万円へ

AI人材の獲得に超本気 NECが新人事制度を9人に適用、富士通は最大年収3500万円へ

【年収3500万円も】富士通、「ジョブ型」人事制度を導入 幹部社員から 高度IT人材

来年度から副業解禁 人材多様化へ―大同生命次期社長

第一生命HD、副業解禁 約1万5000人対象

第一生命HD、副業解禁 1万5000人対象―大手生保初

IHI、国内8000人の副業解禁 重厚長大企業も転機

IHI、社外兼業を解禁 社内副業もルール化
2022/05/05(木) 13:57:31.01ID:oa9SITA90
sorted(list, key=lambda x: x.val)

sorted(list, key=attrgetter('val'))
と書いた方が見やすいけど、importが要るのがなあ
2022/05/05(木) 20:34:57.56ID:Bc4kCDNA
行が増えるのが嫌って感じではないなら
普通にlambda x: x.valの部分を置き換えてしまえばいいのでは

import pandas as pd
class X:
 def __init__(self,val):
  self.x=11
  self.val=val

_getattr=lambda n:lambda x:getattr(x,n)

ary=[X(6),X(3),X(2),X(7)]
print([ n.val for n in ary ])
ary=sorted(ary, key=_getattr('val'))
print([ n.val for n in ary ])

#[6, 3, 2, 7]
#[2, 3, 6, 7]
2022/05/05(木) 20:40:43.19ID:oa9SITA90
lambdaは強力です
lambdaを使うとこんなこともできる

的な記事はよく見るけど、結局lambda以外の方法の方が綺麗で、
lambdaは苦し紛れ感がある
2022/05/05(木) 21:05:02.85ID:Rtfrs1Kx0
lambdaでちょっと書くだけでもPythonicじゃなくなる
無いものと扱った方がシンプル
基本どこでもdefは書けるから困らんし
2022/05/05(木) 21:18:45.73ID:oa9SITA90
mapとかfilterも使わずに済ませた方がいいことが多い
折角パワフルそうなものがあるのに、と勿体ない気もするけど、
存在を忘れた方がいいかもしれない
2022/05/05(木) 23:03:05.31ID:Nv9wUOG5H
ある計算の結果をarr[0]から順番にarr[i]に入れていきます。
計算結果が重複していたら入れません。
iは数千万以上まで行きます。
計算を進めていくと、重複判定にものすごく時間がかかってきます。
高速でできるPythonモジュールみたいなのはありますか?
2022/05/05(木) 23:04:55.42ID:cat7h5UO0
数千万を超えるデータ数なら、DB使うのが楽だろう
2022/05/05(木) 23:09:30.99ID:/WvxkOMY0
とりあえずsetに入れてやってみて
だめならよく考えないと
2022/05/05(木) 23:12:35.56ID:oa9SITA90
いちいち判定せずに重複してても全部入れて、
重複判定は最後にまとめてやる
2022/05/05(木) 23:13:57.78ID:4AFuDqVB0
巨大データだと
まずはメモリの使用状況を調べないと
メモリを使い切ってスワッピングを始めると
言語に関係なく遅くなる
2022/05/05(木) 23:16:40.62ID:oa9SITA90
numpy.unique が使えれば、C言語の速度で計算できる
2022/05/06(金) 00:29:31.47ID:n4Ao/ndQH
>>782
これにします
ありがとうございました
2022/05/06(金) 10:21:27.64ID:iI+uCnhja
 ,Aさん, ,  ,Bさん,  ,  ,
 ,開始,終了,備考,開始,終了,備考,
5/1,7:00,16:00, ,8:00,17:00,
5/2,8:00,17:00, ,  ,  ,有休
見たいな三次元データってpandasじゃ無理?
2022/05/06(金) 10:51:11.55ID:psJUmtHU0
>>784
内部だけでもこんなかんじに変換はできない?
どなた,開始,終了,備考,
Aさん,5/1,7:00,16:00,
Bさん,5/1,8:00,17:00,
Aさん,5/2,8:00,17:00,有休
2022/05/06(金) 11:04:53.45ID:+8HHAnO10
有給はたぶんBさん
2022/05/06(金) 11:10:23.65ID:62y4JUOg0
開始 = 勤務データ[人][日付].開始
みたいにアクセスしたいよな
2022/05/06(金) 11:20:32.56ID:62y4JUOg0
その場合、開始, 終了, 備考をインスタンス変数に持つオブジェクトの2次元配列にする
pandasからは遠ざかる
多分、問題がpandasに向いてない

excelからの読み込みと書き出しはpandasでやって、
内部的には取り回しのいい形式に変換する
2022/05/06(金) 11:44:44.97ID:vkuiuJbo0
>>784
同じ名前のcolumn持てないかもだけどマルチインデックス使ったらできないかな
2022/05/06(金) 14:27:37.32ID:0ltf0AP4a
>>787が理想ですね

>>789
http://makotomurakami.com/blog/2020/04/10/4908/
これですね。面白そうなので勉強してみます!
2022/05/06(金) 14:38:00.42ID:0QoRB4YX0
>>786
とうでもいい冷静な指摘ワロ
792761 (ワンミングク MMdb-NEd7)
垢版 |
2022/05/06(金) 15:37:34.62ID:U4lMD6QTM
>>762
レスありがとうございます。

質問の意図は、エラーメッセージの意味ではなく、
なぜ、「pythonがあるのに、バージョンが表示されないのですか」ということです。


あと、1ケ月前にはちゃんとバージョンが表示されていたのに、
どういう原因でこうなった(「/usr/local/opt/pyenv/bin/pyenvがない」)のか、
考えらる原因も教えていただけませんでしょうか?

よろしくお願いいたします。
2022/05/06(金) 15:49:38.97ID:psJUmtHU0
>>792
>>762 が端的にあってるとおもうけど

過去にMacPortsか独自でpyenvを導入したはずが今は消したかで無くなってる
原因は分かるわけないw
再導入すればOK

どうせ動かんし先に /Users/xxxxxxx/.pyenv は消しとくのが無難
pyenv公式にはHomebrewでいれろとあるからどうするかは考えて
794792 (ワンミングク MMdb-NEd7)
垢版 |
2022/05/06(金) 16:41:48.16ID:U4lMD6QTM
>>793
レスありがとうございます。

やってみます。
2022/05/06(金) 17:42:55.06ID:NlkHDn7u
DBにしろpandasにしろ時間管理だとこんな感じにするかな
pandasの使い方これで合ってたかは忘れたけど
https://colab.research.google.com/drive/1W6g9HLYOliL3i9Dc-t6lfnw4oxsTPh4K

today=datetime.now().replace(hour=0, minute=0, second=0, microsecond=0)
df=pd.DataFrame([
{"名前":"Aさん","開始":"2022-05-04 07:00:00","終了":"2022-05-04 16:00:00","description":""},
{"名前":"Bさん","開始":None,"終了":None,"description":"有給"},
{"名前":"Aさん","開始":"2022-05-05 07:00:00","終了":"2022-05-05 16:00:00","description":""},
{"名前":"Bさん","開始":"2022-05-05 07:00:00","終了":"2022-05-05 17:00:00","description":""},
{"名前":"Aさん","開始":"2022-05-06 07:00:00","終了":"2022-05-06 17:00:00","description":""},
{"名前":"Cさん","開始":"2022-05-06 10:00:00","終了":"2022-05-06 12:00:00","description":"早退"},
{"名前":"Bさん","開始":"2022-05-06 08:00:00","終了":"2022-05-06 19:30:00","description":""},
{"名前":"Dさん","開始":f"{today:%Y}-{today:%m}-{today:%d} 08:00:00","終了":f"{today:%Y}-{today:%m}-{today:%d} 21:00:00","description":""},
])
df["開始"]=pd.to_datetime(df["開始"])
df["終了"]=pd.to_datetime(df["終了"])

#Bさんのみ
#df[df["名前"]=="Bさん"]

#2022年5月6日のAさんの出勤時刻
df[df["名前"]=="Aさん"][df["開始"].dt.date==datetime(2022,5,6).date()].iloc[0]["開始"]

#2022年5月5日以降のみ
#df[df["開始"]>datetime(2022,5,5)]

#2022年5月6日、9時から11時に出勤する人のみ
#df[(df["開始"]>datetime(2022,5,6,9,0)) & (df["開始"]<datetime(2022,5,6,11,0))]

#現在仕事中の人のみ
#df[(df["開始"]>today) & (df["終了"]>_to_zone(_jst))] )
2022/05/06(金) 18:05:03.14ID:62y4JUOg0
実際のデータはコードに書かれてる訳ではなくてcsvなりexcelな訳で
そこのフォーマットは変えられないのでコンバータが要る
2022/05/06(金) 22:16:25.65ID:TUkwoEaL0
データはヒアドキュメントで書きなよ
2022/05/07(土) 06:13:21.22ID:qvxD3Am1a
返信ありがとうございます。
>>785の形式にopenpyxlかvbaで変換して>>795の方が楽っぽいですね!
2022/05/08(日) 12:47:43.25ID:ijaKGYnfd
WSL2のUbuntuにpythonインストールして使ってるけど、この場合jupyter notebook使えるの?
2022/05/08(日) 12:55:49.87ID:WZ+9GTH10
ubuntu内で完結する訳もなくて、
入力元や出力先がwindowsなら、windowsで動かす方が面倒が少ないのでは
2022/05/08(日) 13:13:17.78ID:nIKs1wjM0
WebブラウザがWindowsであればよくない?
モジュールや連携するバックエンド考えるとLinuxのが面倒がない
2022/05/08(日) 13:29:26.40ID:VLhFHO7C0
OSは何にする?この手の話題はスレ違い
2022/05/08(日) 13:32:59.13ID:sGLUGFq3M
python使うのにベストなOSを語ってるのにスレ違いってことはなくね?
2022/05/08(日) 13:38:21.02ID:WZ+9GTH10
mac使ってる人はmacで
windows使ってる人はwindowsで
ターゲットはlinuxだけど開発マシンがwindowsの人がWSLで

用もないのにWSL使いたがるのはイキってるだけの可能性が高い
2022/05/08(日) 16:12:32.16ID:uqTA7j1LH
Dropoutって過学習を遅らせてるだけ?
結局過学習してる気がするんだけど気のせいだろうか
806デフォルトの名無しさん (ワッチョイ 8f33-vIa5)
垢版 |
2022/05/08(日) 16:17:09.92ID:OXaJwWW50
アプリとそのデプロイする先OSとの相性はあるけどな
2022/05/08(日) 16:20:21.03ID:WZ+9GTH10
人間の脳も忘れるんだから、AIも忘れさせた方がより脳を模倣できるというアイディア
やってみると実際にスコアが上がる
何がどうなって良くなってるかは誰も知らない
2022/05/08(日) 18:21:52.67ID:aevSewlE0
wslでイキってます(^_^;)
と言いたいところだけど、なんだかんだPowerShellだ
visual stdio codeでwslにもPython入れてる
809デフォルトの名無しさん (ワッチョイ 2301-cfd4)
垢版 |
2022/05/08(日) 20:16:51.25ID:uHv997gA0
studio
2022/05/08(日) 20:26:40.39ID:WZ+9GTH10
#include <studio.h>
811デフォルトの名無しさん (ワッチョイ 2301-U1YL)
垢版 |
2022/05/09(月) 01:27:47.74ID:n2JVbrax0
WSL程度じゃイキれないからな。
Ubuntuじゃないと。
2022/05/09(月) 06:23:57.39ID:Ucje4jsd0
power shellから
wsl --install
と入れるだけでubuntuが入るんだから、WSLとはubuntuだと思っていい
2022/05/09(月) 08:22:28.54ID:/GycElY9M
ドロップアウトは局所解引きやすいときにかなり有効なきがする
2022/05/09(月) 08:38:23.71ID:IUyk/1Pzr
バッチ少ないときにも有効な気がする
あくまで感覚的にだけど
2022/05/09(月) 08:51:46.62ID:Y9cmTEXw0
初学者だけどDocker使うためにWSLに慣れてたほうがいいんじゃないの?
2022/05/09(月) 09:26:54.72ID:N4riRdyu0
初学者の95%は3ヶ月続かないから平気
2022/05/09(月) 09:35:03.70ID:li9qwqod0
exe名が汚すぎて吐きそうになる

C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.1264.0_x64__qbz5n2kfra8p0\python3.10.exe
2022/05/09(月) 09:38:35.23ID:N4riRdyu0
酷さも極めると芸術ね
2022/05/09(月) 09:52:26.17ID:Ucje4jsd0
pythonとpython3で区別してたのは元からだし、
より細かく3.10にしてるだけ
820デフォルトの名無しさん (アウアウウー Sa1f-vIa5)
垢版 |
2022/05/09(月) 10:23:12.21ID:4q54ATjra
Windowsアプリの方?
2022/05/09(月) 10:51:57.17ID:rXvc8Ra30
そりゃ、すべての環境構築が、Docker, Kubernetes になったから、
分散処理のHadoop が滅んだ

それで、AWS Solution Architect の米国年収が、
Ruby on Rails の1,300万円を超えて、1,400万円になった。
今は円安で、1,800万円まで高騰した

猫も杓子も、AWS Associate 3冠・機械学習 Specialty だろ
2022/05/09(月) 12:37:56.15ID:bt9zJdkn0
ファイル名じゃなくexe名っていうところが気持ち悪くて吐きそう
2022/05/09(月) 12:58:30.05ID:qGH53jdv0
マイナーバージョンまで実行ファイル名に含まれてるのは少数派ではあるかも。
気になって調べてみたら、自分の環境だとautomake系とRuby系はマイナーバージョンまでファイル名になってた。
ライブラリ名だとごく普通だから違和感はなかったな
2022/05/09(月) 14:45:09.87ID:poYUryAv0
エイリアスをかければすむ問題じゃないの?
2022/05/09(月) 14:52:47.85ID:Ucje4jsd0
実際に起動するのは C:\Windows\py.exe
826デフォルトの名無しさん (JP 0H3f-31Mv)
垢版 |
2022/05/09(月) 22:53:05.55ID:DpCjOuw1H
#############################################################
https://assets.st-note.com/production/uploads/images/60037741/picture_pc_19893dcbf6564b05921e2191868e6fb1.png

全米国株1分足データ10年分を900円で差し上げます。計8173銘柄。時間外取引のデータ込み。お買い得です。システムトレードや検証にどうぞ。
https://note.com/data_shop/n/nad05814e941e
#############################################################
2022/05/09(月) 22:54:26.88ID:j3JOoLOZ0
>>826
日本株はないですか?
2022/05/09(月) 23:20:59.46ID:KjDUkCYM
from sample import mod1, mod2

def mod1():
_return "def mod1でmod1を上書き?"

print(mod1())
print(sample.mod1())

from ○ import ○,○のように明示的にモジュールを指定したいとき
import先のモジュール名と関数名がかぶるとき命名に困る
一体どうしたら・・
対策としてdef _mod1()とかにしてるけどなんかモヤモヤ
2022/05/09(月) 23:27:02.50ID:dKybY/I70
>>799 だけど、少し調べたら
%jupyter notebook --no-browser
で起動するとURLが表示されて、このURLをWindows上のウェブブラウザで開く方法があった
2022/05/09(月) 23:46:05.83ID:VeYZqxsU0
>>828
インポートする時にas使って名称変えればええやん
from .moduleY import spam as ham
2022/05/10(火) 00:00:51.04ID:mBrnJsuS0
sample.mod1 でええがな
2022/05/10(火) 00:15:18.39ID:Ti0nXdEQ
>>830
それはもちろん
ただルーティングとかのときにswaggerで表示される名前を見やすくシンプルにしたいのでかぶるモジュール名もシンプルで
これ以上名前変えてもなぁというのと単に見た目的(asは複数無理?)なので保留
>>831
import sample
sample.mod1
てこと?元も子もないような


とういうか改めてswaggerUIの方をみたらハイフンは省かれて表示されてたのでもう先頭に(_)でいいや
ルーティング以外のとこはおそらく自分の命名のやり方を改善できる可能性が高そうなので
2022/05/10(火) 00:16:05.16ID:Ti0nXdEQ
ハイフンじゃなくてアンダーバーだった
2022/05/10(火) 01:40:07.98ID:lEEJR5Cu0
元も子もなくない
from sample import mod1

import sample as __sample
mod1 = __sample.mod1
と自分で書いたのと同等、そう考えれば避けたくならん?
sample.mod1 に慣れるのがシンプル解
2022/05/10(火) 03:09:57.64ID:Ti0nXdEQ
問題はそこではなくて
命名かぶりそう、っていうのと
かつmod1,mod2,,,を明示したい、という見た目の話ですね
そもそもfrom sample import mod1やめて
import sampleの
sample.mod1でいいじゃん、てなると
そりゃそうでしょ、としか
2022/05/10(火) 08:46:15.39ID:mBrnJsuS0
命名が適切ならば被らない
被ってしまうのは命名が間違ってるか省略し過ぎ
違うものが同じ名前になるのは判りやすい書き方とは言えない
837デフォルトの名無しさん (ワッチョイ f3fc-7Spq)
垢版 |
2022/05/10(火) 09:25:11.75ID:7ou9dI0M0
 Python + selenium にて、Twitterに投稿したいと思っています。
 絵文字以外の文字列を投稿するところまでは完成していますので、
 絵文字をどのように送ればよいかについてアドバイス(実際のサンプルコード)を
 頂きたいです
2022/05/10(火) 11:10:12.46ID:V8fc4wuO0
import emoji
2022/05/10(火) 11:18:59.07ID:mBrnJsuS0
youtubeのチャットを字幕化して動画に重ねて表示させたりしてるけど、
絵文字部分もそれ使えばいいのか
2022/05/10(火) 11:59:58.50ID:Ti0nXdEQ
>>836
さらっとクラスやら全否定してないかそれ
中身が同じってことではないでしょ
2022/05/10(火) 12:15:14.26ID:lN9ZufrH0
<tr>
<td>a</td>
<td>b</td>
</tr>
<tr>
<td>a1</td>
<td>b2</td>
</tr>
<tr>
<td>a3</td>
<td>b3</td>
</tr>
こんなタグがあってaとa1とa3をスクレイピングしたいんですが、どうすればそこだけ抜き取る事が出来ますか?
スライスですかね?
2022/05/10(火) 12:15:14.30ID:mBrnJsuS0
オーバーライドまで面倒見るなら同じ名前でいい
2022/05/10(火) 12:16:28.26ID:mBrnJsuS0
emojizeはなんか対応してない文字あるな
辞書が古いのかな
2022/05/10(火) 12:23:46.06ID:keCf+vVN0
>>841
.select('tr > td:first-child')]
2022/05/10(火) 13:22:27.15
from bs4 import BeautifulSoup as _soup
html="<table><tr><td>a</td><td>b</td></tr><tr><td>a1</td><td>b2</td></tr><tr><td>a3</td><td>b3</td></tr></table>"
bs = _soup(html, "html.parser")
print([ td.text for td in bs.select("tr > td:nth-of-type(1)") ])
#['a', 'a1', 'a3']
>>841
2022/05/10(火) 13:26:34.17ID:lN9ZufrH0
>>844
>>845
ありがとうございます
2022/05/10(火) 17:45:38.50ID:4Lkf5W240
pip install soupsieve

soup.select('td:-soup-contains("a")'
)


すみませんなんでもないです...
2022/05/10(火) 18:52:03.76ID:gcxSlYEt0
・塩野義製薬が週休3日制導入へ 来年4月、副業も解禁
・塩野義製薬が「週休3日」選択可能に 給与は『週休2日の8割』副業や学び直しを支援
・【フォーカス】サタケ/週休3日制 通年導入めざし夏季のみ試行中 交代制で水曜を休日に
・旅館なのに週休3日!?陣屋・若女将の常識を覆した組織改革
・“時代錯誤”から残業ゼロ、週休3日に! 鳥取の不動産会社が
 レガシー企業からDX先進企業になれたワケ
・ネクスウェイ、週休4日制・1日3時間勤務選択できる勤務体系を導入
・日本初「週休4日制度」で、優秀な人材を採用するしくみとは? ?
 ナレッジソサエティ久田社長に聞いてみた
849デフォルトの名無しさん (ワッチョイ 9f5f-HNGk)
垢版 |
2022/05/13(金) 14:34:43.72ID:W2vdm6pB0
当方プログラム初心者ですがpythonの**.pyファイルを**.exeにしたい場合どのようにするのでしょうか。
色々ググって全く分からず困っています。
Python27時台に作成されたソースです。ヒントでもよいのでアドバイス頂けると
助かります。
よろしくお願いいたします。
2022/05/13(金) 14:44:41.43ID:Lv0l6mLO0
py2exe
851デフォルトの名無しさん (ワッチョイ 9f5f-HNGk)
垢版 |
2022/05/13(金) 14:53:47.58ID:W2vdm6pB0
ひとまずPCにpython27をインストールしました。
次にソースからexeを作成するcmdファイルがありました。
pythonのあとにsetup.py py2exeとあり、setupを見るとソース名が指定してあります。

実行すると何も表示されずするっと消えます。
exeはdistフォルダーに出力とネットではみましたが作成されていません。

エラーが出ているのでしょうか・
2022/05/13(金) 15:06:45.57ID:57i+XphT0
まずそのpythonを窓から投げ捨ててください


そのバージョンはサポート切れで今後も躓きまくると思うので、3.10をインストールしなおしたほうがいいよ
2022/05/13(金) 15:10:10.67ID:NYqRDY4R0
今後のことは3がいいだろうけど、2が3で動かないのはほぼ確実なので、
正しく移植するのが困難だからとりあえず2がいい
2022/05/13(金) 15:11:01.68ID:49OkwO5cH
それをすてるなんてとんでもない!
855デフォルトの名無しさん (ワッチョイ 9f5f-HNGk)
垢版 |
2022/05/13(金) 15:12:07.07ID:W2vdm6pB0
ありがとうございます。
実は最新版をいれたのですがソースの規則違反が出てググると3以上で改定されていると・・・
ソース修正ができないのとバグでも出したら怖いので過去Verをいれています。
exe作成時のログは見る事は可能でしょうか
2022/05/13(金) 15:15:40.45ID:49OkwO5cH
たぶんどっか違うフォルダに保存されてんじゃないの
フルパス指定してみ
857デフォルトの名無しさん (ワッチョイ 9f5f-HNGk)
垢版 |
2022/05/13(金) 15:27:54.08ID:W2vdm6pB0
エクスプローラーの検索でCドラを検索しても***.exeはヒットせずです。困りました
858デフォルトの名無しさん (ワッチョイ 8a0c-PvPk)
垢版 |
2022/05/13(金) 15:37:11.42ID:nVEMNiPV0
ちなみに君のpython2.7にはpy2exeがインストールされているのかい?
>py -2 -m pip install py2exe
859デフォルトの名無しさん (ワッチョイ 8a0c-PvPk)
垢版 |
2022/05/13(金) 15:42:16.79ID:nVEMNiPV0
py2exeだけでなく、いろんなモジュールが足りなさそう。
860デフォルトの名無しさん (ワッチョイ 9f5f-HNGk)
垢版 |
2022/05/13(金) 15:42:55.38ID:W2vdm6pB0
オプション-2を外して実行するno module named pipです
861デフォルトの名無しさん (ワッチョイ 8a0c-PvPk)
垢版 |
2022/05/13(金) 15:46:03.46ID:nVEMNiPV0
ごめん、2.7はpip使えないんだね。
https://sourceforge.net/projects/py2exe/files/py2exe/0.6.9/
から2.7用をダウンロードしてインストールして。

ちなみに、その .py はpython2.7をインストールしたPCで動く?
モジュール足りてる?
862デフォルトの名無しさん (ワッチョイ 8a0c-PvPk)
垢版 |
2022/05/13(金) 16:01:49.02ID:nVEMNiPV0
https://www.python-izm.com/third_party/executable/py2exe/
863デフォルトの名無しさん (ワッチョイ 9f5f-HNGk)
垢版 |
2022/05/13(金) 16:15:55.03ID:W2vdm6pB0
>>861 的確なアドバイスに大変感謝します!!!インストール後にexe作成のcmd実行で
画面えらいメッセージが流れdistフォルダーが作成されました。

近くにいたら寿司でも奢りたい気分ですがまさか5chで解決するとはw
本当に泣きたいくらいに感謝です。ありがとうございました。
2022/05/13(金) 17:10:28.05ID:pgIIrT+10
釣り質問じゃなかったのか‥
865デフォルトの名無しさん (ワッチョイ 8a0c-PvPk)
垢版 |
2022/05/13(金) 17:53:38.97ID:nVEMNiPV0
>>863 できたexeファイルはまともに動くかい?
なんかモジュールが足りないとかエラーメッセージでないかい?
866デフォルトの名無しさん (ワッチョイ 9f5f-P+Vy)
垢版 |
2022/05/13(金) 18:13:37.25ID:W2vdm6pB0
ありがとうございます。先ほど本番環境で検証したら

LoaLibrary(pythondll) failedが表示され動作停止されました。

なかなかすんなりいきません。
867デフォルトの名無しさん (ワッチョイ 8a0c-PvPk)
垢版 |
2022/05/13(金) 18:18:27.99ID:nVEMNiPV0
ソースの先頭部分、import文だけでも晒してみ。
868デフォルトの名無しさん (ワッチョイ 8a0c-PvPk)
垢版 |
2022/05/13(金) 18:19:26.63ID:nVEMNiPV0
必要なモジュールが足りてないんだわ。py2exeだけじゃなくて必要なものが色々足りてないと思う。
869デフォルトの名無しさん (ワッチョイ 9f5f-P+Vy)
垢版 |
2022/05/13(金) 18:29:53.64ID:W2vdm6pB0
こんな感じです。

# coding: cp932


import os
import os.path
import shutil
import ftplib
import sys
import ConfigParser
import md5
import datetime
import logging
import logging.config
import yaml # warning: this package needs to be installed manually before
# download at: http://pyyaml.org/wiki/PyYAML
870デフォルトの名無しさん (ワッチョイ 8a0c-PvPk)
垢版 |
2022/05/13(金) 18:39:39.77ID:nVEMNiPV0
https://qiita.com/sg0hsmt/items/f8fc8d587bff816654a8
を参考に pip をインストール。
pip install で ConfigParser, md5, yaml をインストール。
で、再度 exe を作成。
871デフォルトの名無しさん (ワッチョイ 8a0c-PvPk)
垢版 |
2022/05/13(金) 18:41:46.96ID:nVEMNiPV0
3.10の仮想環境で確認しているから、ひょっとしたらもっと足りないかもしれない。
872デフォルトの名無しさん (ワッチョイ 8a0c-PvPk)
垢版 |
2022/05/13(金) 18:45:07.56ID:nVEMNiPV0
2.7時代のモジュールインストールって pip で問題なし? to 諸先輩方。
2022/05/13(金) 19:08:43.44
ワンチャン3系でこれでexe化して動くかも知れない
https://colab.research.google.com/drive/1S8Rwdz7m6BtVivwviLDGoISPGKpDRFWG
874デフォルトの名無しさん (ワッチョイ 9f5f-P+Vy)
垢版 |
2022/05/13(金) 19:12:21.15ID:W2vdm6pB0
pipのインストールサイトを見ましたがこれはAまたはBのどちらかをすればよいのでしょうか。
また、(a)はコマンドプロンプトで実行を意味していますでしょうか。素人すぎる質問ですみません
875デフォルトの名無しさん (ワッチョイ 8a0c-PvPk)
垢版 |
2022/05/13(金) 19:24:22.42ID:nVEMNiPV0
(a)の方が簡単そう。URLは生きてた。コマンドプロンプトでもパワーシェルでもOK。
876デフォルトの名無しさん (ワッチョイ 8a0c-PvPk)
垢版 |
2022/05/13(金) 19:29:45.53ID:nVEMNiPV0
curlってwindowsにあるんだっけ?...
2022/05/13(金) 20:01:23.82ID:F7OwU1g5a
Windows 10 Ver.1803(RS3)から標準でburlburl.exeがあるしPowerShellにもInvoke-WebRequestのAliasとしてcurlがある
878デフォルトの名無しさん (ワッチョイ 9f5f-HNGk)
垢版 |
2022/05/13(金) 20:08:59.92ID:W2vdm6pB0
ひとまず(a)でインストールできています。Exeも作り直しテストをしたいとこですが
本番環境ですぐにできないため、明日に持ち越しです・・・
ご協力いただいた方には本当に感謝します。明日も質問を上げるかも知れませんので
是非よろしくお願いします!!!
879デフォルトの名無しさん (ワッチョイ 8a0c-PvPk)
垢版 |
2022/05/13(金) 20:12:07.27ID:nVEMNiPV0
とりあえず乙
880デフォルトの名無しさん (ワッチョイ 1f7c-EjCo)
垢版 |
2022/05/14(土) 00:43:01.55ID:5cKH7ieg0
一番簡単に取れるPythonの資格は何?
2022/05/14(土) 08:39:39.21ID:M4U6Kwpw0
async/awaitってマルチスレッドと何が違うの?
どっちも並行処理でしょ?
2022/05/14(土) 08:43:42.98ID:jSA3rKOXa
async/awaitがちょっと抽象的な書き方です
2022/05/14(土) 09:15:07.14ID:M4U6Kwpw0
>>882
抽象的ってどういうこと?
2022/05/14(土) 09:28:44.78ID:PIoNYaJwa
マルチスレッドは並行動作させる仕組み
await/asyncは並行動作させるための記述方法
2022/05/14(土) 10:23:45.32ID:M4U6Kwpw0
言語機能かライブラリかってことか
当然async/awaitのほうが性能はいいわけだな
2022/05/14(土) 10:40:14.07ID:jSA3rKOXa
>>885
そんな話はしとらん
2022/05/14(土) 10:55:58.27ID:/95bir/q0
async awaitはシングルスレッドでCPUリソースを有効活用する仕組み、
マルチスレッドは実装によっては複数コアで実行される可能性がある、
じゃね?
で、CPythonはマルチスレッド対応がイケてないからマルチプロセッシングやasync awaitのほうが早い、と
2022/05/14(土) 11:12:36.39ID:M4U6Kwpw0
async/awaitってシングルスレッドなのか
それじゃ根本から全然違うな
2022/05/14(土) 11:19:02.13ID:jSA3rKOXa
単に非同期なだけで、下のスレッドの使われ方は言及しない
大抵の実装はマルチスレッド使うんじゃないか?
2022/05/14(土) 11:35:19.17ID:M4U6Kwpw0
並行処理のところは実装依存てことか
async/awaitのほうがスレッドより早いのも実装によるってことかな
早いなら使ってみるけど
2022/05/14(土) 11:46:36.70ID:XO4cGfGE0
シングルスレッドかマルチスレッドかは処理の切り替えの効率だけの話で、
CPUが具体的にどうなってるかまで考えてコード書かない
2022/05/14(土) 11:48:41.98ID:Bl8gIrrF0
プログラミングスタイルのちがいだからそこ
両方つかえばすぐわかると思うけど頭でっかちになってる
2022/05/14(土) 11:49:43.80ID:Bl8gIrrF0
>>892
文脈からマルチスレッド=threadingと思ってるとした前提
2022/05/14(土) 12:00:04.45ID:/95bir/q0
>>889
マルチスレッドで動かすためにはプログラマ自身がクリティカルセクションとかアトミック処理とかマルチスレッドで動くことに気を使わないといけないけど、async awaitでそんなコード見たことないよね?
マルチスレッドで動かしはじめたら世間が大混乱するからasync awaitをマルチスレッドで実装している処理系なんて一つもないと思うよ
2022/05/14(土) 12:08:53.97ID:XO4cGfGE0
干渉を気にしないといけないのはマルチプロセスなのでは?
2022/05/14(土) 12:13:43.53ID:GFQtpQmSM
マルチスレッドでも変わらないよ。
手書きしたスワップ処理をマルチスレッドで動かしたときのことを考えてみて
2022/05/14(土) 12:27:08.85ID:jSA3rKOXa
>>894
馬鹿なんでは…
マルチスレッドと排他処理でみんなしこしこ書いてるわけでしょ
2022/05/14(土) 13:02:49.29ID:M4U6Kwpw0
>>892
おれはJavaScriptも書くからasync/awaitには馴染みがある
ただPythonのasync/awaitは色々覚えることが多い気がする
2022/05/14(土) 15:34:48.59ID:TFzn0YZeM
>>889
自動で複数スレッドを使うような実装も可能だろうけど
PythonはGILがあるから1プロセスで複数タスクを並列実行はできないので基本みんなシングルスレッド

asyncioやtrioでもブロッキングなAPIをawaitできるようにするのにスレッドを使うけど
自動じゃなくてプログラマが別スレッドを使うように指定する
2022/05/14(土) 15:55:29.78ID:DJFcmjHSa
>>899
マルチスレッドだよ
単に同時に動かんだけで
なんか言葉の使い方変だよ
2022/05/14(土) 16:04:59.45ID:XO4cGfGE0
ProcessPoolExecutor だと複数プロセス動く
902878 (ワッチョイ 0f5f-hFP2)
垢版 |
2022/05/14(土) 16:39:07.81ID:Sh1ZlMqp0
本日テストをしましたが状況変わらずです。

lodlibrary(pythondll) failed

こちらでググりまくりましたがしっくりくるものなしです。
python 2.7では
903デフォルトの名無しさん (ワッチョイ 230c-yvGd)
垢版 |
2022/05/14(土) 17:09:04.91ID:Z9o6dlRH0
ConfigParser, md5, yamlはインストールした?
>pip install configparser
同様に md5, yaml も。」
904デフォルトの名無しさん (ワッチョイ 230c-yvGd)
垢版 |
2022/05/14(土) 17:31:05.25ID:Z9o6dlRH0
2.7.18インストールして確認中。
ごめん。yamlはソースにある通り
http://pyyaml.org/wiki/PyYAML
から2.7用をインストールして。
905デフォルトの名無しさん (ワッチョイ 230c-yvGd)
垢版 |
2022/05/14(土) 17:39:51.00ID:Z9o6dlRH0
必要なのはyamlだけでした。他は大丈夫。2.7.18で確認。
2022/05/14(土) 17:55:05.18ID:RctUCGjO0
>>902
もしかしてdistにexe以外も出力されてるのにexeファイルだけ本番環境に持って行ってる?
それだと単独ファイルにしたいならsetup.py書き換えないと
907デフォルトの名無しさん (ワッチョイ 0f5f-hFP2)
垢版 |
2022/05/14(土) 18:06:44.64ID:Sh1ZlMqp0
pipのインストールでエラー出ていないためno moduleのため(b)実行

その後にinstall ConfigParserで下記です

ERROR: Could not find a version that satisfies the requirement ConfigParser (from versions: none)
ERROR: No matching distribution found for ConfigParser

これも適正なバージョンがあるのでしょうか
908デフォルトの名無しさん (ワッチョイ 230c-yvGd)
垢版 |
2022/05/14(土) 18:49:50.06ID:Z9o6dlRH0
ごめんて。confipaserとmd5はインストール不要。
yamlだけ上記URLからダウンロードしてインストール。
909デフォルトの名無しさん (ワッチョイ 0f5f-hFP2)
垢版 |
2022/05/14(土) 19:22:11.28ID:Sh1ZlMqp0
ご指摘の通り、distをみると何やらlibrary.zipも更新されていたため、持ち込みすると
確かにエラーはなく瞬時に終了。

ただし、このPGMはメッセージを表示するので何か不足してするっとしてる模様です。
今度は原因追及のためのデバッグでしょうか・・・
2022/05/14(土) 19:52:40.03ID:+KadxVti0
>>900
マルチコアCPUが普通だから、欲しいのは
同時に動かんマルチスレッドではなく
同時に動くマルチスレッドだからな。

Ruby、JavaScriptと言った他のスクリプト言語でも
同時に動かんマルチスレッドなのかな
911デフォルトの名無しさん (ワッチョイ 230c-yvGd)
垢版 |
2022/05/14(土) 19:57:24.63ID:Z9o6dlRH0
>>909
yamlはインストールした? pipからじゃなくて、ソースに書いてあるURLからダウンロードしてインストールだよ。
インストール後、exeを再作成した?
912デフォルトの名無しさん (ワッチョイ 230c-yvGd)
垢版 |
2022/05/14(土) 20:00:21.13ID:Z9o6dlRH0
https://www.python-izm.com/third_party/executable/py2exe/
stup.py に 'bundle_files': 1 と書いてあれば単一ファイルになるのでlibrary.zipは不要。exeのみの持ち込みでOK。
913デフォルトの名無しさん (ワッチョイ 230c-yvGd)
垢版 |
2022/05/14(土) 20:02:05.32ID:Z9o6dlRH0
コマンドプロンプトで該当.pyファイルのあるフォルダーに移動。
> python ~.py
で表示されるエラーメッセージは?
2022/05/14(土) 20:06:53.07ID:XO4cGfGE0
マルチコアが活きるのは膨大な計算量の必要なかなり限定した用途だけで、
PCが重い原因は普通はI/Oが詰まってるだけだから、
待ち時間を無くすだけで高速化する
2022/05/14(土) 20:15:55.36ID:jzLnji7p0
計算量が重いならPythonを使うべきじゃない
2022/05/14(土) 20:16:11.96ID:xesr1KoTa
>>910
割と同時に動かんよね
まず需要があるのは非同期とかノンブロッキングってことだよね
2022/05/14(土) 20:37:14.90ID:+KadxVti0
>>916
pyrthon(スクリプト系言語?)で需要があるのはそれらで、
同時に動くマルチスレッドは需要があんまりないということで
Pythonの実装が楽な(?)同時に動かんマルチスレッドでいいやなんかな。
一方、C/C++と言ったバイナリを生成する言語なら同時に動くマルチスレッド
が出来るからな。まぁ、言語によって需要が違うからこうなるんだろうが。
2022/05/14(土) 21:09:13.65ID:snZyUFUoM
>>910
RubyもGILあるからPythonと同じ
JavaScriptは同時に動くけど起動や受け渡しのオーバーヘッドが大きいから
重いCPUバウンドな処理にしか使わない
2022/05/14(土) 21:52:06.99ID:+KadxVti0
>>918
そうなのか
>JavaScriptは同時に動くけど起動や受け渡しのオーバーヘッドが大きいから...
スクリプト系言語でも出来るようにすることはできるが、こんなもんになるから
使う用途が限られるってことか。
Pythonで同時に動くマルチスレッドを実現しても、スレッド間の受け渡しのオーバーヘッドが大きいとなると
マルチプロセスと変わらないからな
2022/05/14(土) 22:33:29.74ID:K0T2aHl10
教えてください
❕のosコマンドを読み込む方法を。

VSCode editorでJupiterの拡張子ipynbをローカルで実行するとき、!lsはエラーはかない
拡張子pyだと
!lsがエラーになる
.pyだと❕はことごとくエラーになる
windowsでAnacondaで作成したPython環境です
2022/05/14(土) 23:16:29.05ID:xesr1KoTa
javascriptこそ基本的にシングルスレッドやろ?
ばんばん割り込み使うけど
Web WorkderAPIとかいうのあるらしい
2022/05/15(日) 09:07:10.14ID:znmAnpzRH
JSはsetTimeoutとか使うと別スレッドであとでやってくれるんじゃないの?
2022/05/15(日) 10:02:05.44ID:PVwd+Za60
ネイティブとグリーンなスレッドを区別せんと話が交錯する
コンテキストの維持にネイティブスレッド利用してる実装はあるかもしれんけど
ややこしくなるから並列でスケジューリングはしてないはず
2022/05/15(日) 10:36:17.87ID:mtu4G8vxM
>>922
タイマー自体がホスト環境で実行されるだけでJSの実行スレッドはシングルスレッド
タイマー経過しても他の処理が実行中なら終わるまでコールバック関数は待たされる
2022/05/15(日) 12:41:52.49ID:jVQ55S+ha
>>923
でも真の並行動作が必要になる話もしとらんわけでどっちでもいいのでは
2022/05/15(日) 21:04:51.49ID:zhjKYdu2a
ngramを作りたいのですが文章が以下のようなlistで表されています
何かいい方法ありますか?

[’あいう’, obj, ’えお’]
ほしい結果 ('あ', 'い'), ('い', 'う'), ('う', obj), (obj, 'え'), ('え', 'お'),
2022/05/15(日) 21:11:11.14ID:AiBNhIbA0
全体を1つのリストにする
2022/05/15(日) 21:55:10.13ID:bRvN5HCO0
>>926
フラット化すれば後は簡単だと思うんだけどリスト直下の文字列以外は無視したのでいいのかな?
ネストしたものを考慮するかどうかで少し変わってくる

['あいう', 123, 'えお', ['か', ('き', 'く')], 'け']
2022/05/15(日) 22:44:35.48ID:bRvN5HCO0
両方書いてみた
https://ideone.com/2enXYU

リストをフラット化したり、1個ずらしで2個ずつとってきたりする機能は
toolz, more_itertools, numpyあたりに用意されてるからそれらを使ってもいいと思う
2022/05/16(月) 00:40:08.91ID:49LvMWE9a
>>929
ありがとうございます!
ネストは考慮したくないので単純にフラットにしたので期待した操作ができました!
931デフォルトの名無しさん (ワッチョイ bbb1-3gAf)
垢版 |
2022/05/16(月) 20:37:02.35ID:dlvbRMBp0
>>929
普段からこの手の処理を書いてるの?
読んでけば理解できるが、ゼロから書けと言われたら書ける気がしないw
python特有なのかな?

多分自分が書いたら全く違う処理になりそうだよw
2022/05/16(月) 21:01:23.03ID:3PzofzKC0
teeが特殊
2022/05/17(火) 19:10:53.17ID:gaF/x0PY0
Ruby で書くと、

input_ary = [ "あい", 123, "お" ]

ary = input_ary.map do |elem|
# 文字列型なら、各文字を要素とする配列に変換する。
# "あい" なら、[ "あ", "い" ] となる
if elem.instance_of?( String )
elem.chars
else
elem
end
end
p ary #=> [ ["あ", "い"], 123, ["お"] ]

ary.flatten! # 配列を再帰的に平坦化する
p ary #=> [ "あ", "い", 123, "お" ]

result = ary.each_cons( 2 ).map( &:itself )
p result #=> [ ["あ", "い"], ["い", 123], [123, "お"] ]
934デフォルトの名無しさん (ワッチョイ cd01-Q+cg)
垢版 |
2022/05/18(水) 19:39:11.84ID:WYlOj8bL0
pysparkの動作速度。
誰かsparkつかってない?
教えてほしいんだが。
2022/05/18(水) 22:14:37.48ID:EJAEOBmF0
>>934
DBからのデータ取得は早いし大容量扱えるけど、その他は遅い印象(スペック引き出せてないだけかもだけど)
ググってもあんまり引っ掛からないしイマイチ
2022/05/18(水) 23:01:46.53ID:C6Pto4/B
def add(x: int, y: int) -> int:return x + y
アノテーションってエラーは吐いてくれないので
エディタやmypyなどでチェックするしかないですが
有名なフレームワークだと同じように書いた場合、エラーが出てくれますよね
あれは一体どういう仕組みなのでしょうか?
@app.get("/id/{id}")
def get(id:int):return id
的なやつです
functoolsのsingledispatchみたいな感じだと思ったので
要は引数の型アノテーション(コロン以下)を取得できればオーバーロードできるのではと思い
ソースみましたがさっぱりです・・
2022/05/18(水) 23:18:00.65ID:C6Pto4/B
レス直後改めてソース見たらそっこー見つかりました・・
__annotations__でいけました
解決はしていませんが。。
intとかだと引数と__annotations__をif文で比較すればいいのでしょうが
typingとか複雑なスキーマだった場合どうやっているのでしょうね
938937
垢版 |
2022/05/19(木) 11:55:39.36ID:7Ok4WfXJ
とりあえずFastAPIはpydanticのBaseModelで実装していることはわかりました
そのpydanticはtypingのForwardRefを使っていて
BaseModelでは__annotations__周りのコードがかかれており、ForwardRefでBaseModelのメソッドから評価しているのかなと思いました
結局、どのように評価しているのか根本的にはわかりませんでしたがBaseModelを使って型アノテーションの例外チェックをしているみたいです
from pydantic import BaseModel
class Model1(BaseModel):
a: int
class Model2(BaseModel):
a: str
print(Model1(a="1"))
#print(Model1(a="a"))
print(Model2(a="1"))
print(Model2(a=1))
#print(Model2(a=[]))
2022/05/19(木) 12:22:04.51ID:zcQaUz9ta
Python公式

Python 3.9.13 is now available
Python 3.9.13 is the final regular maintenance release.
2022/05/19(木) 14:02:10.03ID:zcQaUz9ta
バージョン,リリース日,サポート期限
3.7,2018年6月27日,2023年6月
3.8,2019年10月14日,2024年10月
3.9,2020年10月5日,2025年10月
3.10,2021年10月4日,2026年10月

バージョン確認方法
import sys
print(sys.version)
941デフォルトの名無しさん (ワッチョイ cd01-Q+cg)
垢版 |
2022/05/19(木) 14:23:05.37ID:uNWrRU3r0
>>935
ありがとう。
ではcudaの方が良い感じですか?
どうでしょうか?
2022/05/19(木) 14:30:27.30ID:KbRVZ9gAM
CUDAは単独ではSparkのように複雑な処理やデータフローを組めないし、
SparkはCUDAのように高速な行列計算を行えない
車とエンジンを比較してるようなもん
2022/05/20(金) 09:55:57.41ID:tr3h1nsfH
from tensorflow.python.keras.models import Sequential
from tensorflow.python.keras.layers import Dense,Activation
model=Sequential()
model.add(Dense(10000,input_dim=100))
model.add(Activation('relu'))
model.add(Dense(10000))
model.add(Activation('relu'))
model.add(Dense(10000))
model.add(Activation('relu'))
model.add(Dense(100))
model.add(Activation('softmax'))

というモデルがあったとします。
こうして得られたモデルのパラメータをわけあってちょっとだけ手動でいじって別のモデルに使いたいと考えています。
・パラメータをprintする方法
・別のモデルに手動で初期パラメータを設定する方法
を教えてください。
2022/05/20(金) 12:59:55.38ID:pMqfz0XLr
modelの.wetghtsとかで取り出せなかったっけか
2022/05/20(金) 14:13:12.03ID:iVTE9VAz
みなさんはもし漫画を描くことができたらpythonで何をしますか
2022/05/20(金) 14:20:43.14ID:3FWyk7VWH
>>944
ありがとうございます
取り出しは行けました
別のモデルに手動で初期パラメータを設定するのは何かメソッド等ありますか?
2022/05/20(金) 14:58:22.19ID:cuRf9eeIH
すみません、自己解決しました
get_weightsとset_weightsがあるようです
2022/05/21(土) 13:37:02.16ID:8Ju6XIuB
予定をデータベースに登録するとき
ざっくり
・予定の内容
・予定の期間(始まりの日付け、終わりの日付け)
がありますが
始まり(start)と終わり(end)をdatetime型で管理するときにふと疑問に思いました

(1)始まりを指定しない or (2)終わりを指定しない
場合です

予定表の場合は、
(1)は登録するときのジャスト現在時刻を登録すればいいと思いますが
(2)はどうすればいいでしょうか
ようは有効期限と同等だと思いますが
100年先とか適当な感じでいいのでしょうか?
そういうときのためのdatetimeの機能とかあるのでしょうか
2022/05/21(土) 13:49:38.07ID:x3bK44aYM
ユースケース次第と思うけど、datetime.datetime.maxでも入れとけば
2022/05/21(土) 13:58:12.12ID:SHDUAMhd0
既存の型だけでやりくりしようとしないで、必要に応じて細かいクラスをどんどん作る
2022/05/21(土) 14:00:53.61ID:8Ju6XIuB
>>949
なるほどdatetime.maxなんてあったんですね
>>950
フロントでdatetime形式で渡してそのままバリデーションしてそのままDBに突っ込めるのが便利すぎて・・

ありがとうございました
2022/05/21(土) 14:10:19.78ID:RTc6KxVS0
ふつうにNULLでいいと思うが
2022/05/21(土) 14:15:23.59ID:8Ju6XIuB
NullだとDBで範囲検索するときうまくいきますかね?
やってないのでわかりませんが
予定表の場合だと範囲検索は
・現在の予定
・○月○日の予定
くらいがあったら便利かなと思いますが
Model.end>現在時刻
でendがNULLの場合をインデックスしてくれているのだろうか
2022/05/21(土) 14:35:41.88ID:8Ju6XIuB
・start有りend有り
・start有りendヌル
しかないので、NULL除外してstartのみAND検索すればよさそうですね
startとendカラムが別なのでコードは増えそうな気はしますが。
あとフィールドにnullableパラメータとかあってNULL許可できるみたいですね
とりあえずは速度重視ではないので最大値入れとこうかなと思います
ありがとうございました
2022/05/22(日) 06:20:31.09ID:lhLxdVoY0
pytorchってGPU使えますか?
無理ならtensorflowへの移植は技術的に可能ですか?
2022/05/22(日) 07:24:00.43ID:gxbk5u350
使えるよ
957デフォルトの名無しさん (ワッチョイ 8b01-x6BW)
垢版 |
2022/05/22(日) 12:41:56.07ID:Vvp14yjP0
>>942
cudaとsparkの両方は使えるのでしょうか?
2022/05/22(日) 20:49:32.75ID:zMH227GC0
VSCodeでPython使ってるんですが、
書いた.pyファイルをVBSから実行したいです
現状VBSでRunすると、VSCodeが立ち上がってしまいます
立ち上げずにスクリプトだけ実行するにはどうしたらいいでしょうか?
2022/05/22(日) 22:02:55.40ID:ogbPljd8M
run "*.py" を run "python *.py"にしてみたら?
960デフォルトの名無しさん (ワッチョイ 9768-UZt5)
垢版 |
2022/05/23(月) 14:13:45.73ID:LMDaYFlt0
例えばソースファイルmain.pyとsub.pyに分割すると、
mainからsubのモジュールを呼ぶと、sub.pycというファイルが生まれてしまいます。
ソースファイルの数だけ生まれるので、作業ディレクトリ圧迫されて、凄く邪魔です。
pycを生まれないようにするには、やはり分割せずにmain.pyに全部ソース書くしかないでしょうか?
2022/05/23(月) 14:21:38.20ID:1ZLz7aPq0
-B
2022/05/23(月) 14:21:40.70ID:j4WhKttLM

https://docs.python.org/3/using/cmdline.html#envvar-PYTHONPYCACHEPREFIX
2022/05/23(月) 16:04:35.33ID:nk4O2XgB0
selenium使ってローカルなTLS1.0にアクセスしないといけないんだけど
最近ブラウザだとacceptInsecureCertsだけじゃもう通過出来なくなってるんだね
2022/05/23(月) 18:06:00.52ID:nlhWOO8h0
ここ、練習の出題とかもいいの?
965デフォルトの名無しさん (ワントンキン MM8a-XROD)
垢版 |
2022/05/23(月) 18:20:03.35ID:S7TTGh8zM
質問です。
Mac OS 10.12.6で、
Homebrew
pyenv
python3.8.12
をインストールして、

pyenv global 3.8.12
を入力しても、
パージョンが3.8.12
になりません。

最初から、もう一度やり直したいのですが、
インストールしたプログラムをアンインストールするだけで良いですか?
それ以外にしなければいけない事があれば
何をしなければいけないのか教えて頂けませんか?

よろしくお願いいたします。
2022/05/23(月) 20:23:35.69ID:QUIvXWU50
>>965
reinstallしてみたけどボトルに説明ないタイプやね
開発ツールだからREADME読まないアホのケアまでしてないぽい
2022/05/24(火) 01:54:54.53ID:Q5cvQH+R
サイトAがブラウザのクロスオリジン許可されていないので
自前のフロントエンド(javascript)からサイトAのAPIを使用することができません
なので対策として
自前で用意したサイトBのpythonのrequestsなりで、サイトAのAPIをfetchするようなサイトBのAPIを用意し
そのサイトBのAPIをフロントエンド(javascript)から叩いて
間接的にサイトAのレスポンスを取得することにしました
こういうのに特化したウェブアプリケーションフレームワークって無いでしょうか?

FlaskやdjangoやFastAPIとかでもちろん良いのですが
結局テンプレートエンジンを使うことになるのでサイトAの情報を間接的に取得するために用意しました感が強くて・・
理想的なのはstreamlitです
streamlitはすべてpythonでコーディングできるのでかなり理想的なイメージと近いです
例えば急にサイトAがクロスオリジン許可しました、となっても作ったものは無駄になりません。
しかし痒いところに手が届きません(reactと連携はできるものの)。
968965 (ワンミングク MM8a-XROD)
垢版 |
2022/05/24(火) 12:44:22.77ID:Nxyvd0exM
>>966
レスありがとうございます。

アホのケアしてないのは問題ではありませんが、
reinsttallを想定して、すべての設定などをオーバーライドするように作ってない方もアホの仲間ですねw
2022/05/24(火) 12:53:10.36ID:5H49uhzer
皆さんはpythonの組み込み関数の使い方を全部覚えるのに何時間かかりましたか?
2022/05/24(火) 13:05:26.82ID:TKQBzDOBa
おぼえてない
2022/05/24(火) 13:06:15.95
一通り目は通してるけど名前くらいをぼんやり覚えている程度
「こういうことやりたいな」というときに
「そういえばまさにそいういうの見たことがあったな」
で、改めてドキュメント調べる
探し物をしているときに、そもそもその探し物自体があったかどうかがわからないと
一生見つからないのでそういうときは他人に聞く
2022/05/24(火) 13:10:27.48
ライブラリ使うときも実践しなくてもいいので公式ドキュメントに一通り目を通しておいたほうがいい
あとあと「こういう機能ないのかよ・・」にかかる時間が無駄
ただそんなことしなくても、ぐぐれば一発で見つかることもほとんどだし
目を通すと言っても、チュートリアル、メソッド名・要約をチラッとみる程度
2022/05/24(火) 13:32:51.03ID:SBh7n6X/0
ちらっと見て、なるほど何かに使うのか判らん、で済ますと
必要な時になっても思い出せない
2022/05/24(火) 14:05:19.75
ドキュメントみるとわかると思うが
大抵の場合は何に使うかのスペニットくらいは添付してあるよ
それみてもわからんって場合ももちろんあるが
それは後発での詮索と学習スピードとのトレードオフな気がする
2022/05/24(火) 14:08:43.31ID:SBh7n6X/0
スペニットでぐぐると結構見つかるな
976965 (ワンミングク MM8a-XROD)
垢版 |
2022/05/24(火) 15:27:35.60ID:Nxyvd0exM
再インストールする前に、
原因を調べようと思います。

カレントディレクトリの位置によって
表示されるpythonバージョンが変わります。

xxxxxxx-no-MacBook-Air:~ xxxxxxx$ python3 --version
Python 3.8.3
xxxxxxx-no-MacBook-Air:~ xxxxxxx$ cd /usr/local/bin/
xxxxxxx-no-MacBook-Air:bin xxxxxxx$ python3 --version
Python 3.8.12

<質問>
(1)カレントディレクトリの位置によってバージョンが変わる原因は
 何が考えられますか?
(2)python3.8.12が、下記のディレクトリのどちらにもありません。
~/.pyenv/shims/
/usr/local/bin/
 どこにあるのでしょうか?
2022/05/24(火) 15:39:51.67ID:ZizwD7Xq0
>>976
ある意味その(1)を行うためのツールなんだけどな
https://github.com/pyenv/pyenv#understanding-python-version-selection
README読みたくないマンなの?
2022/05/24(火) 21:04:41.90ID:DOf3/3bW0
パッケージとライブラリって何が違うんですか?
2022/05/24(火) 21:18:31.54
ライブラリ
├パッケージ1
│ └モジュール1.py、モジュール2.py、、、
├パッケージ2
│  └モジュール1.py、モジュール2.py、、、


$ pip install ライブラリ名

sample.py
#import ライブラリ名
from ライブラリ名 import パッケージ名
#from ライブラリ名.パッケージ名.モジュール名 import メソッド名,変数名,クラス名など

print(パッケージ名.変数名)
print(パッケージ名.メソッド名())
print(パッケージ名.クラス名.メソッド())
2022/05/24(火) 21:20:17.42
訂正 >>979
print(パッケージ名.モジュール名.変数名)
print(パッケージ名.モジュール名.メソッド名())
print(パッケージ名.モジュール名.クラス名.メソッド())
2022/05/24(火) 21:24:27.81ID:SBh7n6X/0
pipのpはパッケージなのにインストールするものはライブラリ
2022/05/24(火) 21:47:09.17ID:ZizwD7Xq0
パッケージはPythonの言語機構で固有の定義があるけど
ライブラリは一般的なプログラム・データの塊という以上の意味はない(たぶん)
2022/05/24(火) 21:53:17.05ID:p95++fvf0
>>976
一番よくあるパターンは
/usr/local/bin
に python3 があって
PATH=.:/bin:/local/bin
とかの順番になっているとき
2022/05/26(木) 13:02:18.69ID:ueSB5H9+0
関数内で定義する関数を下にまとめて書けないものか
2022/05/26(木) 13:36:21.65ID:veL/wiLO0
動的にdefできる点と両立できる案があればだけど
その場で関数定義する流れだけど記述は前方ってややこしくない?
もう外に定義したらいいやん
2022/05/26(木) 13:41:28.23ID:ueSB5H9+0
外に定義すると渡すものが増える
2022/05/26(木) 13:59:43.80ID:veL/wiLO0
参照渡すだけのラッパーにして実体は外に定義くらいしか思いつかん

とりあえず次スレ

Pythonのお勉強 Part67
http://mevius.5ch.net/test/read.cgi/tech/1653540315/
2022/05/26(木) 14:05:00.07ID:DyFcjWmt
デコレータじゃだめなん
2022/05/26(木) 14:35:45.33ID:ueSB5H9+0
似たような処理が並んでるな、という時にひとまとめにしたいだけなので、
処理にはその関数内でしか参照できない変数がいろいろ混ざってる

関数化するのではなくてループにするのが正解なんだろうな
990976 (ワンミングク MM8a-XROD)
垢版 |
2022/05/26(木) 15:44:16.70ID:N4d5MSfLM
>>983
レスありがとうございます。
下記について教えて頂けませんか?

pyenv versionsコマンドを入力しますと
3.8.12と
3.8.3
が表示されるのですが、

/Users/xxxxxxx/.pyenv/shimsには、
python3とpython3.8はあるのですが、
python3.8.3も、python3.8.12もありません。
他のディレクトリにもありません。
python3.8.12は、どこにあるのでしょうか?
pyenvの中の管理情報だけあってインストールされていないのでしょうか?


xxxxxxx-no-MacBook-Air:~ xxxxxxx$ ls /Users/xxxxxxx/.pyenv/shims
2to3 pip python-config
2to3-3.8 pip3 python3
easy_install pip3.8 python3-config
easy_install-3.8 pydoc python3.8
idle pydoc3 python3.8-config
idle3 pydoc3.8 python3.8-gdb.py
idle3.8 python
2022/05/26(木) 15:52:20.98ID:E/OEfc7Z0
$ which python3.8.3
$ which python3.8.12

では出てこないのか?

$ find / -name python -print

では大げさすぎるかな
2022/05/26(木) 16:21:37.89ID:veL/wiLO0
>>990
バージョンが変わるディレクトリに移動したら
$ pyenv which python

pyenvに限らんけどええかげんREADME読む癖つけんとずっとそのままだよ>pyenv
993990 (ワンミングク MM8a-XROD)
垢版 |
2022/05/26(木) 20:09:20.27ID:N4d5MSfLM
>>991
レスありがとうございます。
>$ which python3.8.3
>$ which python3.8.12
では、何も出て来ませんでした(エラーメッセージも)。

>$ find / -name python -print
で、
/Users/xxxxxxx/.pyenv/versions/3.8.12/bin/python
/Users/xxxxxxx/.pyenv/versions/3.8.3/bin/python
が出て来ました。

以下推測ですが、
python3.8.3や、python3.8.12という名前のpython実行ファイルはなくて、
どのバージョンも皆同じ「python」という名前の実行ファイルが
バージョン名のディレクトリの下にあるみたいです。
多分「pyenv global バージョン」を入力すると
該当バージョンのpythonをpython3という名前で
/Users/xxxxxxx/.pyenv/shimsの下にコピー(上書き)して、
/Users/xxxxxxx/.python-versionに
そのバージョンを書き込んでいるのではないかと思います。

それが正しく処理されないのが、問題なのですが…

>>992
レスありがとうございます。
README読んでみます。
2022/05/26(木) 21:07:11.74ID:E/OEfc7Z0
bashだったら

$ python

の最後でタブを打つとpyhtonで始まるすべての実行fileが画面に表示されるよ

/Users/xxxxxxx/.pyenv/versions/3.8.12/bin/python
/Users/xxxxxxx/.pyenv/versions/3.8.3/bin/python

この二つのpythonがリンク関係になっているのかどうかだな

$ ls -l /Users/xxxxxxx/.pyenv/versions/3.8.12/bin/python /Users/xxxxxxx/.pyenv/versions/3.8.3/bin/python

で実体が見えるよ
995990 (ワンミングク MM8a-XROD)
垢版 |
2022/05/27(金) 05:44:56.78ID:d4s+XaY6M
>>994
やってみました。
xxxxxxx-no-MacBook-Air:~ xxxxxxx$ python
Python 3.8.3 (default, May 6 2022, 18:20:17)
[Clang 9.0.0 (clang-900.0.39.2)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>

xxxxxxx-no-MacBook-Air:~ xxxxxxx$ ls -l /Users/xxxxxxx/.pyenv/versions/3.8.12/bin/python /Users/xxxxxxx/.pyenv/versions/3.8.3/bin/python
lrwxr-xr-x 1 xxxxxxx staff 9 5 23 16:30 /Users/xxxxxxx/.pyenv/versions/3.8.12/bin/python -> python3.8
lrwxr-xr-x 1 xxxxxxx staff 9 5 6 18:21 /Users/xxxxxxx/.pyenv/versions/3.8.3/bin/python -> python3.8

3.8.12のpythonも、3.8.3のpythonも、
同じ「python3.8」へのリンクになっていて、
実行ファイルはPython3.8.3しかありません。

どういうことでしょうか?
3.8.12のディレクトリを削除して、
3.8.12を再インストールすれば良いのでしょうか?
2022/05/27(金) 08:50:31.27ID:y6pvVtBw0
macはそんなややこしいことをしてはいけない製品な気がする
997デフォルトの名無しさん (アウアウウー Sac7-JRnb)
垢版 |
2022/05/27(金) 10:54:31.30ID:WAiF0+rwa
公式ってMac用のインストーラー配布してなかったっけ
998デフォルトの名無しさん (ワッチョイ 97f6-8jyA)
垢版 |
2022/05/27(金) 11:09:24.65ID:S0cy91Tb0
print(sys.path)
2022/05/27(金) 11:22:16.93ID:y6pvVtBw0
macでpythonはプリインストールでしょ
2022/05/27(金) 11:36:44.57ID:zOBEp9hN0
python2がプリインストール
homebrewでpython3入れてzshの設定ファイルでパス通した記憶はある
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 192日 16時間 37分 1秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


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

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

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

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

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