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

■ このスレッドは過去ログ倉庫に格納されています
2021/10/01(金) 15:46:47.17ID:9qOHXj6D
当スレに★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(超初心者用) その54
https://mevius.5ch.net/test/read.cgi/tech/1623240344/

次スレたては >>985 あたりが挑戦する。
### END OF TEMPLATE ###
2021/10/21(木) 22:23:10.34ID:yuVpO81C
>253
1×2 とUTF-8で書いたtxtを openしてreadしたところ、×が表示されました。
シェルはUTF-8、jsonもUTF-8です。やはりvscodeがなにか悪さしてるのでしょうか?
255デフォルトの名無しさん
垢版 |
2021/10/21(木) 22:28:15.67ID:EiXMJcNZ
>>249
スルーしていいエラーならいいよ
256デフォルトの名無しさん
垢版 |
2021/10/22(金) 12:09:19.87ID:KhubwY06
>>241
そのファイルがある場所でlsしてみて
そして、その結果をそのままここに貼って
2021/10/22(金) 13:08:40.17ID:pSuh16SX
>256
-a--- 2021/10/21 22:08 8 1×2.txt
表示されます!
なんかvscodeのバグなのか仕様なのかのせいなんですかね…
2021/10/22(金) 13:09:12.13ID:pSuh16SX
vscodeでのデバッグのときだけみたいなんで、半分諦めです。
2021/10/22(金) 14:11:33.51ID:X7QNDBcm
PySimpleGUIをつかってスクレイピング用のスクリプトをGUIにしてpyinstallerでexe化(コンソール無し設定)しました。exeで起動するとなにかしらのアクションですぐにコードが強制終了します。調べたところ、スクレイピングに使っているクロームドライバーの自動更新ライブラリがサブプロセスを開始しようとするときにコンソールを封じられているために落ちるってことらしいのですが回避方法がわからないです。知っている方がいたら教えてください。
2021/10/22(金) 15:26:37.44ID:NCC4eAK/
>>241 >>258
すまんこれvscodeじゃなくてpowershellのモジュールの方だった
https://social.technet.microsoft.com/Forums/ja-JP/862dda39-0c53-447c-b4bd-05e147a4f9e4/powershell
vscodeからの実行はコピペ+enterで実現してるようでPSReadLineのバグに引っかかる
ターミナル上でRemove-Module PSReadlineを実行した後は正常
当然シェルをbashやコマンドプロンプトに変更でも回避可能
2021/10/22(金) 16:28:01.92ID:pSuh16SX
>>260
すごい!!ありがとうございます!
無事、全角×が表示されました!!
これでdebug作業が進みます!
ありがとうございました!!
262デフォルトの名無しさん
垢版 |
2021/10/22(金) 16:46:07.04ID:DsjZYzXm
>>259
AllocConsole
2021/10/22(金) 17:23:28.01ID:X7QNDBcm
>>262
ごめん。調べたけどそれだけじゃわからんかった。OSにGUI用のコンソールを用意してもらうってことなんかな。だとしても実装方法が皆目見当つかん。
2021/10/22(金) 20:02:41.52ID:5ieIGpLh
辞書のソート方法を探してたんだけど

https://techacademy.jp/magazine/19309

このページ見たら

dic = {"X": 80, "A": 200, "E": 5, "R": 20, "S": 40}
dic2 = sorted(dic.items())

で出来るって書いてあったがこれ、type(dic2)やったらlistになっとるやんけ
辞書のままソートする方法を普通書かないか?
2021/10/22(金) 20:08:47.66ID:5ieIGpLh
これ、元の辞書を並べ替える場合って

dic1.clear

dic2(実はリスト)を
dic1.update(dic2)
ってやるしかないの?
2021/10/22(金) 20:13:56.45ID:5ieIGpLh
ちょっと間違えてたから書き直した

dic = {"X": 80, "A": 200, "E": 5, "R": 20, "S": 40}
dic2 = sorted(dic.items())
dic.clear()
dic.update(dic2)

これで辞書のkeyでの並び替えが出来るっぽいんだけど、これ以外に方法ある?
2021/10/22(金) 20:57:16.61ID:szev1NjN
どうしてdictionaryをsortしたいの?
268デフォルトの名無しさん
垢版 |
2021/10/22(金) 21:15:58.94ID:QiF9wMqh
dictがOrderedDict相当になったとき
順序に依存するコードが増えたら嫌だなとおもったけど
処理コスト変わらんのに便利さを選ばないのも偏狭なんだろうな

>>266
dict(sorted(dic.items()))
2021/10/22(金) 21:47:08.80ID:5ieIGpLh
>>267
文字列の長さの数値をキーにして、同じ長さの文字列を値にする辞書を作ったから

dic1 = {5: 'apple',3: 'pen'}
みたいなやつ
>>268
ありがとう
2021/10/22(金) 22:05:03.21ID:szev1NjN
お、おう。
2021/10/22(金) 22:32:57.50ID:0c+YzSoZ
アンチパターンってやつやな
2021/10/22(金) 22:59:32.08ID:8L7RGAQS
例えば以下のように、デスクトップにショートカットを作って、
コマンドプロンプトから、Ruby スクリプトを起動すると、
C:\Program Files/ みたいに、半角空白が入っているパスで、バグる

C:\Windows\System32\cmd@.exe /k "ruby C:/Users/Owner/Documents/a.rb"

(注意。書き込めないので間に、@を入れました)

これをショートカットからコマンドプロンプトを通さず、
直接、Ruby スクリプトを起動すると、正常に動く

C:\Ruby25-x64\bin\ruby.exe C:/Users/Owner/Documents/a.rb

とにかく、コマンドプロンプト・Power Shell と、
Linux 系の動的言語との通信には、
半角空白・日本語のファイルパスなど、文字列のバグが多い

VSCode は、WSL2 などLinux, Docker にも対応しているので、動的言語でもバグらない。
バグるのは、コマンドプロンプト・Power Shellの部分
273デフォルトの名無しさん
垢版 |
2021/10/23(土) 01:41:10.93ID:L2XVMbSO
pilで複数の画像を1枚の背景に貼り付けたい
入力される画像の位置がランダムbbox(x1,y1,x2,y2)なんだけど
すべての座標を含む最小範囲の背景(0,0,x2,y2)ってどうやって計算したらいいのですか?
274デフォルトの名無しさん
垢版 |
2021/10/23(土) 03:20:28.76ID:L2XVMbSO
あー
bgbbox = min(x1s),min(y1s),max(x2s),max(y2s)

ペースト時x系に-abs(min(x1s)), y系に-abs(min(y1s))
※pip 基点0,0なので

2021/10/23(土) 05:04:17.46ID:n7GT2TeK
>>270
超初心者相手にそういう意味の分からん反応止めてくれや

東大が公開してるPythonプログラミング入門の例題に
https://utokyo-ipp.github.io/3/3-1.html

辞書 dic1 と文字列 str1 が引数として与えられたとき、 以下のように dic1 を変更する関数 handle_collision を作成してください。 ただし、dic1 のキーは整数、キーに対応する値は文字列を要素とするリストとします。
dic1 に str1 の長さ n がキーとして登録されていない場合、str1 のみを要素とするリスト ls を作成し、 dic1 にキー n、n に対応する値 ls を登録します。
dic1 に str1 の長さ n がキーとして登録されている場合、そのキーに対応する値(リスト)に str1 を追加します。
以下のセルの ... のところを書き換えて handle_collision(dic1, str1) を作成してください。

def handle_collision(dic1, str1):
...

ってのがあって、その回答が
def handle_collision(dic1, str1):
if dic1.get(len(str1)) is None:
ls = [str1]
else:
ls = dic1[len(str1)]
ls.append(str1)
dic1[len(str1)] = ls
#handle_collision({3: ['ham', 'egg'], 6: ['coffee', 'brandy'], 9: ['port wine'], 15: ['curried chicken']}, 'tea')

だったんだよ
2021/10/23(土) 05:08:31.39ID:n7GT2TeK
で、このコード実行すると

dic1_orig = {3: ['ham', 'egg'], 6: ['coffee', 'brandy'], 9: ['port wine'], 15: ['curried chicken']}
handle_collision(dic1_orig, 'tea')

{3: ['ham', 'egg', 'tea'], 6: ['coffee', 'brandy'], 9: ['port wine'], 15: ['curried chicken']}

これになるんだけど、'tea'以外のやついれたらどうなるのかな、って試してみたら

handle_collision(dic1_orig, 'pp')
{3: ['ham', 'egg'], 6: ['coffee', 'brandy'], 9: ['port wine'], 15: ['curried chicken'], 2: ['pp']}
って 2のキーが最後尾に追加されてなんかモヤったからキーを順序どおりの並びにするにはどうすんのかな、って思ったわけ
2021/10/23(土) 07:39:54.83ID:uHOK1QLC
1. str1 の長さ n がキーとして登録されていない場合は、追加
2. str1 の長さ n がキーとして登録されている場合は、更新

存在しなければ追加・存在すれば更新は、データベースでも、よくある処理

そりゃ、2文字は登録されていないから、追加される。
2: ['pp']
278277
垢版 |
2021/10/23(土) 07:45:14.89ID:uHOK1QLC
一般的には、辞書・集合には順序がない。
まれに、辞書・集合へ追加した順番を、記憶している言語もある

だから、順序よく並べたいなら、ソートする
2021/10/23(土) 11:44:43.09ID:Y/CMfyXG
https://lite.blogos.com/article/565782/
2021/10/23(土) 11:51:35.15ID:qhVW7VS5
>>275
お、おう、すまんかった
表示する時にきれいに並べたいだけならpretty printで

from pprint import pprint
pprint(dic)

3.7以降の辞書は挿入順で並んでることが保証されてるんだけど
表示目的のためだけに新しい辞書を作成して挿入しなおして並び替えることは普通やらない

同じ並び替えを何度も繰り返し実行しないといけない場合なら無駄ではないんだけど
その場合は他のデータ構造を使ったほうがいい可能性が高いので
わざわさ並べ直した辞書が欲しい用途ってなんだろうと思って聞いてみた
281デフォルトの名無しさん
垢版 |
2021/10/23(土) 12:26:09.46ID:VN/PPZMZ
教えてください

「keyerrorがでるけどどこがだめなのかわからない」 https://teratail.com/questions/365802?sip=n0070000_019&;uid=199109 #teratail #python
2021/10/23(土) 12:32:34.22ID:n7GT2TeK
>>280
なるほど

いちいち関数の中で並び替えしてたら時間かかるとか実際に使う場面では必要ないとかそういう事なのかな
pprint()で出力すれば良いってのは参考になった
ありがとう
2021/10/23(土) 12:41:34.85ID:qhVW7VS5
>>281
KeyError: 'びわこ'
2021/10/23(土) 12:51:17.61ID:+0P0mc8U
>>281
dict_stadiumに'琵琶湖'はあっても'びわこ'はない
2021/10/23(土) 13:19:57.09ID:DsNdyrVS
テラタよりこっちのが回答早いのか
2021/10/23(土) 17:01:23.55ID:TEk5cWky
re.complie(パターン)
complie済みのパターンが複数ある場合
パターン同士を結合するのってどうやるのでしょうか?
2021/10/23(土) 18:18:18.96ID:skaucHgA
Djangoを始めました
view.pyの中にある変数の中身を確認したいですが方法が分かりません
デバッグ方法はちゃんと分かってませんが一応環境は作りました
見たいのはDjangoチュートリアルにもあるlatest_question_list = Question.objects.order_by('-pub_date')[:5]
の中身です

エディターはvscodeです
2021/10/23(土) 18:45:21.20ID:skaucHgA
>>287
すみませんこれ出来ました
ブレークポイントを次の行に作って見たい変数にカーソルホバーさせたら見れました
2021/10/23(土) 21:09:29.62ID:qhVW7VS5
>>286
.patternでパターン文字列に一度戻ってから
パターン同士を結合して再度コンパイル
直接結合するAPIは用意されてないと思う
2021/10/23(土) 21:54:12.92ID:uHOK1QLC
Ruby なら、Regexp.union でパターンを、OR で合成できる

p Regexp.union(/a/, "*") # => /(?-mix:a)|\*/

p Regexp.union(/a/, /b/, /c/) # => /(?-mix:a)|(?-mix:b)|(?-mix:c)/

arr = [/a/, /b/, /c/]
p Regexp.union(arr) # => /(?-mix:a)|(?-mix:b)|(?-mix:c)/
291デフォルトの名無しさん
垢版 |
2021/10/23(土) 23:19:51.40ID:oBaQvszz
ルビキチってどこにでも涌くのな
2021/10/24(日) 09:17:16.16ID:ju8sH4Lg
この板の外にも湧いてるんだぞ
2021/10/24(日) 12:57:50.65ID:nICPJrT1
>>289
ありがとうございますパターンが取れました

ptn1 = re.compile("\.gif$").pattern
ptn2 = re.compile("\.jpg$|\.png$",re.IGNORECASE).pattern

ptn2が
"\.jpg$|\.JPG$|\.png$|\.PNG$"
な感じだったらよかったんですけどね
re.compile(ptn1+"|"+ptn2,re.IGNORECASE)
だと
"\.gif$|\.GIF$|\.jpg$|\.JPG$|\.png$|\.PNG$"
と同等?になってしまうので
2021/10/24(日) 13:06:47.73ID:nICPJrT1
改めてぐぐってみると
そもそもフラグの記述はいろいろあるみたいですね >>293
(?フラグ:パターン)
これなら基本は文字列でもcompile済でもどちらでもいい気がしました

ptns = ["\.gif$","(?i:\.jpg$|\.png$)"]
ptn = re.compile("|".join(ptns))
2021/10/24(日) 14:04:30.70ID:9GD27ADQ
>>293
> ptn2が
> "\.jpg$|\.JPG$|\.png$|\.PNG$"
> な感じだったらよかったんですけどね
それだと .Jpg とかがヒットしなくなる
2021/10/24(日) 15:34:01.95ID:dQwbGYLm
Ruby で、漏れは自分で関数を作っている
拡張子を小文字に変換してから、それが配列内にあるかどうか

ただし、jxr はブラウザで表示できない

ary = %w(png jpg jpeg gif webp) # 画像の拡張子

extname = "JPeg"
extname.downcase! # 小文字へ変換する

p ary.include? extname # 含まれている?
#=> true
2021/10/24(日) 16:09:48.63ID:nICPJrT1
>>295
たしかに
>>293は、大文字小文字区別つかないすべてのパターンの意味でした
2021/10/24(日) 18:40:19.51ID:ugUepsfY
vscodeでdjangoやってます
views.pyでrenderの第2引数に指定したhtmlやreverseの第1引数のアプリ名:urlネームに書いてあるその場所にGo toしたいのですが方法ありますか?

djangoに限らずpath書いてないとgo to definitionできない感じですか?
2021/10/25(月) 17:14:48.98ID:MOhV5cOT
class hoge:
_items = []
_def each(self,callback=None):
__res=[]
___argcount=callback.__code__.co_argcount
__if _argcount==1:
___for item in self.items:
____res.append(callback(item))
__elif _argcount==2:
___for i,item in enumerate(self.items):
____res.append(callback(i,item))
__return res

h=hoge()
h.items = ["a","b","c"]
print( h.each(lambda item: "_"+str(item)) )
print( h.each(lambda i,item: str(i)+"_"+str(item)) )
#['_a', '_b', '_c']
#['0_a', '1_b', '2_c']

callbackでindexも取りたいので↑のように書いたのですが
こうするしかないのでしょうか?
今は引数は、(item)と(i,item)しかとりませんが
仮にcallback内でitemやindexとは別の何か引数を引き継ぎたくなったという場合
どう拡張していけばいいのかな、と思いました
2021/10/25(月) 18:13:43.66ID:YeRcjGgP
*argsとか**kwargsで可変長の引数を取るようにすればいい、とかそういう話か?
2021/10/25(月) 19:23:30.01ID:MOhV5cOT
>>300
すこし違います
*指定だとインスタンス側でcallbackを書くときに
常にcallback(*arg)とか、callback(**kwards)とかを書かなければならない気がします
>>299の例の場合
each対象はself.itemsなのでcallbackの中身を書くときの引数は
callback(ここでの引数名はitemsに入る値に関係する名前)
にしたいのです

299の例だと拡張されたのはインデックスのみなので、
インデックスが欲しいかほしくないかに関わらずインデックスを取ることにすると
class hoge:
_items = []
_def each(self,callback=None):
__res=[]
__for i,item in enumerate(self.items):
___res.append(callback(item,i))#itemの方が使用頻度高いので引数を逆に渡す
__return res
h=hoge()
h.items = ["a","b","c"]
print( h.each(lambda item: "_"+str(item)) )#エラー
print( h.each(lambda item,i: str(i)+"_"+str(item)) )
と書けると思いましたが
無い引数を渡すとエラーが出てしまいました

この辺の慣習とかあるのか、そもそもそんなことしなくてもいい(継承できるようなテクニックがある)のか
というのがわからないので
iを使わない場合も、callback(i,item)と書けばいいのでは?とか
index情報を持ったitemオブジェクトを返却して、item.itemでitem取得
みたいな方法は保留してます

今考えているのは
callback.__code__.co_varnames[:callback.__code__.co_argcount]
使ってみたりの条件分岐です
2021/10/25(月) 20:51:56.35ID:LSRIz4jp
リスト内包表記で得られたリスト
[’金額¥150’,’金額¥222’,’’,’’,’金額¥0’,’金額¥465’]のうち、’’を’金額¥0’に置換するにはどのようにしたらいいですか?

[money.replace("","¥0") for money in moneys]ではだめでした。
303デフォルトの名無しさん
垢版 |
2021/10/25(月) 21:10:11.44ID:utaK2F0U
>>302
>>> ['金額¥0' if money == '' else money for money in moneys ]
['金額¥150', '金額¥222', '金額¥0', '金額¥0', '金額\0', '金額\465']


ていうか、動くコード貼れよ
304デフォルトの名無しさん
垢版 |
2021/10/25(月) 21:43:12.61ID:i1JdqDPj
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^

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

クソチョンw

在日朝鮮人は強姦と窃盗してる犯罪者!
在日朝鮮人は皆殺しにすべし!
2021/10/25(月) 22:45:53.76ID:sv7Zp2+/
>>301
コールバック関数のシグニチャが違えば違うAPIを用意するのが普通
Pythonに限らずJS以外の言語ではそれが普通だと思う
Rubyで言うeachとeach_with_index

HogeをIterableにして
print([f”_{item}” for item in hoge]) や
print([f”{i}_{item}” for i, item in enumerate(hoge)]) することのほうがPythonでは多いと思う
2021/10/26(火) 18:26:21.05ID:58PW1UcQ
javascriptに限った話じゃないんだけど、
Max Retry、っていったら純粋に"リトライ"の回数でカウントする?それとも総実行回数を指す?
MaxRetry=5なら
初回の1回含めて最大6回やるのか、5回なのか。
なんか気になって。
2021/10/26(火) 18:34:57.12ID:qzAOjqD0
そんな名前絶対につけないけど、その名前なら6回でしょ
2021/10/26(火) 19:14:57.68ID:BNqSw8pO
最初の試行は"Re"tryじゃないから6回だわな
2021/10/27(水) 13:56:39.52ID:0D9sPP+O
???????????????????
?????????????????????????????
310デフォルトの名無しさん
垢版 |
2021/10/27(水) 16:50:18.70ID:rwCBpLuv
pyodbcの接続時にスキーマまで指定する方法ありませんか
接続文字列に入れてもエラーになってしまいます
2021/10/27(水) 18:14:05.36ID:CtZ0vCqQ
変数の名付けでちょうど良い具合がわからない

たとえば文字列の長さの変数をstr1_wordlengthとしたんだけど
---------------------
str1 = 'apple'
str1_wordlength = len(str1) # 5
#文字列と文字数を格納する辞書dic1をつくる
dic1 = {str1_wordlength: str1} # {5: 'apple'}
---------------------
「str1_wordlength ならたぶん意味が通じると思うけど長過ぎじゃね? 毎回これ書くのか?」とも思うし
この変数「名付けするの面倒だからいっそ a でいいんじゃね?」とも思うし
「そもそも変数作る必要あるか? len(str1)は変数名より短いじゃん?」とも思うし

練習問題やってるうちはぶっちゃけ何でも良いと思うんだが
後々を考えるとどうしたらいいんだろうな、と
312デフォルトの名無しさん
垢版 |
2021/10/27(水) 18:15:13.83ID:sQbCpqyG
>>310
DSN側で設定しておくんじゃない?

https://github.com/mkleehammer/pyodbc/wiki/Connecting-to-databases
ここのDB別の文書読んでみて
2021/10/28(木) 02:31:25.25ID:bnoFQANv
strの特殊メソッドつかったらprintにも反応するんですね・・
class pr:
_value="aa"
_def __str__(self):
__return self.value+"bb"
p=pr()
print(p)

def __str__の中にエラー処理いれてたらprintでエラー引っかかっていて
気づくのに時間かかりました・・
2021/10/28(木) 04:45:57.20ID:Nbft1WLw
PythonやDjangoでオススメの本ありますか?
2021/10/28(木) 06:56:16.71ID:dSweiYMb
特殊メソッドは使わんほうが無難
ていうかPythonはクラス自体使わない方がいい
昔ながらの構造化言語としてシンプルに使うのがベスト
2021/10/28(木) 07:27:59.28ID:p07hGs8T
データを構造化するためにclassを使うだろ
2021/10/28(木) 07:52:44.16ID:xUl7Twuj
今どきクラス使うなとか言うアホは放置で
2021/10/28(木) 08:10:34.09ID:X05RtFia
関数間で状態を保持するときにのみクラスは有効
319デフォルトの名無しさん
垢版 |
2021/10/28(木) 10:18:44.69ID:MKFZM1zj
>>312
結果的にはファイルdnsで出来ますた
2021/10/28(木) 12:42:04.06ID:RV1LSDaq
PythonでマイクロソフトAccessをDBとして使う実例は多いけど、単にAccessをマクロ起動かける例が無いんです
誰か成功した人は居ますか?
321デフォルトの名無しさん
垢版 |
2021/10/28(木) 12:56:15.77ID:XVuwIiyB
Access側のマクロのエントリポイント用の関数を造っておく
pywin32でその関数を呼ぶ
2021/10/28(木) 13:09:38.96ID:XVuwIiyB
https://stackoverflow.com/questions/32653792/python-code-for-running-ms-access-module-subroutine
2021/10/28(木) 13:19:37.36ID:RV1LSDaq
>>321,322
ありがとうございました。
これで実行してみます。
2021/10/28(木) 14:14:58.06
from datetime import datetime
now=str(datetime.now())
#2021-10-28 05:12:03.857881
#この文字列を、datetime型に変換したい
_at=now.split(" ")
_at[0]=_at[0].split("-")
_at[1]=_at[1].split(":")
print( datetime(int(_at[0][0]),int(_at[0][1]),int(_at[0][2]),int(_at[1][0]),int(_at[1][1]),int(float(_at[1][2].split("+")[0])) ) )

としたのですがこれってスマートなやり方ではないですよね・・?
ようはstr(datetime)でフォーマットが決まってるのだから、もっと簡単にその文字列からdatetime型に変換できたらいいのに
と思うのですが・・
2021/10/28(木) 14:17:08.33ID:Fr3tDLQH
>>324
ほれ
https://qiita.com/shibainurou/items/0b0f8b0233c45fc163cd
2021/10/28(木) 14:17:55.41ID:JRDKMzLv
datetime.fromisoformat
2021/10/28(木) 16:09:10.81
>>325
いえ・・そういうことじゃないんです
それだと指定子を選定する作業が出てくるかもしれないので・・

>>326
うおおおおおおあったんですね ありがとうございます!!!
from datetime import datetime
now=datetime.now()
print(str(now))
str2dt=datetime.fromisoformat(str(now))
print(now==str2dt)#True

できました!!!
2021/10/28(木) 17:41:33.23ID:Nbft1WLw
>>314
これなんですけどvenvを推奨していてdjangoのことも書かれているpythonの本です
名前を忘れました
誰か分かりませんか?
2021/10/28(木) 17:46:38.21ID:IFkzxSt8
テキストとかだと
list = [0]*10 は [0,0,0,0,0,0,0,0,0,0] になるから初期値作るのに使えるぞ
とか書いてあるのに

list1 = [[0,0,0]]*3
list2 = [[0,0,0],[0,0,0],[0,0,0]]
list3 = [[0,0,0]] + [[0,0,0]] + [[0,0,0]]

print(list1 == list2)
print(list2 == list3)
--------------------
True
True

この結果は両方Trueなんだけど

list1[0][0] = 1
list2[0][0] = 1
list3[0][0] = 1
print(list1)
print(list2)
print(list3)
--------------------------------
[[1, 0, 0], [1, 0, 0], [1, 0, 0]]
[[1, 0, 0], [0, 0, 0], [0, 0, 0]]
[[1, 0, 0], [0, 0, 0], [0, 0, 0]]

こうなるのって結構罠じゃね?
2021/10/28(木) 17:54:29.27ID:Mv6YjZts
listのコピーはcopyでやれ定期やね
2021/10/28(木) 17:54:51.49ID:Nbft1WLw
>>329
この話題無限に出るな
それだけ分かりにくい所だし何度でもすればいいと思うけど
2021/10/28(木) 20:34:34.97ID:o6HAoERy
https://gist.github.com/srndpty/43c76d74188884f25716f25a44ef0818
だれか、これpythonに翻訳して。
333デフォルトの名無しさん
垢版 |
2021/10/28(木) 21:08:20.17ID:WnlLUDNQ
os.walkで一発だろ。
2021/10/28(木) 21:20:53.36ID:3jEWrZM3
django2.2、vscode、venvでプロジェクト作りました
models.py

from django import models

Import "django.utils" could not be resolved from source Pylance
とエラーになります

解決策ありますか?

因みにdjango3.2で作ったプロジェクトではエラーでませんがpythonインタープリターがPython3.9.7 64-bit ('mysite': venv) ./mysite/bin/pythonとなってます

2.2でのプロジェクトではPython 3.9.7 64-bit /opt/homebrew/bin/python3となってます
2021/10/29(金) 00:14:03.10ID:qT0pkZDa
>>329
Ruby では「たのしいRuby」みたいな入門書に書いてあるけど、

配列を初期化する際に、ブロックを渡さないと、
浅いコピー、つまり参照だけのコピーとなり、
実体が1つしかないので、同じオブジェクトを指してしまう

初期化時にブロックを渡すと、3つの実体が作られる

ary = Array.new( 3, [ 0, 0, 0 ] )
ary[ 0 ][ 1 ] = 1
p ary #=> [ [0, 1, 0], [0, 1, 0], [0, 1, 0] ]

ary2 = Array.new( 3 ) { [ 0, 0, 0 ] }
ary2[ 0 ][ 1 ] = 1
p ary2 #=> [ [0, 1, 0], [0, 0, 0], [0, 0, 0] ]
2021/10/29(金) 00:29:20.81ID:qT0pkZDa
Ruby on Rails では、Node.js も使うから、
日本人が作った、バージョンマネージャーのanyenv で、
19 言語を、統一した使い方で管理している

Renv, crenv, denv, erlenv, exenv
goenv, hsenv, jenv, jlenv, luaenv
nodenv, phpenv, plenv, pyenv, rbenv
sbtenv, scalaenv, swiftenv, tfenv

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

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

venv はPython の標準だけど、多言語を使う際、
各言語のバージョンマネージャーの使い方が異なるから、覚えられない

基本、主要フレームワーク・ゲームエンジンなどは、掌田津耶乃が本を出している。
ただし、猿向きで簡単だけど、知識は少なめだから、1冊目には良い

例えば、Railsでは黒田努の本の方が、本格的
2021/10/29(金) 02:18:31.85ID:FnWw468S
>>334
これプロジェクト作り直したら解決しました
原因不明です
2021/10/29(金) 04:57:41.89ID:oTw6PnKg
vscodeのpylanceのauto importが機能してないんだけど皆は使えてるの?
2021/10/29(金) 10:21:09.67ID:fhDC1KF/
seleniumを起動してchromeドライバから下記を行うとyahooはすぐにページ接続して遷移できるのに楽天はページ接続に時間がかかります。

seleniumではなく、普通にchromeを起動して手動でurlを入力する場合は楽天もすぐにページに接続できます。

原因や対応わかるかた教えてください。

janlist = ["4976365125510","4976365200934","4976365158013"]
for jan in janlist:
url=f"https://search.rakuten.co.jp/search/mall/{jan}/?filter=fs-fsl&s=2"
driver.get(url)
url=f"https://shopping.yahoo.co.jp/search?p={jan}&X=2"
driver.get(url)
2021/10/29(金) 12:21:35.03ID:koELjqeu
Selenium内のコンソールログを確認
2021/10/29(金) 12:24:28.38ID:eVsBtFEb
コンソールログってどうやって確認するの?
2021/10/29(金) 12:32:43.97ID:9CukeuuL
>333
os.walk 勉強中。
すっごい便利機能だけど高機能すぎて、forループでサブフォルダーを回していくつもりだったから困惑。
どうすればいいんだ!
343デフォルトの名無しさん
垢版 |
2021/10/29(金) 17:17:25.29ID:d8BIZQAf
classの__init__()するclassmethodが使いたいんだけどできますか?

c = Class()
c.method()

を一行で書きたいだけです
Class.method()
344デフォルトの名無しさん
垢版 |
2021/10/29(金) 17:24:18.67ID:R4ZBjJpK
普通にやれば?
https://wandbox.org/permlink/Eus88wKZ8uf3Hihn
2021/10/29(金) 18:16:59.51ID:zHkN81gu
pythonの資格って難しいですか?
346デフォルトの名無しさん
垢版 |
2021/10/29(金) 20:26:40.87ID:/8Rm9/az
>>343
method()がselfをreturnすれば
c=Class().method()
とできる
2021/10/29(金) 20:36:40.03ID:1Pi4hxs1
>>343
import this
2021/10/29(金) 21:26:19.76ID:AIexy1X9
このページの404エラーの箇所をベースに学習しています
https://docs.djangoproject.com/ja/3.2/intro/tutorial03/

DjangoにHttp404というクラスがあります
Exceptionクラスを継承しています(これはBaseExceptionを継承しています)

コントローラーにてtry文のexceptの中に
raise Http404("これは404です")
を書くと推移先の画面にはPage Not found(404)と表示されます

しかし自分でExceptionを継承した、passが書かれたクラスAを作って上記と同様にこのクラスをraiseすると画面にはA at /polls/
これは404です
と表示されます(Page Not found(404)とは表示されない)

一体どの段階でHttp404クラスに特別な実装が行われたんですか?
2021/10/29(金) 23:15:06.20ID:krcALBmR
>>348
特別な実装はされてない
django/core/handlers/exception.pyで例外捕まえたときにインスタンス見て処理振り分けてるだけ
2021/10/29(金) 23:43:42.33ID:ZYpuK0cb
>>349
おお!
どうもです
後で見てみます
そのexeption.pyでviewなどでraiseされた例外を捕まえてフロントに適切なHttpResponseオブジェクトを送ってるんですかね?あとでそのモジュール見てみます
351デフォルトの名無しさん
垢版 |
2021/10/30(土) 01:26:36.60ID:fDTZDMBU
>>342
馬鹿には無理
352デフォルトの名無しさん
垢版 |
2021/10/30(土) 10:12:33.06ID:V5MhI+QS
>>343
即席だけど何度も使うつもりなら、シングルトンにしておいた方がいいだろう。
class Hoge:
__instance = None
def __new__(cls):
if cls.__instance is None:
cls.__instance = object.__new__(cls)
return cls.__instance
Hoge().method()
2021/10/30(土) 11:36:54.55ID:a9WSKAoR
class Klass:
@classmethod
def method(c):
return Klass()

これじゃいかんの
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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