くだすれPython(超初心者用) その46【Ruby禁止】

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2020/01/02(木) 15:56:54.08ID:ZUrZA+uS
当スレに★Python以外のプログラミング言語での回答類を書くべからず★
☆「Ruby では」「Rubyでは」をNGワード登録推奨

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

★Pythonのソースコードはそのまま5ちゃんにコピペするとインデントが崩れるので
  ↓等のてきとうなソースコード用うpろだに貼ってきてください。
  スクショをImgur等にうp といった 手抜き(クソ行為)禁止。
ttp://ideone.com/      デフォ設定はC用のため言語選択ボタン押下がピコ手間かも。
ttp://codepad.org/      ほぼ直感的に使える。Run codeボタンあり。
ttp://pastebin.com/     まずまずシンプル。
ttp://dpaste.com/      とてもシンプル。消えるまでの日数は十分長ーく指定のこと。
ttps://jupyter.org/try    (旧try.jupyter.org)ちょっとめんどうそう

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

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

〇前スレ〇
くだすれPython(超初心者用) その45【Ruby禁止】
https://mevius.5ch.net/test/read.cgi/tech/1571188632/
2020/02/06(木) 12:25:05.18ID:PruBe/51
>>492
他に使ってなさそうで欲しい属性分かってるんだったら
elems = html.select('img[data-iurl]')
これでよくね

あとfirefox10でも47でもないいい加減なUAはやめとけ
2020/02/06(木) 12:35:55.03ID:/hIhK6yv
要素を非同期処理で読み込むから、要素が存在しないとか、
サイトの構成が変わったとか、
XPath/CSS セレクターが間違っているとか、
相手がアクセスをブロックしてくるとか

スクレイピングは、相手のサイトを分析するのが難しいのと、
適切に限定される、セレクターを作るのが難しい

API が公開されているなら、APIを使った方がよい

漏れは、Ruby で、Selenium WebDriver, Nokogiri などで、
Chrome, Edge などのブラウザーを自動操作して、スクレイピングするけど

ここに書いておいた

【VBScript】WSHについて話し合うスレ【JScript】
https://mevius.5ch.net/test/read.cgi/tech/1578522041/24-27
497デフォルトの名無しさん
垢版 |
2020/02/06(木) 12:41:43.46ID:zAec24ND
>>494
改行=\n または \r\n
498496
垢版 |
2020/02/06(木) 12:45:42.46ID:/hIhK6yv
>>492
Base64 は、HTML でもよく使う

Base64の文字列で、PNG/JPEG画像を、HTMLファイルに直接埋め込める

<img src="data:image/png;base64,xxxxx..." />
499496
垢版 |
2020/02/06(木) 12:59:31.10ID:/hIhK6yv
>>492
適切に、1つに限定される、セレクターを作るのが難しい!
以下で、特定できないのか?

class="rg_i Q4LuWd tx8vtf"
data-iid="0"
jsname="Q4LuWd"

それか、img 要素の外側で、id など、限定される要素を探すか。
基本的には、idを探さないと特定できない

idを振っていない場合は、そのサイト特有のルールを発見しないといけない!

例えば、5ch のスレ内では、id が無いから、
data-id に投稿番号が入っているので、それを使うとか

このように、相手のサイトを分析するのが難しい!
500デフォルトの名無しさん
垢版 |
2020/02/06(木) 13:30:53.32ID:GAMNd4TG
>>495
firefoxのUA、修正します。すみませんでした;

そして、以下でやってみましたが
elems = html.select('img[data-iurl]')
なぜか出来ずに、うむむ…と申し訳ありません、さらに研究してみますが…
501496
垢版 |
2020/02/06(木) 14:30:31.06ID:/hIhK6yv
>>496
にも書いたけど、
要素をAjax で非同期処理に読み込むから、またimg 要素が存在しないとか?

Ruby で、Selenium WebDriver を使えば、要素が出現するまで、自動的にwait する。
await みたいに、非同期処理を同期的に書ける
502496
垢版 |
2020/02/06(木) 14:34:29.34ID:/hIhK6yv
もっと簡単に、10〜20 秒ぐらい、sleep したら、img 要素が出現しないのか?
503デフォルトの名無しさん
垢版 |
2020/02/06(木) 16:58:26.66ID:GAMNd4TG
一応成功致しました!

>>500
結果としてelems = html.select('img[data-iurl]')
で、このelemsとしては取れていたようです!

ここは元々elems = html.select('.rg_meta.notranslate')
であったと最初に出しましたが このelemsを
↓(適当〜8行くらい)
------------------
for ele in elems:
eledict = dict()
ele = ele.contents[0].replace('"','').split(',')
for e in ele:
num = e.find(':')
eledict[e[0:num]] = e[num+1:]
imageURL = eledict['ou']・・・・・
--------------
というような感じで使っていたのですが img[data-iurl]の今回? 目的のurl自体はスムーズに取れていたようで

for ele in elems:
imageURL = ele.get('data-iurl')

今回elemsのeleを ele.get('data-iurl') で、1枚づつ取ることができたようでした。
有難うございました!
504デフォルトの名無しさん
垢版 |
2020/02/06(木) 20:03:36.02ID:bDkEju7l
asyncioってわかる人いますか?
505デフォルトの名無しさん
垢版 |
2020/02/07(金) 07:27:17.45ID:cGGfIEk4
知ってるよ(どの程度を期待してるのか知らないけどな)
2020/02/08(土) 07:30:51.90ID:u54KGCZV
thread
threading
multiprocessing
concurrent.futures
asyncio

この辺の違いがよく分からない
2020/02/08(土) 08:43:13.34ID:sQ9sQIGh
>>506
それらはOSやCPUを自力で作れる神クラスの技術者でないと理解できないし、使いこなせないと思う
一般人である自分もドキュメントを読んでみたが、チンプンカンプン(死語)だった
さっさと忘れてPythonを楽しみましょう
508デフォルトの名無しさん
垢版 |
2020/02/08(土) 10:13:41.17ID:gJJFnkpu
GUIやるなら、threadかasyncioのどちらかは必須。
2020/02/08(土) 10:16:19.38ID:I0dCURwg
プロセスとスレッドの違いは知っておいて損はない
510デフォルトの名無しさん
垢版 |
2020/02/08(土) 10:19:32.94ID:0YppiA+B
GUIやるならC#+VisualStudioが一番
511デフォルトの名無しさん
垢版 |
2020/02/08(土) 10:26:34.58ID:iJq/sxyx
Macにも持っていけるの?
>>510
512デフォルトの名無しさん
垢版 |
2020/02/08(土) 10:32:22.39ID:0YppiA+B
Mac持ってないからわからん
俺は自分用ツールしか作ったことない
2020/02/08(土) 10:37:32.38ID:VCX1KXbd
なんで情弱しか使わないMacに対応しなきゃいけないんですか!(半ギレ
2020/02/08(土) 11:10:45.42ID:E/mrDwXz
Windowsは情強だけ使っていればよろしい
515デフォルトの名無しさん
垢版 |
2020/02/08(土) 11:12:38.04ID:K7+uW5ie
シェア一割のくせに態度だけ見てると九割くらいありそうだよなw
2020/02/08(土) 12:15:26.33ID:E/mrDwXz
Mac以外の残り9割の殆どがゴミ
517デフォルトの名無しさん
垢版 |
2020/02/08(土) 12:37:42.97ID:W0we+YOR
売れない芸人が一丁前に何か言ってるわ
518デフォルトの名無しさん
垢版 |
2020/02/08(土) 13:20:07.76ID:iJq/sxyx
Windows/Mac/iOS/androidに対応したGUIを作ることができます
そう、pythonならね
2020/02/08(土) 13:33:43.29ID:9Nn74D/R
React Native + Expo

アシアルのMonaca(Cordova/PhoneGap) + Onsen UI もある
520デフォルトの名無しさん
垢版 |
2020/02/08(土) 13:47:48.76ID:YnTe+96U
普通にWindowsで作ったC#はLinuxでもMacでもMonoで動くぞ
521デフォルトの名無しさん
垢版 |
2020/02/08(土) 13:48:05.92ID:YnTe+96U
GUI含めて。
2020/02/08(土) 14:36:46.22ID:FKWW677q
>>520
.netcoreだよね?
523デフォルトの名無しさん
垢版 |
2020/02/08(土) 14:46:34.93ID:KXr/QwX0
Monoって書いてるだろ
524519
垢版 |
2020/02/08(土) 15:35:46.13ID:9Nn74D/R
C# では、Microsoft が、

>>519
や、Unity などに対抗するために、Xamarin/Mono を買収した
2020/02/08(土) 16:54:09.53ID:DP9vcaNb
>>515
ワロタ!(・∀・)
526デフォルトの名無しさん
垢版 |
2020/02/08(土) 17:09:56.17ID:Gwq8LIiY
Ruby禁止だけじゃなくMono/C#も禁止するか
527デフォルトの名無しさん
垢版 |
2020/02/08(土) 17:19:51.57ID:szXf7gpM
qtって汚いよな
528デフォルトの名無しさん
垢版 |
2020/02/08(土) 17:28:08.83ID:uuv8oSvR
RADツールもないもんな
知らんけど
2020/02/08(土) 17:29:00.79ID:0wE1WgKD
>>515
開発者のMacのシェアは約30%、Windowsは約45%、Linuxが25%
Windowsはシェア半分もない
2020/02/08(土) 17:46:35.97ID:Ewdvkn0R
世代交代しか訴えられないんじゃぁ、ぶてぃじぇっじもたいした候補じゃねーなぁ
2020/02/08(土) 17:51:48.56ID:lxxY/dO6
やっぱ一番かっこいいのはkivy?
532デフォルトの名無しさん
垢版 |
2020/02/08(土) 20:33:49.47ID:Y+Ds/PpP
>>506>>507
良くわかるけど
Pythonやるにはあまり関係ないよ?
2020/02/08(土) 21:53:48.06ID:tg7wd02h
>>506
ソフトエンジニアならわからないと馬鹿にされるんだろうが
でも、この底辺スレに来る連中はエンジニアではなく低レベルのサンデープログラマが
ほとんどで分からない奴が大多数だろ(もちろん俺もわからん)
2020/02/08(土) 22:16:28.53ID:DP9vcaNb
>>506
プロセス(OSから見えてる単位)→スッドレ(プロセスの下にわさわさ増殖可能)→コア(CPUの部品)

1プロセス=1CPU
プロセスとプロセスの間の情報やり取りはゲキムズ&低速。

スッドレとスッドレの間はやり取りOKだけど、
メモリを奪い合わったり書き換えっこになったりしないように要注意。
あと、旧来は1スッドレ1コアが普通だったけど、
今は2スッドレ1コアが普通になりつつあり、
多スッドレ→1コアする場合はメモリ領域の扱いに注意が必要。

(どのスッドレも同時にみんな手をつないでゴール!を強要されない計算の場合は)
1つのプロセスからいっぱいスッドレわかせて計算するより、
いっぱいプロセス湧かせて順次まとめあげる方が、高速&効率が良いはずである。
だが、
多プロセス化するとメモリはもっさり消費される傾向なので、
ほんとのところは、
やりたいことが同期を強く求めてるかどうかと、マシンスペックによるのである。
535デフォルトの名無しさん
垢版 |
2020/02/08(土) 22:17:55.33ID:0YppiA+B
突っ込まないぞ
2020/02/08(土) 22:18:40.14ID:0wE1WgKD
スッドレスッドレ
(わさわさ)
2020/02/08(土) 22:31:02.57ID:DP9vcaNb
(つづき)
さきにあげた並行処理をPythonにさせるとき使うライブラリが506の質問であがってるさいしょの3ツ。

threading : スッドレをいっぱいわかせることができる(マルチスッドレ)
multiprocessing : プロセスを複数作れる

ケツ2つはやはり並行処理なのだが、
「ノンブロッキング処理」とゆうのをさせるためのもので、
投入されたPythonのバージョンが違う(concurrent.futuresの方が古い)のと、
とっつきやすさが違う(concurrent.futuresの方が人類にはとっつきやすい)。
これらを使うメリットがあるのは下の3条件を満たしてるとき。特に3についてはよく考えろ。
1.過程で、ボトルネックなクソ重い処理がある
2.それが何度もやってくる
3.ボトルネックの通過完了時刻が全部バラバラになってもおk(追い越しOK)で、
  最終的にまとまればいい。

もっと詳しくは
ggってHitした↓でもよんでくれ。
ttps://qiita.com/icoxfog417/items/07cbf5110ca82629aca0
2020/02/08(土) 22:31:57.71ID:DP9vcaNb
ココハ ゴジャースナ(・∀・)スッドレ ダヨ!!!
2020/02/09(日) 01:28:40.71ID:JzPk4jqf
>>534
ハードウェアマルチスレッディングとソフトウェアによる通常のマルチスレッドをごちゃまぜに理解してるようだな。
勉強してからもう一度書き込むように。
540デフォルトの名無しさん
垢版 |
2020/02/09(日) 07:52:13.11ID:CdDouLVX
>>> (10).to_bytes(2,'big')
b'\x00\n'

期待している結果となりません。
b'\x00\x0a' にならないのは何故?
2020/02/09(日) 08:44:46.73ID:vHnIKgeN
>>540
ドキュメントのbyteオブジェクト関連の項目を読むと書いてあるが
文字として見せた方がわかりやすいと思われるバイト値は
16進ではなく文字で表示する方針なのだそうだ
だから値としては正しく格納されているので気にしなくてよろしい
2020/02/09(日) 09:24:21.10ID:CdDouLVX
>>541
納得しました
誰得の方針なのか、モヤモヤは残りましたが…
2020/02/09(日) 09:30:32.92ID:vHnIKgeN
>>542
ところで、この(値).to_bytes()っていう書き方は初見なんだが
いつからある機能なんだろうか(自分の知識はver.3.3で止まっている)
JavaっぽくてPythonらしくないと感じるのだが
2020/02/09(日) 09:51:55.28ID:CdDouLVX
>>543
int.to_bytes(length, byteorder, *, signed=False)

New in version 3.2.
だそうです
2020/02/09(日) 10:38:09.30ID:hMxVM0F3
flaskでsms認証つけたいんですけど何がおすすめでしょうか?
アカウントにユーザーのメルアド、氏名、住所もつけておきたいです。
2020/02/09(日) 10:56:43.41ID:vHnIKgeN
>>544
サンクス
一つ賢くなったよ
2020/02/09(日) 11:03:20.76ID:uG+JJfG5
知識が増えただけで賢くはなって無いんじゃないの
2020/02/09(日) 11:07:52.69ID:vHnIKgeN
>>547
人の会話に茶々入れるんじゃないよ
即NGだ
2020/02/09(日) 11:26:42.55ID:uG+JJfG5
会話に茶々入れたくなければ公開掲示板なんかで聞かなきゃいいじゃん
つまりいくらでも茶々入れていいのが2ch5chでしょ
その基本を無視して俺ルールをいきなり押し付けられても困る

で、賢さってのは知識量のことなワケ?
2020/02/09(日) 11:27:51.13ID:uG+JJfG5
だって「超初心者」が知識と賢さを混同してるらしいからね
ほっとけないね
2020/02/09(日) 11:32:14.37ID:EbhgtQ51
>>539
>ハードウェアマルチスレッディングとソフトウェアによる通常のマルチスレッドをごちゃまぜに理解
そのようだ…

ありがとう
そしてありがとう

Pythonのライブラリでやれるのは
ソフトウェア的マルチスッドレだな
2020/02/09(日) 11:34:06.96ID:EbhgtQ51
というわけで
>>506よ、
536のことはうっちゃっておいて
>>537の先頭2行も脳内から消して、詳しくはケツに貼ったQiitaの人の記事を読んでクレクレ
2020/02/09(日) 12:11:02.39ID:vWZlCr2H
list = [1,2,3,4,5,6,7,8,9,10]
というリストがあった場合
for i in list:
とするよりも
for i in set(list):
とする方が高速ですか?
それとも、setに変更しても元々がリストなので早くならないですか?
2020/02/09(日) 12:16:47.36ID:uG+JJfG5
一般的には想定される普通の使い方をする時に一番早くなるように言語を作る
それに間に一枚噛んでると遅くなる、と思うのが人間

あとは長さ10万くらいのリストを数千回試して時間を計る
2020/02/09(日) 12:26:35.34ID:mfrF5HLR
>>553
試すといいよ。ってのが正しいと思うけど、あえてマニュアルから。
https://docs.python.org/ja/3/reference/compound_stmts.html#the-for-statement

> 式リストは一度だけ評価されます。

ってあるから、ほぼ変わらんのでは?
2020/02/09(日) 12:44:06.57ID:zgc2MTJg
list->setのコスト分だけ遅いだろ
2020/02/09(日) 12:53:21.16ID:2kp9QhUs
論より証拠
昔の人は良いことを言った
558デフォルトの名無しさん
垢版 |
2020/02/09(日) 13:38:53.89ID:haksjRuS
お前ら木偶の坊なんだから俺の疑問に答えて少しは世の中の役に立てよ

という意識があのような質問を生むのだ
559デフォルトの名無しさん
垢版 |
2020/02/09(日) 14:44:11.09ID:KmTvxb40
>>555
sum(for x in range(10))
sum([for x in range(10)])
これの違い。
560デフォルトの名無しさん
垢版 |
2020/02/09(日) 14:49:31.50ID:KmTvxb40
sum(x for x in range(10))
sum([x for x in range(10)])
だった。
2020/02/09(日) 14:56:02.52ID:OACAfflF
>>560
どう違うの?
下は内包表記?
2020/02/09(日) 15:22:07.62ID:O6Vx4x7H
>>553
listをsetに変換するコストを無視してもsetをイテレートするほうが遅いよ
hash tableをイテレートする時に必要な処理とlistをイテレートする時に必要な処理の違い

といってもその差は微々たるものだから
その差が重要なプログラムを書こうとしてるなら言語を変えたほうがいいかも
563デフォルトの名無しさん
垢版 |
2020/02/09(日) 15:35:28.11ID:vWZlCr2H
>>554-562
ありがとうございます
あまり大きくは変わらないのですね
参考にします
564デフォルトの名無しさん
垢版 |
2020/02/09(日) 15:45:54.02ID:wTv3WydA
>>561
上: generator (リストは造らない)
下: 内包表記 (リストが造られる)
565デフォルトの名無しさん
垢版 |
2020/02/09(日) 15:54:02.80ID:KmTvxb40
for i in set(list):
listのイテレートとsetのイテレートが発生するのと、一旦setのためのメモリが確保されるから、
setの重複排除機能が必要でない限り、100%無駄だと断言できる。
2020/02/09(日) 16:12:45.54ID:O6Vx4x7H
>>563
複数のやり方でどれが速いのか気になったら%timeitしよう
567デフォルトの名無しさん
垢版 |
2020/02/09(日) 16:14:09.61ID:wTv3WydA
むしろforの中身を見直すか
numpyとか使うべき
ループはクソ遅い
2020/02/09(日) 21:20:07.67ID:U6aZQoQk
質問者はリストにin演算子使うと遅いって話と混同してるんじゃないかと
そっちは遅くて当たり前なんだが、forでsetより遅くなる道理はないと思うが
2020/02/09(日) 22:35:43.77ID:u7Xk0tZr
>>568
>そっちは遅くて当たり前なんだが
その当たり前を教えてくれ
2020/02/09(日) 23:21:11.41ID:U6aZQoQk
>>569
setはハッシュ値で格納位置を一発で割り出す
リストは要素をすべて舐め回して探す
2020/02/10(月) 00:00:12.89ID:NX1L632S
>>568
リストをfor文を回してsetより速くする方法が他にあるってことですか?
2020/02/10(月) 00:07:40.31ID:fRmEVRio
>>570
リストって、毎回全要素をリニアサーチしているって事ですか?
2020/02/10(月) 01:46:01.93ID:y8VN1gM7
>>571
>>568
>forでsetより遅くなる道理はないと思うが
と言っている。で、これから
>リストをfor文を回してsetより速くする方法が他にあるってことですか?
がなぜ出てくるんだ?
>>568の前の部分はfor~inについてではなく、
list/setの要素にこれ(x)ある?を調べるin演算(x in list/set)についての
ことを言っている。
2020/02/10(月) 07:54:06.49ID:NX1L632S
>>573
なるほど、ありがとうございます
575デフォルトの名無しさん
垢版 |
2020/02/10(月) 09:51:35.16ID:5lt6zYiz
>>572
570はサーチとイテレートをごっちゃにしてるわな。
listは動的配列だから、オブジェクトへのポインタのポインタをインクリメントしてるだけだわな。
サーチはその後の話だろ。
2020/02/10(月) 09:58:28.58ID:8uBZGbTk
>>575
いや君がごっちゃにしてるだけでイテレートの話なんてしてないだろ
570はin演算子使った時にどうやって探すかの話だろ
2020/02/10(月) 16:12:22.59ID:fRmEVRio
色々脱線はしているのかもしれないが、最初の質問は >>553
リストを処理するのに、そのままよりも、
setを噛ませた方が速くなるかどうか、ということであって
リストの内容は全件処理しているようだし
2020/02/10(月) 17:20:59.87ID:8uBZGbTk
なに意味不明なことうだうだ言ってんの
2020/02/10(月) 17:29:20.70ID:fRmEVRio
568 名前:デフォルトの名無しさん[sage] 投稿日:2020/02/09(日) 21:20:07.67 ID:U6aZQoQk
質問者はリストにin演算子使うと遅いって話と混同してるんじゃないかと
そっちは遅くて当たり前なんだが、forでsetより遅くなる道理はないと思うが

570 名前:デフォルトの名無しさん[sage] 投稿日:2020/02/09(日) 23:21:11.41 ID:U6aZQoQk
>>569
setはハッシュ値で格納位置を一発で割り出す
リストは要素をすべて舐め回して探す

この辺の説明を ID:U6aZQoQk がちゃんとすれば良いんだと思う
2020/02/10(月) 17:38:58.14ID:8uBZGbTk
逆になにがわからないのかわからないんだが
2020/02/10(月) 17:42:34.83ID:fRmEVRio
分かるまで、みんなの話を聞いていたら
2020/02/10(月) 17:44:23.19ID:fRmEVRio
553 名前:デフォルトの名無しさん[sage] 投稿日:2020/02/09(日) 12:11:02.39 ID:vWZlCr2H
list = [1,2,3,4,5,6,7,8,9,10]
というリストがあった場合
for i in list:
とするよりも
for i in set(list):
とする方が高速ですか?
それとも、setに変更しても元々がリストなので早くならないですか?

これが最初の質問
2020/02/10(月) 17:47:57.76ID:fRmEVRio
この質問で想定される回答は

for i in set(list):の方が高速
どちらも変わらない
set 使わない方が高速

この三通りじゃないかと思うが
2020/02/10(月) 17:55:55.56ID:cKG4UD69
>>580
俺も何がわからないのかわからん

in演算子が何かわかってないから
>>568>>570に書いてることが理解できないんじゃないかな
と想像してみる
2020/02/10(月) 17:59:57.44ID:cKG4UD69
>>583
それはもう回答が出てるでしょ

んで普通に考えたらsetにしたほうがが速いという考えにはならないのに
setのほうが高速かもしれないと思ってしまってるのは
for loopのfor x in fooの`in`と
contains(foo, x)を演算子にしたin演算子の`in`とを勘違いしてるんじゃない?
ってコメントが>>568
2020/02/10(月) 18:20:13.36ID:fRmEVRio
回答までにしか興味は無いです
後は、妄想も含めた雑談なわけだし
2020/02/10(月) 18:21:49.94ID:8uBZGbTk
>>584
そういうことかね

>>585
前にQiitaでリストにin演算子使うと遅いっていう記事がバズってたからね
そういうの見て質問者が漠然とリストはsetより遅いって思い込んでしまった可能性はあるね
588デフォルトの名無しさん
垢版 |
2020/02/10(月) 19:06:26.64ID:NX1L632S
>>584
質問者ですがそうです
setのforループの方が早いのかと思い込んでいました
>>574で自分の勘違いに気づいたところです
2020/02/10(月) 19:34:40.34ID:TAH0RZ5f
>>583
ケースバイケース
っていう可能性もあるかと
2020/02/10(月) 19:44:21.91ID:fRmEVRio
>>589
ハッシュキーが衝突したレコードが大量にあるとか、かな?
591デフォルトの名無しさん
垢版 |
2020/02/11(火) 10:10:26.19ID:QVEssOx9
ちっちゃい質問かもなんですが
かっこ閉じ際の位置ってpython的にはどこが良いですか?

例えば
def kakko(a,b):
____a+b
というdefを使うときに行の最後にかっこをつけるか
kakko(
____1+2+3+4,
____5+4+6+7)
改行してかっこの中のインデントに合わせるか
kakko(
____1+2+3+4,
____5+4+6+7
___)

kakkoのインデントに合わせるのか
kakko(
____1+2+3+4,
____5+4+6+7
)
2020/02/11(火) 10:24:42.95ID:iLli/Di+
>>591
pythonの思想は1行で処理だから改行すな
593デフォルトの名無しさん
垢版 |
2020/02/11(火) 10:30:13.65ID:KtXysiBK
kakko(
____1+2+3+4,
____5+4+6+7)
または
kakko(1+2+3+4,
____5+4+6+7)
594591
垢版 |
2020/02/11(火) 11:02:07.61ID:QVEssOx9
>>592
ですよね・・・
そうなると式が長くなる時は
かっこの前に分かり易い名前をつけて
さきに計算しておいたほうが良いですか?

kakko_a = 1+2+3+4
kakko_b = 5+4+6+7
kakko(kakko_a,kakko_b)

>>593
ありがとうございます
かっこ閉じは改行で分離しない方が良いんですね
■ このスレッドは過去ログ倉庫に格納されています