【まず1嫁】くだすれPython(超初心者用) その58

■ このスレッドは過去ログ倉庫に格納されています
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 ###
2022/10/02(日) 19:03:33.06ID:6gm07/Z2
ドキュメントによるとその形式はUNIX系だけなんじゃね?
"GMT+9"とかしてみれば
78デフォルトの名無しさん
垢版 |
2022/10/02(日) 19:11:31.40ID:QRKSlI6k
pytzが必要なんじゃない?

https://qiita.com/suzuki-navi/items/9ed7670aa4a93cf021d2
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)で時刻を扱いたかったのですが。
2022/10/03(月) 11:21:26.86ID:BGisZcin
自分の使ってる環境やOS以外のOSの存在を想定しないタイプの質問者は多い
2022/10/03(月) 11:24:07.67ID:BGisZcin
>>75
PC(やノートPC)本体のF8機能は疑わないの?
2022/10/03(月) 11:27:44.02ID:BGisZcin
>>79
自分はログインするすべてのユーザーで起動時に TZ=JST-9 で動く様にしてる
まかせっきりにするより安定するから

>>78
pytz 便利だよね
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
誤差を発見したので。
2022/10/05(水) 20:11:20.53ID:uckusxLZ
octaveでも使えば
もしくはラズパイでmathematica
2022/10/05(水) 20:16:15.69ID:0zm+Esby
ちなみに
(2^((2^(23-1))-1))*(2-(2^-488))
の時点でウルフラム大先生には誤差が出る。
https://ja.wolframalpha.com/input?i=%282%5E%28%282%5E%2823-1%29%29-1%29%29*%282-%282%5E-488%29%29
10^(10^6.101269676953259)

正確には
10^(10^6.101269676953261)
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)

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

しかしVSCodeでmpmathを使う場合、いちいちコンソールでpythonと入力し、
1行ずつ実行している。
普通にpythonのソースを実行するみたいにできないのでしょうか?
2022/10/08(土) 18:15:23.92ID:UY8pCVsr
>>88
コマンドパレットで
python
っていれてみ
あと使う言語の機能拡張の説明くらいは読んどこ
ぜんぶvscodeの話やけどな
2022/10/08(土) 18:27:23.49ID:qEj00saR
>>89
ありがとう。「選択範囲を実行」で実行できるみたいだけどまだ不便だな。
91デフォルトの名無しさん
垢版 |
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"が文字列で入ってます。

何か取得できる方法があれば教えてください。
92デフォルトの名無しさん
垢版 |
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"が文字列で入ってます。

何か取得できる方法があれば教えてください。
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",))
2022/10/09(日) 22:54:48.71ID:t9JKJStV
>>88
VSCode の拡張機能・Code Runner で出来ないの?

右クリックメニューから、ファイル全体または選択したコード片を実行できる
95デフォルトの名無しさん
垢版 |
2022/10/10(月) 05:06:49.79ID:t2iZA/Es
>>91
エラーの内容も出てるのに、これでもわからないような人はプログラミングはやめた方がいいよ
96デフォルトの名無しさん
垢版 |
2022/10/10(月) 07:14:12.18ID:ST1YeHmA
>>93
ありがとうございます
いけました!
2022/10/10(月) 09:35:34.12ID:3yLYwmxt
>>93>>95の対応レベルの違いに鼻水噴いた
エラーメッセージって表面的なことしか指摘してくれないから
それ見て根本原因を見つけるのにはそれなりの経験とスキルが要るのよね
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 インジェクションされるので超危険
2022/10/10(月) 14:04:34.11ID:sJsMwDUU
>>98
> なぜ、SELECT "JAN", WHERE NOT "JAN" と、列名を"~"で囲むの?
列名(に限らず表名やビュー名等の識別子)は " " で囲むと空白とかを含む列名を指定できる、あと英字でも大文字小文字を区別するようになる
一昔前は漢字等でも囲む必要があったものもある
2022/10/10(月) 16:55:38.18ID:Xq5E773z
>>98
囲むのはdateが予約語でJANが大文字だから
JANをダブルクォーテーションで囲まないとpostgresは全部小文字に変換する
101デフォルトの名無しさん
垢版 |
2022/10/10(月) 18:54:20.90ID:EzlpT+F/
このスレにも終わったRubyを持ち出すキチガイがいるのか
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 にはどういう意味があるのでしょうか?

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

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

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

あとどうでもいいけど、endの意味が途中から変わっててバグってる
2022/10/11(火) 09:35:13.11ID:1t/lVmf9
>>103
回答ありがとうございます。また、お手数かけてすみません。
whileループと return -1 は経験者なら分かる使い方なのかと思ってコードを省略してしまいました。
以後気をつけます。
2022/10/11(火) 14:24:32.17ID:17+/w9Hg
作者は、正常終了を0 で、異常終了を-1 にしたのかも

よく見かける定義
2022/10/11(火) 15:07:01.27ID:+IdMirEn
>>105
なに言ってるんだよw
見つかったらlistの添え字
見つからなかったら-1
せっかく>>103が書き写してくれてるんだからコード見ろよ
2022/10/12(水) 23:04:39.44ID:UENmAu+H
任意の数の要素を持つリストをある数で初期化して生成したいんだけど
例えば、[-1, -1, -1, -1,-1]みたいなのを生成しようと思ったら
リスト内包表記で[-1 for i in range(5)]とやるのが一番シンプルかな?
2022/10/12(水) 23:11:27.62ID:RrsSoprO
数値にようにimmutableなら [-1] * 5 でもいいのでは
2022/10/12(水) 23:29:22.91ID:UENmAu+H
>>108
あ、その手があったかマジTHX
てか、リストの演算とか基本だよな。なんでそれ見逃してたんやろ
110デフォルトの名無しさん
垢版 |
2022/10/13(木) 11:23:55.91ID:mnydj+83
多次元リスト作る時に問題があるから内包表記を使ってる内に、一次元配列でも使うようになった
とか
111デフォルトの名無しさん
垢版 |
2022/10/13(木) 14:14:04.52ID:mnydj+83
リスト
112デフォルトの名無しさん
垢版 |
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円', '送料無料', '送料無料']

送料の記載がない箇所には送料無料を代入して取得したいのですが、
何かいい方法ありませんか?
2022/10/16(日) 08:06:17.10ID:P3u/guM2
内包表記せずにループで中身確認しながらリストにappendで追加で良さそう
今は2番目がスキップされてる状態だよね
2022/10/16(日) 08:08:28.26ID:P3u/guM2
ああごめん、取得した段階で2個になってるのか
115デフォルトの名無しさん
垢版 |
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円', '送料無料', '送料無料']
2022/10/16(日) 12:08:00.45ID:IrphczHF
>>115
これが1番良さそうかも
ちょっとやってみます
2022/10/19(水) 20:21:20.98ID:fx6wlbL4
asyncio.Task使ってます
Task側でキャンセルされたか判断したいのですが
cancel()を呼んでもcancelled()はTrueにはなりません。
asyncio.sleepを呼んでいるとCancelledErrorが発生するのでこれで判断するってことでんでしょうか
2022/10/19(水) 21:10:32.26ID:7AGdww0q
>>117
https://docs.python.org/ja/3/library/asyncio-task.html
そのまんまのこと書いてるやん
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が発生する
協調的マルチタスクなので何れにしても譲り合いの精神
2022/10/20(木) 21:49:43.09ID:USlJAvnt
listA = "AAABBBCCC","DDDEEEFFF"
こういうリストからそれぞれを最初の3文字だけ取る場合っていちいち
listA[0][:3]
listA[1][:3]
ってやらないとだめなの? つまりfor文内でやるかんじ?
一括でできる方法あるの?
121デフォルトの名無しさん
垢版 |
2022/10/20(木) 22:30:56.38ID:pNhy2w5w
>>120

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

https://ideone.com/4PpCrp
高階関数とか内包表記使える
2022/10/21(金) 18:18:40.16ID:KJJV+zwc
>>121
ありがとう
123デフォルトの名無しさん
垢版 |
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
どうしてもエラーがでてしまいます。
お願いします。偉い人!
2022/10/25(火) 09:55:18.08ID:PmE1kXZ/
特定のサイトからデータを取得していたのですが、urlに()が入りました。
%28,%29 でエンコードしてもアクセスできません。何か方法はありますでしょうか。

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

のようなurlです。

よろしくお願いします。
2022/10/25(火) 16:07:38.03ID:7A2ptHo2
どうやってアクセスしてるのかわからんけど
URLのエンコードなんて大概透過的に行われるので出来ないのは他の原因
126デフォルトの名無しさん
垢版 |
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万倍の高速化をやりたい!
127デフォルトの名無しさん
垢版 |
2022/10/26(水) 10:06:30.77ID:wzTCBV7y
>>126
めちゃ簡単そうじゃん、今度やってみよ。
具体的にどこがわからないの?
CUDAカーネル書かなきゃいけないんだったら理解できないってのもわかるけど。
2022/10/26(水) 17:01:49.64ID:UGwAmNJn
>>125
ありがとうございます。
括弧の部分を %28b%28bbbb%29%29 とエンコードしてみたのですが駄目でした。

subprocess.Popen([http://a.com/%28b%28bbbb%29%29]/)

サイトの開き方に問題があるもでしょうか?
2022/10/27(木) 00:12:49.83ID:fsnzTjBD
自分が書いたコードを、社会人の友人に批評してもらったら、
グローバル変数はあまり使わない方がいい(衝突する可能性があるから)
処理をぐるっとdefで囲んだ方がいい
と指摘されたんですが、クラスなどの定義部分も含めて全て囲った方が
いいでしょうか?
2022/10/27(木) 00:18:09.17ID:0CNViBMq
いいえ
131129
垢版 |
2022/10/27(木) 00:26:07.04ID:fsnzTjBD
>>130
レスありがとうございます

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

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

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

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

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

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

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

上のような連想配列から
1666882550000以下の物を降順で2つ取得 → "参番目" と "に番目"
このようなプログラム記述の方法を教えて下さい
デクリメントで総当りは負荷が高そうなのでNGです
2022/10/29(土) 13:01:54.81ID:CGLSS5oS
標準ライブラリにはないですが平衡二分探索木を使ってください
2022/10/29(土) 13:32:30.54ID:Tq2/qUBq
keysをリストで取り出してnumpyに突っ込んでargsortして降順に2個インデックスを取り出して辞書にリスト[インデックス]でアクセスとか
151デフォルトの名無しさん
垢版 |
2022/10/29(土) 13:46:06.14ID:J/RjufZS
OrderedDict
152デフォルトの名無しさん
垢版 |
2022/10/29(土) 15:43:03.58ID:+W9Ulup+
>>149
bisectモジュールってし標準に入ってなかったっけ?
153146
垢版 |
2022/10/30(日) 00:34:22.27ID:FRxBqbrT
>>147
うーん、分かりました
ありがとうございます
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番目"
知らない言葉ばかりだったんですけど要はこういう事ですかね?
これなら総当りでも負荷少なそうなのでやってみます!
2022/10/30(日) 03:57:27.05ID:2IVXofav
>>153
なんて警告されてるのか書けばもっとアドバイスもらえると思うよ
2022/10/30(日) 09:29:09.55ID:XddGgynb
暇だから書いてみた
https://ideone.com/VnKPbs

負荷はどんなものか分からない
argsortじゃなくてsortが簡単だった
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, 'に番目')]
158153
垢版 |
2022/10/30(日) 17:15:54.55ID:FRxBqbrT
>>155
レスありがとうございます

それが、さっき実行してみたらなぜか警告は出ず普通に出来てしまったんです
理由はよく分かりません
確か、「非推奨の機能であり、ver3.12で削除される」等と書かれていたような
気はしますが
一応そのコードを貼らせて頂くので、よろしければ読んで頂けると助かります
https://pastebin.com/s0rBifE7 (コード内のID・パスワードはサンプルです)
2022/10/30(日) 19:55:07.82ID:pkba5bNo
>>158
3.12で削除はsqlite3.OptimizedUnicodeだから
どこかに
con.text_factory = sqlite3.OptimizedUnicode
みたいの書いてあったんじゃない?
160158
垢版 |
2022/10/31(月) 00:05:38.33ID:9DMkpRZo
>>159
ありがとうございます
うーん、コードは上に貼ったもので全てですね…
「Python完全入門」という本に載っていたものをそのまま写して実行しました
まあ今警告が出ないなら何かの間違いだったのかな、という気もしますが
2022/10/31(月) 13:02:00.89ID:Mv22B4ss
辞書型のキーですけど改行(\n)を含む文字列ではキーが見つからないKey Errorになりますが\nをシングルクオートに置き換えると見つかります。
これって仕様書に書いてありますでしょうか?
2022/10/31(月) 13:13:10.32ID:8MwzVFI5
よーわからんからコードで書いてみて

>>> {"key": 2, "ke\ny": 3}["ke\ny"]
3
2022/10/31(月) 13:21:59.68ID:9qd4kdaQ
改行コードだけを挿入したつもりがキャリッジリターンも含まれてたんじゃないの
164デフォルトの名無しさん
垢版 |
2022/10/31(月) 17:25:04.40ID:TphGqH95
仕様書に書いてあるかどうかは仕様書に聞け
165160
垢版 |
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
という内容です
よろしければ、アドバイスをお願いします
166デフォルトの名無しさん
垢版 |
2022/10/31(月) 23:25:28.64ID:L2HQmiB/
>>165
英語読めよ
書いてあるだろ
2022/11/01(火) 00:03:30.73ID:ErTKtcvq
俺は親切だからGoogle翻訳にかけてやったぞ

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

>>167
本当に親切な方ですね!
ありがとうございます
169デフォルトの名無しさん
垢版 |
2022/11/01(火) 07:02:27.48ID:XjPjyOv6
FlaskでつくったwebアプリをWin10 homeで動かそうとしています
pc起動時に立ち上げたいのですがどういう方法がありますか?
サービス?とか言うのに登録することになるんですか?
2022/11/01(火) 08:46:44.47ID:ENm4Z/gv
localhostで自分が使うだけだろ?そんなもんスタートアップにショートカット作っときゃ十分
Webサーバーとしてまともに運用するならnginxとか使うことになるけど、その場合普通はLinuxだからWindowsで変に頑張んなくていいよ。時間の無駄。
2022/11/01(火) 09:11:05.66ID:CMvcSOEo
英語が分からないなら、DeepL で翻訳すれば?
172デフォルトの名無しさん
垢版 |
2022/11/01(火) 10:13:16.96ID:XjPjyOv6
Windowsという足枷
173デフォルトの名無しさん
垢版 |
2022/11/01(火) 11:22:59.34ID:ZzMsks2m
>>168
知恵も回らないだろ
174デフォルトの名無しさん
垢版 |
2022/11/01(火) 16:39:40.42ID:XjPjyOv6
>>170
>localhostで自分が使うだけだろ?
そうです
>そんなもんスタートアップにショートカット作っときゃ十分
そうなんですけど、start, stop, restartがやりやすいといいなって
175デフォルトの名無しさん
垢版 |
2022/11/01(火) 17:33:54.65ID:VEA6qwMy
次回からスレタイは馬鹿専用スレにした方がいいな
2022/11/01(火) 18:31:43.24ID:Orud0uMd
>>175
ちょっと言葉が過ぎるのでは
177デフォルトの名無しさん
垢版 |
2022/11/01(火) 19:22:50.77ID:VEA6qwMy
>>176
お前が原因だよ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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