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

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2020/10/17(土) 10:05:38.14ID:1RQ0Wdhu
当スレに★Python以外のプログラミング言語での回答類を書くべからず★
派生言語はそれぞれ専スレがあるのでそっち池。
「Ruby」「某言語では」をNGワード登録推奨。荒らしは、完全スルー放置が一番きらいです。

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

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

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

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

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

次スレは >>985 あたりが挑戦してくだしあ。(980過ぎて自動落ちは、無くなって久しい)
### END OF TEMPLATE ###
2020/10/31(土) 03:51:54.92ID:Wmf86iBS
マジレスすると個々の文字列の長さが不定なら=でsplitしろ
2020/10/31(土) 04:12:24.03ID:ktmwyAcA
スライスってすごいよな。
サブストいらんもんな
205デフォルトの名無しさん
垢版 |
2020/10/31(土) 06:40:49.63ID:0qFsgGrp
ある言語だと
a[-3,3]="aaa"
206デフォルトの名無しさん
垢版 |
2020/10/31(土) 10:57:01.95ID:fxcwqRC2
右から探し始めて最初に見つかった=で以降置換出来る正規表現無かったっけ
207デフォルトの名無しさん
垢版 |
2020/10/31(土) 11:22:42.38ID:ZFPaD7BU
本家のPythonの場合プロンプト画面を非表示にするには
拡張子py→pywにするでおkなんだが
Anaconda付属のPythonでこれやるとプロンプト表示される
対策てある??
2020/10/31(土) 12:38:27.55ID:mD1OGW9M
python.exeではなくpythonw.exeやで
209デフォルトの名無しさん
垢版 |
2020/10/31(土) 12:57:18.69ID:YFUksD3m
>>206
=.*$
2020/10/31(土) 13:02:58.76ID:CAmth+XY
winptyとかなんとか
2020/10/31(土) 13:08:21.24ID:+dMgasNU
>>209
.*だと=ともマッチするので
=.*$だと"=yyy=ccc=ddd"にマッチしてしまうぞ
212デフォルトの名無しさん
垢版 |
2020/10/31(土) 13:36:05.08ID:fxcwqRC2
=[^=]*?$

いけました
ありがとう
213デフォルトの名無しさん
垢版 |
2020/10/31(土) 14:00:16.47ID:0qFsgGrp
>>200 >>209
import re
a= "xxx=yyy=ccc=ddd"
b=re.sub("...$", "aaa", a)
print(b)

c=re.sub("=.*$", "aaa", a)
print(c)

実行結果
xxx=yyy=ccc=aaa
xxxaaa
2020/10/31(土) 14:05:33.56ID:9ujp1MGy
開発環境って、VScodeが最適?
Eclipseとか、pycharmとどれば良いですか?

おすすめを教えて欲しいな。
2020/10/31(土) 14:10:14.40ID:eMxGB/My
splitとstripがどっちかわからなくなる
216デフォルトの名無しさん
垢版 |
2020/10/31(土) 14:17:00.52ID:fxcwqRC2
split は bowling の split や野球の split fingered fast ball
strip は君らの好きなあれ
2020/10/31(土) 20:11:22.92ID:ZTltDpC1
競技プログラミングで pypy は幅を利かせているように思えますが、
競技プログラミング以外での pypy はどうですか?
218デフォルトの名無しさん
垢版 |
2020/10/31(土) 20:19:55.02ID:KY/T1AyA
>>211
oops
2020/10/31(土) 22:56:10.29ID:4+R4Y5KC
>>217
C拡張モジュールが遅いから使われていない
特に機械学習分野はCUDAの都合でCPython一択
2020/10/31(土) 22:58:03.68ID:Oo7C4HEc
>>217
CPythonでしか動かないパッケージを使ってなくてパフォーマンスに困ってるならいいんじゃない
でも、大抵CPython必須なパッケージを1つ以上使っているケースがほとんどだと思うけど。
競技プログラミングはアルゴリズム実装に特化してる競技だから、実用とはまた違うよね。
2020/10/31(土) 22:59:59.62ID:CAmth+XY
Pystonってどうなんや
2020/10/31(土) 23:06:35.78ID:rTRLWM7Q
>>214
総合面で考えるとSCodeが楽
大まかに書くと
・Eclipse
昔からあるツールだけど、言い換えると古い
UIやフォーマット機能も考慮すると、正直選択肢には上がらない

・PyCharm
 IDE使って開発するなら実質これ一択
 Pythonだけなら無償版で十分だけど、機械学習やWeb(Django)とかを触るなら有料版が無いと辛い

・VSCode
 必要な拡張機能をぶち込めばIDEと遜色なく使える
 元がテキストエディタなので比較的軽いのも魅力
 というか無料でやっていくなら大体これに落ち着く
2020/11/01(日) 00:00:28.25ID:CuITjVo7
VS Code用Python拡張機能に「debugpy 1.0」が搭載、2020年10月リリースより
https://codezine.jp/article/detail/13135
 米Microsoftは、Visual Studio Code用Python拡張機能2020年10月リリースの提供を、10月28日(現地時間)に開始した。MarketplaceまたはVisual Studio Codeの拡張機能ギャラリーからインストールできる。
2020/11/01(日) 01:22:57.63ID:uXcrli8I
>>222
ありがとう。
結局、無料ならばvscode ってことになるのね。

とりあえず、つかってみるね。

助かりました
2020/11/01(日) 06:43:13.64ID:DCllpzwI
>>214
Vim
226217
垢版 |
2020/11/01(日) 09:16:48.10ID:qI7pQI5j
>>219,220
ありがとうございます
CPythonでいきます
2020/11/01(日) 14:46:20.08ID:SB/4dHgp
pythonはよく遅いって言われるけどそんなに体感出来るほどのものなの?
プログラミング自体pythonが初めてだからどういう使い方してる時に遅いって感じるんだろう
228デフォルトの名無しさん
垢版 |
2020/11/01(日) 14:51:30.41ID:BdB3gM+x
for は遅い
numpy は速い
2020/11/01(日) 14:58:10.26ID:AjRcesHd
>>227
PythonとCに
1+1を10億回くらい計算させて
時間差を体験してみたらどうじゃろー
2020/11/01(日) 15:03:53.01ID:lNtVx6da
書き方によっては勝手に最適化されちゃうからなあ
2020/11/01(日) 15:23:30.26ID:Nw3wtxBc
for i in range(1000000000):
  k= 1+1

出力しないと最適化されてなくなりそう。
出力すると print の速度に依存するし。
2020/11/01(日) 15:59:45.23ID:AjRcesHd
長さ10億の空配列(リスト)準備しておいて順番に入れてくとか
100萬行のファイル出力で競争するとか
工夫必要かー
2020/11/01(日) 16:53:23.86ID:YqPAXEKP
処理に時間かかるなと思わないまでは遅いとか気にしなくて大丈夫
234デフォルトの名無しさん
垢版 |
2020/11/01(日) 18:17:59.71ID:6FKS57jf
プロのpythonistともなると競技プログラム全問制覇は当然のこと、
それでは飽き足らずpythonそのもののソースコードを読んでその高速化に努めるようになる

そうこうしてると動的計画法の難問をちょっとした片手間と戯れでpythonとc++の両方で解くこともしばしばだ
するとC言語系に比べてpythonは遅いということを実感する
235デフォルトの名無しさん
垢版 |
2020/11/01(日) 18:26:01.81ID:KpbUCpE2
そこまでしなきゃ実感できんのか…
2020/11/01(日) 20:10:44.85ID:a4q/79iQ
>>235
Pythonで適当に書いた計算コードの完了見積もりが10日とかになると、
流石にまずいなと思って1日ぐらいかけてC++で書いてみるんよ
それで10倍とか100倍速かったりすることがあるんよ
(速くないこともある)
そのときにPythonは遅いと実感する

だけど、実装までの時間は速いし、Pythonで試行錯誤してからC++で清書する方が初めからC++で試行錯誤するより早くできる場合も多いから、
遅いと感じたら最適化すればよい

「早すぎる最適化は諸悪の根源」ってやつよ。
コンセプトが正しいことを確認してから最適化するのが99%のケースにおいて良い進め方だと思う。
237デフォルトの名無しさん
垢版 |
2020/11/01(日) 20:45:34.09ID:KpbUCpE2
>>236
それにしても書き直すのはオーバーヘッドデカすぎ内
Cython,numba,Numpyを適切に使うんじゃだめなの
2020/11/01(日) 20:47:37.69ID:a4q/79iQ
>>237
それでもいいよ。書き直すっていっても全部書き直す訳じゃないんだよ。
pybind11とかその辺のもの使って部分的に書き直す
2020/11/01(日) 20:50:52.83ID:a4q/79iQ
>>237
言葉が足りなかったけど、CPythonはそのぐらいC/C++との親和性が高くて、
遅いところだけ書き直すオーバーヘッドがそれなりに低いということね。
やってみると結構簡単だよ。
この点が"CPython"ならびにPythonが大流行してる理由の一つだと思うよ。相互運用性が高い。
2020/11/01(日) 20:55:12.23ID:AjRcesHd
CUIでよければOS縛りから割と自由なメリットも大きい
2020/11/01(日) 21:12:25.18ID:CCPWVz0g
文字列が整数かどうかのBool値ってどうやったら調べられますか?
242デフォルトの名無しさん
垢版 |
2020/11/01(日) 21:16:02.65ID:6FKS57jf
>>241
Pythonで文字列が数字か英字か英数字か判定・確認 | note.nkmk.me
ttps://note.nkmk.me/python-str-num-determine/
2020/11/01(日) 22:54:32.09ID:2mAR5kOy
python v2はもう試した?
2020/11/02(月) 08:53:44.78ID:qmODC3C7
python?聞いたことねーわ。
それより2000年問題どうするよ
2020/11/02(月) 09:03:15.71ID:gtCIEfbe
>>244
そちらは今何年? うちは2031年。
三原じゅん子が都知事やってる。
2020/11/03(火) 16:54:41.49ID:iMW/lpvl
今は正規表現を下記のように一度mにセットしてif文と2行で書いています。

for line in f:
m = re.search(r"^ *[#\n]", line)
if m:
continue
m = re.search(r"^ *(\S+) +(\S+)", line)
if m:
print("{} {}".format(m.group(1), m.group(1)))
continue
print("エラー")

これだとcontinueも含めてかなり冗長になってしまうので、mのセットと正規表現マッチのif文を一行でまとめたいのですが
何かスマートな書き方はありますか?
イメージは下記です。

if m = re.search(r"^ *[#\n]", line):
pass
if m = re.search(r"^ *(\S+) +(\S+)", line):
print("{} {}".format(m.group(1), m.group(1)))
else:
print("エラー")
2020/11/03(火) 17:05:53.52ID:TBDTZ+Oa
チェリー本相当の書籍はありますか?
2020/11/03(火) 17:14:21.34ID:iMW/lpvl
インデントが見づらかったので再投稿。

今は正規表現を下記のように一度mにセットしてif文と2行で書いています。

for line in f:
 m = re.search(r"^ *[#\n]", line)
 if m:
  # コメント行。何もしない
  continue
 m = re.search(r"^ *(\S+) +(\S+)", line)
 if m:
  print("{} {}".format(m.group(1), m.group(1)))
  continue
 print("エラー")

これだとcontinueも含めてかなり冗長になってしまうので、mのセットと正規表現マッチのif文を一行でまとめたいのですが
何かスマートな書き方はありますか?
イメージは下記です。

if m = re.search(r"^ *[#\n]", line):
 # コメント行。何もしない
 pass
elif m = re.search(r"^ *(\S+) +(\S+)", line):
 print("{} {}".format(m.group(1), m.group(1)))
else:
 print("エラー")
249デフォルトの名無しさん
垢版 |
2020/11/03(火) 17:27:55.36ID:70+q1zbl
日本,2,セネガル,2
日本,1,ポーランド,0
日本,2,コロンビア,1

例えばこのようなデータをテキストでcsv形式のファイルに保存していたとして、
これを行ごとに読み込んでいったときに、”日本”がdata[0]として扱われない原因は
どんなことが考えられますか?
2020/11/03(火) 17:38:08.47ID:PKcQzeRx
>>248
3.8以上ならassignment expressionでif文やwhile文での代入ができる
それよりも先に同じ処理の繰り返しをループにまとめたほうがいいんじゃないかな
2020/11/03(火) 17:39:06.85ID:PKcQzeRx
>>249
先にコードを晒せ
2020/11/03(火) 17:39:13.19ID:s27RSoz/
>>249
Pythonコードで表現してみせて
おk?
253デフォルトの名無しさん
垢版 |
2020/11/03(火) 17:55:36.88ID:70+q1zbl
249です
https://dpaste.com/AGQ9EY6TB
254デフォルトの名無しさん
垢版 |
2020/11/03(火) 17:58:14.34ID:70+q1zbl
ここで関数を
game(fname,"日本","セネガル")としても「試合なし」が返ってきます。
2020/11/03(火) 18:44:09.61ID:PKcQzeRx
>>253
カンマ区切りのデータをタブ区切りでsplitしてるみたいだけど?
256デフォルトの名無しさん
垢版 |
2020/11/03(火) 19:14:06.72ID:70+q1zbl
>>255
あ、split(',')にする必要があるってことですね。ありがとうございました。
2020/11/03(火) 19:49:23.79ID:j8uSLtHh
>>247
チェリー本ってそれほどいい本だとは思わないけど
第3章の「テストの自動化」が珍しいだけで
258デフォルトの名無しさん
垢版 |
2020/11/04(水) 00:18:25.38ID:eR5jspY1
MacBookでPythonの勉強したいんだけど
アナコンダは非推奨なんですか
ちなプログラミングのプもわかりません
2020/11/04(水) 00:20:37.89ID:nrIG18FY
>>258
Macの場合はAnacondaいらない
pyenvとpoetryで環境分けた方がいい
260デフォルトの名無しさん
垢版 |
2020/11/04(水) 00:25:03.99ID:eR5jspY1
>>259
ありがとうございます試してみます
2020/11/04(水) 12:32:39.12ID:rx4TzFlQ
>>257
それでは初心者から一歩踏み出すのにお薦めの書籍はなんでしょうか?
262デフォルトの名無しさん
垢版 |
2020/11/04(水) 12:37:41.53ID:ef0NVCqR
>>261
何を作りたいの?
2020/11/04(水) 14:06:36.26ID:r2X6H2u5
Python代替実装「Pyston v2」がリリース、Python 3.8よりも20%高速化を実現
 Pyston開発チームは、Pythonと互換性があり、より高速な「Pyston v2」を、10月28日(現地時間)にリリースした。

 「Pyston v2」は、「Python 3.8」と比較して20%高速であり、chaos.pyやnbody.pyといったベンチマークを用いたテストでは、標準のPythonと比較して2倍の処理速度を実現している。
http://codezine.jp/article/detail/13152
2020/11/04(水) 16:40:32.58
pathlibでstr(Path('/dir/to/file/'))ってやると
/dir/to/file
ってなりますが
ラストのスラッシュはつけないっていうのはそういう決まりなんですかね?
265デフォルトの名無しさん
垢版 |
2020/11/04(水) 17:56:35.81ID:pCSm/LDs
XLwingsで文字色を変える事は出来ないのでしょうか。
Openpyxlで保存するとシェイプが消えるので、、、

もしくはopenpyxlはxlwingsのようにエクセルを開いたままでも変更がはいりますでしょうか。
それならば保存だけエクセル上でやればよいかなーと
2020/11/04(水) 19:25:10.32ID:k0COKPgk
>>258
anacondaにしとけ。馬鹿に唆されてpoetryなんか使ってもどハマりするだけだ。
267デフォルトの名無しさん
垢版 |
2020/11/04(水) 20:04:09.19ID:ef0NVCqR
公式のインストーラとvenvだけで十分事足りる
268デフォルトの名無しさん
垢版 |
2020/11/04(水) 20:06:35.61ID:ef0NVCqR
いつの間にかこんなんできててちょっとびっくりした
https://www.python.jp/install/install.html
2020/11/04(水) 20:20:09.16ID:a9nrTc1S
>>268
公式とは関係ない勝手なサイトなんだな。
anaconda勧めるとか、とりあえずインストールすらさせないとか、なんか恣意的過ぎてちょっと違う気がするわ。
colabでできる事なんか限られてるだろうに。
2020/11/04(水) 20:39:17.47ID:AYVLctzm
Macならhomebrewで適当に入れたらうまくやってくれるぞ
2020/11/04(水) 21:03:32.42ID:595C/MWS
LinuxもLinuxbrewで
ChromeOSもChromebrewで
2020/11/04(水) 21:58:36.73ID:k0COKPgk
まあ公式にこだわるのはわからんでもないが正直公式のvenvなんかよりanacondaのが動作が安定してる。
そもそもそこまでこだわるならdocker使った方がよっぽど安全だわ。
2020/11/04(水) 23:44:09.28ID:oOk5Pqvr
>>261
パーフェクト Python [改訂2版]、2020/6/1

パーフェクトシリーズは、Ruby の新版が出たのに、Python のが出ないから、
漏れが文句を言い続けたら、新版が出た!

改訂2版 パーフェクトRuby、2017
パーフェクト Ruby on Rails 【増補改訂版】、2020/7/25
274デフォルトの名無しさん
垢版 |
2020/11/05(木) 00:32:39.97ID:1YRmT/TT
偉いのは著者と編集者だろ
何を誇ってんだ
275デフォルトの名無しさん
垢版 |
2020/11/05(木) 02:31:26.70ID:tM7hzUED
>>262
とくにないです
これからきめます
2020/11/05(木) 12:42:01.60ID:uYwLFJdy
>>245
ム板に来るなんてお前も懐古主義者か?
277デフォルトの名無しさん
垢版 |
2020/11/05(木) 12:47:57.84ID:nZjhZ210
python.jp は非推奨
278デフォルトの名無しさん
垢版 |
2020/11/05(木) 18:34:22.22
データベースで管理するほどのもんでもないような辞書データって
何の形式で管理すればいいの?
今やってるのはjson全部開いて挿入して全部上書きってやってるけど
なんか無駄が多そうな気がしてモヤモヤする
2020/11/05(木) 19:02:26.94ID:Gq4Kdv3z
Pickleでおいとけば?
2020/11/05(木) 19:36:08.36
>>279
一通りやってみたけどdumpとloadしかできないっぽい?

データ更新したいとき
全部読み込んで解析して変更して全部保存
みたいな
jsonで扱うときとそう変わりないような
こういうのは問答無用でデータベース管理しとけばいいのかな
2020/11/05(木) 19:50:23.90ID:Gq4Kdv3z
読み書きが多いならSQLiteかなにかにでもつっこんどき
2020/11/05(木) 20:30:58.64ID:HQNZIllF
>>278
  >>281
2020/11/05(木) 21:25:23.66ID:DpIRk9h7
>>278
csvではいかんのか?
284デフォルトの名無しさん
垢版 |
2020/11/05(木) 23:23:30.89ID:4fCLIDu0
もしよろしければ教えて下さい。

リストの要素単独に1を与えようとして、a[i][j]=1のときに
a[i][j]=a[i][j]+1
とすると、
なぜかa[i][j]以外のa[i+1][j],a[i+2][j],a[i+3][j]・・・もすべて2となってしまします。
考え方間違ってますでしょうか?
2020/11/05(木) 23:39:04.11
>>282
もうこの際mysqlもsqliteも使い比べしてみるd
>>283
csvを操作するモジュールに、
範囲指定でいらない部分を削除したり、範囲部分だけ持ってきたりできるなら使ってみようかな
2020/11/06(金) 00:03:28.62ID:5acjwhy7
ブラウザなど、多くのアプリは、SQLite を内蔵してる。
ゲームエンジンでは、Lua, Squirrel

単純な構造なら、CSV。
複雑な構造なら、JSON, YAML, XML

そのプログラミング言語特有の形式を使うと、別の言語で処理できない
287デフォルトの名無しさん
垢版 |
2020/11/06(金) 00:14:09.97ID:Wznfx/R9
>>284
>考え方間違ってますでしょうか?
間違ってないですよ
https://ideone.com/O14zpu
2020/11/06(金) 01:53:35.34ID:szUY6t26
ループ中で+1してるんだろね
289デフォルトの名無しさん
垢版 |
2020/11/06(金) 06:46:41.84ID:PAcV0VwR
>>284
多次元のリストを作るにはどうしますか?
https://docs.python.org/ja/3/faq/programming.html#how-do-i-create-a-multidimensional-list
290デフォルトの名無しさん
垢版 |
2020/11/06(金) 15:50:21.95ID:LTqO0fOq
>>278
pickel
yaml
json
msgpack
sqlite
2020/11/06(金) 15:59:51.87ID:KUVDet8J
pickle

npzじゃあんまり固めてないな
2020/11/06(金) 20:27:32.32ID:1gMNE7IB
>>287,288,289
ありがとうございました。
まさに289さんのリンク先の間違った書き方例をしてしまっていて、
書き換えたら行けました。
大変助かりました、ご親切にありがとうございました。
2020/11/07(土) 00:42:40.82ID:zMpN0fYG
画像比較のライブラリみたいのってないの?
メソッドに送ると相似率が返ってくるみたいな
2020/11/07(土) 02:04:50.34
Google Cloud VisionのAPIに画像投げてパラメーター比較すればできそう
295デフォルトの名無しさん
垢版 |
2020/11/07(土) 03:36:36.18ID:CdQvP3Xl
anaconda使ってるやつええんか
2020/11/07(土) 04:34:06.90ID:ZonlAFvd
JaneとかIrvineとかののステイタスバーの要素を読み込む方法がわからない
2020/11/07(土) 12:00:05.29ID:LW+62T9+
https://ideone.com/JaF7A2
配列を0の箇所に表示するにはどうしたらいいんでしょうか?0は壁でテトリス作成中です。
if文で条件指定していますが、うまくいきません。
こうなります。
0部分にだけ表示させる分岐を教えて下さい。

[1, 2, 3, 3, 0, 0, 0, 1]
[1, 2, 3, 3, 0, 0, 0, 1]
[1, 0, 0, 0, 0, 0, 0, 1]
[1, 0, 0, 0, 0, 0, 0, 1]
[1, 0, 0, 0, 0, 0, 0, 1]
[1, 0, 0, 0, 0, 0, 0, 1]
[1, 0, 0, 0, 0, 0, 0, 1]
[1, 0, 0, 0, 0, 0, 0, 1]
[1, 1, 1, 1, 1, 1, 1, 1]
298デフォルトの名無しさん
垢版 |
2020/11/07(土) 13:38:20.15ID:CPm1qeuk
スレチ
2020/11/07(土) 15:53:18.39ID:LW+62T9+
スレチではないです
300デフォルトの名無しさん
垢版 |
2020/11/07(土) 15:55:50.21ID:CPm1qeuk
300get
2020/11/07(土) 16:01:26.61ID:80Ksuy/i
能登ちゃんは処女?
2020/11/07(土) 16:43:06.82ID:LW+62T9+
>>297
別スレに移動するです
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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