X



【まず1嫁】くだすれPython(超初心者用) その58
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
垢版 |
2022/09/07(水) 10:33:53.50ID:RjZl78eW
当スレに★Python以外のプログラミング言語での回答類を書くべからず★
派生言語はそれぞれ専スレがある(この板にあるとは限らない)ので、そっち池。
「Ruby」「Rails」「某言語では」「クソチョンw」をNGワード登録推奨。荒らしは、完全スルー放置が一番きらいです。

このスレッドは「お勉強」スレのほうには書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を、勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますので、お礼は Python の布教と初心者の救済をお願いします。

★エラーを解決したい場合★は、
  表示されたエラーの全文(勝手に省略やスクショうp等の横着クソ行為禁止)と、
  実行環境(Pythonのバージョン・OSとIDEの種類およびバージョン)をシッカリ書くこと。

Pythonの★ソースコードをそのまま5ちゃんに貼るとインデントが崩れてチヌ★
【【【複数の連続半角スペースはなにもなかったことにされる&タブは普通には入れられない】】】掲示板の仕様なので、
プログラム文は↓等の、いわゆるコードうp用サイトに貼ってこいください。
ttps://techiedelight.com/compiler/  Run Code機能あり。
ttp://ideone.com/      デフォ設定はC用のため、言語選択ボタン押下がピコ手間かも。
ttp://codepad.org/      ほぼ直感的に使える。Run codeボタンあり。
ttp://pastebin.com/     まずまずシンプル。
ttp://dpaste.com/      とてもシンプル。消えるまでの日数は十分長ーく指定のこと。

◇Python公式◇ http://www.python.org/
◇まとめwiki◇ ttp://python.rdy.jp/wiki.cgi

〇前スレ〇
【まず1嫁】くだすれPython(超初心者用) その57
https://mevius.5ch.net/test/read.cgi/tech/1653225908/

次スレたては >>985 あたりが挑戦する。
### END OF TEMPLATE ###
0002デフォルトの名無しさん
垢版 |
2022/09/07(水) 11:35:39.53ID:qXGMoApv
>>1
スレ立てありがとうございます

批判する人も多いが安心のPython
でも昨今はforより内包が絶対とか堅苦しくなってきた?
0003デフォルトの名無しさん
垢版 |
2022/09/07(水) 12:59:31.35ID:ohzPpuvh
素朴な疑問なんですが、requestsが非同期IOに対応しないのは何か理由があるのですか?
aiohttp使えばいいんでしょうが、requests使い慣れてるからそれで使えると良いなと思ったのですが。
0004デフォルトの名無しさん
垢版 |
2022/09/08(木) 09:43:50.19ID:JEMfdspa
なんでワッチョイ入れなかったの
0005デフォルトの名無しさん
垢版 |
2022/09/08(木) 09:44:43.15ID:JEMfdspa
>>2
>forより内包が絶対

だれがそんなこと言ってるの?
0006デフォルトの名無しさん
垢版 |
2022/09/08(木) 10:22:42.20ID:ydRaiFc9
>>3
使う側からすると機能追加で済みそうだけど
同期前提でつくっている実装を非同期対応すると構造全体の見直しになる
品質考えるとインターフェース一新した別物つくるのが賢明
たぶんね
0011デフォルトの名無しさん
垢版 |
2022/09/09(金) 10:35:14.40ID:W3oPAfkb
質問者自身何が何だか分からない質問です
tps://github.com/megadose/holehe
これを普段 holehe test@gmail.com で使用しているのですが
下記の意味が分かりません
tps://i.imgur.com/pnV1NLw.jpg
tps://i.imgur.com/fb7c0F1.jpg
・どこで何をしたらこうなるのかも分からないのですがpythonと書いてあったのでここに来ました
・1枚目の処理を実行すると2枚目の内容が出力されるのですか?

このツールは普段の使い方だとアカウントの有無しか分かりません
しかし画像のようにもっと細かく分かるなら是非やってみたいと思い質問させて頂きました
低レベルで申し訳ありませんが何卒宜しくお願い致します
0012デフォルトの名無しさん
垢版 |
2022/09/09(金) 13:13:33.89ID:CwUslwUl
あってるけど、ぱっと見いろいろオプションが用意されてるみたいだからまずはそれを試したら?
holehe --help
0013デフォルトの名無しさん
垢版 |
2022/09/09(金) 13:49:32.03ID:jKVuPW1r
>>12
ありがとうございます。早速ヘルプの内容を確認してみましたが
これらのオプションを使っても検索結果が拡充される事はなく、情報の色を変えるか変えないかであったり
調査にあたって危険な方法を試さず、より安全に探索するような指示であったり
あくまで基本的な探索オプションでしかありませんでした。

やはり画像のような "emailrecovery"や"phoneNumber"などもう一歩踏み込んだ情報を得たいので
Python Example・Module Outputの機能についてご教示頂けませんでしょうか。
これは難しいから初心者には無理、といった事でも構いませんのでよろしくお願い致します
0014デフォルトの名無しさん
垢版 |
2022/09/09(金) 14:36:55.61ID:JuiP0Vqf
pandasで下記Aの様に列などを指定すれば文字列を含む場所を抽出できますが、
Bの様にdf全体に対して抽出することは可能でしょうか?

A: df[1].str.contains('\d')
B: df.str.contains('\d')
0015デフォルトの名無しさん
垢版 |
2022/09/09(金) 16:09:37.11ID:CwUslwUl
>>13
コードをコピってファイル(拡張子py)に保存して
python3 保存したファイル名

csvオプションでも全部吐き出しそうな雰囲気だったけども
0016デフォルトの名無しさん
垢版 |
2022/09/09(金) 22:19:16.88ID:jKVuPW1r
>>15
ありがとうございます、できました!対象のメールアドレスのせいもあってか
知りたかった情報は得られませんでしたが理屈が分かったので後は調べて頑張ってみようと思います

ついでにもう一つ宜しいでしょうか。当方Windowsなのですが
皆さんpython3 hogeで動かしてるのに自分のPCではpy hogeまたはpython fugaでないと動きません
これはこういうもんで、動いてるならあまり深く気にしなくてもよいでしょうか?
0017デフォルトの名無しさん
垢版 |
2022/09/09(金) 23:59:59.52ID:0OeV3J7Z
>>16
デプロイする事を考えたら環境構築を考えるのは必須事項
そうではなくて自分の環境だけでいいなら気にしなくていいんじゃない
0018デフォルトの名無しさん
垢版 |
2022/09/10(土) 16:13:01.34ID:+SaBrB2M
今は取り急ぎ自分の環境だけで大丈夫なので気にしない事にします
ご親切にありがとうございました!
0022デフォルトの名無しさん
垢版 |
2022/09/12(月) 01:06:46.85ID:68UfXJln
おしえて下さい!
pandasで下のデータ「file_csv」を呼び出し
import pandas as pd
data = pd. file_csv(file_path)

id, age, day, cmp, gender
0 1 , 25, 3, abc, 1
1 2 , 34, 5, def, 0
2 3 , 22, 10, abc, 0
3 4 , 38, 7, def, 1
4 5 , 67, 0, def, 1

genderのカラム名を「flag」に変更し、
(age >= 30) & (age < 60)に該当する
カラム「day」「cmp」を
ヘッダーあり、インデックスなしで
csvファイル出力したい場合

どんな組み合わせになるのでしょうか…
1つずつは何となく出せたのですが、
if、locをあれこれ組み合わせて試行錯誤のしつつ躓いてます。
Dataflame型について、まだ十分に理解しきれてないです。

以下は試してみた分です
rename(columns = "gender": "flag")
(data["age"] >= 30) & (data"age"] < 60)
to_csv("ファイル名", index = False)

どうか宜しくお願いします。
0023デフォルトの名無しさん
垢版 |
2022/09/12(月) 09:58:32.42ID:CU+mTlE/
>>22
data.rename(columns={"gender":"flag"}).query("30<=age<60")[["day","cmp"]].to_csv("data.csv",index=False)
0026デフォルトの名無しさん
垢版 |
2022/09/12(月) 16:01:06.53ID:ZYIHBGky
>>14
df.apply(lambda x: x.str.contains('\d'))
でもいけた
0028デフォルトの名無しさん
垢版 |
2022/09/12(月) 17:24:19.42ID:N+Kuf5DB
>>26
できました!
ありがとうございます。助かりました。>df.apply(lambda x: x.str.contains('¥d'))
0029デフォルトの名無しさん
垢版 |
2022/09/12(月) 19:25:13.11ID:hB83BsQt
>>27
str.contains自体はstrに変換できるSeriesの各要素にcontainsを適用して同じ要素数のboolのSeriesにするだけで、
抽出自体はしないぞ
0030デフォルトの名無しさん
垢版 |
2022/09/13(火) 21:44:52.80ID:XIdQ2ouV
開発してるアプリ毎に仮想環境を作ってるのですが、どのアプリがどの仮想環境を使うのかがいまいち覚えられず
悩んでます

VS.codeとかを使える場合はそれらに任せているのですが、単品で動かす場合はやはり困ることもあります

スクリプトを実行する際に、自動的に仮想環境を選ばせる方法はありますか?

いっそのこと仮想環境のディレクトリ内にスクリプト類も配置すれば分かりやすいかなとも思ってますが、あまりよくないのでしょうかね…
0031デフォルトの名無しさん
垢版 |
2022/09/13(火) 21:53:14.84ID:1AIE6kXZ
> 仮想環境のディレクトリ内にスクリプト類も配置
それ以外にどうやってるのいま?
0032デフォルトの名無しさん
垢版 |
2022/09/13(火) 23:47:45.02ID:0WYEp+x7
>>30
>どのアプリがどの仮想環境を使うのかがいまいち覚えられず
プロジェクト内に作成した仮想環境を使うだけだし、覚える必要ないでしょ

https://packaging.python.org/en/latest/tutorials/packaging-projects/#creating-the-package-files
この例だとsrcとかtestsと同じ階層に仮想環境作ってそれを有効にするだけ

flaskのチュートリアルでの例
https://flask.palletsprojects.com/en/2.2.x/tutorial/layout/#project-layout

自分はvenvだとモジュール名と同じでなんか嫌だから、作るときはenvっていう名前にしてるけど
0034デフォルトの名無しさん
垢版 |
2022/09/15(木) 01:36:19.90ID:ETpDUkd1
引数をもつデコレータがある場合、関数を呼び出すごとにデコレータの引数を変える(与える)にはどうしたらよいでしょうか?
たとえば以下のような、retryモジュールのデコレータは、試行回数などを引数に与えますが、状況に応じてその回数を変えたりしたいです

@retry(tries=5, delay=1)
def function(**kwargs):
____:

簡単なやり方があると良いのですが・・
0035デフォルトの名無しさん
垢版 |
2022/09/15(木) 02:24:06.95ID:98Edt8bg
def function(tries=5, delay=1, **kwargs):
__@retry(tries, delay)
__def inner(**kwargs):
____pass:
__return inner(**kwargs)
0036デフォルトの名無しさん
垢版 |
2022/09/15(木) 12:20:37.83ID:Mk+PxLE/
func=retry(tries=5,delay=1)(function)
0037デフォルトの名無しさん
垢版 |
2022/09/15(木) 17:51:12.51ID:ETpDUkd1
>>35 >>36
ありがとうございます。
なるほど、デコレータをさらに関数で囲えばよいということですね。
勉強になります。
0038デフォルトの名無しさん
垢版 |
2022/09/16(金) 09:42:35.71ID:IG7NLL2G
meboっていうチャットボット用のAPIを操作したいのですが
単純なAPIが使えなくて挫折してます。

meboHP: https://mebo.work/
meboAPIのAI構築について:https://zenn.dev/makunugi/books/f3d9eb62b6d133/viewer/f0c36f

環境
google colab(Python 3.7.14)

コード
https://pastebin.com/jjDUXv4h

現在の出力
rpc error: code = InvalidArgument desc = Document name "projects/mabo-f1cc7/databases/(default)/documents/bots/" has invalid trailing "/".

サーバーからのステータス
<Response [500]>
0040デフォルトの名無しさん
垢版 |
2022/09/18(日) 16:40:03.27ID:oIU/CVXy
自分で定義したクラスから作ったインスタンスを要素に持つリストから、
そのクラスの持つ属性だけを用いて目的のインスタンスを検索する方法ってありますか?
知っている方がいたら教えて頂きたいです
よろしくお願いします
004240
垢版 |
2022/09/18(日) 18:57:15.84ID:oIU/CVXy
>>41
分かりました
ありがとうございました
004340
垢版 |
2022/09/18(日) 19:15:24.64ID:oIU/CVXy
すいません、もう1つ初歩的なことをお聞きしたいのですが、
ネストが深くなって、型ヒントを付けると79文字に収まらないので
仕方なくカットしたのですが、79文字を超えても型ヒントを付けるべきでしょうか?
0044デフォルトの名無しさん
垢版 |
2022/09/18(日) 20:08:25.35ID:m9ZYpqjQ
>>43
ネストを浅くするという選択肢は無しですか?
004640
垢版 |
2022/09/18(日) 22:00:10.71ID:oIU/CVXy
レスありがとうございます

>>44
これ以上はきついです
全体をdefで囲って、その中にclassを定義して、その中にインスタンスメソッドを
定義する必要があるからです(現状ネスト6重)

>>45
慣習みたいなものだと捉えています(インデントは空白4文字、のような)
79文字を超えるとpycodestyleでも引っ掛かります
0048デフォルトの名無しさん
垢版 |
2022/09/18(日) 22:31:15.96ID:m9ZYpqjQ
>>45
PEP8

>>46
>全体をdefで囲って、その中にclassを定義して、その中にインスタンスメソッドを
>定義する必要があるからです(現状ネスト6重)
なんで?
0049デフォルトの名無しさん
垢版 |
2022/09/18(日) 22:44:35.75ID:m9ZYpqjQ
型ヒントを書くこととPEP8を守ることを強いられてる状況でどちらを無視していいですかって聞かれても答えなんてないよ
0050デフォルトの名無しさん
垢版 |
2022/09/18(日) 23:07:19.20ID:m9ZYpqjQ
PEP8の79文字制限の理由ってデバイス上の文字数制限から複数のファイルを並べて開くことに変わってるんだね
今初めて知ったわ
0051デフォルトの名無しさん
垢版 |
2022/09/18(日) 23:12:03.52ID:m9ZYpqjQ
デバイスが理由の制限なら、PEP8の79文字別に守らなくてもいいと思ってたのに
005240
垢版 |
2022/09/18(日) 23:21:48.72ID:oIU/CVXy
レスありがとうございます

>>47
そうなんですね
if __name__ == '__main__': の使い方について調べてみようと思います

>>48
クラス内にインスタンスメソッドを定義するのは分かって貰えると思います
あとは以前友人に、グローバル変数はなるべく使わない方がいいと指摘されたので、
全体をdefで囲みました

>>49
そうですか、困りました…
型ヒントは努力目標だと思っているので、今回は切りました
変数名から型はすぐに予想が付くはずなので
0054デフォルトの名無しさん
垢版 |
2022/09/20(火) 08:50:13.39ID:2fXkGtCj
率直に申し上げると設計が間違ってる
0055デフォルトの名無しさん
垢版 |
2022/09/20(火) 17:23:28.05ID:2jStgl9j
aiohttpのsession.get()ってなんで、async with で書くのでしょうか?
単に response = await session.get()
でもよいような気がするのですが、何か必要な後処理があるのですか?
0056デフォルトの名無しさん
垢版 |
2022/09/21(水) 06:21:14.49ID:Zz0+MRiM
if( !(10 <= n && n <= 20) ){}
pythonで↑の条件作るにはどう記述すればいいですか?

if not 10 <= n and n <= 20 だと違う条件になるよね?
0058デフォルトの名無しさん
垢版 |
2022/09/21(水) 07:09:14.26ID:757dNGj4
>>56
素直に
if not (10 <= n and n <= 20)
だとダメなの?
Python だと
if not (10 <= n <= 20)
でもいける
括弧を使うことはまかりならんとご先祖様に言われてるなら>>57の言うようにド・モルガン使って
if n < 10 or 20 < n
でいいかと
0059デフォルトの名無しさん
垢版 |
2022/09/21(水) 08:50:12.50ID:Zz0+MRiM
>>58
普通に()でくくれるんですね
pythonのifやforは()使わないのでそっちに意識引っ張られてました
ありがとうございます。
0060デフォルトの名無しさん
垢版 |
2022/09/21(水) 09:51:53.99ID:OzlWXNmH
>>56
10<=n and n<=20は
10 <= n <= 20 でもおk
0061デフォルトの名無しさん
垢版 |
2022/09/21(水) 18:14:53.47ID:E8IgYMeH
>>58
if 20 < n < 10: まで進化すると嬉しいな
0063デフォルトの名無しさん
垢版 |
2022/09/24(土) 15:30:33.33ID:lPRg1Z9G
seleniumでのスクレイピングの処理を書いたpythonファイル1.py、2.py、3.py、4.pyを5.pyに下記の記載をして、
exec(open("1.py").read())
exec(open("2.py").read())
exec(open("3.py").read())
exec(open("4.py").read())
の形で順に処理を行っているのですが、この処理をマルチプロセスを使用して並列処理ってですか?

1.py〜4.pyはそれぞれ別のサイトからクローリングする内容で並列処理をしても過アクセスにならない状態です。
0068デフォルトの名無しさん
垢版 |
2022/09/24(土) 21:48:49.63ID:lPRg1Z9G
>>63
やってみたい内容はseleniumをマルチプロセス?で並行処理したいです。

1.pyはamazonをスクレイピングする内容で、2.pyはビックカメラを、3.pyはヨドバシを、4.pyは楽天をスクレイピングする内容になってます。

5.pyを起動すると1.pyから4.py順に処理するかたちとなってます。

現状
1.py処理開始
↓1時間で処理完了
2.py処理開始
↓1時間で処理完了
3.py処理開始
↓1時間で処理完了
4.py処理開始
↓1時間で処理完了
合計4時間で処理終了


やりたいこと
1.py~4.pyを同時に処理開始
↓1時間で処理完了
合計1時間で処理終了
0069デフォルトの名無しさん
垢版 |
2022/09/24(土) 22:46:02.65ID:8t4kL4/n
なんの環境か知らんけどって書かれているように
まずなんの環境か書いたほうがええよ
0070デフォルトの名無しさん
垢版 |
2022/09/25(日) 01:04:37.22ID:owlv0jBA
シェルスクリプトとかDOSバッチファイルとかPowershellとかで、Pythonの外で並列に立ち上げる感じやね
0073デフォルトの名無しさん
垢版 |
2022/09/29(木) 21:33:42.74ID:pwfwLFeH
vscodeでjupyterの拡張機能いれて使ってたんだけど

from bs4 import BeautifulSoup
これを書くと
ModuleNotFoundError: No module named 'bs4'
となってエラーになる
普通に.pyファイル内で書いて実行するのはエラー起きないから、jupyterのなんやかんやがおかしいんだろうけどよくわからない
0074デフォルトの名無しさん
垢版 |
2022/09/29(木) 21:40:33.62ID:pwfwLFeH
すまん解決した
jupyterの拡張機能入れると2つの環境ができるっぽい
jupyter上で普通にコードを打つみたいにpip listを実行すればjupyterでの外部ライブラリのインストール状況がわかるんだな
そっち見たらBeautifulSoup4が欠けてた
0075デフォルトの名無しさん
垢版 |
2022/09/30(金) 15:18:46.35ID:SCTplp27
公式Python+PyCharm(ともに最新)を使っていて、PyCharmでF8キーでステップ実行をしてると、
ディスプレイがスリープモードになって、ディスプレイをOFF/ONしないと画面が復活しない現象が出てる。
ディスプレイはFHDと4Kのマルチで4K側がOFFになってしまう。
pythonのスクリプトはseleniumでChromeを動かすもので、Windowsのシステムをいじるものではないし、
イベントビューアーには何も出ない。
これってどこの悪いんだろう?
ビデオカード?ディスプレイ?PyCharm?
ディスプレイはHPの激安4Kの「HP V28 4K」
0076デフォルトの名無しさん
垢版 |
2022/10/02(日) 18:33:42.92ID:oEzc74vy
Windows上のPythonはどこから実行環境のタイムゾーン情報を取得していますか?
(環境: Windows10 Python 3.8)
素の状態でdatetimeでnative/aware、変換での時刻を取得表示すると以下のようになります
now_native = datetime.now()
-> 2022-10-02 18:14:56.061740 (=実際の日本時間)

now_aware_utc = datetime.now(timezone.utc)
-> 2022-10-02 09:14:56.061740+00:00

now_aware_local = now_aware_utc.astimezone()
-> 2022-10-02 18:14:56.061740+09:00

-----
しかし、下記TZ環境変数を追加すると、上記の値はそれぞれ以下のようになってしまいます
(全部UTCになり、astimezoneでもJSTに戻らない)
os.environ['TZ'] = 'Asia/Tokyo'
-> 2022-10-02 09:15:08.251324
-> 2022-10-02 09:15:08.251324+00:00
-> 2022-10-02 09:15:08.251324+00:00
(python上ではなく、OS側でTZを指定すると、なぜか夏時間分さらにずれます)

TZ無しだと正しく判別できている点と、TZありだとおかしくなる原因が知りたいです。
0077デフォルトの名無しさん
垢版 |
2022/10/02(日) 19:03:33.06ID:6gm07/Z2
ドキュメントによるとその形式はUNIX系だけなんじゃね?
"GMT+9"とかしてみれば
0079デフォルトの名無しさん
垢版 |
2022/10/02(日) 19:33:13.30ID:oEzc74vy
ありがとうございます。
環境変数が TZ=GMT-9 や TZ=JST-9 にしてみたところ正しく動きました(+9だとずれました)

なぜAsia/Tokyoの設定を書いたかと言いますと、
Google Firestoreにnativeなdatetime値をフィールドにセットすると、自動的にfirestoreのtimestamp型で保存されますが、
Asia/Tokyoでないと時刻がずれて保存されてしまいした。
ただ、よく確認したらTZ=Asia/Tokyoでも夏時間の+1時間ずれて保存されてしまっているようだったので、
素直にawareなdatetimeか、unixtime値で統一しようかと思います。
できれば、ローカル内ではタイムゾーン意識無し(datetimeもnative)で時刻を扱いたかったのですが。
0082デフォルトの名無しさん
垢版 |
2022/10/03(月) 11:27:44.02ID:BGisZcin
>>79
自分はログインするすべてのユーザーで起動時に TZ=JST-9 で動く様にしてる
まかせっきりにするより安定するから

>>78
pytz 便利だよね
0083デフォルトの名無しさん
垢版 |
2022/10/05(水) 20:07:09.37ID:0zm+Esby
(2^((2^(111-1))-1))*(2-(2^-2147483536))

https://ideone.com/3sxXF1

3.724173892452932703847578592653741500670543217015032981203746860583934456368392810496137951064109136E+390759275202710585594223439217007
になったんですが、誰か検算していただけないでしょうか?

なにしろ

(2^((2^(115-1))-1))*(2-(2^-4294967180))

https://ideone.com/MDO46W

1.369238871792785393062417227660788996255177387212550321383285600970027973012269329384152209543458491E+6252148403243369369507575027472121
誤差を発見したので。
0086デフォルトの名無しさん
垢版 |
2022/10/05(水) 20:57:07.65ID:0zm+Esby
これも確認お願いしたい。

log10(log10((2^((2^(115-1))-1))*(2-(2^-4294967180))))
https://ideone.com/jJgRf9
33.79602927803953145109997858464656262695562002580878769896892674125907270351639335872189806561303658

ウルフラム大先生は
(2^((2^(115-1))-1))*(2-(2^-4294967180))
https://ja.wolframalpha.com/input?i=%282%5E%28%282%5E%28115-1%29%29-1%29%29*%282-%282%5E-4294967180%29%29
10^(10^33.79602927803952)

と答えるが・・・。
0087デフォルトの名無しさん
垢版 |
2022/10/07(金) 12:37:25.78ID:d4ub3t4L
IEEE 754
GMP
MPIR
0088デフォルトの名無しさん
垢版 |
2022/10/08(土) 17:57:13.27ID:qEj00saR
>>83
mpmathをVSCodeにインストールして計算した結果、問題なかった。

しかしVSCodeでmpmathを使う場合、いちいちコンソールでpythonと入力し、
1行ずつ実行している。
普通にpythonのソースを実行するみたいにできないのでしょうか?
0089デフォルトの名無しさん
垢版 |
2022/10/08(土) 18:15:23.92ID:UY8pCVsr
>>88
コマンドパレットで
python
っていれてみ
あと使う言語の機能拡張の説明くらいは読んどこ
ぜんぶvscodeの話やけどな
0091デフォルトの名無しさん
垢版 |
2022/10/09(日) 17:22:36.55ID:4KZMQjJb
psycopg2とpandasについて質問です。
質問1
下記のコードにて5日前から今日までのデータを取得したいのですが、
エラーが出てしまいます。何か方法を教えてください。

↓エラー
指定した名称と引数の型に合う演算子がありません。
明示的な型キャストが必要かもしれません。

conn = psycopg2.connect('host=localhost port=5432 dbname=situmon user=situmon password=situmon')
c = conn.cursor()
kakuninbi = datetime.date.today()-datetime.timedelta(days=5)
df = pd.read_sql(sql=f'SELECT "date" FROM situmon.situmondb2 WHERE "date">{kakuninbi};', con=conn)

dateに入っているデータは前日とかにdatetime.date.today()で取得した日付を入れてます。
テーブル作成時のコードは下記です。
c.execute(f'''
CREATE TABLE IF NOT EXISTS amazon."amazon_item_info"(
"date" date,
"JAN" text
)
''')
質問2
conn = psycopg2.connect('host=localhost port=5432 dbname=situmon user=situmon password=situmon')
c = conn.cursor()
df = pd.read_sql(sql='SELECT "JAN" FROM situmon.situmondb2 WHERE NOT "JAN">none;', con=conn)
列"none"は存在しません

"JAN"には文字列で13桁の数字か"none"が文字列で入ってます。

何か取得できる方法があれば教えてください。
0092デフォルトの名無しさん
垢版 |
2022/10/09(日) 17:24:47.27ID:4KZMQjJb
(一部誤りがあったので修正です)
psycopg2とpandasについて質問です。
質問1
下記のコードにて5日前から今日までのデータを取得したいのですが、
エラーが出てしまいます。何か方法を教えてください。

↓エラー
指定した名称と引数の型に合う演算子がありません。
明示的な型キャストが必要かもしれません。

conn = psycopg2.connect('host=localhost port=5432 dbname=situmon user=situmon password=situmon')
c = conn.cursor()
kakuninbi = datetime.date.today()-datetime.timedelta(days=5)
df = pd.read_sql(sql=f'SELECT "date" FROM situmon.situmondb2 WHERE "date">{kakuninbi};', con=conn)

dateに入っているデータは前日とかにdatetime.date.today()で取得した日付を入れてます。
テーブル作成時のコードは下記です。
c.execute('''
CREATE TABLE IF NOT EXISTS situmon.situmondb2(
"date" date,
"JAN" text
)
''')
質問2
conn = psycopg2.connect('host=localhost port=5432 dbname=situmon user=situmon password=situmon')
c = conn.cursor()
df = pd.read_sql(sql='SELECT "JAN" FROM situmon.situmondb2 WHERE NOT "JAN">none;', con=conn)
列"none"は存在しません

"JAN"には文字列で13桁の数字か"none"が文字列で入ってます。

何か取得できる方法があれば教えてください。
0093デフォルトの名無しさん
垢版 |
2022/10/09(日) 22:28:02.26ID:8IIgp7pF
>>92
2つともクウォートの問題っぽいね
SQLをf-stringで組み立てるのはやめてプレースホルダーを使おう

pd.read_sql(sql='SELECT "date" FROM situmondb2 WHERE "date" > %s;', con=conn, params=(kakuninbi,))
pd.read_sql(sql='SELECT "JAN" FROM situmondb2 WHERE NOT "JAN" > %s;', con=conn, params=("none",))
0094デフォルトの名無しさん
垢版 |
2022/10/09(日) 22:54:48.71ID:t9JKJStV
>>88
VSCode の拡張機能・Code Runner で出来ないの?

右クリックメニューから、ファイル全体または選択したコード片を実行できる
0095デフォルトの名無しさん
垢版 |
2022/10/10(月) 05:06:49.79ID:t2iZA/Es
>>91
エラーの内容も出てるのに、これでもわからないような人はプログラミングはやめた方がいいよ
0096デフォルトの名無しさん
垢版 |
2022/10/10(月) 07:14:12.18ID:ST1YeHmA
>>93
ありがとうございます
いけました!
0097デフォルトの名無しさん
垢版 |
2022/10/10(月) 09:35:34.12ID:3yLYwmxt
>>93>>95の対応レベルの違いに鼻水噴いた
エラーメッセージって表面的なことしか指摘してくれないから
それ見て根本原因を見つけるのにはそれなりの経験とスキルが要るのよね
0098デフォルトの名無しさん
垢版 |
2022/10/10(月) 12:51:10.90ID:gz0/2IVP
なぜ、SELECT "JAN", WHERE NOT "JAN" と、列名を"〜"で囲むの?
囲む必要あるの?

'〜'は、文字列リテラルだけど、
"〜"は、かなりややこしい

>WHERE NOT "JAN">none
これは、WHERE NOT JAN > 'none' でしょ。
つまり、WHERE JAN < 'none' じゃないの?

'none' ではないのは、
WHERE JAN != 'none'
WHERE JAN <> 'none'

本当は、'none' よりも、NULL を使えば良かった

プロは、Ruby on Rails みたいなO/R マッパー・Place Holder を使う。
文字列を連結して使うと、SQL インジェクションされるので超危険
0099デフォルトの名無しさん
垢版 |
2022/10/10(月) 14:04:34.11ID:sJsMwDUU
>>98
> なぜ、SELECT "JAN", WHERE NOT "JAN" と、列名を"~"で囲むの?
列名(に限らず表名やビュー名等の識別子)は " " で囲むと空白とかを含む列名を指定できる、あと英字でも大文字小文字を区別するようになる
一昔前は漢字等でも囲む必要があったものもある
0100デフォルトの名無しさん
垢版 |
2022/10/10(月) 16:55:38.18ID:Xq5E773z
>>98
囲むのはdateが予約語でJANが大文字だから
JANをダブルクォーテーションで囲まないとpostgresは全部小文字に変換する
0101デフォルトの名無しさん
垢版 |
2022/10/10(月) 18:54:20.90ID:EzlpT+F/
このスレにも終わったRubyを持ち出すキチガイがいるのか
0102デフォルトの名無しさん
垢版 |
2022/10/11(火) 08:21:30.06ID:1t/lVmf9
https://www.youtube.com/watch?v=pdy3nh1tn6I&t=2439s
この動画の49:00~辺りで、while loopの最後に return -1 と記述している箇所があります。
return -1 にはどういう意味があるのでしょうか?

動画内で解説がなく、コメント欄に寄せられている質問にも回答が無い状態です。
お教えいただけると幸いです。
0103デフォルトの名無しさん
垢版 |
2022/10/11(火) 09:25:47.83ID:yOX375hU
>>102
動画見なきゃいけないのか・・・
URLは40分で、問題の箇所は49分とな・・・
しかも動画自体は3時間オーバーか・・・

ソースコードは転記してくれたらいいなぁ
https://ideone.com/oFTFLN

二分探索での結果、見つからなかったを表すために-1を返してるんじゃないかな
英語聞き取れないので違うかもだけど

あとどうでもいいけど、endの意味が途中から変わっててバグってる
0104デフォルトの名無しさん
垢版 |
2022/10/11(火) 09:35:13.11ID:1t/lVmf9
>>103
回答ありがとうございます。また、お手数かけてすみません。
whileループと return -1 は経験者なら分かる使い方なのかと思ってコードを省略してしまいました。
以後気をつけます。
0106デフォルトの名無しさん
垢版 |
2022/10/11(火) 15:07:01.27ID:+IdMirEn
>>105
なに言ってるんだよw
見つかったらlistの添え字
見つからなかったら-1
せっかく>>103が書き写してくれてるんだからコード見ろよ
0107デフォルトの名無しさん
垢版 |
2022/10/12(水) 23:04:39.44ID:UENmAu+H
任意の数の要素を持つリストをある数で初期化して生成したいんだけど
例えば、[-1, -1, -1, -1,-1]みたいなのを生成しようと思ったら
リスト内包表記で[-1 for i in range(5)]とやるのが一番シンプルかな?
0109デフォルトの名無しさん
垢版 |
2022/10/12(水) 23:29:22.91ID:UENmAu+H
>>108
あ、その手があったかマジTHX
てか、リストの演算とか基本だよな。なんでそれ見逃してたんやろ
0110デフォルトの名無しさん
垢版 |
2022/10/13(木) 11:23:55.91ID:mnydj+83
多次元リスト作る時に問題があるから内包表記を使ってる内に、一次元配列でも使うようになった
とか
0111デフォルトの名無しさん
垢版 |
2022/10/13(木) 14:14:04.52ID:mnydj+83
リスト
0112デフォルトの名無しさん
垢版 |
2022/10/16(日) 00:35:10.66ID:IrphczHF
seleniumで取得したhtmlからlxmlでスクレイピングしているのですが上手くいきません。
下記のような箇所があった場合に送料のみをスクレイピングしたいです。
<div class="_4XOXks36lqAR"><div class="Wc9xhLyHJ7_1 _9u8OtToEB0ql"><p class="_2DVqcNMgVZ15"><span class="_1yF7AMZ2DzcC">550</span><span class="_5apwL7hbOTJ8">円</span><span class="_2QEz7MA1vq6o">+送料550円</span></p></div></div>
<div class="_4XOXks36lqAR"><div class="Wc9xhLyHJ7_1 _9u8OtToEB0ql"><p class="_2DVqcNMgVZ15"><span class="_1yF7AMZ2DzcC">650</span><span class="_5apwL7hbOTJ8">円</span></p></div></div>
<div class="_4XOXks36lqAR"><div class="Wc9xhLyHJ7_1 _9u8OtToEB0ql"><p class="_2DVqcNMgVZ15"><span class="_1yF7AMZ2DzcC">740</span><span class="_5apwL7hbOTJ8">円</span><span class="zmh60VOMQOpy">送料無料</span></p></div></div>

souryou = [souryou.text_content() for souryou in html.cssselect('p._2DVqcNMgVZ15 > span:nth-child(3)')]
今得られる結果
['+送料550円', '送料無料']
欲しい結果
['+送料550円', '送料無料', '送料無料']

送料の記載がない箇所には送料無料を代入して取得したいのですが、
何かいい方法ありませんか?
0113デフォルトの名無しさん
垢版 |
2022/10/16(日) 08:06:17.10ID:P3u/guM2
内包表記せずにループで中身確認しながらリストにappendで追加で良さそう
今は2番目がスキップされてる状態だよね
0115デフォルトの名無しさん
垢版 |
2022/10/16(日) 08:18:07.27ID:sGqT+v7u
>>112
価格のテキスト全体を取ってそれを加工するとか

kakaku = [p.text_content().strip() for p in html.cssselect('p._2DVqcNMgVZ15')]
# ['550円+送料550円', '650円', '740円送料無料']
souryou = [re.search(r"送料.+", s) for s in kakaku]
souryou = [s.group(0) if s else "送料無料" for s in souryou]
# ['送料550円', '送料無料', '送料無料']

あらかじめ「送料無料」のSPAN要素を追加しておくとか

for p in html.cssselect('p._2DVqcNMgVZ15'):
    lxml.etree.SubElement(p, "span").text = "送料無料"
souryou = [souryou.text_content() for souryou in html.cssselect('p._2DVqcNMgVZ15 > span:nth-child(3)')]
# ['+送料550円', '送料無料', '送料無料']
0117デフォルトの名無しさん
垢版 |
2022/10/19(水) 20:21:20.98ID:fx6wlbL4
asyncio.Task使ってます
Task側でキャンセルされたか判断したいのですが
cancel()を呼んでもcancelled()はTrueにはなりません。
asyncio.sleepを呼んでいるとCancelledErrorが発生するのでこれで判断するってことでんでしょうか
0119デフォルトの名無しさん
垢版 |
2022/10/20(木) 05:01:50.81ID:WKKXn2E+
>>117
3.6以前のマニュアルだとコードサンプルがない代わりに補足されているけど
> このメソッドが呼び出された直後は cancelled() は True を返しません (タスクがすでにキャンセル済みの場合は除く)。
> ラップされたコルーチンが CancelledError で中止されたとき、タスクは (cancel() が呼ばれなかった場合でも) キャンセル済みとマークされます。

つまる所cancel()はするというか要求なので、対象のタスクに制御が移らないと反映されない
Taskの側でcancelされたか判断するならawaitしてる箇所でCancelledErrorの捕捉だろう
外側でもcancel()後は何かしらawaitする、対象のtaskをawaitした場合はCancelledErrorが発生する
協調的マルチタスクなので何れにしても譲り合いの精神
0120デフォルトの名無しさん
垢版 |
2022/10/20(木) 21:49:43.09ID:USlJAvnt
listA = "AAABBBCCC","DDDEEEFFF"
こういうリストからそれぞれを最初の3文字だけ取る場合っていちいち
listA[0][:3]
listA[1][:3]
ってやらないとだめなの? つまりfor文内でやるかんじ?
一括でできる方法あるの?
0121デフォルトの名無しさん
垢版 |
2022/10/20(木) 22:30:56.38ID:pNhy2w5w
>>120

> listA = "AAABBBCCC","DDDEEEFFF"
リストじゃなくてタプル

https://ideone.com/4PpCrp
高階関数とか内包表記使える
0123デフォルトの名無しさん
垢版 |
2022/10/22(土) 15:39:57.98ID:qZ/iI25s
プログラミングが長い為ここには書けませんでした。
7.gigafile.nu/1029-d987ca4deb3deafdb0df9198c08c32e58
上記のワードで書かれてますが
引用はコチラ。
rapids-ai/200-000x-faster-in-the-field-of-weather-analysis-with-cuda-python-numba-6ca03a694294
どうしてもエラーがでてしまいます。
お願いします。偉い人!
0124デフォルトの名無しさん
垢版 |
2022/10/25(火) 09:55:18.08ID:PmE1kXZ/
特定のサイトからデータを取得していたのですが、urlに()が入りました。
%28,%29 でエンコードしてもアクセスできません。何か方法はありますでしょうか。

http://a.com/(d(aaaa))/bbbbb

のようなurlです。

よろしくお願いします。
0125デフォルトの名無しさん
垢版 |
2022/10/25(火) 16:07:38.03ID:7A2ptHo2
どうやってアクセスしてるのかわからんけど
URLのエンコードなんて大概透過的に行われるので出来ないのは他の原因
0126デフォルトの名無しさん
垢版 |
2022/10/26(水) 09:11:50.60ID:j7HiGILU
CUDA Python (Numba) を使用して気象分析の分野で 200,000 倍高速化する
medium.com/rapids-ai/200-000x-faster-in-the-field-of-weather-analysis-with-cuda-python-numba-6ca03a694294

cudaのやり方がわかりません。

この20万倍の高速化をやりたい!
0127デフォルトの名無しさん
垢版 |
2022/10/26(水) 10:06:30.77ID:wzTCBV7y
>>126
めちゃ簡単そうじゃん、今度やってみよ。
具体的にどこがわからないの?
CUDAカーネル書かなきゃいけないんだったら理解できないってのもわかるけど。
0129デフォルトの名無しさん
垢版 |
2022/10/27(木) 00:12:49.83ID:fsnzTjBD
自分が書いたコードを、社会人の友人に批評してもらったら、
グローバル変数はあまり使わない方がいい(衝突する可能性があるから)
処理をぐるっとdefで囲んだ方がいい
と指摘されたんですが、クラスなどの定義部分も含めて全て囲った方が
いいでしょうか?
0131129
垢版 |
2022/10/27(木) 00:26:07.04ID:fsnzTjBD
>>130
レスありがとうございます

どんな感じで書くのがよいでしょうか?
0132デフォルトの名無しさん
垢版 |
2022/10/27(木) 00:30:17.64ID:0CNViBMq
よく知らんけど関数とクラスの集まりにして
トップレベルではmain()一発にすればいいんじゃない
0133デフォルトの名無しさん
垢版 |
2022/10/27(木) 00:50:38.01ID:HY0JJRbT
>>129
一人で趣味で書いてるんでしょ?
なら気にしなくてよい
自分の経験上、一人で書くコードで変数の衝突はあり得ない
自然と衝突しない名前を付けるものよ
0134デフォルトの名無しさん
垢版 |
2022/10/27(木) 14:28:54.97ID:dynbemGf
pythonでbluetooth通信を使おうとしたら、pybluezっていうライブラリが必要みたいなんだけど、GPLライセンスなので気軽に使えない...

Web Bluetooth APIってやつをpythonから呼び出す方法とかって無いですか?
0135デフォルトの名無しさん
垢版 |
2022/10/27(木) 16:57:06.02ID:B91uqICs
もちろん無い
言語さえPythonならいいんだったらPyScript使ってブラウザで動かせばWeb Bluetooth使えるだろうけど、
ブラウザで動かす時点で当然JavaScriptの知識は必須だから諦めて普通にJavaScript書いたほうが遥かに簡単で手っ取り早いよ
0136デフォルトの名無しさん
垢版 |
2022/10/27(木) 17:19:39.60ID:bJOX0XaJ
以下の4点を使わずに、PCとIoT機器で通信する縛りゲーがあったとしたら、どんな通信方法があると思いますか?

・クラウド
・Bluetooth
・Wi-Fiによるローカルネットワーク接続
・有線ケーブル
0137131
垢版 |
2022/10/27(木) 17:35:29.25ID:fsnzTjBD
>>132
ありがとうございます

メインの処理を大きな関数にして、その前にクラスや関数を宣言しておくって
表記法は良くないですか?

>>133
ありがとうございます

今は確かに趣味レベルですが、後々仕事にしたいと思ってます
なので今から本来の記述法を知っておきたいなと思いました
0138デフォルトの名無しさん
垢版 |
2022/10/27(木) 18:41:13.82ID:2LX/1yOU
そもそも、Pythonに真の意味でのグローバル変数は存在せず、衝突が問題になることはチーム開発でもまずない。
トップレベル(何にも囲まれていないという意味)で宣言された変数はモジュール変数といって、
そのファイル(モジュール)の外からアクセスする際には明示的にインポートするか、モジュール名で修飾する必要がある。
実際の開発ではプログラムを多数のモジュールに分割して作っていくため、衝突は心配しなくてよい。
でトップレベルの変数の問題は衝突よりも状態が共有されてしまうことにあって、その辺はPython云々というよりオブジェクト指向の基本を学んできたほうがいい。
0140137
垢版 |
2022/10/28(金) 00:18:09.86ID:wfZLZF+J
>>138-139
レスありがとうございます
参考にさせて頂きます
0141デフォルトの名無しさん
垢版 |
2022/10/28(金) 00:21:30.46ID:Rl5QKwW8
>>136
テレビのリモコンみたいな光通信とか、
任天堂みたいな赤外線リモコンとか

テレビのリモコンを作る記事は多い
0143デフォルトの名無しさん
垢版 |
2022/10/28(金) 01:33:50.96ID:/BO79IyH
>>136
QRコード表示してカメラで読み取る
0145デフォルトの名無しさん
垢版 |
2022/10/28(金) 03:25:10.09ID:6ugV0KGt
wifiやbtが発達してなかったころのガジェットは、PCとの通信は赤外線か音だったね。電波法に違反しない程度の微弱電波なんかも無線の設計が出来ればありかもねw
0146デフォルトの名無しさん
垢版 |
2022/10/28(金) 22:56:01.79ID:wfZLZF+J
sqlite3モジュール関連のexecuteメソッドで、SQLのUPDATE文を実行したら
警告が出てしまったのですが、これは使わない方がいいでしょうか?
0148デフォルトの名無しさん
垢版 |
2022/10/29(土) 12:38:21.67ID:c9+8csYL
1666882287427 -> "1番目"
1666882316853 -> "に番目"
1666882538457 -> "参番目"
1666882566231 -> "ヨン番目"
1666882574322 -> "V番目"
1666882595860 -> "6番目"

上のような連想配列から
1666882550000以下の物を降順で2つ取得 → "参番目" と "に番目"
このようなプログラム記述の方法を教えて下さい
デクリメントで総当りは負荷が高そうなのでNGです
0150デフォルトの名無しさん
垢版 |
2022/10/29(土) 13:32:30.54ID:Tq2/qUBq
keysをリストで取り出してnumpyに突っ込んでargsortして降順に2個インデックスを取り出して辞書にリスト[インデックス]でアクセスとか
0151デフォルトの名無しさん
垢版 |
2022/10/29(土) 13:46:06.14ID:J/RjufZS
OrderedDict
0152デフォルトの名無しさん
垢版 |
2022/10/29(土) 15:43:03.58ID:+W9Ulup+
>>149
bisectモジュールってし標準に入ってなかったっけ?
0153146
垢版 |
2022/10/30(日) 00:34:22.27ID:FRxBqbrT
>>147
うーん、分かりました
ありがとうございます
0154デフォルトの名無しさん
垢版 |
2022/10/30(日) 02:27:02.99ID:sWVHDylq
>>149
探索木だと降順って指定ができず近似値を持ってきてしまいませんか?

>>150
0 -> 1666882287427 -> "1番目"
1 -> 1666882316853 -> "に番目"
2 -> 1666882538457 -> "参番目"
3 -> 1666882566231 -> "ヨン番目"
4 -> 1666882574322 -> "V番目"
5 -> 1666882595860 -> "6番目"
知らない言葉ばかりだったんですけど要はこういう事ですかね?
これなら総当りでも負荷少なそうなのでやってみます!
0157デフォルトの名無しさん
垢版 |
2022/10/30(日) 13:37:40.91ID:YV/Jz1Xt
フィルタして、ソートして、スライスして、、、
って、コレじゃダメなんだろうか
result = sorted(filter(lambda x: x[0] <= 1666882550000, data.items()), key=lambda x: x[0], reverse=True)[:2]
print(result)
# [(1666882538457, '参番目'), (1666882316853, 'に番目')]
0158153
垢版 |
2022/10/30(日) 17:15:54.55ID:FRxBqbrT
>>155
レスありがとうございます

それが、さっき実行してみたらなぜか警告は出ず普通に出来てしまったんです
理由はよく分かりません
確か、「非推奨の機能であり、ver3.12で削除される」等と書かれていたような
気はしますが
一応そのコードを貼らせて頂くので、よろしければ読んで頂けると助かります
https://pastebin.com/s0rBifE7 (コード内のID・パスワードはサンプルです)
0159デフォルトの名無しさん
垢版 |
2022/10/30(日) 19:55:07.82ID:pkba5bNo
>>158
3.12で削除はsqlite3.OptimizedUnicodeだから
どこかに
con.text_factory = sqlite3.OptimizedUnicode
みたいの書いてあったんじゃない?
0160158
垢版 |
2022/10/31(月) 00:05:38.33ID:9DMkpRZo
>>159
ありがとうございます
うーん、コードは上に貼ったもので全てですね…
「Python完全入門」という本に載っていたものをそのまま写して実行しました
まあ今警告が出ないなら何かの間違いだったのかな、という気もしますが
0161デフォルトの名無しさん
垢版 |
2022/10/31(月) 13:02:00.89ID:Mv22B4ss
辞書型のキーですけど改行(\n)を含む文字列ではキーが見つからないKey Errorになりますが\nをシングルクオートに置き換えると見つかります。
これって仕様書に書いてありますでしょうか?
0163デフォルトの名無しさん
垢版 |
2022/10/31(月) 13:21:59.68ID:9qd4kdaQ
改行コードだけを挿入したつもりがキャリッジリターンも含まれてたんじゃないの
0164デフォルトの名無しさん
垢版 |
2022/10/31(月) 17:25:04.40ID:TphGqH95
仕様書に書いてあるかどうかは仕様書に聞け
0165160
垢版 |
2022/10/31(月) 22:49:45.99ID:9DMkpRZo
何度もすいません、クロムの検索候補に履歴が残ってたので貼ります
deprecationwarning: the distutils package is deprecated and slated for removal
in python 3.12. use setuptools or check pep 632 for potential alternatives
という内容です
よろしければ、アドバイスをお願いします
0166デフォルトの名無しさん
垢版 |
2022/10/31(月) 23:25:28.64ID:L2HQmiB/
>>165
英語読めよ
書いてあるだろ
0167デフォルトの名無しさん
垢版 |
2022/11/01(火) 00:03:30.73ID:ErTKtcvq
俺は親切だからGoogle翻訳にかけてやったぞ

非推奨警告: distutils パッケージは推奨されておらず、削除される予定です Python 3.12で。セットアップツールを使用するか、PEP 632で代替案を確認してください
0168165
垢版 |
2022/11/01(火) 02:01:44.74ID:Orud0uMd
>>166
すいません、英語よく分からないんです

>>167
本当に親切な方ですね!
ありがとうございます
0169デフォルトの名無しさん
垢版 |
2022/11/01(火) 07:02:27.48ID:XjPjyOv6
FlaskでつくったwebアプリをWin10 homeで動かそうとしています
pc起動時に立ち上げたいのですがどういう方法がありますか?
サービス?とか言うのに登録することになるんですか?
0170デフォルトの名無しさん
垢版 |
2022/11/01(火) 08:46:44.47ID:ENm4Z/gv
localhostで自分が使うだけだろ?そんなもんスタートアップにショートカット作っときゃ十分
Webサーバーとしてまともに運用するならnginxとか使うことになるけど、その場合普通はLinuxだからWindowsで変に頑張んなくていいよ。時間の無駄。
0172デフォルトの名無しさん
垢版 |
2022/11/01(火) 10:13:16.96ID:XjPjyOv6
Windowsという足枷
0173デフォルトの名無しさん
垢版 |
2022/11/01(火) 11:22:59.34ID:ZzMsks2m
>>168
知恵も回らないだろ
0174デフォルトの名無しさん
垢版 |
2022/11/01(火) 16:39:40.42ID:XjPjyOv6
>>170
>localhostで自分が使うだけだろ?
そうです
>そんなもんスタートアップにショートカット作っときゃ十分
そうなんですけど、start, stop, restartがやりやすいといいなって
0175デフォルトの名無しさん
垢版 |
2022/11/01(火) 17:33:54.65ID:VEA6qwMy
次回からスレタイは馬鹿専用スレにした方がいいな
0177デフォルトの名無しさん
垢版 |
2022/11/01(火) 19:22:50.77ID:VEA6qwMy
>>176
お前が原因だよ
0178デフォルトの名無しさん
垢版 |
2022/11/01(火) 22:56:30.05ID:CMvcSOEo
>>174
>start, stop, restartがやりやすいと良いな
これらをそれぞれ、ショートカットに出来ないの?

こういうプログラムを、Ruby, PowerShell, VBS などで書いて、
ショートカットで起動すれば?
0180デフォルトの名無しさん
垢版 |
2022/11/01(火) 23:10:41.20ID:oDG5TYmp
>>179
君にはお似合いの称号だよ
0181デフォルトの名無しさん
垢版 |
2022/11/01(火) 23:22:16.04ID:ENm4Z/gv
>>174
伝統と信頼のApacheでいいんじゃない
いずれLinuxへ移行する予定があるとか本職になるための勉強をしてるとかならnginxをサイドカーとしてDocker Desktopで常駐させるのもアリだと思うけど、
日常的にDockerを使うのでなければDocker Desktopを常時立ち上げるのはPCがだいぶ重くなるよ
0183デフォルトの名無しさん
垢版 |
2022/11/02(水) 00:52:05.06ID:F9m89lvM
>>180
これだけの情報で馬鹿って決めつける奴の人間性も大概だと思うぞ
口の利き方に気を付けた方がいいよあんたは
0185デフォルトの名無しさん
垢版 |
2022/11/02(水) 10:51:54.65ID:I1Z+o8fX
関西人にとって馬鹿は人権侵害に匹敵する最大級の侮辱言葉です。
僕は関西人なので、アホと罵ってください
0186デフォルトの名無しさん
垢版 |
2022/11/02(水) 14:49:55.66ID:PQwC7NxY
仮想環境を任意の場所に作成できません
envs_dirsには
a(%LocalAppData% )
b
c
と三つの環境ディレクトリリストが登録されておりbのディレクトリに環境を作りたい
condarcもCONDA_ENVS_PATHも試して確かに設定すれば上記リストのトップに
bは来るのだがいざ環境を作ろうとするとどうしてもaディレクトリに作成されてしまいす
0190デフォルトの名無しさん
垢版 |
2022/11/02(水) 21:23:04.17ID:CsBXjP5R
馬鹿って言われてもスルーするだろ
怒ったら馬鹿っぽいし、万が一自分が本当に間違っていたときにかなり恥ずかしい思いをする
逆に100%自分が間違いないと確信しているときは、馬鹿って言ってる奴の方が馬鹿なんだから、わざわざ相手のレベルまで降りて感情的になる必要ない、論理的に追い詰めればいいんだよ
だから、自分からは言わない、相手が言ってきても「馬鹿」の部分はスルーする、言ってることがおかしければ問い詰める、が安牌でしょ

そもそも自分も相手も匿名なんだぞ、人前で恥かかされたらともかくこんな匿名空間でいちいち言葉尻で不快感を覚えてたら精神エネルギーの無駄だろ
0191デフォルトの名無しさん
垢版 |
2022/11/02(水) 22:32:05.28ID:F9m89lvM
>>188
お前の中での馬鹿の定義を知らんけど、少なくとも俺は常識的に馬鹿呼ばわりされる
書き込みはしていない

>>189
そうかなあ

>>190
まあそれは一理あると思うけど、じゃあ基本的に悪口はスルー耐性つけとくしかない
ってこと?
0192デフォルトの名無しさん
垢版 |
2022/11/02(水) 23:42:41.75ID:d827SSNz
こんだけ長々と御託並べてるのに要約すると「バカって言うやつがバカなんだバーカ!!!」でしかないの草
0193デフォルトの名無しさん
垢版 |
2022/11/02(水) 23:49:15.50ID:6YCrBgPH
>sqlite3モジュール関連のexecuteメソッドで、SQLのUPDATE文を実行したら
警告が出てしまったのですが、これは使わない方がいいでしょうか?

この後、

>すいません、英語よく分からないんです

までのやり取りを読むと俺も、この馬鹿、と思ったよ。馬鹿と書かれる理由が存在すると思う。
0194デフォルトの名無しさん
垢版 |
2022/11/03(木) 00:07:03.64ID:q0+PchV3
>>186
漏れは、Windows 10, WSL2, Ubuntu 18.04 に、
日本人が作った、多言語バージョンマネージャーのanyenv で、
ruby, node.js を入れているけど、

例えば、rbenv なら、

全てのディレクトリに適用される、グローバルなバージョンを設定する。global
rbenv global 3.0.1

カレントディレクトリ以下のバージョンを設定する。local
rbenv local 2.7.3

同様のツールに、asdf もある
0195デフォルトの名無しさん
垢版 |
2022/11/03(木) 04:14:15.80ID:9oLRzF14
>>191
悪口にはスルー耐性つけとくしかない、その通りだよ。
大体論理的に説得できないから悪口でマウント取ろうとしてるんだと思えば相手が小物に見えるでしょ
もちろん単に性格がクソなだけで内容はちゃんとしたこと言ってる人もいると思うけど
ぶっちゃけ性格が可哀想な人は人生損してるだろうと思って生暖かい目でみた方がいいよ
0196デフォルトの名無しさん
垢版 |
2022/11/03(木) 11:19:07.00ID:usv0D7F/
>>192
草なんか生えねーよ

>>193
100歩譲ってそうだとしても、荒れる原因になる書き込みはするな、と思う

>>195
うーん、参考にはしたいけど、俺あまり忍耐力ないからな
助言はありがたいけど
0198デフォルトの名無しさん
垢版 |
2022/11/03(木) 13:25:15.22ID:9oLRzF14
>>196
怒りに対する忍耐力ないと自覚したなら理性で感情をコントロールできるようにした方がいいぞ。格闘家とかじゃなければ。
アンガーマネジメントってやつ。
怒りを感じたらなぜ怒ったのかをどんどん要素分解していくんだ。
あいつが○○したからムカついた、では、なぜ〇〇されるとムカつくのか、それは☆☆だから、ではなぜ☆☆されるとムカつくのか?ってのをどんどん単純な理由に落としていって、
それが自分の命や社会生活に関わることだったり、思想信条宗教に反することだったら仕方ないが、そうでなければどこかを回避して腹が立たないように生きた方が楽だし生産的だもの。
0200196
垢版 |
2022/11/04(金) 18:14:54.41ID:4eN2z1eq
>>197
煽る奴も荒らしと同じだぞ

>>198
努力はしてみる
ありがとう
0201デフォルトの名無しさん
垢版 |
2022/11/05(土) 01:00:28.40ID:mvfmSa9B
>>187
怒るってことは薄々自分でも気付いてるんだろな
0202デフォルトの名無しさん
垢版 |
2022/11/05(土) 03:22:53.57ID:CteLlFzn
>>182
これが正しいと証明された
0203デフォルトの名無しさん
垢版 |
2022/11/09(水) 07:19:33.82ID:Hj0665FE
さすがくだすれ
0204デフォルトの名無しさん
垢版 |
2022/11/12(土) 08:46:06.49ID:CpbGZOKC
同じ名前を持つデータを見つけるたびに削除するスクリプトが必要なんですけど
for loopで全データにアクセスし、アクセスしたデータの名前をlistに保存していき
そのlistにある名前と同じ名前をもったデータにアクセスしたらそのデータを削除するというのを考えたんですけど
もっと効率良い方法あったりしますかね
0205デフォルトの名無しさん
垢版 |
2022/11/12(土) 08:58:44.70ID:AXYSbt7W
listの探索はコストが高いからsetにする
元データに対して直接検索できるのか不明だからそれ以上はいえん
0207デフォルトの名無しさん
垢版 |
2022/11/12(土) 10:19:32.21ID:FmCXrjme
ええー、setに突っ込むだけでしょ
set(names)でok
0208デフォルトの名無しさん
垢版 |
2022/11/12(土) 10:49:03.57ID:CpbGZOKC
直接検索できないのでデータを総当りしないとダメなんですわ
今までsetとlistしかいじったことないんですがスクリプトにするとこんな感じですかね?

names = set()
for i in active_object.data
if i.name in names:
active_object.data.remove
else:
names.add(i.name)
0209デフォルトの名無しさん
垢版 |
2022/11/12(土) 11:13:50.56ID:AtMreGxi
名前のセットを作ってリストの最初の見つけるとか?

names = set(a.name for a in before)
after = [next(a for a in before if a.name == n) for n in names]
0210デフォルトの名無しさん
垢版 |
2022/11/12(土) 11:17:04.24ID:AtMreGxi
>>209
毎回頭から探すのでリストが長かったり並びに偏りがあると遅くなると思うけど。その場合はソートして検索かけたほうがはやいかもね
0211デフォルトの名無しさん
垢版 |
2022/11/12(土) 12:26:42.08ID:CpbGZOKC
>>209
これはnext関数で重複要素を呼び出した時点でbefore内のデータを消してるってことですかね?
next関数で呼び出したデータをlistのafterに格納するのはなんででしょうか
削除したデータをあとから参照するとかでしょうか
0212デフォルトの名無しさん
垢版 |
2022/11/12(土) 12:43:55.68ID:7nGzKu22
>>208
イテレーションしながら削除するとバグるから
新しいリストを生成したほうがいいよ

あと単純に名前だけじゃないなら
重複があった場合の名前以外の値の扱いを仕様として明確にしておいたほうがいい
0213デフォルトの名無しさん
垢版 |
2022/11/12(土) 13:07:42.34ID:AtMreGxi
>>211
before はまったく書き換えずに新しく重複のないafter を作っています
before の更新をしたいなら /after/before/ と置き換えればよいです
next は a.name がnである最初のa をbefore からとってきます
0215デフォルトの名無しさん
垢版 |
2022/11/12(土) 22:43:08.86ID:9FLfhnuQ
フローチャートについてなんですが、
for文に対応するelse文ってフローチャートではどう表現すればいいでしょうか?
0218デフォルトの名無しさん
垢版 |
2022/11/13(日) 12:59:42.28ID:jOpA6oHy
>>215
表現できない
普通にモノ作る分にはフローチャートなんて全く必要ないから、くだらないことは気にしなくていい
学校の課題などでコードと一緒にフローチャートを提出する必要があるのなら、フローチャートで表現できない機能はそもそも使うべきではない
0219デフォルトの名無しさん
垢版 |
2022/11/13(日) 13:16:46.13ID:TarIirJV
>>215
特に無いから条件分岐で適当に書くしかない
0220デフォルトの名無しさん
垢版 |
2022/11/13(日) 15:36:13.00ID:6wwUlOsK
forループやwhileループのelse句は
悪名高いbad partsなので使っちゃダメ
early returnで書き換える
0221デフォルトの名無しさん
垢版 |
2022/11/13(日) 16:24:09.14ID:8sV2mqeo
あるものは使っても別に良くね?
いろんな書き方ができるのがPythonのいいとこだと思ってる
0222デフォルトの名無しさん
垢版 |
2022/11/13(日) 17:41:48.86ID:zAAshiqt
配列Aの要素が0,-1のみの時True返すそれ以外False
同じく配列Aが0,-1,1のみの時True返すそれ以外False

という2つの処理をしたいです 条件から考えて2つが同じ結果になることは起こりえません。

all(x==0 or x==-1 for x in list)
all(x==0 or x==-1 or x==1 for x in list)
だとどっちもTrueになりうるのですがどうしたらいいですか?
0223デフォルトの名無しさん
垢版 |
2022/11/13(日) 17:44:28.27ID:TY5Qmgau
昔それでperlが無茶苦茶になってな
配布するか自分だけで使うかとかでスタイル決めた方がベター
0225デフォルトの名無しさん
垢版 |
2022/11/13(日) 18:17:24.58ID:oUsDdoyL
>>222
そんなのAの中身によるでしょ
あとlistは組み込み関数なんですけど
0226デフォルトの名無しさん
垢版 |
2022/11/13(日) 18:50:40.88ID:0j2qr49h
>>222
「配列Aの要素が0,-1のみの時」の意味がそのコードのように
「配列Aのすべての要素が0もしくは-1」という意味なら2つの結果が同じになる場合はあるよね
0227デフォルトの名無しさん
垢版 |
2022/11/13(日) 18:54:42.72ID:oUsDdoyL
ていうか引数に内包表記渡せるんだね
0228デフォルトの名無しさん
垢版 |
2022/11/13(日) 18:55:19.91ID:aD+9aMvk
>>222
> 条件から考えて2つが同じ結果になることは起こりえません。
まずこれがホントに正しいかを考えなよ...
0230デフォルトの名無しさん
垢版 |
2022/11/13(日) 20:09:30.94ID:cgKyROyF
「0,-1,1のみ」とは全て揃っている必要があるのかどうか
0231デフォルトの名無しさん
垢版 |
2022/11/13(日) 21:59:38.17ID:tnJyg4LP
いらん補足かもしれんが引数にチョクで内包表記書いたときはジェネレーター内包表記として扱われる
0232215
垢版 |
2022/11/13(日) 22:13:07.20ID:cXbnVmvH
お礼が遅くなってすいません
回答してくれた方々ありがとうございます

>>218
そうなんですか
じゃあコードの設計図ってどうしてますか?

>>220
なぜbad partsなんですか?
0233デフォルトの名無しさん
垢版 |
2022/11/13(日) 23:29:24.88ID:PJTnrSXJ
>>232
作る上で「必要なものを」「適切な抽象度で」記述する
SI業界で大量生産されているような外部設計書だの内部設計書だのというのはそれ自体を成果物として客から金を取っているから作っているのであって、システムを作る上で本当に必要なものはその極一部にすぎない
お前一人で作ってるならたぶん設計書なんか必要無いだろうし、チーム開発でもコード見りゃわかるようなことは書かなくていい
フローチャートについて言えば、一般に、フローチャートはPythonのコードよりも抽象度が低いため、設計書としては全く意味をなさない
そもそも>>215の質問をしている時点で、既にお前はフローチャートの前にPythonコードを先に想定しているんだろう?だったらお前にとって作る上で明らかに不要だろう
0234デフォルトの名無しさん
垢版 |
2022/11/13(日) 23:40:50.00ID:6O/r8caV
>>222
数学の集合の基礎を勉強しなおすべきかも
あと、set使って書いた方が少なくともその処理は楽ちん
0235215
垢版 |
2022/11/13(日) 23:51:26.26ID:cXbnVmvH
>>233
長文レスありがとうございます

うーん、じゃあフローチャートの存在意義って何なんだろう
確かに俺はいきなりコードを書いてますが、それは独習or趣味レベルだから
それでも許されるのであって、仕事となると基本情報技術者試験で出てくるような
アクティビティ図だとかユースケース図だとかシーケンス図だとかが必要になる
んですよね?
いきなりコードの記述をしたら、行き当たりばったりになってクォリティも低くなり
可読性も下がりバグの入る可能性も高くなるみたいですし…
0236デフォルトの名無しさん
垢版 |
2022/11/14(月) 00:14:32.82ID:0VMo1QiO
>>235
フローチャートはわかんなくていいと思う。
コンピュータでプログラムを動かすのにハンドアセンブルして、パンチャーに打ってもらって、実際動かすまで何日もかかったような時代の、50年前からある遺物みたいなもん。
プログラム何も知らない人でもあの図のルールは単純だからなんとなく教育しやすいからか生き残ってるけど、
基本あんな簡単な図で表現できるコードの範囲が狭すぎる。
状態遷移図とかデータフロー図とか、UMLでもややこしい時に役に立つ図はあると思うけどね。
0237デフォルトの名無しさん
垢版 |
2022/11/14(月) 00:43:36.88ID:pOSVKW/c
>>235
フローチャートはもっとハイレベルのフローを図示するためのもの
業務フローだったり料金プランを選ぶフローチャートだったり
0238デフォルトの名無しさん
垢版 |
2022/11/14(月) 05:59:45.08ID:kA23Oboq
tkinterで家計簿作ろうとしてるんだけど公式ドキュメントとかのサンプルみると最後のmainloop以外ぜんぶclass App():にいれてるんだけどマネしたほうがいいの?
0240デフォルトの名無しさん
垢版 |
2022/11/14(月) 12:13:10.18ID:K3emCbow
ウィジェットはクラス化すると使い回すのが楽になるね
タイトル、エディット、ボタンをセットにしたやつとか便利
evalとexecを使って変数と自動同期するフレームワーク作ったわ
0241215
垢版 |
2022/11/15(火) 10:09:17.84ID:Wl6YNYa9
すいません、レスが遅くなりました
返答ありがとうございます

>>236
では良いものを作りたいと思ったら、UMLの書き方に習熟した方がいいってことですね

>>237
そうなんですね、分かりました
0242デフォルトの名無しさん
垢版 |
2022/11/15(火) 11:46:22.50ID:Hm3rex5D
>>241
UMLも全部実用的ってわけじゃないし、システム関係の図を標準化したってだけだから、
まずは、やりたいことが書いてありそうな今の自分にとってちょっと難しめのコンピュータサイエンス寄りのアルゴリズムの本などで勉強することからでいいと思う
UMLは、自分で考えたものを標準的に綺麗に整理したくなってからで十分。
むしろユースケースが体感としてないのにUMLを勉強したからといって設計ができるようになるわけじゃないからね。
0243241
垢版 |
2022/11/16(水) 19:29:05.53ID:TyYF4bKY
>>242
分かりました ありがとうございました
0245デフォルトの名無しさん
垢版 |
2022/11/18(金) 07:57:03.05ID:r5yXYIm8
試してはない
import subprocess
subprocess.run(["wmic", "path", "win32_VideoController", "get", "name"])
0246デフォルトの名無しさん
垢版 |
2022/11/18(金) 08:34:53.27ID:I4mt1ysS
>>245
完璧に動きました!ありがとうございます!
0247デフォルトの名無しさん
垢版 |
2022/11/19(土) 20:44:10.93ID:k699mWzz
pythonを独学で勉強している非エンジニアの初心者です。環境構築(?)に関してご相談させて下さい。

手元のメインパソコン(windows10 home)でpythonの開発環境を色々触ると、
アップデートやら何やらで動かなくなるものが出てきたりして苦戦しております。

そこで、年内にパソコンを買い換え際にwindows11 proに移行し、hyper-vという仮想環境を使って、
「常時安定稼働させたい環境」「色々試行錯誤する環境」「ひたすら計算させる環境」みたいに切り分けて使うのはどうかと検討しています。

そのような用途でhyper-vを使うのは妥当なのでしょうか?
あるいは、そんなことしないでdockerとかanacondaで何とかするのが普通なのでしょうか?
0248デフォルトの名無しさん
垢版 |
2022/11/19(土) 21:00:01.65ID:BimAJPXj
Pythonのバージョンやモジュールの使い分けだけなら
pyenv + venv/Poetry
でOK
個別のLinuxやWindows環境がほしいなら
DockerやHyper-Vになるけどその分ケアすることが増える
0249デフォルトの名無しさん
垢版 |
2022/11/19(土) 22:23:50.73ID:ByHMuknr
>>247
>手元のメインパソコン(windows10 home)でpythonの開発環境を色々触ると、
>アップデートやら何やらで動かなくなるものが出てきたりして苦戦しております。
この時点で何かがおかしいので、Win以外の環境にデプロイしたいわけでもないのにhyper-vやdocker使っても苦労が増えるだけだと思います
そのままWindowsで動かしたいものを作るなら、anacondaとか使わずに公式のインストーラとvenvで環境構築する方が絶対楽です
エディタもVScodeとかPyCharmとかありますし
0250デフォルトの名無しさん
垢版 |
2022/11/20(日) 00:59:07.41ID:H/Uc0Eyy?2BP(0)

演算子と制御構文まである程度理解したけどそこから先なにかアプリをつくることができる未来が見えない。誰か意見や見解を述べられる人いますか
0251デフォルトの名無しさん
垢版 |
2022/11/20(日) 02:03:49.31ID:Jm0rY269
馬鹿にありがち
0253デフォルトの名無しさん
垢版 |
2022/11/20(日) 08:24:43.83ID:wb2QYozN
>>250
料理道具を揃えても、料理が作れるようになるわけではない
プログラミング言語を学んでも、アプリを作れるようになるわけではない
大事なことは動機
料理を作ると子供たちが喜ぶとか、
アプリを作ると仕事がめっちゃ楽になるとか金が入るとか、そういう動機が要る
0254デフォルトの名無しさん
垢版 |
2022/11/20(日) 08:47:44.50ID:h7Bqzkc0
>>250
↑のが奴いう動機が原因でなければ、APIを知らんからだろうな
料理でいえば野菜の切り方や火の扱い方を知っていても
フライパンや鍋び使い方を知らなきゃ料理はできないだろ

初心者がGUIを作るとしたら何のモジュールがいいんだ?
TKinterみたいなのより、マルチプラットフォームなKivyのがよかったりするんだろうか?
0257デフォルトの名無しさん
垢版 |
2022/11/20(日) 10:13:59.83ID:MUgzJmMj
wxPython
0258デフォルトの名無しさん
垢版 |
2022/11/20(日) 11:10:53.77ID:ZkE4F4/w
知識には内側と外側の2種類のベクトルがある
前者は構造、仕組み、言語などを司る左脳の役割
後者は関連、論理、創造を司る右脳の役割
仕組みを学んだのなら、次は無限に広がる創作の世界を学ばなければいけない
0260デフォルトの名無しさん
垢版 |
2022/11/20(日) 12:29:07.62ID:7a4yJys5
>>254
コマンドラインアプリに設定値をいじる皮を被せたい程度ならtkinterがおすすめ、管理も配布も楽、ただしモッサリ、リサイズはガックガク
wxPythonはバランスいいけどtkinterの手軽さはなくお客さんに見せられるほどカッコ良くもないという微妙な立ち位置、工場とかで使うアプリならありかな
PyQt/PySideは製品レベルの見た目にできるけど環境構築も維持もデプロイも面倒すぎ、GUIを作りやすい言語で皮作って裏でPython呼ぶ方が後々楽
PyGameはカンバス的なものがメインなら意外と業務用でも使える、ただしイベント駆動のウィジェットがないのでDOS時代のような作り方になる
Kivyはよくわからない、何度かやろうとしたけど寿命短そうでやる気が出なかった…
個人的にはGUIをReact/Vueで作って裏でflaskを走らせるみたいなのが多いかな、ただPythonである必要がないときは裏はgoにしてる
0261デフォルトの名無しさん
垢版 |
2022/11/20(日) 13:18:15.40ID:1i3sgzuE
>>247
漏れは、Windows 10, WSL2, Ubuntu 18.04, VSCode, Docker Desktop で、Ruby on Rails をやっている。
Linux の端末でもコピペできる、Windows Terminal も良い

VSCodeの拡張機能・Remote Development に、
3つの拡張機能・Remote Container/WSL/SSH が含まれている

Docker Desktop には、Docker, Kubernetes が含まれている

WSL2 のHyper-V で、シームレスにLinux を使える。
これは、Windows 10 Home でも使える

ただし、メモリは最低でも、16GB は欲しい。
32〜64GB以上が推奨

漏れは日本人が作った、多言語バージョンマネージャーのanyenv で、
ruby, node.js を入れているけど、同様のツールに、asdf もある。
anyenvでは、nodenv, pyenv, rbenv などを使う

他には、Dockerを使う

ただし、LinuxはRailsなどのプロのウェブ開発者用。
普通の香具師は、Linuxを使えない
0262デフォルトの名無しさん
垢版 |
2022/11/20(日) 13:37:48.48ID:h7Bqzkc0
>>257>>260
レスありがとう
ぱっと調べた感じだと
wxPython/PyQt/PySide/Kivyあたりはデザイツールあるみたいだから
ある意味こっちのが初心者向けなのかね
0264デフォルトの名無しさん
垢版 |
2022/11/20(日) 13:54:47.36ID:7a4yJys5
>>247
Anacondaや類似のオールインワン環境は、インストール時にcのコンパイルが必要だったりして面倒なパッケージを誰かの自家ビルドを借りてきて手っ取り早く動かすためのものなのよ。pipとcondaを混用するとパッケージ管理もめちゃくちゃになるのでセキュリティや一貫した開発環境がほしいときには入れない方がいい。
初心者向けの書籍でAnacondaを勧めているものがあるけど、とんでもない話だと思う。
0265デフォルトの名無しさん
垢版 |
2022/11/20(日) 14:01:22.00ID:h7Bqzkc0
>>263
なるほど
ちょっと調べたらいっぱい出てきたわ
ずいぶん前から日本語入力に問題あるんだな
0266デフォルトの名無しさん
垢版 |
2022/11/20(日) 17:26:11.09ID:IFJkIwpM
ここでもRubyキチガイが噓をまき散らしている
0267デフォルトの名無しさん
垢版 |
2022/11/20(日) 17:41:30.30ID:MUgzJmMj
そもそも IME が色んな意味で糞ですし
0269247
垢版 |
2022/11/23(水) 11:21:50.01ID:I1C153iL
>>248-264
ありがとうございます。参考にさせていただきます。
0271デフォルトの名無しさん
垢版 |
2022/11/27(日) 14:03:23.93ID:8iOvnAjw
日本の偉人たちは朝鮮人について警鐘を鳴らしてきた

夏目漱石
「朝鮮人に生まれなくて良かった」
伊藤博文
「嘘つき朝鮮人とは関わるな」
吉田松陰
「朝鮮人の意識改革は不可能」
福沢諭吉
「救いようのない民族」
本田宗一郎
「韓国人と関わるな」

ちなみに本田宗一郎はバイク工場を
丸ごと韓国メーカーに取られて
激オコしていた。
0272デフォルトの名無しさん
垢版 |
2022/11/27(日) 21:13:27.38ID:OTgOWMg7
外部のプログラムによって毎秒数十回更新されるテキストファイルからテキストの内容を取得する場合、以下の方法で問題ないですか?

以下のコードで外部のプログラムをブロックしてしまったり、パフォーマンスが悪かったりしたら嫌なので知りたいです。

f = open('myfile.txt', 'r')

datalist = f.readlines()
for data in datalist:
print(data)

f.close()
0273デフォルトの名無しさん
垢版 |
2022/11/27(日) 21:17:38.14ID:08DsEtQJ
問題ないですかじゃねーよ他スレでやって前回の質問でかまわないって回答もらってんだろ
さっさと試して納得したらクソして寝ろ
0274デフォルトの名無しさん
垢版 |
2022/11/27(日) 21:22:06.82ID:C5a07Tdj
>>272
そもそもファイルをそんな用途に使ってはダメ
複数のアプリから頻繁にアクセスされるようなデータは
DBに格納してDBMSの排他制御機能を使うべき
0275デフォルトの名無しさん
垢版 |
2022/11/27(日) 21:36:36.64ID:OTgOWMg7
>>274
1行程度400文字以内の短いデータを上書き保存するだけなのですが、DB使った方が良いんでしょうか?

以前PostgreSQLを使ったことが一度だけあったのですが使うの大変だった記憶があるのでなるべく使いたくないという嫌悪感があります。

pythonとc++間で簡単に値渡しできるデータベースみたいなものってあるんでしょうか
0276デフォルトの名無しさん
垢版 |
2022/11/27(日) 21:42:01.22ID:vZKExyua
>>272
それじゃダメだよw
Python同士で試せばすぐ分かることだから
まずやってから問題が出たらその問題を解消するための質問をしてね
0277デフォルトの名無しさん
垢版 |
2022/11/27(日) 22:48:34.35ID:kKh2EuGH
>>275
両プログラムを同時に起動できるならパイプ
個別に起動するなら名前付きパイプ
Unix前提ならドメインソケットでも
古典的だけどサーバやミドルウェア不要
0278デフォルトの名無しさん
垢版 |
2022/11/28(月) 10:59:27.05ID:cGJ8oXTg
毎秒数十回の書き込みとかSSDがすぐ死にそう
自分がやるならFlaskとか入れてweb通信で渡すかな
0279デフォルトの名無しさん
垢版 |
2022/11/28(月) 11:05:12.64ID:k2v8jKfn
>>278
毎回フラッシュするわけないじゃん
0280デフォルトの名無しさん
垢版 |
2022/11/28(月) 12:09:34.48ID:HJ3Js2uA
Ruby on Rails で使う、3大RDB は、PostgreSQL, MySQL, SQLite で、
開発環境では、SQLiteも使うけど、本番環境ではPostgreSQL一択

AWS でキャッシュとして使うDB では、Redis 一択
0282デフォルトの名無しさん
垢版 |
2022/11/28(月) 15:02:56.92ID:982hcGex
ファイルI/Oって即座に完了する保証ないから
いつか書き込みモードでのオープンに失敗して破綻しそう
0284デフォルトの名無しさん
垢版 |
2022/11/28(月) 15:23:24.17ID:oZh4s12L
>>275
memcached
0285デフォルトの名無しさん
垢版 |
2022/11/28(月) 15:26:32.33ID:EYUOHryu
>>282
何を言っとるんだね君はw
0286デフォルトの名無しさん
垢版 |
2022/11/28(月) 15:29:44.37ID:hwVLge7U
アーキテクチャがエクストリーム過ぎて大半のやつが経験したことないやり方だから問題ないですか?とか聞いても無駄だよ

30分もあれば試せる内容なんだから自分で試さないと
0288デフォルトの名無しさん
垢版 |
2022/11/28(月) 15:56:07.32ID:mtDAqXwT
そんなもん必要なわけねーだろーよ
read()/write()とディスクIOの間の機構知ってんだろ?
0289デフォルトの名無しさん
垢版 |
2022/11/28(月) 16:35:36.63ID:cLllQGbA
>>287
おまえもかw >>283
0290デフォルトの名無しさん
垢版 |
2022/11/28(月) 18:05:36.45ID:mtDAqXwT
この手のIPCでパイプ・ファイル・シグナル・ソケット使うのは大昔からいくらでもケースあんだろうが
どれ使ったところでパフォーマンスも使い勝手も似たようなもんなんだから使いたいもん使っていいよ
ブロックだのなんだの起きねーから気にすんな
>>274,278,282,286,287はファイルシステムの読み書きと物理的な読み書きの区別がついてないアホだから無視していいよ
0292デフォルトの名無しさん
垢版 |
2022/11/28(月) 20:21:50.84ID:TfCAVvrT
今だったらZeroMQあたりが今風でいい感じのIPCに使えるんじゃないの。
こないだ使ったけど便利だったよ
0293デフォルトの名無しさん
垢版 |
2022/11/28(月) 21:13:24.60ID:2L03gkYV
今時はgRPCじゃない?
MQは文字通りMQが必要なときに使うもので、同期的な通信で済む用途なら制御が面倒臭いだけだよ
0294デフォルトの名無しさん
垢版 |
2022/11/28(月) 22:11:15.50ID:y2+LqMgI
>>291
やってくれないよ

ファイルを普通に上書きしてれば一旦truncate入るから読む方は空のファイルを読んだりもする
0295デフォルトの名無しさん
垢版 |
2022/11/28(月) 22:14:30.02ID:y2+LqMgI
>>290
>どれ使ったところでパフォーマンスも使い勝手も似たようなもんなんだから使いたいもん使っていいよ
全然違うがなw
0296デフォルトの名無しさん
垢版 |
2022/11/28(月) 22:42:02.69ID:LkzIedw9
昔cgiで掲示板やwikiを作るのが流行った頃の話題に似てるけど、この手話ってあの頃から進化してないの?
当時の結論はrename(=アトミックな処理)を使うだったよ。
0297デフォルトの名無しさん
垢版 |
2022/11/28(月) 23:26:40.36ID:9u2QsTZW
現代的な解法を求めるならクラウドでDynamoDBでも使えば済む話
それを拒否しているのは質問者
0298デフォルトの名無しさん
垢版 |
2022/11/29(火) 00:26:52.01ID:M4Ssiypz
ローカルの話なのにいきなりDynamo使えとか言われてもなwww
0299デフォルトの名無しさん
垢版 |
2022/11/29(火) 01:20:22.35ID:wVUySIDy
>>293
なるほど、確かに同期的処理は手間があるかも。
ただ今回の場合はファイル更新に必ず1対1対応しなくてもいい(最後のだけみる)のかなって思ったから非同期でいいのかなと。
といいつつgRPC使ったことないんで使ってみます。
>>296
ファイルしか方法がない場合は今でもrenameだと思うけど(ブラウザのダウンロード機能とかもそんな感じ)、本当にファイルしか方法がないのか?って話だよね。
ファイルを使うのは筋が悪いからやめようという意味では進歩しているのでは。
0300デフォルトの名無しさん
垢版 |
2022/11/29(火) 12:40:53.19ID:Rlb9t/Eq
Amazon Simple Queue Service (SQS) は、2006年からある最古のサービス

処理A → 処理B
処理A → キュー → 処理B

キューを挟むと、各処理を疎結合にできる

他には、コマ落ち(処理落ち)を許すかどうかとか。
例えば、20ms 毎の処理が、時間内に終わらなかった場合に、どうするかとか
0301デフォルトの名無しさん
垢版 |
2022/11/29(火) 13:25:24.70ID:yCgH8QM6
このWeb脳なんなん
キューイングなんてAWSどころかAmazon設立前から存在してる
0302デフォルトの名無しさん
垢版 |
2022/11/29(火) 20:48:03.30ID:xl1GlOUu
このルビ糞は論外だが、Pythonエンジニア(自称)には基盤技術に対する関心とスキルが絶望的に不足している奴が多い印象だわ
まともに運用できないゴミを垂れ流すだけで何一つ実にならない
まあPoC案件ばかりやってりゃそうなるのも仕方ないが、景気後退局面&AI幻滅期に突入した今となっては、
そういうPoCエンジニア()みたいなのは今後急速に淘汰されてくんだろうね
0304デフォルトの名無しさん
垢版 |
2022/11/29(火) 22:25:44.70ID:Pj1w9nlG
>>272はログファイルを tail -f するようなありふれた処理に思えるが。
ファイルじゃ無理って何を言ってるんだろう。
0305デフォルトの名無しさん
垢版 |
2022/11/29(火) 22:52:08.98ID:UIouEa7w
tail -fの出力をパイプで受けるならわかるが
tail -fの泥臭い実装がありふれてる界隈って珍しい
ログ集約ツールの一部でしょうがなくやるような
0306デフォルトの名無しさん
垢版 |
2022/11/29(火) 22:58:20.97ID:Y6r2nTzC
>>304
appendじゃなくoverwriteらしいなのでtail -fのようにありふれた処理じゃないんだわ

それにファイル以外のやり方をすすめてる人はいるけどファイルじゃ無理とは誰も言ってなくね?
0308デフォルトの名無しさん
垢版 |
2022/11/30(水) 04:13:39.39ID:wr1zDZjV
ていうか業務システムの開発の話なら
こんなところで相談している時点でやばいんだよな
まともな開発体制がなくて一人でやってるってことだから
0309デフォルトの名無しさん
垢版 |
2022/11/30(水) 08:56:36.74ID:SQShCmZG
業務のわけないじゃん
どう見ても個人用途
0310デフォルトの名無しさん
垢版 |
2022/11/30(水) 11:42:11.70ID:D6E9fHT2
>>272
>外部のプログラムによって毎秒数十回更新されるテキストファイルからテキストの内容を取得する場合

appendなのかoverwriteなのか最初に言わなかった272が悪い
0311300
垢版 |
2022/11/30(水) 12:20:48.10ID:4G7kek1Y
Amazon SQS なら、先入れ先出し (FIFO) キューで、正しい順序で出力される。
マイクロサービスを疎結合

処理A → キュー → 処理B

非同期で、処理Aはキューに投入すると同時に、クライアントへ返答する。
それとは別に、処理Bはキューから、メッセージを取り出して処理する

ローカルPC のDocker で、Memcached, Redis でやってみれば?
0312デフォルトの名無しさん
垢版 |
2022/11/30(水) 12:25:18.89ID:0h1C12Qo
>>310
同じIDで>>275に書いてるよ
ちゃんと読まなかった君が悪い
0313デフォルトの名無しさん
垢版 |
2022/12/03(土) 23:48:57.96ID:R73++vvZ
俺だったらそんなにパフォーマンスが欲しいなら共有メモリか名前付きパイプに書くわ
0315デフォルトの名無しさん
垢版 |
2022/12/07(水) 13:32:03.30ID:wqy1K1SQ
KENYAや
うby厨がうざいとは思っていたが
ついにかよちん厨まで発生
0316デフォルトの名無しさん
垢版 |
2022/12/07(水) 18:07:39.50ID:bqsgvkfw
こんにちは。

発売される本の情報を調べるプログラムを作成しています。
サイトから本の情報をダウンロードすると、 '行政法論議の諸相\u3000\u3000行政法研究\u3000第9巻' のように文字列の中に
unicodeエスケープ が含まれているデータがダウンロードできます。 この\u3000 を全角スペースに変換して
'行政法論議の諸相  行政法研究 第9巻' にしたいのですが、単純に replaceメソッドでやれば良いのか、他にエスケープにも対応できるスマートな
方法があるのか調べているのですが結論がまだ出ていません。

よい方法があればヒントをいただけると助かります。
0317デフォルトの名無しさん
垢版 |
2022/12/07(水) 19:27:52.16ID:ImIPJc05
こんなかんじで
ret = re.sub(\r'\\u(\x+)', lambda x: xを加工して置換後の文字列を返却, str)
0318デフォルトの名無しさん
垢版 |
2022/12/07(水) 19:58:34.21ID:pjHTSGyq
肝心の変換部分がないやんw
re.sub(r"\\u\d+", lambda x: x.group(0).encode().decode("unicode-escape"), s)
0319デフォルトの名無しさん
垢版 |
2022/12/07(水) 21:11:42.52ID:bqsgvkfw
>>317
ありがとうございます。
参考になります。
正規表現はさっぱり・・・なので これを機会に勉強します。

>>318
うぉぉ!いけました。
ありがとうございましたぁぁ!
完全に謎の呪文にしか見えませんが、がんばって理解したいと思います。
0320デフォルトの名無しさん
垢版 |
2022/12/08(木) 02:19:47.22ID:oCI5AIx4
簡単なツールを作っています
ユーザーによって変えさせたい変数(パスなど)をファイル先頭にまとめてグローバル変数にしてるんですが、グローバル変数を使うのってあんまりよくないんでしょうか?
ローカル変数にすると変数をまとめられないので使いにくくなってしまいます
何かうまい方法があったら教えてください
0322デフォルトの名無しさん
垢版 |
2022/12/08(木) 03:25:28.06ID:narvdbFL
>>320
ユーザーによって変えさせたい値はソースに書かない
コマンドライン引数や環境変数や設定ファイルに書く
0323デフォルトの名無しさん
垢版 |
2022/12/08(木) 06:39:32.19ID:oJhaQYN9
>>316
Ruby では単に、受け取ったJSON 文字列を、JSON.parse/load するだけで、
Unicode エスケープシーケンスが、unescape される

require 'json'

json_str = '["諸相\u3000\u3000行政法研究\u3000第"]'

p JSON.parse( json_str )
p JSON.load( json_str )

出力。どちらも同じ
["諸相  行政法研究 第"]
["諸相  行政法研究 第"]
0324デフォルトの名無しさん
垢版 |
2022/12/08(木) 07:41:34.65ID:9oBByyuG
>>321
>>322
なるほど、ありがとうございます
今回はこのままいこうと思います

ちなみにですが、関数内でグローバル変数を使う場合って直接使っていいんですよね?
関数に引数で渡したらおかしいでしょうか?
0325デフォルトの名無しさん
垢版 |
2022/12/08(木) 09:59:10.87ID:oOSaJ09t
>>324
モジュール変数にしたら区別しやすい
config.pyにparam1を定義して
import config as cfgでインポート
使うときはcfg.param1でアクセス
そうしたら、いちいちglobal宣言する必要もないし、引数で渡す必要もない
何よりグローバル変更であることが一目で分かるの良い
VSCodeならインテリセンスも効くしね
自分はg.で使ってる
0327デフォルトの名無しさん
垢版 |
2022/12/08(木) 19:29:33.25ID:9oBByyuG
>>325
すごい!こういうやり方もあるんですね
もしかしてiniファイルもiniファイル取り込み用のモジュールを作って、モジュール変数として使うといいんでしょうか?
というか、単にモジュール変数用のモジュールを用意する場合とiniファイルを使う場合ってどう使い分ければいいんでしょうか?
0328デフォルトの名無しさん
垢版 |
2022/12/08(木) 20:45:08.84ID:Q9+/fS2O
config.pyにするかiniにするかではないけど、パッケージの一部にするか設定ファイルにするかは、git等のVCSの管理下に置くかどうかでわけてる
pullやcheckoutした時に上書きされるかされないか
0329デフォルトの名無しさん
垢版 |
2022/12/08(木) 23:22:07.43ID:zvxdsTpi
すいません、
リストの要素を全部合計したいのですが

sum_size = ['0.01', '0.01']
こういうリストの場合

数字が文字列になってるので、
sum(size)でやるとエラーになってしまいます、
うまく数字として合計する方法ないでしょうか?
0330デフォルトの名無しさん
垢版 |
2022/12/08(木) 23:40:10.50ID:zvxdsTpi
なんとかできた、
sum_size = sum([float(i) for i in size])
一回文字列をほかの型に変換してからたしてみた。
0331デフォルトの名無しさん
垢版 |
2022/12/09(金) 00:16:46.06ID:ZpsSOYHl
>>330
floatの計算は誤差が出るのでroundとかしないといけないような?
自分も初心者なのでベテランの方教えてください
0332デフォルトの名無しさん
垢版 |
2022/12/09(金) 00:56:45.74ID:oqBhWWLy
わざわざ誤差増やしてどーする
0333デフォルトの名無しさん
垢版 |
2022/12/09(金) 09:43:39.39ID:08JBCUgH
>>331
>>332
数字が、
sum_size 0.009999999999999998
こんなことになって、
エラー出ちゃう、
助けてー!
0334デフォルトの名無しさん
垢版 |
2022/12/09(金) 09:51:55.86ID:08JBCUgH
0.01とかの数字は、
ビットコインの数です、
持ってるビットコインの数を全部足して、
全部のカズ売るプログラムできたと思って、
安心して寝たら、朝起きたらエラーで手仕舞できてなくて、
めちゃくちゃ損してます・・
0336デフォルトの名無しさん
垢版 |
2022/12/09(金) 10:32:14.66ID:08JBCUgH
>>335
ありがとうございます、
こうしてみました
sum_size = decimal(sum([float(i) for i in size]))

これで安心して寝れる・・
0337デフォルトの名無しさん
垢版 |
2022/12/09(金) 10:32:48.31ID:DDM/thjI
>>333
それこそ最後に適当な桁でround()しなよ
ただ、そもそもエラーってなんのエラーが出てるんだ?
0338デフォルトの名無しさん
垢版 |
2022/12/09(金) 10:35:48.79ID:08JBCUgH
>>337
取引所のビットコインの桁数が決まってて、
小数点多すぎてエラーになってたみたいです、
なんか decimal使ったらエラーがでちゃったので、
こうしてみました
sum_size = round(sum([float(i) for i in size]),5)

これで寝ているだけで朝起きたらお金が増えているかも。
0340デフォルトの名無しさん
垢版 |
2022/12/09(金) 15:24:13.03ID:Z1cscK2k
sum(map(float, sum_size))
0341デフォルトの名無しさん
垢版 |
2022/12/09(金) 19:47:53.71ID:08JBCUgH
bot完成した、
今朝はプログラム失敗して大損してたけど、
だいぶ取り返してきた、
超初心者だけど頑張るぞ。
0343デフォルトの名無しさん
垢版 |
2022/12/09(金) 23:28:23.30ID:2EB/VYtw
>>342
そんなことないよ
0344デフォルトの名無しさん
垢版 |
2022/12/09(金) 23:51:14.07ID:eLXAv6sJ
Ruby on Rails では、place holder, ? を使うから、SQL injection されない。
例えば、published.where('published_at < ?', Time.current)

逆に、クライアントから送信された文字列を直接、文字列で連結して使うと、SQL injection される。
SQLにとって特別な意味を持つ、' を使われて、危険な命令を埋め込まれてしまう

例えば、"' OR '1" を入れて、その後に危険な命令を埋め込む

place holderを使うと、"' OR '1" が送られてきても、
'\' OR \'1' のようにエスケープされるので安全

PHP は素人ばかりだから、これでデータを抜ける。
Railsを勉強していないから皆、SQLも文字列を連結して作っている
0345デフォルトの名無しさん
垢版 |
2022/12/10(土) 01:16:10.82ID:7ib52StN
>>344
噓ばっかりのキチガイ
0346デフォルトの名無しさん
垢版 |
2022/12/10(土) 11:59:45.12ID:srOcl7Oy
ドローダウンやべー、
でも耐えて頑張るぞ、
初心者でも、
botで金持ちになるんだ。。
0347デフォルトの名無しさん
垢版 |
2022/12/10(土) 14:33:43.70ID:A6rFaSoj
>>346
ソフトで株やってんのか?
残念だけどソフト売買で金持ちになった投資家って聞いたことないな
0348デフォルトの名無しさん
垢版 |
2022/12/10(土) 15:55:05.38ID:zHuXawkZ
>>34
もう何行目で気付くかより
何文字目で気付くかの
スルー早押しボタン競争状態
0350デフォルトの名無しさん
垢版 |
2022/12/10(土) 17:54:40.07ID:u5Pjqn8+
Windowsて外部のexeファイルを直接ダブルクリックして起動するとタスクバーにアイコンが表示されるのに、

pythonのsubprocess.popen経由でexeファイルを起動すると、タスクバーのアイコンがWindowsデフォルトの無印アイコンになってしまいます。
何が原因でしょうか?
0352デフォルトの名無しさん
垢版 |
2022/12/10(土) 23:19:15.79ID:B4c4v6qS
スーパークラスでひな形のメソッドを用意して、
サブクラスでオーバーライドして使う場合には、
ひな形のメソッドの中身はpass文で済ませていいでしょうか?
それとも抽象メソッドできちんと記述するべきでしょうか?
0353デフォルトの名無しさん
垢版 |
2022/12/10(土) 23:42:59.44ID:OtY+jJHH
>>350
そんなことないぞ
shell=Falseにしてるか?
0354デフォルトの名無しさん
垢版 |
2022/12/10(土) 23:44:40.69ID:OtY+jJHH
>>352
super class が abstract class かそうでないかで分ける
0355デフォルトの名無しさん
垢版 |
2022/12/11(日) 00:15:43.20ID:7cpWGyaz
>>353
してます。

ほとんどのexeファイルはsubprocess.popenで開いてもアイコンがタスクバーに現れるのですが、特定のexeファイルにだけこの現象が起きています。

そもそものexeファイルの作り方が悪いのかもしれないですが、ダブルクリックでは問題なくアイコンが出るので不思議に思っています。
0356デフォルトの名無しさん
垢版 |
2022/12/11(日) 00:16:04.57ID:Lp5RN2UT
それ関係ある?
@abstractmethodじゃなかったら呼べてしまうから?

>>352
どっちにしろ空定義できないからpassでOK
0357デフォルトの名無しさん
垢版 |
2022/12/11(日) 02:25:27.32ID:p7BQ55Fk
>>352
オーバーライドしてないサブクラス経由でひな形のメソッドを呼ぶようなコードが書かれた場合にどう対処したい?
それ次第
0359デフォルトの名無しさん
垢版 |
2022/12/11(日) 09:52:50.08ID:B9k8N7vL
>>355
Python じゃないけど VBA の Shell 関数で NotePad.exe 起動したら同じようにデフォルトのアイコンになっちゃう
まあ特に困ってないからそのままにしてるけど原因は俺も知りたいな
0360デフォルトの名無しさん
垢版 |
2022/12/11(日) 10:30:01.79ID:rRS2TaaR
google colabで
data = list(files.upload().values())
とやってdata にlistとしてファイルを入れてるんだけど

これをやらずにcolabの「ファイル」の部分に直接ファイルをドラッグアンドドロップしたり
google driveからファイルを引っ張ってきたりできるのかな?

最終的には
data = list(file.values())としたいんだけど
どの方法が早いんだろうか?

ちなみにアップロードしてるのは20〜50MBぐらいの音楽ファイル
0361360
垢版 |
2022/12/11(日) 11:53:49.74ID:rRS2TaaR
説明を追加する
「Music Transcription with Transformers 」というGoogle colabのコードを利用してる
このコードの一部に
data = list(files.upload().values())
という部分があり、ここでPC内のファイルからwavやmp3をアップロードしてる(ここまではきちんと実行できて問題ない)

更に時間を節約するためにそこを省略して、すでにcolab の /content/フォルダ内にアップロードしたファイルを利用したい
テキストファイルなら以下のようにやればいいことは確認した。

# /content/ディレクトリ内のファイルから、'filename.txt'を選択します。
with open('filename.txt', 'r') as f:
data = f.read()

だけど、wavやmp3の場合はどうしたらいいのかわからない
うまくいっている「data = list(files.upload().values())」のlistとかvaluesとかを考慮すりゃいいとは思うんだけど
書き方がわからない
0362デフォルトの名無しさん
垢版 |
2022/12/11(日) 12:41:02.10ID:mmiA1K97
>>358
正解おめ
0363352
垢版 |
2022/12/11(日) 13:09:25.66ID:HrCBt1qU
レスしてくれた方々、ありがとうございます

>>354
スーパークラスは一応通常クラスにしてあります

>>356
分かりました

>>357
厳密に言えば呼ばれたら困るには困るんですが、
勉強で一人で書いてるコードなのでそれはあり得ないんです
0364デフォルトの名無しさん
垢版 |
2022/12/11(日) 13:18:57.18ID:GglWfKZ4
Ruby の抽象クラスは、
抽象クラスではエラーになって、派生クラスのみで使える

class 親
def a
raise NotImplementedError
end
end

class 子 < 親
def a
処理を、override
end
end
0365デフォルトの名無しさん
垢版 |
2022/12/11(日) 13:32:20.67ID:mmiA1K97
>勉強で一人で書いてるコード

数日後や数ヶ月後数年後の自分は他人だと思え
0366デフォルトの名無しさん
垢版 |
2022/12/11(日) 13:41:25.83ID:gxqyFrkM
>>361
colabのストレージって永続化されないと思うから、
先にアップロードしたファイルを使いたいならGoogleドライブをマウントしないとダメじゃない?
ファイルタブの上のアイコンの左から3番目のドライブのボタンをクリックするとマウント用のコードが追加されるはず
0368デフォルトの名無しさん
垢版 |
2022/12/11(日) 14:58:13.66ID:Mt+1J+8e
>>363
>勉強で一人で書いてるコードなのでそれはあり得ないんです

そういう考え方はよくないね
勉強で書いてるなら尚更良くない
他人だけでなく自分がうっかり間違えた場合にコードにどう振る舞って欲しいかを考えないと
0369デフォルトの名無しさん
垢版 |
2022/12/11(日) 15:08:27.80ID:FWNEJR9L
サブクラス化するときにオーバーライドを強制したいなら抽象メソッドにして中身はpassで可
オーバーライドを強制はしないけど該当メソッドが呼ばれた時はエラーにしたいなら通常メソッドでNotImplementedError
基本的にはこの2つのどちらか

強制もしたくないし呼び出されてもエラーにしたくないしpass以外のデフォルト実装も提供したくないなら通常メソッドでpassってことになるが
それが一番適切な選択になるようなユースケースは無いんじゃね?
0370363
垢版 |
2022/12/11(日) 15:32:54.99ID:HrCBt1qU
レスありがとうございます
ちなみにカードゲームを作っていて、スーパークラスがPlayer、
サブクラスがHuman・Computerです

>>365
はい、それは時間が経った時に実感します
ただ今回は300行程度の短いものですから…

>>368
そうなんですね
ただ、そのスーパークラスをインスタンス化することは無いです

>>369
そうなんですか
いろいろ制約をかけるとPythonらしくない、と人に言われたこともありまして
0372デフォルトの名無しさん
垢版 |
2022/12/11(日) 19:46:01.79ID:tS4zFrKc
NotImplementedErrorで良くね派
実際にメソッド呼ぶまでエラーにならないのが欠点だがABCMetaはめんどい
0373370
垢版 |
2022/12/12(月) 22:08:43.56ID:1+Ogth18
>>371
確かに…
以後気を付けます

>>372
ありがとうございます
検討します
0374デフォルトの名無しさん
垢版 |
2022/12/14(水) 21:44:28.17ID:XhtdH9iq
>>370
>>スーパークラスをインスタンス化することは無い

>>363
>>354
スーパークラスは一応通常クラスにしてあります

矛盾してるんだよな
意味わからず調べず返事するからだろうけど
0375デフォルトの名無しさん
垢版 |
2022/12/14(水) 21:53:17.73ID:XhtdH9iq
>>371
都合の悪い意見はスルーしてるんだよな

あるいは馬鹿は自分の理解の及ばない単語は目に入らない
(スルーしてるんじゃなくマジで見えない)という話があるがそれかもしれん
0376デフォルトの名無しさん
垢版 |
2022/12/14(水) 22:44:36.02ID:MDY4fnZr
素人質問で恐縮なのですが、
…なんて常套句はさておき、本当に本当の初心者なのでLv低い質問だと思いますが、

b = 2
と入力して、
type(b)
で、変数bの型は何ですか?と聞くだけの超簡単なコマンドのはずなのに
何でエラーが出てしまうんでしょう?
(ここで躓いているようじゃ先が思いやられるかな?)
(スクショ貼れませんでした、すみません)
誰かよろしくおねがいします
0377376
垢版 |
2022/12/14(水) 22:47:39.51ID:MDY4fnZr
環境はgoogle drive上のgoogle colabolatoryでやっています。
ちなみにwindows10です。
スクショ貼ろうとしましたが、うpろだの多分urlがNGワードに引っかかっちゃったみたいです
0380デフォルトの名無しさん
垢版 |
2022/12/14(水) 23:03:55.05ID:kP9TY3cy
それこそColabなら共有(共同作業)できるから
捨て垢でやり直してリンク貼ったらどうか
0382376
垢版 |
2022/12/14(水) 23:20:08.50ID:MDY4fnZr
>380
それも手ですね
分からなかったらそうします

>381
予約語を変数として定義できるんですか?
定義してるかどうかは、どうやって確かめますか?
0384376
垢版 |
2022/12/14(水) 23:41:19.54ID:MDY4fnZr
>383
ありがとうございます、解決しました!!
色々と変にいじってたうちにtypeに変数を定義しちゃってたのが原因だったみたいですね。
これで先に進めます。
0385デフォルトの名無しさん
垢版 |
2022/12/15(木) 01:16:43.12ID:jZ5UYKI0
>>382
>予約語を変数として定義できるんですか?
できないです。SyntaxErrorがおきます
0386デフォルトの名無しさん
垢版 |
2022/12/15(木) 01:20:47.13ID:kymHgKbk
えっ?
0387デフォルトの名無しさん
垢版 |
2022/12/15(木) 01:36:22.80ID:XVN1N3BK
予約語ってのはdelとかforとか文を形成するものじゃない?厳密には違うかもしれないけど書き換わったら根本的に意味をなさないもの
typeとかは組み込み関数だけど、場合によっては別の関数で上書きして使いたいときがあるかもしれない。便利機能を追加するときとか
0388デフォルトの名無しさん
垢版 |
2022/12/15(木) 04:22:37.68ID:NZLYDmOy
なるほど
0389デフォルトの名無しさん
垢版 |
2022/12/16(金) 03:13:08.59ID:mVqdHhnt
pycharmの最新版を入れたら、デバッグの時に日本語が文字化けするようになったわ。
0390デフォルトの名無しさん
垢版 |
2022/12/16(金) 06:30:54.79ID:BMo1BRTS
pipで入れれるツールをよく作るのですが、インストール後に生成したファイル(アクセストークン、設定、キャッシュなど) はどこに保存するのが普通ですか?
アンインストール時に一緒に消せるようにしたいのですが、package dataだと最初からファイルが存在している必要があり、管理がしにくく思っています。
なにか実践されてる方法をご存知でしたら教えてください。
0391デフォルトの名無しさん
垢版 |
2022/12/17(土) 15:32:13.15ID:REqE3zrN
質問っす。
マルチグラボで並列処理をpythonでしたいとき
何がおすすめですか?
vs?colab?charm?
0392デフォルトの名無しさん
垢版 |
2022/12/17(土) 16:20:39.02ID:38dnloyr
>マルチグラボで並列処理
肝心のここが謎だけどその並列処理ツールの公式サイトで聞いたら?
きっと好きなの使えっていわれるよ
0394デフォルトの名無しさん
垢版 |
2022/12/17(土) 20:17:08.64ID:REqE3zrN
>>392
ありがと!
ついでにflaskとdjangoやりたいんだが
pycharm一択ですか?
0395デフォルトの名無しさん
垢版 |
2022/12/18(日) 00:00:30.20ID:akxhfAdN
pycharmの無料版はWeb開発に必要な機能がまるっと削られてるからflaskやdjangoやるなら課金必須
無料ならVSCode一択
0396デフォルトの名無しさん
垢版 |
2022/12/18(日) 09:52:24.31ID:aCP/2AKW
指定したフォルダの階層内のフォルダ名を一括で変更したいのですがどうしたら良いですか?
例えば、以下のような階層で、「test」と名前がつくフォルダを一括で「changed」に変更したいです。
test
|_aaa
|_test
|_iii
|_test
0397デフォルトの名無しさん
垢版 |
2022/12/18(日) 09:53:03.96ID:aCP/2AKW
インデントが反映されなかったのでもう1度

test
 |_aaa
  |_test
   |_iii
    |_test
0399デフォルトの名無しさん
垢版 |
2022/12/18(日) 10:52:22.78ID:aCP/2AKW
>>398
深い階層からって難しくないですか?
0401デフォルトの名無しさん
垢版 |
2022/12/18(日) 11:58:44.72ID:aCP/2AKW
>>400
再帰はさすがに知ってます
0402デフォルトの名無しさん
垢版 |
2022/12/18(日) 12:00:25.16ID:aCP/2AKW
フォルダ一覧の配列を取得したら、その配列の順番をひっくり返すだけで大丈夫そうですか?
0403デフォルトの名無しさん
垢版 |
2022/12/18(日) 12:12:18.14ID:ciqdCn4z
再帰知ってて>>399とか意味わからん
知ってるのは名前だけとかいうオチじゃないよね?
とりあえず>>398のリストを作ってみようか
再帰知ってるなら簡単だよね
0404デフォルトの名無しさん
垢版 |
2022/12/18(日) 12:17:35.71ID:aCP/2AKW
>>403
上の階層から順番に処理する場合での再帰って言うのでは・・・
0405デフォルトの名無しさん
垢版 |
2022/12/18(日) 12:17:37.31ID:jVnwI9CT
>>402
globとか考えてるならワンチャンsortしたらいけるかもしれないけど、自分で深さ優先探索してサブディレクトリがなくなったらリネームして親ディレクトリに戻って他のサブディレクトリに移って同じことをするみたいな実装が確実
os.walkでいけるのかな
0406デフォルトの名無しさん
垢版 |
2022/12/18(日) 12:18:32.41ID:aCP/2AKW
>>403
上の階層から順番に処理する場合でも再帰って言うのでは・・・
0407デフォルトの名無しさん
垢版 |
2022/12/18(日) 12:21:53.43ID:aCP/2AKW
再帰関数っていうのは関数内で自分自身を呼び出すことだし、別に再帰には後ろから順番に処理するって意味は含まれてなくて、ループを使わずに同じ処理を繰り返す的な意味なのでは
0409デフォルトの名無しさん
垢版 |
2022/12/18(日) 12:34:42.73ID:ciqdCn4z
>>404,406
誰も上の階層からやるやつを再帰と言わないなんて言ってない
人のレスにケチつけるだけの人みたいだから俺は匙投げるわ
0410デフォルトの名無しさん
垢版 |
2022/12/18(日) 12:37:28.05ID:dO1j2fxY
>>402 みたいな発言観ると池沼っているんだなって判る
0411デフォルトの名無しさん
垢版 |
2022/12/18(日) 12:38:12.64ID:aCP/2AKW
>>409
再帰の本当の意味をあなたが知らなかっただけですよね?
0412デフォルトの名無しさん
垢版 |
2022/12/18(日) 12:40:05.30ID:aCP/2AKW
匙投げるも何も既に解決したと書いてるんですが笑笑
コードも示せない人は回答しないで欲しいですね
0413デフォルトの名無しさん
垢版 |
2022/12/18(日) 12:41:20.99ID:dO1j2fxY
池沼は煽ると発狂してレスが増えるから判り易い
0415デフォルトの名無しさん
垢版 |
2022/12/18(日) 14:14:57.50ID:zER91A4Q
>>398
わざわざリストする必要もなければ
わざわざ一番深いフォルダからリネームする必要もないでしょ

そうしたほうがいいユースケースがあるのは分かるが今回は質問者が疑問に思う方がまとも
0416デフォルトの名無しさん
垢版 |
2022/12/18(日) 16:52:43.20ID:UTT6KxDb
浅い方のフォルダを先にリネームしたら深い方のフォルダのフルパス変わるから悪手だと思う
0419デフォルトの名無しさん
垢版 |
2022/12/18(日) 17:40:00.53ID:ciqdCn4z
後ろからとか言うのはよくわからんけど幅優先と深さ優先にしてもどちらも再帰で処理できるでしょ
0420デフォルトの名無しさん
垢版 |
2022/12/18(日) 17:46:32.33ID:hT8eQZti
>>416
深い方のフォルダのフルパスが変わったら何が問題なの?
0421デフォルトの名無しさん
垢版 |
2022/12/18(日) 17:47:49.48ID:0kkAgxkU
カレントのフォルダ列挙して
各フォルダに再帰呼び出しした後
リネームするだけだと思う
0422デフォルトの名無しさん
垢版 |
2022/12/18(日) 17:57:12.11ID:d6DD8mST
再帰はglobやrglobがやってくれる
↓こういうので何か問題ある?

for x in Path(‘.’).rglob(‘test/‘):
__x.rename(str(x).replace(‘test’, ‘changed’))
0424デフォルトの名無しさん
垢版 |
2022/12/18(日) 19:47:03.04ID:ciqdCn4z
>>422
ループ内でループの選択項目を変更するのはちょっと怖いわ
rglob() とかは大丈夫なんだっけ?
0425デフォルトの名無しさん
垢版 |
2022/12/18(日) 21:05:52.90ID:ew4wvnMN
プログラミング初心者です。質問させてください。
pythonとseleniumでスクレイピングを始めました。
関数の引数に変数を指定したいのですがうまくいきません。
スクリプトはpastbinに貼りました。
https://pastebin.com/uznZaB7n
本来はBy.CSS_SELECTOR等が入る位置に、fix_search_methodと称する変数を入れることでBy.LINK_TEXTやBy.CSS_SELECTORと指定したいのですがInvalidArgumentExceptionと出てしまってうまくいきません。

また、必要性は低いと思うのですが、presence_of_element_locatedの括弧のところで直にBy. + search_methodと短く書くことは可能でしょうか。
初歩的な質問だと思い申し訳ないのですが、よろしくお願いします。
0428デフォルトの名無しさん
垢版 |
2022/12/19(月) 11:23:36.91ID:itMdNDye
30代Pythonクソチョン男は強姦魔の犯罪者!
雇うときには 父母と祖父母の戸籍謄本を提出させましょう!
0430デフォルトの名無しさん
垢版 |
2022/12/20(火) 06:02:07.12ID:VwdPHvLy
>>389
設定にコンソール画面の文字コードの設定が新たにできたみたい。
エディター>一般 |>コンソールのところを設定したら治った。
0431デフォルトの名無しさん
垢版 |
2022/12/21(水) 21:30:04.82ID:5PU21m8R
PySide6でqasync利用して@asyncSlotしたメソッドから
aiohttp.ClientSession.get呼ぶと止まっちゃうんですけど回避方法ありませんか
timeoutいれてみるとタイムアウトになります
0432デフォルトの名無しさん
垢版 |
2022/12/28(水) 23:20:39.25ID:n1i3RgfV
ChatGPTにyoutubeの登録者数を取得するコードを聞いたら以下のように教えられてやってみたんですが、「AttributeError: type object 'Credentials' has no attribute 'from_api_key'」と表示されて動きませんでした。
本当はどうすればよかったんでしょうか。

# APIキーを設定
api_key = "YOUR_API_KEY"

# google-authとgoogle-api-python-clientライブラリをインポート
from google.oauth2.credentials import Credentials
from googleapiclient.discovery import build

# YouTube APIのサービスを構築
youtube = build("youtube", "v3", credentials=Credentials.from_api_key(api_key))

# チャンネルIDを設定
channel_id = "UC_CHANNEL_ID"

# YouTube APIを呼び出して、チャンネルの登録者数を取得
response = youtube.channels().list(
id=channel_id,
part="statistics"
).execute()

# 登録者数を表示
print(response["items"][0]["statistics"]["subscriberCount"])
0433デフォルトの名無しさん
垢版 |
2022/12/28(水) 23:20:53.28ID:n1i3RgfV
また、以下はそんなライブラリ使わなくてもこうすればできるのにと思って書いたコードで普通に動くやつです。


API_KEY = 'MY_API_KEY'

import urllib.request
import json

# チャンネルIDを設定
channel_id = 'UCZf__ehlCEBPop-_sldpBUQ'

# URLを設定
url = f'https://www.googleapis.com/youtube/v3/channels?part=statistics&id={channel_id}&key={API_KEY}'

# GETリクエストを実行
response = urllib.request.urlopen(url)

# レスポンスボディを取得しJSON形式に変換
data = json.loads(response.read())

# 登録者数を取得
subscriber_count = data['items'][0]['statistics']['subscriberCount']

print(subscriber_count)

google-authとgoogle-api-python-clientライブラリを使うメリットって何なんでしょうか。
教えていただければと思います。
0434デフォルトの名無しさん
垢版 |
2022/12/28(水) 23:42:53.51ID:oCgdgjHS
それもChatGPTに聞けよ
0435デフォルトの名無しさん
垢版 |
2022/12/28(水) 23:54:35.12ID:n1i3RgfV
>>434 確かに

Google-authとgoogle-api-python-clientライブラリを使用することで、YouTube APIを使用してYouTubeチャンネルの登録者数を取得することができます。

GETリクエストを実行することでも、YouTube APIを使用してYouTubeチャンネルの登録者数を取得することはできますが、Google-authとgoogle-api-python-clientライブラリを使用することにより、以下のようなメリットがあります。

コードが簡単である。Google-authとgoogle-api-python-clientライブラリを使用することで、APIの呼び出しや結果の取得を簡単に行うことができます。
認証が簡単である。Google-authを使用することで、APIを使用するための認証が簡単に行えます。
他のAPIを使用することができる。Google-api-python-clientライブラリを使用することで、Google Cloud Platformの他のAPIを使用することができます。
また、Google-authとgoogle-api-python-clientライブラリを使用することで、APIを使用するための認証やAPIの使用に関するエラー処理なども簡単に行うことができます。

ただし、Google-authとgoogle-api-python-clientライブラリを使用することにより、APIを使用するために必要なライブラリが増えるため、ライブラリを使用することで必要になるライブラリを読み込む処理や、ライブラリのインストールが必要になることがあります。
0436デフォルトの名無しさん
垢版 |
2022/12/29(木) 06:04:08.55ID:KLxb2KfB
基本、スクレイピングは攻撃・営業妨害になるので、契約してAPI を使うべき!

図書館へ何万回もアクセスして、逮捕された香具師もいるから、
全てのスクレイピングの本には必ず、APIを使うように書いてある
0437デフォルトの名無しさん
垢版 |
2022/12/29(木) 08:24:12.90ID:xv5xMvYF
AIが進化するに連れ、結局僕らも機械的に思考してるだけなんだなってつくづく思う
0438デフォルトの名無しさん
垢版 |
2022/12/29(木) 08:26:42.17ID:aQnkLE0r
>>436
F5アタックと変わらんからな
Pythonがスクレイピングツールとして悪用されている現状を憂う
0441デフォルトの名無しさん
垢版 |
2022/12/30(金) 00:20:51.92ID:d9Nxjwsh
DL siteはAPI公開してないようですが、何秒に1回なら良いでしょうか?
(dlsite.com/maniax/work/=/product_id/RJXXXXXX.htmlみたいなページのデーブルデータを取りに行くもの)
0442デフォルトの名無しさん
垢版 |
2022/12/30(金) 09:05:19.28ID:KrdFdQSs
>>441
robots.txt見たらそのURLはアクセス禁止に指定されてるね
スクレイピングするなって事じゃないかな
0443デフォルトの名無しさん
垢版 |
2022/12/31(土) 08:00:21.75ID:5FWsFypL
質問失礼します。python初心者でよく問題の意味が分からないので答えを教えて頂きたいです。
一つ目の問題は、次のような10個の数字を配列に代入し、くり返し命令を使って、一つずつ表示させてみよう。2、5、8、9、30、45、55、102、183、209 が一つ目の問題です。
二つ目の問題は、(1)の10個の数字に対して、単純前方探索のアルゴリズムを使って、指定した数字を見つけるプログラムを考えてみよう。また、何回目の比較で見つかったかを表示させてみよう
が2つ目の問題です。
どうかご協力お願い致します。
0445デフォルトの名無しさん
垢版 |
2022/12/31(土) 08:08:31.91ID:5FWsFypL
>>444
そうです
0448デフォルトの名無しさん
垢版 |
2022/12/31(土) 09:06:51.59ID:5FWsFypL
>>446
何も書けれてません
0449デフォルトの名無しさん
垢版 |
2022/12/31(土) 09:20:31.79ID:5FWsFypL
>>447
荒らしじゃないです(´;ω;`)
0451デフォルトの名無しさん
垢版 |
2022/12/31(土) 09:36:52.14ID:5FWsFypL
>>450
5ちゃんねるするの初めてだったんです…
ルールとかわからずスレ立ててしまって申し訳ないです(´;ω;`)今度から気をつけますね。
0452デフォルトの名無しさん
垢版 |
2022/12/31(土) 13:11:41.62ID:pFPmTYEQ
>>451
死ねよ
0453デフォルトの名無しさん
垢版 |
2022/12/31(土) 17:33:52.87ID:TeLjBPNY
意地悪しないで教えてやれよ。
0454デフォルトの名無しさん
垢版 |
2022/12/31(土) 19:31:20.58ID:m5ypMvwu
>>453
本人乙
0458デフォルトの名無しさん
垢版 |
2023/01/02(月) 17:30:43.73ID:9+dRXyIF
JSONRPCのAPIを実行して返ってきたjsonをdictで返す関数がある
APIから返ってくるjsonの中身は、実行するAPIのメソッドによって変わる
この場合関数の返り値のタイプヒントはどう書けばええんやろか
0460デフォルトの名無しさん
垢版 |
2023/01/04(水) 01:08:55.22ID:O+gUhHpW
30代Pythonクソチョン男は強姦魔の犯罪者!
あなたの近くにいます!
父母と祖父母の戸籍謄本を提出させましょう!
0461デフォルトの名無しさん
垢版 |
2023/01/04(水) 20:02:20.16ID:Rrqo9EoM
ほんとにこのレベルで質問していいのか恐縮なんだが助力願いたい

・前提(実行環境:Win10-64bit, Python3.11)
GUI.py
 「選択」「開始」「停止」ボタンを持つGUIを出す
 他のpyファイルを実行する関数pyexecを持つ
script1.py なんかの処理をするやつその1。基本whileTrueしてる
script2.py なんかの処理をするやつその2。同上
parts.py script*.py共通のfrom import *用モジュール
があるとき、

GUI.pyでGUIを開き、そこで「選択」ボタン(filebrowse)からscript*.pyを選択
選択したモジュールを「開始」ボタンで並列実行開始し(ここで開始ボタンは無効化)、
その並列実行を「停止」ボタンでいつでも強制終了できる(ここで開始ボタンが復帰)
さらに「選択」ボタンからファイルを選び直し、再度「開始」ボタンから並列実行を開始できる
という風に動作させたい

script*.pyでimportするものは(partsを含む複数が)共通なので、importはGUI.pyの一度で済ませたいが、
GUI.pyで
 from parts import *
 th = threading.Thread(pyexec("script1"), daemon=True)
 th.start()
としたとき、parts.pyで定義した関数がth上では未定義になっていた

・質問
Threadする度にimportすべきかどうか
あるいは全体的にもっと効率のよい方法がないか
0462デフォルトの名無しさん
垢版 |
2023/01/04(水) 20:58:02.38ID:3yoX2IMb
まず、cpythonのmultithreadは本当に腐っているのでmultiprocessingかasyncio で書き換えましょう
0463デフォルトの名無しさん
垢版 |
2023/01/04(水) 21:19:50.21ID:Rrqo9EoM
マジ?threadがダメだからthreadingにしろってのは見たけどそれもダメなのか
multiprocessingは一回試したんだけど、呼び出した時にGUIが増殖したからなんかダメそうなんだよな……
asyncioっての調べてみるわ
0464デフォルトの名無しさん
垢版 |
2023/01/04(水) 22:31:04.17ID:Rrqo9EoM
ありがとう、プロセスプールとかいうのの存在も知れてよかった

でもダメだ、どのみち呼び出し先にimportが引き継がれてなかった
やっぱ呼び出すつどimportするしかないのか……?
0465デフォルトの名無しさん
垢版 |
2023/01/04(水) 22:41:59.87ID:p76DNoW9
別プロセスとして起動するなら必須じゃない?
モジュール変数を共有するなら、from~じゃなくて
import parts
parts.val1=1
って感じにすれば共有できる
その場合はgui.pyからscript1をimportして、threadingにtarget=script1.main()を指定する必要がある
exec関数使えば動的にインポート可能かな
0466デフォルトの名無しさん
垢版 |
2023/01/04(水) 23:44:16.96ID:Rrqo9EoM
なるほど、script1にpartsをimportするんじゃなく、GUIにscript1をインポートするのか
確かにそれならGUI上で定義した変数やら関数をscript1側でそのまま使えるな
最後に読み込んだpyファイル名を覚えておけば複数ファイル読み込んでも実行対象迷わないし
そのアプローチでやってみる。ありがとう

exec関数……そんな便利なもんあったのか……
0467デフォルトの名無しさん
垢版 |
2023/01/05(木) 01:38:12.65ID:Tyh0/h05
どういうわけかインポートができない ググった通りにやってるんだが……
中身の実行自体はされてるらしく、print文とか入れとくとそれは実行される
だがモジュール名を覚えてくれない

import importlib.util
import os
import gomi as g
g.MODULE_PATH = r"C:\Users\gomi\Downloads\test.py"
g.MODULE_NAME = os.path.splitext(os.path.basename(g.MODULE_PATH))[0]
spec = importlib.util.spec_from_file_location(g.MODULE_NAME, g.MODULE_PATH)
modulevar = importlib.util.module_from_spec(spec)
spec.loader.exec_module(modulevar)
exec(g.MODULE_NAME + ".main()")

Traceback (most recent call last):
File "C:\Users\gomi\Downloads\gomi.py", line 9, in <module>
exec(g.MODULE_NAME + ".main()")
File "<string>", line 1, in <module>
NameError: name 'test' is not defined
0468デフォルトの名無しさん
垢版 |
2023/01/05(木) 10:48:13.00ID:6RwFdPYm
import threading
import sys
sys.path.append('C:\\Users\\gomi\\Downloads')
exec("import gomi")
exec("th1 = threading.Thread(target = gomi.main)")
exec("th1.start()")

これなら動くよ
0469デフォルトの名無しさん
垢版 |
2023/01/05(木) 10:58:48.59ID:Cbg+aaE9
何で毎回importするのが嫌なの?死ぬの?
0470デフォルトの名無しさん
垢版 |
2023/01/05(木) 22:27:33.02ID:D2YyOGDn
ファイルのopenに失敗した時、Noneとか適当に返してくれればいいのになんで例外発生するの?
例外処理 ('A`)マンドクセ
0473461
垢版 |
2023/01/06(金) 04:40:42.68ID:u7/CdrNH
いろいろあって最低限動くところまで行けた ありがとう
ThreadPoolExecutorの正しい使い方を理解するのにこんなにもかかってしまった
どこもかしこもmap関数ばっか使ってるけど、あれ使ったら強制待ち状態になるのなんなんだ……
0475デフォルトの名無しさん
垢版 |
2023/01/06(金) 13:33:07.27ID:VhyAOykJ
django等のフレームワークでの設定に関する質問もこのスレでして大丈夫でしょうか?
0476デフォルトの名無しさん
垢版 |
2023/01/06(金) 16:44:44.30ID:YIB2cDqh
聴いてみれば良いんじゃね

python の例外は C++ とかと違って
if と実質同じでかなり気軽に使われてるイメージ
0477デフォルトの名無しさん
垢版 |
2023/01/06(金) 16:46:36.96ID:u7/CdrNH
例外処理だのトークン引き渡しだのは理解するのがめんどくさくなってしまった
スレッドの強制終了も結局グローバル変数で管理しちゃってるぜ
0478デフォルトの名無しさん
垢版 |
2023/01/07(土) 18:19:50.82ID:5L5/eVw7
30代Pythonクソチョン男は強姦魔の犯罪者!
あなたの近くにいます!
父母と祖父母の戸籍謄本を提出させましょう!
0479デフォルトの名無しさん
垢版 |
2023/01/07(土) 23:00:05.73ID:nmYYllE/
pythonだとreadlineやforでチマチマ読みながら処理するよりも
readメソッドで一気にリストに入れてから処理したほうがいいの?
メモリ確保のオーバーヘッドがどうとか言われないの?
0481デフォルトの名無しさん
垢版 |
2023/01/08(日) 01:46:16.03ID:QijmXXtc
>>479
状況による
0482デフォルトの名無しさん
垢版 |
2023/01/08(日) 01:56:01.96ID:uPZeFpc/
人間が入力しているときや、外部から五月雨式にデータが来るときには
はreadlineにするしかないよね
ファイルを読み込むときはreadの方がいいけど
0485デフォルトの名無しさん
垢版 |
2023/01/08(日) 18:36:42.80ID:DDY/xuz3
ここでいいよ
人いなくて機能してなかったし、情報分散するだけだし
0486484
垢版 |
2023/01/09(月) 04:28:43.75ID:7T37Y5iW
YouTube で有名な雑食系エンジニア・KENTA の有名な本
「21世紀最強の職業Web系エンジニアになろう」でも、

ウェブ制作・ウェブ開発は、根本的に異なる。
だから、板も分離している

日本の偏差値50 ぐらいの文系のアホでも、米国では70ぐらいに相当する。
日本人全員が東大生みたいなもの。
Ruby on Rails + バックエンドだけで、年収13万ドル

この技術は極めて再現性が高いから、貧乏人でも、文系のアホでも女でも稼げる。
それで革命を起こしたのが、KENTAの月千円のRailsサロン
0488デフォルトの名無しさん
垢版 |
2023/01/09(月) 05:02:14.97ID:V9DET1Rx
Python3.10をインストールしたのですが、
コマンドプロンプトでpython -Vを入力すると3.9.12とかなり前にインストールしたバージョンが表示され続けて途方に暮れてます…

もちろん3.9.12やanacondaはアンインストールし、環境変数のPathも以前の物は全て削除した上で3.10をインストールしているのですが、何度確認してもコマンドプロンプト上では3.9.12が表示されてしまいます
あとは何をすれば3.9.12が消えてくれるのか…
というかコマンドプロンプト上でバージョンを3.10に切り替えるにはどうすればいいのでしょう?
0491デフォルトの名無しさん
垢版 |
2023/01/10(火) 06:54:57.73ID:Xj7p33fy
片足スレチに突っ込んでるかもしれんが該当スレがないみたいなんでここで質問させてくれ
locateAllOnScreenを改変(特定色をマスクするように)して使いたいんで.実態を追いかけてみたんだが
cv2.matchTemplateなるものでぱったり足跡が途絶えてて
ググったらどうもOpenCVは最終的にC++を呼び出してるらしいんだが
じゃあどのファイルのどこからどこが呼び出されてるんだよっていうのがgithub見てもわからなかった
誰かその場所を(というかその場所の探し方を)教えてくれ
0492デフォルトの名無しさん
垢版 |
2023/01/10(火) 22:41:00.43ID:bxelJK0C
>>425
自己解決しました。
(By.<アトリビュート名>)のところを
search_methodにアトリビュート名を代入して
(getattr(By, search_method))と記述することで処理することができました。
ありがとうございました。
0496デフォルトの名無しさん
垢版 |
2023/01/14(土) 10:20:26.05ID:nBZfrni2
Visual Studio2022でnumpyインポートしようとするとバージョンちゃうでってメッセージでるんだけど
どないしたらいいの。。。。

numpy最新バージョンのはずなんだけど
0497デフォルトの名無しさん
垢版 |
2023/01/14(土) 13:59:26.94ID:hPgxDqwp
>>496
エラーメッセージをそのままここに貼りなよ
0498デフォルトの名無しさん
垢版 |
2023/01/14(土) 19:15:22.05ID:dsD0D5SD
>>1読めない人発見伝じゃん

>★エラーを解決したい場合★は、
> 表示されたエラーの全文(勝手に省略やスクショうp等の横着クソ行為禁止)と、
> 実行環境(Pythonのバージョン・OSとIDEの種類およびバージョン)をシッカリ書くこと。
0499デフォルトの名無しさん
垢版 |
2023/01/15(日) 11:39:39.03ID:/5abC/25
30代Pythonクソチョン男は強姦魔の犯罪者!
あなたの近くにいます!
父母と祖父母の戸籍謄本を提出させましょう!
0500デフォルトの名無しさん
垢版 |
2023/01/16(月) 22:10:47.04ID:Vc+hYIRt
>>1
数えきれないくらいにコピペしたのに、
画像すら表示されない、、、
0501デフォルトの名無しさん
垢版 |
2023/01/17(火) 00:32:13.03ID:q+/cnPgj
pythonの外部ライブラリのアドレスをわかる人、いますか?
会社でアクセス制限されててwotchdogを追加できません。
自宅でPythonをインストール後、コマンドプルンプとで「$ pip install watchdog」
を張り付けてエンターを押したら、なんとなくできたのですが、
pythonの外部ライブラリのアクセス制限で先にいけません。
あとwatchdogはネットワークフォルダに対応していますか?
0502デフォルトの名無しさん
垢版 |
2023/01/17(火) 02:30:30.68ID:PtqakeU7
まともに文章すら書けない馬鹿
0504デフォルトの名無しさん
垢版 |
2023/01/17(火) 04:01:59.08ID:xLJJWyME
>>501
知的障害者?
0505デフォルトの名無しさん
垢版 |
2023/01/17(火) 08:08:14.08ID:ZOmcJOSb
>>501
会社のPCがwindowsなら
windowsでプロクシを通す方法を検索しよう

それから社内のネットワーク担当者に、会社のプロクシを尋ねる
0506デフォルトの名無しさん
垢版 |
2023/01/17(火) 09:31:00.30ID:zVPLZXue
アクセス制限されてんだからたとえ抜け道があっても勝手に突破したらあかんやろ
上長へ相談
0510デフォルトの名無しさん
垢版 |
2023/01/18(水) 21:43:56.57ID:O4NvFfr9
右クリックしたときのコンテクストメニューで、py -3.8 -m venv envをPowerShellかコマンドプロンプトで実行するアイテムを追加したいです
どうしたらいいですか?
0511510
垢版 |
2023/01/18(水) 21:50:22.96ID:O4NvFfr9
新しいフォルダを作る→フォルダを開く→Powershellを開く→py -3.8 -m venv envを実行する

新しいフォルダを作る→フォルダを開く→右クリックでpy -3.8 -m venv envを実行する
をできるようにしたいです
0512デフォルトの名無しさん
垢版 |
2023/01/18(水) 22:43:10.20ID:jjVMGb4Y
>>511
それはpythonは関係ないだろ
その上検索すりゃ簡単に出てくるだろ
頭は大丈夫?
0513デフォルトの名無しさん
垢版 |
2023/01/18(水) 22:56:27.51ID:O4NvFfr9
>>512
関係ないです
ぐぐってもHKEY_CLASSES_ROOT\*\shell以外出てこなくて詰まってます
どうしたらいいですか?
0514デフォルトの名無しさん
垢版 |
2023/01/18(水) 22:57:42.58ID:O4NvFfr9
>>512
どう検索したら簡単にでてきますか?
0515デフォルトの名無しさん
垢版 |
2023/01/18(水) 23:14:15.05ID:jjVMGb4Y
>>513
検索してもわからないとは┐(´д`)┌ヤレヤレ
頭が悪過ぎるようだからまずはその頭を何とかするのが先ではないかな
0517デフォルトの名無しさん
垢版 |
2023/01/19(木) 08:51:03.42ID:MSnXQO9j
>>510
例えば漏れは、デスクトップに以下のショートカットを作っている

WSL2 を起動して、作業フォルダを\home\a\b にして、
VSCode をそのフォルダで開く

リンク先
C:\Windows\System32\wsl.exe code .

作業フォルダ
\\wsl$\Ubuntu-18.04\home\a\b

ただし、作業フォルダは事前に作っておく必要がある

だから、>>501
のように、新しいフォルダを作って、そのフォルダを作業フォルダにしてから、
PowerShell・コマンドプロンプトを起動するのは難しいかも
0519517
垢版 |
2023/01/19(木) 12:13:50.00ID:MSnXQO9j
例えば、デスクトップに以下のショートカットを作る

Ruby で、a.rb を実行する。
引数に、〜/tmp/x/xx と作成したいフォルダの絶対パスを渡す

リンク先
C:\Ruby25-x64\bin\ruby.exe C:/Users/Owner/Documents/Ruby/a.rb C:/Users/Owner/Documents/Ruby/tmp/x/xx

a.rbの内容は、

require 'fileutils'

# フォルダが存在しなければ、作る
FileUtils.mkdir_p( ARGV[0] ) unless Dir.exist?( ARGV[0] )

Dir.chdir( ARGV[0] ) # 作業フォルダを移動する

puts `where notepad`

sleep # 出力したコマンドプロンプト画面を閉じないようにする

出力
C:\Windows\System32\notepad.exe
C:\Windows\notepad.exe

ただし、Rubyで日本語、sjis/CP932 は文字化けするので、
PowerShell スクリプトで書いた方が良いかも
0520デフォルトの名無しさん
垢版 |
2023/01/19(木) 17:14:40.06ID:WEDTkb1s
Djangoについて質問です

1つのプロジェクトに複数アプリをぶら下げる場合、templateの置き場は各アプリごとにその直下に作成するのがいいのでしょうか?
それともプロジェクト直下にtemplateディレクトリを作成し、その中にアプリ名で区切ってまとめて置くのがよいのでしょうか?

どちらの形式も見かけるのですが、それぞれの利点がわからず、どちらが望ましいのかわからなくて困っています
0521デフォルトの名無しさん
垢版 |
2023/01/20(金) 01:49:28.05ID:ODBFu8yV
またオワコンrubyを宣伝するキチガイか
0522デフォルトの名無しさん
垢版 |
2023/01/20(金) 22:22:15.51ID:breyoYTI
>>510
powershellのps1ファイルを右クリックで開くことはできるけど
それ自体をコンテクストメニューに追加するのって出来たっけ?

実行したいフォルダにps1ファイルをコピペして、そこで実行する

という手順ではダメか?
0523517
垢版 |
2023/01/21(土) 12:26:42.58ID:B6CHQkJD
>>519
を、コマンドプロンプトではなく、PowerShell(PS)に変えたら、Ruby でも文字化けしない!

例えば、デスクトップに以下のショートカットを作る

PSを起動して、その中から、Start-Process でRuby の外部プロセスを起動して、a.rb を実行する。
引数に、〜/tmp/x/xx と作成したいフォルダの絶対パスを渡す

a.rb・〜/tmp/x/xxの間に空白が入るので、"〜" ではなく、'〜' で囲む。
-Wait は無くてもよい

リンク先
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe Start-Process -FilePath ruby -ArgumentList 'C:/Users/Owner/Documents/Ruby/a.rb C:/Users/Owner/Documents/Ruby/tmp/x/xx' -Wait
0524510
垢版 |
2023/01/21(土) 14:22:11.03ID:iCFOAJV8
>>520
わざわざ教えてくれたのにごめんなさい
結局、以下を作成することでできました
HKEY_CURRENT_USER\SOFTWARE\Classes\Directory\Background\shell\venv\command
0525デフォルトの名無しさん
垢版 |
2023/01/24(火) 01:39:50.83ID:k7nS/dQw
30代Pythonクソチョン男は強姦魔の犯罪者!
あなたの近くにいます!
父母と祖父母の戸籍謄本を提出させましょう!
0526デフォルトの名無しさん
垢版 |
2023/01/24(火) 10:36:52.38ID:oBdbZywc
watchdogを動かすPyを開くと指定されたフォルダにyyyymmddのtxtかcsvを作ってwatchdogのログを書き込む方法をご存知の方、ご教示願います。インターバルは何分、何秒でも可能。
0527デフォルトの名無しさん
垢版 |
2023/01/24(火) 14:28:50.07ID:GE24yRay
日本語でおk
0528デフォルトの名無しさん
垢版 |
2023/01/24(火) 15:32:45.91ID:OWKXlFN5
>>526
>>501の馬鹿か
0530デフォルトの名無しさん
垢版 |
2023/01/27(金) 19:49:23.66ID:fmMMbzU9
複数のリストを結合する方法はいろいろある
  +演算子
  *演算子
  +=演算子
  extendメソッド

その動作の違いはちょっとググればわかるけど
処理速度とかガベコレの効率とか
どういう時にどれを使えばいいのやら

それともどれでもいいのか
どれでもいいとすればpythonらしくないなあ
0531デフォルトの名無しさん
垢版 |
2023/01/29(日) 16:01:17.11ID:33llVTbQ
常考
join
0532デフォルトの名無しさん
垢版 |
2023/01/31(火) 14:09:29.90ID:F8VbnJh5
https://github.com/fanzeyi/pokemon.json/blob/master/pokedex.json
*火(Fire)と飛翔(Flying)の属性を持ったポケモンの数を表示
*消防士向きのポケモンを判定する  図鑑番号を指定して  水(Water)のタイプをもっていて、すばやさが平均以上の  ポケモンであれば、採用と表示する
*発電向きのポケモンを判定する  図鑑番号を指定して  でんき(Electric)のタイプをもっていて、ぼうぎょりょくが中央値以上の  ポケモンであれば、採用と表示する
import urllib
import json
response = urllib.request.urlopen('https://raw.githubusercontent.com/fanzeyi/pokemon.json/master/pokedex.json')
content = response.read()
jpk = json.loads(content)
jpk
誰かこれの回答と解説お願いします
0533デフォルトの名無しさん
垢版 |
2023/01/31(火) 15:32:22.01ID:F8VbnJh5
>>532
これ解決しましたわ
お騒がせしました
0535デフォルトの名無しさん
垢版 |
2023/01/31(火) 18:33:39.11ID:JyxcU5pt
JavaScriptやPythonやRubyやC++などを学んできましたが、
フレームワークを学ぶのは大変ですね。
JavaScriptやPythonでちょっとしたプログラムを自作することはできるのですが、
Djangoは学ぶのはとても難しいです。
デザインパターンをしっかり学ばなかったせいでしょうか。
自己流に一から作るほうが簡単です。
でもそれだと一般にソースを公開したり、チームで開発するソフトウェアには向いていないんでしょうね。
0538デフォルトの名無しさん
垢版 |
2023/01/31(火) 22:52:09.04ID:rohnwrjt
Vsual Studio code使ってるんですが
importのところで小文字大文字関係なしにインテリセンス出すにはどこを変えたらいいのでしょうか
PySideつかおうとするとimport pだとPySideがインテリセンスに表示されません
0539デフォルトの名無しさん
垢版 |
2023/01/31(火) 23:49:18.99ID:9kyLcAJe
なんでもはないから開発元に要望だすか大文字タイプする
TabnineなんかのAI補完に頼るのもあり
0540デフォルトの名無しさん
垢版 |
2023/02/01(水) 10:29:58.19ID:zniWuaqH
「AはBと等しくない(not equal)」という場合、
A != B
not A == B
これらの違いって何?
0543デフォルトの名無しさん
垢版 |
2023/02/01(水) 12:00:17.30ID:BH4poKX+
>>535
KENTA の月千円のRails サロンに入れば?
以下に書いた

スレ立てるまでもない質問はここで 163匹目
https://mevius.5ch.net/test/read.cgi/tech/1670470167/506

独学なら、黒田努の3冊の本がおすすめ。
改訂4版 基礎 Ruby on Rails、黒田努・佐藤和人、2018/9

この本が入門書。
ただし、Ruby 2.5.1, Rails 5.2 だから動かないかも。
読むだけで済ますとか

YouTube, かよちんchannel
【半年間使ってわかった】PythonのwebフレームワークDjangoを学ぶメリット・デメリット

かよちんは未経験の大学生で、Railsでポートフォリオを作って就職した。
1年運用で働いたが、開発したかったので転職した。
転職先では、Djangoで開発している

やっぱり、Pythonをやった香具師よりも、Railsをやった香具師の方が、転職では有利。
ほとんどのフレームワークが、Railsを基礎としているので、
なぜ、ウェブ開発でRailsではなく、Pythonを選択したのか聞かれて、返答に困る
0545デフォルトの名無しさん
垢版 |
2023/02/01(水) 13:32:46.98ID:3Rk4XT/g
>>540
もし!=と==が別実装ならショートカットできる
==は最後まで調べないと判断できないが
!=は一致しない部分が見つかった時点で終了できる
0547543
垢版 |
2023/02/01(水) 13:41:22.48ID:BH4poKX+
Ruby は高騰の一途! 異常。
Ruby on Rails, AWS Solution Architect は、13万ドルとか

Stack Overflow 2023年の年収。高低

Ruby, Elixir : 9.3 万ドル
Go : 8.9
Rust : 8.7

多くの言語 : 6.5前後

PHP : 5
Dart : 4.4
0548デフォルトの名無しさん
垢版 |
2023/02/01(水) 14:36:50.86ID:NVxYNrPq
細かく言えば使われるのが__eq__か__ne__かの違いはあるけど意味的には同じでしょ
判定が2回行われるってのがよく分からん意見だけどどういう意味なの?
0549デフォルトの名無しさん
垢版 |
2023/02/01(水) 14:49:51.12ID:bpYqjqik
>>535
ライブラリもモジュールもフレームワークも使わずに

CGI描いてたの?
それともCGI描いたことなかったの?
0550デフォルトの名無しさん
垢版 |
2023/02/01(水) 15:39:17.68ID:dnn0CNL2
A==Bを評価した後not判定になるのかと思ったんだ
テキトーこいてすまんかった
0551デフォルトの名無しさん
垢版 |
2023/02/01(水) 18:43:45.72ID:ZvDzVmws
https://ideone.com/EHu7Pn
拙い知識だけど、こんな感じになった
A != Bは、__ne__()だけ
not A == Bは、__eq__()と__bool__()が呼ばれた

でも__ne__の実装は、だいたいこんな感じになるよね
return not self.__eq__(other)
0552デフォルトの名無しさん
垢版 |
2023/02/03(金) 23:40:22.04ID:qCavOBaP
wingetで3.11インストールして、その後3.10もインストールしようとすると既に入ってるでインストールできません
何か解決方法はあるでしょうか
0554デフォルトの名無しさん
垢版 |
2023/02/05(日) 14:54:10.86ID:4HQ82Rs/
NASから特定のフォルダ内にある特定のフォルダを
ローカルにコピーする処理を作ってます。
フォルダ内のリストを取得する事には成功したのですが
ファイルはいくつか見つけたのですがフォルダのコピーに
ついてはいくら調べても出てこなくて困っています。
もしかしてフォルダを自前で作成した上でその中に
全てのファイルをコピーすると言う処理しか出来ないのでしょうか?
0556デフォルトの名無しさん
垢版 |
2023/02/05(日) 16:12:08.24ID:4HQ82Rs/
>>555
shutilを使えばファイルだけではなくディレクトリ(フォルダ)の
のコピーも扱えると言う事ですね。
失礼しました。もう少しドキュメントちゃんと読んでみます。
ありがとうございました☺
0557デフォルトの名無しさん
垢版 |
2023/02/05(日) 20:54:50.82ID:H9D6BAyd
10 = 5 * x
20 = 18 + x
30 = 60 / x

のような条件式で、x = 2の回答をポンっと計算出来るPythonのライブラリって何が有りますか?
0558デフォルトの名無しさん
垢版 |
2023/02/05(日) 21:36:06.56ID:xYG0eG0a
条件式?
0560デフォルトの名無しさん
垢版 |
2023/02/07(火) 22:46:04.07ID:JLSdttvw
30代Pythonクソチョン男は強姦魔の犯罪者!
あなたの近くにいます!
父母と祖父母の戸籍謄本を提出させましょう!
0561デフォルトの名無しさん
垢版 |
2023/02/12(日) 23:36:06.22ID:UVLUdqfg
chatGPTが

bin_str = struct.pack('!g', num)

なんてコードを吐いたんだが、
struct.packに'!g'なんてフォーマットあるの?
0562デフォルトの名無しさん
垢版 |
2023/02/18(土) 23:14:23.54ID:kBeBEpAv
スクレイピングの練習をしているのですが、
やりたい作業の方法が思いつかないので教えてください。
下記はコジマの商品一覧ページです。

作業はseleniumとlxml.htmlで行っています。
htmlを取得し、48商品すべてのポイントをスクレイピングしようと下記を実行しました。

u='1UMto4'
driver.get(u)
html = driver.page_source
html = lxml.html.fromstring(html)
css_pt = '#fwCms_wrapper > div > div > div.layoutGrid > div.fwCms_box.frame_MB > div.ProductList.MK2PFRDL010_01 > div > ul > li > p.point.small.mt1 > span.number'
pt = [int(pt.text_content().replace(",","").strip()) for pt in html.cssselect(css_pt)]

ポイントの記載がない商品は、0として値を取得したいのですが、
上記方法だとポイントがある商品しか値を取得できません。

そこでhtmlにp.point.small.mt1 > span.numberが記載されていない商品にもp.point.small.mt1 > span.numberhtmlを追記してポイント0を加えた上で、
css_pt = '#fwCms_wrapper > div > div > div.layoutGrid > div.fwCms_box.frame_MB > div.ProductList.MK2PFRDL010_01 > div > ul > li > p.point.small.mt1 > span.number'
pt = [int(pt.text_content().replace(",","").strip()) for pt in html.cssselect(css_pt)]
を実行するようにしてみたいです。
何かいい方法ありますか
0563デフォルトの名無しさん
垢版 |
2023/02/18(土) 23:18:16.75ID:kBeBEpAv
>>562

1UMto4の前に
えいち
てぃてぃー
ぴーえす
コロン
スラッシュ
スラッシュ
is
ドット
gd
スラッシュ
がつきます。
書き込み規制の関係で抜けてます
0564デフォルトの名無しさん
垢版 |
2023/02/19(日) 01:00:31.81ID:IvV72Gup
もうここで質問するよりもChatGPTに聞く方が早く良い回答を得られるようになってきたな
0565デフォルトの名無しさん
垢版 |
2023/02/19(日) 01:11:03.30ID:IvV72Gup
>>561
それもChatGPTに聞けばええ
0566デフォルトの名無しさん
垢版 |
2023/02/20(月) 12:18:38.79ID:PxHerdum
質問者のレベルが下がって
アホのChatGPTにでも答えられる質問が増えただげ
0567デフォルトの名無しさん
垢版 |
2023/02/20(月) 12:38:05.76ID:O71qPjZc
フローチャートは出来の悪い人の為。
0568デフォルトの名無しさん
垢版 |
2023/02/20(月) 15:07:29.65ID:g2tV9Mf1
クラス内のメソッドが長くなった場合、分かりにくいんで外に定義する方法とかありますか?
0572デフォルトの名無しさん
垢版 |
2023/02/20(月) 20:18:54.05ID:O71qPjZc
深層学習でどれを一番良く使ってますか?
aws,azur,gcp,アリババ、ibmなど。
0574デフォルトの名無しさん
垢版 |
2023/02/20(月) 23:23:04.55ID:gNMmViiq
>>562
ポイントの有無に関係なく商品レベルで要素を取得してループを回す
ループの中でポイントがなければ0を設定する処理を入れる

擬似コードで書くと
points = [ item.get_point() or 0 for item in get_item()]

DOMを検索する回数を減らしたいようであれば
ポイント有り商品だけ先に取得してポイント無し商品だけ取得したリストを足す方法もある
0575デフォルトの名無しさん
垢版 |
2023/02/21(火) 20:01:30.21ID:PVPoXuZa
>>566
超初心者用スレで何言ってだこいつ
0576デフォルトの名無しさん
垢版 |
2023/02/23(木) 18:10:30.86ID:3kw8TrFj
Windows上のPythonで、昔あったおもちゃのサイモンのプログラムを作ろうと思ってます

CUIでの動作ですが、サイモンの中身のプログラムは作れたので、
枠を描画したり内部の色を点滅させたりといった描画をするプログラムを
作ろうと思ってます

そのため描画ライブラリについて調べており、PillowやOpenCV、turtleと
いろいろあるようで、とりあえずturtleを使おうと思っているのですが、
turtleに無い機能で、例えばPillowにはある機能を使いたい、なんていうこととなった場合、
どうするものなのでしょう
あきらめて似たようなものを自作する、なのでしょうか
turtleのウィンドウに対して、Pillowで描画させる、とか、したりできたりするものなのでしょうか
0577デフォルトの名無しさん
垢版 |
2023/02/23(木) 18:25:32.96ID:n1e6/0k5
www.kojima.net/robots.txt

User-Agent: *
Disallow:

これは、Disallowに、/ が無いから、
すべてのクローラーのサイト内巡回を許可しているのか?

Ruby, Nokogiri で、12件でやってみた
www.kojima.net/ec/prod_list.html?cate=tv_recorder&limit=1&sort=1&page=6

構造としては、ポイントがある場合、
価格部分のHTML・<p class="price small mt1"> の次の兄弟に、
ポイント部分のHTML・<p class="point small mt1"> が来るはず。
もし、これが来なければ、0 ポイントのHTML片を作って、価格部分の次の兄弟に挿入する

require "nokogiri"

=begin
価格部分のHTML

<p class="price small mt1">
<span class="number">6,350</span>
<span class="yen">円(税込)</span>
</p>
=end

次へ続く
0578577
垢版 |
2023/02/23(木) 18:26:45.15ID:n1e6/0k5
# 0 ポイント部分の、HTML を作る
Point_Str = <<"EOT".gsub( /\n/, "" ) # 改行を削除する
<p class="point small mt1">
<span class="number">0</span>
<span class="rate">ポイント(10%)</span>
</p>
EOT

# ローカルPC にダウンロードした、HTMLファイルに対して処理する
index_path = File.join(__dir__, 'index.html')
doc = Nokogiri::HTML( File.read index_path )

li_css = '#fwCms_wrapper > div > div > div.layoutGrid > div.fwCms_box.frame_MB > div.ProductList.MK2PFRDL010_01 > div > ul > li'
price_css = 'p.price.small.mt1'
point_css = 'p.point.small.mt1'
# li_css + ' > p.point.small.mt1 > span.number'

doc.css( li_css ).each do |li|
# li_css の直下に、point_css が存在しない場合
if ( li > point_css ).length == 0
point_node = Nokogiri::HTML::DocumentFragment.parse Point_Str

# li_css の直下のprice_css の次の兄弟に、point_css を挿入する
price_node = ( li > price_css ).first
price_node.next = point_node
end
end

doc.css( li_css + ' > ' + point_css ).each do |p_node|
# ポイントのカンマを削除してから、整数型に変換する
p Integer( ( p_node > 'span.number' ).first.content.gsub( /,/, "" ) )
end
0579デフォルトの名無しさん
垢版 |
2023/02/23(木) 20:03:41.76ID:L529mVPq
>>576
それらについては知らないけど、openglの勘があればコンテクストが共有されているという前提でidを使いまわても動くことはある
0580デフォルトの名無しさん
垢版 |
2023/02/24(金) 11:06:33.16ID:7LE1rXtA
tk canvas <-> numpy <-> PIL(pillow)
でイケるはず
0583デフォルトの名無しさん
垢版 |
2023/02/25(土) 09:51:49.11ID:GNntVl1A
Windows10でpython使おうと思ったが、pip使えず
パス通せとかいうけど、pip自体インストールされてない様子
0585デフォルトの名無しさん
垢版 |
2023/02/25(土) 11:58:50.91ID:W8+ujpnw
パスがあいまいならpipは直接つかわず
py -m pip
python -m pip
で実行した方がいいよ
0587デフォルトの名無しさん
垢版 |
2023/02/25(土) 23:37:55.80ID:Ce8RSWTp
beautifulsoupでHTMLのテーブルを読ませるとスキップして無視されるセル(列)があるけど、何の法則?
テーブルタグやCSSに違いは見当たらない
0589デフォルトの名無しさん
垢版 |
2023/02/27(月) 11:18:47.80ID:Ftjf9Ogr
しきい値を計算して、ある値がしきい値より上になるか下になるか調べたいです
浮動小数点数にはdecimal型を使うのが一番誤差がなくて間違いないと思いますが、処理に時間が掛かってしまいます

以下のようにroundで丸めて比較する方法でも問題ないでしょうか?
 print(round(0.1 + 0.1 + 0.1, 10) == round(0.3, 10))

※下記サイト参照
https://note.nkmk.me/python-math-isclose/

他にこのやり方を説明しているサイトが見つからなかったので気になりました

ご教示お願いいたします
0590デフォルトの名無しさん
垢版 |
2023/02/27(月) 11:40:45.26ID:UQ+3DsEX
一致するかなら桁数合わせるのはわかるけど大小比較したいんだよね?
ウィキペからでもいいから誤差や浮動小数点数を学んでみては
Python関係ない話
0591デフォルトの名無しさん
垢版 |
2023/02/27(月) 12:27:22.46ID:Ftjf9Ogr
>>590
大小比較したいです
ただ≦や≧を使いたいので、結局は一致するかどうかも判定しないといけないという理解です
一応誤差について勉強したつもりですが、間違っているでしょうか
0592デフォルトの名無しさん
垢版 |
2023/02/27(月) 17:12:57.82ID:pOLDvL5X
gosa(1000)だとTrueだけど
gosa(10000)だとFalse

def gosa(n):
____a=0
____b=0
____for i in range(n):
________a=a+0.1
________b=b+1
____print (round(a,10)==round(n*0.1,10))
____print (b)
0593デフォルトの名無しさん
垢版 |
2023/02/27(月) 17:30:22.16ID:pOLDvL5X
gosa2(1000000)だとTrueだけど
gosa2(10000000)だとFalse

def gosa2(n):
____a=0
____b=0
____for i in range(n):
________a=round(a+0.1,10)
________b=b+1
____print (a==round(n*0.1,10))
____print (b)
0594デフォルトの名無しさん
垢版 |
2023/02/27(月) 19:43:54.65ID:RFn3Xt8q
比較したい値valueと閾値thresholdがあるとして、
等しいかどうかの判定はmath.abs(value - threshold) < 誤差 にするかな
これがFalseならvalue - thresholdの符号を返せばいいんだけど、Pythonってsign関数ないんだな。めんどいね
NumPyありなら、
0 if math.abs(value - threshold) < 誤差 else np.sign(value - threshold)
と1行で書けるけど
0595デフォルトの名無しさん
垢版 |
2023/02/28(火) 11:03:56.08ID:ViAY60W+
>>594
ありがとうございます
だんだん分かってきました

ということはvalueがthreshold以上かどうかの判定って
(threshold - 1e-10) < value
でできますよね?
0597デフォルトの名無しさん
垢版 |
2023/02/28(火) 12:30:20.05ID:XIDooo1f
>>595
マイナスじゃなくてプラスじゃないの?絶対値と不等号の式展開が間違ってると思う
0598デフォルトの名無しさん
垢版 |
2023/02/28(火) 13:34:00.12ID:TekC3NpZ
>>595
「以上かどうか」を判定するなら<=を使えばいいのに、なんでそんなことをするんだろ
1-(1e-10)<1-(1e-11)がTrueになったり
1+(1e-10)<1+(1e-11)がFalseになったりするけど
そういうのは気にしなくていいのかな
0600デフォルトの名無しさん
垢版 |
2023/02/28(火) 16:06:07.93ID:ViAY60W+
<=を使うのが普通なのでしょうか?
であれば>>589で書いたように誤差を考えて、予め適当な桁で丸めるかdecimalを使うのが自然ですか?
質問ばかりですみません
python関係なさそうですねこの話は

>1-(1e-10)<1-(1e-11)がTrueになったり
>1+(1e-10)<1+(1e-11)がFalseになったりするけど
この話は浮動小数点を使う以上どこかで丸めないといけないので仕方のないことだと思います
0601デフォルトの名無しさん
垢版 |
2023/02/28(火) 16:54:54.99ID:TekC3NpZ
>>600
<=を使えば正しく判定できるのに使わず
間違った判定をしてしまう方法を使うのはなぜかという話だ

「等しいかどうか」の判定の場合なら>>594のようにするんだろうけど
ID:ViAY60W+ がやりたいのは「以上かどうか」の判定なんだろ?
0603デフォルトの名無しさん
垢版 |
2023/02/28(火) 18:24:36.64ID:WY0oPgQr
そもそも有効桁数の扱いがおかしいから
誤差積み重なってるし妥協が必要な案件
その意味で <= にする選択もあり

>>602
了見が狭い
0604デフォルトの名無しさん
垢版 |
2023/02/28(火) 19:41:42.58ID:hjKmeqKS
decimal使わないんなら許容誤差の中に収まってるかどうかを判定すべきじゃないの?
閾値を多少オーバーしててもそれが許容誤差範囲内なら閾値を超えてないとみなすみたいな緩さが必要
0605デフォルトの名無しさん
垢版 |
2023/02/28(火) 20:02:14.62ID:/fq4UOje
>>> print(0.1 + 0.1 + 0.1 == 0.3)
False
>>> print(0.1 + 0.1 + 0.1 >= 0.3)
True
>>> print(0.1 + 0.1 + 0.1 <= 0.3)
False
0608デフォルトの名無しさん
垢版 |
2023/02/28(火) 22:14:11.38ID:1DbqyBOF
等号、不等号の問題じゃなく
計算誤差と有効桁数の問題じゃないのか?
理解できているならば、最初の質問の>>589で問題ない
きちんと有効桁数で計算誤差を無くすことが出来れば
等号だろうが不等号だろうが、自由に使える

あと
計算誤差でのバグが>>592
有効桁数でのバグが>>593
でしょ、分かりづらいけど
0610デフォルトの名無しさん
垢版 |
2023/02/28(火) 23:37:33.90ID:1DbqyBOF
>>609
そんなの計算式によりけりでしょ
質問者の0.1+0.1+0.1は
round(X, 10)でもround(X, 1)でも計算誤差は無くなる
0612デフォルトの名無しさん
垢版 |
2023/03/01(水) 00:23:23.23ID:azDagB3j
>>611
aとかbとかcの情報が全く無いのにこたえられるわけないでしょ

質問者なら、情報の出し惜しみなんてしてたら欲しい答えが手に入らないぞ
質問者じゃないなら、もっとちゃんと勉強した方がいいと思うぞ
0613デフォルトの名無しさん
垢版 |
2023/03/01(水) 02:22:29.09ID:C4kGOF7j
>>612
そこでいきなり躓くのは予想外だったわw
a, b, cは任意のfloat
その計算結果をdという任意のfloatと大小比較したいって話だろ
計算式次第とか言うから計算式を固定してやったのにそれすら答えられないようじゃ意味ないだろ

理解できているならばきちんと有効桁数で計算誤差を無くすことが出来るんだよね?
0615デフォルトの名無しさん
垢版 |
2023/03/01(水) 05:23:15.99ID:mASV1q5s
案外、環境構築や維持が大変な印象
個人端末で使うツールならともかく、これをサーバー側で使うのはちょっと
0616デフォルトの名無しさん
垢版 |
2023/03/01(水) 07:42:18.32ID:azDagB3j
>>613
「だろ」と言われても、ただの回答者の俺には何も分からん
あと、質問者じゃないなら質問者を助けるレスをすればいいんじゃとも思った

で、その条件だけだと「計算誤差を無くすことが出来ない」が回答になる
簡単な例えだと
(1e+20)+(1e+0)は明らかに(1e+20)より大きいのに結果は等しくなる
有効桁を超えるような差があれば加算した時点で必要な情報が落ちるから
0620デフォルトの名無しさん
垢版 |
2023/03/01(水) 12:51:52.55ID:/+zlFgx9
>>616
出来ないのかよw

>きちんと有効桁数で計算誤差を無くすことが出来れば
出来ないこと書いてたのかよw

入力値の範囲と計算結果の取りうる範囲と必要な精度の3つの条件次第では出来る場合があるというだけ
もうちょっとちゃんと勉強した方がいいと思うぞ
0622デフォルトの名無しさん
垢版 |
2023/03/01(水) 16:23:46.38ID:68s28u+f
decimalで良いから
Σ[n=0→N](1/n!)
を計算してみてくれ
全部の項が有理数だから
誤差無しで計算出来るよな
0623デフォルトの名無しさん
垢版 |
2023/03/01(水) 16:57:28.35ID:qu6Mgfeb
本質は精度すなわち桁数なんだから無理数だから有理数だからっていうのもちょっと違うけどな
0624デフォルトの名無しさん
垢版 |
2023/03/01(水) 18:11:53.52ID:azDagB3j
>>620
最初(>>608)から条件次第の「出来れば」を使ってる
実際に0.1+0.1+0.1は「出来る」
floatだけの条件は「出来ない」
と答えてるわけだけど、間違ってるか?
0625デフォルトの名無しさん
垢版 |
2023/03/01(水) 18:59:21.19ID:6o6pBq27
小数が誤差と切り離せない世界じゃ誤差無しって言葉は刺激が強すぎるんだよ
誤差無しじゃなくて誤差が許容範囲に収まる的な言い方が良いよ
0626デフォルトの名無しさん
垢版 |
2023/03/01(水) 19:51:47.90ID:47xEv8Wd
>>601
594だけど、594はnp.signを使った三項演算子の方は、等しくない(事前に設定した誤差範囲内とみなさない)場合には、より大きいかより小さいかを返せるようになってるよ。
0627デフォルトの名無しさん
垢版 |
2023/03/01(水) 19:54:43.50ID:47xEv8Wd
有理数体のなかで誤差なしで計算したい(有理数は適当な小数にしないで有理数のまま)ならSymPyがおすすめ
代表的な無理数(冪乗根とか円周率とかネイピア数)に対してもそのままいい感じに計算してくれるよ
0629デフォルトの名無しさん
垢版 |
2023/03/04(土) 00:43:59.71ID:9lG2HFfg
LinuxやMacでよく使うzshでは {05..13} みたいに開始終了をゼロパディングありで展開してくれたりと
globが色々と親切便利なんだけど、pythonで同じことってできます?
0630デフォルトの名無しさん
垢版 |
2023/03/04(土) 13:44:16.31ID:9lG2HFfg
例をあげると連番ファイルを取得するとき
files = glob.glob("hoge0[5-9]") + glob.glob("hoge1[0-3]")

files = glob.glob("hoge{05..13}")
みたいできたら便利だよねって話

まー無理だよね
0631デフォルトの名無しさん
垢版 |
2023/03/04(土) 16:25:12.30ID:TFyrRW48
下手な煽りだな
シェルの機能を使いたいならシェルスクリプトでやればいいし
Pythonの機能を使いたいならPythonでやればいい
どちらでも簡単にできる
0632デフォルトの名無しさん
垢版 |
2023/03/05(日) 06:56:30.57ID:dQa+t3b2
pythonスレで超初心者が質問してるのに
なんでシェルスクリプトでやればいい、が出てくるんだよ

pythonで簡単にできるんなら教えてやればいいのに
超初心者なんだから

知らんけど
0635デフォルトの名無しさん
垢版 |
2023/03/05(日) 14:33:19.64ID:wYGIUXOl
ChatGPTはどっかのサンプルコード持ってきてるのかね
そのうちビミョーなシステムが乱立しそう
0637デフォルトの名無しさん
垢版 |
2023/03/06(月) 09:49:26.31ID:+SNoJfi8
機械学習関係でいくつかプログラムを動かしたいのですが
うち1つがconda前提のものです
環境がごちゃごちゃになりそうなのでcondaは入れたくないのですが
condaでないと動かないようなプログラムはあるのでしょうか
0638デフォルトの名無しさん
垢版 |
2023/03/06(月) 14:17:58.54ID:diWxUEyJ
Nothing exists.
0640デフォルトの名無しさん
垢版 |
2023/03/06(月) 18:19:37.81ID:cC2tHqtD
conda前提のパッケージを、conda以外の環境で動作させるためにする努力の価値が
その成果に見合うのかどうか、という問題はあろうな

素直にcondaで動かしたらどうだろうかな
condaでなら動くのだし

がんばればなんでもできます、と称して無限の時間を浪費できるのなら止めないが
0642デフォルトの名無しさん
垢版 |
2023/03/07(火) 00:30:19.09ID:qVFHfpwA
conda環境丸ごとdockerでコンテナ化しちゃえば環境の汚染は気にならない気がする。
0643デフォルトの名無しさん
垢版 |
2023/03/07(火) 08:23:50.45ID:sKxL2SZc
>>642
良いアイデアをありがとうございます
自分の環境がHyper-Vベースの仮想化と相性が悪くて有効にすると全体の動作が遅くなってしまうのですが今後の参考にさせていただきます
0644デフォルトの名無しさん
垢版 |
2023/03/07(火) 18:17:32.45ID:GyJLAiKU
アクセスすると、はい か いいえ を選ばされ
その答えに対応するページに飛ばされるサイトがあります。

@アクセスする
Aその飛ばされた先のURLを取得する
というコードが書きたいです。

webbrowser.open(url)

では@が出来てもAが出来ません。

Seleniumは何度やっても
selenium.common.exceptions.WebDriverException: Message: 'chromedriver.exe' executable needs to be in PATH.
エラーが出て上手くいきません。

なにかいい方法があれば教えて下さい。
0646デフォルトの名無しさん
垢版 |
2023/03/09(木) 07:52:53.98ID:4mKd36cG
まずはChatGPTに聞く、をテンプレにしてもいいんじゃないの?

>>644 もChatGPTで回答返ってくるよ
なんならコードも書いてくれる
0647デフォルトの名無しさん
垢版 |
2023/03/09(木) 10:19:49.67ID:o+JIvC59
PATHの編集方法をググれば解決する
0648デフォルトの名無しさん
垢版 |
2023/03/09(木) 11:33:45.65ID:PCiF5eQX
chatなんとかもいまいち信用ならん。
さっき「アダ・マウロってだれですか?」って訊いたら
モディリアーニの経歴紹介しおったw
0649デフォルトの名無しさん
垢版 |
2023/03/10(金) 02:11:51.12ID:YTsMunwf
>>648
信用ならんは即使い物にならないに直結しない。
聞いてみてダメだなと思ったらBing AIチャットに聞いて、待ってる間に公式リファレンス開いて、Bingがダメだったとき初めてリファレンス読む。
リファレンスだけから理解するよりは速いからね。
0654デフォルトの名無しさん
垢版 |
2023/03/11(土) 17:34:40.06ID:MmJYWuJb
日本語のファイル名だとファイル名が文字化けするソフトがある
だからファイルを日本語から英数字にしたいんだけど

日本語をローマ字読み(英数字)に再変換する方法ってある?
見分けがつけばいいから漢字の訓読み音読みが間違ってもいい
なんなら漢字は抜けてもいいや

大量にあるからpythonでファイル名変換できたらいいなって思った
0656デフォルトの名無しさん
垢版 |
2023/03/11(土) 17:59:37.01ID:0fOr9zyF
pip install romkan
import romkan
japanese_text = "こんにちは、犯人はヤスです。"
romanized_text = romkan.to_roma(japanese_text)
print(romanized_text) # 「konnichiha, hannin wa yasu desu.」
0658デフォルトの名無しさん
垢版 |
2023/03/11(土) 19:30:02.12ID:MmJYWuJb
>>656
romkan入れた
ありがとう

ちなみにpipインストールするとエラーがでた
romkanのREADME.rstにASCⅡ以外の文字が入ってるらしい
ソースを落として「README.rst」がopenされてる行を

README = open(os.path.join(here, 'README.rst'), encoding='utf-8').read()

と書きなおして、同フォルダのsetup.pyから入れる必要があるみたい
0659デフォルトの名無しさん
垢版 |
2023/03/13(月) 12:29:42.49ID:MQXrOMNA
空を自由に飛びたいな
はい チンコプター
0662デフォルトの名無しさん
垢版 |
2023/03/13(月) 14:23:14.04ID:xSz/HmKT
Windows の SAPI ってローマ字にする機能無いんだっけ
0664デフォルトの名無しさん
垢版 |
2023/03/13(月) 14:45:36.27ID:puY54q1D
すみません。
Anacondaをインストールしようとしましたが、

Error loading Python DLL 'C\Users\(ユーザー名)\AppData\Local\Temp\_MEI48562\python 39.dll’,
LoadLibraly:指定されたモジュールが見つかりません。

と出て途中でインストールが止まってしまいます。
_MEI48562というフォルダを探してみてもまだ作成されていないのか見つかりません。
どうすれば解決できるでしょうか?
0667デフォルトの名無しさん
垢版 |
2023/03/14(火) 02:43:22.39ID:WthbhZLX
どうせ漢字のユーザー名だろ
馬鹿にありがち
0669デフォルトの名無しさん
垢版 |
2023/03/14(火) 11:31:42.32ID:VNqhYyU8
>>667
それだ
0673デフォルトの名無しさん
垢版 |
2023/03/14(火) 14:46:46.07ID:MvkWgGoW
>>672
馬鹿は黙っていればいいのに
0674デフォルトの名無しさん
垢版 |
2023/03/14(火) 16:06:49.79ID:nJMjNPeI
MAUI Hentai School には無理
0675デフォルトの名無しさん
垢版 |
2023/03/15(水) 21:02:43.53ID:a3cohPYc
30代Pythonクソチョン男は強姦魔の犯罪者!
あなたの近くにいます!
父母と祖父母の戸籍謄本を提出させましょう!
0676デフォルトの名無しさん
垢版 |
2023/03/16(木) 22:40:11.96ID:LvmwkbR7
dictとlistが入れ子になって
list()してもdict()してももうどうにもならん
一回バラして空のdictから作り直すしかないんか
どんどんスパゲティ化していく…
どうしてこうなる
0679デフォルトの名無しさん
垢版 |
2023/03/17(金) 19:30:44.30ID:gB6bRoNP
bit全探索遅すぎんか?
なんでこんな遅いんだろ
0680デフォルトの名無しさん
垢版 |
2023/03/17(金) 21:01:35.81ID:Jh+ZOCBw
書いたコードがどう動作するかの想像と現実がかけ離れてるかんじ?
なにするにもオーバーヘッドかかるんで
Cのようにデータと操作の量だけで単純に導き出せないから
numpy使うかPyPyやCythonで書き直すのも手
0682デフォルトの名無しさん
垢版 |
2023/03/17(金) 22:38:22.83ID:9GL040C8
>>680
pythonのライブラリって中身C++で実装してて
python自体はただのラッパーだって聞いたけど違うん?
0683デフォルトの名無しさん
垢版 |
2023/03/17(金) 22:53:37.93ID:frn5JcHg
速度を気にするんだったら
生のpythonはお勧めできないな
そういう言語ではないし
ライブラリを呼ぶか
高速化したい部分を c か c++で
書くのが現実的
0684デフォルトの名無しさん
垢版 |
2023/03/18(土) 09:36:22.98ID:8g+8VXuC
>>682
付属ライブラリはPythonで書かれてる
だからライブラリのソース読むとPythonの勉強になる
CやC++は宇宙人用の言語だから普通の人にはわからんからな
0685デフォルトの名無しさん
垢版 |
2023/03/18(土) 13:29:07.12ID:fSPMk7mF
numpy が C/C++ で描かれてるからと言って
それ以外の python の library や module が
python で描かれてるってことにはならない
0687デフォルトの名無しさん
垢版 |
2023/03/18(土) 15:44:27.38ID:fSPMk7mF
>>682 が可笑しなこと言うからさ
0688デフォルトの名無しさん
垢版 |
2023/03/18(土) 16:45:51.67ID:FTG3GYVM
>>683
でもそれ競技では使えないんですよ
0690デフォルトの名無しさん
垢版 |
2023/03/18(土) 22:12:13.90ID:krkKeZ41
最近始めた初心者です。お願いします。
jupyterでブラウザを立ち上げることは出来るようになったのですが
ブラウザの立ち上げる前に毎回、from selenium import webdriver と入力しないといけないのでしょうか?
0691デフォルトの名無しさん
垢版 |
2023/03/18(土) 22:17:11.39ID:sy5GHHGN
そういうときは
jupyter import 自動
とかでググるかAIチャットで聞いてみるんよ
0692デフォルトの名無しさん
垢版 |
2023/03/18(土) 22:48:53.68ID:krkKeZ41
ありがとうございます
ChatGPTを使って進めているのですが、これだけ理解できずこちらで聞いてみました。
自動化は皆がやっていることなのですね。参考になりました
0694デフォルトの名無しさん
垢版 |
2023/03/19(日) 10:30:43.41ID:0QGYVmFU
ならスクラッチパッド的に試行錯誤したいとき何つかってるの?
vscode用拡張をMS自身が用意してくるほどにはみんな使ってるよ
0698デフォルトの名無しさん
垢版 |
2023/03/19(日) 14:58:11.07ID:TvHFRsn1
seleniumとかはjupyterが適してるんじゃない?
毎回初めの画面遷移から確認するのだるいじゃん
あとpandasでちゃちゃっとデータ整形するのもjupyterなしではやってられない。
まだjupyterなんか使ってるの、という人は上記のようなケースではどうやって書いてるの?disじゃなくてよりいい方法があるなら乗り換えるから知りたい
0699デフォルトの名無しさん
垢版 |
2023/03/19(日) 23:09:14.05ID:fPCD3IEI
USBにはデバイスとホストがあるようなのですが、PC1からPC2のハードディスクのデータにアクセスして
PC1にコピーするには何から考えたらいいでしょうか?

PC2はデバイスポートを持っていてPC1をホストとして接続が出来そうに思うのですが、方法がわかりません。
0700デフォルトの名無しさん
垢版 |
2023/03/19(日) 23:21:12.94ID:3QN5+OXV
>>699
ファイルのコピー程度であれば、USBやpysmb等を扱うまでもなく、
OSの機能を使ってPC2のハードディスクを共有し、
PC1からそのPC2の共有ディスクをopenし読み込みPC1に書き込むむ、で
よいのでないのかな
0702デフォルトの名無しさん
垢版 |
2023/03/19(日) 23:25:46.08ID:fPCD3IEI
>>700
ありがとうございます。
それはLAN経由という事ですか?
PC2はLANに接続できない(禁止されている)ので出来ればUSBでデータを抜き出したいのです。
0703デフォルトの名無しさん
垢版 |
2023/03/19(日) 23:47:36.63ID:0QGYVmFU
PC2でUSBデバイスとなるプログラムを動作させれば実現できるし市販品もあるが
それもれっきとしたLANなのでEthernetじゃないからというのは詭弁
0704デフォルトの名無しさん
垢版 |
2023/03/20(月) 00:51:24.19ID:m4NlOkWq
馬鹿の書くLANの意味は何だろうな
馬鹿だから社内ネットワークのことだろうな
0705デフォルトの名無しさん
垢版 |
2023/03/20(月) 01:12:50.74ID:Jy+RyUMo
仕事の質問を5chでするって時点で
セキュリティ的に何か重大な問題を抱えてそうな予感
0706デフォルトの名無しさん
垢版 |
2023/03/20(月) 17:05:12.75ID:ELt2LlTE
github actionsでpipのキャッシュを使うようにしてパッケージインストールするようにワークフロー書いたんだけど、パッケージのインストールが早くならない

pipのキャッシュってパッケージのファイルが置いてあるからパッケージのインストールが早くなるという認識でええんよね(´・ω・`)
0707デフォルトの名無しさん
垢版 |
2023/03/20(月) 17:36:10.34ID:REuZd10D
ダウンロードサイズが大きくなくて効果が薄いか
pathの指定がまちがってんじゃない?
作業中keyを変えてないなら古いキャッシュみてるとかね
よくわかってないなら野良のAction使うかコード参考してみ
0708デフォルトの名無しさん
垢版 |
2023/03/23(木) 21:22:02.61ID:SE5S7lnM
Threadの仕様がゴミみたいなんだけど、ほかの言語みたいに同じコードを個別に動かすこと出来ないの?
0711デフォルトの名無しさん
垢版 |
2023/03/23(木) 22:49:52.39ID:fPsGtrD2
>>709
句点らしからぬ珍答

>>708
ほとんどのモジュールがGILに引っかかって意味ないから
できる構造になってない
もし非同期処理書きたいならasyncioをつかう
0712デフォルトの名無しさん
垢版 |
2023/03/23(木) 23:23:46.89ID:mBtK7sgT
>>711
並行処理(concurrent)なのか、並列処理(parallel)なのかわからんけど、parallelの方はmultiprocessingでそんな問題ないけど。
ワーカープロセス作ってコア数で殴ってjoinとか普通にできるよ。
真剣に高速化したいならPythonで書くなみたいなツッコミはともかく。
0713デフォルトの名無しさん
垢版 |
2023/03/26(日) 14:34:46.68ID:zG19viAn
--------A.py-----------
str = 'Hello, world'
----------------------------
--------B.py-----------
bb=1
import A

str = A.str
print(str)
----------------------------

py B.pyで実行

pythonで変数を別ファイルに渡すでググるとだいたい上のようなサンプルが出てくるけど
逆にA.pyでB.pyで定義した変数て読める?
0714デフォルトの名無しさん
垢版 |
2023/03/26(日) 14:57:31.88ID:7xq4orUh
循環参照は悪手
0716デフォルトの名無しさん
垢版 |
2023/03/26(日) 18:40:13.08ID:nC5PY7jY
または、共通して使いたい変数をまとめたモジュールを作るとかね。settings.pyとかconstants.pyとか
0717デフォルトの名無しさん
垢版 |
2023/04/10(月) 05:03:50.18ID:oMIHCwe3
30代Pythonクソチョン男は強姦魔の犯罪者です!
あなたの近くにいます!
父母と祖父母の戸籍謄本を提出させましょう!
0718デフォルトの名無しさん
垢版 |
2023/04/14(金) 23:44:11.31ID:VnjII6A1
global付けなくても関数内でグローバル変数使えるのなんとかならないんかな
原因つかめなくて1時間ハマった…
0719デフォルトの名無しさん
垢版 |
2023/04/15(土) 10:18:39.08ID:nVVXe4ml
関数の先頭で初期値代入する習慣にしたら良い
0723デフォルトの名無しさん
垢版 |
2023/04/18(火) 12:24:38.88ID:Tkea6IlR
text = input('入力しろ')
if text.isdigit():
print(100 - int(text))

2行目のisdigitで整数かどうか確認してるのに?
なぜ3行目のintでも整数化するの?
すでに整数なんじゃないの?
0726デフォルトの名無しさん
垢版 |
2023/04/20(木) 22:18:59.77ID:ET4Z2F1o
指定したフォルダのdatファイル全文検索してimgurの文字を抽出して、重複廃除して、画像や動画を全てローカルに保存するpythonファイル誰か作ってくださる神はおられませんか?

imgurの無慈悲な全画像削除反乱に対抗してくださる神様お願いします
0728デフォルトの名無しさん
垢版 |
2023/04/20(木) 22:44:34.32ID:QMVhjkAJ
コーディングが目的じゃないなら
pg/ag/ggrepあたりで抽出してwgetやcurlへ渡せば済む話
0731デフォルトの名無しさん
垢版 |
2023/04/21(金) 09:36:04.13ID:DaG7i/DR
>>728
重複排除は?
0732デフォルトの名無しさん
垢版 |
2023/04/23(日) 00:47:52.29ID:6r8Okd7u
動的計画法の実装で
dp[n+1] = dp[n]
じゃなくて
dp[n]=dp[n-1]
って書いてる人が多いのなぜ?

漸化式ってa(n+1)=a(n)+bで習うじゃん普通…
0733デフォルトの名無しさん
垢版 |
2023/04/23(日) 00:50:21.76ID:5wdUK5/t
>>726
そういうの数万円の低予算で請け負ってくれる人いるから
サイトから依頼しましょう
0736デフォルトの名無しさん
垢版 |
2023/04/27(木) 19:48:04.07ID:R0Un3xzL
タブ区切りのテキストファイルをpandasでエクセル(xlsx)出力しても、
エクセルやopenpyではタブ区切りされずに1列目に全データが表示されてしまいます。
各列のセルに区切るようにするにはどうすればよいでしょうか。
0737chatgpt
垢版 |
2023/04/27(木) 21:02:58.14ID:DRjZk9XF
import pandas as pd

# タブ区切りのテキストファイルを読み込み
df = pd.read_csv('input.txt', sep='\t')

# Excelファイルに出力
df.to_excel('output.xlsx', index=False)
0738デフォルトの名無しさん
垢版 |
2023/04/27(木) 21:25:48.49ID:4Kuw89oL
>>736
ChatGPT(bing chatではない)使ってないならそういう質問そのまま投げてみなよ
理由もコードもその解説も全部出してくれるよ
0739デフォルトの名無しさん
垢版 |
2023/04/27(木) 21:51:55.98ID:SJ3bN40w
>>737
実際に吐き出されたxlsxをエクセルで開いたらタブで区切られませんでした。
既に試した方法ではあるのですが、やはり区切られませんでした。

# タブ区切りのテキストファイルを読み込み
df = pd.read_csv('input.txt', sep='\t')

# Excelファイルに出力
df.to_excel('output.xlsx', index=False)
0741デフォルトの名無しさん
垢版 |
2023/04/28(金) 01:13:15.30ID:EFykGfO7
ネット上で探すとselenium経由でスクレイピングして
パーサーにbeautiful soup(bs)って流れが多いんですが
bs単体でgetしない理由なんなんですか?

ってここまで書いて思ったけどjavascriptの扱いが問題あるか
0745デフォルトの名無しさん
垢版 |
2023/04/28(金) 08:22:44.73ID:xmj1SHMq
>>741
そういう動的な要素の部分もあるかもだけど自分はjavascriptに格納された変数なんかもbsで抽出してなるべくselenium使わない方法を考える
どうしてもselenium使うとこはakamaiなんかのBOT対策入れてるとことかかな。
sensor_dataの生成部分となは再現かなり難しい
0746デフォルトの名無しさん
垢版 |
2023/04/28(金) 13:54:58.70ID:sll+3S7w
「text = ''」 これってどういう意味?
また、これをネットで調べようとしたらどうしたら良いですか?
下の2行目にあるやつです

from pathlib import Path
text = ''
current = Path()
0751chatgpt
垢版 |
2023/04/29(土) 09:57:23.90ID:ueoxn1ZD
「text = ''」は、Pythonプログラムの中で変数「text」を定義し、それを空の文字列で初期化していることを意味しています。

つまり、プログラムの中で「text」という変数を使用するために、最初に空の文字列で初期化する必要がある場合に使われます。

ネットで調べる場合は、Pythonの「text = ''」の意味を検索エンジンで検索してみることができます。また、Pythonのドキュメントやチュートリアルなどの公式リソースを参照することもできます。
0752デフォルトの名無しさん
垢版 |
2023/04/29(土) 10:15:52.63ID:ugMaX53P
>また、Pythonのドキュメントやチュートリアルなどの公式リソースを参照することもできます。
これ次に投げたら該当箇所おしえてくれるん?
0754デフォルトの名無しさん
垢版 |
2023/04/29(土) 13:33:25.01ID:APvoDMhe
ChatGPTはPythonの学習にかなり有用だよね
グーグルだと質の低い個人ブログとかたくさん引っかかって
その中から自分で厳選しなきゃならん
一発でこうした簡潔な進言をしてくれるとかなり助かる
0755デフォルトの名無しさん
垢版 |
2023/04/29(土) 13:36:06.66ID:5A3xKPb3
div div div div li div divみたいな時に
目的のattr見つけるの骨折れるんだけど
サクッと見つけてfindallでぶっこ抜くテクニックみたいなのある?
0756デフォルトの名無しさん
垢版 |
2023/04/29(土) 13:41:55.87ID:0iY2a6mx
>>754
書き方分からないときにめっちゃ参考になるわ
摘まんで取り込む
0758デフォルトの名無しさん
垢版 |
2023/04/29(土) 15:19:01.46ID:cKY7lrd2
https://www.youtube.com/watch?v=VRFfAeW30qE

youtubeでスクレイピングを勉強していたのですがid取得が上手くいかず、ずっと調べてたら
Seleniumのバージョンが4になってからfind_element_by_idのメソッドが使えないことが原因でした。

ほかに似たような注意点がありますか?あと今学ぶならどこのサイトがいいかよろしければ教えてください。
ChatGPTにもしつこく聞いて2週間悩んでいてやっと解決・・・
0759デフォルトの名無しさん
垢版 |
2023/04/30(日) 09:45:37.60ID:/QlbhOQI
find_hoge(By.hoge, txt)
に変わっただけでは?
0761デフォルトの名無しさん
垢版 |
2023/04/30(日) 14:29:20.31ID:/QlbhOQI
hrefが何度やっても取れなくて詰んだかと思ってたら
html.parserのせいだったわ
使用非推奨だろこれ…
0762デフォルトの名無しさん
垢版 |
2023/05/01(月) 07:38:48.00ID:9Z+6zocL
おはようございます
pythonの組み込み関数でsum()関数を調べたのですが
公式ドキュメントを見てみました。そしたら
sum(iterable, /, start=0)となっているのですが
真ん中の/って何なんでしょうか
sum([1,2,3], 0)の呼び出しは理解できます
sum([1,2,3], /, 0)と呼び出すとエラーになります
(第二引数に初期値と解説されたりするのですが)
/は第二引数だと思うのですが一体どうなってるのでしょうか
教えてください
0763デフォルトの名無しさん
垢版 |
2023/05/01(月) 10:13:45.70ID:RRWbl8de
>>762
スラッシュより前は位置引数
後ろはキーワード引数
0765762
垢版 |
2023/05/01(月) 10:58:48.22ID:9Z+6zocL
>>763
>>764
ご指摘ありがとうございます
4.8.3. 特殊なパラメータ
にたどり着きました

市販の入門書、解説書には書いてないことでした
ここで質問の回答いただけなかったら一生わからずじまいでした
ありがとうございます
0766デフォルトの名無しさん
垢版 |
2023/05/01(月) 18:12:03.63ID:qUDblxkj
interaction.py でfooが正常に動いてbarがデコレータの処理に失敗する理由がわかりません…
https://techiedelight.com/compiler/?0D2o

「そんなライブラリ知らん」って方が多いと思うので、関数定義箇所によるの挙動の違いだけでも解説してもらえるとありがたいです
main() の中で関数定義してるだけでそんなに変わるものなんでしょうか
0768デフォルトの名無しさん
垢版 |
2023/05/02(火) 21:18:23.32ID:Iiod3Ljm
Anacondaからselenium使えないし
通常環境だとNumba使えないし
どうしたらいいんだこれ
とりあえず一時ファイル作って切り替えてるけど

Pypyとかなら同時併用できるの?
0769デフォルトの名無しさん
垢版 |
2023/05/05(金) 14:23:40.23ID:0Z/2QqWv
SELECT YEAR
すると2018って出るし
print(df['YEAR'])
すると2018って出るのに

df = pd.read_sql_query(query, conn)で持ってきたデータフレームに
df.drop(['YEAR'])すると"['YEAR'] not found in axis"っていわれてはげそう
XY軸間違ってんのかと思って.to_frame().Tしてもダメだった
これpandas側ののバグですよね?どうしたら回避できるんですか?
0770デフォルトの名無しさん
垢版 |
2023/05/05(金) 14:36:51.96ID:TpSD3ns8
>>769
どう考えても君のバグだよw
dropのリファレンス読みなよ
0771デフォルトの名無しさん
垢版 |
2023/05/05(金) 21:03:49.07ID:6BXdBTej
windows10でアプリの自動ログインをしたいのですが色々あって悩んでいます。
PyAutoGUIとPower Automate Desktopならどちらがおすすめですか?
0772デフォルトの名無しさん
垢版 |
2023/05/05(金) 21:49:31.15ID:Zzp0Xs7d
二択なら両方試して使いやすい方にしたら?
そのアプリへの入力がSendKeysやWMで済むのか
もっと高度でないとダメなのかも不明だし
0774デフォルトの名無しさん
垢版 |
2023/05/06(土) 16:10:29.30ID:HrELFaNS
python+pulpで勤務シフト作成の自動化をしようと思っています。
MDS = [(m, d, s) for m in range(len(MEMBERS)) for d in DAYS for s in range(len(SHIFTS))]
x = pulp.LpVariable.dicts("x", MDS, cat="Binary")
で0-1意思決定変数xを定義し、メンバーmが日dにシフトsを取ることをx[m,d,s]=1、取らないことをx[m,d,s]=0と表現します。
あるシフトを取った時はそのメンバーはその日に他のシフトは取れません。
例えばメンバー1が2日にシフト0の時はx[1,2,0] = 1,x[1,2,1]=0,x[1,2,2]=0となります。

「どの連続する2日を見てもメンバーm=1,2,3,4のうちの誰かが2日連続でシフト0でないシフトを取っている」という事を制約条件に加えたいです。
for d in DAYS[1:]:
prob += pulp.lpDot(([1-x[1,d-1,0],1-x[2,d-1,0],1-x[3,d-1,0],1-x[4,d-1,0]]),([1-x[1,d,0],1-x[2,d,0],1-x[3,d,0],1-x[4,d,0]]))>= 1
と書いてみたのですが、Non-constant expressions cannot be multiplied.のエラーが出ました。
どのように書けば良いでしょうか。
0775デフォルトの名無しさん
垢版 |
2023/05/08(月) 12:47:19.21ID:XJG/CI4k
WindowsでJupyterNotebookを使って大きいデータを扱うと終了後にファイル容量が増えていくんだけど、
作業フォルダのcheckpointsやhistory.sqlite以外に勝手に作成されているファイルって有りますか?
0778デフォルトの名無しさん
垢版 |
2023/05/10(水) 06:12:33.22ID:zmtoAUL0
コンピュータ技術の根源だから実は難しいんよね
自分も何十年もこの世界にいるけど
いまだにテキストファイルとバイナリファイルの違いが説明できないし
0779デフォルトの名無しさん
垢版 |
2023/05/10(水) 17:11:24.88ID:5Rwc5Tpt
初学者なんだが[apple, banana, nut, mangosteen]というリストを文字の少ない順に並び変えてリストを再構築せよっていう問題
習ったことをあれやこれやで3時間くらいかけて作ったのがこれ

https://ideone.com/e5Zk2C
解答みて唖然としたね
いやぁなんか相当遠回りな損した気分
0780デフォルトの名無しさん
垢版 |
2023/05/10(水) 18:13:02.07ID:3PLbEJS0
>>779
そういう経験大事よ
次から思考回路変わるから
0781デフォルトの名無しさん
垢版 |
2023/05/10(水) 18:38:05.70ID:A8RgUVJx
>>776
その理解で間違ってないよ
バイト列を特定のエンコーディング(符号演サ方式)を使って文字列として扱うための型がstringやstrと呼ばれるもの
pythonのstrの内部的に持ってるのはUnicodeのcode pointで表示したり保存したりするときに指定のエンコーディングを使う(デフォルトはUTF-8)
0782デフォルトの名無しさん
垢版 |
2023/05/10(水) 19:32:28.22ID:vO85M+b+
>>779
俺氏も似たり寄ったりだわ
L = ['apple', 'banana', 'nut', 'mangosteen']

# 文字数 M = [5, 6, 3, 10]
M = [len(n) for n in L]

# 配列 ML = [[5, 'apple'], [6, 'banana'], [3, 'nut'], [10 'mangosteen']]
ML = [[M[i], L[i]] for i in range(len(L))]

# 文字数でソート S = [[3, 'nut'], [5, 'apple'], [6, 'banana'], [10 'mangosteen']]
S = sorted(ML)

# リストから要素を抽出して新しいリストを作成
result = [n[1] for n in S]

print(result)
0783デフォルトの名無しさん
垢版 |
2023/05/10(水) 20:50:02.82ID:yeAvKW24
単純にソートすればええやんと思っちゃうんだが
ソートに関数を渡すという感覚を持ち合わせてないということなのかな?
0785デフォルトの名無しさん
垢版 |
2023/05/10(水) 21:07:58.85ID:hwwKafRF
ソートを使うと計算量がn^2になってしまうから
配列のインデックスを文字列長にして
配列の内容をリンクドリストにして
追加しておくようにすれば
計算量が2nで済むけど
プログラミングは誰かに任せる
0786デフォルトの名無しさん
垢版 |
2023/05/10(水) 21:42:57.53ID:VnJnYO4m
>>785
rubyなら
a = ['apple', 'banana', 'nut', 'mangosteen', 'bbb']
p a.each_with_object([]) {|x, a| (a[x.size] ||= []) << x}.compact.flatten

["nut", "bbb", "apple", "banana", "mangosteen"]
0787デフォルトの名無しさん
垢版 |
2023/05/10(水) 21:47:38.00ID:Csgt+W1x
>>785
timsortが要素数が少ないときにn^2になるinsertion sortを使うのはその方がn log nのmerge sortより速いから

それにそのアルゴリズムは実速度が遅くなることを抜きにしても文字列長をインデックスにした配列の長さmをオーダーに入れる必要がある
0788デフォルトの名無しさん
垢版 |
2023/05/11(木) 02:49:11.76ID:IsUfqIsW
jypyterで再起動するごとにdataframeの列が上下ひっくり返る謎現象に悩んでたけど
通常のコードにしたら謎に解決した
意味わからん
0791デフォルトの名無しさん
垢版 |
2023/05/11(木) 11:28:35.88ID:0xrwE4ea
sort関数使わずに苦労したのかと思ったら使ってはいるんだな
https://docs.python.org/ja/3.10/library/stdtypes.html#list.sort
にあるソート HOW TOに色々書いてある
L.sort(key=lambda x: len(x))

>>789
関数オブジェクトを渡すことは珍しいことではない
0794デフォルトの名無しさん
垢版 |
2023/05/11(木) 12:19:04.09ID:Uzb7NzNr
>>791
そのlambdaは余計

>>789
関数の受け渡しはめちゃくちゃ使う
0795デフォルトの名無しさん
垢版 |
2023/05/11(木) 12:20:33.76ID:Rj96Hzk9
LとかMみたいな命名はなるべく早く卒業したほうがいいぞ
lやmも同様
0797デフォルトの名無しさん
垢版 |
2023/05/11(木) 12:21:38.71ID:T7OjrNg5
>>795
具体的にどういう命名がいいんですか?
なんか数学の癖でよく使うlだのmだの置いてしまう
0798デフォルトの名無しさん
垢版 |
2023/05/11(木) 12:31:50.70ID:rmkBIaEM
名前だから伝わってなんぼ
理解を妨げないなら略記でもOK
でもPythonが提供する識別子には略記がほぼないことを考えてほしい
一方で>>791のlambdaのxは局所的なので長々命名する方が不適
0799デフォルトの名無しさん
垢版 |
2023/05/11(木) 12:34:00.77ID:2/EQwNdd
Ruby なら、sort_by でシュオーツ変換なので高速。
sort はO(N^2)

input_fruits_ary = %w(apple, banana, nut, mangosteen)

# 文字列数の少ない順でソート
input_fruits_ary.sort_by! { |fruit| fruit.length }

p input_fruits_ary
#=> ["nut,", "apple,", "banana,", "mangosteen"]

# 文字列数の多い順でソート
input_fruits_ary.sort_by! { |fruit| fruit.length * -1 }

p input_fruits_ary
#=> ["mangosteen", "banana,", "apple,", "nut,"]
0800デフォルトの名無しさん
垢版 |
2023/05/11(木) 15:34:24.35ID:0xrwE4ea
確かにlenだけでよかったね、lambdaもあるよっていう事で許して
0801デフォルトの名無しさん
垢版 |
2023/05/11(木) 19:51:35.88ID:VmIYuEHk
>>799
rubyなら
a = ['apple', 'banana', 'nut', 'mangosteen', 'bbb']
p a.sort_by(&:size)

["nut", "bbb", "apple", "banana", "mangosteen"]
0802デフォルトの名無しさん
垢版 |
2023/05/14(日) 18:33:45.85ID:TVRCUOVE
pickleファイルの他のクラスから読めない制約知らんかったわ…
先に教えてくれよ…
0804デフォルトの名無しさん
垢版 |
2023/05/15(月) 12:25:46.20ID:XYoBnzaj
すみません、pythonのべん今日のために数独のプログラムを作ろうとしていますが、
以下のコードで、なぜかbreakを読み取ってくれません
下らないミスだとは思いますが、ご指摘お願いします。

コード:
https://pastebin.com/fzN186CM
実行結果:
[1, 5, 0, 0, 2, 0, 0, 9, 7]
0805デフォルトの名無しさん
垢版 |
2023/05/15(月) 12:34:22.26ID:gqAJstNf
for内にprint(i)入れたらすぐわかるよ
デバッグはVSCODEあたり使った方が圧倒的に便利だよ
0806804
垢版 |
2023/05/15(月) 12:46:26.64ID:XYoBnzaj
ありがとうございます、解決しました
VSCODEも試してみます
0808デフォルトの名無しさん
垢版 |
2023/05/15(月) 21:12:54.24ID:96tZdU2Q
>>807
それな
以前、「特定のフォルダを監視して新たに保存されたファイル名を
DBに格納していく。ただし監視中にCPUを占有しないこと」という
コードを書きたくて質問したことがあるけど
ChatGPTに同じ質問を投げたら、何とそのまま動くコードが返ってきてビビった
0809デフォルトの名無しさん
垢版 |
2023/05/16(火) 00:15:28.47ID:2QNh0/Yl
>>532
''.join( "s_i_t_e:ko_kk_ai.n_dl.go.j_p 朝_鮮".split("_") )
0810デフォルトの名無しさん
垢版 |
2023/05/16(火) 20:14:23.46ID:V9hbYivE
>>803
中身定義しないでpassだけ書いてもロードできたから
クラス名書き換えるだけのスクリプト書いてなんとかなったわ
スペルミス直すだけで苦労するとは…
0811デフォルトの名無しさん
垢版 |
2023/05/17(水) 05:26:13.56ID:RdROygPB
>>810
> プログラムの勉強こそ、ChatGPT活用したほうがいいよ

ChatGPTはバカ専用なので、
自分でググッたほうが良い

>>811
それはお前がバカだから。
ChatGPT4スゲー!とか言ってるの低脳w
0812デフォルトの名無しさん
垢版 |
2023/05/17(水) 11:47:49.75ID:J1gzoaOm
【動画】「憲政史上初」国会でChatGPTが岸田総理に質問(2023年3月29日) | ANNnewsCH
ps://www.youtube.com/watch?v=o1zv1cxt9G0
ChatGPTトップ「政府の規制が重要」議会初証言で|TBS NEWS DIG | TBS NEWS DIG Powered by JNN
ps://www.youtube.com/watch?v=C85FOvn_woE
第211回国会 衆議院 内閣委員会 第9号 令和5年3月29日 | テキスト表示 | 国会会議録検索システム シンプル表示
ps://kokkai.ndl.go.jp/simple/detail?minId=121104889X00920230329&spkNum=16
0813デフォルトの名無しさん
垢版 |
2023/05/17(水) 12:34:52.88ID:akNcZT8e
import webbrowser

lst = [ ['htt','ps://','www.youtube','.com/watch'],
['?v=','KkwWALkuYOM'],
['&list=','PLBjMF7sSdVpiSnddPZsfTEOjOZUD4ftCa'] ]

link = "".join( ["".join(e) for e in lst] )

print( "韓国による嘘[・・・日本が朝鮮にした恐ろしいこと?] | tokinomori13",
link, sep="\n")

webbrowser.open( link )
0814デフォルトの名無しさん
垢版 |
2023/05/17(水) 18:44:02.07ID:0tiXVM80
トロイの木馬みたいなコードを書くなら、もっと精巧にやってほしいよな。
そんな見ただけで結果が明らかなコード書かれても何も面白くないじゃないか。
0815デフォルトの名無しさん
垢版 |
2023/05/17(水) 21:23:47.47ID:WYa1maRz
LogicクラスとCreateクラス作って
MainクラスからLogicクラスのインスタンス作って
LogicクラスからCreateクラスのインスタンス作って

Mainからlogic.hoge()しても実態はCreate.hoge()読んでるだけだったりするとき
もうMainから直接インスタンス作れば良いんじゃないかって思ったりする訳ですが
何重にもラッパー作る意味ってなんですか?
0816デフォルトの名無しさん
垢版 |
2023/05/17(水) 22:09:19.38ID:oza9WAtC
コードの例え話は好きではないんだけども
八百屋で野菜買いたいだけなのに仕入れとか栽培まで考慮したくなくない?
やりたいのは夜ご飯をつくることなのに
関心事を適度に分離して役割分担するのが
リアルでもコードでもシンプルで上手くいくコツ
0817デフォルトの名無しさん
垢版 |
2023/05/17(水) 23:41:19.05ID:iFswwcsk
>>1
print("IT業界のヤバすぎる落とし穴5選 | やまもとりゅうけん",
"htt" "ps://www" ".youtube.com/watch?v=" "WPPCJ4o-mpA", sep = "\n")
0818デフォルトの名無しさん
垢版 |
2023/05/18(木) 10:01:24.32ID:hFb4AYt9
>>811
自分にアンカ付けてバカとか言ってるw
てかChatGPTとGPT4の区別が出来てない時点で分かってないんだろうなw
0819デフォルトの名無しさん
垢版 |
2023/05/18(木) 11:58:11.35ID:aICdVmJ+
pdfminerでページごとにテキストを抽出しようとしているのですが、
Aの抽出にすると何故か次ページの情報まで含まれてしまいます。
Bの方法だとちゃんと該当ページの情報だけになるのですが、
テキストグループ単位で改行されないのでちょっと都合が悪いです。
Bの方法でテキストグループ単位でセパレートすることはできるのでしょうか?

A: device = TextConverter(rsrcmgr, retstr,codec=codec,laparams=LAParams())
B: device = TextConverter(rsrcmgr, retstr,codec=codec)
0820819
垢版 |
2023/05/18(木) 13:17:57.42ID:aICdVmJ+
とりあえずは自己解決しました。
PDFの方で非表示情報を削除することで解決しました。
0822デフォルトの名無しさん
垢版 |
2023/05/19(金) 02:27:08.01ID:yl46Wrbm
シンプルに書くと
"-".join(map(str, sorted(a, reverse=True)))
右から左の流れで書くなら
"-".join(str(x) for x in sorted(a, reverse=True))
エレガントかは自信なし
0823デフォルトの名無しさん
垢版 |
2023/05/19(金) 04:05:00.53ID:ZOdh2xkh
pythonにエレガントさを求めるのが間違い
"-".joinの時点ですでにエレガントじゃないから諦めろ
0824デフォルトの名無しさん
垢版 |
2023/05/19(金) 10:14:23.98ID:RFMu3wvR
なんで リスト.join() じゃなく
文字列.join(リスト) にしたんだろうな。
.split()なんかに対して、直感に反してる気がする。実際に他言語はリスト.joinだし
0826デフォルトの名無しさん
垢版 |
2023/05/19(金) 11:39:01.45ID:ouZU/kaO
オブジェクト指向言語じゃなかったから
0828デフォルトの名無しさん
垢版 |
2023/05/20(土) 15:29:18.20ID:ej5QdAy9
# >>812

text = '''
国会会議録検索システム
ps://kokkai.ndl.go.jp
帝国議会会議録検索システム
ps://teikokugikai-i.ndl.go.jp/
国会会議録検索システム シンプル表示
ps://kokkai.ndl.go.jp/simple/
帝国議会会議録検索システム シンプル表示
ps://teikokugikai-i.ndl.go.jp/simple/
国会会議録検索システム ヘルプ(使い方ガイド)
ps://kokkai.ndl.go.jp/help.html
APIの利用|国立国会図書館―National Diet Library
ps://www.ndl.go.jp/jp/use/api/index.html

site:kokkai.ndl.go.jp python
'''

print(text.replace("ps://","htt"+"ps://"))
0829デフォルトの名無しさん
垢版 |
2023/05/20(土) 16:09:02.25ID:pXEYjqEz
text = '''\
蛇 -filetype:pdf site:teikokugikai-i.ndl.go.jp\
'''

lst = text.split('\n')

for line in lst: print( text, lst, ' '.join( line.split()[::-1] ), sep="\n\n" )
0830デフォルトの名無しさん
垢版 |
2023/05/20(土) 17:15:32.37ID:wv6TyxaN
初心者です。よろしくお願いします。
チャート画像をスクレイピングしたいのですが上手くいきません。

from selenium import webdriver
from selenium.webdriver.common.by import By
from time import sleep

browser = webdriver.Chrome('chromedriver.exe')
url = "https://jp.kabumap.com/servlets/kabumap/Action?SRC=chart/base&codetext=4449";
browser.get(url)
sleep(10)
elem_img = browser.find_element(By.ID, "gifChart_img_real")
elem_img

デベロッパーツールでチャートのidを取得したのに
NoSuchElementException と出ます。
どうすればよいでしょうか?
0831デフォルトの名無しさん
垢版 |
2023/05/20(土) 17:58:15.66ID:BNhw9lNy
shelveで定期的にsyncしてるのにコミットチャージが線形で増えていきます
適度にdel挟まないといけないのでしょうか?
0832デフォルトの名無しさん
垢版 |
2023/05/20(土) 23:01:09.44ID:6r8zDIVe
>>830
gifChart_img_realはiframeの中にあるので
iframe = browser.find_element(By.ID, "chart_frame")
browser.switch_to.frame(iframe)
してから取得する
0833デフォルトの名無しさん
垢版 |
2023/05/21(日) 05:35:06.71ID:kjzRL6kn
Getting Started with Headless Chrome - Chrome Developers
ps://developer.chrome.com/blog/headless-chrome/
Chrome’s Headless mode gets an upgrade: introducing `--headless=new` - Chrome Developers
ps://developer.chrome.com/articles/new-headless/#-virtual-time-budget

"C:\Program Files\Google\Chrome\Application\chrome.exe" --headless --disable-gpu --virtual-time-budget=10000 --window-size=1920,2100 --screenshot=c:\Pictures\screenshot-21.png "スクリーンショットを撮りたいページのURL"
0834デフォルトの名無しさん
垢版 |
2023/05/21(日) 11:12:03.76ID:hzjc2KCd
>>832
出来ました。
frameに切り替える必要があるなんて初めて知りました。
本当にありがとうございます。
0835デフォルトの名無しさん
垢版 |
2023/05/22(月) 03:22:18.92ID:+e0jygvo
# >>828-829
site = '''\
外務省
G7広島サミット\
'''

url = "htt" + "ps://www.mofa.go.jp/mofaj/ms/g7hs_s/page1_001673.html"

print( site.replace("\n", " > "), url, sep="\n" )
0836デフォルトの名無しさん
垢版 |
2023/05/23(火) 08:38:40.20ID:pqsi5Ho/
スレとはあんま関係ないかもしれんが、デバッグの方法やらテストの方法やらってどこで学ぶの?
vscodeにその機能があるらしいとは知っててもろくに使えない
使い方やコツみたいなのあったら教えて
0837819
垢版 |
2023/05/23(火) 08:59:30.99ID:d8FV5sbM
>>836
vscode python デバッグ でググる
0838デフォルトの名無しさん
垢版 |
2023/05/23(火) 13:43:59.19ID:WU8GLoy9
Debugging configurations for Python apps in Visual Studio Code
ps://code.visualstudio.com/docs/python/debugging
0839デフォルトの名無しさん
垢版 |
2023/05/23(火) 19:55:51.71ID:JMXPuiCR
計算処理しかしたことないけどデバッグはprint関数を置きまくって、実行はステップ実行。
ステップ実行もしないけど。
vscodeのステップ実行はブレークポイントを設置したところからしかできないようだ。
0841デフォルトの名無しさん
垢版 |
2023/05/24(水) 15:13:01.76ID:e8mgmyMR
画像をスクレイピングする場合、
ブラウザを立ち上げず、リクエストライブラリを使用するのと
ブラウザを立ち上げて行う2つの方法がありますが
どちらが良いのでしょうか?
0842デフォルトの名無しさん
垢版 |
2023/05/24(水) 15:38:12.72ID:81lSzauF
>>841
状況次第
まずはブラウザが必要かどうかを判断すること
0844デフォルトの名無しさん
垢版 |
2023/05/24(水) 16:47:21.89ID:JcQICt1W
言い換えになるけどリクエストライブラリで事足りるかどうか
一般的にはブラウザ経由の方が処理時間やコストが増えるから避けるけど
そんなの困ってないよってならわかりやすい方のがいい
混在させるよりブラウザのみの方が統一感あるかもしれんし(しらんけど)
0845デフォルトの名無しさん
垢版 |
2023/05/24(水) 17:03:00.18ID:CWlHzDqw
>>843
リクエストライブラリってのは
簡単に言うとHTTPのGETやPOSTしかできないわけ
ログイン処理が必要ならブラウザを介して入力フォームにIDとパスワードを入力してログインボタンを押すのとは違って
ログインボタンが押されたときに発行されてるPOSTリクエストを自分でHTTPリクエストを組み立てる必要がある
さらにログインが成功したときのHTTPレスポンスに含まれるログイン済みを示す情報を引き継ぎながら次のリクエストを発行しないといけない

要するにブラウザがHTTP通信以外でやってくれてることをブラウザを使わずにやるかブラウザを使ってやるかの違い
0846デフォルトの名無しさん
垢版 |
2023/05/24(水) 17:42:23.43ID:e8mgmyMR
>>844
>>845
ありがとうございます。おそらくですが理解できました。
勉強不足なのでしばらくはブラウザを立ち上げての実行にしていきます。
0847デフォルトの名無しさん
垢版 |
2023/05/24(水) 18:45:10.57ID:sa8KwLuD
画像URLの抽出にログインやJavaScriptの実行が不要なサイトならRequsts使った方が簡単かもしれないよ
スクレイピングをそこそこやるなら両方やっとくといいと思う
0848デフォルトの名無しさん
垢版 |
2023/05/24(水) 18:50:12.46ID:o9Uxzgb8
>>840
ショートカットのリンク先が"C:\Program Files\Google\Chrome\Application\chrome.exe"だった
環境によって違うかも
0849デフォルトの名無しさん
垢版 |
2023/05/28(日) 02:49:17.77ID:XJdWjJIm
画像のURLぶっこ抜いてHTML生成してブラウザ表示してSaveAsするのが一番無難
あまり変な動きすると察知されて対策されることがある
0850デフォルトの名無しさん
垢版 |
2023/05/29(月) 20:31:31.56ID:Z3AJ5TFy
スクレイピングをしていいサイトかの確認は
サイトのメインURLにrobots.txtを追加しての確認以外にあるんでしょうか?
利用規約もなく、見つからない場合は不可なのですかね
0851デフォルトの名無しさん
垢版 |
2023/05/29(月) 23:42:31.93ID:Kbo/ewZe
>>850
電話とかメールでスクレイピングしても良いですか?って聞いたらいいよ
0853デフォルトの名無しさん
垢版 |
2023/05/30(火) 00:29:18.21ID:N3V0sKr2
pipかcondaかでなく

ryeとかいうpython環境構築、管理コマンドが出来てるのか
バージョンも揃えやすいと
0854デフォルトの名無しさん
垢版 |
2023/05/30(火) 06:22:34.38ID:6xFQRkRK
>>850
Webサイトって人間が手でブラウザを操作すること前提に作られてるわけで、スクレイピング歓迎なんてサイトはないと思うよ
データ提供目的なら最初からFTPとかAPIを用意するでしょ
0855デフォルトの名無しさん
垢版 |
2023/05/30(火) 12:10:05.00ID:LsKm3Edu
python3.10を使用しているのですが、以下のコマンドは成功します。
pip install psutil==5.9.5

しかし、「psutil==5.9.5」とだけ書いたrequirements.txtを用いた以下のコマンドは失敗します。
pip install -r requirements.txt

エラーの内容は以下のとおりです。
なぜこのような違いが発生するのでしょうか…

ERROR: Could not find a version that satisfies the requirement psutil==5.9.5 (from versions: none)
ERROR: No matching distribution found for psutil==5.9.5
0857デフォルトの名無しさん
垢版 |
2023/05/31(水) 14:20:22.86ID:7cq+DXpo
>>855
pip freeze > requirements.txt
で出力したら

モジュール名[半角スペース]==[半角スペース]5.9.5
とかになってますかねえ
半角スペース入れたらどうなりますかね
0858デフォルトの名無しさん
垢版 |
2023/06/02(金) 16:22:31.87ID:USkVLBTx
relativedeltaって、たとえばmonths=1とかで翌月同日(なければ直前の日付)を求める場合、加算元のdatetimeの値に応じて振る舞いが変えられるのはどういう仕組みなの?

datetime.now() + relativedelta(months=1)みたいなケース。
datetime.now()の値によって、timedelta的な値が変わる(加算すべきdaysが31だったり30だったり)のが不思議で仕方ないのだけど。
0859デフォルトの名無しさん
垢版 |
2023/06/02(金) 17:27:19.30ID:T19cekas
>>858
2023/06/02なら内部的に2023と6と2を値として持っておいて
+relativedelta(months=2)なら内部的に持ってるmonthの値を+2すればいい
計算後のmonthの値が0以下や13以上になれば上の桁に計算が繰り上がる
0860デフォルトの名無しさん
垢版 |
2023/06/02(金) 17:59:09.50ID:xbhDiUQd
2か月前にパソコンを買い2週間前からPythonを学び始めた初心者です。classを使用しpygame.image.load("")などを使って画像を表示しようとしたところエラーはどうにか解決できたのですが解決した後実行しても画像が表示されません。
なぜなのか全くわからず困っています。なにか教えていただけると幸いです。
0861デフォルトの名無しさん
垢版 |
2023/06/02(金) 18:42:13.66ID:USkVLBTx
>>859
質問の書き方が悪かったのと、勘違い的なものもあるかもだけど、

datetime(2023,5,31) + relativedelta(months=1)
→6/30(同日が無いから6月の最後の日)
datetime(2023,7,31) + relativedelta(months=1)
→8/31
この結果になるのは分かる。

ただそもそもdatetimeのtimedeltaにはmonth(月の加算)の概念が無いからrelativedeltaを使うのだけど、単なる加算演算子で演算してるだけなのに、relativedeltaは加算元の値に応じて加算すべき日数が分かるのはなんでなのかな、という話。
たとえば
hoge.addMonth(datetime(2023,5,31), 1)
というメソッド(関数)で返るなら分かりやすいんだけど、+ という演算子だけで加算元を考慮した結果が得られるのが理解できてない。
これって、加算演算子だけど、内部的には上のaddMonthみたいな関数が呼ばれてる感じなのかな??
余計に分かりづらくてすみませんね。
0862デフォルトの名無しさん
垢版 |
2023/06/02(金) 23:14:49.95ID:ga0CYTsD
>>861
そういう話だったのか
演算子がどう解決されるかを知ると納得できると思う

x + yならまずx.__add__(y)が呼ばれる
このメソッドが実装されてないもしくはNotImplementedが返されたら
次にy.__radd__(x)が呼ばれる
これも実装されてないもしくはNotImplementedが返されたらエラーになる

今回のケースの+演算子はrelativedeltaの__radd__経由でrelativedeltaの__add__が呼ばれる
0866デフォルトの名無しさん
垢版 |
2023/06/06(火) 11:20:12.83ID:NOo63SXR
ぱいソン、
なんでもできる言語だと聞きましたが
ブログとか作ろうと思ったら
HTMLのほうがいいんですか?
JAVAの人気もそうですが、
パイソンが出てきても他の言語が駆逐されてないんですね…
0869デフォルトの名無しさん
垢版 |
2023/06/07(水) 03:18:30.79ID:NvR9KUMb
>>866
基本的にほとんどの言語はなんでも出来る言語だけど、
得意不得意がある
すごくいい加減な情報量の話になるんだけど、複数の言語の同じ文字数で出来ることは、機能をどのように圧縮表現するのかということになって、圧縮アルゴリズム(言語仕様のことだけど)によって得意不得意が出てくるという感じ
PNGはロゴに向いてるけど写真には向いてない、JPEGは逆、みたいなね
Pythonはなんでも簡単に出来るけど、CPUの性能を最大限に出すのは無理な言語。簡単に出来ることに全振りしている
0870デフォルトの名無しさん
垢版 |
2023/06/07(水) 03:32:58.82ID:EKgpPP2Q
切ろうと思えばハサミでも大根切れるが包丁使ったほうが楽みたいな話
銀の弾丸みたいな言語は存在しない
0872デフォルトの名無しさん
垢版 |
2023/06/09(金) 12:12:11.06ID:NHFuTyG1
『慰安婦像を世界中に建てる日本人たち』
を読んでみたまえ。
在日中国人と在日朝鮮人、韓国人を、
排除して国外追放すべきという主張が全く正しいと
納得していただけるはず。

在日中国人、在日朝鮮人・韓国人、
そして日本国籍を取得した二世、三世を含めると
約500万人である。

有名新聞社やテレビ局の社長も在日系がいる。
もちろん政治家にも二世、三世がいる。
追放すべきだ!

IT企業の社長は在日だらけ。
注意せよ!
0873デフォルトの名無しさん
垢版 |
2023/06/13(火) 03:27:40.19ID:ZJJmD30i
蒸れますか?
0874デフォルトの名無しさん
垢版 |
2023/06/14(水) 08:25:44.27ID:SH/RHF7T
関数のデフォルト引数は、関数定義の時点で確定してしまうってマジですか
いや実際下記のコードだと1が2回表示されるんですけど、これ怖すぎませんか
自分、関数外の変数をパラメータとしてよく使うんで戦々恐々です

N = 1
def sample(S = N):
print(S)
N = 2
sample()
N = 3
sample()
0875デフォルトの名無しさん
垢版 |
2023/06/14(水) 11:07:22.05ID:j5xHAvkw
それは普通に引数で渡せよw
どうしてもデフォルト引数として使いたいなら
↓みたいにして実行時に外部スコープから値を取り込むか部分適用で新しい関数を返すようにするか
def sample(S = None):
if S is None:
S = N
print(S)
0879デフォルトの名無しさん
垢版 |
2023/06/14(水) 23:46:06.10ID:AnvpygML
多くの動的言語が、1級関数でクロージャだから、
関数外部の変数が、関数内部に取り込まれる。
だから、よくバグる

一方、Ruby だけは1級関数じゃないから取り込まれない。
関数内部のブロックをクロージャにしているだけ
0880デフォルトの名無しさん
垢版 |
2023/06/15(木) 10:04:00.16ID:dLjlwX4m
>デフォルト引数は危険

知らずに使うから危険なのであって
生涯使わないとかは過剰反応
0881デフォルトの名無しさん
垢版 |
2023/06/15(木) 10:04:15.68ID:dLjlwX4m
>デフォルト引数は危険

知らずに使うから危険なのであって
生涯使わないとかは過剰反応
0882デフォルトの名無しさん
垢版 |
2023/06/15(木) 11:48:33.04ID:8a6mpLjs
単に、変数の展開がどのタイミングでされるか?っていう、各言語の仕様によるものだよな。
それって当たり前に理解してなきゃいけないレベルの話では。
自分の思いこみと違うから危険とか、他言語と違うから危険とか、それは違うよなww
大多数の人の直感に反するから間違えやすい、というのとは全く別。
0883デフォルトの名無しさん
垢版 |
2023/06/15(木) 13:55:49.06ID:jHwGJen4
変数が展開されるタイミングの話と
値がすべての関数呼び出しで共有される話と2つあるよ

前者を注意しなければいけない今回の質問者のような使い方は他言語でもバッドプラクティスなので大きな不都合はない
後者はPython特有の落とし穴で他言語から来た人にとってはバグりやすいポイント
0884デフォルトの名無しさん
垢版 |
2023/06/15(木) 14:04:52.50ID:8Lm7x0rO
デフォルト値を定義する機能なのに変数を代入してるのが謎だわ

この場合シンプルに
def sample(s=1)
で定義して使用する時は
sample() とか sample(N)
じゃだめなのか?
0885デフォルトの名無しさん
垢版 |
2023/06/15(木) 14:39:18.88ID:IBp2a99S
>>884
変数というより、定数として定義しておいてそれを指定する感じで使ってる
Noneとかboolean以外で値の直書きはなんか嫌だなw
0886デフォルトの名無しさん
垢版 |
2023/06/15(木) 14:56:22.35ID:8Lm7x0rO
>>884>>874 のコードに対してね
再代入してるから定数を意図して大文字の「N」という訳でもなさそうだし意図が分からなかった

自分もマジックナンバーを用いるのは嫌だけど、それも前後の文脈とかによると思う。
例えばポート番号を渡す関数を作るとき、
def foo(port=APP_PORT)
とか定義してあるより
def foo(port=22)
とか書いてある方が自分は逆に分かりやすいし、どこか他所で定義されてる APP_PORT が絶対に書き換えられていないっていう保証が Python では無いし。
0887デフォルトの名無しさん
垢版 |
2023/06/15(木) 19:51:30.10ID:NRzS3/Hm
>>885
この例は定数として使ってないから問題なのですよね
0888デフォルトの名無しさん
垢版 |
2023/06/15(木) 20:01:12.79ID:Loc7aXfB
>>884
>>874のコードの意図は、一つの関数を異なるデフォルト値で
使い回したいケースを想定しています

例えばプロ野球各チームの代表選手を一名ずつ入力させる処理があったとして
チームごとに知名度の高いスター選手をデフォルト指定してはinputを回して
空打ちされたらデフォルト選手名を使うイメージです

でもまあ、今後デフォルト引数は使わないのでもういいんです
お騒がせしました
0889デフォルトの名無しさん
垢版 |
2023/06/15(木) 21:02:36.25ID:IgZ67UFj
関数内で完結してない時点で使い方おかしい
しかもそれだと毎年変わるだろ
0890デフォルトの名無しさん
垢版 |
2023/06/15(木) 21:29:31.89ID:0XxRvJKG
そういうのはインスタンス生成時にコンフィグを渡すか読み込むかしておいて関数呼び出し時に明示的に渡されなければコンフィグ記載のデフォルト値を使うというやり方をする
Noneを指定しておいて関数内で分岐するところは同じ
0891デフォルトの名無しさん
垢版 |
2023/06/16(金) 00:26:35.04ID:StfTi6nw
デフォルト値を変えるって、
以前変えた値が生きてしまうとか
複数個所から使用した場合に他方へ影響が出てしまうとか
そういうのを想定しないってことよね

いいやり方じゃない気がする
0893デフォルトの名無しさん
垢版 |
2023/06/16(金) 09:05:53.00ID:ly+Q1cW8
>>888
そういう用途なら
class Sample(object):
def __init__(self, n):
self.n = n

def sample(self, s=None):
if s is None: s = self.n
print(s)

s = Sample(1)
s.sample()
s = Sample(2)
s.sample()
s = Sample(3)
s.sample()

観たいな描き方の方が良い
0895デフォルトの名無しさん
垢版 |
2023/06/16(金) 19:23:17.82ID:XNOAB+rY
def make_sample_func(n):
 def sample(s=n):
  print(s)
 return sample

s = make_sample_func(1)
s()
s = make_sample_func(2)
s()
とかでもいけるかな。
0896デフォルトの名無しさん
垢版 |
2023/06/16(金) 20:22:55.76ID:sY7f1uiK
ででででこれーた
0897デフォルトの名無しさん
垢版 |
2023/06/17(土) 10:47:08.40ID:bEvtfpfP
windows11でアプリケーション自動起動のスクリプトを書く場合、pywinautoが良いでしょうか
どの言語が良いのか迷っています。
0898デフォルトの名無しさん
垢版 |
2023/06/17(土) 11:02:07.85ID:Fi2FK6UR
自動起動だけだったら標準機能のスタートアップとかサービスじゃ駄目なの?
そこから自動で何か操作するんだったらpywinautoでもいいのかもしれんけど
0899デフォルトの名無しさん
垢版 |
2023/06/17(土) 14:34:54.29ID:bEvtfpfP
ユーザー名とパスワードを入れてのログインなので
タスクスケジューラでは足りませんでした。
pywinautoをググってもあまヒットしなかったので
他の言語のほうがいいのか知りたく質問しました。
0900デフォルトの名無しさん
垢版 |
2023/06/17(土) 15:22:15.38ID:ugkpGcKE
powershellからの起動を塞がれる可能性はあるけどpower automateの選択肢もあるかと
0901デフォルトの名無しさん
垢版 |
2023/06/19(月) 10:54:40.92ID:xB77xCcF
Pythonでサービス登録ってどうすればいいの?
0902デフォルトの名無しさん
垢版 |
2023/06/19(月) 12:06:13.92ID:xYrrfR7/
Windows ならサービスマネージャー、Linux なら systemctl とか、OS の機能として登録するのが基本だと思うけど Python からやるなら pywin32 とか言うのがあるらしい。
pypi.org/project/pywin32/
qiita.com/Bashi50/items/1d98f80ccaa8746bff38

自分は使ったこと無いからよく分からん
0903デフォルトの名無しさん
垢版 |
2023/06/19(月) 12:18:58.21ID:7QNCRBGI
関数を細かく分けてネストしているような時、最下層の関数で使う値を、上層の関数で制御や決定するような場合、引数のバケツリレーみたいになってしまうけど、こういうときは仕方ないのか、グローバル変数にして渡すべきなのか、どうなんでしょう?

例として、aiohttpのrequest関数にプロキシなどを渡す場合で、
A関数→B関数→C関数→D関数→aiohttp
(A関数でaiohttpのプロキシやヘッダの決定をする。B、C、D関数では使わない)
といったケース。

Reactでのpropsのバケツリレーみたいにあまり良くないみたいなイメージが。
0904デフォルトの名無しさん
垢版 |
2023/06/19(月) 12:23:20.66ID:h42DXjZ+
個人開発でもgit使うべきなんだろうか
古いファイルimportして気づかず実行時エラー直らなくて困ってから思った
0905デフォルトの名無しさん
垢版 |
2023/06/19(月) 12:40:36.95ID:xYrrfR7/
>>903 正直そのコードがイメージできてないから何とも言えないけど、グローバル変数に抵抗があるならクラスにまとめるのも良いんじゃない?
コンストラクタインジェクションで必要な情報を最初にメンバとして与えて、あとは各メソッドで好きなように使う感じ。
メンバを参照する場合はメソッドの引数として渡さなくていいわけだし
0906デフォルトの名無しさん
垢版 |
2023/06/19(月) 13:59:45.88ID:7QNCRBGI
>>905
あーそっか!なるほど。
クラス(インスタンス)にスコープを閉じこめてしまえばグローバル変数使わなくて済みますね
まだ積極的なクラス化に慣れてないので思いつきませんでした。
ありがとうございます。
0908デフォルトの名無しさん
垢版 |
2023/06/19(月) 20:19:59.67ID:YM4pgXtK
>>904
gitは使い出したよ
やっぱやーめたで戻りたり、機能追加するのに別ブランチつくってから統合したりくらいしか使ってないけど
0909デフォルトの名無しさん
垢版 |
2023/06/20(火) 13:28:50.21ID:8A36Uzhp
pypiにモジュールうpしてみ
嫌でもgit/github覚える
0910デフォルトの名無しさん
垢版 |
2023/06/20(火) 16:29:35.63ID:/U7g5+3X
gitは大規模分散開発向けだから一人開発に使うには大げさ
Subversionがおススメ
0912デフォルトの名無しさん
垢版 |
2023/06/20(火) 17:03:32.79ID:i7ER5+tQ
個人の超小規模な開発でもgit使ってますわ
ブランチやコミットメッセージは適当だしgitホスティングサービスも使ってないけど
0913デフォルトの名無しさん
垢版 |
2023/06/20(火) 17:51:47.54ID:B29tW43G
個人でもgit使ってるなー
たまにしか使わないような環境構築の手順のメモとかでもマークダウンで書いておいてホスティングサービスにプッシュして保存してあるから外から見れるのが便利
SVNは過去に使ったけどGitに移行するときに「同じ用語だけど意味が違う」みたいのがチラホラあって苦労したのもあって触らなければよかったとさえ思ってる
0914デフォルトの名無しさん
垢版 |
2023/06/20(火) 20:39:53.25ID:UXIko2WD
今さらSubversion使うってのはさすがにないわ…
0915デフォルトの名無しさん
垢版 |
2023/06/20(火) 23:56:43.97ID:/NrGyZWU
1人開発だからSubversionが適してるなんてことないよ
GitもSubversionも知らなくて、どちらも学習コストがかかるなら圧倒的にGitをお勧めする
というかSubversionの方が運用が難しいと思うんだよな。
0916デフォルトの名無しさん
垢版 |
2023/06/21(水) 02:35:55.96ID:qDL7muQc
適不適ってよりsubversionって開発まだやってんのか? gitあんだしもうとっくに開発終わってLTSの保守みたいなことだけやってんだと思ってた
公式行って開発メーリングリスト見たら件数全然だし、そもそもロードマップの冒頭に次のリリースの予定は現在ありませんなんて書いてあったんだが
0917デフォルトの名無しさん
垢版 |
2023/06/21(水) 18:05:52.58ID:cQZLHxHQ
pickleの仕様が意味わかんないんだけど
class aでpickle.dump(dataclass)したファイルを
別のディレクトリにあるclass bからpickle.loadすると
attribute errorになるのはなぜ

同じdataclassはimportしてるからデータ構造一致してるじゃんか…
0922デフォルトの名無しさん
垢版 |
2023/06/22(木) 01:32:51.71ID:hPQpnAZR
>>921
iPhone用ですね㌧
PythonはOS関係ないみたいに聞いていたのでPCに入れたのがそのまま入るのかと思ってたんですけど、それぞれあるんですね。
0924デフォルトの名無しさん
垢版 |
2023/06/27(火) 09:47:44.74ID:BbQ3yiyV
カレントフォルダAの下階層Bにあるa.pdfを開く場合の指定を教えてください

open("/B/a.pdf"., "rb")

かと思ったら違いました
0925デフォルトの名無しさん
垢版 |
2023/06/27(火) 09:51:40.18ID:x7v8IWey
open("./B/a.pdf"., "rb")
0928デフォルトの名無しさん
垢版 |
2023/06/27(火) 13:31:09.61ID:BbQ3yiyV
何度もすみません
PyPDF4を使って、inputフォルダ内のpdfにしおりをつけてoutputフォルダへ保存したいのですが
すでにしおりが存在するpdfがあると処理が止まります

https://techiedelight.com/compiler/?09af

しおりがある場合はスルーする、または上書きするような処理はどう書けばいいでしょうか?

>>927
ありがとうございました
0932デフォルトの名無しさん
垢版 |
2023/06/27(火) 14:26:11.38ID:BbQ3yiyV
>>929
まさにそのサイトを参考にしました
try exceptでしおりがあるファイルをスキップできました、ありがとうございます
VSCODE入れて使ってみます

>>930
取り急ぎで人様のコードをつぎはぎ使わせてもらってるので、自分で最初からやるときは生きてるのを使います
最新のpyinstallerからもはねられてしまいました
0933デフォルトの名無しさん
垢版 |
2023/06/27(火) 15:53:08.97ID:pRiyodEZ
>>928
pypdfにあった2、3、4の分岐は全部元のPyPDFにマージされたみたいだけど
0934デフォルトの名無しさん
垢版 |
2023/06/29(木) 07:39:16.93ID:T2CvwE5c
>>813
print(
"{0}\n{1}\n\n{2}\n{3}".format(
"《7/12公開》【超拡散希望】やまと新聞 水間政憲の「国益最前線レポート」#19 「社会党議員が国会で問題にした韓国人の密入国問題 他」",
"htt"+"ps://www.nicovideo.jp/watch/so26687951?from=1395",
"第22回国会 衆議院 法務委員会 第23号 昭和30年6月18日|国会会議録検索システム",
"htt"+"ps://kokkai.ndl.go.jp/simple/txt/102205206X02319550618",
)
)
0935デフォルトの名無しさん
垢版 |
2023/06/30(金) 19:43:15.38ID:Nh9R4vk6
@login_manager.user_loader
def load_user(user_id):
return testuser.query.get(user_id)

class testuser(UserMixin, db.Model):
__tablename__ = 'testuser'
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(64), index=True)

def __init__(self, user_name:str, password:str):
self.username = user_name

users = testuser.query.all()
が空のリストしか返ってこないのですが
なぜでしょうか?
db.create_all()で作られたsqliteのファイルにはSQLitestationで2行書き込んであるのですが
0936デフォルトの名無しさん
垢版 |
2023/06/30(金) 23:05:55.64ID:aYX0cHOa
自己解決した
dockerの外のファイルに書き込んでたわあほだった
0937デフォルトの名無しさん
垢版 |
2023/07/05(水) 21:32:51.88ID:vwEo9VyC
VS Codeでpythonを書いてるんですがフォーマットしてもらえません
拡張機能のBlack Formatterを入れて、jsonは下記のように指定してます
https://techiedelight.com/compiler/?f802

で、以下のようなコードを書いて保存しても何も整形されません
(フォーマッタが効いてればちゃんと整形してくれるらしいです)
https://techiedelight.com/compiler/?ff9b

どうしたら整形してくれるようになるんでしょうか
0938937
垢版 |
2023/07/05(水) 23:40:56.16ID:vwEo9VyC
pipでblackをインストールしてターミナルからblackコマンド打ってpyファイルを読ませたらフォーマットできました
でもVS Codeで保存する際にフォーマットしてほしいです…
0939デフォルトの名無しさん
垢版 |
2023/07/06(木) 02:09:51.02ID:ET0epgcJ
>>937
これJSONって手動で設定した?
一回設定を初期化して、設定画面から一個ずつ再設定したら?
0940937
垢版 |
2023/07/07(金) 22:45:39.38ID:ediGtYoh
>>939
一旦jsonファイルの中身をすべて消し、
"[python]": {
"editor.defaultFormatter": "ms-python.black-formatter",
"editor.formatOnSave": true
}
のみにしましたが動作しません
※上の2行は公式拡張のBlack Formatterの詳細に書かれていたもの
Black Formatterも入れ直しましたが改善せず
0942デフォルトの名無しさん
垢版 |
2023/07/08(土) 01:26:23.76ID:qxsUVEr0
>>940
だから直接編集せずにUIから設定せい言ってるやろがい!
https://i.imgur.com/AfxL82b.png
https://i.imgur.com/bkFAjaw.png

問題の切り分けとしてJSON設定のフォーマットミスが考えられる
(手動で編集してたらミスしてる可能性が高い)

だからUIで設定した時に、正しい内容どうやって記載されるかを確認して
それでもダメなら他に考えられる原因はなんだろう、って確認するんだぞ
>>941が言うように一番外側の括弧も無いし
0943937
垢版 |
2023/07/08(土) 08:04:16.09ID:7NgqkU0K
>>941-942
すみません、一番外側のカッコは省略してしまいました
また、UIから指定だと、Black FormatterのUsageに書かれている、
"[python]": {
"editor.defaultFormatter": "ms-python.black-formatter",
}
の指定ができないのではと思い記述していました

結果としてはvenv環境で実行しているのにインタプリタがvenv内のものでない(?)ことが原因だったようです
インタプリタをvenvのものに指定しなおしたらフォーマットされるようになりました
お騒がせしました
0945デフォルトの名無しさん
垢版 |
2023/07/11(火) 06:05:54.70ID:pfF1WrTr
pythonのopen関数でバイナリモードでpngなどのテスト用ファイルを開き
with open("xxx.png", "rb") as fff:
a=fff.read(16)として16バイト読み込んでいます
意味はないが練習プログラムであり16バイトずつ読み込みたいので
次の16バイトのために現在位置を記録してファイルクローズとしたい
そこでたどり着いたfff.tell()は16進数のようなものを返してくれるのですが
これを使って任意位置からまた16バイト読むにはなんらかの関数(メソッド?)に
これをそのままか10進数などに加工して渡したりできるものが存在するのでしょうか
というところで悩んでます、バイナリで読んだりシークする手段は他にもあるようですがまずは始めてしまったopen関数でなんとかしたい
0946デフォルトの名無しさん
垢版 |
2023/07/11(火) 08:06:58.25ID:pfF1WrTr
あ、あと格納した16バイトをprintすると…IHDR…などとpngのヘッダーのようなものが表示されて
よしよしと安堵していたのですが、文字で表示されるのは格納状態に問題ないか?とも思ったのですが
これはdebian(termux)の標準出力の仕様かprintの型の扱いの問題か混乱しています
0947デフォルトの名無しさん
垢版 |
2023/07/11(火) 11:24:07.34ID:heSsZz8c
fff.tell() で読んだのをそのまま覚えておいて
次 open して読む前に seek すれば良いだけ
そもそも任意の位置から読むつもりなら前回の場所覚えておく必要も無いか
0948デフォルトの名無しさん
垢版 |
2023/07/11(火) 11:25:38.01ID:heSsZz8c
PNGの仕様はここで聴くな
0949デフォルトの名無しさん
垢版 |
2023/07/11(火) 14:43:28.87ID:pfF1WrTr
これをseekに渡せるんだなるほどやってみようと思います
16進数を返すというのはなにか間違ってたかもしれませんどの参考サイトも(バイナリでも)単純な整数を返しているようだ
pngについてはまたどうしようもなくなって解決出来なければ質問しますありがとうございました
0951デフォルトの名無しさん
垢版 |
2023/07/12(水) 01:56:47.85ID:pcy3cOib
>>946
docs.python.org/ja/3/library/stdtypes.html#bytes-objects
type(a)はbytesだとおもうので、そうであれば中身はバイト列になってる
docs.python.org/ja/3.11/library/functions.html#print
printはstr(a)した結果を出力してるだけ
docs.python.org/ja/3.11/library/stdtypes.html#bytes.hex
もし16進で出力したいなら前もって文字列変換する
0952デフォルトの名無しさん
垢版 |
2023/07/12(水) 06:28:18.89ID:pDc+QmGt
>>951
ありがとうございます
以下のように目的の勉強プログラムは走らせることがなんとかできました
file_r.py
https://i.imgur.com/v60xntR.png
fileoptest.py
https://i.imgur.com/NmFO1hH.png
実行結果
https://i.imgur.com/zI0U4BR.png
追伸、変な16進数を吐いていたのはf.tell()の括弧を忘れていて
それを入れたリストをprintしていたからのようでした😣
0953デフォルトの名無しさん
垢版 |
2023/07/13(木) 04:29:10.48ID:1vUpazri
Ruby では、script.rb へ、以下のコードを書いた場合、

=begin
IO.read(path, length = nil, offset = 0, **opt) -> String | nil

ARGV[0] は、読み込むファイルパス
ARGV[1] は、読み込むバイト長
ARGV[2] は、読み込み開始位置・オフセット
=end

# バイナリファイルを読み込む
File.open( ARGV[0], "rb" ) do |io|

# ファイル先頭から、ARGV[2]バイト位置へ移動する
io.seek( ARGV[2].to_i )
# seek位置から、ARGV[1]バイトを読み込む
bin = io.read( ARGV[1].to_i )

out_text = <<"EOT"
ファイル #{ ARGV[0] } を読み込み、
オフセット #{ ARGV[2] } から、#{ ARGV[1] } バイトを出力する
EOT

print out_text + "\n"
p bin
end

次へ続く
0955デフォルトの名無しさん
垢版 |
2023/07/13(木) 13:04:48.97ID:WmHCeekq
なぜ続きがないのか…
寝て忘れたか、janeに切り換えたため騒動の掲示板の方に気付かずポストしているか
なにかNGになるので試行錯誤で断念かキニナル
0957デフォルトの名無しさん
垢版 |
2023/07/13(木) 16:23:28.79ID:WmHCeekq
>>956
ID変わったけど自分です
な、なんだこれは(自慢か!?どやなのか)
一応ダウンロードしたしいいねしようとしたがアカウントないし取り止め
言語的には真っ先にかじったC++の系譜を感じる(Rubyどこいった)…ほぼ何やってるか認識できないが
png特化の「これがファイルセーフな正確なやり方な」という、プログラミングの世界へようこそウェルカムトゥ…という事か(゜ロ゜;
オーバーキル気味に解答する趣味なのかw

次スレよろは>ALLと受け取り
0960デフォルトの名無しさん
垢版 |
2023/07/16(日) 13:35:35.84ID:aonKa36p
もう人いない猫のスレ
0962デフォルトの名無しさん
垢版 |
2023/07/16(日) 20:13:10.50ID:9qPbKtF4
>>961
「くだらねえ質問はここに書き込め!」スレってことなんだろうな

>>1
>超低レベル、もしくは質問者自身何が何だか分からない質問

を他のスレに書き込まれたり、質問ごとにスレをたてられても
鬱陶しいから、そういう質問はここに書けってことだろう
0963デフォルトの名無しさん
垢版 |
2023/07/16(日) 20:23:01.59ID:zi0sCHZC
>>960
粗方普及し終わったんだと思う
これから入って来る人は最初からAIとかのライブラリ目当て
Pythonそのものには興味がないからここには来ないんだろう
0966デフォルトの名無しさん
垢版 |
2023/07/17(月) 09:47:51.16ID:9RC0qZ1Y
くだを巻くスレだぞ

超初心者が良く分からないことをあれこれと言ったり、しようもないことを何度も繰り返ししゃべっても(くだを巻いても)良いスレ
0968デフォルトの名無しさん
垢版 |
2023/07/18(火) 09:47:51.66ID:SsApxntM
頑張るCPUをなだめてゆっくり動いてもらう方法ってある?
一定時間ごとに処理したいことがありそのたびに子プロセスに任せてるけど
急がず最低クロック周波数で動いてほしいのに最高になっちゃうことで電気食ってるように感じる
クロームブックを使っていてWindowsみたいにBIOSやアプリでクロックに制限かけれなそうだし何かないかしら

処理中■ 空き□


1■■■□■■■□■■■□■■■□□■■■□■
2□□■■■□■■■□■■■□■■■□■■■□
3□□□□□□□□□□□□□□□□□□□□□□

こうしたい
1■■■■■■■■■□■■■■■■■■■□■■
2□□■■■■■■■■■□■■■■■■■■■□
3□□□□■■■■■■■■■□■■■■■■■■
4□□□□□□■■■■■■■■■□■■■■■■
5□□□□□□□□■■■■■■■■■□■■■■
6□□□□□□□□□□□□□□□□□□□□□□
0969デフォルトの名無しさん
垢版 |
2023/07/18(火) 16:10:33.22ID:fggT64M6
それぞれのプロセスがループしてるんなら
ループ中でハード的な(CPUに負荷掛けないでCPUに待たせる)waitすればいいんじゃない?
プロセスの中にループ無くて爆速で動いてるなら命令毎にやっぱりwait入れるとか?
クロームブックなんてしらんけど
0970968
垢版 |
2023/07/18(火) 17:19:07.77ID:SsApxntM
ごめんこの書き方だと遅くしたいことしか伝わらなかった

やりたいことは省電力化で、一定時間ごとに発生する処理にリアルタイム性は要求されないため
マルチプロセスで処理するにあたり省電力化の手段として
はたらく一部のコアが4GHz、何もしないコアが1GHzとかで動いている状態から
全てのコアをはたらく1GHzに変えられないかなと
Windows上で動かすときみたいにクロック周波数を低く保つ手段があればCPUの消費電力下がるんじゃないかなと聞きたかった
0972968
垢版 |
2023/07/18(火) 17:39:25.44ID:SsApxntM
おお、まさにこれで解決しそうだ
実際に解決するか試すのは次システム止めてからになりそうだけど本当にありがとう
0973デフォルトの名無しさん
垢版 |
2023/07/19(水) 22:17:02.08ID:o1ug+L9a
自作関数のdefから始まってifやwhileのネストのあとの適切な最終的な「return」のインデント
いつもわからず試行してやっとエラーの出ない場所を見つけます
flake8もそこまで教えてくれないし
こんな風に見るんだよだとか使える検査ツールはありますか?
エラーはインデントエラーからアウトオブファンクションまでさまざまですが主に前者
0974デフォルトの名無しさん
垢版 |
2023/07/20(木) 00:56:06.90ID:8hshmRM9
インデント戻りには
必ずインデントと#だけの行置いてるわ
不細工だけどインデント補完ミスが起こらないので
0975デフォルトの名無しさん
垢版 |
2023/07/20(木) 01:13:19.13ID:aZgrryLs
>>973
> 自作関数のdefから始まってifやwhileのネストのあとの適切な最終的な「return」のインデント
> いつもわからず試行してやっとエラーの出ない場所を見つけます
VSCodeかVimで書いてるけどそうなったことがないのでよくわからん
どういう環境なの?
0976デフォルトの名無しさん
垢版 |
2023/07/20(木) 03:40:41.51ID:6f9RrYMN
>>974
なるほど、それはこういうこと?
while True:
[Tab]if a = b:
[Tab][Tab]print("goal!")
[Tab][Tab]if a < b:
[Tab][Tab][Tab]print("not goal!")
[Tab]#
自分のはVimが拡張してあってタブ毎の罫線(縦軸ガイドライン)のようなのは表示されてます

>>975
この質問書いたあと仕方ないので上から順にタブの入れ方やミスらしきものを一行一行念入りに改善してくと通りました
途中のwhile周辺の変数宣言のタブか、その中の複数ブロックのifネストのタブがおかしかったため?影響があったようです
合ってそうなインデント位置でout of function関数範囲外だって言われるのがそもそも問題だなと先頭から見直していきました
0977デフォルトの名無しさん
垢版 |
2023/07/20(木) 14:58:18.19ID:gFX8U9r2
tkinterのウィジェット、例えばチェックボタンのvariableとチェックの有無を取得したい時は
配置するときに両方を変数に保存しておかなければならないの?
今までの感覚ではウィジェット本体を変数に入れておくか名前で特定できるなら
名前を使ってアクセスしてプロパティの参照や編集ができるのが当たり前だと思ってたんだけど
そうではないの?
またはカスタムウィジェットにしてvariableを持たしておくぐらいしか変数一つで両方にアクセスする方法はないの?
0978デフォルトの名無しさん
垢版 |
2023/07/20(木) 15:05:02.98ID:6BSTmMYa
漏れも >>973 になる状況が判らん
強いて言えばプログラム構造を理解していないとしか思えない
そんなやり方でエラーにならない return の描く場所観付けてそこに描いても
それがまともなプログラミング作法だとも思えない
0979デフォルトの名無しさん
垢版 |
2023/07/20(木) 15:09:45.69ID:6BSTmMYa
>>977
>今までの感覚ではウィジェット本体を変数に入れておくか名前で特定できるなら
名前を使ってアクセスしてプロパティの参照や編集ができるのが当たり前

そうだね
0980デフォルトの名無しさん
垢版 |
2023/07/20(木) 15:25:03.83ID:gFX8U9r2
>>977です。variableとチェックの有無は同じですね。間違ってたところを訂正
×variableとチェックの有無を取得したい時は
〇 variableとテキストを取得したいときは

>>979
答えてくれて嬉しいが、意図はどちらなのかわからない
0981デフォルトの名無しさん
垢版 |
2023/07/20(木) 17:47:38.46ID:8hshmRM9
>>976
こんな感じ
while True:
 if a = b:
  print("goal!")
  if a < b:
   print("not goal!")
  #
 #
#

#の行に改行挿入するか、その前の行に改行挿入するかで
任意のインデントが追加できる
0982デフォルトの名無しさん
垢版 |
2023/07/20(木) 17:51:36.43ID:dUzAfWwC
if a < bのインデントが間違ってる例なんだよね?
0983デフォルトの名無しさん
垢版 |
2023/07/20(木) 22:10:56.04ID:6f9RrYMN
>>978
たしかに今度からreturnの挙動がおかしければ先に他を疑おうと思いました
プログラム構造の理解がないのは事実です、returnなんでdefの一段さげでいいだろ違うのか😡混乱!な状況
>>981
なるほど

>インデントが間違ってる例なんだよね
こんな判定をネストでやるなってことなら例示のため急いででっちあげた中身だしお許しを
とはいえ実際こんなことはやっていてタンスを下から開けていきこれじゃなければこれと開けてるような
目的にマッチ次第breakするネストです
while Trueの中なので自分は混乱しがちで、言わば判定ツリーのようにその部分を捉え
自分の中で目にわかりやすくしたつもりでした
(elifとかあまり使ったことなくifの連鎖でいいや使えるもの使っとけと、判定できればいいや精神)
0985デフォルトの名無しさん
垢版 |
2023/07/20(木) 22:33:44.74ID:aZgrryLs
初心者っていうか可読性考えずに無茶苦茶にインデント使ってた人にしか見えない
0988デフォルトの名無しさん
垢版 |
2023/07/23(日) 11:16:10.39ID:kMNWXVHy
うめようず
0989デフォルトの名無しさん
垢版 |
2023/07/23(日) 13:12:07.77ID:KY7rCCqC
けっきょくなんだったんだ
0991デフォルトの名無しさん
垢版 |
2023/07/23(日) 16:48:59.99ID:ijFwVi/G
>>959
次スレはこれか
0993デフォルトの名無しさん
垢版 |
2023/07/23(日) 21:12:52.84ID:2n4BAjDB
尼穴子好き
0994デフォルトの名無しさん
垢版 |
2023/07/23(日) 21:50:46.53ID:ijFwVi/G
>>992
print(f"次スレは{>>959}")
俺はもうこれしか使ってない
0997デフォルトの名無しさん
垢版 |
2023/07/23(日) 22:19:17.41ID:ijFwVi/G
可読性上がるし今のところ他の人のコードイジらないからなあ
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 319日 14時間 4分 13秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


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

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

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

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。

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