Pythonのお勉強 Part68

レス数が1000を超えています。これ以上書き込みはできません。
2022/09/15(木) 18:52:26.67ID:VqLViKoX0
!extend:default:vvvvv:1000:1024
!extend:default:vvvvv:1000:1024
↑スレ立てる毎に減るので、減ってたら3つに補充すること。

・当スレにRubyのソースコード類を書くことを禁ず
・Ruby等、Pythonではないプログラミング言語での回答類・質問を書くのも禁止
・「Ruby では」「Rubyでは」「Rails」正規表現→「^クソチョンw$」をNGワード登録推奨
・エラーを解決したいときは、かならず
 エラー文(勝手に省略orスクショうp等の横着禁止)と
 おま環(Pythonのバージョン番号+OS名とバージョン+IDE名)を書け。

★Pythonのソースコードを5ちゃんに直貼はインデントが崩壊するので、
  ↓等のコードうp用サイトに貼ってきてくだしあ。(スクリーンショットをうpる「横着」禁止)
ttps://techiedelight.com/compiler/  Run Code機能あり。
ttp://ideone.com/      デフォ設定がCなので、Pythonするには言語種選択ボタン押下がピコ手間かも。
ttp://pastebin.com/     まずまずシンプル。
ttp://dpaste.com/      とてもシンプル。消えるまでの日数は十分長ーく指定のこと。

◇Pythonオフィシャルサイト http://www.python.org/
◇Pythonドキュメント https://docs.python.org/ja/3/
◇まとめwiki ttp://python.rdy.jp/

●関連スレ● 自称初心者は↓へ
【まず1嫁】くだすれPython(超初心者用) その57
http://mevius.5ch.net/test/read.cgi/tech/1653225908/

〇前スレ〇
Pythonのお勉強 Part67
https://mevius.5ch.net/test/read.cgi/tech/1653540315/

次スレの建立は>>985が挑戦する。(980通過して24h後も落ちなくなった)
### END of TEMPLATE ### ​
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
2022/09/15(木) 18:56:18.62ID:VqLViKoX0
print()
2022/09/15(木) 20:24:28.18ID:VqLViKoX0
保守します
4デフォルトの名無しさん (ワッチョイ 4a0c-To/p)
垢版 |
2022/09/15(木) 21:36:55.07ID:v5ZFVedh0
input()
2022/09/15(木) 22:29:59.15ID:u8cmgYgo0
raise Exception
2022/09/16(金) 03:01:25.86ID:mHJ2EhzM0
Hello World
2022/09/16(金) 03:26:22.69ID:CP0EuvL40
import this
2022/09/16(金) 04:02:44.42ID:A450q/gvd
oppai = 2 * math.pi
2022/09/16(金) 08:12:32.25ID:BdFdhtkEr
str(math.pi) * 2
2022/09/16(金) 11:29:06.80ID:IG7NLL2G0
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]>
2022/09/16(金) 11:30:32.88ID:Mhf3UwY50
挫折ですか
残念でしたね
2022/09/16(金) 11:45:52.27ID:fe3TsGSyx
勉強してて、5ちゃんの名前欄に!omikujiって入れたら結果が出てくるけどPython使ってるのかーってすげー関心したよ
2022/09/16(金) 12:19:10.92ID:XGOelKRjd
5chってperlかphpじゃなかったっけ?
2022/09/16(金) 12:24:02.04ID:STPMjQbh0
perl
2022/09/16(金) 13:52:31.50ID:fe3TsGSyx
お恥ずかしい
あれPythonじゃないのね
16デフォルトの名無しさん (ワッチョイ a52c-qXZl)
垢版 |
2022/09/16(金) 15:13:38.95ID:s0L9ffNv0
vscodeとtkinterのナヤミデス

class myLabel(tk.Label):
__def __init__(self, parent, *agrs, **kwargs):
____super().__init__(parent, *a, **kw)

tkinterでカスタムウィジェット作るときこうすると思うんですが
これだとmyLabel呼び出し時に親のパラメータの一覧が表示されません
l = tk.Label() だと引数ズラズラーと確認できるのに
myl = myLabel() だとスン…というかんじ


myl = myLabel(
と書いたところで、master, cnf, bg...
が表示されるよう書く方法はないですか?
17デフォルトの名無しさん (アウアウウー Sa21-1xMQ)
垢版 |
2022/09/16(金) 18:07:30.98ID:xVhXxd2Ka
class myLabel(tk.Label):
__def __init__(self, parent, *agrs, **kwargs):
____super().__init__(parent, *args, **kwargs)
18デフォルトの名無しさん (アウアウウー Sa21-1xMQ)
垢版 |
2022/09/16(金) 18:08:30.05ID:xVhXxd2Ka
武漢コロナ ω株 PI.3.14型
2022/09/16(金) 20:01:18.48ID:hwvpyfny0
>>16
手元だとmyLabelでもスラズラでるから言語サーバかな
Pylanceになってるか確認してみて
2022/09/16(金) 21:51:17.25ID:lcGJOFxSM
んちんちんちんちん
2022/09/16(金) 21:51:25.91ID:lcGJOFxSM
以下んちんちんちんちん禁止
22デフォルトの名無しさん (ワッチョイ d72c-W3aP)
垢版 |
2022/09/17(土) 11:16:05.47ID:mOZyl/wc0
https://imgur.com/GZujQcs.jpg
下でも上の表示がいいんす
2022/09/17(土) 12:19:11.97ID:kn9qAbXr0
>>10
解決しました。>>10のレスは無視してください。
2022/09/17(土) 16:45:25.92ID:T/Ka29IB0
>>17
この関数の引数、
可変長引数のあとに連想配列では値がわたらないだろう
25デフォルトの名無しさん (ワッチョイ bf5f-W3aP)
垢版 |
2022/09/17(土) 17:15:48.49ID:t52rQtHi0
初心者です。
seleniumでGoogleChromeを起動させたいのですが、
コードを実行しても一瞬起動するだけですぐに落ちてしまいます。
chrome,chromedriverともに105.0.5195.127です。
time.sleep()を使えば一応閉じることはありません。
ネットで調べたのですがchromeとchromedriverのバージョンを一致させれば解決できるらしいのですができなかったのでわかる人いたら教えてください。

from selenium import webdriver
import chromedriver_binary
driver = webdriver.Chrome()
import time
driver.get('https://www.google.com/')
2022/09/17(土) 19:09:57.35ID:6XxZTqFF0
chrome,chromedriverともに105.0.5195.127と書いてるのにバージョンがあってないとはいかに
2022/09/17(土) 19:25:38.45ID:0jjtsTOp0
繰り返し使うプログラムならドライバー自動で取ってきてくれる
webdriver-manager使った方がいいよ
28デフォルトの名無しさん (ワッチョイ bf5f-W3aP)
垢版 |
2022/09/17(土) 20:15:49.18ID:t52rQtHi0
webdriver-managerで上手くいきました。
ありがとうございます。
2022/09/17(土) 23:33:23.67ID:eA0eWCp60
漏れは、Ruby でSelenium Webdriver を使っているけど、
Chrome の自動更新で、105.0.5195.127 になって、急に動かなくなった

ChromeDriver 105.0.5195.52 をダウンロードしたら、正常に動いた
2022/09/20(火) 10:16:04.22ID:0+YIm89I0
abspath → absolute path
__init__ → initialization
pardir → parent directory
curdir → current directory
getcwd → get current directory
chdir → change directory

こういうの、英語を略してるのだけど思うけど、元の略されてない英語のスペルを調べられるサイトとかありませんか?
毎回ググって出てきた検索結果ページで「abspath (absolute path)」みたいになってるのを探してるのですが、時間が掛かってしまいます
2022/09/20(火) 10:29:13.62ID:pd2Ujokt0
>>30
>>30
2022/09/20(火) 10:42:03.05ID:7MkL1qhTa
cwd は current working directory
2022/09/20(火) 10:54:15.10ID:HlTpV5j10
>>30
まずは公式を見れば?
2022/09/20(火) 10:57:11.96ID:0+YIm89I0
>>32
抜けてました訂正助かります
略称の元を調べる方法で、地道にググる以外の方法とかも分かりませんか?
2022/09/20(火) 11:02:55.38ID:0+YIm89I0
>>33
python.org/ の検索窓にgetcwd, chdir, cwd, ch 色々入れてみても、ググった時と一緒で地道に複数タブでページ開いて探すのと同じでした
2022/09/20(火) 11:06:51.68ID:7MkL1qhTa
>>34
辞書を引くとか
2022/09/20(火) 11:09:36.67ID:HlTpV5j10
>>35
わからないときに調べるのではなくて、一括でリストみたいに知りたいということですか?そういうサイトは知らないです
2022/09/20(火) 11:16:09.11ID:7MkL1qhTa
知識がないのが問題だったら知識を得るか補助ツール使うしか無いんだよなあ
google翻訳みたいにリアルタイムでオーバーレイで適当な情報出してくれるやつがあればいいんだけども
2022/09/20(火) 11:19:05.42ID:EhDO16lPa
>>30
そういうサイトがあると便利だよな
是非作ってくれ
40デフォルトの名無しさん (ワッチョイ d72c-3X0R)
垢版 |
2022/09/20(火) 11:20:47.83ID:DMd4PKyr0
sizes = list[(int, int),,,]
からmax_widthとmax_heightを取りたいんだけど

numpyなどの外部ライブラリなしだったら
max_width = [i[0] for i in sizes]
max_height = [i[1] for i in sizes]
が速くて見やすいですか?
もったいないからループ一回で両方ゲットできたらいいんだけど、天の声がそれは遅いというんです
2022/09/20(火) 11:27:35.23ID:0+YIm89I0
>>36
pythonの広辞苑みたいなのあるなら知りたいです

>>37
そんな感じです。イメージとしてはこんな感じ
https://i.imgur.com/okACaxU.mp4

>>39
もうすでに誰かしら作ってそうな気がしたのですけど意外にないんですね
2022/09/20(火) 11:30:55.43ID:0+YIm89I0
なぐり書きしたので案の定スペルミスしてる
IME辞書みたいに誰かしら作って配布してたりしないのかな
あったら本当に便利だと思う
2022/09/20(火) 11:35:44.18ID:7MkL1qhTa
>>40
求めてるのはzipとちがうの?
2022/09/20(火) 11:35:51.10ID:pd2Ujokt0
>>40
max_width = max(sizes)
max_height = max(sizes, key =lambda x:x[1])[1]
45デフォルトの名無しさん (ワッチョイ f733-E+l9)
垢版 |
2022/09/20(火) 12:11:40.27ID:i/aW+9oN0
いまいちどういうものを欲してるのピンと着てないけど、存在しないという事はそういうことだろ
もしくは、誰もが思いつかなかった画期的なものの可能性はあるので、作れば人気でるかもしれないよ
46デフォルトの名無しさん (ワッチョイ f733-E+l9)
垢版 |
2022/09/20(火) 12:20:23.86ID:i/aW+9oN0
エディタの補完機能とか知らないわけじゃないですよね
2022/09/20(火) 13:03:31.73ID:dpaaQYZ2M
>>30
python が発展してきた歴史を知るといい
2022/09/20(火) 13:32:48.86ID:+UHOIJTp0
>>30
英語の略語を集めたサイトはあるけど一般的な略語はともかくabspathみたいな奴はヒットしないし逆にcwdみたいに短い略語はヒットしまくるから使いづらいよ
https://www.abbreviations.com/category/COMPUTING
2022/09/20(火) 14:47:32.20ID:yGE7fJx20
>>30
osモジュールの該当メソッドの説明を読むのがいいと思う
https://docs.python.org/3/library/os.html

一般的なunixコマンドから拝借してるものが多いから
pythonでの一覧がないならそっちを調べるといいかもしれない
50デフォルトの名無しさん (ワッチョイ 9714-xcNX)
垢版 |
2022/09/20(火) 14:59:07.65ID:HlTpV5j10
>>49
>>35
2022/09/20(火) 15:12:53.61ID:0+YIm89I0
30について回答くれた方々ありがとうございます。コメントで教えてもらったサイト見てみます
ググって意味を調べる時間の短縮目的は、そもそも我儘な要望だったかもしれません
2022/09/20(火) 15:33:22.20ID:0+YIm89I0
https://i.ibb.co/QnYv5Sz/CB-0001.jpg

望みの実行結果にはなるのですが、パスがないエラーを吐いてしまいます
本来は、os.mkdir(“パス名”)、os.makedirs(“パス名”)、のようにパス名を挿れるとのことですが
for文の変数を引数に渡したい場合はどう記述すればエラーを吐かないのでしょうか?

今朝始めたばっかなので用語の使い方間違ってるかもしれません
2022/09/20(火) 15:54:52.63ID:yGE7fJx20
>>52
エラーメッセージにあるように空文字が渡されてるのがエラーの原因
split(‘\n’)した結果のfolder_listの中身を確認すると分かると思う
でもってsplit()じゃなくsplitlines()を使うといい
2022/09/20(火) 16:08:35.44ID:0+YIm89I0
>>53
おかげで解決しましたありがとうございます
テキストファイルに何もない改行がありました
55デフォルトの名無しさん (ワッチョイ bf2d-RYbe)
垢版 |
2022/09/20(火) 17:56:48.55ID:xv+EClXQ0
問題とは関係ないけれど
パスを操作する時はpathlibのほうがいいよ
2022/09/20(火) 18:02:43.94ID:GUzHgw240
正規表現で16進数を表すのに、いちいち[0-9a-fA-F]と書くのが面倒
もっとスマートに書けないものか
2022/09/20(火) 18:12:50.27ID:0B59Bo4G0
>>56
https://www.google.com/search?q=posix+character+classes
2022/09/20(火) 20:23:11.29ID:zGhXnhGV0
case-insensitiveで [\da-f]
2022/09/21(水) 19:43:53.71ID:b5Bal3Dn0
https://i.ibb.co/LkLcvky/CB-0001.jpg

pathlibというのを使って>>52と同じことをやってみたのですが、書き方が間違ってる気がしてならないので指摘して欲しいです
line14-15は何で上手くいかないのかも教えてほしいです
2022/09/21(水) 20:06:17.61ID:Qxk2XzJU0
まず、12行目のmkdirで例外発生してない?
temporaryなんてらフォルダはchdirしてるからすでに存在してるんでしょう?
2022/09/21(水) 20:13:22.49ID:VhW4jWqJ0
os関連の処理は互換性とか捨てて、subprocessでやるのが楽でしかも安定してる
2022/09/21(水) 20:30:50.72ID:2GcRUbUk0
繰り返される任意の文字列を1回の繰り返しに直す方法ありませんか?

"abcdabcdabcdefg"→"abcdefg"(abcdの繰り返し)
"abababc"→"abc"(abの繰り返し)
"aabbaabbc"→"aabbc"(aabbの繰り返し)

パターンの長さはとりあえず固定でいいので(例えば4でabcdとaabbはマッチできる)一気に置換する方法ないでしょうか
2022/09/21(水) 20:30:55.54ID:b5Bal3Dn0
>>60
存在してます。path.rename()書いてない時は、同名のフォルダが作られて「すでに存在してる〜」みたいなエラーを吐いてました

そもそもpathlib使って>>52をやりたい場合は、osを使う必要がなかったりもするのでしょうか?
64デフォルトの名無しさん (ワッチョイ d733-E+l9)
垢版 |
2022/09/21(水) 20:31:19.96ID:yjl6UhSi0
>>59
https://ideone.com/E4lQt0
2022/09/21(水) 20:52:17.39ID:b5Bal3Dn0
>>64
参考に直して見たら無事にできました。ありがとうございます。
https://i.ibb.co/XSzr82B/CB-0002.jpg
2022/09/21(水) 20:58:11.32ID:b5Bal3Dn0
変数名とか色々、短く略して書いた方が良いのでしょうか?
入力時間的には大差ないので、見返した時に分かりやすいようにしてるのですが
これは初心者だからで、経験者から見ると見苦しいとか、むしろ略されてた方が見やすいとかありますか?
67デフォルトの名無しさん (ワッチョイ d733-E+l9)
垢版 |
2022/09/21(水) 22:11:39.31ID:yjl6UhSi0
>>62
競プロの問題?
2022/09/21(水) 22:25:22.90ID:sVtx8qcf0
>>62
質問の意味がよくわからん
"abcdabcdefcdefg"の場合どうしたいの
2022/09/21(水) 22:30:53.91ID:4122FyYT0
LZ78の考え方の応用で行け
2022/09/21(水) 22:52:22.34ID:2GcRUbUk0
>>67
普通に処理したいだけです

>>68
"abcdabcdefcdefg"なら"(abcdabcd)efcdefg"→"abcdefcdefg"だと思います
2022/09/21(水) 22:55:15.34ID:2GcRUbUk0
あ、cdefcdefが繰り返されていたんですね…
最終的に人がチェックする工程があるので、先にマッチした方優先とかで大丈夫です
72デフォルトの名無しさん (ワッチョイ d733-E+l9)
垢版 |
2022/09/21(水) 23:11:15.16ID:yjl6UhSi0
'abcabcdabcabcdefg'
だったら?
2022/09/21(水) 23:16:47.91ID:VS1qJent0
長さ4固定でいいなら、正規表現あたりで

>>> import re
>>> re.sub(r'(....)\1+', r'\1', "abcdabcdabcdefg")
'abcdefg'
>>> re.sub(r'(....)\1+', r'\1', "aabbaabbc")
'aabbc'
2022/09/21(水) 23:21:53.64ID:757dNGj40
>>62
https://www.online-python.com/36ZCD0xAqV
2022/09/21(水) 23:30:41.78ID:Qxk2XzJU0
そこにforを使うなんて
2022/09/21(水) 23:49:19.41ID:2GcRUbUk0
>>73 >>74
ありがとうございます!
文中に含まれてるものにも対処したいので73を長さ変えながら複数回適用で使いたいと思います
77デフォルトの名無しさん (アウアウウー Sa5b-8eP5)
垢版 |
2022/09/22(木) 11:05:41.34ID:u9/ouAZsa
>>39
いらね
78デフォルトの名無しさん (アウアウウー Sa5b-8eP5)
垢版 |
2022/09/22(木) 11:11:13.09ID:u9/ouAZsa
>>72 の回答はよ
2022/09/22(木) 11:12:02.23ID:ufV304t80
見てすぐ判らんようなもんは使うべきではないな
2022/09/22(木) 13:04:09.56ID:kBSagdtc0
abracadabra
81デフォルトの名無しさん (ワッチョイ d72c-3X0R)
垢版 |
2022/09/23(金) 06:05:04.44ID:l/gDdEyB0
x = [i for i in range(10)]
idxs = [start, end] # 0 <= start <= end <= max(x)かつend +=1

xが上記の場合
最小はidxs = [0, 1]
最大は idxs = [0, 11]
です。このとき
for i in idxs:
__x[i]
だと最後が11のときindexErrorになるんだけど
try exceptでcontinueする以外にいい書き方ないですか

if i == len(x): breakみたいなのとか
_idxs[1] -= 1
for i in idxs:
みたいなのは嫌です
2022/09/23(金) 06:29:46.22ID:ciin+wbx6
その11にはどういう意味があるんですか
2022/09/23(金) 06:42:29.24ID:j5q+73vfM
>>82
そもそも、「いい書き方」って何ですか
2022/09/23(金) 07:14:40.79ID:ILPrLpfC0
これ、やべぇな
https://gigazine.net/news/20220922-python-old-bug-unpatched-15-years/

GitHub Copilot とかで広まっちゃうのか
2022/09/23(金) 09:31:57.58ID:nucVVsrtd
>>84
これは完全に誤訳
翻訳元では、GitHub上の数多くのOSSにこの脆弱性が存在するからCopilot等がそれを学習して広がるかもしれないと言っているだけ
2022/09/23(金) 09:39:19.95ID:08DmGtnT0
そんな風に読んだけど違うの?
2022/09/23(金) 10:22:01.14ID:7VR4OLWz0
確かにtarを使うリポジトリではcopilot経由で広がる可能性があるけど、tarを使うリポジトリなんてリポジトリ検索してもそんなにないので実数としては眉唾
依存関係から侵入してくる方がよっぽど可能性が高い

Copilotが批判されがちなので批判の文脈で喋ったほうが肯定的に聞いてもらえるだろうという余計な意図が入ってるのではと邪推してしまうね:)
2022/09/23(金) 12:26:25.28ID:nucVVsrtd
>>86
> Trellixによると、35万件を超えるリポジトリがこの脆弱性に脅かされていると見られ、その多くでGitHub Copilotなどの自動ツールが使われているとのこと。
前知識なく普通にこれ読んだら、35万件のリポジトリがGitHub Copilptを使っている、そして、Copilotがその脆弱性の原因であると思うでしょ
というかこの記事書いた人はたぶんそのように誤解してる
> https://www.trellix.com/en-us/about/newsroom/stories/research/open-source-intelligence.html
まあソースも推計方法や論理がガバガバで似たようなレベルだが
89デフォルトの名無しさん (アウアウウー Sa5b-8eP5)
垢版 |
2022/09/23(金) 13:17:45.83ID:esyqbAqHa
>>81 が何を考えてるのか詳しく知りたいなωωω
2022/09/24(土) 01:05:33.05ID:WVAdUwxP0
>>81
インデックスなら0~10の番号で管理すべきじゃないの
endを取り出して使うときに+1すれば良いんじゃない
スライシングと混同してるのかな
91デフォルトの名無しさん (JP 0H1f-nvXy)
垢版 |
2022/09/24(土) 02:03:35.51ID:6DJLRQJMH
>>90
外部入力でスライス範囲を受け取ってて(start, end)
その値を使いまわしてインデックスアクセスしたいんだろう
テーブル扱うGUIとかでままある
2022/09/24(土) 07:13:39.52ID:52DloiQc0
単にインデックスの範囲とスライスを混同してるだけだろ
外部からの入力なら値のチェックは必須だしその時に調整しとけばいいだけ
2022/09/24(土) 07:29:05.56ID:RoHmfu6K0
一昔前のseabornのカラーマップだか忘れたけど1から数えて最後の数字を入れるようなインデックス指定を偶に見かける
[0, 10] → 0から9までと
[1, 10] → そもそも0が存在せず1から10
この2つの書き方にそれぞれ名前ついてたりする?
2022/09/24(土) 08:37:46.88ID:3mLYFKO40
>>93
前者は「半開区間」として [0,10) といった表記にするのをよく見る
2022/09/24(土) 09:09:58.79ID:RoHmfu6K0
>>94
あーたしかに数学で見るわ
2022/09/24(土) 09:21:01.36ID:P3HsQQA/0
メモリマップとかで、
A: 0x0000 - 0x0fff
B: 0x1000 - 0x1fff
みたいに末尾をfffにせずに、末尾は1足して表記する、という約束にした方が使いやすい
2022/09/24(土) 09:53:57.04ID:N1C+NhRL0
そうすると最後は
F: 0xf000 - 0x10000
と最後だけ2バイトでは表記しきれなくなるね
2022/09/24(土) 10:03:22.17ID:P3HsQQA/0
それはもう0でいい
2022/09/24(土) 10:26:03.89ID:8OhmHPew0
すみません、プログラミング初心者です、python構築について質問があります
python3.10.7をインストールしたのですがコンドプロンプトで確認したらpython 3.9.12になっています
もしかしたら以前DLしてたのかと思って探しても見つからないのですが
こういうものなのでしょうか?
2022/09/24(土) 10:37:33.81ID:8OhmHPew0
すみません、調べてみたらanacondaの方にpythonが入ってたみたいです
101デフォルトの名無しさん (ワッチョイ 372c-nvXy)
垢版 |
2022/09/24(土) 10:54:04.69ID:gdtERKOB0
まーたanaconda被害者がひとり…
2022/09/24(土) 10:55:37.98ID:8OhmHPew0
>>101
そんなに有名な事でしたか…
調べても出てこなかったので
103デフォルトの名無しさん (ワッチョイ 3733-6qsd)
垢版 |
2022/09/24(土) 11:18:28.18ID:4ctEaw520
君は悪くない、anacondaも悪くない
anacondaを進める入門的な書籍やサイトが悪い
2022/09/24(土) 11:29:33.35ID:8t4kL4/n0
pipでバイナリを配布できなかった時代ならまだしも、今そんな時代じゃないしな~
2022/09/24(土) 11:34:58.91ID:P3HsQQA/0
何かのツールをインストールするとpythonも一緒にインストールされるのはよくある
python2だったりもする
大抵は、自分用のバイナリを自分で使うだけなので迷惑はかけないけど、
行儀の悪い奴もいる
2022/09/24(土) 12:01:38.29ID:52DloiQc0
>>98
さすがにそれはアホすぎる
107デフォルトの名無しさん (ワッチョイ 372c-nvXy)
垢版 |
2022/09/24(土) 12:23:45.45ID:gdtERKOB0
未だにpython事始めで検索すると
無責任な入門サイトの「anaconda入れとけ☆」 ばっかり
いやべつにいいんだけどさあanacondaでも。オールインワンで便利なのも分かるけど
2022/09/24(土) 13:25:40.55ID:mEJjKZc00
anacondaでもpipでも両方使えばいいジャマイカ
2022/09/24(土) 13:33:00.23ID:+zHy6u5Kr
condaのコマンドで新しい環境作れるようにしたらスタンドアロンのpythonが外れた記憶ある
2022/09/24(土) 15:33:58.69ID:BGgCMaIl0
俺も初心者の頃はアナコンダ入れてた。
けど後から無駄も多く必要ないことがわかったのでアンインストールした。
pythonとVSCodeあれば事足りる。
2022/09/24(土) 17:32:16.78ID:nYu0cH9J0
ファイル名に使えない文字を全角に変換するコードってこんなに長くなるものなんですか?
https://qiita.com/kusunamisuna/items/a32679874afedc032158

name_ng = ["/","\",":","*","?","<",">","|"]
こんな感じでリストに入れてfor文の中で replace で置換すれば良いんじゃないかと思ったけど、リストにする段階でエラーになります

上記のURLの記述が最適解?
簡略化された書き方があったら教えてほしいです。
2022/09/24(土) 17:37:12.69ID:xsaou6hs
a=True
b=True

aかつbがTrue、それ以外の全て
の条件って
if not (a and b): でよかったっけ・・?
2022/09/24(土) 18:00:41.70ID:thjqxE2JM
>>111
translate使えばforすらいらない
2022/09/24(土) 18:29:31.09ID:LDtPUxey0
>>111
その記事が最適かどうかは別問題として、まず0x5cをちゃんとエスケープして、あなたの考えを動くコードとして完成させよう
その上で、記事のコードと分かりやすさや速度を気の済むまで比較してみればよい
2022/09/24(土) 19:22:50.96ID:nYu0cH9J0
>>113
調べて試してみます

>>114
そもそも ”\” は文字列としても単体では使うことができない感じですかね?
知らなかったです。教えてくれてありがとうございます
116デフォルトの名無しさん (アウアウウー Sa43-a1Je)
垢版 |
2022/09/24(土) 20:25:24.85ID:7pBAspe1a
r'hoge\hoge'
117デフォルトの名無しさん (ワッチョイ 127d-nvXy)
垢版 |
2022/09/25(日) 00:00:20.77ID:TfTFVrn20
>>112
if all([a, b]):
else
2022/09/25(日) 00:30:59.06ID:wq9M03AC0
allとanyは積極的に使おう
フラグを別に持つとか途中で抜けてループ変数を見るとか、
何でレガシーな言語はそれで満足してたのか判らん
119デフォルトの名無しさん (ワッチョイ b302-QcAE)
垢版 |
2022/09/25(日) 02:03:20.35ID:ouzeiwB30
今日からPython始めたんだけど、エラーが出て動かなくて悩んでたらインデントが原因だったw
調べたらインデント自体プログラム構造的に意味を持ってたんだな。。。
2022/09/25(日) 05:32:21.54ID:WCcUyzUQ0
少しコードが長くなってきたので、関数を定義してみようと思ったのですが
関数を使うくらいなら、最初からclassとmethodでやった方が後々便利ですかね?

それから現段階ではまだinstance変数を使うかどうかは不明ですが
classの最初に__init__は決まり文句として書いておいて良いのでしょうか?
仮に全く使わなかった場合にバグの元になったりするのでしょうか?
121デフォルトの名無しさん (ワッチョイ 372c-nvXy)
垢版 |
2022/09/25(日) 05:38:14.60ID:iEmY5l+s0
そのレベルならまず関数に慣れよう
classはそのあと
2022/09/25(日) 05:54:55.13ID:WCcUyzUQ0
了解しました
2022/09/25(日) 11:02:47.56ID:sQFmQmse0
classを使うほうが常に優れていると思ってるなら認識を改めたほうがいいよ。
classと関数両方使えるがpythonのメリット。
標準ライブラリだって両方共存してるのにどちらかを捨てるなんてもったいない
2022/09/25(日) 11:22:42.32ID:Sdaj2srm0
自己満だからといっていつも意識的にそれらを考えていかなければより良い設計はできないのかもしれない
2022/09/25(日) 11:43:23.68ID:rlnwElI30
クラスはメンバ変数にselfが強制だからコードが冗長になって嫌だわ
126デフォルトの名無しさん (オッペケ Sr47-d9EM)
垢版 |
2022/09/25(日) 12:37:00.29ID:uj3dGGMEr
>>125
インデントも深くなるし、状態持つ必要が無ければモジュール化で十分よな
2022/09/25(日) 12:49:19.19ID:wq9M03AC0
大仰なクラスを作ろうとするから
インスタンス変数が2つだけ、みたいなのでも十分役立つ
128デフォルトの名無しさん (ワッチョイ 1610-d9EM)
垢版 |
2022/09/25(日) 17:18:10.55ID:hs4ndUhv0
>>127
それくらいならNamedTupleでも良いかな
129デフォルトの名無しさん (ワッチョイ 372c-nvXy)
垢版 |
2022/09/25(日) 17:41:46.06ID:iEmY5l+s0
dataclassええで
2022/09/25(日) 17:54:34.18ID:AFTbeWYX0
クラスは実装の詳細を見せたくない時に限る
2022/09/26(月) 07:24:51.77ID:ciNDFZ6I0
クラス名をclass Hoge
ファイル名をhoge.py
インポートでimport hoge
インスタンス名何にしようかいつも悩む
??? = hoge.Hoge()
132デフォルトの名無しさん (ワッチョイ 2f97-5djn)
垢版 |
2022/09/26(月) 09:07:29.52ID:P9G+/qqR0
>>81
そもそも[0,1]のときにx[0]を2つ取り出したいのかどうかがよくわからないな
あと、最大(?)は[0,10]じゃないか?
[0,9]のときと[0,10]のときでどう処理を変えたいのかよくわからない
半開区間に含まれる最小最大を取り出したいなら、
for i in [idxs[0], idxs[1] - 1]でいいと思うのだけどこれは嫌?
133デフォルトの名無しさん (ワッチョイ 2f97-5djn)
垢版 |
2022/09/26(月) 09:12:30.59ID:P9G+/qqR0
木構造とかグラフ構造を自作したいなら(間々ある)、
クラスにした方が便利なときある気がするけどな。
get_tree_children(node)とかしだすなら、node.children()の方が名前空間がすっきりしていいし。
実装の詳細を見せたくないかどうかというよりは、関心の分離をしたいかどうかによるような気がするな。

確かにクラス作るまでもないようなことは多いけど。
2022/09/26(月) 20:32:27.38ID:b9hyANFk0
>>128
値が変えられないがな
2022/09/26(月) 23:15:54.08ID:QR+uVx8I0
python 3.9.10

a = (1, 2, 3)
b = a
c = (1, 2, 3)

print(a==b)
print(a is b)
print(a==c)
print(a is c) #True?

なぜ a is c が true になるのでしょうか?
2022/09/26(月) 23:17:59.46ID:QR+uVx8I0
>>135
ideone に貼っときます
https://ideone.com/yVmxfv

なぜでしょうか?
2022/09/26(月) 23:31:03.60ID:b9hyANFk0
a = 1
c = 1
の時と同じ理由
2022/09/26(月) 23:32:02.41ID:Gide+MMY0
>>136
ならない
2022/09/26(月) 23:33:01.37ID:Gide+MMY0
ほらよ
https://i.imgur.com/mESpBvj.jpg
2022/09/26(月) 23:49:19.92ID:eE4Lst2k0
>>139
それREPLでやってるからinterningが効いてないじゃないかな

>>135
Tupleはimmutableだからaとcが同じオブジェクトを指しても問題なくて
Pythonが最適化をした場合はa is cがTrueになるケースがある
「interning」でググってみて

例えばTupleを関数で返すようにすればinterningされずにFalseになると思う
def foo(x):
 return (x, x+1, x+2)

a = foo(1)
c = foo(1)
2022/09/27(火) 00:20:20.92ID:LFY5tutJ0
>>140
ありがとうございます、オプティマイゼーションの余地がある、ということですね、納得しました
142デフォルトの名無しさん (ワッチョイ 2f97-5djn)
垢版 |
2022/09/27(火) 19:02:24.07ID:zjZtbJ3M0
a is cが真になるかはかなりケースバイケースな気がするし、
中身を比較したいんだったら使うべきじゃないね

本当に同じtupleインスタンスかどうかを確認したいときだけにすべき
143デフォルトの名無しさん (ワッチョイ 3733-tX/F)
垢版 |
2022/09/27(火) 22:33:08.85ID:3OHfLHhN0
tupleだけの話ではなくてどの型でも同じだけどね
例えば文字列とか
2022/09/27(火) 23:35:04.66ID:tKd9rAjb
n=12345.67

小数点以下が何桁あるのか調べたいのですが
len(str(n).split(".")[1]) if isinstance(n, float) else 0
こんなんでいいですかね・・?
145デフォルトの名無しさん (ワッチョイ 3733-tX/F)
垢版 |
2022/09/27(火) 23:51:45.87ID:3OHfLHhN0
>>144
https://ideone.com/pSUvOH
146デフォルトの名無しさん (ワッチョイ 1610-DrlT)
垢版 |
2022/09/27(火) 23:53:56.84ID:+joc5Asc0
>>144
誤差で予想外の挙動しそうだからDecimal使う方がいい
2022/09/28(水) 02:27:12.38ID:OOL0jr8Q0
>>144
それだと
n=1.0 -> 1
n=0.00001 -> IndexError
になる

len(format(n,".17f").split(".")[1].rstrip("0"))
後ろのif isinstance(n, float) else 0も不要
n=1.0 -> 0
n=0.00001 -> 5
2022/09/28(水) 09:19:00.77ID:9I9ISsCh
>>145-147
たしかに
0.30000000000000004に対して17得られたのは正解だと思いますが
0.00001で1e-05になっててエラーでました
Decimalかformat使ってみようと思います
ありがとうございました
2022/09/28(水) 10:07:58.97ID:9I9ISsCh
やりたかったことは
受けとった1234.56や0.12345などの固定小数点数に
0.1とかを掛けたり足したりして計算、変形したのを
受け取った固定小数点数の整数部と小数部の数を維持したまま
固定小数点か文字列で処理したかったのですが
改めてやってみるとなんか勝手に桁数が変わってしまいますね・・

1234.56で受け取った場合、1.05を掛けたとき→1296.288ではなく1296.29
0.12345で受け取った場合、1.05を掛けたとき→0.1296225ではなく0.12962
1234で受け取った場合、1.05を掛けたとき→1295.7でもいいし1296でもいいし1296.0でもいい
みたいにしたかったのですが難しい・・
2022/09/28(水) 10:17:26.42ID:9I9ISsCh
from decimal import Decimal
str(Decimal(0.123456))
str(Decimal(0.123456)*Decimal(1.05))
#'0.1296288000000000015945911258'

あれ、そもそも0.123456の小数部の桁数はどうやって知るんだっけ??
てところで詰まってます・・
2022/09/28(水) 11:25:04.93ID:9I9ISsCh
冗長な気がしますがこんな感じにしてみました
何かバグが発生しそうな気がします
from decimal import Decimal
ary=[1234.5,165,0.34,0.0001,0.000001,3.00001,0.1*3,123456]

def f(n):
 s=format(n)
 return int(s.split("-")[1]) if "-" in s else len(s.split(".")[1].rstrip("0")) if "." in s else 0

r=1.05
for n in ary:
 d=f(n)
 c=Decimal(n)*Decimal(r)
 rs=c.quantize(Decimal("0."+("0"*d)))
 print(n,c,d)
 print("-->",rs,"\n")
2022/09/28(水) 11:30:47.23ID:9I9ISsCh
連投すみません 結果です
https://ideone.com/exojEw
2022/09/28(水) 13:38:45.48ID:E42G0/DqM
元々の桁数でroundしたいって感じなのかな
2022/09/28(水) 18:25:19.27ID:OOL0jr8Q0
>>152
format使うの提案したけど使わないほうがよさそう、誤差がでる

f(n): 負数で落ちる
s=str(n).lstrip("-")

c=Decimal(n*r) のところで
n*r で誤差がでる
c=Decimal(str(n)) * Decimal(str(r))

負数対応四捨五入 -0.015 を四捨五入して -0.02
rs=((c > 0) - (c < 0)) * abs(c).quantize(Decimal("0."+("0"*d)), rounding=ROUND_HALF_UP)

-0.015 を四捨五入して -0.01のようにしたい場合
rs=c.quantize(Decimal("0."+("0"*d)), rounding=ROUND_HALF_UP)

四捨五入したいのかよくわからんかった、roundingは好みのオプションでどうぞ
2022/09/28(水) 19:37:21.94ID:9I9ISsCh
>>154
ありがとうございます
やはり至るところで誤差が発生するのですね
四捨五入は今回の用途ではどちらでも良い感じです
せっかくなのでまとめてみました
https://ideone.com/JmTu06
ありがとうございました
2022/09/28(水) 19:42:02.44ID:o0cHd3Tq0
先にIEEE754読んでみては?
誤差に関しての勘所がわかるようになる
157デフォルトの名無しさん (ワッチョイ 2f97-5djn)
垢版 |
2022/09/28(水) 20:32:50.93ID:x5UMfEp40
Pythonに限らず浮動小数点数を使う場合は常に誤差の問題がつきまとう。
0.1というのがすでに二進数ではきっちり表現できない数字なので、有効数字を何桁にするのかというのは実装の段階で決めなくちゃならない。

https://docs.python.org/ja/3/tutorial/floatingpoint.html

正確に表現できるのは、0.5,0.25,0.125...と1を2で割っていった数とその整数倍のみ

0.1は1/(2×5)となり1/5が2進数では循環小数となり浮動小数点数では正確に表せない。

ということを念頭に置いてまず何がやりたいか考えた方がいいよ。

decimalモジュールは便利そうだね。
2022/09/28(水) 23:21:28.71ID:FDPwu/KN0
log2で有効桁数計算出来るでしょ
2022/09/29(木) 00:26:06.29ID:3C3gpnCY0
>>154
どちらの書き方でも
-0.015 を四捨五入したら-0.02だった、すまん
-0.01にしたい場合は自力でなんとかして
2022/09/30(金) 00:55:04.52ID:qun5+YRs0
昔から不思議なんだけど
何で分数で処理しないのかな?
最後に割り算を一回だけすれば
誤差がでないじゃないの
2022/09/30(金) 01:46:32.47ID:0IYvIpx66
掛け算でも足し算でも誤差が出るから
2022/09/30(金) 01:53:32.93ID:sForoGQI0
Pythonは整数側の桁数制限が無いのを利用して高精度にできそう
2022/09/30(金) 02:07:16.16ID:f+ZVHjVVa
>>160
似たような大きさの数字ならその発想もいいけどね
現実はコスパの悪い任意精度の演算が必要になることが多いのでは
2022/09/30(金) 03:11:26.40ID:FkDRVgM50
>>160
つ fractions
2022/09/30(金) 04:56:46.10ID:HxNT59pn0
だから誤差の話するならIEEE754読めよ
2022/09/30(金) 04:57:30.60ID:CfDFJOy00
>>160
昔GCD付きの分数クラス作ったけど
結局はdoubleになったことがある
2022/09/30(金) 05:21:28.14ID:oHn8O8ll0
>>160
四則演算だけならいいけど√とかsin( )とかはどうする?

>>161
掛け算、足し算で誤差がでるケースとは?
2022/09/30(金) 08:01:25.94ID:Gm4+1fgX0
sinとかも内部は四則演算
2022/09/30(金) 09:17:00.10ID:oHn8O8ll0
>>168
近似演算の話されても困るんだがw
2022/09/30(金) 09:23:23.51ID:k91OtGRla
三角関数の近似じゃない演算て
171デフォルトの名無しさん (ワッチョイ 2701-okKg)
垢版 |
2022/09/30(金) 10:05:45.64ID:EsKmogiV0
python chapelについて質問です。
情報があまりないので、チャペルについてお勧めのサイトがあれば教えてほしいです。
2022/09/30(金) 10:38:01.55ID:t/wNXSJY0
クヌースのTAOCP読むといいよ
コンピュータでの数値計算の全てが書かれてる
2022/09/30(金) 13:20:23.85ID:oHn8O8ll0
>>170
sinsin, cos のまま計算するって話だろ
数学不得意か?
2022/09/30(金) 13:47:23.87ID:k91OtGRla
>>173
そんなもん代数的な操作だろ
2022/09/30(金) 13:54:50.47ID:oSg68bQdM
>>160
遅いからだよ
2022/09/30(金) 14:09:07.38ID:oHn8O8ll0
>>174
話は>>160から始まってて途中は代数的な操作で最後に一回だけ演算することで誤差を抑えられるって話な
177デフォルトの名無しさん (ワッチョイ 1610-DrlT)
垢版 |
2022/09/30(金) 16:11:14.18ID:7g2iZKZC0
三角関数は二項演算じゃないから後も先もないだろ
2022/09/30(金) 16:39:44.93ID:du1MSukG0
ここまで有効数字の話なし
2022/09/30(金) 16:40:16.15ID:Gm4+1fgX0
有理数演算に有効数字は関係ない
180デフォルトの名無しさん (ワッチョイ 1610-DrlT)
垢版 |
2022/09/30(金) 17:02:40.52ID:7g2iZKZC0
実は誰も数値計算誤差について知らないのである
2022/09/30(金) 17:36:21.26ID:Gm4+1fgX0
組み込み系で、積算の量を保持していて
1秒毎に測定して何年というスパンで計算を続けると、
もう32bitでは精度が足りなくなる
182デフォルトの名無しさん (ワッチョイ 2f97-5djn)
垢版 |
2022/09/30(金) 18:26:40.60ID:J+iH2myB0
最後に浮動小数点数にして誤差を減らす方法は、代数的な計算ができる必要がある。
Mathematicaとか、SymPyだな。
ただ代数的な計算は上手いこと式を整理してやらないと簡単にならないことも多い。積分は公式を知らないと出来ない、というのと同じ。
有理数の四則演算だったら単なる有理数演算を逐次的に実行していけば問題ないだろうが。
183デフォルトの名無しさん (ワッチョイ 2f97-5djn)
垢版 |
2022/09/30(金) 18:28:54.96ID:J+iH2myB0
>>177
んなことないだろ。加法定理やら積和、和積の公式とか習わなかったのか。あの辺使うと極端な場合の誤差減らせるよ。
xが0に非常に近い場合のsin2x/sinxとかね。
2022/10/01(土) 03:53:03.59ID:SpYHa2lW0
お金の計算とかは
有理数しか出てこないんだから
分数で十分のような気がするんだが
2022/10/01(土) 05:23:12.47ID:9xFR6mUQ0
丸めたくない意図だと思うが加減算だけで速攻破綻する
2022/10/01(土) 05:55:22.47ID:jubCkgWp0
単にbit数が足りなくなるという話なので、
必要に応じてbit数を増やしていけばいい
無限に増えることは絶対ない
187デフォルトの名無しさん (ワッチョイ 8301-Umkq)
垢版 |
2022/10/01(土) 06:02:40.31ID:WTWdfTM50
質問です。
djangoの資格を作りたいとおもってます。
需要はありますか?
2022/10/03(月) 07:28:28.28ID:qHW/WFxU0
https://translate.google.com/

Google翻訳のページで、テキスト入力ボックスから「Tabキー」を1回押すと必ず「音声を聞く」のアイコンに移動するようにしたいのですが、Pythonで可能ですか?
通常は3回で行けるのですが、”原文の言語”や”もしかして”が表示されるとTabキーを押す回数が変わって面倒です。しかもリストが表示されててそのパターンなのか見えない。
Pythonで何とかしようとしてるのがそもそも間違っている気がして、簡単なHPをJavaとか?で作ったり、アドオンを組んだりとか別の手段が必要ですかね?
2022/10/03(月) 07:35:38.92ID:y8eCR1Dta
うるせえ
2022/10/03(月) 09:20:27.54ID:XqhFz79Ma
>>188
現在のフォーカスを取得することでTab回数制御できそうだけど
そもそも音声を聞く、のidありゃそこに飛ばせるやろ
2022/10/03(月) 10:02:57.41ID:qHW/WFxU0
>>190
seleniumを使ってプログラムを実行した時だけなら出来たのですが、普段使いで常にその状態にさせる方法が分からなかったです。
独自の簡単なChrome拡張機能を作る方向が一番良さそうな感じです。そっちで少しやってみます。お騒がせしました。
2022/10/03(月) 10:19:40.80ID:2xmZEmoH0
>>191
拡張起こさなくてもTampermonkey拡張でスクリプト書くだけ
2022/10/03(月) 10:33:51.18ID:vUZPctIIM
USWCとか使ってESCキーを押したら画像認識で再生ボタンクリックとかにすると簡単そう
ESCだと位置的に押しやすいし予測候補も消える
pyautoguiみたいなの使えばPythonでもUWSCと同じ事出来たはず
windows限定の話だけど
2022/10/03(月) 10:49:36.68ID:WjbJBDxU0
拡張する方向でやってもすぐに使えなくなったりするので、
キーやマウスの操作を発生させる方向でやるのが結局ベストだったりする
2022/10/03(月) 10:54:58.28ID:qHW/WFxU0
>>192-194
最初に調べるキーワードが出てこなくて分からないことが多いので情報助かります
頂いた情報を元に解決する方向でやってみます。ありがとうございました。
196デフォルトの名無しさん (スフッ Sd1f-0H1b)
垢版 |
2022/10/03(月) 10:55:37.39ID:S1BqvHYWd
>>169
>>173
複素数や四元数を使うのが割りとマジでお薦め
2022/10/03(月) 11:05:12.96ID:zOLlU4yCa
オイラーをほめたたえよ
2022/10/03(月) 18:00:29.25ID:pcuzjq2H0
>>188
Ruby, Selenium でも、JavaScript を使って出来たけど、

ソースコードの何かの単語がブロックされるので、
ここには貼れないので以下へ

https://jsfiddle.net/w3anscm6/
2022/10/03(月) 18:09:52.15ID:wCVa7NBkM
>>198
どーゆーこと?
2001 (テテンテンテン MM7f-kE2G)
垢版 |
2022/10/03(月) 22:09:32.24ID:yB/cj66NM
質問です
以下のプログラム(wikipediaの今日は何の日)をエクセルで起動させたときに最後の年号の()が取れてないとおかしいのですがどこのコードが間違っていますか?
優しい方教えてください

import requests
from bs4 import BeautifulSoup
import csv
import re

url="https://ja.wikipedia.org";
response=requests.get(url)
soup=BeautifulSoup(response.content,"html.parser")

top_entry=soup.find("div",attrs={"id":"on_this_day"})
entries=top_entry.find_all("li")

today_list=[]

for i,entry in enumerate(entries):
today_text=entry.get_text().replace("(","(").replace(")",")")
match=re.search("\(([1-9].*?)年\)", today_text)
if match:
today_list.append([i+1, entry.get_text(),match.group(1)])
else:
today_list.append([i+1, entry.get_text()])

with open("output.csv", "w", encoding="Shift_JIS") as file:
writer=csv.writer(file, lineterminator="\n")
writer.writerows(today_list)
2011 (テテンテンテン MM7f-kE2G)
垢版 |
2022/10/03(月) 22:11:29.02ID:yB/cj66NM
何度も本(スクレイピング・ハッキング・ラぼ)見返したけど間違ってないんです…
2022/10/03(月) 22:13:35.20ID:WjbJBDxU0
漢字コードとか?
2022/10/03(月) 22:15:49.89ID:phcGwi7g0
とりあえずこれに聞こうぜ
https://aiprogrammer.hashlab.jp/
2022/10/03(月) 22:28:30.42ID:cMmfYMlm0
お願いします
https://ideone.com/vADQwg

for i in range(1, 100) で 99 回 next を呼んでいるのに、なぜ 79 で終わってしまうのですか?
2022/10/03(月) 22:28:53.24ID:fB4Oth8WM
>>203
すげぇこんなのあるんだ

でも解決しなかった(´・ω・`)
2022/10/03(月) 22:36:32.61ID:Hgv/NPoj0
>>204
n=15のときFizzBuzz Fizz Buzzの3つ表示されます
2022/10/03(月) 22:54:57.92ID:phcGwi7g0
これでいけそうですが、どうでしょうか

1から100までカウントして、15で割れたらFizzBuzzと表示して、5で割れたらBuzzと表示して、3で割れたらFizzして数字を表示する
2022/10/03(月) 22:58:18.22ID:phcGwi7g0
修正した

1から100までカウントして、15で割れたらFizzBuzzと表示して、5で割れたらBuzzと表示して、3で割れたらFizzして数字を文字列で表示する
2022/10/03(月) 23:01:03.63ID:cMmfYMlm0
>>206
elif にするべきだったんですね!ありがとうございます!
210デフォルトの名無しさん (ワッチョイ bfbd-vqPj)
垢版 |
2022/10/03(月) 23:48:34.11ID:DL3YHdAw0
ウェブスクレイピングをやってみたくて奮闘しておりますが、CSVへの書き込み時にエラーがでます
どう改善すればよいかわからず困っています。助けてください。

おま環(Python 3.9.12+Windows10+VScode)
【コード】
for a in soup.find_all('a'):
link = a.get('href'), a.text
link.to_csv('link.csv')

【エラー】
link.to_csv('link.csv')
AttributeError: 'tuple' object has no attribute 'to_csv'
211デフォルトの名無しさん (ワッチョイ c333-pIDl)
垢版 |
2022/10/04(火) 00:31:15.23ID:QZmM2iut0
>>210
https://pastebin.com/pa33f4Mb
2022/10/04(火) 06:25:16.21ID:UhX37WNP0
>>203
Python
Tuple to dataframe
で聞く
2022/10/04(火) 06:51:23.40ID:jZxsvBQn0
https://aiprogrammer.hashlab.jp/
ウェブスクレイピングで、aタグを取得し、そのaタグをcsvファイルに出力するコードを作成してください。

import csv
from bs4 import BeautifulSoup

with open("sample.html") as f:
soup = BeautifulSoup(f, "html.parser")

csv_file = open("output.csv", "w", encoding="utf-8")
writer = csv.writer(csv_file)

for a in soup.find_all("a"):
writer.writerow([a.text, a.get("href")])

csv_file.close()
2022/10/04(火) 22:24:51.48ID:fseuENfmM
知恵袋にも質問したのですがどなたか教えていただけると嬉しいです


https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q14269053849
215デフォルトの名無しさん (ワッチョイ bfbd-vqPj)
垢版 |
2022/10/04(火) 22:40:41.78ID:g6GmefYL0
>>211 213
丁寧に教えてくださりありがとうございます。
2022/10/04(火) 23:17:10.94ID:CNGS9dK70
>知恵袋にも質問したのですが

5ch はマルチポスト禁止です!
5chで質問する場合は、他での質問を取り消してからにしてください
2022/10/04(火) 23:19:23.00ID:NeQlYRE40
んなこたーない
2022/10/04(火) 23:24:09.71ID:4YJ9syiq0
さすがにインストールできてないのは答えようがない
2022/10/04(火) 23:28:30.56ID:IUIBMeejH
>>216
fj ではマルチポスト禁止の理由がありクロスポストという代替があったけれども、ここでのマルチポスト禁止の理由は?
2022/10/05(水) 00:22:21.08ID:Tx2gHWm/0
せっかくの集合知が分散するからじゃないの?
2022/10/05(水) 00:31:43.32ID:rm6FRUcS0
マルチ野郎はよそで解決しても報告しない
放置してそこら中にゴミを残す
222デフォルトの名無しさん (ワッチョイ cf10-1pq4)
垢版 |
2022/10/05(水) 00:40:43.93ID:93gtHac60
ぶっちゃけスレは落ちて過去ログになるし
検索性も低いから集合知の蓄積なんてしないよ
マルチポスト禁止は形骸化した旧きネチケットだと思う
2022/10/05(水) 00:56:27.52ID:Tx2gHWm/0
>>222
いやぁそうでもないと思うけどねぇ
2ちゃんねるの過去ログをあさって解決方法を見つけたことも数多あるし
解決できない場合でも、ヒントになるようなことが散らばっていて、それをきっかけに探し出せることもある
検索のやり方次第じゃないか?
224デフォルトの名無しさん (ワッチョイ cf10-1pq4)
垢版 |
2022/10/05(水) 01:03:22.70ID:93gtHac60
>>223
調べごとはよくするけど
2ちゃんで解決したことはないな、というか、検索方法によるだろうが出てきすらしない
大体Qiita、個人ブログ、stackoverflowのどれか
2022/10/05(水) 01:12:14.00ID:Tx2gHWm/0
>>224
いまはそうした5ちゃんねる以外の方がまともな完結方法があると思うよ
でも以前は、そういうのがほとんど当てにできなかったり、
*nixやマイナー言語、ハードウェア特有のトラブル、アングラ系wなんかだと、
英語資料を当たるきっかけやヒントが欲しかったりしたので、
2ちゃんねるのちょっとした書き込みがありがたかったなぁ

いまでも、"site:5ch.net" をつけてキーワードをググることで、
5ちゃんねるの集合知はちゃんと機能しているよ
2022/10/05(水) 01:17:40.14ID:j989iulk0
2ちゃんねるに書いてある事を、
そこまで信用したことはないな
あるとすれば、裏が取れたとき位

リンク張ってあっても、あやしげなサイトだったりすることもある
227デフォルトの名無しさん (ワッチョイ c32c-Kmz1)
垢版 |
2022/10/05(水) 01:59:12.01ID:xc1v9MP10
今回みたいに簡単なエラー文も読めねえだけのカスがネット上に散らかることが多く
これが害悪であるのでマルチポスト野郎は基本的にクソである
集合知の分散ではない。無知の飽和が問題
2022/10/05(水) 05:43:38.64ID:FOT9/eKgM
ゴメン 今回の件は全面的に俺が悪い
すみません
2022/10/05(水) 05:45:37.15ID:FOT9/eKgM
>>227
エラー文のseleniumは既にインストール済だぞ
2022/10/05(水) 05:51:53.98ID:FOT9/eKgM
>>218
seleoniumはインストール済だよ
pip install selenium でね
2022/10/05(水) 06:08:56.11ID:Vke5X/wtM
Pythonが複数バージョンインストールされてるってオチじゃないの
よくあるAnacondaどうこうってやつ
2022/10/05(水) 06:09:13.82ID:FOT9/eKgM
selenium一度アンインストールして再度インストールしたら出来ました

スレ汚しスマン
2022/10/05(水) 06:11:17.00ID:FOT9/eKgM
>>231
朝早いですね!

再インストールしたら出来るようになりました
何故か知らないけど……

……というより勝手にブラウザが開いて閉じての動作を見た時は感動しました

すげー勉強する意欲が増した
2022/10/05(水) 06:57:09.88ID:wne70pEz0
>>219
マルチポストされると同じようなレスを複数回読むハメことあるし回答したら他のスレで既に解決してたとかあるからそりゃうざいわってことだろ
ちなみにクロスポストはたいていのリーダーでどれか一つ読めば他のグループへの投稿も既読になるし回答する際もディフォルトの回答先グループが指定できるから回答が散らばることも防げる
235デフォルトの名無しさん (ワッチョイ 7f73-8eI1)
垢版 |
2022/10/05(水) 18:42:25.05ID:8ltN7Y6y0
原神スレかpythonスレかで迷ったんですけど、ちょっと失礼します。
https://github.com/shrubin/Genshin-Artifact-Rater
ディスコbotがサ終してたのでありがたくオフ環境に導入すべく頑張ったんです。

setupの手順から一通り終えてpy bot.py後なんですが
raise ValueError("Duplicate keys!")の無間地獄にはまってるんですけど
列行文でエラー指摘されてチェックしても全然関係無さげでわからない時どこ見たらいいですか?。

やっぱり基本を熟知してる人は修正して当たり前な場所とかを理解できてなくてエラー起きてるんですよね。たぶん。。
詳細足りなさすぎるのは理解してるんですけど、ほんと憶測適当アドバイスでいいので教えて下さい。
2022/10/05(水) 22:24:23.68ID:MbZCvQpZ0
>>220
それが理由だとしたらそもそも質問できる場が複数存在していて統一されていないことが悪いってことになる。
2022/10/05(水) 23:32:03.75ID:W5I+dJQy0
>>235
Duplicate keys! って、

データベースのUNIQUE インデックスまたは PRIMARY KEY に、
既に存在する同じキーで挿入しようとしたとか?

そのGithub のbot.py 内を「Duplicate」で検索しても、見当たらないけど?
どのファイルのソースコードなの?
238デフォルトの名無しさん (ワッチョイ 7f73-8eI1)
垢版 |
2022/10/06(木) 01:46:24.04ID:eDAszKmt0
>>237

bot.py実行後に、~\Programs\Python\Python38-32\Lib\site-packages\toml
内のpython38-32のdecoder.pyからエラーが出てます。
powershellを使いました。 ほぼ素人ですみません。
2022/10/06(木) 02:48:03.34ID:2LM4DEsy0
コードじゃなくて食わせるデータがおかしいんでないの
240デフォルトの名無しさん (ワッチョイ c32c-Kmz1)
垢版 |
2022/10/06(木) 03:52:44.67ID:mL002h1/0
>>238
python入門おめでとう!
2022/10/07(金) 05:27:45.05ID:TBR3DhbF0
「python toml decoder duplicate keys」で検索!

TOML ファイルの形式になっていないとか?

ファイルがBOM付きUTF-8 になっているとか?
Python は、BOMなしUTF-8 じゃないの?

https://git.cardiff.ac.uk/c2021544/blogg/-/blob/abf082d45bcacad0728c2a03e91baf103046eba9/venv/lib/python3.6/site-packages/pip/_vendor/toml/decoder.py

このファイルの781, 783 行目に、raise ValueError("Duplicate keys!") がある
242デフォルトの名無しさん (ワッチョイ 7f73-8eI1)
垢版 |
2022/10/07(金) 07:11:32.41ID:0vlnX2v40
>>241
UTF-8になってました。
ValueError: Duplicate keys!とTomlDecodeError: Duplicate keys!が出ていますが
デコードが実行された結果キー重複が起こっているのを知らせただけで、原因はやはりbot.pyの中にあるのでしょうか?
2022/10/07(金) 09:55:21.23ID:BuUd5Oey0
>>242
tomlでエラー出てるなら
bot.pyで
config = toml.load(open("config.toml"))
っていう記述あるけど、config.tomlの中身がおかしいんじゃない?
2022/10/07(金) 13:38:21.48ID:6W+GCvSh0
Traceback (most recent call last):
File "test.py", line 31, in <module>
func1()
File "test.py", line 28, in func1
func2()
File "test.py", line 30, in func2
raise Exception("hogehogeException")
Exception: hogehogeException

こういうファイル名や行数とか出てないの?
2022/10/07(金) 19:08:20.49ID:Z2W6Vqfk0
pyautogui素晴らしい最初に知りたかった
2022/10/07(金) 20:11:45.22ID:f7Qxxz6p0
ぴゃうとぐい
2022/10/07(金) 23:54:53.64ID:cLCpsl3k0
TOML のValidator で、TOMLファイルの形式が正しいかどうか、チェックすれば?
「toml validator online」で検索!

プログラマーなら、VSCode で、〜/toml/decoder.py をデバッグするとか、

decoder.pyを差し替えて、
raise ValueError("Duplicate keys!") の前後で、ログ出力してみるとか
2022/10/08(土) 07:10:23.20ID:kX9hT5zA0
PyAutoGuiも便利だけど何でもできるかというとかなり限定的

画面がこういう状態になったらこの条件に合う部分を探して、
この範囲をコピーしてこのアプリに切り替えてコピペ
みたいなことはできない
2022/10/08(土) 07:26:14.47ID:Qqe7/SLY0
ディスプレイを切ったら動かないのも使いづらい
2022/10/08(土) 11:25:58.24ID:TDMvIP2Ta
ライブラリ関数の情報を調査する方法についての質問です
sagemathというpython wrapperにあるpolygon3dという関数がどういうキーワード引数を持っているのか調べたいのです
ググるとinspect.signature関数というのが見つかります
コレでpolygon3dを調べてみると
signature = inspect.signature(polygon3d)
print(signature.parameters)

OrderedDict([('points', <Parameter "points">), ('options', <Parameter "**options">)])
と出ます
おそらく位置引数'points'とキーワード引数がいくらかあるという意味だと思うのですがやはりコレが限界なんでしょうか?
どんな名前のキーワード引数を持ってるかの一覧表を出力するような方法はないもんなんでしょうか?
251デフォルトの名無しさん (ワッチョイ de10-XciQ)
垢版 |
2022/10/08(土) 12:37:16.55ID:ymJkU01o0
>>250
オープンソースなんだからGitHubに見に行けばいいじゃん
2022/10/08(土) 14:49:02.11ID:hw6LN7oLa
>>251
そうなんです
実際sagemathは割とドキュメントもしっかりしててググれば一覧とかもあります
でもいちいちめんどくさいじゃないですか
もしかしたら各オプジェクトで利用可能なキーワード引数のリストを得る方法とか容易されてたら便利でいいなぁと
結構ググったのでなさそうではあるんですけど、調べて「あった」場合はともかく「ないなぁ」の場合、やはり最終的には強者に聞いてみないとダメかなと
2022/10/08(土) 15:06:18.06ID:lWG3uN0c0
ドキュメントをぶっこ抜いてその関数がどんな引数とるかのポップアップをエディタで出せばいい
2022/10/08(土) 15:13:56.04ID:bWQzA1rj0
pyautogui
エラー出さずにできましたが最適ではない気がします
下記のやり方より良い方法があれば教えて欲しいです


pyautogui.write() でエクスプローラーのアドレスにパスを打ち込む時
日本語や \ が入力できなかったり、最初の C: が C* に勝手に変わったりしました
・pyperclip を使って値をコピーしてから、pyautogui.hotkeyで貼り付けました


pyautoguiを使って検索したりクリックしたりする時
・画像認識してから次の処理する時は、while pyautogui.locateOnScreen() is None: で time.sleep(1) させて
・検索結果表示とか全選択とか、少し時間がかかりそうな箇所は逐一改行して「time.sleep()」を書きました
これを書くのが結構あってcodeが余計に長くなりました
2022/10/08(土) 15:27:35.37ID:bWQzA1rj0
pyautogui 便利だけどマウスとモニターが使用不可になるのだけは面倒でした
下のソフトの処理ができるなら別のもので構わないのですが、pyautogui以外でやってる人がいたら教えてください

・Adobe Acrobat
・Evernote ※Legacy版
・ソシャゲ全般(デイリー回収用)
2022/10/08(土) 15:49:00.05ID:kX9hT5zA0
ahkで簡単なことはやらせてる
python化されたahkがあればいいのにと思っている
2022/10/08(土) 15:57:12.38ID:IpF+MZYD0
ahkって何?
2022/10/08(土) 16:00:09.87ID:xEoQJfh1M
sleepが面倒なら画像名を指定するだけで待ち&クリックする関数を作れば良いんでない
バックグラウンドでの使用は、昔VPCを多重起動して使ってたことあるけど今でも出来るんかな
昔、某MMOでプロセスメモリの内容を読み取って動くマクロとか作ったけど
プロセスメモリが読めればエスパーなマクロが作れるよ
2022/10/08(土) 20:40:05.22ID:bWQzA1rj0
>>258
それでやってみます
ゲームに使えるならプロセスメモリもその内手を出しそうです
2022/10/09(日) 00:21:51.03ID:t9JKJStV0
>>252
VSCode, Ruby では拡張機能で、関数の説明なども見れる

また端末から、そういうコマンドを実行しても見れるけど、
ブラウザで見た方が見やすいので、
一旦コマンドで説明をHTML ファイルにしてから、それをブラウザで見て、
見た後に、HTMLファイルを削除する。
これが自動で行われる

ただし、その関数・モジュールの作者が、
Doc コメントみたいな決められた様式で、コメントを書いている場合のみ

たいてい、Doc コメントの説明などは、
パーフェクトRuby などのパーフェクト・シリーズ本に書いてある
2022/10/09(日) 04:21:23.14ID:L81MTKQk0
クリップボードにpathlibのPathで指定した、不特定多数のファイルをコピーをしたいのですが方法が分かりません
コピーするファイルは、フォルダー・テキスト・画像・動画・PDF関係なく、PC上で選択してCtrl+Cできるファイル全てが対象です

pyautogui.hotkey(“Ctrl”,”v“) を使って貼り付ける予定です。※Evernote Legacyというメモアプリ上で使いたい

pyperclip、shutil、pillow関連の記事は見つかるのですが、クリップボードに複数・拡張子問わずコピーする方法が見つかりません
どうすればできるのか教えてください
2022/10/09(日) 04:59:04.96ID:L81MTKQk0
今のところPathにあるファイル名いじって、検索かけてから全選択して、pyautogui.hotkeyでコピーするという遠回りなやり方でしてみました
2022/10/09(日) 11:51:56.93ID:xdRBYpSIM
FileDrop形式に変換できれば良いんだろうけどパッと検索してみた限り難しそうだね
VSを使ってクリップボードを監視してファイル名が含まれていたらFileDrop形式に変換するアプリを自作するか
コピー用のtempフォルダにファイルを一旦コピーしてから全選択→貼り付けとかでも良さそう
2022/10/09(日) 16:29:09.15ID:L81MTKQk0
>>263
FileDrop形式という単語を知れただけでも良かったです。ありがとうございます
265デフォルトの名無しさん (ワッチョイ cb63-rqSc)
垢版 |
2022/10/09(日) 20:19:39.13ID:nf8IBTFd0
chm形式のヘルプが3.7までしか野良に無いんだけど、3.10(stable)のchmどこかに無い?
公式はDLしたいけど404でオンラインでしか参照できなくて困ってる
2022/10/09(日) 20:45:08.96ID:Ozrjh9EB0
>>265
公式にpython3107.chmあるし、落ちてくるよ
267デフォルトの名無しさん (ワッチョイ cb63-rqSc)
垢版 |
2022/10/09(日) 20:53:03.75ID:nf8IBTFd0
>>266
すまん、日本語版希望。。。
githubに3.7jpビルドしてる人の使ってる
2022/10/09(日) 23:28:35.38ID:t9JKJStV0
>>261
漏れは、Ruby で、drag&drop での複数ファイルの移動処理を作ったけど、
これはファイルのみに適用される。
フォルダの再帰的コピーも出来るみたい

require 'fileutils'

dest_dir = "C:/Users/Owner/Documents/tmp/"

# ARGV は、ドロップした複数のファイルパスの配列
ARGV.select { |full_path| File.file?( full_path ) } # ファイルのみ
.each do |full_path|
file_name = File.basename( full_path ) # ファイル名のみ

FileUtils::DryRun.move( full_path, dest_dir + file_name)
end

sleep # 出力したコマンドプロンプト画面を閉じないようにする
2022/10/11(火) 09:09:33.80ID:L++CLq2X0
すみません、jupyter labで下記のように記述して実行したんですが、エラーでサイトが開きません。原因わかる方いらっしゃいませんか?
url = ''https://telegram.org/''
browser.get(url)

エラー内容
NoSuchWindowException: Message: no such window: target window already closed from unknown error: web view not found

browser.getをdriver.getに変えて試してもみましたがダメでした。
urlについてはサイトに飛べることをurlクリックで確認しました。
2022/10/11(火) 09:22:50.72ID:S+x+TbIN0
エラーメッセージの内容を切り分けて質問しろよ

エラーの原因はすぐわかるだろ
web view not found

まぁ、こんな状態でスクレイピングとかアホかって感じだけど
2022/10/11(火) 09:43:03.84ID:L++CLq2X0
>>270
回答どもでーす
2022/10/12(水) 16:39:03.55ID:+cq2T5fE0
python 3.10.8インストールしようとしたらエラー出る

こういうやつな
https://pullanswer.com/questions/python-3-10-8-amd64-exe-fails-with-access-is-denied
2022/10/12(水) 16:41:57.24ID:Q9qje2Sc0
ご愁傷様
2022/10/13(木) 13:50:28.26ID:uklwGmra0
>>272だけど今試したら3.10.8インストール出来た
https://www.python.org/ftp/python/3.10.8/amd64/ のフォルダの属性設定を間違えてたらしい

よって>>273は昨日の時点ではインストールしてないとすぐに分かるんだね
2022/10/13(木) 18:02:26.26ID:SD2zWMPC0
import pandas as pd
df = pd.DataFrame(
[[10,"a", True],
[20,"b", False],
[30,"c", False],
[40,"d", True]])
#というデータフレームを定義したとして、0列目、2列目を独立して処理したとします
#これを最終的に結合したいのですが、
a = pd.DataFrame(df.iloc[:,0],df.iloc[:,2])
# というようにすると
0 1
0 10 True
1 20 False
...
というデータフレームではなく、
0
2
True NaN
False NaN
False NaN
True NaN
というデータフレームになってしまいます。なんで欠損値になってしまうのか
わからないのですが、求めるデータフレームを作るにはどういう結合方法をとればいいでしょうか。ちなみに、
p=df.iloc[:,0]
に対して
p["A"] = df.iloc[:,2]
という方法は、pがSeries型なので取れないです。一旦Series型にして取り出してから処理して結合させたいのです。どうすればいいでしょうか。
2022/10/13(木) 18:15:58.69ID:rU12tc+I0
んちんちん
2022/10/13(木) 18:37:05.73ID:1c9Wc9kf0
pandas詳しくないけど
a=df.iloc[[0,2]]で出来たお
2022/10/13(木) 18:44:41.46ID:7YLMS5Bz0
pandasはそれだけでスレ作ってもいいくらい複雑で深いな
2022/10/13(木) 19:07:19.22ID:ZrA3PYH80
二重のforループ抜けるときフラグを使ってるんですけどもっとかっこいいやり方ありますか?
for i in range(10):
flag = False
for j in range(10):
if hoge[i][j] == fuga:
piyo()
flag = True
break
if flag:
break
2022/10/13(木) 19:21:12.59ID:glAi4q7Na
二重ループを使わない
281デフォルトの名無しさん (ワッチョイ de10-bGEg)
垢版 |
2022/10/13(木) 19:23:22.28ID:0KS7pmji0
for-else

for i in range(10):
__for j in range(10):
____if condition:
______break
__else:
____continue
__break

例外

try:
__for i in range(10):
____for j in range(10):
______if condition:
________raise Exception
except:
__pass

他には関数にして脱出はreturnとか
2022/10/13(木) 20:02:02.53ID:PAZSTe6jM
検索ならin演算子を使って1ループに出来そう
for i in range(10):
if fuga in hoge[i]:
print("piyo")
break

他にはnumpyのany使うとか
def is_contain(l, data):
a = np.array(l)
return np.any(a==data)
2022/10/13(木) 20:03:15.66ID:QL8so1O30
よほどのクリティカルなイシューが解決されたのでなければ
アップデートされたからと言って、慌てて入れないもんだよ
2022/10/13(木) 20:15:24.40ID:SD2zWMPC0
>>277
一回それぞれ個別のSeries型を抽出してからくっつけたいんです。
2022/10/13(木) 20:24:16.77ID:SD2zWMPC0
わかりました。Series型だと追加できないので一回一列だけのDataFrame型に変換すればいいみたいです。

a = pd.DataFrame(df.iloc[:,0])
そのあと、列追加で
a.loc[:,"new column"] = df.iloc[:,2]
とやれば追加できました。
2022/10/13(木) 20:32:37.12ID:1c9Wc9kf0
こうかな
a = pd.DataFrame([df.iloc[0, :], df.iloc[2, :]])
print(a)

numpyになると[行, 列]になってややこしくなるのを思い出した
2022/10/13(木) 20:43:16.18ID:ZrA3PYH80
>>281
breakしたらelse飛ばす挙動は知らなかったです
ありがとう
2022/10/13(木) 20:45:51.49ID:1c9Wc9kf0
l = list()
l.append(df.iloc[0, :])
l.append(df.iloc[2, :])
a = pd.DataFrame(l)
print(a)

見やすくするならこうやね、勉強なるわ
2022/10/13(木) 21:15:44.80ID:Tqa4ZL2z0
>>274
WSL2+Docker使ってるからな
実機には入れない
2022/10/13(木) 21:37:50.04ID:vk/pladO0
>>281
その三択なら読みやすさ的に
関数にしてearly return一択だと思うんだけどなぁ
2022/10/13(木) 23:54:28.43ID:rU12tc+I0
んチンチンンンンンンン
2022/10/14(金) 01:29:03.54ID:0UzEEAJh0
>>286
行・列逆
2022/10/14(金) 05:44:04.16ID:WQ3ra/reM
>>292
ごめん文盲やったわ
2022/10/14(金) 05:58:04.32ID:CNXM2/Lz0
sr1 = df.iloc[:, 0]
sr2 = df.iloc[:, 2]
a = pd.DataFrame({"0" : sr1, "1": sr2})
print(a)

辞書型で登録
今度こそどや
2022/10/14(金) 23:30:33.11ID:0UzEEAJh0
>>294
できました!辞書型なら列追加できるんすね
2022/10/15(土) 01:53:05.91ID:gy4T8Zz60
df_merged = pd.concat([df.iloc[:, 0], df.iloc[:, 2]], axis=1)
2022/10/15(土) 08:25:41.38ID:w1fQiwU/0
iloc()じゃなくてiloc[]の時点で、何しとるのかよく判らん
2022/10/15(土) 10:37:21.32ID:Awb5Gbls0
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.iloc.html
ドキュメント嫁
299デフォルトの名無しさん (ワッチョイ 9f89-2yG4)
垢版 |
2022/10/15(土) 14:09:18.62ID:wUAlKc2l0
質問です。
配列内にアルファベットの要素がランダムに複数個入っています。
これらの要素をなるべく隣り合わないように並べ替えるにはどうするといいでしょうか?
例:AAABBC -> ABACAB
2022/10/15(土) 14:14:45.53ID:w1fQiwU/0
不可能なパターンがあるな
2022/10/15(土) 14:20:59.88ID:1JUKlkYAM
>>299
なるべくっていう処理はコンピュータには不可能
きっちり仕様として示せる処理でなければならない
2022/10/15(土) 14:30:34.17ID:ttRM3D3c0
>>299
隣合うのが不可避の場合どうするのか
前に溜めるのか後ろに溜めるのか
2文字ずつ並ぶ→3文字ずつ並ぶのように緩和するのか
2022/10/15(土) 14:38:02.16ID:PHpzEK3Ka
>>301
最短を目指すとかよくあると思うけど
304デフォルトの名無しさん (ワッチョイ 9f89-2yG4)
垢版 |
2022/10/15(土) 14:45:59.33ID:wUAlKc2l0
>>302
前後に貯めるのではなく、2文字ずつ並ぶ→3文字ずつ並ぶのように緩和できるようにしたいです。
例:AAAAAABBC -> AABAACABA
2022/10/15(土) 14:49:24.73ID:w1fQiwU/0
AABAACABA はNG箇所が2だけれど、
AAABACABA にすると1箇所で済む

2連続2箇所よりも3連続1箇所の方がスコアが低くなる評価関数の定義が必要
306デフォルトの名無しさん (ワッチョイ 0f10-cJ6U)
垢版 |
2022/10/15(土) 14:49:49.52ID:VXb7W7XW0
こういうパズル的なのはプログラミングお題スレで出題する方が早く回答が付きそうだな
307デフォルトの名無しさん (ワッチョイ 0f10-cJ6U)
垢版 |
2022/10/15(土) 14:51:37.73ID:VXb7W7XW0
>>305
n連続は1箇所につき2^n点のペナルティを課すとかは?
2022/10/15(土) 14:55:21.58ID:1JUKlkYAM
>>306
いや、ていうかよく考えたらこの質問Python関係ないじゃんね
309デフォルトの名無しさん (ワッチョイ 9f89-2yG4)
垢版 |
2022/10/15(土) 15:03:04.47ID:wUAlKc2l0
>>308
すいません。
使っているのがpythonだったのでここで質問しました。

やはり難しいようなので、皆さんのコメントを参考に自力で考えてみようと思います。
ありがとうございました。
2022/10/15(土) 15:15:21.01ID:ttRM3D3c0
>>304
26要素のリストで各文字の個数をカウント
最大のものを見つけ出す
最大/他全部で連続個数が分かる
最大の文字を連続個数並べて他の文字を順番に挟む
挟む時は各文字の文字数をつじつま合うようにリストをカウントダウンして調整

同じ文字は可能な限り離したいとか条件追加するともっと難しくなる
2022/10/15(土) 15:17:51.26ID:ubtsaD1N0
>>300
ちゃんと確認してないけど、交互に置けない場合が条件になるのかな?

不可能条件
最頻出文字数 > 文字総数/2
かな
2022/10/15(土) 15:17:59.84ID:ttRM3D3c0
文字の挿入は総数がつじつま合うようにもっと工夫が必要だな
まあ頑張ってくれ
2022/10/15(土) 15:18:54.05ID:ubtsaD1N0
かぶった上に劣化だった><
314デフォルトの名無しさん (ワッチョイ 9f89-2yG4)
垢版 |
2022/10/15(土) 15:33:35.79ID:wUAlKc2l0
>>310
>>311

ありがとうございます。
試してみます。
2022/10/15(土) 15:53:38.83ID:2u2iBEwS0
>>303
「なるべく」は結果についての話
最短は手順の話だから違うよね
2022/10/15(土) 16:21:01.13ID:w1fQiwU/0
ガチでなるべくなヒューリスティックな問題の方が現実には多い
2022/10/15(土) 16:39:39.77ID:ywjmScUEa
>>315
今回は結果の話しかないよな
2022/10/15(土) 17:41:55.96ID:Hv7z/9nw0
思いつきだけど
[合計文字数][26]の2次元配列を作る
各文字ごとに均等に配置
空白部分には空白なりNoneなり入れる
2次元配列を縦方向に連結して1次元配列にする
空白を除去する
ってのはどう?

aaabbc
[a,n,a,n,a,n]
[b,n,n,b,n,n]
[c,n,n,n,n,n]
abcaba
2022/10/15(土) 17:50:25.10ID:ttRM3D3c0
>>318
合計じゃなくて最大個数の文字数でいいな
2022/10/15(土) 18:29:11.63ID:a1geBJ2n0
for文の途中で条件に当てはまったら、for文の任意の値から処理を再開させる書き方とかありますか?
例えば「for x in range(10):」とあったとして、7の途中で条件に当てはまったら、3から再開してそのまま最後まで処理するみたいな
321デフォルトの名無しさん (ワッチョイ 0f10-cJ6U)
垢版 |
2022/10/15(土) 18:32:12.78ID:VXb7W7XW0
while使った方がいい
2022/10/15(土) 18:48:06.23ID:w1fQiwU/0
処理で条件が変わるような場合は、whileにしてもハマる
いつ終わるか判らないようなループは本質的に不安定
2022/10/15(土) 18:48:39.13ID:i+M+Mx9R0
再帰でいいのでは?
2022/10/15(土) 18:52:19.28ID:2u2iBEwS0
>>320
そういうジェネレータ作ってrangeと置き換えればいいんじゃね
2022/10/15(土) 19:03:32.69ID:jl8SG5IY0
あんま綺麗じゃないけど、こんな感じでいいのか?
競プロの連中ならもっとスマートなの書いてくれるはず

text = "aaabbc"
char = "abcdefghijklmnopqrstuvwxyz"

char_dict = []
for c in char:
____count = 0
____for t in text:
________if c == t:
____________count += 1
____if count > 0:
________char_dict.append({"name":c, "count":count, "left":count})

char_dict = sorted(char_dict, key=lambda e: (e["left"], -e["count"]), reverse=True)
result = ""
pre = ""
for _ in text:
____ci = 0
____while True:
________now = char_dict[ci]["name"]
________if now == pre:
____________ci += 1
________else:
____________result += now
____________pre = now
____________char_dict[ci]["left"] -= 1
____________char_dict = sorted(char_dict, key=lambda e: (e["left"], -e["count"]), reverse=True)
____________break

print(result)
2022/10/15(土) 19:10:00.74ID:jl8SG5IY0
よく見たら、聞くまでもなくダメなやつだなすまん
2022/10/15(土) 19:57:10.99ID:icx3tYx0M
>>325
とりあえずcollectionsのCounterだけは覚えようか
2022/10/15(土) 20:30:20.03ID:Hv7z/9nw0
Numpyで作ってみたで
https://ideone.com/nQcfVW
2022/10/15(土) 20:30:36.10ID:Ji35UDrea
きったね
2022/10/15(土) 20:48:46.65ID:jl8SG5IY0
>>325
ありがとう

このソートって思ったよりも難しいな
ツリー構造は理解できねえわ
2022/10/15(土) 21:15:49.97ID:jl8SG5IY0
アンカミスってた

>>327
ありがとう
2022/10/16(日) 01:02:14.69ID:moLuv1n40
>>299
https://ideone.com/b6vqgk
すごーく分かりづらいけど、2種類に分けて導き出した
区切り文字中心に考えたのに、そこで処理を分けてない体たらく
あと、同じ文字は出来るだけ遠く?は難しかった

〆切ってそうな話題ですまん、Python覚えたくてやってみた
333デフォルトの名無しさん (ワッチョイ 6b01-apoB)
垢版 |
2022/10/16(日) 20:28:46.68ID:MD6QHwBW0
質問です。
vscordとpycharmと他のパイソン系なのですが
「マルチグラボ」対応してるのを探してます。
お勧めはありますか?
334デフォルトの名無しさん (ワッチョイ 9f89-2yG4)
垢版 |
2022/10/16(日) 20:56:42.88ID:tl8sUwzf0
Windowsで作成した画像を外付けHDDに保存する。
※macとWindows共通で使えるFAT32使用
それをmacPCのpythonのglobで画像のパスを読み込んだ時に
「バスケ」や「ポケモン」などの濁点と半濁点の検索ができません。
※printで中身を見るとあります。
原因や対処方法がありましたら教えて下さい。
2022/10/16(日) 21:20:40.98ID:F/Fiy6Pc0
unicodedata.normalize()
2022/10/16(日) 21:28:07.05ID:cG9YvU2e0
あれはあれでunicodeなんだよな
統一できてない
337デフォルトの名無しさん (ワッチョイ 9f89-2yG4)
垢版 |
2022/10/16(日) 21:50:36.51ID:tl8sUwzf0
>>335
ありがとうございます。
うまくできました。
2022/10/16(日) 22:24:25.86ID:U1duiFVid
>>299
これ貪欲法で解ける??
解けるならAtcoderのCくらいででそう
2022/10/16(日) 22:53:43.69ID:1lEHOAQp0
Mac は「ハ + 濁点」「ホ + 半濁点」に分割しているのか

1文字にまとめるのが普通
2022/10/16(日) 23:02:52.94ID:cG9YvU2e0
昔からそうだったとかでもないのに
デファクトスタンダードに合わせるのは嫌というイキりたいOSの性格が現れている
2022/10/16(日) 23:16:15.14ID:N+fxT3Y10
昔はバやパを平気で使ってたぞ
2022/10/17(月) 00:13:29.63ID:uAMFVFmC0
半角カナを全角に変換した時に
文字数が変わるのを許容できるかという問題
2022/10/17(月) 01:43:17.91ID:fAAk7KG50
>>299
https://ideone.com/7qVDRD
内包表記とスライスを使ってみた
・・・Pythonヤバすぎる、便利すぎる
2022/10/18(火) 01:25:14.77ID:zc0QoIzs
単純なy1,y2の差ではなく、
y1がy2をcrossover(上抜け)したところの値とy2との差を、crossunderするまで取り続ける
y1がy2をcrossunder(下抜け)したところの値とy2との差を、crossoverするまで取り続ける
そのデータを取得したいのですが
何かうまい具合にできないものでしょうか
where使って切り替わりの判別はできたのですが

import numpy as np
import matplotlib.pyplot as plt

fig, ax = plt.subplots()
t = np.linspace(0, 10, 1000)
y1 = np.sin(t)
y2 = np.cos(t)

ax.plot(t, y1)
ax.plot(t, y2)

fig.tight_layout()
plt.show()

np.where(y1>y2,1,0)
2022/10/18(火) 10:34:44.39ID:jjMTEoo10
test = set(A[‘A1’] for B in C[‘C1’] for A in B[‘D’] )

ってどういうコマンドなんでしょうか。
入れ子が多すぎてよくわからず…
何がどう処理されてtestには何が入るんでしょう?
2022/10/18(火) 10:55:11.72ID:RkLeKawPM
バラせば済む話だわな
2022/10/18(火) 11:05:17.60ID:xDZsbnE90
test = set(...) は
https://docs.python.org/ja/3/library/stdtypes.html#set-types-set-frozenset
なんで置いといて中身の話だけど
A['A1'] の所を一時的に C B A と順に3回置き換えて動かすとみえてくるかも
2022/10/18(火) 11:09:45.56ID:jjMTEoo10
>>346
バラす場合は

test = set(A[‘A1’]
      for B in C[‘C1’]
          for A in B[‘D’] )
ここでバラすってことですかね?
349344
垢版 |
2022/10/18(火) 12:45:29.61ID:zc0QoIzs
ゴテゴテになりましたがなんとかできました
https://ideone.com/huqmu0
#0.0 97
#crossover sin,cos 2
#crossunder sin,cos 1
2022/10/18(火) 12:56:03.93ID:41XzDqyZM
>ここでバラすってことですかね?
>>348
フィルタリングしてるのはわかってるやんな?
2022/10/18(火) 13:24:53.77ID:jjMTEoo10
>>350
すみません
フィルタリングってなんでしょうか…?
352デフォルトの名無しさん (ブーイモ MM7f-Z2+b)
垢版 |
2022/10/18(火) 14:51:24.85ID:5thtfPTiM
>>345
forループに直して読めばいい

test = set()
for B in C[‘C1’]:
__for A in B[‘D’]:
____test.add(A[‘A1’])

あまりいい内包表記の使い方ではない
353344
垢版 |
2022/10/18(火) 14:53:46.55ID:zc0QoIzs
差とったバージョン貼るの忘れてました >>349
https://ideone.com/yDQwqO

せっかくnumpyやpandas使っているのにforで回す感じが納得できませんが妥協します
2022/10/18(火) 16:18:57.44ID:L21rDi/Na
直前のコマンドの実行結果の確認ってどうやるんですか?
shellで言う、echo $? をやりたい
2022/10/18(火) 20:19:11.20ID:wvci1M8ka
[{'id': 1, 'name': 'hogehoge', 'start_time': datetime.time(22, 0)}]
ってリストを
{'id': 1, 'name': 'hogehoge', 'start_time': datetime.time(22, 0)}
と言う辞書に簡単に変換する方法ってありますか?
クエリーセットから辞書に出来れば一番いいんだけど...。
356デフォルトの名無しさん (ワッチョイ 4b97-+LDt)
垢版 |
2022/10/18(火) 20:24:46.13ID:BZdlnClE0
>>355
普通に最後に[0]つけるだけでは?
2022/10/18(火) 20:27:28.02ID:8ovbGjhuM
>>353
こんな感じじゃ駄目?
https://ideone.com/dRYCAH
2022/10/18(火) 20:32:38.62ID:wvci1M8ka
>>356
ほんまや!ありがとう!
2022/10/18(火) 21:48:30.15ID:zc0QoIzs
>>357
cross地点のラインとか見やすくていいですね
実際に使うチャートのプロットに使ったら良い感じになりました!
ありがとうございます!!
2022/10/19(水) 11:35:50.09ID:XPI64Z3+0
Wsl2上Ubuntu20.04でtorch使って機械学習させてたんだけど、3万イテレーションぐらいで
Segmentation fault
とだけ出て落ちてた
VRAMの容量が不足したと考えてあってる?
あとLinux環境でこれをデバッグするなら何がいいか教えて欲しい
2022/10/19(水) 11:54:47.46ID:tuP7W/zl0
SageMakerだな
2022/10/19(水) 12:36:42.67ID:rgBskw8B0
Linuxの組み込みRuby・mruby とかは、Top, Valgrind などを使うのかな?
363デフォルトの名無しさん (オイコラミネオ MM8f-4fP8)
垢版 |
2022/10/19(水) 22:23:16.68ID:3NiqH8qVM
>>1
p = [0,1]
q = [2,3]

r = [0,2,1,3]
にまとめたい、、、
364デフォルトの名無しさん (ブーイモ MM7f-+LDt)
垢版 |
2022/10/19(水) 23:34:10.81ID:bkANZ+VWM
>>358
良かった。おめでとう

>>363
zipとflatten使えばできる、flattenは自前で書いても可
365デフォルトの名無しさん (ブーイモ MM7f-+LDt)
垢版 |
2022/10/19(水) 23:37:46.30ID:bkANZ+VWM
>>360
再現性あるかどうかは大事。ないなら電圧降下とか宇宙線とか回避できない事象かもしれない。
再現性あるならまずはメモリのテストとか?
2022/10/20(木) 00:13:53.61ID:mcMX29GY0
メモリ壊れててSegmentation faultは運良すぎる
十中八九バグ踏んでる
2022/10/20(木) 00:21:35.47ID:Ia5AvZ4ba
>>360
まずは普通のubuntu環境でやってみな
2022/10/20(木) 06:33:42.06ID:h2hzFpVPM
note.nkmk.meブログ書いてる人は一体何者なん?凄すぎでしょ
369デフォルトの名無しさん (オイコラミネオ MM8f-4fP8)
垢版 |
2022/10/20(木) 09:06:52.31ID:rssHMFyJM
>>364
ありがとう
370デフォルトの名無しさん (ワッチョイ 6b01-apoB)
垢版 |
2022/10/20(木) 11:03:22.52ID:rq8DqaFj0
.pyの拡張子のプログラムファイル送られてきたんだが
ひらきかたがわからん
2022/10/20(木) 11:07:41.43ID:5IJGeHxC0
単に開きたいならテキストエディタでおけ
よくわからんものをいきなり実行しないほうがいいでしょ。
2022/10/20(木) 11:33:20.98ID:SiOwIn850
送ってきた相手が知人だとしても疑うべき
373デフォルトの名無しさん (ワッチョイ 6b01-apoB)
垢版 |
2022/10/20(木) 11:59:34.42ID:rq8DqaFj0
返信ありがとう。
ココナラの仕事関連で贈られたブツだから
妖しくはないと思う。
ただひらき方がわからんだけw
テキストね。ありがとう!
374デフォルトの名無しさん (ワッチョイ 6b01-apoB)
垢版 |
2022/10/20(木) 14:07:22.08ID:rq8DqaFj0
.pyだからgoogle colabとかvsでもひらけますか?
2022/10/20(木) 14:15:44.78ID:SM0e0PhV6
はい。
376デフォルトの名無しさん (ワッチョイ 0fbb-mZPx)
垢版 |
2022/10/20(木) 14:46:25.62ID:VKVL3k1N0
すまんが、開発環境について教えて欲しいんだけどさ
NumPyの行列がどんな形してるか、あらかじめ推測がつく場合にVSCodeのエディタ上で表示してくれるような機能ってなんかないのかな?
あったら教えてほすぃ
2022/10/20(木) 15:41:29.99ID:Ia5AvZ4ba
ない
型で指定できない以上無理
2022/10/20(木) 16:40:26.62ID:fK+SugQF0
https://numpy.org/devdocs/reference/typing.html
これで型ヒント書いてPylance/Pyrightさんがどこまで対応してきてるかやな
379デフォルトの名無しさん (ワッチョイ 6b01-apoB)
垢版 |
2022/10/20(木) 16:52:22.34ID:rq8DqaFj0
>>375
今グーグルコラボひらいたんやが。
ファイル、編集、表示、挿入などあるけど。
なかなかファイルを読み込むっていうのができひんねん。
教えて下さい!
380デフォルトの名無しさん (ワッチョイ 6b01-apoB)
垢版 |
2022/10/20(木) 16:55:29.69ID:rq8DqaFj0
ファイル→ノートブックをアップロード→ダウンロードできひんw
2022/10/20(木) 17:02:32.17ID:5IJGeHxC0
当該ファイルをテキストエディタで開いてコピペしたらええんでないの?
2022/10/20(木) 17:44:01.65ID:aiWxu/Mz0
Pythonの乱数はCPUのbit長とあまり関係ないみたい
64bit= 8バイトや128bit = 16バイトが効率がいいのかとおもったが
一度にまとめて長いのを生成したほうがいいみたい


https://ideone.com/JlYdMk

import random
from time import perf_counter

def randcomp(byte = 4, loop = 100000):
N =[]
K =[]
for i in range(3):
K.append(2**i)
N.append (2**(8*byte*K[-1]) -1)
for i in range(3):
t = perf_counter()
for n in range(loop * int(4/K[i]) ): random.randint(0, N[i])
t = perf_counter() - t
print("%d%s : %0.3f sec" % (8*byte*K[i], "バイトで乱数生成" , t), flush=True)

print("同一長乱数はまとめて生成したほうがいいが分割したほうがいいか")
randcomp(100, 30000)
2022/10/20(木) 18:21:28.94ID:fK+SugQF0
>>382
https://docs.python.org/ja/3/library/random.html#random.random
> ほとんど全てのモジュール関数は、基礎となる関数 random() に依存します。

ソースまで追ってないけど係数掛けてるだけでない?精度求めないなら構わないけど
2022/10/20(木) 18:38:57.83ID:aiWxu/Mz0
納得
整数の乱数も浮動小数点から生成してるのね
整数値はCPUの整数演算から生成してるとおもってた
2022/10/20(木) 18:57:44.54ID:0LxHKv3Y0
>>376
PyCharmのPro版ならそういう機能あったかも。まあ有料だけど
386デフォルトの名無しさん (ワッチョイ 0fbb-mZPx)
垢版 |
2022/10/20(木) 19:05:49.55ID:VKVL3k1N0
年3万かあ・・・・教えてくれたのはありがたいけどちょっとこれは・・・・
2022/10/20(木) 19:38:31.27ID:tMcnfqkZa
randomは整数じゃないか?
2022/10/20(木) 19:57:06.72ID:zFT+mBQ80
熱雑音から生成するのなかったっけ
2022/10/20(木) 20:09:52.87ID:tMcnfqkZa
あるよ
量子論的ななんかもあるよ
2022/10/20(木) 20:13:14.05ID:zFT+mBQ80
大勢で祈ると値が偏る奴
2022/10/20(木) 20:18:06.06ID:SiOwIn850
競馬場でやって
2022/10/20(木) 20:59:29.59ID:kx/1mwDkM
計算結果を観測するまで分からない乱数
2022/10/20(木) 21:14:59.71ID:zFT+mBQ80
量子使う奴は意思が入り込むよ
未来の科学ではそんなの当たり前になってるだろうけど、現時点ではオカルト
二重スリット実験とかも本当は不思議でも何でもない
394デフォルトの名無しさん (ブーイモ MMbf-+LDt)
垢版 |
2022/10/20(木) 23:49:24.98ID:PbiytdPqM
ほんとの乱数を使う必要がある場合と疑似乱数でいい場合は区別したほうが良くないか。
Pythonで出し分ける方法は調べてないから知らないけど。
2022/10/21(金) 08:18:44.01ID:qQxL52gE0
seedを物理的に作ってあとは擬似乱数だな
組み込みだとADコンバータのLSBを使ったりする
2022/10/21(金) 08:50:48.36ID:Yzioqt7t0
pythonの資格取りたいんですが難しいですか?
どれくらい勉強すれば行けますか
2022/10/21(金) 13:17:33.66ID:d7WYWX6T6
>>365-367

wsl2上ではイテレーションはまちまちだけど再現してる
ノーマルなubuntu環境構築して再現性あるか見てみるわ
2022/10/21(金) 16:11:11.34ID:QvDTOA5Y0
>>396
2万時間くらい
2022/10/21(金) 17:01:14.33ID:Yzioqt7t0
>>398
2万時間の根拠は?
2022/10/21(金) 17:19:59.05ID:KvwM7lznM
調べりゃ解ることを
わざわざ聞くやつは
2マン時間で十分だと言うことだろう
2022/10/21(金) 17:25:07.63ID:2aEevlzi0
調べると分かるのか
2022/10/21(金) 17:50:39.73ID:+NQJkQPg0
小さめファイルのハッシュ値を計算したい人です
ファイルIOにかかる時間のほうが圧倒的に時間食うことがわかりました
ハッシュ計算が3倍遅いほうでも差がほぼないようです
2022/10/21(金) 17:52:02.77ID:+NQJkQPg0
ここに書き込んだのでは話ではなかった
2022/10/21(金) 18:01:25.42ID:Ty04Hsfm
データフレームのある列で、0が連続する値だけを起点にデータを分割する
いわゆるビニング処理をしたいのですが
こういう感じにしました
https://ideone.com/JIk4Zz
たぶん期待通りの処理(df_sample["b"]で0以外の値が連続するブロックだけ抽出)になったのですが
改善できないでしょうか
2022/10/21(金) 21:02:47.32ID:QvDTOA5Y0
>>399
君には難しいだろう。
たぶん無理だから諦めた方がいい。
Pythonは統計とマシンラーニング課題も出るからそれらの背景知識がなければ受からないと考えたほうがいいし、Pythonを学ぶ意味も意義もなんの価値もない
というのと、そんなことでいちいち根拠は?と思考停止する程度であればなにも成すことはできない。
よってそれら含めて知識として習得するつもりがあり、そのはじめの一歩として資格試験に挑戦するというのであれば、勝手に挑戦すればいい
2022/10/21(金) 21:10:42.50ID:QvDTOA5Y0
>>399
マジで厳しいこというかもしれないが
何のためにその資格を取りたいと思ったのか
何のためにPythonを学ぼうと思ったのか
心から学びたいと言う欲求があなたの中にあるのか
あなた自身がこれら命題に答えられなければ、時間の無駄になるだろう
2022/10/21(金) 21:15:29.58ID:NoO+J0RZ0
>>405
408デフォルトの名無しさん (JP 0H7f-ZPbQ)
垢版 |
2022/10/21(金) 21:23:51.77ID:BRobyhizH
愚直おじさん流
https://ideone.com/TnSTHy
2022/10/21(金) 21:29:44.35ID:Yzioqt7t0
>>406
めっちゃ早口で言ってそう
2022/10/21(金) 21:34:27.68ID:xWrdmgB3M
Pythonは一般人でも使いやすいからシェアNo.1になってるような言語でしょ
ラズパイIoTでも使うしAIのためだけの言語では無いよ
2022/10/21(金) 21:37:59.27ID:7KwYuZana
>>396
https://m.youtube.com/watch?v=OEqADRU6y_o&feature=youtu.be

仕事で使う人で2年程度はかかるらしいよ
2022/10/21(金) 21:39:34.25ID:qQxL52gE0
ひろゆきが言ってるんだから嘘に決まってるだろ
2022/10/21(金) 23:30:16.98ID:X//QLN3D0
ひろゆきは自分で試していない。
検索して、それを話しているだけ

自分の経験に基づかないから、いつも話が浅い。
だから聞くだけ、時間の無駄

検索して分かるような事しか話さない

Python は良いみたいですよ。
流行っているからとかw
2022/10/21(金) 23:38:32.06ID:X//QLN3D0
Python は文系は無理。
大学院数学科か、AWS 機械学習の資格が必要

だから、YouTube で有名な雑食系エンジニア・KENTA とか、
たにぐちまことも、Pythonの動画を作れない

だから、英語だけできる文系女は皆、Ruby on Rails へ行く。
Railsは算数で十分

Pythonの文法だけ知っている香具師は、いらない。
仕事ができないから
2022/10/21(金) 23:39:38.76ID:2aEevlzi0
フランス語で講釈たれたときもそうだな
フランス語の専門家が誤りに突っ込んできて
それで黙ってしまった
416デフォルトの名無しさん (ワッチョイ 0f10-cJ6U)
垢版 |
2022/10/21(金) 23:48:12.69ID:sRGYRPn90
>>409
効いてて草
2022/10/22(土) 00:19:42.69ID:zwJTxOqra
ケンタって人pythonをスルーしてるのはなぜなんだろう
2022/10/22(土) 00:46:25.52ID:5ajtmD/n0
KENTA は文系でしょ。
TOEIC も、800点以上取っていたかも?

英語ができるから、10言語以上のプログラミングに強い

でも、Python は別。
大学院レベルの特殊な勉強が必要だから、文系では無理
2022/10/22(土) 00:55:51.48ID:OES5lhv+a
うーんニューラルネットワークってそんなに難しいことしてないんだけどな
420デフォルトの名無しさん (ワッチョイ 1197-/6zz)
垢版 |
2022/10/22(土) 04:24:24.02ID:+A4lsW440
ニューラルネットワークはともかく、他の言語出来たらPythonだって出来るでしょ。NumPyとかPyTorchだけがPythonじゃないし。なんか知らんYouTuberを根拠にするとか頭おかしすぎる 正直BASICみたいなもんだろ、
2022/10/22(土) 04:31:36.51ID:x/c/WoEY0
PythonはCとかで作れられたソフトのラッパーにすぎないだろ
元の操作が難しくても初心者向けにラッピングしてあるんだろ
BASICみたいというのはその面あるかと
当時だとアセンブラのラッパーといえるだろうが
2022/10/22(土) 04:40:27.23ID:x/c/WoEY0
Pythonで記述法が独特だとおもってたけど
いま高級言語の FORTRAN BASICを調べたらまあまあ似てた
2022/10/22(土) 05:47:55.19ID:7jLTm2VBM
とにかく手軽で便利、マルチプラットフォームで動く高機能なスクリプト言語
一般人から研究者まで、エンジニアじゃなくても手軽に扱えるシェアNo.1のプログラミング言語
さあ今すぐPythonを始めよう!
2022/10/22(土) 06:53:31.27ID:J46viSc60
プログラム全く触ったことなくても独学でもいける?
2022/10/22(土) 07:35:37.88ID:7AfcIHJs0
やる気次第でしょ
インフラ屋さんだけどPythonとGoがあれば仕事が楽になる
426デフォルトの名無しさん (ササクッテロラ Sp11-w3aL)
垢版 |
2022/10/22(土) 14:21:00.87ID:8gOeqRywp
生まれて初めてカキコします。
pythonでエクセル内の
指定したセル範囲を画像として保存することはできるのでしょうか?
openyxl等の使い方を見ましたが該当する機能が見つからず。。。
2022/10/22(土) 14:33:36.41ID:RBHYYj24a
カキコって何歳だよ
画像は難しそうだよな
ブラウザ経由ならまだ割となんとかなるかもしれんけど
428デフォルトの名無しさん (ワッチョイ e933-80Lh)
垢版 |
2022/10/22(土) 14:43:30.59ID:N7+wBa/e0
https://support.microsoft.com/en-us/office/create-a-picture-from-cells-a-chart-or-an-object-in-excel-5545100b-65f7-4caf-ac12-7a56f4a4e7b6
うーん
2022/10/22(土) 14:58:25.99ID:5YUu7WUo0
xlwingsでExcel操作してセルを表示
https://learn.microsoft.com/ja-jp/office/vba/api/excel.range.copypicture
もしこの操作ができるならpillowのImageGrab.grabclipboardで画像化
できそうにないなら同じくImageGrab.grabでスクショ
2022/10/22(土) 15:10:03.03ID:/+WXYBmxM
>>426
5chははじめてか、力抜けよ
画像は難しい(意訳: 無理とは言ってないが見当がつかない)
2022/10/22(土) 18:12:09.05ID:r8ZBR+82H
>>424
そんなことを逝っていたらいつまでたっても創められない
なんでもいいからすぐにやれ!
2022/10/22(土) 18:42:20.42ID:J46viSc60
>>425>>431
わかった、明日本屋さん行ってくる。
2022/10/22(土) 18:44:23.56ID:OES5lhv+a
>>424
無理
そういう質問してくるやつは全員使い物にならなかった
434デフォルトの名無しさん (ワッチョイ 1197-/6zz)
垢版 |
2022/10/22(土) 19:41:53.56ID:+A4lsW440
独学で行ける奴は独学で行けるかどうか質問する前に独学できる範囲は独学しちゃうからなあ。
その質問が出る人と出ない人の違いが不思議だよね。
子供の頃に近くに誰も教えてくれないジャンルで何かを自分で調べてやったかどうかの違いなのかなあ。
2022/10/22(土) 19:55:08.06ID:YnOyl9oPM
全くのプログラミング初心者はCとJavaをやってからPythonやるのおススメ
するとCでポインタに挫折し、Javaでオブジェクト指向に挫折するはず
次にPythonをやると大幅に難易度が下がり感激して習得が進む
2022/10/22(土) 20:14:23.22ID:TcV0m7it0
独学ってなんだろうなとは思う
今やネット使えば相互で学びを得られるわけだし
2022/10/22(土) 20:15:49.62ID:OES5lhv+a
できるやつはそんなくだらない質問してる間に書いてるからな
よほど頭が良いやつを除けばプログラミングなんてスポーツに近い
ある程度書きまくって理解するという面がかなりある
2022/10/22(土) 20:35:33.98ID:kATB1i3DH
>>432
素直でよろしい
わからないことがあったらすぐにここで聞くがよい、少なくとも私は答えてあげよう
2022/10/22(土) 20:36:23.36ID:F0QzgmDAM
変なトレーナーだと上達も遅いし悪い癖がつく
440デフォルトの名無しさん (JP 0H1d-SrSm)
垢版 |
2022/10/22(土) 21:47:35.31ID:cKHN2pKRH
2022/10/22(土) 23:09:50.86ID:SZlNO/Fu0
PythonのpyautoguiでDMMGAMEPLAYERのクリック操作ができません
多分他にもできないソフトや操作がある気がします
できるようにする方法をご存知の方いませんか?
2022/10/22(土) 23:15:54.82ID:r1O0tjlF0
管理者権限では
2022/10/22(土) 23:23:38.12ID:SZlNO/Fu0
管理者権限でPythonやVSCodeを動作させるというのはやってみましたがダメでした
それとは違うものですか?
2022/10/23(日) 00:17:15.41ID:a/Rc5ERJM
クリックスピードが速すぎて認識しないことあったけどそれとは違うかな
2022/10/23(日) 05:29:58.37ID:LnniM1YV0
循環参照とグローバル変数の解放忘れは
どうにもならずでよい?
2022/10/23(日) 07:56:50.73ID:YjL8eIdN0
>>441
それなー制御レイヤでガードがかかってて出来ないんだよ
仮想環境でプレイヤー動かして外からマウス操作するとできる
ahkならうまくいくと昔見た気がする
2022/10/23(日) 08:34:16.23ID:a/Rc5ERJM
昔MMOでマクロ動かしてたときにjoytokeyは通るのにUWSCが通らないのは何でだと思ったらJoytokeyは使ってるAPIが古かったのを思い出した
2022/10/23(日) 20:18:15.84ID:VvU+DrMM0
GUIは他で作って呼べばいいやとか思ってたけど
触ってみたら楽しくなってきちゃった…
2022/10/23(日) 20:40:08.90ID:YdoHOOqzM
自分で使うのは勝手だが、他人に無理に使わせようとして面倒をかけないようにしろよ
2022/10/23(日) 21:21:44.61ID:E8ProAkZ0
パイソンって何のOSで作って、何のOSで動かして
どんなハードウェア使ってるのかイメージわかない
2022/10/23(日) 21:29:22.91ID:QUHPaesz0
>>450
パイソン以外なら分かるのか?
2022/10/23(日) 22:09:00.29ID:HOBBKeJ+a
>>450
え?
2022/10/23(日) 22:20:33.87ID:PSjFlE960
昔はアプリ内スクリプティングによく使われてたし
そこまでOS依存ないよね
2022/10/23(日) 22:22:13.84ID:Gerqh3Hc0
今は何が使われてるの?
2022/10/23(日) 22:22:47.20ID:NZM9O6ur0
>>450
何のOSでと言ってる時点で適性無さすぎ
2022/10/23(日) 22:40:47.26ID:ryZHmhMT0
渋谷のOSは人気があったんだけど、なくなってしまいました
457デフォルトの名無しさん (ブーイモ MMa2-+yyz)
垢版 |
2022/10/23(日) 23:07:36.81ID:ukbFQOFRM
「オーエス!オーエス!」
謎の掛け声の語源は?
2022/10/23(日) 23:21:29.90ID:EIV6aNFQM
>>455
いやーこの辺の理解は難しいよ
俺はPythonがC言語で作られていることを知っているが
C言語が何で作られているかは知らない
459デフォルトの名無しさん (ワッチョイ ee10-9vwd)
垢版 |
2022/10/24(月) 00:31:12.46ID:GUF0AyIv0
>>458
大本の大本を辿ればハンドアセンブルに行き着く
始めは機能が限定されたCコンパイラを作り、だんだん必要な機能全てが揃ったCコンパイラを作る
2022/10/24(月) 01:02:39.86ID:aNKyy4xv0
最初のは計算ごとに配線を替えてたぞ
2022/10/24(月) 01:09:51.15ID:m3/1dAn60
>>458
え?
Cコンパイラ使ったことあらず?
2022/10/24(月) 02:58:26.65ID:wO6abJhfM
>>461
Cコンパイラが何でできているか知っているのは
コンパイラを作った人だけだからね
君は作ったことあるのかい
2022/10/24(月) 03:19:34.54ID:m3/1dAn60
>>462
gcc知らず?
clang知らず?
cl知らず?

何でできてるかって実装言語?
gccならCだよ
clangはC++
clは詳細はわからんがC/C++でしょう
2022/10/24(月) 05:15:28.86ID:p6w8R1yaM
キーワード引数の違いで引数cがあるときだけ下側を呼ぶような関数オーバーロードってできないんですかね
def myfunc(a:int,b:int)
def myfunc(a:int,b:int,c:int)
2022/10/24(月) 06:55:32.96ID:+/V2/OmRH
>>463
gcc はカバのダンスの調教に疲れて c++ になったかと
2022/10/24(月) 07:32:37.40ID:FaCSJwQ/0
ラズパイを動かすための言語って思ってる人もいるかもしれない
2022/10/24(月) 07:46:28.41ID:LLDppSf/0
>>463
それはそう言う例があるってだけの話
テキストを読んでバイナリを出力できる言語なら(面倒かどうかは別にして)コンパイラを作れるだろ
2022/10/24(月) 08:02:02.76ID:m3/1dAn60
>>467
例ってなんだよw
2022/10/24(月) 08:45:07.46ID:ps8GOOL70
はじめにCありき
2022/10/24(月) 08:48:17.61ID:LLDppSf/0
>>468
念の為に聞いておくけどC言語はC/C+でないと作れないとか思ってないよね?
2022/10/24(月) 12:57:00.37ID:m3/1dAn60
>>470
何を言ってるんだ?
支離滅裂だぞ
Cコンパイラの作り方を知りたいのか?
字句解析、構文解析、意味解析、コード生成、最適化とかを知りたいのか?
コンパイラの教科書でも読めば?
ちな俺は大学でその辺やってたから教えても良いよ
2022/10/24(月) 13:06:44.24ID:m3/1dAn60
Cコンパイラ作りたいなら湯淺太一先生のコンパイラの教科書読みな
この本は昔大学で使っててアセンブリ言語のコード生成までちゃんと書いてある
著者はLisp処理系とか作ってた人
この本読めばRustがどういうコード生成してるかもわかる
2022/10/24(月) 13:14:19.77ID:LLDppSf/0
>>471-472
御託はいいから>>470にyes/noで答えろよ
2022/10/24(月) 13:15:55.81ID:rCA25jH/a
>>473
なんでCでしか作れないんだよw
おちょくるのもいい加減にしろ
2022/10/24(月) 13:17:22.92ID:rCA25jH/a
というかマジでわかってない?
コンパイラとリンカとか知らんのかな
それなら謝るけど
2022/10/24(月) 13:17:23.04ID:oX2BqG4d0
どーでもいいw
すれち
2022/10/24(月) 13:19:20.96ID:rCA25jH/a
あまりに前提知識が無さすぎるが故に煽りっぽくなってしまったのなら俺の責任だからそこは謝るよ
2022/10/24(月) 13:21:10.71ID:rCA25jH/a
どうでもよくないよ
コンパイラのこと知らずにRust書いてるならかなり怖い
2022/10/24(月) 13:23:06.14ID:oX2BqG4d0
PythonのスレでRust書いてる前提で話すほうが怖いわw
2022/10/24(月) 13:35:13.05ID:rCA25jH/a
>>479
ん?あ、すまんw
リアルに勘違いしてたw
アスペ出たなあ
2022/10/24(月) 13:35:23.26ID:8nSTkhtC0
ほとんどのスレが閑古鳥だからかスレチでも書きたい欲求が上回るんだろうね
2022/10/24(月) 13:40:32.83ID:rCA25jH/a
ただpythonでC/C++拡張を書く場合には普通に有効だし
知っていて損はないと思うけどね

スレ違いスマソ
2022/10/24(月) 13:45:13.84ID:LLDppSf/0
>>474
お前には聞いてないからいちいち絡んでくるなよ...
2022/10/24(月) 14:40:45.31ID:Ifzcx8SRd
アウアウウー Sa45-sGwS、ワッチョイ 81f0-sGwS
は同一人物でしょ

スレ違いだけど、こっちの流れのほうがわからん
462の発言に対して463が否定した
その後の467が???
>>462 テテンテンテン MMe6-zh4g
> Cコンパイラが何でできているか知っているのは
> コンパイラを作った人だけ
>>463 ワッチョイ 81f0-sGwS
> gccならCだよ
> clangはC++
>>467 ワッチョイ 8201-yYWu
> それはそう言う例があるってだけの話
> テキストを読んでバイナリを出力できる言語なら(面倒かどうかは別にして)コンパイラを作れるだろ
2022/10/24(月) 14:57:03.94ID:LLDppSf/0
>>484
だからC言語(のコンパイラやインタプリタ)はC/C++言語でなくても作れるって話
>>463 は単なる一例
もちろんPythonでも同様
2022/10/24(月) 15:22:20.03ID:2pr4kIm+d
>>485
一例ってことは、
462に対して例をあげて否定した463を肯定しつつ、新たな話題で絡んだってことよね

463以前でもそれ以降でも「C/C++以外では作れない」なんて言ってないのに
2022/10/24(月) 15:36:46.66ID:LLDppSf/0
>>486
どうやったそんなアホな解釈になるんだよw
462 はコンパイラ一般の話を書いてるのにそれに対して個々のコンパイラの例を挙げても否定にも何にもなってないって話だぞ
2022/10/24(月) 16:17:10.49ID:ZTzctXE7d
>>487
>>462 コンパイラ一般の話と
>>463 いくつか例外があるぞと
>>467 いくつか例外をあげても意味ないぞ
こういう流れだったか

> テキストを読んでバイナリを出力できる言語なら(面倒かどうかは別にして)コンパイラを作れるだろ
んで、2行目のこれは「どこに」かかってるんだ?
2022/10/24(月) 16:37:51.01ID:LLDppSf/0
>>488
頼むから書いてもない例外とかいきなり出してこないでくれ

> んで、2行目のこれは「どこに」かかってるんだ?
いくつかの例以外のものを作れるだろって話
2022/10/24(月) 17:06:30.10ID:/FISPYrld
例外 → 一般とは違う例
と読み替えてくれ

その作られている例と作れる話が繋がらなかったんだ
とりあえず流れは理解したわ
横槍すまんかった
2022/10/24(月) 17:39:36.14ID:LLDppSf/0
>>490
> 例外 → 一般とは違う例
> と読み替えてくれ
意味不明、487の一般の意味がわかってないだろ...
全般と書けばわかるかな?
2022/10/24(月) 17:44:48.33ID:aNKyy4xv0
しつこいと嫌われるぞ
493デフォルトの名無しさん (ブーイモ MMe6-/6zz)
垢版 |
2022/10/24(月) 18:01:08.06ID:neM6LaqeM
そもそもPythonもC言語で実装されているとは限らないしね。普通はCPython以外のことを考えなくていいと思うけど、今でもpypyとか使おうと思ったら考えなくちゃだしな(使ったことないのでよく知らないけど)
2022/10/24(月) 20:11:23.46ID:FaCSJwQ/0
c++で思い出したんだけどboost.pythonでndarrary渡したあとそのままndarrary操作してたら処理にアホほど時間がかかったわ
結局vectorに入れ替えて処理したあとpythonのリストに変換して戻したら早かった
今思えば最初から渡すのリストで良かったな
ndarray渡す利点なんかあるのかな?
2022/10/24(月) 20:35:32.52ID:Uzj8AQ880
>>494
コピーを減らせるのが利点だけど、アクセス時のチェック等で遅くなったら意味ないのでポインタを使う。
コピーをするにしても、ndarrayのデータは連続してるのでリストより速くなると思う。
496デフォルトの名無しさん (ワッチョイ 3901-maSS)
垢版 |
2022/10/24(月) 20:57:46.29ID:1daaREig0
初めてvsコードに触ったんだが
pyhtonのバージョンはどうやってわかるんですかねー
教えて偉い人!
2022/10/24(月) 20:57:59.34ID:SgELnO580
flex とか bison は古典芸能ですか?
498デフォルトの名無しさん (ワッチョイ 3901-maSS)
垢版 |
2022/10/24(月) 21:01:12.11ID:1daaREig0
September 2022 (version 1.72)
これのことかな?
すまん。よくわからんw
2022/10/24(月) 21:07:00.51ID:FaCSJwQ/0
>>495
データが連続してるからリストより早いってのはありそう
昔のコード発掘できたら試してみるわ
2022/10/24(月) 21:58:07.47ID:OQANp5iI0
>>497
今はPEGベースが流行りだね。
501デフォルトの名無しさん (ワッチョイ e933-80Lh)
垢版 |
2022/10/24(月) 22:16:28.14ID:dNNjxJBr0
>>496
右下に表示されてる
そこクリックしたらインタープリターを選択っていうのがでてくる
502デフォルトの名無しさん (ワッチョイ 3901-maSS)
垢版 |
2022/10/24(月) 22:38:27.05ID:1daaREig0
>>501
右下だとこうなります。
imgur.com/a/6CZm37Y
なかなかに初心者には難しいです。
503デフォルトの名無しさん (ワッチョイ 3901-maSS)
垢版 |
2022/10/24(月) 22:44:52.56ID:1daaREig0
あ!できたっぽいw
python3.9.0ってでてきた。
これかな?
2022/10/26(水) 11:41:31.93ID:IsZcNO330
半島系のクズは皆殺しでOK
日本に来て強姦と窃盗を繰り返す極悪非道の朝鮮人
2022/10/26(水) 15:13:34.34ID:/Jbhrlo+a
>>497
RubyやPHPで使われてるから普通に現役だよ
手書きだとCFGから左再帰の除去だとか
先読みトークン数の問題とかすげー面倒だから
初心者はまずbison使えば良いんじゃないか
506デフォルトの名無しさん (ワッチョイ 0d09-72Rk)
垢版 |
2022/10/26(水) 22:25:06.76ID:HUwfFIwe0
質問です
この引数は普通関数と可変引数ですが
この関数を簡単にする方法ありますか?
5個以上の場合も全部記述するしかないですか?


def connect(F, *x) :
l = len(x)
if l==0 : F()
elif l==1 : F(x[0])
elif l==2 : F(x[0],x[1])
elif l==3 : F(x[0],x[1],x[2])
elif l==4 : F(x[0],x[1],x[2],x[3])
507デフォルトの名無しさん (ワッチョイ 0d09-72Rk)
垢版 |
2022/10/26(水) 22:26:26.51ID:HUwfFIwe0
>>506
消費メモリと消費時間を計測するベンチマークの補助関数としてつかいたいのですが
2022/10/26(水) 22:39:31.86ID:Gwv5fEeF0
>>506
F(*x)
509デフォルトの名無しさん (ワッチョイ 0d09-72Rk)
垢版 |
2022/10/26(水) 22:43:13.09ID:HUwfFIwe0
>>508
サンクス
F(x)で駄目だったですが
それでいいんですか
2022/10/26(水) 22:48:38.63ID:1pgEFdE40
python3.11どうですか
511デフォルトの名無しさん (ワッチョイ e933-80Lh)
垢版 |
2022/10/26(水) 23:22:36.27ID:iEeVk++I0
>>509
4.8.5. 引数リストのアンパック
https://docs.python.org/ja/3/tutorial/controlflow.html#unpacking-argument-lists
512デフォルトの名無しさん (ワッチョイ e933-80Lh)
垢版 |
2022/10/26(水) 23:24:41.91ID:iEeVk++I0
ていうかFって
2022/10/26(水) 23:32:56.52ID:3tunJph20
すべてが…
2022/10/27(木) 00:18:45.07ID:F/o6kN8OM
韓国人は強姦魔
処刑すべし!
2022/10/27(木) 00:19:10.85ID:H28rwqsV0
>>508
ウホッありがとな※
2022/10/27(木) 22:55:12.85ID:5KytWWZZ
FastAPI気軽に使えて良いわ
自動で/docs作られるからUI作んの完全に後回しにできる

ついでにSQLModelも、と思ったけどrelationship周りがエラー出たり出なかったりおかしかったが原因がわかった
SQLAlchemyのバージョンが最新のものだrelationshipが効かない、1.4.35だといける・・
あとCRUDの並行処理は無理ぽいかも。
これらさえなければ個人でさくっとお気軽にウェブアプリ作るフレームワークとして完璧なんだが
2022/10/27(木) 23:14:24.71ID:9zZ/mg550
tortoiseはどうですか
2022/10/28(金) 00:04:09.43ID:aYQ1muJl0
ちょんだらけw
2022/10/28(金) 01:57:08.28ID:dcIx+1f70
>>516
https://fastapi.tiangolo.com/tutorial/sql-databases/
ユーザじゃないけどこれ読んだかぎりセッションを自前で管理してないからじゃ
仕組みは用意してないと書いてる
2022/10/28(金) 08:27:01.13ID:aYQ1muJl0
ちょんてさ、半島に帰れば差別されないのに絶対に半島に帰らないよね?

それは、日本が平和で豊かで、
日本人はみな親切だからです。

なのにちょんは差別されてると妄想をいだいて
日本人女性を強姦しまくってる!

ちょんは皆殺しにするしかない!
2022/10/28(金) 08:47:10.38ID:aYQ1muJl0
半島に絶対帰らないちょんw
日本人は犯罪者に親切し過ぎる!
2022/10/28(金) 09:16:34.07ID:lPPjHZ9qa
発作か
2022/10/28(金) 10:42:02.56ID:6fPFyEs10
統一教会が追い詰められてきたから焦ってるんだろ
524デフォルトの名無しさん (ワッチョイ 9109-iO6U)
垢版 |
2022/10/30(日) 03:06:48.95ID:9F5gJDkR0
Python初心者ですが新事実を発見しました
クラスのメンバ変数はデフォルト値が設定してあっても
コンスタントラクタで初期化しないかぎり、別に生成したクラスobjと共有されてるようです
リストとか特定の変数限定かもしれないですが
525デフォルトの名無しさん (ワッチョイ 9109-iO6U)
垢版 |
2022/10/30(日) 03:14:13.07ID:9F5gJDkR0
具体的にこれですが


class A :
L = []
def __init__(self): pass

class X :
L = []
def __init__(self): self.L = []

a = A()
a.L.append(7)
b = A()
print(b.L) # 新規生成なのに値が入ってる

a = X()
a.L.append(7)
b = X()
print(b.L) # 正常
print(a.L) # 正常
2022/10/30(日) 04:02:03.41ID:2IVXofav0
それはメンバ変数でなくてクラス変数だからだよ
527デフォルトの名無しさん (ワッチョイ 9109-iO6U)
垢版 |
2022/10/30(日) 04:51:48.91ID:9F5gJDkR0
そういうことか

Pythonでクラス変数とインスタンス変数を取り違えてハマった
https://qiita.com/7shi/items/d37493c58a8bb8d7beed
2022/10/30(日) 05:37:36.99ID:q24pCrd50
韓国人は神さま!
全財産を寄進せよ!
マンセー!
2022/10/30(日) 07:07:55.87ID:PYm3clPCM
>>525
pythonから入った者には
そらそうだろとしか思わないw
たぶんオレは他言語扱えないな
2022/10/30(日) 07:49:05.29ID:2N6ePwSn0
他の言語でも同等の機能を持つものはあるけどpythonはどちらの変数なのかを明示しないから混乱し易い
2022/10/30(日) 07:56:11.62ID:WAC/PohS0
どっちも同じに見えるのはその方が便利だと思ったんだろうか
必要なら使う側で見分け付くように名前を付ければいいという柔らか運用
2022/10/30(日) 08:30:50.67ID:2N6ePwSn0
>>531
> どっちも同じに見えるのはその方が便利だと思ったんだろうか
変数宣言をしないって言うポリシーなので最初に使った場所で決めるようにした/せざるを得なかったじゃないかなって思ってる

> 必要なら使う側で見分け付くように名前を付ければいいという柔らか運用
使う側はそれでいいけど宣言する人が勘違いしてたら意味ないわけで...
2022/10/30(日) 08:44:46.72ID:YV/Jz1Xt0
つい最近同じように、クラスを覚えようと
「python class」でググった一番上のサイトにやられた

https://camp.trainocate.co.jp/magazine/python-class/

クラス変数もインスタンス変数もめちゃくちゃだった
2022/10/30(日) 08:51:51.63ID:KYgyTmU4M
クラス変数をself.でアクセスしない運用にすれば取り敢えず解決
535デフォルトの名無しさん (JP 0He5-3A4z)
垢版 |
2022/10/30(日) 08:58:13.36ID:ejVjSPjsH
self.__class__.foo
self.FOO
536デフォルトの名無しさん (ワッチョイ 1389-rDGy)
垢版 |
2022/10/30(日) 11:40:59.42ID:0ss8sts10
質問です。
requestsを使って画像をダウンロードする時、
一定のサイズ以下の物をダウンロードしないようにしたいです。
どのようにするといいでしょう?
2022/10/30(日) 12:00:39.70ID:Ofy0PT2CM
>>536
どうすればいいって
自分で質問して自分で答え言ってるじゃん
2022/10/30(日) 12:02:51.23ID:o3zlfJHfa
streamを有効にして、ちびちびと確認しつつ取得
2022/10/30(日) 12:03:47.95ID:o3zlfJHfa
事前にわかってりゃその時点で止めればいいけどね
540デフォルトの名無しさん (ワッチョイ 1389-rDGy)
垢版 |
2022/10/30(日) 12:10:52.74ID:0ss8sts10
>>539
つまり一度ダウンロードしてからcv2等でサイズを確認し、
OKならリネームして保存、NOなら削除
という感じでしょうか?
2022/10/30(日) 12:28:08.24ID:WAC/PohS0
そうでないことは質問者なんだから判ってるだろうに
2022/10/30(日) 12:37:02.73ID:0WCgMjCVM
requests ファイルサイズってググれば一番上に出てくる
2022/10/30(日) 12:37:56.59ID:o3zlfJHfa
サイズって、実データのサイズじゃなくて画像のピクセル数とか色のサイズってこと?
544デフォルトの名無しさん (JP 0He5-3A4z)
垢版 |
2022/10/30(日) 12:41:23.93ID:ejVjSPjsH
画像のサイズっていう文脈なら俺はim.sizeとかを想定するなー
request文脈なら容量のサイズだけどな!
545デフォルトの名無しさん (ワッチョイ 1389-rDGy)
垢版 |
2022/10/30(日) 12:41:44.93ID:0ss8sts10
すいません。
質問の仕方がまずかったです。
画像の横幅とか縦幅の方のサイズのことです。
横幅350px以下の画像をダウンロードする時に除外したいのです。
2022/10/30(日) 12:46:32.71ID:o3zlfJHfa
まあフォーマットによっては頭だけ読めばわかるけど…
2022/10/30(日) 12:59:12.74ID:WAC/PohS0
元々はサイズなんか判らん、というプロトコルがあって、
それでは不便だからと建て増しで追加してるから、
判る場合も判らない場合もあるんだよな
判ったとしても嘘をついている場合もある
548デフォルトの名無しさん (ワッチョイ 1389-rDGy)
垢版 |
2022/10/30(日) 13:09:28.80ID:0ss8sts10
>>547
なるほど
そんな事情があるとは知りませんでした。

オンライン上でサイズを調べるのは無理そうなので、
一度ダウンロードしてから仕分けるようにします。

ご迷惑をおかけしてしまいすいません。
ありがとうございました。
2022/10/30(日) 13:18:51.61ID:XddGgynb0
パッとヘッダ見た感じjpegなら0xA3にWORD値で高さ、0xA5に幅、どちらもリトルエンディアン
pngなら0x10にDWORD値で高さ、0x14に幅、リトルエンディアン
って感じだね
上手くヘッダの一部だけダウンロードして画像サイズを得る関数を作ればトラフィック軽減になるかも?
2022/10/30(日) 14:39:50.92ID:XddGgynb0
暇だから作ってみたおじさん
https://ideone.com/2Bakfp
2022/10/30(日) 15:26:12.39ID:VC4EQr6u
デザインパターンのSingletonパターンって必要ですかね・・
結局なんらかのカウンターで一元管理することになりませんか・・
2022/10/30(日) 15:49:28.81ID:Hd1qfqu50
バイトコードってヒープ領域に格納されてvmに渡されるのですか?
2022/10/30(日) 16:53:19.41ID:pkba5bNo0
>>549
ビッグエンディアンね
jpegは画像サイズが含まれるセグメントの位置が固定ではないので決め打ちは危険
2022/10/30(日) 16:56:31.04ID:40a1nlTva
>>551
使わないほうが良いものである
2022/10/30(日) 17:24:05.37ID:yaCBWxQaa
>>552
そうです
内部的にはPyCodeObjectという形で実装されています
2022/10/30(日) 17:53:38.94ID:Hd1qfqu50
>>555
ありがとうございます!
2022/10/30(日) 18:13:35.82ID:CDidbViTM
>>524
他言語触ってて
先に型ヒントつけて宣言しとこで同じ間違いしたわ
2022/10/30(日) 19:10:27.11ID:XddGgynb0
>>553
本当だ逆に覚えてた恥ずかしい
JPEGはサイズ前の5byteが共通っぽかったから>>550ではFF C0 00 11 08を検索するようにしてみたけどFF C0後の3byteは可変っぽいね
そもそも1KB以内にサイズ情報があるかも分からないのか
2022/10/30(日) 23:05:03.89ID:q24pCrd50
ここは朝鮮人のスレ
チョッパリはくるな!
2022/10/30(日) 23:53:08.68ID:vrlOFY0H0
発作か
561デフォルトの名無しさん (ブーイモ MM33-cv0M)
垢版 |
2022/10/31(月) 14:05:35.97ID:j6J+ogvNM
>>551
なんないよ
2022/11/01(火) 02:33:37.39ID:mmiO/WJW0
不特定の文字・数字・記号、またそれらの組み合わせを意味する表記で記入する方法を教えて下さい

[123456aaaあ井う~〜」
↑みたいなのがあったとして、数字や文字は毎回変わる、場合によっては桁数が変わったりもする
テキストファイル内で上記のパターンの文字列を見つけて、その前の位置で改行を入れるみたいなことをしたいです

イメージですが下記みたいに表して a に代入しておいて
[123456aaa文字] → [%%% ¥¥¥¥¥¥¥¥] or [%(桁数)¥(桁数)]

replace(a,”/n”+a) でテキストファイルを書き換えるようなことって可能ですか?
2022/11/01(火) 02:42:25.93ID:mmiO/WJW0
誤字 /n → \n
564デフォルトの名無しさん (ブーイモ MMeb-cv0M)
垢版 |
2022/11/01(火) 03:36:18.46ID:I1aopbaSM
なるほどわからん
565デフォルトの名無しさん (ワッチョイ 8b10-WE8j)
垢版 |
2022/11/01(火) 08:16:26.34ID:xJk+jZok0
これは煽りではなく真面目なアドバイスなんだが、プログラミングより国語を勉強した方がいい
その言語能力だと難しいと思う
2022/11/01(火) 08:30:28.54ID:mmiO/WJW0
222tq2tq2tq269ああ%64agaoiwahaio.59gagagahai3a.t69a 5>22gahaiiha

この文字列を

222tq2tq2tq269
ああ%64agaoiwaha
io.59gagagahai3a.t69
a 5>22gahaiiha

この出力結果にするにはどうすれば良いですか? なら大丈夫ですかね?
この場合だと「文字列2つ + 記号1つ + 数字2つ」のパターンを見つけて改行したい
2022/11/01(火) 08:48:28.70ID:p4TXbqbPa
じゃあそのパターンで改行すれば…
正規表現でいいんじゃないかな
2022/11/01(火) 08:51:40.09ID:CMvcSOEo0
このスレよりも、正規表現のスレで聞けば?
2022/11/01(火) 09:10:51.89ID:tDs0tp7pM
オホダナー
そうだよオホダヨ~
2022/11/01(火) 09:37:37.84ID:mmiO/WJW0
>>567
その正規表現の表記の方法がよく分からないです

123abcdeあいう

“\d{3}\w*.{3}”

これじゃダメみたいで、どう表記するのが正解なのか分かる方いたら教えて欲しいです
2022/11/01(火) 09:48:17.04ID:mmiO/WJW0
できました。ありがとうございました
2022/11/01(火) 10:42:07.10ID:HBYRkZVUa
正規表現の勉強がてらやってみた
https://ideone.com/vPYWtM

最後の1行はマッチしないね
2022/11/01(火) 11:08:19.56ID:mmiO/WJW0
表記自体は合っていたのですが、re.match()でやってたせいで出力されなかったみたいで、re.search()に変えるだけで解決しました
2022/11/01(火) 12:13:10.09ID:vww+azZz0
matchは使わずに
search(r'^なにか')
でいいよな
fullmatchは^と$で

^や$を使うなというのであれば、$だけ使うパターンも整備されていないと不完全
2022/11/01(火) 16:21:24.69ID:GYf/ELerM
俺は君にマッチしたい※
2022/11/01(火) 16:40:02.94ID:1fqXVNhi0
正規表現に関してはrubyやperlみたいに演算子にしてしまうのがベストだと思う
searchだとかmatchだとかregexpだとかmatch_allだとか覚えられんて
577デフォルトの名無しさん (ブーイモ MM33-cv0M)
垢版 |
2022/11/01(火) 17:42:07.83ID:59UjWoGEM
命名とかAPI設計がイケてない
match、search、fullmatch・・・
たまにしか使わない人は諦めて毎回リファレンス参照するしかない
2022/11/01(火) 17:59:02.79ID:vww+azZz0
list.append()が破壊的だったかすら忘れてぐぐる
2022/11/01(火) 22:54:57.42ID:w1dGDiRI0
覚えられないのではない
覚えないという選択をしているのだ
覚えるために何か工夫したのか?
580デフォルトの名無しさん (ワッチョイ 9109-iO6U)
垢版 |
2022/11/01(火) 22:55:36.13ID:EqpfaKBX0
イテレータ判定されるのにfor できないんですが
イテレータとはforができるものではないんですか


X = type("")
if hasattr(X, '__iter__') :
for x in X : pass
2022/11/01(火) 23:34:09.39ID:yhai460Y0
X(= str)じゃなくXのインスタンスならそう
2022/11/01(火) 23:43:36.24ID:vww+azZz0
覚えないといけない時点でおかしい
理解すれば覚えなくていいのが正解

list.append()は破壊的で、str.replace()は非破壊であることに、
合理的な説明は無い
その方が便利なことが多そうだからとか、メモリの都合とか、
一旦そう決めちゃったからとか、そんな理由に過ぎない
2022/11/02(水) 00:26:44.23ID:WNjxQYpUM
list.appendは配列の終わりにつけるだけ
str.replaceは配列の途中に差し込む可能性があるからでは?
メモリ操作のコストが違うじゃん
2022/11/02(水) 00:47:23.04ID:ul/vZuFO0
配列が格納してある後ろに空きスペースがたくさん確保してあるならそうだろうけど
で、コストが実際に違ったとしてもそんなことは知らんがなでしかない
2022/11/02(水) 00:58:46.26ID:I1Z+o8fX0
みんな知ってることだけど、listはmutableでstrはimmutableだからだよ。
これでもう各関数が破壊的かどうかいちいち覚える必要はなくなったね!
2022/11/02(水) 01:00:03.55ID:WNjxQYpUM
listはある程度後ろに確保してるしコストが実際に違ったらそれは明確に合理的な理由でしょ
2022/11/02(水) 01:17:00.86ID:jyU6y3CY0
>>585
これ
まあそういうものとして覚えるしかないわけだけど
2022/11/02(水) 07:59:09.20ID:cbFKoHcVM
べつに目的の物が作れればどうでもいいんじゃないの?
ミッションクリティカルなモノをコレで作ったりするのかな?
2022/11/02(水) 11:06:12.06ID:FQ1wBQnh0
listに後ろとか関係なくない?
2022/11/02(水) 11:21:15.39ID:1xZXeW2Ya
linkedなリストは関係ないよな
連続したメモリに入ってる配列的なやつはアレだけど
2022/11/02(水) 11:39:42.36ID:FQ1wBQnh0
>>590
str との違いも結局これだし
2022/11/02(水) 14:55:39.24ID:VFt43YlcM
pythonのリストはポインタの配列でしょ?
2022/11/02(水) 18:15:12.19ID:1xZXeW2Ya
違います
2022/11/02(水) 18:27:31.11ID:jyU6y3CY0
PyObject*の配列です

PyObject **ob_item; // PyObject*の配列
Py_ssize_t allocated; // アロケートされてる個数
2022/11/02(水) 18:28:55.28ID:jyU6y3CY0
cpythonなソースは読みやすい
2022/11/02(水) 18:42:15.13ID:ul/vZuFO0
0から255までの数字が入った要素数1000の配列があって、
Cだとunsigned char list[1000];
みたいに宣言してlist[i]で参照するとアドレス計算で値を取ってくるけど、
pythonはどうやってるの?
2022/11/02(水) 18:43:56.47ID:4MCwg8YuM
ちょっと調べた限りやっぱりPythonのリストはポインタの配列だと思うんだが違うっていうなら何か教えて
insertの遅さとかで連結リストではないとは思うけど
2022/11/02(水) 18:51:59.96ID:wyluLqIy0
>>594が正しい
https://github.com/python/cpython/blob/main/Include/cpython/listobject.h
2022/11/02(水) 18:55:42.08ID:jyU6y3CY0
cpythonのソースはマジで読みやすい
Rubyとかもうぐちゃぐちゃしてて読めねえもん
2022/11/02(水) 19:05:34.74ID:jyU6y3CY0
実際の配列のサイズはPyObject_VAR_HEADマクロのob_sizeに入ってる
2022/11/02(水) 19:12:23.01ID:1xZXeW2Ya
>>597
別になんでもいいんです
2022/11/02(水) 19:14:41.69ID:5K2+hbiBa
答え書かれてるのに全く分かってなくて草
2022/11/02(水) 19:30:34.65ID:1xZXeW2Ya
大学行くと実装と仕様の区別がつくようになるかも?
2022/11/02(水) 19:31:01.29ID:l50Y39h10
>>594
つまりポインタの配列
2022/11/02(水) 19:31:44.66ID:ul/vZuFO0
listにappendすると、ポインタの配列の末尾にポインタが追加される
配列のサイズが変わるので、サイズを増やした配列を作ってコピーしないとできない
筈なのに、idを調べると変わらない

**ob_itemに入ってる値は変わるけど、**ob_item自体のアドレスは変わらない
ということ?
2022/11/02(水) 19:33:58.87ID:l50Y39h10
組み込みだから作り直した配列にidがコピーされてたり
2022/11/02(水) 19:36:39.11ID:oCOyjRuB0
VM上は指すオブジェクト変わってないのにid変わったらあかんでしょ
2022/11/02(水) 19:40:00.28ID:rAnbDRgM0
適当にリンクリストあたりかと思ってた
2022/11/02(水) 19:40:29.11ID:ul/vZuFO0
appendしても同じオブジェクトという時点で違和感があるんだよな
明らかに別物やん

仮にappendが非破壊で
list = list.append()
とした時にidが変わる方が納得できる
2022/11/02(水) 19:40:29.75ID:5K2+hbiBa
>>605
逆だよ
ob_item自体は大きさが変わる時にreallocでアドレスが変わるけど
中身の方はポインタをコピーするだけだから変わらない
2022/11/02(水) 19:42:07.37ID:1xZXeW2Ya
>>597
違うって理解できた?
2022/11/02(水) 19:51:27.03ID:5K2+hbiBa
>>609
そもそもが全部Cで実装されてるんだからそういうメモリモデルなんだ、という理解で良いと思うよ
2022/11/02(水) 19:53:06.08ID:4MCwg8YuM
>>611
あなたは何もわかってないのは理解できました
2022/11/02(水) 19:57:27.92ID:1xZXeW2Ya
>>613
わかんない?
違うよ
どんどん主張が後退するんじゃねえかなという期待の下、繰り返すけど
615デフォルトの名無しさん (ワッチョイ 7997-uk66)
垢版 |
2022/11/02(水) 21:11:39.58ID:CsBXjP5R0
リンクリストはリスト的なものを作るときに第一の選択肢としてはこないと思うよ。
任意の要素へのアクセスがO(n)かかるから。
必ず頭から順番に読んで、途中に挿入したいことが多いとかいう状況だったら使うけど、こういう特性を、癖があると思う人の方が多いんじゃないかな。
そういうコンピュータサイエンスの初歩みたいなところの実装が気になるなら、Javaを勉強してみるといいかもね。
リストも辞書もセットも、複数の実装方法が標準で用意されてて明示的にどれを使うか決めなくちゃいけないから。
そう考えると初心者にJava教えてた頃ってコレクションで付いていけなくなり勉強を諦めた人多いんだろうか。
616デフォルトの名無しさん (ワッチョイ 7997-uk66)
垢版 |
2022/11/02(水) 21:16:31.46ID:CsBXjP5R0
>>609
夕飯を食べる前の自分と食べた後の自分は別のインスタンスか?って問いにyesと答えられるならばイミュータブルなものにしかidを付けてはいけないと考えているのだろう(そういう言語もある、Haskellとか)
そうでなければ、ミュータブルなインスタンスはミュータブルなんだからidが同じでも中身は変化すると考えるべきだろう
2022/11/02(水) 21:22:30.41ID:jJasVlr90
idってCでのアドレスそのものなんでしょ
実装の都合でアドレスが変わったらidも変わるというだけの話で、
何らかのポリシーみたいなものは背景に無いような
618デフォルトの名無しさん (ワッチョイ 7997-uk66)
垢版 |
2022/11/02(水) 21:30:55.81ID:CsBXjP5R0
>>617
CPythonではな。(すみません知りませんでした)
しかしGCがかかりまくるVM上で動くPythonの実装もあるから、CPythonではそうっていう認識に留めておいたほうがいいんじゃないかなあ。
2022/11/02(水) 21:42:19.23ID:2orW5ow60
idが変わる/変わらないとミュータブル/イミュータブルは一対一対応?
620デフォルトの名無しさん (ワッチョイ 7997-uk66)
垢版 |
2022/11/02(水) 22:06:28.39ID:CsBXjP5R0
>>619
まず、イミュータブルというのをどう定義するかによると思うけど
(タプルはイミュータブルだが、タプルの中にリストを入れた場合、リストほミュータブルで、リストに変更を加えてもタプルのインスタンスが新しくできるわけではない)
そういうややこしい例を除いても、
イミュータブルならば、値を変えたらidが変わる
値を変えてもidが変わらないならミュータブル
しか言えないんじゃない?
2022/11/02(水) 22:13:30.31ID:F9kh54e50
定義や実装で何がミュータブルかがころころ変わってはいけなくて、
pythonではどんな環境でも同じものがミュータブルであるべき

で、idが変わる/変わらないが環境依存ならば、idとミュータブルは関係ないことになる
2022/11/02(水) 22:18:06.81ID:jyU6y3CY0
わけわからん
2022/11/02(水) 22:20:05.72ID:yCeW62XuM
pythonの辞書ってc++のmapと違って内部でソートされてないからアクセス遅いっぽいんだよね
keysで取り出しても登録した順だし
文字列でも数値でもキーにできるからそういうものなのか
2022/11/02(水) 22:50:50.14ID:rAnbDRgM0
>>615
最後尾への追加削除がO(1)だったからリンクリストだと思ったけど
リアロケートの実装でどうにかそれっぽくなるんだねぇ
全く気にしてなかったけど、勉強になったわ
2022/11/02(水) 22:58:46.37ID:P6hHm0TD0
ループで一つずつappendしていくようなコードは、
溜めておいて一気にどーんで高速化できそう
2022/11/02(水) 23:13:03.99ID:Vdzb0Lkj0
Elixir なんて片方向リストだから、先頭の要素の追加・削除のみ速い。
末尾では全要素をたどる

Ruby は両方向リストだったかな?
627デフォルトの名無しさん (ワッチョイ 8b10-WE8j)
垢版 |
2022/11/02(水) 23:41:13.42ID:d827SSNz0
>>623
pythonの辞書は順番を保持することが仕様で規定されてる
2022/11/03(木) 00:20:58.38ID:gcHdWorI0
3年くらい前からだっけ?
キーバリューやから順番気にしたことなかったわ
2022/11/03(木) 00:37:59.14ID:vWeFXHff0
順番が同じだとセキュリティの問題があるから意図的にランダムにしてなかったっけ
630デフォルトの名無しさん (ワッチョイ 7997-uk66)
垢版 |
2022/11/03(木) 00:45:24.21ID:9oLRzF140
>>624
C++のvectorとか、JavaのArrayListの典型的な実装だと、リアロケートが発生するときに倍ぐらいの領域を予め確保しておく、ってのが普通って読んだな
コードレベルで読んだ訳じゃないから確たるエビデンスがあるわけじゃないけど。
631デフォルトの名無しさん (ワッチョイ 7997-uk66)
垢版 |
2022/11/03(木) 00:49:20.51ID:9oLRzF140
辞書は3.5だかそのぐらいで入れた順になるように仕様が決まったよね
それまではバラバラだったはず
あとソート済みが欲しいならsortedcollectionsがあるんじゃないの
Pythonでパフォーマンス気にするようなコード書いたことないから速くなるかは知らないが
パフォーマンス気になるならもう普通にpybind11よ
2022/11/03(木) 01:13:09.17ID:t2qUW0n10
動的配列は償却計算量の典型例だぞ
2022/11/03(木) 09:06:43.51ID:b87ZSO0X0
半島人w
2022/11/03(木) 13:19:41.92ID:M31+WIXk0
ネトウヨはコードすら書けない
635デフォルトの名無しさん (ワッチョイ 692c-3A4z)
垢版 |
2022/11/03(木) 17:39:13.22ID:JzcJhjtx0
isPrime(n: int):
__for i in range(2, n//2 + 1):
____if (not n%i):
______return 0
__return 1

numPrimes = 0

for i in range(2, 250001):
__numPrimes += isPrime(i)

print(numPrimes)

cとかだと5秒以下で終わると思うんですが
pythonではどうやって高速化できますか?
2022/11/03(木) 17:50:53.27ID:6cc1wOit0
全角スペースでインデントするといい
2022/11/03(木) 17:57:37.28ID:t2qUW0n10
エラトステネスの篩みたいなまともなアルゴリズムを使え
2022/11/03(木) 18:05:57.27ID:pngFKRCN0
>>635
range(2, n//2 + 1) を range(2, int(n**0.5)+1)
にするだけで速くなると言うのは違うか。

n**0.5 は math を import するのが面倒だっただけ。。。
2022/11/03(木) 18:12:13.51ID:Tny9BBIXa
しょーもないネタ振り
640デフォルトの名無しさん (JP 0He5-3A4z)
垢版 |
2022/11/03(木) 18:58:51.96ID:Ppt07bQPH
>>637
言語間の速度差を埋めたいという文脈で
片方により効率的なアルゴリズム使えというのは筋が違うと思う
それやったら相手のCも早くなるやん
2022/11/03(木) 19:15:26.76ID:t2qUW0n10
それはそうだけどPythonをできるだけ速くしようというのは徒労に終わるんだよな
2022/11/03(木) 19:17:29.83ID:5fumPTTR6
>>635
allかanyか使う
2022/11/03(木) 19:45:13.49ID:NbsIPyEs0
>>640
> 言語間の速度差を埋めたいという文脈で
そうか、単にPythonで高速化したいだけに見えるけど?

> pythonではどうやって高速化できますか?
2022/11/03(木) 20:09:45.07ID:6A5YXZlC0
>>635
sympy.isprime()
2022/11/03(木) 20:13:41.27ID:6A5YXZlC0
>>635
そもそもこのプログラムは一行で済む
print(sympy.primepi(250001))
2022/11/03(木) 20:16:42.18ID:gDosIilW0
SymPy無いさー
2022/11/03(木) 22:42:51.75ID:qK/YTuYk0
Numpyさぁ
2022/11/04(金) 11:06:17.40ID:RgN4dMLC0
公式のドキュメント読むと
「pip は推奨されるインストーラ・プログラムです。 Python 3.4 からは、 Python バイナリ・インストーラに最初から付属するようになりました。」
とか見るけど、触る環境どれも最初からインストールされてた試しがなくて手動インストールばっかなんだが
649デフォルトの名無しさん (ワッチョイ 7933-MTQz)
垢版 |
2022/11/04(金) 11:16:46.46ID:+Vzk9d850
>>648
どこのバイナリインストーラ使ってるの?
2022/11/04(金) 11:23:08.55ID:eh042CP4a
>>648
たぶん入ってるけど実行ファイルのパスが通ってないんだよ
2022/11/04(金) 11:26:42.20ID:iSP9CUI40
debianとかはOSのスクリプトを実行するための環境なので
最小限になるようパッケージが分かれている
不便にみえるけどユーザが使う場合はパッケージ外で導入した方が
特定のバージョンも好きにえらべてシンプル
2022/11/04(金) 13:14:21.89ID:xdVLdIYL0
npm/yarn, Ruby のbundler などは、デフォルトでコマンド実行できるけど

多分これらは、デフォルトで環境変数PATH にあるフォルダにインストールされるのだろう
653デフォルトの名無しさん (ブーイモ MMdd-uk66)
垢版 |
2022/11/04(金) 19:16:21.95ID:7+yqrzWjM
>>648
python -m pipするのが安全やで(pipコマンドだと、複数バージョン入ってると意図したpythonに紐づいてないpipが実行される場合がある)
2022/11/05(土) 21:26:42.31ID:MH3sXGrP0
pythonつかって紙に書いた文字判別するとかって簡単にできますか?
2022/11/05(土) 21:34:23.73ID:7lAZ3AaJ0
簡単だけど有料
656デフォルトの名無しさん (ワッチョイ f568-Cw2/)
垢版 |
2022/11/05(土) 21:51:22.37ID:MH3sXGrP0
>>655
無料のライブラリなんかありませんかね?無いんなら諦めます
2022/11/05(土) 21:58:26.55ID:yxkEcNx60
>>654
判別とはどういうことをしたいのかよくわからんけどとりあえず python ocr とかでぐぐればいいんじゃね?
https://gammasoft.jp/blog/ocr-by-python/
2022/11/05(土) 21:58:41.35ID:j6cTC8iG0
自分で無料ライブラリーを作る、しか
2022/11/05(土) 22:07:24.17ID:MH3sXGrP0
>>657
ありがとうございます!
660デフォルトの名無しさん (ワッチョイ d204-ocuO)
垢版 |
2022/11/06(日) 18:38:56.63ID:hWJeexFN0
pythonでなんかかっこいいことがしたいです
でもやることが見つかりません。どうしたらいいですかね
今までポイントサイトをseleniumで自動化したりdiscordのbot作ったり動画編集自動化したりしてきたんですが先というか続きが見えません
2022/11/06(日) 19:03:47.89ID:tSvQZNnX0
PyPIザッピングして良さそうなモジュールみつけてかっこいい応用を書く
2022/11/06(日) 19:05:44.66ID:A20KyXoS0
ラズパイでIoT
リアルの物を動かせると、やれる事の幅が広がるよ
2022/11/06(日) 19:13:43.26ID:hyDfi3PG0
>>660
壁に落書きしてくるのがかっこいいと思ってるんなら大間違いだわw
664デフォルトの名無しさん (ワッチョイ d204-ocuO)
垢版 |
2022/11/06(日) 21:07:15.95ID:hWJeexFN0
PyPIで良さそうなモジュール見つけるってどうやるの?
PyPI サイト見てtrend moduleみたいなの適当に選んで説明見ても詳しい使い方がわからない
2022/11/06(日) 21:15:54.96ID:2BZA6H+N0
電子工作もそうだけど、環境は整いすぎに整ってて、やりたいことがあれば何でもすぐにできる
でもやりたいことが見つからない

さてはみんな環境を整えることを目的にしているな
2022/11/07(月) 06:48:18.34ID:E9VDXcWoM
アホな質問だな~
まずやりたいことがあって、それからツールを探すものだろ
667デフォルトの名無しさん (アウアウウー Sacd-ocuO)
垢版 |
2022/11/07(月) 08:02:58.71ID:jFHCFA25a
その通りだけどやりたいことが見つからないんだわ
もしかすると勉強からの逃避のためにプログラミングという逃げ場を作りたいのかもしれない。やりたいことが自然と出てきたらやることにするよ
2022/11/07(月) 08:09:59.84ID:nVmoLWqcM
遠回りの人生それも人生
2022/11/07(月) 10:49:11.04ID:vghVm0yU0
巨大数の実数計算は最先端だぞ。
2022/11/07(月) 14:36:29.74ID:ns7213lX0
>>654
EasyOCR は?
pytorch必須だが
2022/11/07(月) 14:48:18.41ID:a5k3bCTy0
使い物になるOCRはみんなAIで有料なんだよな
客はDXしたい企業だから高い
2022/11/07(月) 15:15:22.15ID:dmSTAQ160
料金みたことある?業務で考えたらめちゃ安いとおもうが
2022/11/07(月) 15:26:05.72ID:kmERiYaX0
有料OCR知ってる俺スゲー君なんて相手にすんなよ...
2022/11/07(月) 15:26:54.13ID:a5k3bCTy0
OCRしたい書類なんて有限だから、あらかた終わったら需要が無くなる
そしたらgoogle様が無料開放してくれる筈
675デフォルトの名無しさん (ワッチョイ 8101-wRrB)
垢版 |
2022/11/07(月) 15:41:01.53ID:rtBnyCPM0
Pythonが「メインの利用言語」で2位にとどまる、1位に立ったのは定番のあの言語
https://xtech.nikkei.com/atcl/nxt/column/18/02246/110200002/
2022/11/07(月) 15:51:46.76ID:a5k3bCTy0
AIだから教育が必須で、それなりにコストがかかる
こんなもんは公共事業で、どこかが代表してやって、コスト回収できたら無料化する
各国で自分のとこの言語についてやるのが筋だけど、
どうせ日本はやらないのでgoogleがやる
2022/11/07(月) 16:22:49.11ID:a5k3bCTy0
似たようなので、音声からテキストへの変換も金かかる
あれが無料で出来たら過去の膨大な音声や動画の資料が検索したり分析可能になって、
文化が大きく前進するだろうに金がブレーキかけてる
国の事業としてやれば一人頭の負担なんて微々たるものなのに
2022/11/07(月) 16:28:42.14ID:ns7213lX0
この夏whisperが公開されたやろ?
2022/11/07(月) 16:32:21.66ID:a5k3bCTy0
そんなのあったのか
マスク様々やな
680デフォルトの名無しさん (ワッチョイ b18e-ly3j)
垢版 |
2022/11/07(月) 16:46:46.72ID:6QND4EcV0
>>675
Rubyオワコン
2022/11/07(月) 21:52:40.91ID:J6xutGri0
>>677
つまり文字起こし言いたいんだろ?
なんかクソ認識悪いAPIだったら何かあった気がする
2022/11/08(火) 10:16:17.14ID:gvBOR9qA0
半島系帰化人は強姦魔ばかり
死ねよクズ帰化人!
2022/11/08(火) 11:03:03.92ID:NJ3yWFAyM
何でこのスレで暴れてるんだよ
2022/11/08(火) 11:17:25.58ID:Z/fTsurM0
壊れちゃったんだろ
2022/11/08(火) 14:10:32.60ID:SId0EMb3a
ランダムに書き込んでるbotだよ
686デフォルトの名無しさん (ワッチョイ 5e63-xcLn)
垢版 |
2022/11/08(火) 19:27:53.62ID:h+Zmgne00
有料と言ってもgoogleAPIってかなり安いと思うんだけど
手持ちの本数十冊OCRして1,000円いかなかった気がする
2022/11/09(水) 17:03:12.36ID:a7tugATP0
某有名ゲーム会社で働いてる友人が、「Pythonではあまりクラスを使うべきではない。
それほど高度なプログラムでなければ関数を使えばいい」と言っていたんですが、
そうなんでしょうか?
皆さんの意見を聞かせて頂きたいです
2022/11/09(水) 17:08:46.66ID:F89FAkjE0
関数でできればいいけど、引数たくさん渡したり、グローバル変数で渡してたり、
みたいな汚いことするくらいならクラスがいい
689デフォルトの名無しさん (ワッチョイ 1997-OSgl)
垢版 |
2022/11/09(水) 17:30:19.69ID:PaG6ZUsK0
Javaのようになんでもかんでもクラスを作る感じじゃないというのは事実。
でも、dataclassとかnamedtupleとかは使うかな。
とはいえやることによると思う。
2022/11/09(水) 17:30:52.94ID:ugvw1ns9a
状態を持つオブジェクトを扱うならクラスは必然なのでは
2022/11/09(水) 18:12:18.95ID:uDSXzENKM
pythonはメンバ変数にself必須なのがダルい
メインプログラムまでクラス化する必要はないと思う
規模が小さければモジュール変数をグローバル変数のように使うのが便利
vscodeならインテリセンス利くし
2022/11/09(水) 18:40:16.27ID:cOB3Ubn30
>>687
プログラム水準(?)の高低でなく、実行速度の遅速でそう言われるのを聞いたことはある。大昔ね。
事実かは知らぬ。
2022/11/09(水) 18:59:13.95ID:2JAkKfpeM
>>687
使うべきでない理由をなぜ聞かなかったのか?
それを書けば話は終わる
君の友人ほどスキルのある人はここにはいないからな
2022/11/09(水) 20:24:05.09ID:FPtq7UfL0
>>687
必要になるまで不要なもので汚すな
シンプルに書けってことかと
2022/11/09(水) 20:51:46.35ID:yZGUhxlRM
>>691
だなselfを二文字くらいの別名に出来ないのかな?
2022/11/09(水) 20:56:49.26ID:F89FAkjE0
perlから来たからselfは当たり前だと思ってる
2022/11/09(水) 21:06:27.04ID:EoOj57gu0
開発者間で同意取れるなら
ただの関数の引数だから好きに変えられはする
2022/11/09(水) 21:10:50.26ID:5c+x4O200
>>687
理由を示さないお作法は無視していい
2022/11/09(水) 21:21:40.38ID:uDSXzENKM
グローバル変数用のファイルを作ってas gでインポートってのをqiitaで見たけどかなり便利
g.nameみたいにアクセスする
2022/11/09(水) 21:30:42.42ID:F89FAkjE0
それは他に影響しないというだけで、グローバル変数の欠点は何も解決しない
作って使ってすぐ捨てるならいいけど、保守が必要なら時間かけてシンプルにしとかないと
2022/11/09(水) 21:48:48.07ID:dM0Gb0+w6
>>695
すればいいじゃん
2022/11/09(水) 21:57:03.34ID:uDSXzENKM
グローバル変数はプログラム全体を通した設定値とかに使うもんじゃない?
それこそメインプログラムにとってのselfよ
変に引数取りまくるより可読性高いと思う
規模にもよるんだろうけど
2022/11/09(水) 22:03:03.05ID:F89FAkjE0
configを読んでグローバルに格納してmain()を呼ぶ
みたいな作りになってるのが多い
うちのスクリプト
2022/11/09(水) 22:10:05.03ID:EoOj57gu0
設定値の保持ならぜんぜんOK
状態を丸見えで管理できないとこに置くなってことでしょ
2022/11/09(水) 22:13:24.86ID:F89FAkjE0
関数の中に下請け関数があって、
なんかごちゃごちゃしてきたからリファクタリングだと外に出したらスコープから外れたので、
じゃあみんなグローバル化したれ、みたいにglobal付けて誤魔化す
2022/11/09(水) 22:23:48.43ID:dM0Gb0+w6
せめてconst できればいいのに
2022/11/09(水) 23:03:08.26ID:a3eCQ+jX0
>>687
どうせ、いたずらにclassを多用したゴミトランプゲームを
見せたんだろ?いつまでも練習だからって言って、設計もしないで
ゴミコードを見せ続けるから嫌われかけてるんだよ。
2022/11/10(木) 00:21:13.04ID:8bOle1Do0
クラス化するのは、言語のタイプやプロジェクトの規模ではなくて
データ同士の相関を元に、見通しをよくすることが目的だと思う
あるいは自分用ライブラリとしてカプセル化しておきたいとか
そういう話を置いて、やらない方がいいレベルの問題があるのかw
2022/11/10(木) 00:21:46.71ID:a0I25TkAM
>>687
理由を示せないお作法は取るべきでない
2022/11/10(木) 00:24:11.32ID:KkTOa1Su0
>>687
おまいは友人に言われた事を何でも信じるのか?
この洗剤飲めるの。by アム・○○ぃ
2022/11/10(木) 00:27:36.22ID:OBeQnBIU0
匿名掲示板で聞いて得た答えを信じるというのもどうかと思う
2022/11/10(木) 00:32:26.74ID:ofaAiG0L0
レスしてくれた皆さんありがとうございます
参考にさせて頂きたいと思います

>>689
CUIの簡単なカードゲームではどうでしょうか?

>>693
失礼しました
曰く「クラスを下手に使わない方がコードが無駄に複雑にならなくてよい」
からだそうです

>>694
まさにそんな感じです

>>698
ちょっと彼に悪いかなって…

>>707
ゴミときたもんだ
彼の人柄はそんな感じじゃないよ
2022/11/10(木) 10:45:10.57ID:S46ME7RY0
ねえ、openpyxlとかでオンライン上のExcelファイルを修正できないの?
2022/11/10(木) 10:49:29.30ID:+lvrwnnZ0
どこかのクラウド(どこ?)に置いたファイルの意味なのか
Office365で作成したファイルなのか
2022/11/10(木) 11:02:13.25ID:ci7p4+PJa
どっちにしても手元に持ってこないと厳しいんじゃないかねえ
2022/11/10(木) 11:46:55.13ID:rDE3wZvsM
関数とクラス両方使えるのがpythonのメリットなのだから、常に適切な方を選べってことじゃないかと。
2022/11/10(木) 11:47:43.94ID:rDE3wZvsM
>>695
好きな名前をつけていいのよ。meとか
2022/11/10(木) 13:09:31.60ID:ci7p4+PJa
abcを使わないとできんことはあまりやりたくないねえ
2022/11/10(木) 13:26:04.03ID:tUNuHkwK0
abcは知ってても
2022/11/10(木) 13:50:13.84ID:99QPf7Vaa
>>716
> 関数とクラス両方使えるのがpythonのメリットなのだから、常に適切な方を選べってことじゃないかと。
なら初めからそう言えや
まあそう言われたら適切な方の決め方について小一時間は問い詰めたいけどなw
2022/11/10(木) 15:41:21.49ID:avJI0YX/0
>>713
teamsで出来るぞ
2022/11/10(木) 16:33:33.24ID:99QPf7Vaa
>>721
マジで?
やり方教えて
2022/11/10(木) 16:41:09.55ID:avJI0YX/0
>>722
teamsに申し込んでoffice365に申し込めばクラウド上でエクセルが使えます
724デフォルトの名無しさん (ブーイモ MMd5-OSgl)
垢版 |
2022/11/10(木) 17:38:31.76ID:aw2UCTg8M
>>712
カードゲームならカードクラスは作ったほうがよさそう。
あとはカードゲームのルールによる。
2022/11/10(木) 18:14:06.31ID:y5PDmjdo0
>>724
687が戒めたいのがまさに724みたいな馬鹿野郎なんだろうな。
目的と手段が入れ替わってclass考えて作るのに必死になる馬鹿。
2022/11/10(木) 18:34:12.90ID:RApG3JqD0
カードクラス作ってもいいけど、同じカードが存在しない、記号4つと数字1〜13の組み合わせの
ものにクラスがいちいちいるかな。
カードクラスはカード1枚を表して、なにができればいいんだ?

記号クラスがあって、各記号クラスがあって、ナンバークラスがあって、
is_MarkMatchとかis_NumberMatchとかもってんの?
idとprintがあればいいのかな。まあいいけど、そんだけのために
classいちいち用意するのめんどくない?
複数枚のカードを扱うcardsクラスなのかな?機能はいろいろ持てそうだけど
ゲーム固有すぎてどうなのかな?
2022/11/10(木) 19:12:07.27ID:/sng0JalM
可読性考えるとクラスのほうが良いわな
自分だけが使うなら好きに作ればいい
2022/11/10(木) 19:17:47.15ID:tUNuHkwK0
自分だけが使う場合でも後々困る
読みにくくていいのは再利用しないと判ってる場合
729デフォルトの名無しさん (ワッチョイ 1997-OSgl)
垢版 |
2022/11/10(木) 19:47:31.93ID:eS5awfmL0
>>725
689だが、トランプはクラスを作った方が(少なくともnamedtuple,dataclass)便利だと思うぞ
>>726
記号クラス、番号クラスなんて作らない
記号はenum、番号はそのまま1~13でいい
が、どの記号が黒だ赤だ、どの番号が絵柄か(JQKA)
みたいなのはたとえインスタンスが一個でもメソッドになってた方が便利だと思うけどなあ。

カードは内部表現とUI上の表現が異なるのが自然だし、そういう意味でもクラスにしておくのは悪くないと思うが

クラスにしすぎてもしょうがないというのは、ゲームのルールをクラスにして共通のインタフェース持たせて、バリエーションを切り替えられるようにしても大抵は仕方ないみたいなことだよ
もちろん、どんなゲームシステムを作るかによるし、ルールを共通インタフェースで入れ替えられるようにするメリットがある場合もあるけど
2022/11/10(木) 20:15:59.37ID:1wmpgP/ea
>>726
ちょっと発想が変だよ
2022/11/10(木) 20:18:11.54ID:TQxJo3Q4M
全てユースケース次第じゃね
13×4のブール配列で持っていたほうが都合がよい場合もあるだろうし
2022/11/10(木) 21:05:35.45ID:tUNuHkwK0
とりあえず作って、必要に応じてリファクタリングしていけばいい
733デフォルトの名無しさん (ワッチョイ b12c-rDMU)
垢版 |
2022/11/10(木) 22:35:47.17ID:SvDTIviz0
カード型のインスタンスを生成するデッキクラスを作りたいやん

deck.suffle()
hands = deck.draw(5)

みたいなさあ
あとは各ゲームで処理つくろ
2022/11/10(木) 22:41:30.18ID:tUNuHkwK0
カードのリストでよくね
2022/11/10(木) 23:28:06.08ID:ofaAiG0L0
多くのレスを頂き、ありがたく思います
ちょっと自己顕示欲が強い気もしますが、俺のGitHubを公開させて頂くので、
よろしければご覧下さい
https://github.com/masa-gh/practice
のblackjack_3.pyがそれです
これでもクラス使わないで書けるのかな…
2022/11/11(金) 00:15:20.89ID:ajyQllPs0
力作だね

友人のアドバイスは痛いほどよく分かる
クラス云々よりも「ここからメインの処理」以降の各処理を関数にまとめるほうがずっと大事だよ
2022/11/11(金) 00:21:32.63ID:gNt5qX/T0
1関数がでけえ
ということを言いたかったんだろう
2022/11/11(金) 00:23:24.86ID:Zi2NVkwv0
マサくん
739デフォルトの名無しさん (ワッチョイ 5e10-420S)
垢版 |
2022/11/11(金) 00:52:49.95ID:5ErmYwLs0
何のためにでっかい関数の中にクラス作るのか分からん
この設計センスなら友人のアドバイスは正しいな
2022/11/11(金) 00:55:17.73ID:n0j9oGtca
blackjackで囲むのって意味あんのかね
2022/11/11(金) 01:14:49.41ID:9Wk/PRlY0
レスありがとうございます

>>708
クラス使った方が見通し良くなりますよね?
スッキリJavaにもそう書いてありました(Pythonの本ではないですが)

>>709
複雑にならない方がいいからだそうです

>>710
ええ、ですので皆さんの意見をお聞きしたんです

>>711
うーん、明らかにプロと思われる方の書き込みもありますし、
信じられるレスはあると思います

>>716
ただ彼の主張では、なるべくクラスは使うな、ということでした
Javaを独習した経験がある俺からすると、少し疑問符が付くのです
2022/11/11(金) 01:21:10.00ID:n0j9oGtca
クソクラスをクソと認識できるためにもそれなりの能力が要るからね
2022/11/11(金) 01:28:18.01ID:9Wk/PRlY0
>>724
そうですよね
カードのクラス作りました

>>726
複数枚のカードを持つCardクラスです
ブラックジャックなので、A・J・Q・Kの値は別に決める必要があります

>>727
可読性は重視したいです

>>736
そう言って頂けると大変ありがたいです
やっぱりそこは1つの関数にまとめた方がいいんですね

>>737-740
それも友人に、グローバル変数は少なければ少ないほどいい、と言われたのを
受けてのことです
2022/11/11(金) 01:39:45.03ID:tK9Svk7P0
>>735
ざっと見た感じ、そりゃ色々言われるわ
クラス云々言ってるのに、blackjackっていうデカい関数の中にクラス切ってる時点で吹いたわ

あとクラスの役割分担というか、所属してる関数もおかしく感じるわ
プレイヤークラスっていう名前なのに、にルール関係のスコア計算、バースト判定とかが入ってるし
それこそblackjackのルールを管理をするクラスを作る方が自然だべ

あともうし自分で書くとしたら、ルールクラスにis_winっていう関数作って、そこで勝利判定してtrue/falseで返すわ
最後に全パターンで人間/CPUに対して勝利判定かけてるけど、参加プレイヤー/CPUが増えた時の勝利判定の実装とか
これベースだと面倒だろうなって思った
2022/11/11(金) 01:43:33.89ID:tK9Svk7P0
>>743
>グローバル変数は少なければ少ないほどいい
これはまず変数のスコープは狭い方が良い、っていう話だぞ
(グローバル変数だとそれこそスコープが広くてどこで書き変わるのかが不明瞭になるから、なるべく使うなって言われてる)
バカデカい関数を作るって何の解決にもなってねえwwwwwww
2022/11/11(金) 05:10:58.43ID:dIH3TsNBM
使い回さないのに関数化やクラス化する意味ってあるんだろうか
2022/11/11(金) 06:45:32.82ID:fLgBQpEC0
is_<動詞> ってたまに見るけどどこかで流行ってるの?
2022/11/11(金) 07:35:28.77ID:BuWtLPbxM
>>746
この業界には、「一処理は100行に収めるべし」という格言があってな
つまり100行以上の処理があったら、100行以内にぶった切って関数にして順次呼ぶべしってことなんだよ
理由は知らん
2022/11/11(金) 08:51:38.78ID:QYmFVFm/a
まあ分割っていうか処理に名前つけろやって感じだな
抽象的に書こう
2022/11/11(金) 09:56:03.89ID:gNt5qX/T0
でかい関数はあれもやってこれもやってになってるから、
それを機能毎に分割すればいいだけ
1箇所からしか呼ばれない関数がいくつもできるけど、それは問題ない

うまく作ってあれば、関数の戻り値を次の関数に渡すだけ、みたいなシンプルな構造に自然となる
それぞれの機能が変数をいろいろ共有していて切り分けられなかったら、元々の書き方が悪い
2022/11/11(金) 10:26:37.58ID:XH1qJoq+0
pythonではクラスをあまり作らないほうがいい、じゃなくて
お前にクラスは百年早い、って言いたかったんだろその友人は。
碌に関数も作れないのだからクラスなんて無用の長物。
2022/11/11(金) 10:31:34.23ID:PAETAgDl0
昔、関数ごとに仕様書作成が必要な現場があって、それを嫌って
ほとんどの関数が200行を超えるサイズで書かれる様になった
2022/11/11(金) 11:00:27.63ID:gNt5qX/T0
テストができんやろ
2022/11/11(金) 11:32:04.24ID:dIH3TsNBM
文書をアウトライン化するような感じで使うのね
メンテのときに不要な部分を読み飛ばせるのがメリットか
2022/11/11(金) 11:49:07.64ID:VSBKZoKf0
何か楽をするためのプログラムを作るのはいけるけど、
サイトの仕様変更で動かなくなったときの修正が苦痛だな、、
そのまま放置になりがち、、
2022/11/11(金) 11:59:14.38ID:gNt5qX/T0
スクレイピングはそのうち廃れる気がする
元データがあって人間用に加工して表示したものをまた元データに戻さなくても、
最初から元データで公開した方がお互い楽なことに気づき始めた
2022/11/11(金) 12:00:41.38ID:L/uUC/Rw0
C++でキー処理が数百行で、しかもファンクションキー毎に少しづつ違う
という構成のものを改修させれて辟易したことある
もしや、行数で成果が評価される現場だったのか
2022/11/11(金) 13:05:05.34ID:XH1qJoq+0
>>756
人間向けのHTMLを解析すれば無料なのにAPI経由は有料ってのも多いしな。
2022/11/11(金) 13:20:52.45ID:wT5HNNmtr
Python勉強してるけどどうやって初心者の粋を超えたらいいのかが分からない
何か作りたいけどその何かが思い浮かばないし
自動で巡回してエロビDLするとか電子書籍自動でスクショとかできるんだっけ?
2022/11/11(金) 13:23:31.34ID:RyfBFStrM
やってから聞けばいいのに
2022/11/11(金) 14:22:12.06ID:Pyb1B8zp0
>>759
早速思い浮かんでるじゃん
誰かができないと言うからやらないというなら何の勉強にもならない
明確な目的が無く勉強自体が目的なら機能しないゴミしか作れなくても意味があるし思い浮かんだもの全部作ればいい
762デフォルトの名無しさん (ワッチョイ 1933-pSqO)
垢版 |
2022/11/11(金) 14:23:36.91ID:JQ5LhQOs0
>>756
もしかして、APIが存在しない世界から来た方ですか?
763デフォルトの名無しさん (ワッチョイ 1933-pSqO)
垢版 |
2022/11/11(金) 14:29:46.62ID:JQ5LhQOs0
別に既にあるものでも構わないから、何か作りたいというモチベーションがある内に色んなものを作った方がいい
独学は特に大事
764デフォルトの名無しさん (ワッチョイ 1933-pSqO)
垢版 |
2022/11/11(金) 14:34:12.48ID:JQ5LhQOs0
途中で奥ちゃった
そしたら、次に何か新しいもの作りたくなった時に何が足りないか自分で調べられるぐらいにはなってると思う
2022/11/11(金) 15:20:48.12ID:KvbVlUc20
奥り人なんだな
2022/11/11(金) 19:48:45.92ID:acI+Bjnd0
クラスを設計するのはものすごく難しい
作り始めないとわからないことも多いし
途中で仕様が変わったりしたら
簡単に破綻する
大きなプロジェクトでは
途中でクラス構成を変えることは
困難なので
しばしば大変なことになる
2022/11/11(金) 21:01:39.50ID:BuWtLPbxM
>>759
この前も同じこと言ってる人がいたよ
作りたいものがないのでなんかアイディアないですかって

まず、何のためにPythonを勉強しているのか聞きたい
普通は作りたいものがあったり、仕事だから、課題だからという
動機があるはずなんだ
動機もなく身に着けられるものじゃないよ。プログラミングは一応専門技能だから
2022/11/11(金) 21:43:58.80ID:zIrG+C10M
自分探しして働かない奴と同じだよな
2022/11/11(金) 21:51:56.55ID:7hjsWVqY0
>>766
最初から完璧な要件・設計で開発なんて不可能だから
途中で構成変わる前提で組み立てるんだよ
クラスに限った話じゃないけど
2022/11/11(金) 22:08:17.04ID:dIH3TsNBM
インスピレーションを得るなら多くの作品に触れることでしょ
2022/11/11(金) 22:16:07.93ID:PAETAgDl0
プログラムやりたいと思った動機ってそれぞれあるだろう
2022/11/11(金) 22:26:55.54ID:6yLWq/6IM
ズボラほど上達が早いように思う
やりたくないことは全部コンピュータにやらせたい
2022/11/11(金) 23:18:07.02ID:ywa4HP4la
現実は必死に努力してQiitaにちょっとやってみたーみたいなこと書いてるやつばっかりだけどな
2022/11/11(金) 23:19:39.80ID:ywa4HP4la
部品の置き換えが利くってのは完璧なプログラムとほとんど同義だね
具体的にねっちょりと書くしか無いこともあるけど
775デフォルトの名無しさん (ワッチョイ 2389-UXd1)
垢版 |
2022/11/12(土) 11:00:15.35ID:jZf8/3In0
質問です。
これをヘッドレスモードで動かしたいのですがどうするといいでしょうか?

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
browesr = webdriver.Chrome(ChromeDriverManager().install())
776デフォルトの名無しさん (ワッチョイ 2389-UXd1)
垢版 |
2022/11/12(土) 11:41:37.67ID:jZf8/3In0
すいません。
解決しました。

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.options import Options

options = Options()
options.add_argument('--headless')
browesr = webdriver.Chrome(ChromeDriverManager().install(), options=options)
browesr.quit()
2022/11/12(土) 13:03:04.39ID:FJxDQgNh0
ちゃんと終わってる筈なのにタスクマネージャに残るんだよな
2022/11/12(土) 14:06:44.73ID:QoJFyqg+0
async関数の終了を2箇所で待つ方法は無いですか?
普通にawaitを2回使うと既にawaitedした処理だぜってエラーが出ます。
2022/11/12(土) 14:23:25.37ID:ToW7pe8/0
答えは持ち合わせてないけど同じことを考えたことあるな
2022/11/12(土) 14:24:45.91ID:T1+EK47n0
エラーなんか無視する
2022/11/12(土) 15:22:28.94ID:QoJFyqg+0
>>780
エラー握り潰しても、肝心な処理待ちが出来ないので駄目です。
2022/11/12(土) 15:46:37.70ID:AXYSbt7W0
メモ化する関数でラップ
頻発するならデコレータ書く
783デフォルトの名無しさん (ワッチョイ c597-AMkR)
垢版 |
2022/11/12(土) 15:58:01.40ID:pkT2sKDg0
>>756
廃れないよ。Webって広告で成り立っている基本人間向けの情報発信ツールなんだから、人間向けのデータ(文章とかね)のスクレイピングは依然として残る。
APIは有料というのは広告収入につながらないから割と当たり前の話で。
利益を目的としないデータ公開はオープンデータ化していくだろうけれど、そういうのって政府や自治体のデータ公開、大学などぐらいしか基本的にはないだろう。
2022/11/12(土) 15:59:27.93ID:QoJFyqg+0
>>782
メモ化だと結果は再利用できますが、同時に待つことができないように思います。
2022/11/12(土) 16:11:11.71ID:2L2Z04CZ0
>>778
task = asyncio.create_task(async_fn())
result = await task
result = await task
2022/11/12(土) 17:58:24.29ID:QoJFyqg+0
>>785
うまく行きました! ありがとうございます!
TaskというのがJavaScriptのPromiseみたいな事してくれるんですね!
2022/11/13(日) 15:06:45.34ID:mAjRS9pi0
なんでOpenCVはちょっとしたことでぶっ壊れるんですか?
2022/11/13(日) 19:56:00.79ID:S7gZHHW/
_max=7
_min=3
a=2
if a>_max:
 a=_max
elif a<_min:
 a=_min
print(a)

これってもっとスマートに書けませんでしたっけ
2022/11/13(日) 20:10:07.19ID:S7gZHHW/
ちなみに0を含む自然数で
range(_min,_max,1)
です
これの範囲外は判定できるのですが
_minより小さく外したのか、_maxより大きく外したのか
って一行で短く書けなかったかな、と。
記憶違いかもしれません、無かったような気がしてきました
790デフォルトの名無しさん (ワッチョイ 4b10-TWxH)
垢版 |
2022/11/13(日) 20:12:10.16ID:cgKyROyF0
a=max(min(a,_max),_min)
2022/11/13(日) 20:16:44.58ID:S7gZHHW/
>>790
できました!!
そうですこれです!

_max=7
_min=3
for i in range(10):
 print(i,max(min(i,_max),_min))

ありがとうございます!!
2022/11/13(日) 20:31:52.48ID:J0JT7kUN0
>>787
それ依存関係が壊れてるからじゃね?
2022/11/13(日) 20:32:48.89ID:xH4HHaxN0
最近excelで、答えがマイナスなら0にする、という処理がめんどくさいと思ったけど、
max(0,x)でシンプルに書けた
2022/11/13(日) 20:47:55.89ID:ZI0YVyVbM
>>790は一見何をやっているのか、やりたいのかわからんし
メンテナンス性が悪そうだ
>>788の方はわかるし改造しやすい
コードは短ければ良いというものではないな
2022/11/13(日) 21:04:49.96ID:xH4HHaxN0
やりたいことをまず自然言語で書く
minとmaxの範囲内ならそのまま出力
範囲外ならばminとmaxでガードする

これだけの情報量があるので、コードがそれなりの長さになって当然
2022/11/13(日) 21:55:42.10ID:tnJyg4LP0
コードゴルフは面白いけどコミットはしないで欲しい
2022/11/13(日) 22:26:40.02ID:0j2qr49h0
>>788
np.clip(array, _min, _max)
798デフォルトの名無しさん (ブーイモ MM69-AMkR)
垢版 |
2022/11/13(日) 22:58:00.99ID:6O/r8caVM
何がコードゴルフかはジャンルにもよるよなあ。シェーダーなんかだとminmaxみたいなのは常套句みたいなものだし、
pythonの内包表記もちょっと凝り出すとコードゴルフ的になる。コーディングガイドラインがあればいいけどね。
2022/11/13(日) 23:21:42.99ID:m9TsWVuY6
>>794
さすがにこのくらいはグラフ考えて分かってよ
800デフォルトの名無しさん (ブーイモ MM69-AMkR)
垢版 |
2022/11/13(日) 23:47:29.33ID:6O/r8caVM
まあ、minmaxの良くないところは、慌てて順番反転させたりする事故が起きると何もクリップしてくれなくなるところなんだけど(良く使うなら関数化しておくべき)
とはいえ、minmax的なのNGって、関数型言語全否定に近いものがあると思うんで、その立場でいいのかは考えるべきだと思うけど。
もちろん手続き型メインのPython使ってるんだからPythonではそんなのお門違いだという意見も否定はしないけど
2022/11/14(月) 00:16:33.72ID:RdGM128m0
maxとminでもいいと思うけど
頻繁に使うならclamp(val,lo,hi)みたいな関数作ればいい
802デフォルトの名無しさん (ワッチョイ ad2c-WM47)
垢版 |
2022/11/14(月) 02:35:12.38ID:Msnzn9MH0
初コメです。質問させてください。
ウィジェットに、押すとnotepad.exeを起動するボタンを作ったのですが、起動したテキストに文字を書き込む(テンプレート)ボタンを作りたいのですが、どのようにすれば良いでしょうか…
2022/11/14(月) 06:45:05.17ID:gWXr0Wl00
>>802
PyAutoGUI
内容次第ではPythonやめてAutoItだけの方が楽
2022/11/14(月) 08:17:37.42ID:z4y/4erZ0
AutoItとかAutoHotKeyとかキーボードやマウスをプログラムから操作して
自動化するツールはいろいろあるけど、
どれが最強なのか今ひとつ判らない

簡単にする為に出来ることを減らしていたり、
いろいろできるけど言語仕様が原始的すぎたり
pythonと同じ書き方ができて出来ないことがないのが理想
2022/11/14(月) 11:56:34.09ID:EWF0SvAna
対象のプログラムやウィンドウが背面に行ったり最小化されててもちゃんと動くかどうかで選べばいい
2022/11/14(月) 12:07:38.76ID:K3emCbowa
対象プログラムが背面にあっても動くってウインドウハンドルにSendMessageを直接送る感じ?
2022/11/14(月) 13:25:46.58ID:99fRleugr
windowsのアプリをバックグラウンドで起動して動かすようなのが出来たらなぁ
マウス取られるから他の作業できないんだよね
808デフォルトの名無しさん (ガックシ 0669-AMkR)
垢版 |
2022/11/14(月) 15:23:33.25ID:yiG7YfVR6
WindowsをVMに入れるか、リモートデスクトップ複数人ログイン対応のWindowsならフォアグラウンドでも実質バックグラウンドにできるから困らなさそうだ
Win32APIを直で叩きまくればバックグラウンドでも動かせるような気がしないでもないけど、イベント処理のメインループが回るかは謎だね。全然詳しくないや。
2022/11/14(月) 21:26:19.81ID:LuassWmg0
>>790 がメンテ性悪いとか言う人は
プログラマー向いてないと思うの
2022/11/14(月) 21:33:59.91ID:z4y/4erZ0
temp = min(input, upper_limit)
output = max(temp ,lower_limit)
これを合体させただけなんだけどな
2022/11/14(月) 21:55:04.23ID:aUHlXgrZ0
関数化せずにインラインでそれ書いてきたらレビューでハネる
2022/11/14(月) 21:57:02.78ID:CWXyQGgF0
頻度次第
2022/11/14(月) 22:11:36.21ID:gxurLVtj0
>>809
まあ適宜空白入れろよとは思う
a = max(min(a, _max), _min)
2022/11/14(月) 22:20:44.64ID:xHaIXgz6M
>>810
そもそもmaxの中にminがある時点で頭がおかしくなる俺の場合
2022/11/14(月) 22:25:56.00ID:SUeRZblV0
import ctypes
SendMessage = ctypes.windll.user32.SendMessageW
hWnd = ごにょごにょ
pos = (y << 16) + x
SendMessage(hWnd, 513, 0, pos) # WM_LBUTTONDOWN
SendMessage(hWnd, 514, 0, pos) # WM_LBUTTONUP

>>806
こんな感じかな
どのみち、どう処理されるかは相手次第になってしまうけど
背面とか最小化とか、最悪トップに出てきたり
816デフォルトの名無しさん (ワッチョイ 4b10-TWxH)
垢版 |
2022/11/14(月) 22:50:26.22ID:dRHiUVHI0
>>813
それは自動整形機能の仕事で人間が気遣うことではない
817デフォルトの名無しさん (スップ Sd03-WM47)
垢版 |
2022/11/14(月) 23:20:28.77ID:XZXiqJkqd
>>803
pyautoguiで一歩進みました!ありがとうございます!
2022/11/15(火) 01:47:11.37ID:qykSWSRkM
>>810
その2行なら受け入れるけど合体させるのは意味はないじゃんって思うよ
2022/11/15(火) 01:54:09.53ID:JTzzJATw0
関数名と変数名を工夫すれば良いと思う
_付けるだけでそれを区別するのはちょっと
820デフォルトの名無しさん (ワッチョイ c597-AMkR)
垢版 |
2022/11/15(火) 01:57:43.67ID:7joAI/8k0
>>818
それは、+=や、f.write(','.join([若干長い内包表記]))が許されるかみたいな話とも繋がっていて、
ぶっちゃけ何度も出て来ればこんな簡単なのは1行にしたくなると思うよ
内包表記だって1行で書きたいから書くって側面もあるわけじゃない。
2022/11/15(火) 04:53:39.40ID:Ohwd0nE10
>>816
掲示板に書く時におまえが気遣えよって言う指摘だぞw
2022/11/15(火) 05:06:14.63ID:9j9A/xThM
a = range_ni_osameru(_min, a, _max)

どや!
2022/11/15(火) 07:01:01.67ID:+rxWDVlZ0
def range_ni_osameru(_min, a, _max):
 return _min if a < _min else a if a < _max else _max

こうかな!
2022/11/15(火) 07:23:39.25ID:GEd0aXfXa
>>823
俺なら
return _min if a < _min else _max if _max < a else a
って書くかな
2022/11/15(火) 07:58:14.56ID:gBqAZwZY0
行数というよりは、中間の変数を登場させたくない
合体させるにしても、後ろに繋げていく方式とネストを深くしていく方式があって、
ネストだとどうしても可読性を損なう
2022/11/15(火) 09:57:28.98ID:8PAOVKkjr
普段可読性重視だけどリスト内包表記だけは速度変わりすぎるから超複雑にしちゃう
2022/11/15(火) 10:05:08.85ID:gBqAZwZY0
100倍変わるなら考えるけど、倍程度ならどうでもいい
2022/11/15(火) 10:09:34.58ID:UuLVn12M0
内包表記も+=も三項演算子もlambdaも、(言語設計者に対して)日和って半端なもん入れてんじゃねーよって思う。
2022/11/15(火) 11:23:10.48ID:kX2rkZkfM
lambdaは1.0からあったような
2022/11/15(火) 11:40:36.69ID:f326q+3ca
ごてごて書けるラムダを入れないのは良心を感じるけどなあ
831デフォルトの名無しさん (ガックシ 0669-AMkR)
垢版 |
2022/11/15(火) 11:49:44.03ID:Hm3rex5D6
>>827
処理時間がめちゃ長くて100倍速くしたいならそもそもCythonとか考える
処理時間ちょっとイラッとするぐらいだったら内包表記で倍速くなれば十分なので内包表記止まりかな
2022/11/15(火) 12:21:34.90ID:8tiGCKxN0
サンプルコードがlambdaで書かれがちなのもあって
その場で関数定義できるの知らずにごてごて書くケースよく見かける
悲しい
2022/11/15(火) 12:29:38.05ID:UuLVn12M0
なるほどlambdaに関しては色々意見あるな。半端な知識で物言った俺が悪かったわ。
2022/11/15(火) 12:41:30.32ID:LyOwpv5bM
ランバダはアローより判りやすいとは思う
835デフォルトの名無しさん (アウアウウー Saa9-hD5E)
垢版 |
2022/11/15(火) 15:38:19.98ID:0yW3pQONa
Pythonやるならまず「多重継承」な!

なぜ多重継承かというと、自然言語処理において語句の意味は「文脈」によって異なるからだ!

随意筋  不随意筋
  ↖   ↗
   チンポ

チンコの随意筋と不随意筋
http://d.hatena.ne.jp/tottokotokoroten/20130516/1368716650

https://mobile.twitter.com/daikidomon/status/1385368820240437248

土門大貴/Daiki Domon
@daikidomon
Pythonの多重継承がわかりづらい。
継承クラスの左のクラス名を指定とかあたおか。
https://twitter.com/5chan_nel (5ch newer account)
836デフォルトの名無しさん (アウアウウー Saa9-FFna)
垢版 |
2022/11/15(火) 16:33:43.21ID:QGmQMBHUa
>>827
30分かかるループの中心で何度も使われてたら
倍速になったら15分短縮出来るし
100分の1なら数秒で終わるんだが
837デフォルトの名無しさん (アウアウウー Saa9-FFna)
垢版 |
2022/11/15(火) 16:35:27.51ID:QGmQMBHUa
>>828
内包表記: あり
+=: あり
lambda: あり

三項演算子: お前は遺憾
2022/11/15(火) 17:03:46.50ID:gBqAZwZY0
とりあえず読みやすいように書いて、速度で困ったら考える
2022/11/15(火) 21:46:19.64ID:9SlnRoJw0
>>837
内包表記? あり
:+= ? あり
:lambda ?あり
:三項演算子?お前は遺憾
:以下略
ということですね
2022/11/15(火) 21:56:48.23ID:gBqAZwZY0
C言語とかの伝統的な三項演算子と違って、
pythonのはなかなかいけてると思うけど
2022/11/15(火) 21:57:19.12ID:UuLVn12M0
他の言語なら三項演算子は大好きなんだけどPythonだと異物感がある
842デフォルトの名無しさん (ワッチョイ 4b10-TWxH)
垢版 |
2022/11/15(火) 22:05:16.10ID:1JRqHGzu0
並びが
(Trueの場合) (条件) (Falseの場合)
になるのが気に食わん
2022/11/15(火) 22:26:23.67ID:5Bygj+p/0
わかる
慣れだろうけどさ
2022/11/15(火) 22:38:17.97ID:Ohwd0nE10
英文的には違和感無いのかもしれないけどねぇ...
2022/11/15(火) 22:47:36.70ID:gBqAZwZY0
if <condition> then <val1> else <val2>
も英語として不自然さは無い
それを、?と:にするのは無理がある

冒頭からifで始まるとif文と区別が付かないので、少し倒置して、
<val1> if <condition> else <val2>
も一応文として読める
C言語よりはまし
2022/11/15(火) 22:59:00.88ID:9SlnRoJw0
通常のif文でも処理(結果)を先に書く新しい言語を作るか
847デフォルトの名無しさん (ワッチョイ 4b10-TWxH)
垢版 |
2022/11/15(火) 23:05:11.16ID:1JRqHGzu0
プログラミング言語に英文的な自然さとか求めて無いんだわ
読む順と評価順が入れ替わってんのがセンス無いと思う
2022/11/15(火) 23:08:14.86ID:gBqAZwZY0
処理をifで修飾するというのは既にある
elseは知らん
2022/11/15(火) 23:10:56.55ID:JTzzJATw0
~よりはましって、自信がないみたいな感じ
2022/11/15(火) 23:17:01.94ID:gBqAZwZY0
C言語よりは遥かにましである、ふはははは
2022/11/15(火) 23:20:26.27ID:JTzzJATw0
そうする合理的理由を説明すれば納得するものじゃないの?
そういうのを聞きたいんだよ
2022/11/16(水) 02:18:10.64ID:+BRGBknF0
英語だと if が後置されることもあるからなあ
内包表現は数学の集合の書き方からすれば普通
ラムダは lisp のラムダ関数から考えれば普通

一応理屈はあるけど
2022/11/16(水) 06:47:02.50ID:hZtfMd7O0
三項演算子だけじゃなくて、Perlみたいに後置ifを実装してれば違和感ないんだろうね

(Trueの場合) if (条件)

Falseの場合はなにもしないけど、Pythonだとpassがあるから三項演算子だけで十分って判断かな
2022/11/16(水) 07:48:59.49ID:Mu0tRvhG0
そうか結構、式である三項演算子や内包表記やlambdaも受け入れられてるんだなぁ。そうなるとなんでmatchを式にしなかったのか。コレガワカラナイ
2022/11/16(水) 08:23:43.73ID:kn7mTN5OM
>>847
これ正解
2022/11/16(水) 08:33:48.92ID:16ZvLDN40
後置ifは文だから値を返す必要がない(=elseは不要)。三項演算子は式だから値を返すのに必要。
なんでこの2つを混ぜたような文法にしたのかなんとも不思議。
2022/11/16(水) 10:19:45.94ID:8bWIhcn5a
どこが変なのかわからん
俺の英語スキルが高杉なせいか…
2022/11/16(水) 11:29:27.97ID:hZGrSsPO0
lambdaといっしょでゴチャゴチャ書きづらいのが良心
実際は構文解析が楽だとか余計な()が不要とかあるんだろうけど
2022/11/16(水) 11:35:19.24ID:OkTwZqPda
lambda calculus のif then else combinatorの語順やろ

https://ja.m.wikipedia.org/wiki/%E3%83%A9%E3%83%A0%E3%83%80%E8%A8%88%E7%AE%97
2022/11/16(水) 11:56:49.17ID:g3qERw/e0
lambdaは綴りが覚えられないから嫌だ
2022/11/16(水) 12:13:16.57ID:8bWIhcn5a
ランバダっておぼえとけ
2022/11/16(水) 12:27:19.92ID:U3lBmIjhM
全部英単語でつなげるから、エディタで色変えたとしても見づらいってのはすごく感じる
863デフォルトの名無しさん (アウアウウー Saa9-FFna)
垢版 |
2022/11/16(水) 17:37:03.73ID:z+sJwdsYa
>>846
uby
864デフォルトの名無しさん (アウアウウー Saa9-FFna)
垢版 |
2022/11/16(水) 17:39:14.54ID:z+sJwdsYa
>>845
findall で解決
865デフォルトの名無しさん (アウアウウー Saa9-FFna)
垢版 |
2022/11/16(水) 17:39:41.33ID:z+sJwdsYa
アンカ間違ってた >>854
2022/11/17(木) 17:09:06.64ID:HF5V3LeY0
import re
str = 'abc123456defg'
s = 'bc'
m = re.search(f'{s}(\d{2})', str)
if m:
 print(m.groups()[0])

\d{2}だと12が表示される
\d{1}とか\d{6}だと想定と違う
なんで?
2022/11/17(木) 17:18:01.85ID:AwlB4ADs0
そりゃ、想定が間違えているから、以外になんか考えられるのかい?
何を想定していてどうなったかも説明しないで、想定と違う!って
言われてもね、人に説明する気も無けりゃ教えを乞う態度でもないし
何したいの?日記ならよそでやってくれる?
2022/11/17(木) 17:57:04.97ID:WlhESVTj0
>>> f'{s}(¥d{2})'
'bc(¥d2)'
2022/11/17(木) 18:01:06.12ID:F2Az3Gmh0
インデントが全角スペースなのが全てを表してる
2022/11/17(木) 18:02:37.66ID:HF5V3LeY0
f文字列の中で{m,n}を使うにはどうすれば
2022/11/17(木) 18:20:55.05ID:OILH8ycX0
口のきき方覚えてから出直せ
2022/11/17(木) 18:28:04.25ID:qm+2WY7I0
まあまあ、お勉強スレなんだし未熟者同士で問題解決していくスタンスで良いんじゃないの
2022/11/17(木) 18:31:28.74ID:p1aORMOX0
そんなイライラしなくても{{´·ω·`}}
2022/11/17(木) 18:42:18.14ID:HF5V3LeY0
>>873
できた
2022/11/17(木) 19:51:50.25ID:SY2MYyO/0
f文字列で¥とか/区切りの一部だけを取るような事出来ないのかな?
splitしてスライスで取るのはどうも好かん
876デフォルトの名無しさん (ワッチョイ c533-BvCT)
垢版 |
2022/11/17(木) 21:45:06.27ID:SeoZPm6s0
>>1>>866
> ★Pythonのソースコードを5ちゃんに直貼はインデントが崩壊するので、
>   ↓等のコードうp用サイトに貼ってきてくだしあ。(スクリーンショットをうpる「横着」禁止)
> ttps://techiedelight.com/compiler/  Run Code機能あり。
> ttp://ideone.com/      デフォ設定がCなので、Pythonするには言語種選択ボタン押下がピコ手間かも。
> ttp://pastebin.com/     まずまずシンプル。
> ttp://dpaste.com/      とてもシンプル。消えるまでの日数は十分長ーく指定のこと。
2022/11/17(木) 21:54:06.61ID:HF5V3LeY0
それも必要悪だな
貼った先が無くなった後でログを見た人に何の知見も残せない
2022/11/17(木) 23:08:46.05ID:kmneQuTyH
>>876
>デフォ設定がCなので、Pythonするには言語種選択ボタン押下がピコ手間かも。
一回 python を選択すれば、あとはずっと選択したpythonのままになりますよ
2022/11/17(木) 23:09:37.45ID:kmneQuTyH
>>877
いまのところ ideone はずっと消えずに残っていますよ
https://mevius.5ch.net/test/read.cgi/tech/1434079972/
2022/11/17(木) 23:12:16.09ID:lsW0mIad0
何年くらい残れば良いんですかい?
2022/11/17(木) 23:18:26.59ID:HF5V3LeY0
外部を利用する根拠がインデントの崩壊だけなら、崩壊していないのだから不要
なるべく単体で完結していた方がいい

コードが長いとか、修正後のコードと比較したいとかになると、
さすがに掲示板の機能を超える
2022/11/17(木) 23:37:59.57ID:lsW0mIad0
そういうのは公開する本人が決めれば良いのでは
2022/11/17(木) 23:48:46.20ID:mPrTa5cw0
今更ここで議論する課題でもない
この件はペンディングとして、運用時に自己判断でよいだろう
884デフォルトの名無しさん (ブーイモ MM4b-5kBA)
垢版 |
2022/11/18(金) 01:00:39.04ID:pHizXfulM
短いコードなら直接貼ったほうが断然いいわな
885デフォルトの名無しさん (ワッチョイ ad2c-WM47)
垢版 |
2022/11/18(金) 01:14:15.49ID:E2GzXrNb0
日付(○年○月○日 ○時○分)を抽出してクリップボードにコピーするのってどんな感じでやればいいですかね…
2022/11/18(金) 01:26:07.35ID:wTg9qmzl0
何からだよ
2022/11/18(金) 02:58:16.10ID:q5cRZ16n0
コピーはコマンドでできるから
Windowsならcopy、Macならpbcopy
テキスト抽出して外部コマンド実行するだけ
2022/11/18(金) 09:55:43.93ID:Wj1K/ZC10
例えば、Ruby でクリップボードを使うなら、

あらかじめ、クリップボードへ「 あい 」を入れておいてから、
以下のスクリプトを実行すると、
文字列の前後にある、空白類が削除されて「あい」となる

ただし、RubyはUTF-8 だから、Windows のCP932 と変換する必要がある

# クリップボード内の複数行文字列の、各行の先頭・末尾から、
# 連続する空白類を除去して、クリップボードに入れる

str = `powershell Get-Clipboard`
str.encode! Encoding::UTF_8, Encoding::CP932 # UTF_8 へ変換

ary = str.each_line.map( &:strip ) # 連続する空白類を除去する

IO.popen( 'clip', 'w:cp932' ) do | clip | # CP932 へ戻す
clip.print( ary.join "\n" )
end
2022/11/18(金) 11:23:40.68ID:P6oHPIQ5M
ググったらpyperclipって便利なモジュールがあるらしいよ
前レスから予想するにウィジェットの日付けをメモ帳に貼り付ける感じかな
ウィジェットからのデータ取得はウィジェット作成時にStringVarを関連付けてget,setで取得すれば良い
ログを残すならファイル入出力でやるべきではと思うけど
2022/11/18(金) 12:03:10.69ID:r5yXYIm80
>>888
2022/11/18(金) 12:36:54.85ID:xtaMWlke0
このrubyの人はpython使ってるの?
892デフォルトの名無しさん (ワッチョイ 4b5f-4ilx)
垢版 |
2022/11/19(土) 00:25:37.14ID:GBhwsA7a0
すみません、質問いいですか?
2022/11/19(土) 00:47:22.64ID:UL/detO70
rubyの人最近見なくなったと思ったら
また自己主張してきたな
2022/11/19(土) 11:12:56.68ID:mOhQy7yjM
半島人は日本人女性を強姦しまくってる!
895デフォルトの名無しさん (ワッチョイ 0610-zeL/)
垢版 |
2022/11/19(土) 11:38:44.50ID:N2zY4TUb0
千葉県民に喧嘩売ってんのかコラ
896デフォルトの名無しさん (ワッチョイ 5701-kfYZ)
垢版 |
2022/11/19(土) 12:30:11.97ID:o7Lf802R0
千葉県は恐ろしい田舎なうえ、今もドンドン衰退してる最中。
でも、関東以外の人はそんなこと知らないから、東京の一部みたいな顔できるよ。
2022/11/19(土) 12:31:01.14ID:xRYqKE7Q0
横須賀市民 「東京原人と一緒にしないでくれ」
898デフォルトの名無しさん (ワッチョイ 5701-kfYZ)
垢版 |
2022/11/19(土) 12:43:32.19ID:o7Lf802R0
逆に考えることもできるよ。
電車一本で東京に出れる田舎って最強。
みたいな。
899デフォルトの名無しさん (JP 0H43-NYGE)
垢版 |
2022/11/19(土) 13:00:44.68ID:A7QHTxNqH
ぶぼぼ
2022/11/19(土) 13:04:21.61ID:zkXQWCUr0
沿線の人だけやん
901デフォルトの名無しさん (アウアウウー Sa3b-kfYZ)
垢版 |
2022/11/19(土) 16:23:26.89ID:F8GIHVyHa
久里浜も上総一ノ宮も似たようなもんやろ
2022/11/20(日) 02:18:52.83ID:Wzaj0Q6e0
すみません、python超初心者なのですが
ttps://github.com/ihopenot/LpkUnpackerのpython LpkUnpacker.py /path/to/lpk outputdir /path/to/config.jsonのコードを使いたいのですが、何回やっても

python LpkUnpacker.py "C:\11302997995514316369.lpk" "C:\aaaa" "C:\config.json"
^^^^^^^^^^^
SyntaxError: invalid syntaxのエラーが出てできません。

どうかご教授の程よろしくお願いいたしますm(__)m
2022/11/20(日) 02:34:00.03ID:TRWjspKo0
>>902
そのコードをpythonから読み込んでいますか?
2022/11/20(日) 04:33:04.83ID:ehdgoKhb0
>>902
SyntaxErrorなんで構文に間違いがあるんだけど、ここじゃ正確なコードが貼り付けられないから、自力解決を目指すか、外部サービスを利用してコードを晒すかしてください
2022/11/20(日) 06:11:26.69ID:ZkE4F4/w0
>>902
ファイルパスの¥を2個つけないとエスケープ文字になるんじゃ
2022/11/20(日) 09:38:29.85ID:f5Y3Vp3X0
Cドライブのルートなんかに置くなよ
907デフォルトの名無しさん (ワッチョイ 6290-kfYZ)
垢版 |
2022/11/20(日) 12:40:41.69ID:zjEDBX2J0
うろ覚えで関数名だけわかってるような状態で
関数の使い方がよくわからなくなることがある
たまにドットが前に来るやつあるじゃん

kansu(引数)
.kansu(引数)
aaa.kansu()

モジュールがどうとかいう話なんだろうけど
こういうのみんなどうやって覚えてるの?
2022/11/20(日) 12:46:02.71ID:+Dw5cfeT0
組み込み関数は全部覚える
そこに無ければオブジェクトのメソッド
.sort()とsorted()みたいに両方にあったりもする
2022/11/20(日) 13:01:55.30ID:7a4yJys50
IDEを頼るのです
ここかここがええんかと関数名をちょっとタイプしてみてああんそこはダメぇ(OKという意味)と出たシグネチャを使えばよい
2022/11/20(日) 13:12:36.84ID:oY/pzgY90
関数一覧を印刷した下敷きとか無いのか
2022/11/20(日) 13:14:27.88ID:AxU0uBeT0
>>907
ググる
2022/11/20(日) 13:35:47.19ID:mq06SBbE0
>>902
LpkUnpacker.pyがあるディレクトリまで移動して
python LpkUnpacker.py だけでやってみて
usage:ほにゃららってでてるか?
913デフォルトの名無しさん (ワッチョイ b684-qpCx)
垢版 |
2022/11/20(日) 16:06:56.79ID:V6m7XEpp0
https://mobile.twitter.com/yukiya285/status/1594225137171451904

ゆきや@創薬エンジニア
@yukiya285
機械学習の分野でPythonがよく使われる理由は、ざっくり言ってしまうと、理論の根底にある数式が理解できていなくても機械学習ができるから、ということになります。理論の理解は後回しにして、とりあえずいろいろやってみる、ということができるのがPythonということになります。
https://twitter.com/5chan_nel (5ch newer account)
2022/11/20(日) 16:21:51.45ID:u5cvtrdO0
考えるな、感じるんだ!
915デフォルトの名無しさん (オッペケ Srdf-zeL/)
垢版 |
2022/11/20(日) 17:32:04.11ID:DbVvLhq7r
理由が理由になってなくね?
NumPyやsklearnのようなお手軽ライブラリが充実してることが理由じゃないのか
2022/11/20(日) 17:50:29.42ID:ZkE4F4/w0
cをやろうがアセンブラをやろうが
誰かが作った技術の上でしょ
スクリプト言語を使う1番の理由は生産性の高さだよ
2022/11/20(日) 17:55:33.30ID:mdre8ZhB0
Pascal なんかは
プログラミング教育を意識して作られてたものだが
真逆の発送のツイートだな
2022/11/20(日) 22:48:59.09ID:LvscILW00
>>913
どうだろ
俺は数学できるけど早いcが書けないからライブラリに頼れるpython選んだのが始まり
2022/11/20(日) 23:19:03.19ID:rB1ul6QT0
ライブラリとか言っても判らない人向けの説明なんでしょ
2022/11/20(日) 23:22:17.03ID:oxX6pjp40
やってみるのはいいことだけど
ライブラリ任せにするのは他力過ぎて草
2022/11/21(月) 00:00:01.51ID:MXiqZevU0
ライブラリ最高や!ワイよりちゃんとした実装してるしな。ワイが書く必要なんて無いんや………

って気持ちになるから嫌い
2022/11/21(月) 00:08:01.41ID:KDDXOYAA0
ライブラリ任せにするのはダメな人はコンパイルはコンパイラに任せずに自分でやってるのかな...
2022/11/21(月) 00:08:51.60ID:5iZ5HFRw0
人生は短いんやで
2022/11/21(月) 00:10:28.72ID:Q4I6Hwd50
もしかしてライブラリに使われてるcのソース読まない人たちばかりなのw
2022/11/21(月) 00:11:26.61ID:Q4I6Hwd50
プププー
2022/11/21(月) 00:52:51.07ID:KDDXOYAA0
必要ならライブラリのソースも読むけど普通は読まんな
>>924はコンパイラのソースを読んでるの?w
2022/11/21(月) 00:54:44.72ID:ZuT5szBi0
>>916
おめーらホント視野の狭いクズばっかだな

最適な言語を使うのは
プログラマの基本中の基本だぞ?

それとスプリプト言語使う仕事なんてのは
どんなバカでも出来る仕事であって、
それだからこそ、プログラマはスプリプト言語を使う機会は少ないのだよ。

おめーのようなバカは
プログラマ気取りの
ただのコーダーだw
半島ヘかえれよチョソ!
2022/11/21(月) 01:09:57.53ID:Q4I6Hwd50
>>926
ライブラリの話からなんでコンパイラが関係してくるんだよ
それとコンパイラってソース公開されてたっけ?
読めるかどうか自信ないけど、公開されてんなら読んでみたい
2022/11/21(月) 01:13:37.10ID:KDDXOYAA0
>>928
> それとコンパイラってソース公開されてたっけ?
マジで言ってるのか?
そんなレベルでよく
> もしかしてライブラリに使われてるcのソース読まない人たちばかりなのw
なんて煽れるもんだな
2022/11/21(月) 01:15:39.89ID:Q4I6Hwd50
>>929
どっちだと思う?w
ここではっきりさせないほうがあなたのためになるんだと思うよ
931デフォルトの名無しさん (ワッチョイ 0610-zeL/)
垢版 |
2022/11/21(月) 01:23:32.91ID:fZMCNRrt0
>>928
他人の書いたコード任せというのはコンパイラを使うことにも当てはまるからだろ
2022/11/21(月) 01:35:32.06ID:KDDXOYAA0
>>930
> それとコンパイラってソース公開されてたっけ?
なんて聞く奴なんてどっちでもいいわw
2022/11/21(月) 01:57:19.90ID:mQv3uxAK0
たまにPythonの実装(C言語)を読めるのが正義、みたいに思ってるやつおるけど
大抵の場合は読む必要は無いし、勉強がてら読むか、
ライブラリ使ってて気になる挙動(不具合の可能性があるやつ)に遭遇した時に
実装確認するぐらいじゃね?
2022/11/21(月) 02:12:22.30ID:5iZ5HFRw0
最速を争う言語ならコンパイラの実装に寄せて速度を稼ぐのもアリだけど、Pythonでそんなことする意味は1㍉もない
2022/11/21(月) 06:45:31.12ID:rqiuWDpI0
>>927
生産性の高さという使い分けの話をしてるのに何を言ってるんだ
プログラマがPythonを使わないと言うならそうなんだろうよ
マ版に帰れよ
2022/11/21(月) 07:28:42.29ID:+ijCE8q30
>>935
さわるなよ...
2022/11/21(月) 08:01:45.80ID:ctQ1pKCNM
ノーガードで背中向き合わせて殴り合うのやめろよ
2022/11/21(月) 12:00:35.94ID:JkH4gCyV0
伸びてると思ったらまたいつもの彼だった
939デフォルトの名無しさん (アウアウウー Sa3b-kfYZ)
垢版 |
2022/11/21(月) 14:37:06.50ID:LzW8OiBha
pythonのC実装ってPyObject*観たらおしまいやで
2022/11/21(月) 15:00:05.29ID:V6ODuo3F0
死ぬのか、考え直せ
2022/11/21(月) 17:00:36.18ID:p4sth+TF0
韓国どーたら言ってるスクリプトかと思ってた
2022/11/21(月) 17:55:36.53ID:QoaHhDq70
a = [0.2,0.6,0.1,0.3,0.9]
b = ['A','B',C''D,'',E'']
とあって、aを0.5以上ならTrue、違えばFalesの真偽値に変えて、
bからTrueのところだけ抜き出すにはどのように書けば良いですか?
2022/11/21(月) 18:03:20.26ID:QQ2H2Fut0
a = [0.2,0.6,0.1,0.3,0.9]
b = ['A','B',C''D,'',E'']
c = [y for (x, y) in zip(a, b) if x >= 0.5]
2022/11/21(月) 18:13:38.64ID:QoaHhDq70
>>943
リスト内でfor文とif文使うんですね
ググってそれっぽい感じではあったのですが
Rのノリで書けないかなと困ってました
ありがとうございました
945デフォルトの名無しさん (ワッチョイ 0610-zeL/)
垢版 |
2022/11/21(月) 19:45:08.40ID:fZMCNRrt0
>>942
numpy使えば直感的にできる
a = np.array([0.2,0.6,0.1,0.3,0.9])
b = np.array(['A','B',C''D,'',E''])
print(b[a>=0.5])
2022/11/21(月) 19:59:08.53ID:A4AutIcl0
numpyとかpandasのループの処理を一言に圧縮してしまう書き方は流石だよな
2022/11/21(月) 22:16:33.81ID:QoaHhDq70
>>945
うおお、凄くすっきりしましたね
直感で分かりやすい
ありがとうございます
2022/11/21(月) 22:57:27.68ID:oF3OxSUK0
b = b'\xfc\xfc\x8a\xbf\x8e\x9a'
j = b.decode('sjis', 'ignore')
print(j)
↑これと同じ書き方をC/C++もしくはGO言語で教えて下さい
ようは、変換できないバイトは読み飛ばして残りを変換してくれればいいだけなんですけど、
調べても分かりませんでした。
2022/11/21(月) 23:13:36.69ID:A4AutIcl0
古い言語は文字コード周りは苦手
2022/11/22(火) 00:11:07.60ID:Bp+X7OPb0
スクリプト言語はマルチプラットフォームで高度な機能を使えるのが強みよね
windowsならMutiByteToWideCharみたいなAPIがあったはず
サクラエディタのソースコードみると良いかも
2022/11/22(火) 00:25:18.78ID:+xD7yK0XM
半島系帰化人w
2022/11/22(火) 00:42:24.43ID:slO7/hzp0
みなさま
ありがとうございます。
エディタのソースコード、確かによさそうですね。
バイナリエディタとか凄い重いファイルでも一瞬で開くので実装参考にしたいですね。
理解できるか分かりませんが・・。
勉強してみます。
2022/11/22(火) 01:51:55.36ID:f0vxwxjs0
愚直に(lib)iconvで変換でいいんじゃない?
止まったら飛ばして変換続けるだけの単純な作業
それかiconvにかわる何かがあれば逆に知りたい
954デフォルトの名無しさん (アウアウウー Sa3b-kfYZ)
垢版 |
2022/11/22(火) 10:09:35.89ID:E0zMoWY7a
ICUって息してる?
955デフォルトの名無しさん (アウアウウー Sa3b-kfYZ)
垢版 |
2022/11/22(火) 10:17:27.77ID:E0zMoWY7a
>>954
自己レス
一応生きてるのか
https://www.nslabs.jp/icu-conversion.rhtml
しかし成績悪そう
2022/11/22(火) 11:34:21.49ID:9/2xLKFJ0
文字コードから文字コードへのmapがちゃんとしてないので、
文字コード変換は本質的に不完全
2022/11/22(火) 11:47:50.42ID:KtDRh9XQ0
MSが変な実装したせいだろう
「~」辺りがおかしくなる
2022/11/22(火) 12:00:04.37ID:9/2xLKFJ0
間違ったかなり後で修正したので、どっちもありというさらにややこしいことに
2022/11/22(火) 12:31:19.51ID:p3XTSB6d0
Ruby では、NKF を使う

Iconvは、Ruby 1.9から非推奨
2022/11/22(火) 12:36:55.88ID:JTJ5aKX00
>>959
NKFを利用する理由とIconvが非推奨な理由を書かなければ、ここでは無駄なレス
2022/11/22(火) 13:19:03.79ID:p3XTSB6d0
Ruby では、UTF-8 がデフォルトなので、
そのバイナリをCP932 として入力・解釈し、CP932として変換・出力すると、
解釈できない文字はデフォルトで、? に置き換えられる

bin = "\xfc\xfc\x8a\xbf\x8e\x9a"
p bin.encoding #=> <Encoding:UTF-8>

bin.encode!( 'CP932', 'CP932', :invalid => :replace )
p bin.encoding #=> <Encoding:Windows-31J>

p bin #=> "\x{FCFC}\x{8ABF}\x{8E9A}"
puts bin #=> �漢字
962デフォルトの名無しさん (ワッチョイ ef8e-P3Qh)
垢版 |
2022/11/22(火) 22:26:00.01ID:ntrRKrLv0
Pythonにボロクソに負けて悔しいRubyキチガイ
Rubyはもう終わってるから出てくるなよ
2022/11/22(火) 22:32:18.24ID:XgKPIgaCa
てか今ruby使う意味あるの?
どう考えても乗り換えた方がいいよね?
どう贔屓目に見ても衰退していく一方でしょ?
2022/11/22(火) 22:43:14.72ID:9/2xLKFJ0
Ruby on Railsは今でも生き残ってるのでrubyも使われていると言えなくもない
そんなこと言ったら、perlだって今でもいろんな所で使われ続けている

それらは今更新しいもので置き換えるコストもかけてられないし、
今後も使い続けられるだろうけど、新規で何かを作ろうとは思わない
単に保守され続けるだけ
2022/11/22(火) 22:45:50.82ID:zrKnB8vd0
とにかく動くサービスつくりたいならTSかRuby(Rails)と思うけどな
べつにひとつの言語に縛られるわけじゃなしよくわからん
2022/11/22(火) 23:08:58.16ID:OdNuXGxn0
この急落ぶり
https://www.itmedia.co.jp/news/articles/2211/18/news120.html
2022/11/22(火) 23:13:41.08ID:9/2xLKFJ0
JavaScriptが1位を独走するようなサンプリング空間はどうでもいい
2022/11/22(火) 23:15:48.79ID:KtDRh9XQ0
世の中で一番使われている言語って何だろう
969デフォルトの名無しさん (ワッチョイ ef8e-P3Qh)
垢版 |
2022/11/22(火) 23:17:45.60ID:ntrRKrLv0
英語
2022/11/22(火) 23:19:46.87ID:KtDRh9XQ0
https://www.mext.go.jp/b_menu/shingi/chukyo/chukyo3/004/siryo/attach/1379956.htm

ううむ・・・w
2022/11/22(火) 23:22:54.71ID:2AIJDKvEM
半島系帰化人のように
ゲリ便をジュルジュルと食べる!
おいしい!
2022/11/22(火) 23:33:20.26ID:JScWF1cX0
>>968
そらC言語よ
2022/11/22(火) 23:34:19.78ID:9/2xLKFJ0
最もライトな層まで含めると、VBAとかになるじゃない?
2022/11/22(火) 23:39:13.16ID:tXIkHCtk0
今の時代は、HTML・CSS・JavaScript がかなり使われているだろうなあ
2022/11/22(火) 23:42:03.33ID:9/2xLKFJ0
うちのサイトは今でもhtml手書きだけど、自動生成でないhtmlなんてごく僅かだろう
2022/11/22(火) 23:42:27.60ID:KtDRh9XQ0
開発現場で使われている言語で評価するか、
稼働しているシステム上の実行イメージ数で評価するか、
稼働でみると意外にCobolやFortranが浮上してきたりするかも
ファームまで含めればC言語なのかな?(アセンブラは除くとして)
2022/11/22(火) 23:49:09.81ID:9/2xLKFJ0
動いてる、で勘定するとJavaの35億なんじゃないの
新たにコードを書いている件数でないと
2022/11/22(火) 23:56:29.46ID:lS6Dux4J0
C#じゃないの
Windowsマシン一台につき何十本単位で常時動いてるわけで
2022/11/23(水) 00:08:36.59ID:GanADpvO0
intel CPUのマイクロコードはもっと動いてるな
動いてる禁止
2022/11/23(水) 00:11:55.71ID:aRKGS4gV0
Windows機とスマホとどちらが多いかな・・
2022/11/23(水) 00:32:13.84ID:GanADpvO0
スマホで開発してる人はおらんので無視してok
2022/11/23(水) 00:33:38.11ID:aRKGS4gV0
そうなると開発環境が入っていないPCは除外しないといけなくなる
2022/11/23(水) 07:35:48.94ID:+HF9qHMxd
>>969
中国語だぞ
2022/11/23(水) 07:44:50.17ID:z/dj8+x2M
cscはVista以降標準だから
985デフォルトの名無しさん (アウアウウー Sa3b-kfYZ)
垢版 |
2022/11/23(水) 11:05:03.50ID:DxhXFxCJa
>>964
ほんそれ

>>965
だから新規でわざわざ覚える必要無い言語のphaseになってるって話
2022/11/23(水) 11:15:16.02ID:GanADpvO0
過去に作ったperlのツールに機能追加とかしたくなった時に、
折角だからpythonに移植したりする

正規表現周りはperlの方が優れてる気がする
987デフォルトの名無しさん (ワッチョイ a361-Os4M)
垢版 |
2022/11/24(木) 09:39:50.37ID:mTxkC9sF0
l = [0, 1 ,2 ,5, 7]
n = 4

ln = [0, 1, 2, 4, 5, 7]

数値比較をして、prev <= x <= next位置に挿入する
myInset()関数作りたいんだけど、ループと代入連打して泥臭く書いてくしかないですか?

ちなみにリストは全部int型、重複あり、ソート済み
入力値もint型、既存要素と同値ありです
2022/11/24(木) 09:46:01.19ID:pE6vyhc80
追加してソートしたほうがはやそう
2022/11/24(木) 09:47:30.34ID:hkNOvNmL0
bisectとlist.insert
2022/11/24(木) 09:48:18.83ID:pE6vyhc80
手順を守りたいならfindとinsertでしょうね
991デフォルトの名無しさん (ワッチョイ ef33-mBx9)
垢版 |
2022/11/24(木) 09:50:39.01ID:A6xfpKBe0
れすつくんはやすぎん?
2022/11/24(木) 09:51:07.83ID:8kN4Xh6N0
元が重複ありソート済みなら>>988で問題ないんでないの?
2022/11/24(木) 09:51:12.68ID:rkq3RdV60
殆どソートされてるものをソートするコストは低そう
やろうとするのはソート処理の一部を自前で書こうというもので、
既製品を使った方が簡単で速い
2022/11/24(木) 10:24:14.77ID:tW757r1O0
>>987
import bisect
bisect.insort(l, n)
リストに挿入ならこれ一発で
995デフォルトの名無しさん (JP 0Haf-Os4M)
垢版 |
2022/11/24(木) 10:31:16.11ID:un5pV6iGH
一見面白そうな話かと思ったが普通にappend後ソートしかなかった
996デフォルトの名無しさん (ワッチョイ ef33-stRS)
垢版 |
2022/11/24(木) 10:55:43.29ID:A6xfpKBe0
こういう時は大抵、insort_leftみたいに専用のモジュール使った方がだいぶ早い
997デフォルトの名無しさん (オッペケ Srdf-zeL/)
垢版 |
2022/11/24(木) 16:38:02.61ID:svdfhu67r
append後ソートは流石に無駄が多すぎ
上で答え出てるが木構造ベースのアルゴリズム使えばO(logN)で挿入出来る
2022/11/24(木) 17:21:29.41ID:rkq3RdV60
そういうのは速度で困ってから考えればいい
999デフォルトの名無しさん (ブーイモ MM02-p73K)
垢版 |
2022/11/24(木) 18:42:35.06ID:w9TFu4+VM
速度に困りそうなときはbisect、一発動けばいいときはsortで済ませちゃうかもな
bisectは標準モジュールだし、辞書でC++のmapのlower_bound/upper_bound相当のことをしたいときにも使えるから知っていて損はないと思うけどね
本当に速度を追求するなら、Pure PythonじゃないB treeとかを使いたくなるよね。
めんどくささは速度を追求するほど上がっていくから確かにどの程度速度で困っているかによってベストの実装は変わるとは思うけど。
2022/11/24(木) 21:18:28.52ID:gexHL2NZ0
1000
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 70日 2時間 26分 2秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


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

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

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

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