くだすれPython(超初心者用) その45【Ruby禁止】at TECH
くだすれPython(超初心者用) その45【Ruby禁止】 - 暇つぶし2ch403:デフォルトの名無しさん
19/11/29 17:46:37.36 po6NZMwT.net
python勉強しようと思うんだけどエディタはjupyterがデフォなの?
visual studioになれてるからvs使いたいんだけどまずいのかな。

404:デフォルトの名無しさん
19/11/29 17:47:25.58 lBRwa/7I.net
ok

405:デフォルトの名無しさん
19/11/29 17:51:35.27 VBGSEbtt.net
>>383
PCのスペックが足りてて問題なく動けば問題ないぞ
スペック足りない俺様PCでは
秀丸エディタかsakuraエディタが精いっぱいなんだぜ

406:デフォルトの名無しさん
19/11/29 19:37:04.50 LMfDTWZ+.net
>>383
VSCodeにしとけ
MSはPythonの開発環境としては今VSCodeを推していて、本家VSの方のPythonサポートはもう将来性がない

407:デフォルトの名無しさん
19/11/29 19:41:46.20 VBGSEbtt.net
>>386
横レスだけど参考になった

408:デフォルトの名無しさん
19/11/29 19:56:54.52 SQehs03a.net
>>380
>漏れもpassは禁止で正しく処理するべきだと考えるが
passは正しい処理ではないと言っているようだが、そう断言できる根拠はないだろ。
ログを吐けばオーケーというのも意味わからん。プログラムの正しさとは何の関係もないだろうに。

409:デフォルトの名無しさん
19/11/29 20:05:59.92 8hJB6N01.net
保守性が落ちるコードは正しいコードとはいえないだろ
例外処理でpassするくらいならそもそも例外が出ないようにすべきだし
自分で例外処理が書けないなら例外をそのまま発生させて別の誰かか未来の自分が対処できるようにすべき
自分ひとりで全部完結するプログラミングなら
他人から見てエラーを脳死で握りつぶしているのか
面倒臭くてpassしてるのか分からない変なコード書くのもありかもしれないけどな
ぶっちゃけ「正しいコード」が書きたいならpythonじゃなく証明型プログラミング使えばいいだけだしな

410:デフォルトの名無しさん
19/11/29 20:10:38.20 5FLVJ8iu.net
正しい処理どうこうの前に
passは文字通り何もしてないんだから処理したとは言わないだろ

411:デフォルトの名無しさん
19/11/29 20:18:27.56 VBGSEbtt.net
>>389
> 例外処理でpassするくらいならそもそも例外が出ないようにすべきだし
> 自分で例外処理が書けないなら例外をそのまま発生させて別の誰かか未来の自分が対処できるようにすべき
>
> 自分ひとりで全部完結するプログラミングなら
> 他人から見てエラーを脳死で握りつぶしているのか
> 面倒臭くてpassしてるのか分からない変なコード書くのもありかもしれないけど
↑イイ!!(・∀・)こと書いてある!!!

412:デフォルトの名無しさん
19/11/29 21:32:51.55 SQehs03a.net
>>389
>例外処理でpassするくらいならそもそも例外が出ないようにすべきだし
なんか言っていることが矛盾してるね。自分ひとりで全部のコードを書いているわけじゃなけりゃ
下層のルーチンから例外が出ないようにするなんてことが常にできるわけがないだろう。
自分で保証できるのは上流の呼び出し元にどういう例外を渡すか(渡さないか)だけ。
>他人から見てエラーを脳死で握りつぶしているのか
>面倒臭くてpassしてるのか分からない変なコード書くのもありかもしれないけどな
意図がわかりやすいコードを書くことが推奨されるのはもちろんだが、逆にコードだけからは
意図を判断しづらいケースはいくらでもあるわけなんでそこを非難しようとしても不毛なだけだと
思うがな。
例えば逆のケースで例外をcatchしていないコードがあった時、それが意図的にスルーして
いるのか面倒くさいからかcatchしなかったのかはたまた例外が発生する可能性を見過ごして
いたのか、コードの字面だけからはやっぱり判断できんだろう。
そもそも、面倒くさくて握りつぶすという発想がよくわからんな。
面倒くさいなら何もしないでスルーするんじゃないの?
#Javaの話で関数の仕様を変えられないから、とかならわからんでもないが。

413:デフォルトの名無しさん
19/11/29 21:44:06.26 8hJB6N01.net
>>392
下層で例外を上に渡すのか渡さないのか決めるなら
例外処理をどうするのかを上層で判断するのか下層で判断するのか
結局どちらでもない中途半端になるだけだな 
上層に例外処理を任せるなら 例外を握りつぶしにしても上層で握りつぶす
例外が出る可能性を消せないのであれば例外を隠蔽しない
例外を隠蔽するくらいなら例外が出る可能性を完全に消す
単純な話だ


414: >例えば逆のケースで例外をcatchしていないコードがあった時、それが意図的にスルーして >いるのか面倒くさいからかcatchしなかったのかはたまた例外が発生する可能性を見過ごして >いたのか、コードの字面だけからはやっぱり判断できんだろう。 このうちのどれかなんて判断しなくていい 全部対処の必要があるからな 君は「問題なく動くコード」を作ることを最優先にしているようだがそのために「問題を起きていないことにする」んじゃあ意味がない 起きてない問題を解決するのは起きている問題を解決することの数倍難しいんだ エラーが発生すること自体は開発の過程においては別に悪いことじゃない エラーを見かけ上発生させなくなることで問題を不可視にするほうが害悪



415:デフォルトの名無しさん
19/11/29 22:04:01.71 SQehs03a.net
>上層に例外処理を任せるなら 例外を握りつぶしにしても上層で握りつぶす
その例外を発生させた処理に近い方が適切な判断ができるに決まってるだろう。
どういうメリットがあってその処理を上層に任せるなんて言ってるのかねえ。
>エラーを見かけ上発生させなくなることで問題を不可視にするほうが害悪
こうなるともう宗教だな。
仮に内部でエラーが起きたとしても、それが外に対して悪影響を及ぼさないんだったら
無かったことにして全然問題ないと思うが。

416:デフォルトの名無しさん
19/11/29 22:08:10.95 5FLVJ8iu.net
外に悪影響を及ぼさないことを保証できる実力があるなら文句ないわ
俺にはとても出来ない

417:デフォルトの名無しさん
19/11/29 22:28:46.19 8hJB6N01.net
>>394が作ったプログラムが上手く動かなかったときは
下層上層問わずすべてのコードを精査して
「外部に対した悪影響を及ぼさないからエラーを握りつぶしてOK」と「思いこんでいるかもしれない部分」
も含めてチェックしないといけないハメになるな
地獄だぜ

418:デフォルトの名無しさん
19/11/29 22:51:00.95 X/BrqNBd.net
全能無謬の神PG降臨

419:デフォルトの名無しさん
19/11/30 10:27:47.46 rKTaGmhL.net
わださんへの反応が皆無で笑ったwさすが初心者スレ。

420:デフォルトの名無しさん
19/11/30 11:15:37.77 u5c1qEtQ.net
numpyとかいうのなしで、配列を回転させることはできますか?
テトリスのブロックの回転です
var base = [
[0,0,0,0],
[0,0,0,0],
[0,0,0,0],
[0,0,0,0]
]
var block = [
[0,0,0,0],
[1,1,0,0],
[0,1,1,0],
[0,0,0,0]
]
#
func _ready():
for y in block.size():
for x in block[y].size():
block[y][x] =
print(block)

421:デフォルトの名無しさん
19/11/30 11:41:37.85 eoIz8ORY.net
[[block[3-l][i] for l in range(4)] for i in range(4)]

422:デフォルトの名無しさん
19/11/30 11:54:44.80 rKTaGmhL.net
テトリスなら回転した情報は固定で持っとけ

423:デフォルトの名無しさん
19/11/30 12:03:43.42 OO2kPiiB.net
>>399
 >>401に補足すっと
各ブロックの向き4種類をあらかじめ準備しといて、
まわすボタン(AボタンとBボタンで回る向き違うよな)1回押されるごとに、
(左右どっちか)隣の状態へ行くようにしとけ
4種類目から次へいく指令がきたときは、1種類目を表示するようにも、しとけ。
いちいち回す計算してたら ちぬる

424:デフォルトの名無しさん
19/11/30 12:17:28.60 PlBmox+6.net
配列回すのなんて計算してインデックスを読み替えるだけだろ
配列を書き換える必要などないし計算コストなんてほぼゼロだし極めて単純な算数
>>402はよほど頭悪いんだろうな

425:デフォルトの名無しさん
19/11/30 12:51:05.66 rKTaGmhL.net
> 極めて単純な算数
長いヤツの180°回転がずれたら叫ぶぞw

426:デフォルトの名無しさん
19/11/30 12:54:57.33 OO2kPiiB.net
>>404
んだべや
配列の回転て
手計算だと結構しくじるヤツがいるし
理屈はわかってても、プログラムするとなるとバグ仕込んじゃうヤツけっこういるぞw
>>403は現場を知らない

427:デフォルトの名無しさん
19/11/30 12:57:48.37 OO2kPiiB.net
テトリスブロック回してずれたら(・x・)コロヌ!!!だけど、
ぷよぷよの場合は
「滝登り」できないと逆に困るけどなw

428:デフォルトの名無しさん
19/11/30 13:40:28.58 X9RQeX1v.net
数億パターンとかあるわけじゃないでしょ?
じゃあテーブルルックアップの方が早いに決まってる

429:デフォルトの名無しさん
19/11/30 13:51:38.88 e3px8G1e.net
visual studioでpythonをインタプリタ形式で動かすのってどこで設定すればいいんでしょう?

430:デフォルトの名無しさん
19/11/30 13:56:10.70 PlBmox+6.net
>>408
どのような方法で実行しようがPythonはインタプリタ形式で動きます

431:デフォルトの名無しさん
19/11/30 15:12:04.28 u5c1qEtQ.net
テトリス野郎です
ありがとうございます
理解できないんでもう少し調べてrから着ます(´・ω・`)

432:デフォルトの名無しさん
19/11/30 15:47:17.79 MBj/QS/D.net
class myClass():
def __init__(self, message):
self.value = message
def name(self):
self.name1 = self.value
print(self.name1)
m = myClass("hello!")
print(m.name())

433:デフォルトの名無しさん
19/11/30 15:48:48.66 MBj/QS/D.net
>>411なんですが、実行するとhello!とNoneが表示されます
Noneは、どこから湧いてきていますか(´・ω・`)?

434:デフォルトの名無しさん
19/11/30 15:50:04.56 MBj/QS/D.net
class myClass():
 def __init__(self, message):
  self.value = message
 def name(self):
  self.name1 = self.value
  print(self.name1)
m = myClass("hello!")
print(m.name())
インデント入れるとこんな感じです

435:デフォルトの名無しさん
19/11/30 15:54:41.68 OO2kPiiB.net
>>411-413
最終行が悪い
Noneがいらないなら
m.name()
でおk

436:デフォルトの名無しさん
19/11/30 15:57:11.28 OO2kPiiB.net
ところで
>>413な内容をやらせるのに
nameってつけるネーミングセンスは
ないわー

437:デフォルトの名無しさん
19/11/30 16:18:36.23 MBj/QS/D.net
サンクス、直ったわ(´・ω・`)
NameError: name 'センス' is not defined

438:デフォルトの名無しさん
19/11/30 16:34:21.86 Esy6R5Oj.net
>>409
ああ、一行入力したらすぐに結果が返ってくるようにしたいのです。

439:デフォルトの名無しさん
19/11/30 16:46:10.13 OO2kPiiB.net
>>416
なおってなにより。
2年後の自分が上からよんでって、
過去の自分に対して殺意が湧かない程度の名前をつけるようにしる。
すげーだいじだぞ。

440:デフォルトの名無しさん
19/11/30 16:51:12.50 SKhbFAll.net
Tensorflowでディープラーニングの勉強するのに必要なPCのスペックを教えてください。
GPUはやはりいりますか?

441:デフォルトの名無しさん
19/11/30 16:57:04.40 NRfKrTi3.net
はい

442:デフォルトの名無しさん
19/11/30 19:01:21.04 BP9rhd+I.net
>>419
NVIDIAのGPUがいいとか、その中でもGTX750、850、950、1050以上でないと無理だとか
メモリもできれば8GBできれば16GBがいいとか
色々あったか
4スレッドのCPUだとそれがボトルネックになったなんて話もあったかな
だがスピードを気にしないならGPUなしでも出来るだろ!って人もいる
大規模な問題は出来なくなるが

443:デフォルトの名無しさん
19/11/30 19:04:37.44 SKhbFAll.net
>>420-421
ありがとうございます。
小さな問題さえ試せればOKだと考えています。
Tensorflowやいろいろなツールを使えるようになればOKだと考えています。

444:デフォルトの名無しさん
19/11/30 19:44:27.10 OO2kPiiB.net
>>422
いやだからさ、
テンフロつかって 何がしたいかによるんだってばよ・・・
ある1人の文豪の文章全部を教師にして
文豪もどきっぽいあやしいモノをつくったったwwwくらいなら
GPUなし、一昔前の古しいPCでも3週間かけっぱでできるんだYO
ところが
文書データといっても
Abstractがひっぱってこれる既存の理系英語論文全てをターゲットにして
なんかかんかしようとすると
メモリ2テラくらい使っていいスパコンがないと、無理。

445:デフォルトの名無しさん
19/11/30 23


446::18:38.91 ID:X9RQeX1v.net



447:デフォルトの名無しさん
19/12/01 06:11:57 Yb3VJQ//.net
はじめましてPython初心者です

a = input()

で入力を求めて、[1,2,3,4,5]
と入力をしても変数aが配列にならず文字になってしまいます。
誰が良い方法をお願いします

448:デフォルトの名無しさん
19/12/01 06:47:09.10 i2YaNYYV.net
c#アプリで計測したデータをpythonで自動的に統計処理してグラフ表示する。
って考えてるんですが、言語はpythonでokでしょうか?Rを使うのとどっちがいいか悩んでます。

449:デフォルトの名無しさん
19/12/01 06:49:59 i2YaNYYV.net
想定してる統計は単回帰とコルモゴフスミノフなど簡単なものです。グラフは回帰直線表示させた後に平均値、最大値、最小値を赤でプロットしたい。

450:デフォルトの名無しさん
19/12/01 08:24:56 7UL7JgFh.net
>>425
input()は文字列を返す関数なので、自分で変換する必要がある
URLリンク(docs.python.org)

In [1]: a = input()
1 2 3 4 5

In [2]: list(map(int, a.split(' ')))
Out[2]: [1, 2, 3, 4, 5]

451:デフォルトの名無しさん
19/12/01 08:31:43 gxWit/c+.net
すみません。
macでanaconda3(python3.7)をインストールしたのですが
ターミナルでconda -versionで確認してもcommand not found
python -Vで確認しても2.7.10と表示されるのですが何故でしょうか

環境構築の質問で申し訳ないですがどなたか詳しい方いますか?

452:デフォルトの名無しさん
19/12/01 08:39:56 Yb3VJQ//.net
>>428
ありがとうございます!
変換する必要があるんですね!

453:デフォルトの名無しさん
19/12/01 08:51:20 w+6yrHlL.net
>>426-427
どっちでもできるよ

その後どういう風に上達していきたいのか
それとももうその作業さえできればおkなのか
あとは自分がどっちの言語がより好きなのか

による

454:デフォルトの名無しさん
19/12/01 08:52:50 w+6yrHlL.net
>>429
Macにデフォで入ってるPythonのほうが優先で呼ばれている件
環境変数を弄らないとだめだとおもわれるが
いじるとそれはそれで困ったことになるかもしれない

py -V
は動くけ?
(Python3系は「py」で呼べるのだ)

455:デフォルトの名無しさん
19/12/01 09:05:38 gxWit/c+.net
>>432
ありがとうございます
py -Vもcommand not foundとなってしまいました

私の今の状態はanaconda3、python3.7ともにインストールはされているもののパスが通っていないと言う認識で間違い無いでしょうか?

456:デフォルトの名無しさん
19/12/01 09:15:08.45 YC7h427T.net
>>433
パスが通ってない可能性に気づいたなら、まず自分なりにパスの確認までしてから次の質問をした方がいいぞ。(自分で考える&確かめる習慣をつけるために。)

457:デフォルトの名無しさん
19/12/01 09:27:14.95 YoP0MD/8.net
>>429
>macでanaconda3(python3.7)をインストール
>ターミナルでconda -versionで確認してもcommand not found
Mac使いさんにWin使いが出しゃばってしまうのは非常に失礼なのは承知だが
Winだと
URLリンク(qiita.com)
Anacondaでのインストール後に
Windosのコマンドプロンプトやパワーシェルにpython -vで
何か表示されるのは、むしろ良くない事だとされている
で、Macだとどうなbセろう?

458:ャfフォルトの名末ウしさん
19/12/01 09:37:44.85 w+6yrHlL.net
>>435
conda -versionも動作しないってゆってるからなー
Macは最初からシステムにPython2.7系が入ってるから
なにかがうまくいってなくても
Python2.7系がはいってますよー ってならないとおかしい。

459:デフォルトの名無しさん
19/12/01 09:38:14.87 w+6yrHlL.net
>>433
434氏がすごくイイ!!(・∀・)ことゆってくれてる

460:デフォルトの名無しさん
19/12/01 09:40:59.48 YoP0MD/8.net
anaconda Mac ターミナル
って検索したらやっぱり書いてる人がいたw
この辺はどこも同じか
でもWinはパスは無理に通すな!って書いてあるけど、
Macだと通しても異常が起こりにくいって事だろうな

461:デフォルトの名無しさん
19/12/01 09:43:21.98 SqfEoEmM.net
>>435
複数のPython環境を使い分ける必要があるのは、受託や自社サービスなどコード書くこと自体が仕事の人だけだ
その記事書いた人も例に漏れずバリバリのエンジニアのようだ(その割にはWindowsを使っているというのが滑稽ではあるが)
データ分析やちょっとした手元の処理の自動化など、アドホックにPythonを使いたいならPythonの神経質なバージョン管理は要らん

462:デフォルトの名無しさん
19/12/01 10:09:00.60 YoP0MD/8.net
>>439
>複数のPython環境を使い分ける必要があるのは、受託や自社サービスなどコード書くこと自体が仕事の人だけだ
自分の場合
1.
何かtensorflowのインストールって物凄く難しいらしい!これは別環境作っておかないとヤバい!!!
→Anaconda内にPython3.6の別環境作る。何か今年前半くらいまで3.7では無理だったらしいし
(今では可能になった)
2.
OpenCVのインストールも結構難しいらしいぞ!これも別環境作ってそっちでテストしてから統合だ!
→(1)OpenCVインストール用環境作ってインストール法確立(wheel型の選び方とインストールなど)
(2)先に作っておいたtensorflow用環境をクローンした新環境を作り、そこにOpenCVインストール
(3)全てが上手く行ったことを確認してから、BASEと、[tensorflowとOpenCV両方入った環境]だけ残して
半端なのを捨てる
3. XGBoost?こんなもんは余裕でインストールできんだろ?Baseに入れる
→yaml型がぐっちゃぐちゃになって全部使えなくなる
→Anaconda丸ごと入れ直したorz
ここでXGBoost専用環境作っておけば良かったなあ
4. 1つのWindows入りPCは、ユーザー名の姓名の間に半角スペースが入っていたため
Anacondaインストール後に別環境を作れないと判明したorz
HDDにパーティションつけてそちらにUbuntu入れて出直すべきか

463:デフォルトの名無しさん
19/12/01 10:26:29.97 SqfEoEmM.net
>>440
それならGoogle Colabでよくね
もしモデルを実運用するにしてもどうせクラウド上でやるだろうし

464:デフォルトの名無しさん
19/12/01 10:55:49.47 i2YaNYYV.net
>>431
いずれ、AIとかwebにも手を出してみたいからpythonなんでしょうね。

465:デフォルトの名無しさん
19/12/01 15:19:46.36 9bW3hmPM.net
class myClass():
 def print(self ):
  print('test')
 def __enter__(self ):
  return self
 def __exit__(self, ex_type, ex_value, trace):
  pass
with myClass() as m:
 m.print()
m.print() #←★まだ生きてる
上の場合、withを抜けたらdel相当が行われインスタンスmは使えないと思ってたのですが使えるようです。
classのインスタンス作成でwithを使うのは意味がなかったりますか(´・ω・`)?

466:デフォルトの名無しさん
19/12/01 15:29:58.31 n5DjgtsH.net
pythonに限らない社会通念だと「コンストラクタでインスタンス作成しましょう」というのが共通認識
withは出来るがしてはいけないこと
暗黙のうちの諒解
意味が無いではなく、作法・マナー違反

467:デフォルトの名無しさん
19/12/01 15:52:03.12 jNUYX66D.net
それよりもdel相当が行われっていう認識がヤバい
誰に吹き込まれたんだよそれ

468:デフォルトの名無しさん
19/12/01 16:02:06.50 iKyYFZEF.net
LU


469:V MACHINES AG400XN-M2SH2-KK 価格.com限定 Ryzen 7/16GBメモリ/256GB NVMe SSD+2TB HDD/GTX1650搭載モデル ↑現在価格コムのランキングが6位のデスクトップパソコンです。 自分にとってはこれでも高いパソコンですが、このパソコンでディープラーニングを学習できますか?



470:デフォルトの名無しさん
19/12/01 16:04:18.10 iKyYFZEF.net
GeForce GTX 1650
というGPUが搭載されているとのことです。

471:デフォルトの名無しさん
19/12/01 16:10:49.64 iKyYFZEF.net
OSはLinuxではなくWindows 10でもOKですか?ディープラーニング専用機にはしたくないです。

472:デフォルトの名無しさん
19/12/01 16:14:17.70 iKyYFZEF.net
電源が500W以上のものばかりですが、電気代もかかるんですね。

473:デフォルトの名無しさん
19/12/01 16:19:47.62 x82DeScF.net
>>443
withにスコープはないからmはその関数内で可視というだけ。
後始末したいものがあれば__exit__でやればいい。mそのものは気にしない。

474:デフォルトの名無しさん
19/12/01 16:57:57.48 i659FOIW.net
A列の値でカンマで区切られたB列に入っている文字列の位置を検索したいのですが、
A列 え
B列 あ, い, う, え, お
欲しい結果 → 3
カンマでsplitした後にA列の値の参照ができなくて、頭がぐるぐるしてきました

475:デフォルトの名無しさん
19/12/01 17:06:58.45 w+6yrHlL.net
>>451
ソースを>>1に挙がってるソース用うpろだのどこかにうp

476:デフォルトの名無しさん
19/12/01 17:15:04.02 7UL7JgFh.net
C#のusingとかと比べると(´・ω・`)?になるのはよく分かる

477:デフォルトの名無しさん
19/12/01 17:15:22.17 n5DjgtsH.net
文字列をイコールで比べてるなら「カンマでsplitした後」は
『う』じゃなくて『 う』だな
ようするに先頭に空白でもあるんじゃねえの

478:デフォルトの名無しさん
19/12/01 22:13:46.59 gxWit/c+.net
すみません
>>433です
いろいろググって試しましたがpathが追加されず・・・
macの環境に詳しい方いませんか?

479:デフォルトの名無しさん
19/12/01 22:49:38.38 w+6yrHlL.net
>>455
「MacでPATHを通す」でぐぐれカス
あと
ルートレスとかが強烈だとそれも解かないとだめかもね

480:デフォルトの名無しさん
19/12/01 23:08:22.92 UCpH0Yie.net
>>419-423
>>446-447
マウスコンピューター、
期間限定 2019/11/20(水)11時 ~ 2019/12/4 (水)11時
URLリンク(www.mouse-jp.co.jp)
m-Book X400H
ノートPC で、87,800円
14型 フルHDノングレア (LEDバックライト)で良ければ、
Core i7-8565U, 8GB メモリ, 256GB SSD
m-Book K700XN-M2SH5
ノートPC で、133,800円
15.6型 フルHDノングレア (LEDバックライト)
Core i7-9750H, 32GB メモリ, 512GB SSD NVMe対応,
GeForceR MX250, 1TB HDD

481:デフォルトの名無しさん
19/12/02 00:39:03 jhokUOzU.net
全く関係無いが、Core i5の1万番台のu型って
4コア8スレだったのか
一部で、深層学習でGPUを使うならコア性能よりスレッド数重視だぞってあったが
本当なのかなあ

MX250だと一応はCUDAコアを使えるね
今はCPUオンボードで深層学習での性能が上がって来てるけど、それよりは数倍は良い

482:457
19/12/02 08:20:54 H5nAExhM.net
>>446
も、マウスコンピューターのタワー、96,800円。
価格.com限定モデルか

メモリも、32/64GB まで拡張した方がよい。
SSD も、512GB へ。
保証期間も3年以上は、ほしい

OS も一応、5,800円


483:で、Windows Pro版にする



484:デフォルトの名無しさん
19/12/02 09:34:41 PBi2xeij.net
こっちもMacで困ってるな~
Finder使いづらくて共有かけてWindowsエクスプローラー+Windows側のVSCodeで作業してるんだけど
Windows側(3.7.3)では問題なく動く、Mac側(3.7.3)もターミナルは問題なく動く、XCode(3.7.1)からだとPythonのバージョンが違う・・・

485:デフォルトの名無しさん
19/12/02 09:44:43.19 az4xQt0G.net
pythonはexcelと共にwin側についたからね
appleとしては排除したいところ
出来れば自社開発の軽量スクリプト言語を広めたいハズだが
winとmac両方で動くインタプリタをappleが作る……なんてのはやりたくないはずだ
なんつったって軽量スクリプト言語でトップシェアはpythonじゃなくexcel付属のvbaだからな

486:デフォルトの名無しさん
19/12/02 09:55:11.39 H5nAExhM.net
Docker Hub で、好きなバージョンを探せば?
それか、仮想環境とか

487:デフォルトの名無しさん
19/12/02 10:06:45.06 wB1a1keO.net
FinderでPython関連のファイルなんか触ったことないわ
普通VSCode上でやるかターミナルじゃね

488:デフォルトの名無しさん
19/12/02 10:45:06.16 5RGCQ9ir.net
プロゲートのpython最後までやってじゃんけんするゲームを作った
forなりifなり覚えたけどここ以降どうすればいいのかよくわからん…
今後の目標としては自分なりのプログラム作りたいけども皆さんはどのように進めていった?

489:デフォルトの名無しさん
19/12/02 10:52:33.57 KwsHxcvC.net
>>461
マイクロソフト「マイクロソフトが Excel に搭載するのは JavaScript であって、Python を使いたいのであれば PyXLL か xlwings を使え」
ExcelにPythonが搭載?その後 - xlwings を使おう
URLリンク(qiita.com)
アップル「AppleScript使ってくれる人増えないからMacの自働化用の言語にJavaScript (JavaScript for Automation : JXA) も追加したわ」

490:デフォルトの名無しさん
19/12/02 10:56:28 2anHlm9G.net
123円までは押し目買いで誰でも儲かる相場やね

491:デフォルトの名無しさん
19/12/02 15:19:02.88 /uccKnPl.net
テトリミノの回転をやってるのですが、前の配列にアクセスする方法はありますか?
array = [1,2,3,4]
for i in array.size():
■array[3]
とすると4が取り出されますが、その前の3にアクセスする方法はありますか?
array[3]-1
みたいな感じですかね
まだよく理解できんてないんで(´・ω・`)

492:デフォルトの名無しさん
19/12/02 16:12:08.26 OkhwRYub.net
a[3-1]でおk

493:デフォルトの名無しさん
19/12/02 16:19:15.17 OkhwRYub.net
よく見るといろいろおかしいな。
配列の要素にダイレクトにアクセスするならforは要らんし、
要素数を求めるならlen(array)
for i in array:
print(i)

494:デフォルトの名無しさん
19/12/02 16:37:06.71 /uccKnPl.net
前の配列にアクセスに書き換えることで、回転させるわけすよね(´・ω・`)

495:デフォルトの名無しさん
19/12/02 16:37:32.77 HSnksJTz.net
>>443
インタプリタというかIDE環境でやってると
立ち上げて実行したときのmは全部残るから
前にテストしてたmが残ってるだけじゃないのか

496:デフォルトの名無しさん
19/12/02 17:18:43.24 TTdajGZT.net
>>464
で、次は何がしたいんだ?

497:デフォルトの名無しさん
19/12/02 17:22:48.79 TTdajGZT.net
>>467
temporary=3
mae_no_yatsu=array[temporary-1]
的な
>>470
逆向きに回す場合は
次の配列にアクセス、かつ「次」が配列の要素数をこえてたら、振り出しに戻す(0番目を呼ぶ)んだぞ

498:デフォルトの名無しさん
19/12/02 23:30:43 Vi1WkRIA.net
Win環境で2枚の画像ファイルを必ず一定(Min.1)の
出力フレーム周期で、交互にフルスクリ


499:ーン表示する 手段は無いでしょうか。 今はOpnnCvのフルスクリーン設定でループさせて、 cv2.waitKey(1) sleep(0.011) といった記述ですが、原理的にずれるを避けたいです。 PsychoPyはFHDクラスのフルスクリーンに対応できず、 waitForVBlankやFrameSwap等のキーワードは把握したのですが、 使い方がわかりませんでした。



500:デフォルトの名無しさん
19/12/03 09:14:43 NKF0Kit+.net
なんか上の方でmacOSでのanaconda導入の話題あったから便乗して質問してみます

・やったこと
URLリンク(weblabo.oscasierra.net)

↑を参考に公式からインストール
ターミナルで下記実行するも
python3 --version
conda --version ともにcommand not foundになる
python --versionではおそらくデフォで入ってる2.7.10が表示される

brew install python3を実行後、python3 --versionすると3.7.0と表示

condaコマンド?は/Users/user_name/opt/anaconda3/binにあるらしい
かつ、printenv PATHしてみると上記PATHが表示されないのでPATHが通っていないと推察

URLリンク(qiita.com)

↑を参考に上記PATHを記述後、printenv PATHしてみたが変わらず

・聞きたいこと
1.condaコマンドが使えないのはPATHが通っていないという推測は合っているか

2.1が正しい場合、他にどのように通す方法があるか
 現状(anaconda3インストール時点)のbash_plofileに記載されているのは↓の質問者の試したことにあるのと同じ内容

URLリンク(teratail.com)

3.そもそもanacondaインストール手順として自分がやったことは合っているのか


稚拙な質問かつ分かりにくい文章で申し訳ありませんがどなたかご教示お願いします

501:デフォルトの名無しさん
19/12/03 09:39:57 yN5r9ueQ.net
>>474
pygame

502:デフォルトの名無しさん
19/12/03 09:41:35 yN5r9ueQ.net
>>475
3が間違ってる可能性が高い
つまり1と2は議論の無駄

503:デフォルトの名無しさん
19/12/03 10:52:33 jDo5c24e.net
>>475
$ echo $SHELL
でシェルがbashかどうか確認

$ source ~/.bash_profile
で.bash_profileの中身(conda initの記述)を実行

$ conda

504:デフォルトの名無しさん
19/12/03 10:59:33 tHrvVoQx.net
>>472
定まってないですね
なので先人が基礎的なこと覚えたあとになにをやってるのか興味があります

505:デフォルトの名無しさん
19/12/03 11:13:43 qZgArKp4.net
>>479
おれは文字列処理@Python2系に挑んで地獄を見た
機械学習ごっこも、日本語をPython2系でやって大変だった。
そしてそのせいで仕事も文字列処理系(ただし英文だった)をやらされていた。

506:デフォルトの名無しさん
19/12/03 11:44:17.75 AqN4uIMS.net
>>479
作りたいもの作ってた

507:デフォルトの名無しさん
19/12/03 11:44:47.36 NKF0Kit+.net
>>477
ありがとうございます
具体的に何が足りないor間違っていますか?
わかる範囲で指摘いただければ助かります
>>478
ありがとうございます
SHELLはbashです、昨日確認しました
残り2つはマシンが手元にないので後ほど確認します

508:デフォルトの名無しさん
19/12/03 12:34:43.15 V7OsQf4N.net
素人がAnaconda使うなと言っとるに
ほんと害悪

509:デフォルトの名無しさん
19/12/03 12:49:44.64 q4QgEASS.net
まあ最近はどの本やらサ


510:イトもpython始めるならanaconda導入から始めようみたいなの多いしそれを見たんだろう



511:デフォルトの名無しさん
19/12/03 12:53:12.70 jDo5c24e.net
>>479
先人はまず短期的な目標を定めてました

512:デフォルトの名無しさん
19/12/03 14:50:11.02 yN5r9ueQ.net
WindowsのAnacondaは悪くない
Macが糞なだけ

513:デフォルトの名無しさん
19/12/03 15:13:57.50 y8LThl7W.net
ほんとMac使いにくいなぁ、Windows版のXCodeないのかな

514:デフォルトの名無しさん
19/12/03 15:34:53.26 wVEeBLb4.net
コンピューターサイエンティストはなぜMacを使っている人が多いのでしょうか?

515:デフォルトの名無しさん
19/12/03 16:03:37.12 ZS5h3RP8.net
UNIXだから
Python使うにしても手元でアドホックな自慰をするだけならWindowsで問題ないけど、
でき上がったものをクラウドで実運用に乗せようと思うと途端にWindowsは嫌になる

516:デフォルトの名無しさん
19/12/03 17:10:29.26 5ZiHQIvd.net
ディープラーニングやらブロックチェーンやらでGPUブン回す人たちはMacなんか使わんでしょう

517:デフォルトの名無しさん
19/12/03 17:27:41 yN5r9ueQ.net
Macでどやりたいひとはwebクリエイターωの意識他界系の人らだから

518:デフォルトの名無しさん
19/12/03 17:45:48 qZgArKp4.net
> 意識他界系
  ↑New!!!

519:デフォルトの名無しさん
19/12/03 17:50:56 TyO2yArk.net
newではなかろ

520:デフォルトの名無しさん
19/12/03 17:59:03 qZgArKp4.net
他界しちゃうレベルwは新しくね?

521:デフォルトの名無しさん
19/12/03 18:12:42 I9YoNGrF.net
GPUガン積みの自作PCだとWinになる
自作の情報が多いのはWin

522:デフォルトの名無しさん
19/12/03 18:20:22 1+EGgKJy.net
macアンチ多いんだな
肩身が狭い

523:デフォルトの名無しさん
19/12/03 18:25:02 aHy1at+0.net
dockerやクラウドなどなどリモート開発が主体だから、最早WinとかMacとか関係ない。
GPUにしても、最近はGPUサーバを作ることを考慮して、Linux対応も重視されてきてる。

524:デフォルトの名無しさん
19/12/03 18:51:26.99 wVEeBLb4.net
オンラインのコンピューターサイエンス系の動画を見ると大抵Macのノートブックを使っているので、
不自然に感じました。
一般人はWindowsの人ばかりですよね?

525:デフォルトの名無しさん
19/12/03 18:59:49.01 y8LThl7W.net
Windows一筋だな、MacBookAir持ってるけどスタバ用

526:デフォルトの名無しさん
19/12/03 19:13:19.98 TpwdWSlD.net
MBP2017今も使ってるけどキーボード酷すぎで一気にアンチになったわ。
と、言ってもネットで恨み辛み書き込んでるだけでようやっと欠陥キーボードやめたらしい最新モデルの13インチ版が出たらまたMacにしてしまうかもしれん。

527:デフォルトの名無しさん
19/12/03 20:02:59.85 wVEeBLb4.net
>>500
ちなみになぜMacが好きなんですか?
素人目に見ると、Linux, Mac, Windowsどれも大差ないように思います。

528:デフォルトの名無しさん
19/12/03 21:01:39.68 qZgArKp4.net
>>498
研究室だと
初期設定を人数分するのがうっとうしいとか
元居た畑のソフトがその昔Mac用しかなかったとか
予算がありあまってるからとか
昔は入ってたヒラギノが大好きだからとか
色んな理由でMacイ諸がいる

529:デフォルトの名無しさん
19/12/03 21:07:43.82 2pgR0qgk.net
>>501
Unix環境でMS Officeがまともに動くのがmacOSだったから
今ならWindowsでもWSLあるから別にどっちでもいい
Docker使うときだけはWindows 10 proになるが、これが恐ろしく使いにくいのでmacを使っている

530:デフォルトの名無しさん
19/12/03 21:10:47.82 2pgR0qgk.net
>>483
単に使ってるヤツがダメなだけだぞ
超簡単なインストールすら出来ない奴が、本家のpythonでトラブル起こさない保証はゼロだ

531:デフォルトの名無しさん
19/12/03 21:14:29.01 2pgR0qgk.net
>>486
いや、俺の感覚ではwindowsのanacondaの方が難しい
特にvscodeでデ�


532:oッグする場合のクソさは辟易する Powershell周りがまだまだ全然安定していない macはそのあたりノートラブルだから非常に素直だ macでanaconda disってるヤツは本当に使った事があるのか疑問



533:デフォルトの名無しさん
19/12/03 21:26:28.87 2pgR0qgk.net
>>475
一応答えておくか
anacondaのインストールに失敗している可能性が高いので、まずは全部消す
anacondaはサイズがデカいので、googleでminicondaを検索
macOS 64bits版をダウンロードして、ターミナルから
bash ダウンロードしたファイル名
すると
/Users/ユーザ名/miniconda3
にインストールされる
.bash_profileに設定が追加されるかどうかはインストール最後の質問にどう答えたかで変わる

534:デフォルトの名無しさん
19/12/03 22:01:53.53 jDo5c24e.net
何を根拠にインストールが失敗してると言ってるのか??
インストール先から直接実行してみればPATHが原因かどうかはわかるやろ?
$ /opt/anaconda3/bin/conda

535:デフォルトの名無しさん
19/12/03 22:24:46.68 g35XzY+N.net
>>507
全部デフォルトでインストールした場合、condaコマンドが見つからないと言う状況は起こらないので失敗していると判断
.bash_profileに既に何らかのバグがあってanacondaのインストーラが追加したスクリプトに到達しないとかはあり得る

536:デフォルトの名無しさん
19/12/03 22:26:13.73 1+EGgKJy.net
全部消すって言ってもcondaコマンドが使えないならアンイストールすらできないんじゃね?

537:デフォルトの名無しさん
19/12/03 22:32:35.05 g35XzY+N.net
>>509
Anacondaはディレクトリをrm等で消して、
.bash_profileに追加されたスクリプトを消すだけでOK
venvとか使ってanacondaをインストールするのはオススメしない
あとは/opt/anacondaや/usr/local/anacondaに共用としてインストールしたいとか、そんな欲求は捨てて全部デフォルトに従うのが吉

538:デフォルトの名無しさん
19/12/03 22:35:56.90 1+EGgKJy.net
>>510
へーそうなのか
消すことはないだろうけど勉強になるわサンガツ
デフォルトの件は>>475のインストール手順書いたサイト見ると次へをポチポチしてるだけだからデフォルトっぽいけど何か違うんかね?

539:デフォルトの名無しさん
19/12/03 22:58:31.06 g35XzY+N.net
色々な可能性はあるけども
1. .bash_profileにバグがある
2. デフォルトshellがbashでない
3. インストール前からディレクトリの不整合を起こしていた
と言う感じかなぁ
minicondaではなくAnacondaを入れたのなら、
/Application
の下のAnaconda-Navigatorが正常に動くかどうかでも確認できそう

540:デフォルトの名無しさん
19/12/03 23:05:47.06 g35XzY+N.net
よく見ると記事が若干古いなぁ
昔のデフォルトは/anaconda3で、その設定が残ってている可能性はありそう
今のデフォルトは/opt/anaconda3

541:デフォルトの名無しさん
19/12/04 11:06:34.64 sb3P/SSe.net
>>498
おまいは印象操作に簡単に引っかかるタイプやろ
ジャパンライフに騙されるのもこんな人らだろ

542:デフォルトの名無しさん
19/12/04 12:33:08.37 tCRQbFTx.net
そして今日からAnacondaのPythonが3.8になりやがった
そして3.7に落としてから、tensorflow-gpuをインストールして、無事動作確認
tensorflow-gpuも前みたいに事前に色々入れなくても動くんだな
Visual StudioなしでcudatoolkitもcuDNNもcondaで持ってきてくれた
なおtensorflow-gpuは1.15
cudatoolkitは10.0を持ってきてくれた(RTXなので良かった)
ちょっと前にGTXの後期のを入れたときはcudaも9を自分で選んだ

543:デフォルトの名無しさん
19/12/04 20:43:50.89 yceLOpTG.net
Mac with Anacondaって変になると、アンインストールも出来ん

544:デフォルトの名無しさん
19/12/04 21:17:36.87 F/ByLZY9.net
yokokara

545:デフォルトの名無しさん
19/12/05 10:02:18 IbmhSLeW.net
VSも変になるとアンインストールも再インストールも出来ん

546:デフォルトの名無しさん
19/12/05 14:29:13 TzSLtKO4.net
URLリンク(codeday.me)


547:/261316.html この質問者と同じことがしたいんですが、回答が参考にならないです。 質問:.pyへの引数として*.csvのようなワイルドカード(のファイル名)を使いたい、 回答:.py内に'*.csv'とシングルクォートで囲って書け そういうことではなく(.pyへの直書きではなく) .pyを実行する際の引数にワイルドカードを使いたいんですが、可能でしょうか?



548:デフォルトの名無しさん
19/12/05 14:53:39 Wm9fQur5.net
リンク先の回答者が的外れなように書いてるけど、あなたが理解していないだけ。
ちゃんとglobモジュールを使うことで…と書いてある。
python test.py '*.csv'

import glob,sys
filelist = glob.glob(sys.argv[1])
print (filelist)

549:デフォルトの名無しさん
19/12/05 15:01:59 IbmhSLeW.net
ワイルドカードの展開ってshellがするんじゃなかったか

550:デフォルトの名無しさん
19/12/05 18:09:17.19 OLqlmSOk.net
import hoge
した時にimporterrorになったら
自動でpip installしたいとき
try:
import hoge
except:
subprocess.call('pip install hoge')
import hoge
こんな感じのを、関数化するにはどうすればよいですか
importをimportlib使って引数にストリングで渡すと、hogeが未宣言になります

551:デフォルトの名無しさん
19/12/05 20:08:18.78 2mCSg13D.net
やるならSetuptoolsとかでやるべき部分だと思う
せいぜい実行したいpipコマンド出力するぐらいでいいでしょ

552:デフォルトの名無しさん
19/12/05 20:51:28.08 wdnl8B6T.net
>>522
hoge = importlib.import_module(“hoge”)
hoge.hage()

553:デフォルトの名無しさん
19/12/06 00:49:38 IktivxOB.net
>>519-520
Ruby の1-liner なら、これでカレントディレクトリにある、
すべてのCSV ファイル名が表示される

ruby -e "puts Dir.glob( '*.csv' )"

'*.csv' を、コマンドライン引数として渡したいのなら、ARGV[ 0 ] に入ってくる。
ruby -e "puts Dir.glob( ARGV[ 0 ] )" '*.csv'

例えば、
ruby -e "puts ARGV[ 0 ]" 'abc'
#=> abc

Ruby の場合は、
「ruby オプション script.rb 引数」で、
スクリプトファイル名は、ARGV[ 0 ]じゃなくて、$0 に入ってくるので、
引数がARGV[ 0 ]となる

漏れは、Python は知らないので、>>520
によると、引数がARGV[ 1 ]に入ってくるのかな?

>>521
* のままなら、シェルが展開する。
ls [b-d]* # bcd で始まるファイル名

*をエスケープするには、'*' "*" \* の3つ。
expr 2 '*' 3 #=> 6

554:デフォルトの名無しさん
19/12/06 05:01:48.56 Z1B97fiv.net
>>525
糞食って寝ろ

555:デフォルトの名無しさん
19/12/06 08:57:25.01 y8t5v3Vv.net
>>525
python知らないなら出ていけ

556:デフォルトの名無しさん
19/12/06 09:24:26 jevOtndm.net
ネタじゃないうえにPython関係ない質問なんだけど
Rubyってどこで使われてるの?めったにみないよね、Windowsには無いし

557:デフォルトの名無しさん
19/12/06 09:51:33.13 ju+bNL7K.net
>>528
ネタじゃないならお前はスレタイ読めないゴミw
スレにもいらない。出ていけ。

558:デフォルトの名無しさん
19/12/06 10:26:00.43 e8Nbwz4h.net
>>528
Webサービス
有名なのはクックパッドとかGithubとか
どちらも最近はGoへの置き換えが進んでるらしいがw

559:デフォルトの名無しさん
19/12/06 13:37:02 bsu7R2yD.net
なんでそんなイライラしてんのww

560:デフォルトの名無しさん
19/12/06 14:01:46.87 rmctNxUZ.net
HDD消さずに業者に手渡したから
証明書貰ってるから大丈夫だよね?

561:デフォルトの名無しさん
19/12/06 15:08:35.02 y+wr0N/5.net
>>528
件のRubyバカが懇�


562:リ丁寧に(いい加減な話も含めて)教えてくれるだろうから、手を取り合ってどこか他所に行って続けてくれ



563:デフォルトの名無しさん
19/12/06 17:52:40 TL5X+SDz.net
>>524
関数化はどうすればいいですか?
my_import("hoge")

import hoge
と同等の機能を実現できる関数化したいです。
やっぱ無理ですか?

564:デフォルトの名無しさん
19/12/06 18:00:33 rmctNxUZ.net
setattr で local とか global に追加汁

565:デフォルトの名無しさん
19/12/06 18:28:19 c6fF/5cl.net
yokokara

566:デフォルトの名無しさん
19/12/06 18:50:12 bsu7R2yD.net
>>534
え~

def my_import(module):
____return importlib.import_module(module)

hage = my_import(“hoge”)で
import hoge as hage とだいたい同じ

567:デフォルトの名無しさん
19/12/06 18:56:20 K1aFtUDf.net
return必須なの?

568:デフォルトの名無しさん
19/12/06 19:42:50.51 ELuQ0rBw.net
def my_import(module):
setattr(globals(), module, importlib.import_module(module))

569:デフォルトの名無しさん
19/12/07 20:40:09.64 ZdcZp/3W.net
Pythonて、配列無いんですか?

570:デフォルトの名無しさん
19/12/07 20:42:30.04 tj55yZgB.net
リストの実装は配列じゃないかな

571:デフォルトの名無しさん
19/12/07 20:46:16.73 ZdcZp/3W.net
>>541
ありがとうございます。配列の事を調べると、すぐにNumpyというライブラリーの話題になってしまうので
ひょっとして標準で存在しないのだろうかと悩んでました
リストのことを調べてみます

572:デフォルトの名無しさん
19/12/07 22:27:30.46 ADlg+SvA.net
[]←これとはまた別なの?
あれ配列って長が固定なもんを指すんだっけ?
()ともまた違うんけ?
それよりnunpyの話詳しくしてほしいなって…!
なんか便利なライブラリーなんしょ?

573:デフォルトの名無しさん
19/12/07 22:38:35.16 Z1wtMTIj.net
便利というか数値配列扱って計算とかするなら実質必須

574:デフォルトの名無しさん
19/12/07 22:56:30.44 i1TdHIG2.net
>>542-543
[]はリスト
()はタプル

575:デフォルトの名無しさん
19/12/08 00:16:58.54 0l6xumYX.net
今こそ血涙の文字で告白しよう!!
僕たちが純粋な輝きを失って大人になってしまったらお座なりとおべんちゃらと、陰口と
服従と妥協と打算と倦怠と保身の中で、ずるがしこく、チョロチョロと動き回りながらネズミの
一生を送るようになるんだ。
それから結婚して子供を作って、世の中でいちばん醜悪な母親という大人になるんだ。
ああ、時の流れとはなんと残酷なのだろう!!
生きることと老いることが同義語だという過酷な命題を直視しなければならないんだ。
老いはまさしく肉体と精神の双方の病気だったが、老い自体が不治の病だということは、
人間存在自体が不治の病だというに等しく、われわれの肉体そのものが病であり、
潜在的な死なんだ。
衰えることが病であれば、衰えることの根本原因である肉体こそ病だった。肉体の本質は
滅びに在り、肉体が時間の中に置かれていることは、衰亡の証明、滅びの証明に使われて
いることに他ならないんだ。
老いはすさまじい恐怖であり苦痛であり、そして真実である。
このままだと僕たちは腐敗して汚れて蝕まれたおぞましい大人になってしまうんだ。
大人たちは日々を生きのびようとする故なき執念、執着によって、地上に栄える
ありとあらゆる悪徳と汚穢とを一身に体現しているのだ。
テチには限られた貴重な時間を死にものぐるいで生きてもらって思う存分に輝いてもらいたい。
ああ、一分一分、一秒一秒、二�


576:xとかえらぬ時を、人はなんという稀薄な生の意識で すりぬけるのだろう!!そうして血が失われるように時が失われていく。 そしてテチが二十歳になったら、その最後の輝きの絶頂の中でステージ上で美しく鮮烈に 死んで欲しい。 ああ、テチの光輝あふれる肉体と精神が劣化することも衰退することもない永遠に美しいまま 伝説となり歴史となるために無慈悲な時の流れを止めたい!! その時、テチには誰かもわからない僕も自殺する。 大人になるテチなんか絶対に許さない。僕はテチと血まみれになって心中する。 テチを殺すことを許してください。テチをステージ上で銃殺して自殺する。 僕の血とテチの血が混ざり合って純化されるのだ。 これだけはわかって欲しい。僕が誰よりも平手友梨奈を永遠に愛していることを・・



577:デフォルトの名無しさん
19/12/08 00:25:36.70 ohyhj+qx.net
来てみりゃいきなし通報案件じゃねえか……
こりゃたまげたなぁ……

578:デフォルトの名無しさん
19/12/08 08:38:54.60 d61YKsOU.net
しかも文章めっちゃ上手いよね
その才能をなぜ文学とか別の方向性に活かせないのか…

579:デフォルトの名無しさん
19/12/08 14:51:24.96 J+6Nu+8f.net
>>542
numpy 使った方が良い

580:デフォルトの名無しさん
19/12/08 17:09:05.43 pSs03yKS.net
本当に超初心者質問です。
pythonで
a=100

a = 100
では、どっちの書き方にするべきですか?
今までC#でVSが

を打つと自動的にきれいにスペース入れてくれてたので、
どう書くのが標準なのかわかりません。

581:デフォルトの名無しさん
19/12/08 17:11:09.15 iU1G1+Qw.net
a = 100

582:デフォルトの名無しさん
19/12/08 17:17:26.29 wNkvi2te.net
>>550
URLリンク(pep8-ja.readthedocs.io)

583:デフォルトの名無しさん
19/12/08 18:22:21.20 pSs03yKS.net
>>551
これVSが自動で直してくれないんでしょうか?
自分でスペースとか入れていると、
いちいち表記法を意識しなければいけないのでしんどい。

584:デフォルトの名無しさん
19/12/08 18:23:02.65 B7mwO2xN.net
>>550
pycodestyleやautopep8みたいなlinterを使うと
変な書き方してると注意してくれたり修正してれたりする

585:デフォルトの名無しさん
19/12/08 18:28:29.58 /kMCly/x.net
>>553
VSをアンインストールしてVSCodeをインストールすれば自動修正も可能

586:デフォルトの名無しさん
19/12/08 19:29:26.06 ick2zDgR.net
yokokara

587:デフォルトの名無しさん
19/12/08 19:42:50.38 Wyx2vkr6.net
>>555
C#使ってるやつのVS、アンインストールさせんなw追加でVSCode入れればいい。

588:デフォルトの名無しさん
19/12/08 20:31:30.09 ZrAxLUnk.net
>>552
そーか、インデントにはtabじゃなくてスペース4個が望ましかったのか.....
ずっとtab使ってたわ、まぁ他人に配布することないし今後もtabで行くと思うけど...

589:デフォルトの名無しさん
19/12/08 20:41:40.91 ohyhj+qx.net
そういう宗派ですからね
戒律は厳しいです

590:デフォルトの名無しさん
19/12/08 21:18:36.18 /kMCly/x.net
>>558
URLリンク(stackoverflow.blog)
> スペース派はタブ派よりも高収入

591:デフォルトの名無しさん
19/12/08 21:47:58.89 h14g0YSH.net
>>558
俺もtab(表示は4スペース)派
人に渡すことはまずないしあっても変換すりゃいいだけだし

592:デフォルトの名無しさん
19/12/08 21:52:20.12 ZrAxLUnk.net
>>560
ぱっと読んで多変量解析してなさそうな報告だったけど、本当にインデントの種類が収入の因子になって�


593:驍フかね? まぁ、俺は趣味だからtabで今後も行くし,spaceインデントを否定するつもりはないけど (1)スペースだと4段階インデントに16回スペースを押さなければならない、tabだと4回で済む (2)スペースの打ち間違いによるエラーがわかりにくい、    4段階インデントの場合、スペース16個と17個(間違い)がぱっとみわかりづらい。    CとかならいざしらずPythonだとエラーになる。tabだとtab4個と5個では違いがはっきりしてる。 オートインデント使えねえクズは死ねとか言われそうだけど.....



594:デフォルトの名無しさん
19/12/08 22:06:25.63 iU1G1+Qw.net
開発環境の整備を検討するべきだ

595:デフォルトの名無しさん
19/12/08 22:47:58.24 B7mwO2xN.net
>>562
>(1)スペースだと4段階インデントに16回スペースを押さなければならない、tabだと4回で済む
エディタの機能でtabキーを4回押せばスペース16個になる
さすがにスペースキー連打してるやつはいないよ

596:デフォルトの名無しさん
19/12/08 22:52:01.83 ZtTX+YkB.net
>>562
ちょっとちょっとw
丁寧におかしな分析してんじゃないですよ?

597:デフォルトの名無しさん
19/12/08 22:59:41.29 Wir5LDVx.net
他言語ではタブ派だけどpythonだけはvscodeでスペース4に設定してるな
indent-rainbow入れとけばインデントミスはすぐわかるし

598:デフォルトの名無しさん
19/12/09 00:23:43 1/0np3ih.net
>>557
vscodeなら直してくれるんだ・・・。
pythonsはやっぱりVSでなくてvscode使えってことなのか。

599:デフォルトの名無しさん
19/12/09 11:12:02 RLwtKsqp.net
インデントの話やPEP8の話が出て来ると
必ずと言って良いほどオレの方が正しいって
主張始めるやつが出て来るのが面白いな

スペース 2 個派です

600:デフォルトの名無しさん
19/12/09 12:15:24.24 WTLcFYnZ.net
pythonの場合、インデントが必ずしも2とか4の倍数じゃないところがめんどくさい。
パレンで囲って改行したときに、次の行頭にちまちまスペース入れなきゃならないし。
まぁ、しなくても動くけど。
タブ文字は便利だが、こうした場合スペースと混合されると紛らわしいな。

601:デフォルトの名無しさん
19/12/09 12:38:11.52 WjwE1wYD.net
>>568
Pythonは一応バイブルあるから自分が正しいって主張する奴はあんまりいなくね?
大抵は俺と一緒で「自分しか関与しないから俺流でやるぜ」って奴かと

602:デフォルトの名無しさん
19/12/09 12:59:58 W35ag/eC.net
教義を守らないヤツは異端だから滅ぼしていい
ってのが西洋人の考え方だよ

603:デフォルトの名無しさん
19/12/09 13:46:32.29 2N90NDIG.net
2はそれでホロンだ

604:デフォルトの名無しさん
19/12/09 16:20:48 qscAnUd4.net
そういえば、ホロン・リナックスってあったなぁ

605:デフォルトの名無しさん
19/12/09 16:55:51 03JGrJKy.net
他の言語(Goはタブ強制だから除く)だとスペース2個派だけど、Pythonは4だなあ
PEP以前にPythonでスペース2個は浅すぎて読めん
深いネストから戻るときに今何段目か分からん

606:デフォルトの名無しさん
19/12/09 16:57:50 VQkZ+CLb.net
ネストよりフラットが良い by zen of python
貧乳派の教祖である。

607:デフォルトの名無しさん
19/12/09 17:26:52.50 3v06ZNRZ.net
URLリンク(ideone.com)
ループをy→xの順で回して、printはlist[x][y]とすると以下の結果になります
1324
これはなぜでしょうか
どういう仕組みでこうなるかわかりませぬ

608:デフォルトの名無しさん
19/12/09 17:29:17.58 uy6UoUfX.net
え?

609:デフォルトの名無しさん
19/12/09 17:33:45.58 RLwtKsqp.net
そもそもpythonじゃないのでネタ確定だが
あえてpythonで書くと
URLリンク(ideone.com)

610:デフォルトの名無しさん
19/12/09 17:34:28.98 scocuTx7.net
>>576
varで始まってる時点でPythonじゃねぇ
チネ!!


611:!(・∀・)



612:デフォルトの名無しさん
19/12/09 17:39:42.43 RLwtKsqp.net
ごめん途中で送信したので
やり直し
URLリンク(ideone.com)

613:デフォルトの名無しさん
19/12/09 17:42:40.72 3v06ZNRZ.net
>>579
似てるのでここでいいです

614:デフォルトの名無しさん
19/12/09 17:43:07.42 3v06ZNRZ.net
>>580
ネタではないです
ただ、どういうロジックでこういう結果になるのかわからないです

615:デフォルトの名無しさん
19/12/09 17:47:31.97 scocuTx7.net
>>581
それを判断するのはオメーじゃねぇ
(・∀・)カエレ!!!
チネ!!!(・∀・)

616:デフォルトの名無しさん
19/12/09 17:56:15.08 FD9BPIub.net
>>582
xとyの値を確認しながらデバッガーでステップ実行するかprintデバッグすればわかる

617:デフォルトの名無しさん
19/12/09 19:13:08.22 3v06ZNRZ.net
ありがとう
でもわからない

618:デフォルトの名無しさん
19/12/09 20:12:58.55 8kuRYSAZ.net
>>581
もしかしてお前は自分が書いている言語が何なのかすら知らないのではないか?ロジックがどうこう言う手前の段階だろう。

619:デフォルトの名無しさん
19/12/09 21:49:55.90 m18yM9uO.net
Windowsの「アプリA」バージョン3が文字列を画面に表示してます
これを「アプリA」バージョン2に対してコピペしたいのですが
二つのアプリは同時に起動することができません
そこで、まずバージョン3を起動して、手に入れたい部分をコピーしてテンポラリー書類にコピーペースト.
入れ替わりでバージョン2を起動して
テンポラリーからコピペしたい部分をゲットして
バージョン2宛にペースト.
そんな工程を目論んでます
テンポラリーファイルには、変数名と文字列、数値が記録されることになると思います
このような手法に適した、ファイルの書き出し・読み込みと言えばどんなものがあるでしょうか?
自分なりにはpickleというものを見つけましたが、なんか難しそうな気がしました
アドバイス頂ければ嬉しいです

620:デフォルトの名無しさん
19/12/09 21:53:47.07 gL89svw9.net
クラスの勉強をするかdict型で書き出すかして
そのままpickleにかけろ
それより楽な方法は生データをテキストで保存することだが後々苦労するからやめとけ

621:デフォルトの名無しさん
19/12/09 22:18:14.86 m18yM9uO.net
ありがとうございます
dictと、クラスの定義ですね
はて?
pickleって、ひょっとして持っていけるのは要素だけで
変数名とかリスト名とかは持っていけない?

622:デフォルトの名無しさん
19/12/09 23:42:57.55 Pxm13ZGa.net
可読性を重視するならjsonもありかと

623:デフォルトの名無しさん
19/12/10 09:42:46 Gtb8KZ21.net
可読性ならjsonよりyamlやtomlのほうが…

624:デフォルトの名無しさん
19/12/10 13:06:22.84 6QYDHDQi.net
括弧が付いてると可読性が上がる

625:デフォルトの名無しさん
19/12/10 13:28:31.47 uPxE4CgL.net
カッコ悪い

626:デフォルトの名無しさん
19/12/10 13:35:45.35 F3h+m1zk.net
(E)!

627:デフォルトの名無しさん
19/12/10 15:08:32 FE1Fen7q.net
jsonファイアフォックスで見れば見やすいぞ

628:デフォルトの名無しさん
19/12/10 15:46:55.98 6QYDHDQi.net
よしなに整形してくれるからな

629:デフォルトの名無しさん
19/12/10 15:57:56 48kVELqA.net
>>589-591
msgpack

630:デフォルトの名無しさん
19/12/10 16:51:25 LOypIkS3.net
590の”可読性”はhuman-readableの意味で使ってんだろ

631:デフォルトの名無しさん
19/12/10 17:23:44.99 eJPx3dnZ.net
msgpackはJSON比で大して速くも小さくもない
人間による読み書きが可能であり大抵の言語で標準で扱えるというJSONのメリットを捨てるのに見合ったリターンはない

632:デフォルトの名無しさん
19/12/10 17:53:43.58 48kVELqA.net
充分小さいぞ

633:デフォルトの名無しさん
19/12/10 18:12:40.55 eJPx3dnZ.net
せいぜい50%程度を充分と思うかは貴方次第
私はそうは思いませんね

634:デフォルトの名無しさん
19/12/10 18:15:41.31 48kVELqA.net
キーを何度も使いまわすのは無駄だと思う

635:デフォルトの名無しさん
19/12/10 19:20:


636:38.59 ID:eJPx3dnZ.net



637:デフォルトの名無しさん
19/12/10 19:51:08.94 1ZU0zLKJ.net
まあ一連のレスは無駄そうだな

638:デフォルトの名無しさん
19/12/10 19:59:18.07 ORQYQVvI.net
yokokara

639:デフォルトの名無しさん
19/12/10 20:52:52.51 hzlCevra.net
可読性といえばxmlじゃないの
いやよく知りませんけど!

640:デフォルトの名無しさん
19/12/10 20:56:35.79 6QYDHDQi.net
訳あってWordのdocument.xmlを読んだが非常に厳しい

641:デフォルトの名無しさん
19/12/11 09:06:12.26 ZT47FwY4.net
>実行環境(Pythonのバージョン・OS名・IDEの種類とバージョン)をシッカリ書くこと。
Python2.7.1 Windows 2000pro 開発環境はPython付属のIDLEです
Win32のクリップボードから取得した要素を、順番に辞書に渡しているのですが
「一番目、二番目」の順で渡したものが、「二番目、一番目」とひっくり返ったり
三つ渡すと「三番目、三番目、二番目」なんて順で保管されたりして、訳がわかりません
「辞書型オブジェクトには順序がありません」という話ではなくて
keyを使って取り出してみると整合してないのです
助言を頂ければありがたいです。

642:デフォルトの名無しさん
19/12/11 09:07:29.80 ZT47FwY4.net
>>608
(続き)
(続き)
import win32com.client
import win32clipboard
def copy(text):
  win32clipboard.OpenClipboard()
  win32clipboard.EmptyClipboard()
  win32clipboard.SetClipboardText( text, win32clipboard.CF_UNICODETEXT )
  win32clipboard.CloseClipboard()
def paste():
  win32clipboard.OpenClipboard()
  data = win32clipboard.GetClipboardData(win32clipboard.CF_UNICODETEXT)
  win32clipboard.CloseClipboard()
  return data
oAutoIt = win32com.client.Dispatch("AutoItX3.Control")
#Windowsアプリケーションでカーソルを操作するためのAPIです
oAutoIt.WinActivate("とある請求書ソフトウェア - [xxx-xx-x.uqm]")
#APIは、とある請求書ソフトウェアが起動して、xxx-xx-x.uqmウィンドウが開くまで待機して、その後実行します

643:デフォルトの名無しさん
19/12/11 09:08:21.34 ZT47FwY4.net
>>609
(続き)
dic = {}
oAutoIt.MouseClick("left",91,369,3)
oAutoIt.MouseClick("left",654,65,1)
#とある請求書ソフトウェアから"AAAAA"をコピーしてきます
dic ["key"] = paste()
oAutoIt.MouseClick("left",345,367,1)
oAutoIt.MouseClick("left",649,62,1)
#とある請求書ソフトウェアから"BBBBB"をコピーしてきます
dic ["key2"] = paste()
A = (dic["key"])
print(A)
B = (dic["key2"])
print(B)

#print結果
============RESTART============
>>>
BBBBB
AAAAA
>>>

644:デフォルトの名無しさん
19/12/11 09:33:54 cSF0k0t2.net
>>610
そのAPIは知らんけど、copy関数使われてなくない?

645:デフォルトの名無しさん
19/12/11 09:40:31 ZT47FwY4.net
>>610
Windowsのクリップボードを監視した感触では、
とある請求書ソフトウェアからは、正しい順番でコピーされている様子です

ペースト関数を、一回しか使わない場合は、正常動作します。
素人ながら、なんか、定義済の変数に新しい値が代入されるとき
前後でメモリの処理がまずくなっているのかなと思いました
グローバル変数とかローカル変数とか、そっちの問題なんだろうかと、それらの勉強も始めましたが
まだまださっぱりわかりません

助言だけでもいただければありがたいです

646:デフォルトの名無しさん
19/12/11 09:43:31 ZT47FwY4.net
>>611
そうですね。copy関数は使われてないですね
参考元では、copyとpasteがペアで表記されていたので
もしかして改善するときに必要になるかな?と思って、念のためにあげました
失礼しました

647:デフォルトの名無しさん
19/12/11 09:51:14 cSF0k0t2.net
>>613
copy関数使わないで、コピーはどうしてるの?
マウスクリックしかされてないみたいだけど。
想像だけど、copy関数使ってコピーしてそのままreturnしたら良いんじゃ無いの?

648:デフォルトの名無しさん
19/12/11 09:58:47 ZT47FwY4.net
>614
copy関数使わないで、コピーはどうしてるの?

「とある請求書ソフトウェア」は、画面上に「COPY」というボタンがありまして
それを一回クリックしてます
するとWindowsのクリップボードに、テキストが入ってきます

649:デフォルトの名無しさん
19/12/11 10:12:58 Z8/OjH57.net
sleepないときつくない?

650:デフォルトの名無しさん
19/12/11 10:47:34 pFOdIusR.net
>>608
3.6までの辞書は
「とにかく出てくる順番はテキトー 気分次第」になるぞ。
keyがうんたらなんたらとかいうレベルではなく。

いやorこまるなら3.7系にするか
標準で装備されてるcollectionsモジュールの「OrderedDict」(これは2.7系から使える)を使う

651:デフォルトの名無しさん
19/12/11 10:48:31 ZT47FwY4.net
>>616
後出しですみません

import time
time.sleep(0.3)
#0.3~3までいくつか検討

結果
time.sleep(3)
AAAAA

近くにある命令が辞書に入ってくる
不思議な現象が起きております
環境が悪いんですかね

652:デフォルトの名無しさん
19/12/11 10:50:17 b0NSAXs1.net
>>610
A = (dic["key"])
print(A)
B = (dic["key2"])
print(B)

これを、Ruby の式展開、JavaScript のテンプレート・リテラルみたいに、もっと分かりやすく書けないか?
puts "A の値は : #{ A }"

print結果が、単にタイミングの問題で、
後にprintされたものが、先に表示されているだけかも知れない

653:デフォルトの名無しさん
19/12/11 10:56:31.99 PLslpcOL.net
ループが理解できない(´;ω;`)

654:デフォルトの名無しさん
19/12/11 10:57:06.73 ZT47FwY4.net
>>617
いやいやいや
出てくる順番は適当で良いですけど
キーと一緒に代入した(つもり)要素が、別物になってたら困りますよね
それはそれでOrderedDict 調べてみます

655:デフォルトの名無しさん
19/12/11 11:01:37.93 ZT47FwY4.net
>>619
>これを、Ruby の式展開、JavaScript のテンプレート・リテラルみたいに、もっと分かりやすく書けないか?
すみません。今の私の技術では限界です
ソースにふりがなのついた参考書と、赤い表紙の本を手引きにしてるレベルです
>後にprintされたものが、先に表示されているだけかも知れない
探ってみます

656:デフォルトの名無しさん
19/12/11 11:17:42.24 pFOdIusR.net
>>620
ループといってもいろいろあるので
URLリンク(ja.wikipedia.org)(%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0)
↑このへんから辿って勉強しる

657:デフォルトの名無しさん
19/12/11 11:18:43.26 pFOdIusR.net
>>618
環境か
メモリの壊れかけを疑う件

658:デフォルトの名無しさん
19/12/11 12:22:25.53 fWs5lM4b.net
>>618
sleepどこに書いたの?
MouseClickした後paste呼ぶ間に入れてみれ
マウスクリックで相手のソフト側がコピーするんだったら自動化してたとしても非同期なんだよ

659:デフォルトの名無しさん
19/12/11 12:29:51.76 pFOdIusR.net
>>625
横レスだけど
> マウスクリックで相手のソフト側がコピーするんだったら自動化してたとしても非同期
なるほどとってもなっとくっく

660:デフォルトの名無しさん
19/12/11 12:44:29.61 8OP/pbId.net
dataの参照を取り出してるだけで
dataの中身を取り出してないから
printするときに逆になるんじゃね
知らんけど

661:デフォルトの名無しさん
19/12/11 12:48:31.95 ZT47FwY4.net
>>625
>sleepどこに書いたの?
>MouseClickした後paste呼ぶ間に入れてみれ
pasteの後に入れてました
1回目と2回目のコピペの間で、休ませれば正常動作するかな?と思いまして
そして、はー。これが正解でした
sleepの位置も大事なんですね
ありがとうございました
みなさんもありがとうございました

662:デフォルトの名無しさん
19/12/11 12:53:40.70 Z8/OjH57.net
AutoItからの移行組だと思ったけどあれじゃAutoItの時も動かないはずだが

663:デフォルトの名無しさん
19/12/11 15:59:30 PLslpcOL.net
URLリンク(ideone.com)
このコードの1つ目だと、1列目の行にしかアクセスできてないです
しかし、2つ目のようにarray[x][y]とすると、2つめの行までアクセスできています
しかし、yループは1度しか回していません


664: xを先に書くとxがyループの取り出しに使われるのですか?



665:デフォルトの名無しさん
19/12/11 16:03:10 8OP/pbId.net
何を意図してるかにもよるが
縦(行)をyと考えてるなら
array[y][x] でアクセスするべき

君がやりたければ
array[x][y] でも構わないが
y は横(列)になるってだけ

666:デフォルトの名無しさん
19/12/11 16:08:47 H3x5MOt+.net
>>610
printデバッグとデバッガのステップ実行を使うといいよ
両方組み合わせればタイミングが原因かどうかはだいだい切り分けられる

今回の例ならpaste関数のreturnの前にprint(“paste data: ”, data)を入れて
dic[“key”] = paste()の直前か直後にブレイクポイントを設定してステップ実行する

667:デフォルトの名無しさん
19/12/11 16:10:35 cSF0k0t2.net
>>630
ループ以前に配列を理解していない。
2つ目のはy値はずっと0でx値は0,1と変化している。
print(array[0][0])、print(array[1][0])と実行していることになる。

668:デフォルトの名無しさん
19/12/11 16:19:15 H3x5MOt+.net
>>630
array = [ [1,2], [3,4] ]

このarrayは1つ目の要素が[1,2]、2つ目の要素が[3,4]
だからarray[0]は[1,2]で、array[1]は[3,4]

array[0][0]は[1,2]の1つ目の要素なので1
array[0][1]は[1,2]の2つ目の要素なので2

for y in range(10):とするとyという変数に
0から9まで(10は含まない)を代入しつつループの中の処理を実行する
ループ内でyを参照したらそのループ開始時に代入された値が入ってる
xやyじゃなくfor i in range(10)と書いても同じ
xやyに特別な意味があるわけじゃない

669:デフォルトの名無しさん
19/12/11 16:27:38.36 PLslpcOL.net
>>631
テトリスの作成で、配列の回転をしたかったんですよ
行は[1,2]を1行目、[3,4]を2行目と考えています

670:デフォルトの名無しさん
19/12/11 17:01:24 wQahrCJY.net
>>635
拾い物
URLリンク(pastebin.com)

671:デフォルトの名無しさん
19/12/11 18:26:22.83 BSd1dztf.net
さすがにOSアップデートしろよwww
そんな化石使ってる時点で話にならない

672:デフォルトの名無しさん
19/12/12 17:12:30.59 f967V2wE.net
x = [0,0.1,0.2,0.5,1,2,3]
y = [0.5,0.5,0.4,0.4,0.5,0.4,0.5]
このリストの数値を使ってmatplotlibで折れ線グラフを書きたいのですが、xの小数の値が偏ってしまい見づらくなってしまいます。
(0 0.1 0.2 0.5 1 2 3) ←x軸の数字がこのようになってしまう。
x軸を等間隔に表示させる書き方があれば教えていただけませんでしょうか。
x,yはそれぞれx軸、y軸にあてたい数字です。

673:デフォルトの名無しさん
19/12/12 17:14:40.82 f967V2wE.net
>>638
(0 0.1 0.2 0.5 1 2 3) ←x軸の数字がこのようになってしまう。
この行スペースが表示できませんでしたが、メモリの0~0.5までが寄ってて、1~3までが間隔空きすぎている。等間隔ではないってことを言いたかったです。

674:デフォルトの名無しさん
19/12/12 17:51:08.05 dyy25qsp.net
>>638-639
fig = plt.figure()
ax = fig.add_subplot(111)
#↑ここまでは適宜自分がやってるように読み替えれ
#↓目盛りの指示を好きなように出せる呪文。y軸の設定はset_yticksだ
ax.set_xticks([0, 1, 2, 3, 4])

675:デフォルトの名無しさん
19/12/12 18:11:33.19 n05Ewb3K.net
plt.plot(x, y)
plt.show()
で普通に等間隔のtickで表示される
plt.plot(x, y)
plt.xticks(x)
plt.show()
とかすれば等間隔じゃないtickで表示される

676:デフォルトの名無しさん
19/12/12 18:21:07.32 f967V2wE.net
>>640さん、>>641さん
ありがとうございます。お二人のようにそれぞれやってみましたが等間隔で表示できません…。
少数のところが偏って表示されてしまいます。
一応コード載せます
figure = plt.figure(figsize=(10, 5))
axis = figure.add_subplot(1


677:, 1, 1) plt.plot(x,y) axis.set_xticks([0,0.1,0.2,0.5,1,2,3]) plt.show() http://o.5ch.net/1l95o.png



678:デフォルトの名無しさん
19/12/12 18:22:15.85 f967V2wE.net
すみません…。画像の乗せ方わからなかったので試しにかいてみたやつ消すのを忘れてました…!

679:デフォルトの名無しさん
19/12/12 18:28:45.35 Lo+C9eAO.net
ネタじゃなくてマジ池沼さん?

680:デフォルトの名無しさん
19/12/12 18:32:25.07 n05Ewb3K.net
>>642
>axis.set_xticks([0,0.1,0.2,0.5,1,2,3])
↑等間隔じゃないtick設定しとるやーーん

681:デフォルトの名無しさん
19/12/12 18:42:20.58 f967V2wE.net
>>645
はい。もともと等間隔ではないものを等間隔に表示したいという質問でした。
関数の値(例えばx = 0.1ならy = 0.4)をグラフにしたいと思っていました。
xの値は0~1までは少数もとりますが、1からは整数しかとらないためにグラフにすると偏りが出て見づらくなってしまいます。
それを等間隔に表示できれば見やすいかなと思いました。

682:デフォルトの名無しさん
19/12/12 20:20:59.56 TAtdTKRF.net
yokokara

683:デフォルトの名無しさん
19/12/12 20:54:04.13 n05Ewb3K.net
>>646
そいうことだったのか
tickを等間隔な値にして、対応するラベルを設定したい等間隔じゃない値にする
んでplotするxの値をそれに対応するよう変換する必要があるんじゃないのかな
自動でやってくれる方法があるのかは知らない
plt.plot(range(len(x)), y)
plt.xticks(range(len(x)), x)
plt.show()

684:デフォルトの名無しさん
19/12/12 21:57:18.88 dyy25qsp.net
>>646
無理に時空を歪めるのは見る側のことを考えてないのでヤメレ
常識的な解決策としては
・対数グラフを使う
・一部(x=0から1の区間だけ)拡大図を
  範囲内のどっか空きスペースまたは別添えでつくる

685:デフォルトの名無しさん
19/12/12 22:46:47.08 f967V2wE.net
>>648
すごい!これできれいにグラフが出せました。本当にありがとうございます!
書き方に工夫が必要で、そういうのをぱっと思いつけるように勉強いたします。
>>649
関数のグラフではなくてxに対応するyの値(値がxのときの結果はこの数値)はこれですよっていうだけの折れ線グラフを出したかったのです。
ですから時空は大丈夫のはず…です。
対数グラフというものを知りませんでしたので調べてみます。ありがとうございます。

686:デフォルトの名無しさん
19/12/12 23:26:28.33 XBUUy+/0.net
いろいろな参考書で、辞書はKeyと値のペアで出来ていると理解しましたが
keyだけがあって、値が空のを作ってしまってはいかんのでしょうか?

687:デフォルトの名無しさん
19/12/12 23:54:29.36 ZS52b4mm.net
from selenium import webdriver
browser = webdriver.Chrome('chromedriver.exe')
browser.get('URLリンク(qiita.com)')
calendar = browser.find_elements_by_css_selector('div.col-sm-12')
for col_sm in calendar:
col_sms = col_sm.find_elements_by_css_selector('th.adventCalendarCalendar_dayName')
print(col_sms.text)
エラーが
---> 9 print(col_sms.text)
AttributeError: 'list' object has no attribute 'text'
と表示されます。textで出力できないのはなぜなんでしょうか?
色々調べているのですが出力方法がわかりません。
初歩的なことですみませんが教えていただけないでしょうか。

688:デフォルトの名無しさん
19/12/12 23:58:02.89 n05Ewb3K.net
>>651
setが辞書のキーだけを集めたコレクション

689:デフォルトの名無しさん
19/12/13 00:15:27.02 +9OE4qBy.net
>>652
ブラウザのコンソールからJS叩くかIPythonとかでデバッグするかして
そのCSSセレクタで意図した要素が取得できてるのか確かめるといい
ビジュアルに確認できるのでブラウザのほうが最初はわかりやすいと思う

690:デフォルトの名無しさん
19/12/13 01:37:03.59 cqNP6rMk.net
>>654 ブラウザコンソール開いてみました。ブラウザコンソールについて調べてみたのですが よくわかりませんでした。ここに何かのコードを入力するのでしょうか。 JSとはなんでしょうか? Jupyter Notebookを使っていまして取得したいcol_smsには <selenium.webdriver.remote.webelement.WebElement (session="667d743c5f872d23247665eb139f3bac", element="f43fbb00-654d-472f-b0f0-1b43973384b4")> というようなものがいくつか入っているのですが、textを使っても出力されない状況です。 質問ばかりですみません。



692:デフォルトの名無しさん
19/12/13 02:19:41.88 VJl1Rt3v.net
普通に長さが1の配列が戻ってきてんじゃね
イテレーター使って.text使うかcol_sms[0].textでいいんじゃね
col_sm.find_elements_by_css_selector()の戻り値ggれば解決しそうな話
俺は面倒くさいのでggりませんけども…!

693:デフォルトの名無しさん
19/12/13 03:41:11 +9OE4qBy.net
>>655
JSはJavaScript
スクレイピングするならHTML/CSSと
JavaScript/DOM APIの基礎知識は必須

browser.find_elements_by_css_selector('div.col-sm-12') はJSで
document.querySelectorAll(‘div.col-sm-12’) とするのと同じ

find_element_by_css_selectorは最初に見つかった要素を返す
find_elements_by_css_selectorは要素のリストを返す
んでリストには’text’というAttributeはありませんよってエラーが出てるよね

694:デフォルトの名無しさん
19/12/13 06:07:45.61 N3jObneI.net
Cython について
Cython の pyx ファイルの中に、
@cython.infer_types(True) とあるんだけど、
この@は何の働きをしているの?記法なの?
詳しい人教えて

695:デフォルトの名無しさん
19/12/13 10:39:13.33 A6tZ4ufL.net
>>652-657
Ruby, Selenium Webdriver なら、
find_element は最初の1つだけで、find_elements はすべてを取得する(配列)
css_selector では、div.col-sm-12 などの、
Bootstrap などのCSS フレームワークなどの、デザインを指定するクラスは、あまり意味がない
#main とか、div.container.adventCalendarCalendar とか、table.table とか、
HTML の構造的に、意味があるようなセレクターを指定する。
そうすれば、スマホ・PC などのデザインによって変わらない
css_selector = "#main > div.container.adventCalendarCalendar table.table > thead th.adventCalendarCalendar_dayName"
element = driver.find_element( :css, css_selector )
elements = driver.find_elements( :css, css_selector )
puts element.text, elements[ 0 ].text, elements.length
出力
Sun
Sun
7 (配列の要素数)

696:デフォルトの名無しさん
19/12/13 11:17:38.66 V90d9jYd.net
小学生っぽい子供が混ざってるようだが
質問するときは相手に伝わるようにちゃんと考えた方が良い
技術力よりコミュニケーション力や日本語力を気にしろ

697:デフォルトの名無しさん
19/12/13 11:40:28.24 Mexu05AP.net
>>653
ちょっと難しかったです。
とりあえず辞書は、キーだけで値がなくても構わないと思うことにします

698:デフォルトの名無しさん
19/12/13 12:14:38.95 A6tZ4ufL.net
Ruby では、ハッシュのキーに値を設定しなければ、値がnil になる。
一方、存在しないキーの値を取得すると、nil になる
これでは両者の区別がつかなくなるので、デフォルト値を設定する。
そうすると、キーに値を設定しなければ、値がデフォルト値になる
バグを避けるためには、必ずキーに値を設定するか、デフォルト値を設定しておく

699:デフォルトの名無しさん
19/12/13 12:38:34.35 ZbkO1X73.net
>>661
set(集合)とdict(辞書)は内部的にはそこそこ近いことをやってる
ハッシュテーブルを作って、keyのハッシュからvalueを見るのがdict。key(setにkeyって概念はないけど、便宜上)のハッシュを見て、key自体が 衝突 and 同じ内容が含まれてるか を見て、key自体を要素として扱うのがset。
setは本当に数学における集合と同じような動作をする(bitwise操作などができる)って認識しとけばおっけー

700:デフォルトの名無しさん
19/12/13 12:41:27.69 ZbkO1X73.net
Rubyの話をしてる人が居るのは本当に謎だけど、Pythonでも
dict.get(key, default)
とすればdefaultを設定した上で値を取得できる。
あるいは、collections.defaultdictを使うのもあり

701:デフォルトの名無しさん
19/12/13 12:46:19.59 Mexu05AP.net
>>662-663
ありがとうございます

702:デフォルトの名無しさん
19/12/13 12:49:22.97 Mexu05AP.net
>>664
デフォルトを設定した辞書もあるのですね
ありがとうございます

703:デフォルトの名無しさん
19/12/13 13:41:19.76 +9OE4qBy.net
>>661
「キーだけで値が無い辞書」をどういう風に使いたいの?

704:デフォルトの名無しさん
19/12/13 15:24:58.53 yspevzV6.net
>>664
スレタイにRuby禁止って付けられるくらいに、スレ違いのRubyの話をしたがる頭のおかしい構ってちゃんが一人居ついているだけだからスルーしとけばいいよ

705:デフォルトの名無しさん
19/12/13 15:26:20.43 hzMr3/rM.net
>>667
とある請求書作成アプリのセルからテキストをコピーして辞書に格納してから、別アプリにペーストしたいのです
ケースによって空欄のセルもあるので、そのままで良かったのだろうかと考えてました
でもNoneを入れる事にしました

706:デフォルトの名無しさん
19/12/13 16:20:03.71 +9OE4qBy.net
>>669
なるほど
「キーに対応する値が無い」ケースをどう表現すべきかという話だったね
文字列の空欄を示す場合は一般的には空文字を使っておいたほうが
後でテキスト処理をする時にNoneのハンドリングが必要ないし
キー自体が存在してなくてNoneになるケースとの区別が付きやすくてベターだと思う

707:デフォルトの名無しさん
19/12/13 18:47:08.49 cqNP6rMk.net
>>656-657-659
ご回答ありがとうございます。皆さまから教えていただいたことをできる限り試してみます。

708:デフォルトの名無しさん
19/12/13 18:53:53.21 Mu2dn80c.net
>>652
そのページそもそもdiv.col-sm-12の子孫にth.adventCalendarCalendar_dayNameが無い件

709:デフォルトの名無しさん
19/12/14 00:53:34.54 28JG+Fsi.net
>>672
子孫など何か関係がないといけないのですね。入力をすればなんでも取得できると思っていました。
教えていただきありがとうございます。簡単なサイトを作れるぐらいのHTMLやCSSの基本をまずは覚えた方がいいんでしょうか...

710:デフォルトの名無しさん
19/12/14 09:57:24.53 YkKG/mMh.net
>>670
アドバイスありがとうございます
実は辞書を作る前工程で
Win32のクリップボード経由で、文字列を取得してくるプロセスがあったのですが
そこで自分が書いた関数だと、Winアプリが文字列が空だと、エラーになることに気がつきました
悩ましかったのですが、エラーになったらtry ~exceptで
変数にNoneを入れることでしのぎました
text = “” だとデバッグで読むときよく分からなかったですし
ここは、何がベターなのかもう少し考えてみます
このスレのコメントは大変ためになります

711:デフォルトの名無しさん
19/12/14 10:57:58.37 oHNLq8G6.net
馬鹿には無理

712:659
19/12/14 10:59:10.77 8NRAnTxB.net
>>673
web アプリの初心者は基本、サーバー側はRuby で、
クライアント側は、HTML, CSS/SASS, Bootstrap, JavaScript, jQuery などを使う
jQuery のCSS Selector のルールを学べばよい。
emmet も、似たようなもの
# はid で、. はクラスとか、
x > y なら子要素(子孫を含まない)で、x y なら子孫要素とか
それと、他人のHTML の解析は、基本無理。
クラスをどういう意味で使っているのか、分からないから
構造的な意味で使っているのか、単なるデザイン上のものなのか、
または、Bootstrap などのCSS フレームワークのルールなのかも


713:知れないし、 他人の考えなど、分からない col-sm-12 みたいに、small なら、12列分の幅を使うとか、 こういうデザイン上のものを、CSS Selectorに入れると、 ページのデザインが変わると、セレクトされなくなったりしてしまう 一方、構造的な意味は、変わりにくい



714:デフォルトの名無しさん
19/12/14 11:23:55.42 dDx9/YlQ.net
yokokara

715:デフォルトの名無しさん
19/12/14 11:34:02.24 TlZt0bii.net
後ろから前から

716:デフォルトの名無しさん
19/12/14 11:52:10.65 e26gFA86.net
アホな質問で申し訳ないが
class の、書き方について質問あります
Python がはじめてのプログラミング言語で
やっと手続き的な記述ではやりたいことが
できるようになってきた
オブジェクト指向理解してないのもあるかもだけど
ライブラリとか、フレームワークのclass をオーバーライドしてかく時に
self が乱立しまくってて、
効率わるいようなきがするのだけども
書き方があってるのか知りたい
現場エラー吐いてないから、いいかもしれないけど
マナーというか、お作法としてどうなんやろ?と
別途class つくったり関数作ったりするの?

717:デフォルトの名無しさん
19/12/14 14:32:25.78 tCtWHq2v.net
>>679
それは誰もが感じる疑問
Pythonではインスタンスメソッドとして扱いたいメソッドの第一引数にselfを渡して
明示的にselfを指定する以外にインスタンスメンバーを参照する方法はないので
オブジェクト指向的に書く場合はselfが乱立しまくるのが通常
”Explicit is better than implicit.”という苦しい言い訳をする人も多いけど
そんな高尚なものじゃなく単に言語の制約なのでPython使う限りは諦めて受け入れるしかない


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch