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

レス数が950を超えています。1000を超えると書き込みができなくなります。
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/11/27(土) 16:00:53.09ID:Ys/oz9Wu
intもlistもclassだから使わずにPythonプログラム書けるならやってみろ
2021/11/27(土) 23:41:50.77ID:x+qkOb0S
自分でclassを作ると何が嬉しいんですか?
2021/11/28(日) 00:22:44.41ID:UCS6EEgA
プログラムが大きくなったとき
管理しやすくなる
再利用もしやすくなる
ちゃんとclassを設計すればだが
2021/11/28(日) 01:00:32.66ID:5wT8eQUv
>>861
サンクス(´・ω・`)
2021/11/28(日) 01:31:06.42ID:YY1hk1pY
>>862
似たようなメソッドで機能が違うもの作るとき
少し出すだけで作れるとか

敵と自機をキャラというクラスに持たせて
画面表示や移動という共通部分は一度に設定できてそうじゃない部分を
簡単に分けられる
んで全体的少しずつ変えたい時に
一箇所変えれば両方変えられる
みたいな
864デフォルトの名無しさん
垢版 |
2021/11/28(日) 07:21:31.61ID:nfhtQiKt
my_literal_eval(str):
__try
____return ast.literal_eval(str)
__except SyntaxError:
____return str

samples = my_literal_eval(str) #辞書
samples.keys()
としたときに、型チェッカーがkeys()あるかわがんね!!って怒るんですが
どこで辞書型の宣言をしたらいいですか?
2021/11/28(日) 08:44:01.49ID:ieKXg54N
isinstance(dict, samples)でガードすれば通るんでないか
2021/11/28(日) 08:46:26.48ID:TS21VHmH
>>858
極力使うな
クラスは設計した人しか理解できないブラックボックス
いじるのが自分だけならいいけど
他人がメンテする可能性のあるコードにクラスは使うな
2021/11/28(日) 08:51:01.10ID:Ll5PsJvS
関数間で状態を保持したいときだけクラスを使えばいい
868デフォルトの名無しさん
垢版 |
2021/11/28(日) 09:34:35.03ID:/NNHm8tx
令和のstaticおじさん現る
869デフォルトの名無しさん
垢版 |
2021/11/28(日) 12:45:20.85ID:nfhtQiKt
>>865
assert isinstance(samples,dict)
samples.keys()

いけました。多謝
ところで
assert type(samples) == dict
は型チェッカー通らなかったんだけど、なぜですか?継承的な理由?
2021/11/28(日) 14:02:56.10ID:/OsOh/FW
windowsで
python_ide.exe /run sample01.py
ってやるとIDE起動しつついきなり実行して結果を表示して
そのあとから編集なりデバッグなりが出来るIDEかエディタってありますか
いちいちプロジェクト作ってF5押してとかやらずにできるものがいいです
2021/11/28(日) 16:14:11.68ID:UCS6EEgA
>>870
google colaboratory か?
2021/11/28(日) 23:04:03.88ID:SJI7MgMY
漏れは、デスクトップにショートカットを作って、
WSL2, Ubuntu-18.04 を起動して、
VSCode で、その中のproj01 プロジェクトを開く

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

作業フォルダ
\\wsl$\Ubuntu-18.04\home\ユーザー名\proj01

これを応用して、VSCode に「ruby a.rb」とか、
実行したいプログラム・スクリプトファイル名を、引数として渡せるかも知れない

漏れは知らないけど
2021/11/28(日) 23:41:14.23ID:bWBMruPI
getメソッドのformを送信したときに表示されるページをスクレイピングしたい
getメソッドなのでチェックボックスやinputの有無や内容でurlが変わるのでそのurlに直接値を入れてrequests.get()で送ろうと思う
このときどのような設計をすればいい?

formにどのような値を入れるかは状況によって異なるのでその部分をまずどうするか
クラスにして__init__に書くかそれとも他にいい手段があるか
2021/11/28(日) 23:43:03.05ID:bWBMruPI
あと初歩的な質問だけど__init__(self, test):でコンストラクターを定義して例えばself.test = testと書いた
これでそのクラス内でself.testでアクセスできると思ったがselfがないと出る
何故か分かる?
2021/11/29(月) 00:15:55.62ID:wv+/7oZZ
知らんけどそのクラスメソッドの最初の引数にselfって書いてないんじゃねーの(ハナホジ)
2021/11/29(月) 00:52:02.80ID:VzPxzWHt
違う
2021/11/29(月) 01:03:24.85ID:CM7Lq9QL
インスタンスメソッドじゃなくてクラスメソッドならそうやろね
2021/11/29(月) 03:22:32.97ID:rJXFzJiz
二次元配列を三次元配列に変換する方法が分かりません
どうすればできるのでしょう?

これがやりたいこと&できないことです
https://pastebin.com/KCY5WETQ
2021/11/29(月) 03:43:11.26ID:nPCo6JIx
np.stack((array1[:-1], array1[1:]), axis=1)
2021/11/29(月) 04:07:55.72ID:rJXFzJiz
ありがとう!!
まさか一行でできてしまうとは・・・

forで回しての変換もなんとかできました
https://pastebin.com/8K9mJcCn
2021/11/30(火) 09:45:02.69ID:1rSdL9RD
三項演算子を条件式を最初に書く方法はありますか?
2021/11/30(火) 11:38:22.32ID:+4eAilPB
>>874
self って仮の名前に過ぎないから
__init__(slef, test):
とかになってても
slef.test = test
だと通る
もちろん
self.test = test
が通らない
2021/11/30(火) 11:40:43.60ID:+4eAilPB
>>881
少なくともpythonでは
条件式を先に描いた時点で三項演算子ではなくなる
2021/11/30(火) 12:05:19.58ID:1ptP5nW8
>>882
へぇそうなんだ
俺の場合はクラスの中で自身のクラスをインスタンス化してたのが良くなかったっぽい
2021/11/30(火) 12:11:27.12ID:1rSdL9RD
>>883
if elseを一行で書く方法はありますか?
2021/11/30(火) 12:35:00.71ID:PosRcxUn
条件分岐用の関数をテキトーに作ったら?こんな風に使えるように
y = ifelsefunc(x > 0, -1, 1)
2021/11/30(火) 13:18:14.90ID:1rSdL9RD
>>886
ありがとうございます
888デフォルトの名無しさん
垢版 |
2021/11/30(火) 22:01:14.38ID:YBfM7cAP
pandasの列置換について質問です。

import pandas as pd
df = pd.DataFrame({'deli_name': ['自社配送', '自社配送', 'store_A'], 'store_name': ['store_A', 'store_B', 'store_C'], 'price': [890, 833, 7842]}, index=[0, 1, 2])
df.deli_name[df.store_name == 'store_A'] = 'store_A'

上記はstore_nameがstore_Aの時に該当する行のdeli_nameをstore_Aに置換するつもりで書きました。
実行すると置換に成功しているのですが、下記の警告文が出ます。
SettingWithCopyWarning:
A value is trying to be set on a copy of a slice from a DataFrame
警告がでない書き方とか分る方教えてください
2021/11/30(火) 23:30:55.06ID:Z8ik9ZGC
import pandas as pd
pd.options.mode.chained_assignment=None
df = pd.DataFrame({'deli_name': ['自社配送', '自社配送', 'store_A'], 'store_name': ['store_A', 'store_B', 'store_C'], 'price': [890, 833, 7842]}, index=[0, 1, 2])
df.deli_name[df.store_name == 'store_A'] = 'store_A'
2021/11/30(火) 23:36:58.51ID:EeXqZSw1
警告の下にあるリンク先はよんだん?
891デフォルトの名無しさん
垢版 |
2021/12/01(水) 00:11:27.02ID:X46if3HQ
>>888
deli_name_copy = df.deli_name.copy()
deli_name_copy[df.store_name == 'store_A'] = 'store_A'
df.deli_name = deli_name_copy
892デフォルトの名無しさん
垢版 |
2021/12/01(水) 11:49:27.95ID:kM+Jjoc8
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^

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

クソチョンw
クソチョンはウンコを食べる糞食人種w
朝鮮人はゲリ便をじゅるじゅると
うまそうに食うw
2021/12/02(木) 13:28:11.18ID:XKNm0UTJ
beautifulsoupで<div class="box_area">の下にあるpタグの下にある全ての<span class="link_pdf">タグの下にあるaタグを取得するには例えばどう書けばいいですか?
2021/12/02(木) 13:30:55.05ID:YlIFrtYh
順番に絞ってけば取れるだろ?
2021/12/02(木) 13:51:53.14ID:k2JFy+0I
セレクタの勉強をしろ
2021/12/02(木) 14:13:40.25ID:XKNm0UTJ
>>895
これか助かる
https://gammasoft.jp/support/css-selector-for-python-web-scraping/
2021/12/02(木) 22:47:46.92ID:ap4H6lSA
typing.List、Dictって非推奨らしいけど、代わりは一体どうしたら・・
898デフォルトの名無しさん
垢版 |
2021/12/03(金) 00:05:29.70ID:/aixTtEw
ビルトインのlist、dict使えってことなんじゃね?困ることあるん?
2021/12/03(金) 01:06:36.94ID:mlmp5wts
3.9から
list[int]
とか
dict[str, int]
とか書けるようになったから要らんだろってこと
この調子でイテレータもどうにかして欲しい
2021/12/03(金) 02:36:40.94ID:XIVj35HM
>>893
下と言う表現は、あいまい

下と言っても、子・直下のみは、> を使う

例えば、id がabc の直下の、xyz クラス
#abc > .xyz

(再帰的な)子孫なら、半角空白を使う

例えば、div の子孫の、p
div p

詳細は、jQuery などのCSS セレクター一覧表を参照
2021/12/03(金) 06:13:15.75ID:Lgq6hTbY
>>900
助かる
2021/12/03(金) 12:21:12.38
beautifulsoup4でfind_allするとき、table周りはなんか一癖あった記憶がある
2021/12/03(金) 13:26:46.51ID:Lgq6hTbY
selectでいいんだよね?
2021/12/05(日) 21:47:07.14ID:z1lQW/5A
はじめてプロファイラー使ってみたら
Pythonでファイルの存在確認って遅くないか?
じぶんの環境だけなのか?
2021/12/05(日) 21:58:46.62ID:z1lQW/5A
自己解決
ファイルの存在確認が遅いのはHDDのせいみたい
2度目以降は高速になった 
キャッシュが聞いてるからかと
2021/12/06(月) 00:07:26.37ID:Phmk8fSW
HDD関係なく初回のstatが遅いのはWindowsも含めUnix系のファイルシステムだとしょうがない
2021/12/06(月) 07:12:36.68ID:1pNPp5ri
コマンドプロンプトのような見た目のコンソール上で動く、CUIの特殊な計算機があります
C言語で書かれていてコンパイル済みのフリーソフトです
これをpythonで操作して自動化に役立てようと思っています

出力はコンソール上に文字列でなされるのですが、文字列を直接取得する方法はありますか?
2021/12/06(月) 08:19:00.70ID:0fxVnCQi
popen
2021/12/06(月) 08:58:45.68ID:1pNPp5ri
>>908
ありがとうございます
VSCODEで試してみてるんですが
引数にそのexeファイルだけ取って、runかpopenを使うと、どちらでもコンソールにCUIが直接表示されます
(そのままキー入力すると普通に動作します)

しかし引数にstdin=PIPE,stdout=PIPE,などを入れるとピクリとも動かなくなります(CUIが出ない、communicationやinputなどで入力を試みても出力がなく先に進まない、エラーも吐かない)

何か間違えたのだと思うのですが、
解説ブログやドキュメントを読んでも全く解決策がわからず困り果てています
何かご存知の方がいらしたらお願いします
2021/12/06(月) 09:06:19.91ID:1pNPp5ri
すみません、書き間違えました
runまたはpopenでexeファイルを開くと、
VScodeの画面上で、「ターミナル」にCUIが表示されます
そこにキー入力するとそのまま動作します。
2021/12/06(月) 10:11:30.79ID:+xtv5Wsa
expect相当がほしいならpexpectとか
標準モジュールだけで解決するのは面倒なのでPyPIで探すのが吉
2021/12/06(月) 12:38:40.47ID:+ZC47hZJ
>>909
問題を再現できるコードを提示するか切り分けするかしてもらわないと
Pythonのコードの書き方が悪いのかその計算機の呼び出し方が間違ってるのかわからない

1. 単純なpipeを使ったコマンドをpopenで動かしてstdout, stderrを取れてるかどうか?
$ echo "foo.txt" | grep -o ".t"
(echoやgrepはwindowsのコマンドで代用して)

2. 取れてるなら特殊な計算機はpipeを使ったコマンドで動くのか?
$ echo “1 + 2” | foo.exe

CUIと言ってるのがncursesのようなTUIだとSendKeysが必要かも
2021/12/06(月) 17:45:57.66ID:eUQmGuZl
visual studioでkeras/tensorflowのデバッグ方法でつまっています
K.sigmoid()やtf.boolean_mask()のようなバックエンド処理ばかりなのでデバッグ中に変数の中身が分かりません
今はとりあえずnumpyや独自実装で移植しながら中を見てデバッグしています
しかし問題にぶつかったとき原因が移植作業なのか元々のソースなのか切り分けができず困っています

keras.backendなどを使いながらも変数の中を見れるようにする方法ないでしょうか?
2021/12/06(月) 18:44:05.67ID:5Z6rXs0A
>>911
ありがとうございます。試してみます。

>>912
ありがとうございます。
1.は難しくて実行できませんでした。
2.について、送りたい入力を付けて実行してみたところ、cmdのコンソール上に求めるexeファイルの起動時初期状態の画面が現れて入力待ちになり(入力すると正常に動作する)、求める結果は得られませんでした。

TUI、対話型という言葉を知らなかったのですが、検索したところどうもそれらに該当するように思えます。
pexceptを使ってみようと思います。
2021/12/06(月) 20:25:32.94ID:ZoRh0Nkj
ターミナルでfor命令を1行で実行する場合、両サイドを[]で囲むじゃないですか
>>> [i for i in range(10)]
のように。この[]は、一般的になんて呼ばれていますか?
2021/12/06(月) 20:28:37.11ID:q0abD6Vl
内包表記 >>915
2021/12/06(月) 20:42:34.30ID:1jgDkimx
List comprehensions
918デフォルトの名無しさん
垢版 |
2021/12/06(月) 23:38:34.79ID:fS/Lj56T
すいませんmaxについて教えて下さい。
ordered_list_xrp = [menber.get('price') for menber in open_orders_xrp]

このコードでリストを取得してこのようなリストがとれました、
['99.460', '104.150', '118.290', '123.800', '127.440', '130.990']

次にこのリストの中から最大値を取得しようとして、
このようなコードを実行したのですが、
max_price_list_xrp = float(max(ordered_list_xrp))

結果が、99.46になってしまいました、
最大値はリスト最後の、130.99のはずなのに、
どうしてうまく取れなかったのでしょうか?
2021/12/06(月) 23:42:47.24ID:1jgDkimx
>>> '99.460' < '130.990'
False
>>> 99.460 < 130.990
True
920デフォルトの名無しさん
垢版 |
2021/12/06(月) 23:50:20.47ID:UpeudXBw
>>918
文字列だからだよ。
921デフォルトの名無しさん
垢版 |
2021/12/06(月) 23:51:25.10ID:fS/Lj56T
>>919
>>920
ありがとうございます、
floatで数字にしたつもりだったのですが、
何か間違えてますか?
2021/12/06(月) 23:53:49.67ID:1jgDkimx
max(float(x) for x in ordered_list_xrp)
2021/12/06(月) 23:56:05.27ID:1jgDkimx
max(ordered_list_xrp, key=float)
924デフォルトの名無しさん
垢版 |
2021/12/06(月) 23:58:55.21ID:fS/Lj56T
>>922
うぉありがとうございます!
これでやってみたらちゃんと正しい最大値とれました、
文字列のリストにこんな罠あるの知りませんでした、
数字に変換するのすごい、感動しました!
2021/12/07(火) 01:52:20.23ID:904hja4x
pythonのselfについて教えてくだしあ
selfはインスタンス自身を表すってのはわかったんですが、
自分のクラスのメソッドの中でselfを関数として呼ぶと何が起こるんですか?
つまりこんな感じです

class Testclass:
 def __init__(self):
  pass

 def kansuu(self):
  self("hikisu") #←これ何してるんですか?
2021/12/07(火) 07:54:32.43ID:G7aiaFNj
dict((str(i),i) if i%2==0 else (i,str(i)) for i in range(10))

max(float(x) for x in ordered_list_xrp)

この2つってどういう順番で何が起きてんの?
927デフォルトの名無しさん
垢版 |
2021/12/07(火) 08:26:52.55ID:KRSgdo5l
>>925
self.__call__が実行される
2021/12/07(火) 13:28:56.27ID:mOcbYYmI
>>926
内包表記のとき、表記が感覚的に逆(慣れればそうでもないけど)に感じるが
一度理解すると簡単
https://colab.research.google.com/drive/199DCLDxHgvBc752ulWDueqC7cmt2iGbd
2021/12/07(火) 15:22:45.64ID:g74FV+wu
pythonは後出しだから慣れないな
python「ここにこれを代入して。ああ、もしもこの条件だったら代入するのはやっぱりこっちね。ああ、その代入はループでしてね」
ほかの言語「次の処理をループして。もしもこの条件だったら、ここにこれを代入、条件違ったらこっちを代入」
2021/12/07(火) 15:32:47.34ID:904hja4x
>>927
ありがとうございました!
931デフォルトの名無しさん
垢版 |
2021/12/07(火) 18:04:11.03ID:cqBSzh42
EmpathというA PIを用いてその結果の数値をリストにまとめシリアル通信でarduinoに送りたいです。
↓リストにまとめた以降
RGB = [round(red) , round(green) , round(blue) , energy , calm] 
print (RGB)

send_RGB = bytes(RGB)
print(send_RGB)

with serial.Serial('COM15' , 9600) as ser:
print('----')
ser.write(send_RGB)
print('----')
こんな感じでbyte型にできているのか(そもそもbyteにするか)わからないのですが
この数値をarduinoに取り込みたいので何か参考にさせてください。
受け取るarduino側が悪いのかもしれませんが。。
2021/12/07(火) 18:47:54.90ID:g74FV+wu
csvの文字列にした方がいいよ。簡単にやるならこんな感じ
送信側はcsv文字列で送信
受信側は1文字ずつメモリに貯め込んで改行コード検出で、そこまで貯まった文字列が数値と区切り文字だけで構成されてて区切り数が正しかったら正規なデータとして処理
受信側テストはターミナルソフトで手入力したcsv送って処理できたらおk
933デフォルトの名無しさん
垢版 |
2021/12/07(火) 19:57:20.96ID:1b+mdTOc
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^

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

クソチョンw
クソチョンはウンコを食べる糞食人種w
朝鮮人はゲリ便をじゅるじゅると
うまそうに食うw
2021/12/12(日) 02:21:30.33ID:neH/oCpw
Pythonで「オブジェクトが存在しなかったら作る」という処理を書きたいと思ってます
Pythonは3.6.9、OSはAlmaLinux8.5、IDEはVS.codeです

import class
if (objA is None):
  objA = class.classA('nameclassA')

とやってみたのですが、if文のところで name 'objA' is not defines となってしまいます

何かよい方法はありますか
2021/12/12(日) 02:28:54.11ID:LDYHaH+j
objA = None
と上のほうに書いておけ
2021/12/12(日) 02:58:35.01ID:neH/oCpw
>>935
回答どうもです

いただいた回答にて対応してみました
うまく動作しているようです

ありがとうございました
937デフォルトの名無しさん
垢版 |
2021/12/12(日) 03:00:27.68ID:lyarTocF
>>934
try: objA
except NameError:
objA = class.classA('nameclassA')
2021/12/12(日) 03:42:09.06ID:neH/oCpw
>>937
なるほど例外で対処する方法ですね
ありがとうございます
こちらでの対処も考えてみます
2021/12/12(日) 12:38:50.06ID:0NBntfzw
メタプログラミングするレベルでこんなのわからんのも変
十中八九設計がおかしい
2021/12/12(日) 14:44:59.69ID:qWcO2iK8
>>934
まあ正解は>>935だと思うが文字通り
> Pythonで「オブジェクトが存在しなかったら
と言うなら
if('objA' not in globals() and 'objA' not in locals()):
かな
2021/12/12(日) 16:17:39.25ID:GOu/cbbC
サーバー側のタイムゾーンはUTCという前提で、
それをフロントエンドで日本時間表示することになりました
しかしその表示に使うライブラリがawareを受け付けなくて
nativeでないといけないのです つまり
awareなUTC時間のdatetime型 → nativeなJST(Asian/Tokyo)時間のdatetime型
への変換をすることになったのですが
これを一発で変換するようなメソッドって
標準はもちろんpytzとかにも用意されてませんよね?
一度timestampに変換してtimedeltaにして演算
という認識で良いのでしょうか?
2021/12/12(日) 17:28:22.24ID:9VS1oyXL
失礼します
BeautifulSoupというライブラリを使って"任意のサイトのhtmlソースから特定の部分だけを抜き出して表示する"というプログラムを作りたいのですが、ググっても"URLの中の一部の文字列"のみを抽出する方法が分からないので教えて頂きたいです

具体的には、htmlソースからUA-XXXXXXX-Xという文字列を抜き出したい場合、
<p>UA-XXXXXXX-X</p> ←これならできるのですが

<script async src="https://www.googletagmanager.com/gtag/js?id=UA-XXXXXXX-X";></script> ←この場合にUA-XXXXXXX-Xだけを抜き出す方法が分かりません
2021/12/12(日) 17:34:26.79ID:0NBntfzw
>>941
dt.replace(tzinfo=None) + dt.utcoffset()
力技なのはかわらず
2021/12/12(日) 17:35:49.84ID:a4cuZ/Mw
1. scriptエレメントを全部取得する
2. ↑で取得したscriptエレメントのsrcを読み取る
3. ↑で読み取ったsrcにua〜が含まれてるかチェックする
って流れで考えれば分かりやすいんじゃない?
2021/12/12(日) 17:42:52.14ID:I5fuTkfi
>>942
1:BeautifulSoupを使ってURL全体を取得する
2:urllib.parseを使って解析
3:今回の場合はquery部分で入ってくるので、それを取得する
https://docs.python.org/ja/3/library/urllib.parse.html

そのURLの形式で固定ならこれで行けるんじゃない?
https://ideone.com/yoHzOG
2021/12/12(日) 17:43:33.09ID:Hsntocf/
URLのクエリ文字列(クエリパラメータ)を取得。
2021/12/12(日) 20:30:44.55ID:9VS1oyXL
>>944,945,946
ご丁寧にありがとうございます。特に945さんに貼って頂いたコードは大変参考になりました。
お陰様で目的は達成できたのですが、他の余計な行も大量に表示されてしまいます。
邪魔な行を取り除くには下のコードに何を追加すればよいでしょうか?

b''
b''
b''
↑こんな感じで不要な行が残っています

・ソースコード
from bs4 import BeautifulSoup
from urllib.parse import urlparse
import requests

url = input("Enter a domain: ")
r = requests.get("http://"; +url)
data = r.text
soup = BeautifulSoup(data)
for link in soup.find_all('script'):
urls = link.get('src')
res = urlparse(urls)
print(res.query)
2021/12/12(日) 22:55:58.59ID:+1Oq/K+R
res.queryが存在するならprintするっていう風にすればいいんじゃね
2021/12/14(火) 11:59:17.10ID:s9Ba9CTM
PysimpleGUIについてちょっと聞きたいんですが、
sg.popup_get_fileを使いたいんですが、ファイルを選択せずキャンセルを行うと
『TclError: can't set "::tk::dialog::file::showHiddenBtn": parent namespace doesn't exist』
といったエラー文が出てしまうんですが、何が問題なのでしょうか

公式に載ってる↓のコードでもエラーが出るのでとっかかりすら掴めません・・・
import PySimpleGUI as sg
filename = sg.popup_get_file('処理したいファイルを入力してください')
sg.popup('入力した', filename)
2021/12/14(火) 20:49:18.01
import numpy as np
a1=np.array([1])
a2=[1]
print(type(a1[0]),type(a2[0]))
print(a1[0]==a2[0]) #@
d1={"n":a1[0]}
d2={"n":a2[0]}
print( json.dumps(d2) )
print( json.dumps(d1) ) #TypeError: Object of type int64 is not JSON serializable

#@がTrueになるのってpythonのバグではありませんか・・?
仕様であれば何かメリットとかあるのでしょうか?
2021/12/14(火) 21:04:19.38ID:70QYvgE2
a1[0]は(int32の)1でしょ?そしてa2[0]も(intの)1
int32とintぐらいの差でfalseになると色々困る
2021/12/14(火) 21:30:31.61ID:lu87KQQd
コード追ってはないけどnumpy側でそういう風に__eq__実装してるだけ
なんなら
>>> a1 == a2
array([ True])
になるしうれしいけど変だわな
2021/12/15(水) 11:10:32.17
>>951-952
なるほど
pandasもnumpy int64なので
dataframeを何かしらのAPIに投げるときに
そのままjson.dumps使えたらなぁと思いましたが
とりあえずはint32変換して成型した方がよさそうですねありやした
2021/12/17(金) 08:55:01.03ID:s+y1HFod
Windows、Linuxの両方で動作するスクリプトを作ろうと思っているのですが
スクリプトのファイルの改行コードについて、CR+LFがよいのかLFがよいのか
教えて下さい

#!/usr/bin/env python3
print("aaa")

こういうshebangが使われたスクリプトの場合なのですが、関連付けやbashのshellext等の
設定が無い環境では
・改行コードがLF
 →Windowsだと「python3 〇〇.py」で実行OK。ただし編集はエディタを選ぶ
 →Linuxだと「./〇〇.py」でも「python3 〇〇.py」でも実行OK
・改行コードがCR+LF
 →Windowsだと「python3 〇〇.py」で実行OK
 →Linuxだと「./〇〇.py」は「bad interpreter」となる。「python3 〇〇.py」では実行OK
…となりますよね

いずれのOSでも必ず「python3 〇〇.py」として実行できますし、
改行コードの問題はshebangの問題なので
・ファイルの改行コードはCR+LF
・Linuxでの実行は「python3 〇〇.py」で行う。shebangは書かない、使わない
こうするのが最も無難な方針に思えますが、いかがでしょうか
それともshebangも活用すべき、文字コードはLFとすべき、なのでしょうか
2021/12/17(金) 10:09:24.99ID:Ufm8xgDf
世の中のWinアプリ以外のソースはほぼLFだし
コーディング用途にLF扱えないエディタの出番はなくない?
それかハマりどころあるけどGit管理でautocrlf活用するか
2021/12/17(金) 11:03:16.89ID:AcAuqy7R
基本的はLFで揃えとくべき
それで困る状況がある場合だけautocrlfで対処
2021/12/17(金) 13:32:20.53ID:fkpshCq+
Windowsがメインだけど、シバンは使う、改行はLF
エディタ(NPP)でもアドオンつかって、保存時にLFで自動で保存(問い合わせ)できるようにしている
958デフォルトの名無しさん
垢版 |
2021/12/17(金) 16:27:15.20ID:6e8bb+xR
LF以外の選択肢考えたことなかったわ
レス数が950を超えています。1000を超えると書き込みができなくなります。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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