くだすれPython(超初心者用) その32at TECH
くだすれPython(超初心者用) その32 - 暇つぶし2ch659:デフォルトの名無しさん
17/03/10 20:42:08.90 1gLE1C/J.net
(1)evalを使ってhoge.pyをimportして関数aを使う方法を教えてください
■hoge.py
def a(n):
__return n * 2
■main.py
import hoge
print(eval('hoge.a(%d)' % 5))
実行するとTypeError: not enough arguments for format string

(2)上のhoge.pyの関数aをeval()を使わずlocals()かglobals()で実行する方法を教えてください
動的に実行したいのでモジュール名hogeと関数名aは文字列として扱います
■main.py
import hoge
print(locals()['hoge'].a(5)) # これはいけるけどaが文字列じゃないのでダメ
print(locals()['hoge'].locals()['a'](5)) # こんな感じでhogeもaも文字列でしたいけどこれはエラー

660:デフォルトの名無しさん
17/03/10 21:10:45.57 tsZNvBFI.net
ペアプロしたいよ

661:デフォルトの名無しさん
17/03/10 22:14:52.94 tYHwWFlR.net
>>648
(1) それでできるはず、エラーの理由がわからない
(2) getattrを使う
import hoge
print(getattr(hoge, "a")(5)) # => 10
(3) importlibを使って動的にimportする
import importlib
hoge = importlib.import_module("hoge")
print(hoge.a(5)) # => 10

662:647
17/03/10 23:06:21.90 RlygWM/c.net
>>650
先輩詳しくありがとうございます

663:デフォルトの名無しさん
17/03/10 23:43:24.32 IjVf1zYz.net
def a():
__pass

def aa():
__pass
i = 1
f = 'a' * i
while f in locals():
__f = 'a' * i
__print(f)
__i += 1
存在する関数の名前を表示したいのに
なんで3回もループするんですか?
3回目はwhileの条件式がFalseになるのに何故3回目も実行されてるんですか?

664:デフォルトの名無しさん
17/03/10 23:59:30.13 BkPIKCxb.net
そりゃそのコードじゃ3回目に突入しないとfが'aaa'にならないからだよ(´・ω・`)

665:651
17/03/11 00:02:06.18 Zr2FrbrS.net
あっ
i += 1をwhileの次の行に書いたら解決しました
先輩のツッコミのおかげです

666:デフォルトの名無しさん
17/03/11 04:22:15.44 6BNQXKpF.net
アー

667:デフォルトの名無しさん
17/03/11 04:26:22.74 7W6dDd5l.net
ネスト文だけで、最後まで仕上げたい
だけど、できない
サーバー∩ユーザー操作入れると積んじゃう
ウワァァ-----。゚(゚´Д`゚)゚。-----ン!!!!
破棄していっても、ネスト文20個が限界
どうしたらええの?(;一_一)

668:デフォルトの名無しさん
17/03/11 06:45:19.40 aLw+/MXn.net
>>647
Pythonの和訳ドキュメントは直訳が多く質が悪い
おそらくプログラミング経験のない人がやってる
まあ普通に考えれば、英語ができるプログラマーが
ボランティアで翻訳に参加してくれるわけがないんだけどね
そんな暇はないし、本人はそのドキュメントを必要としないのだから

669:デフォルトの名無しさん
17/03/11 06:55:32.28 xoJttF1n.net
>>657 菅野良二訳さないかな?

670:デフォルトの名無しさん
17/03/11 08:55:43.67 uN3WuySc.net
君たちの会社にもいるだろう
参考書は沢山持っているが翻訳が悪いと難癖ばかりの使えないプログラマーが

671:デフォルトの名無しさん
17/03/11 09:11:51.14 anHHKoFL.net
>>647>>657
おかしな翻訳だとは思わないんだかなあ
URLリンク(ja.wikipedia.org)

672:デフォルトの名無しさん
17/03/11 09:35:39.28 PkZJ5MPX.net
和田英一訳さないかな?

673:デフォルトの名無しさん
17/03/11 10:14:52.21 bAyT8ysx.net
vimの和訳よりはましだよ
あっちは英語出来ない人がgoogle翻訳使ってマージしてるから

674:デフォルトの名無しさん
17/03/11 11:21:17.33 l7ncF0gw.net
>>647は見識が広まって良かったね

675:デフォルトの名無しさん
17/03/11 11:26:17.05 ERGKVRiV.net
えらすとてねすの篩をpythonで書くとどうなります?

676:デフォルトの名無しさん
17/03/11 11:28:19.55 36z8PDHE.net
print "えらすとてねすの篩"

677:デフォルトの名無しさん
17/03/11 12:47:14.58 xuFZEUQC.net
い…筏

678:デフォルトの名無しさん
17/03/11 12:55:48.69 JsoExgwj.net
>>657
ほんそれ

679:デフォルトの名無しさん
17/03/11 12:56:01.36 JsoExgwj.net
>>662
ひどいな

680:デフォルトの名無しさん
17/03/11 13:09:46.26 l7ncF0gw.net
く・・・櫛

681:デフォルトの名無しさん
17/03/11 13:18:12.84 l7ncF0gw.net
翻訳おかしいと思って原文みたら、結局は妥当な翻訳かなってなるんよね

682:デフォルトの名無しさん
17/03/11 13:30:29.94 6BNQXKpF.net
>>664
かなりテキトー
URLリンク(ideone.com)

683:デフォルトの名無しさん
17/03/11 13:31:00.02 BuFLSVmP.net
メソッドが破壊的かどうか区別できるセマンティクスを知らないのはいいけど
意訳で直訳を批判するならその根拠を出すべきだと思う

684:デフォルトの名無しさん
17/03/11 13:37:21.71 ERGKVRiV.net
>>671 ナンパイ使うと何やってるかさっぱりですが ありがとうございました😊

685:デフォルトの名無しさん
17/03/11 13:49:18.59 JsoExgwj.net
>>671
tupleにする意味無くね?

686:デフォルトの名無しさん
17/03/11 13:50:51.92 6TyVoHd3.net
numpyの配列で全要素が0以上ならtrueを返すというのがやりたいのですがどうやればいいでしょうか

687:デフォルトの名無しさん
17/03/11 14:01:15.66 qCTmGWaI.net
pandas使ったらさあ、ちょっと前なのにパラメータがrows, colsからindexとcolumnに変わってたりと
大して意味のない気まぐれな変更多くて修正めんどくさくて大変だった。
いったん決めたインターフェースは簡単に変えるなよ

688:デフォルトの名無しさん
17/03/11 14:06:13.79 JsoExgwj.net
> . 675
またおまえか

689:デフォルトの名無しさん
17/03/11 14:28:55.88 PdJucnY4.net
>>677
なんか必死そうで笑えるw

690:デフォルトの名無しさん
17/03/11 16:42:08.91 pb1mdVVd.net
関数内でグローバル変数の書き換えには宣言が必要なはずですが、リストや辞書の場合、x[0]+= 1のような操作が可能なのは何故ですか?

691:デフォルトの名無しさん
17/03/11 17:08:24.87 JsoExgwj.net
参照が先だからじゃね

692:デフォルトの名無しさん
17/03/11 18:06:36.27 HkKeM3nW.net
俺も不思議に思ってた
参照だからってglobal宣言もなしにグローバル変数書き換えできるって整合性が取れてないんじゃないの

693:デフォルトの名無しさん
17/03/11 18:15:26.35 BuFLSVmP.net
>>679
globalは構文的な曖昧さを解決してるだけ
URLリンク(docs.python.jp)

694:デフォルトの名無しさん
17/03/11 18:16:42.55 JsoExgwj.net
>>681
「参照だから」
ではなく
「参照が先に実行されてるから」
ということが重要

695:デフォルトの名無しさん
17/03/11 18:26:16.40 sUFiWX+J.net
参照を書き換えてるんじゃなくて
参照先の値を書き換えてるからだろ
参照が先に実行されてるってどゆこと?

696:デフォルトの名無しさん
17/03/11 18:48:02.84 aLw+/MXn.net
これ怖いなあ
自分はケチだから変数名は基本一文字なんだけど
今まで作ったもののうちどこかでバグってるものがあるかもなあ

697:デフォルトの名無しさん
17/03/11 19:01:29.57 HkKeM3nW.net
いやいや、俺が言ってるのは整合性の話
関数内でグローバル宣言しない限りローカルと見做されるわけなんだから
関数内で x[0]=1 ってやったら NameError: name 'x' is not defined になったほうが整合性がとれるんじゃないかと
>>681
参照が先に実行されてるってどゆこと?

698:デフォルトの名無しさん
17/03/11 19:17:07.88 JsoExgwj.net
自身にレスするとか
いつもの自演ですか

699:デフォルトの名無しさん
17/03/11 19:18:11.96 gqEvvPBC.net
>関数内でグローバル宣言しない限りローカルと見做される
この認識が間違いだっつー話

700:デフォルトの名無しさん
17/03/11 19:19:03.12 sFjld79D.net
>>686
>関数内でグローバル宣言しない限りローカルと見做される
前提を端折るでない、関数内で代入していたら、だよ
代入してなけりゃ暗黙的にグローバルだ

701:デフォルトの名無しさん
17/03/11 19:25:32.26 7t46mzeU.net
x[0]=1 は x.__setitem__(0, 1) だからxを参照してるだけ

702:デフォルトの名無しさん
17/03/11 19:29:44.70 HkKeM3nW.net
>>687
アンカ間違えただけじゃないw
で、参照が先に実行されてるってどゆこと?
>>688
どういうこと?
URLリンク(docs.python.jp)
>>689
たしかに言葉足らずでしたね
でも代入しちゃってグローバル変数書き換えられちゃってるんですよ
変だと思いませんか?

703:デフォルトの名無しさん
17/03/11 19:45:32.67 7t46mzeU.net
アクセス保護が目的ではなく
構文解析機にローカル変数/グローバル変数どちらとして扱うべきかを明示するための構文

704:デフォルトの名無しさん
17/03/11 19:51:59.26 BuFLSVmP.net
「意図しない副作用」って単純に名前衝突でのことだと思ってたけど
まあ広義に捉えられなくもないか

705:デフォルトの名無しさん
17/03/11 20:03:52.38 sFjld79D.net
>>691
意味が分からない、それは参照先メンバに対する変更だし、変数自体への代入ではない
今のスコープになければ外のスコープを参照するのは至って普通、メンバへはカプセル化の話になる
実装元のCだってローカル宣言なければグローバル参照だし、ローカル宣言の代わりが変数代入ってだけでしょ

706:デフォルトの名無しさん
17/03/11 20:38:31.56 sUFiWX+J.net
>>691
>でも代入しちゃってグローバル変数書き換えられちゃってるんですよ
書き換えられちゃってません
言いたいことはわからなくもないんだけどね

707:デフォルトの名無しさん
17/03/11 21:06:34.59 HkKeM3nW.net
ああなるほど、確かに変数への代入じゃないですね
>グローバル変数書き換えられちゃってるんですよ
我ながらひどい表現だと思いましたw
変数名とかスコープとか参照の理解が少しだけ深まったような気がします
付き合ってくれてありがとう

708:デフォルトの名無しさん
17/03/11 21:48:30.25 pb1mdVVd.net
解答ありがとうございました
根本的な理解が足りてないようなので学習を進めます

709:デフォルトの名無しさん
17/03/11 21:55:20.97 G4RDUkFD.net
>>657
読める奴は翻訳しない
読めない奴は翻訳できない
悲しい世界

710:デフォルトの名無しさん
17/03/11 22:02:21.44 G4RDUkFD.net
pythonのスコープはガバガバ
なんでこんなビッチ仕様にしてしまったのか?

711:デフォルトの名無しさん
17/03/11 22:13:25.94 cq7m28T0.net
グローバル変数を使うと面倒だな→グローバル変数は使わない設計にしよう
これ

712:デフォルトの名無しさん
17/03/11 22:18:19.34 9ePUQEo0.net
インタープリター、お手軽仕様だろ

713:デフォルトの名無しさん
17/03/11 22:28:35.13 qRrPVhhX.net
>>700
使いにくさを指摘するとこういう主張するpython信者多いよな。
他言語でも似たようなのは見かけるけど、pythonがダントツに多い印象。

714:デフォルトの名無しさん
17/03/11 22:33:40.23 VPCZQ4CC.net
それがZen of Pythonだからな

715:デフォルトの名無しさん
17/03/11 22:35:13.02 G4RDUkFD.net
>>700
そんなん最初から使えなくていいよね
バカナん?

716:デフォルトの名無しさん
17/03/11 22:57:09.76 vF75T+Pv.net
collectionsのnamed tupleってinstance作る時に使う子?
classの定義要らない?

717:デフォルトの名無しさん
17/03/11 23:12:01.81 bce8XLS9.net
>>704
高脳が多かった時代は問題なかったが、低脳がいっぱい使うようになって
低脳仕様にしないといけなくなった。

718:デフォルトの名無しさん
17/03/12 00:39:17.69 T4N3k6YJ.net
誰が書いても同じようになるようにっていう考え方自体が低脳仕様だと思うんだが
良し悪しは別にして

719:resumi
17/03/12 01:03:40.10 f0Kjw9v5.net
これ普通にショックだね。。
本当なの??
URLリンク(goo.gl)

720:デフォルトの名無しさん
17/03/12 01:08:07.94 S7hZubyl.net
コードの貼り付けはこれでいいのかな?
URLリンク(gist.github.com)
例外の種類で戻る位置を変えたりという、gotoとかジャンプ的な動きのできる多重ループを作りたいんですが
素人すぎて上記のようなバカ正直っぽいのしか分かりません。普通はどういう書き方するんでしょうか

721:デフォルトの名無しさん
17/03/12 01:15:37.69 2xIVaz8I.net
>>705
collections.namedtuple自体は関数で、呼び出すととサブクラスを定義して返してくれる
そのサブクラスを使ってインスタンスを生成する

722:デフォルトの名無しさん
17/03/12 01:18:08.87 AQn8N+kp.net
低脳仕様だから科学者から支持されてるんだぞ
愛用しているFortranの仕様すら抑えてない科学者は多い

723:デフォルトの名無しさん
17/03/12 01:23:38.06 2xIVaz8I.net
>>705
>>> # Basic example
>>> Point = namedtuple('Point', ['x', 'y']) #namedtupleを使って、Pointというサブクラスを定義する
>>> p = Point(11, y=22) #そのサブクラスPointを使って、pというインスタンスを作る
(URLリンク(docs.python.jp))

724:デフォルトの名無しさん
17/03/12 01:26:45.33 T4N3k6YJ.net
>>709
普通は関数化してそれを呼び出すんじゃないかな
多重ループをサクッと抜ける方法はないかも
ところでhots[]はなんで入れてるの?

725:デフォルトの名無しさん
17/03/12 01:46:26.39 m/AGujgk.net
>>710
>>712
はいはいnamedtuple自体がクラスを定義する関数なんですか、なるほど
継承してオーバーライドすればmethodを使うこともできるんですね

726:デフォルトの名無しさん
17/03/12 02:13:50.47 S7hZubyl.net
>>713
hots[]は最初のinputがターゲットのリスト(food[])に存在するか、の答え合わせにつかってます。10行目~12行目くらいです
ちなみに、多重ループは関数化して~、というのはググると結構出てくるんですが
具体的にどこを関数化するんでしょうか…?
全体?それとも、ごちゃごちゃしたとこを関数化してコンパクトに見えるようにする、という意味ですか?
(上記のでいうと、3カ所のif depthブロック単位で関数化するみたいな)

727:デフォルトの名無しさん
17/03/12 02:34:31.65 2xIVaz8I.net
>>709
注文を受けたか、注文は有効か、確認済みかどうかをプロパティに持って、それを操作する関数を持つクラスを実装するのがいいと思う
あと、例外っていう言葉は例外処理がまず浮かぶから、条件分岐の時には使わんといて

728:デフォルトの名無しさん
17/03/12 11:04:47.14 zE2Y9N2c.net
windows10でpython3.5.2使ってます
python -p 9999 pydoc.py
でローカルにpythonドキュメントのwebサーバーが立ち上がりますが一緒に出てくるコマンドプロンプトが
Server ready at URLリンク(localhost:9999)
Server commands: [b]rowser, [q]uit
server>
と出て入力待ちの状態です
動作に問題はないんですが目障りで邪魔で気分がよくないです
コマンドプロンプトを表示させずに実行する方法はないでしょうか
pythonw.exeで試したけれどだめでした

729:デフォルトの名無しさん
17/03/12 11:11:33.98 zE2Y9N2c.net
python pydoc.py -p 9999の間違いです
pythonw pydoc.py -p 9999はダメでした

730:デフォルトの名無しさん
17/03/12 11:26:02.43 j2SMNxxS.net
>>711 なんでこんなのgoogleこんなの使っているの?

731:デフォルトの名無しさん
17/03/12 11:44:40.61 gSAHEv2e.net
>>675お願いします

732:デフォルトの名無しさん
17/03/12 11:49:17.73 OGxRMYSq.net
>>717
from subprocess import *
Popen("python -m pydoc -p 9999", shell=True, stdin=PIPE).wait()
をpythonwで

733:デフォルトの名無しさん
17/03/12 12:10:01.45 2xIVaz8I.net
>>675
URLリンク(ideone.com)

734:デフォルトの名無しさん
17/03/12 12:20:44.85 OGxRMYSq.net
numpy.arrayなら.min()を使う方が速いかもね

735:デフォルトの名無しさん
17/03/12 12:25:11.64 2xIVaz8I.net
>>723の方がいいな
minの存在忘れてた

736:デフォルトの名無しさん
17/03/12 12:25:39.80 gi0lLEKK.net
np.all(ary>=0)ではいかんのけ?
np.min(ary)>=0のほうが確かに速そうだけど

737:デフォルトの名無しさん
17/03/12 12:41:49.26 T4N3k6YJ.net
>>715
注文を確認したときに”N”の回答を繰り返すとhots[]が
どんどんappendされていくので何か別の意図があるのかと思ったのよ
不要な外部状態への依存は無くしたほうがメソッドとして抽出しやすくて読みやすいコードになる
def is_valid(choice)
return choice in [format(x, 'd') for x in range(len(food))]

738:デフォルトの名無しさん
17/03/12 12:42:32.61 T4N3k6YJ.net
>>715
関数化するってのは処理の塊に名前を付けてそれを呼び出すようにするっていう意味と
塊ごとのループのネストを浅くするっていう意味と両方
例えばこんな感じ
order = Order()
while not order.placed:
ask(order)
confirm(order)
if not order.confirmed:
continue
place(order)

739:デフォルトの名無しさん
17/03/12 12:51:04.90 T4N3k6YJ.net
>>715
ただPythonにはラベルもgotoもないしdo-while/do-untilやcase文もないから
こういうどこかへジャンプしたいっていうモデルをプログラミングするときは
標準だとwhile/continue/breakとif-elseで頑張るか例外で代用するかしかない
良くも悪くもそういう制約の強い言語

740:デフォルトの名無しさん
17/03/12 13:17:38.37 WG9HLLmd.net
残念だがどこかへジャンプしたいっていうモデルなどない
ヘタクソなモデリングの結果
どこかへジャンプしたいコードを書きたくなるのだよ

741:デフォルトの名無しさん
17/03/12 13:26:46.87 1AEjxjTb.net
beginとendのログを書きたがるジャップソフトハウスだとよくある光景

742:デフォルトの名無しさん
17/03/12 13:26:59.89 zE2Y9N2c.net
>>721
できました、ありがとうございます!
シェルを通してpydocを実行してstdinを接続した子プロセスを作ってその終了を待つという
スクリプトを窓のでないpythonwで実行するという解釈であっているでしょうか?

743:デフォルトの名無しさん
17/03/12 13:29:19.02 RdGtMQ3H.net
>>729
どこにジャンプするんだw

744:デフォルトの名無しさん
17/03/12 13:38:05.72 q89zFEcE.net
水平線の彼方へさ

745:デフォルトの名無しさん
17/03/12 13:43:42.94 WG9HLLmd.net
プログラマーのジャンプする先は彼岸に決まってんだろ
dive into heavenだよ

746:デフォルトの名無しさん
17/03/12 14:08:40.77 S7hZubyl.net
>>716
>>726-728
詳しくありがとうございます <


747:br> 参考にしながら、書き直してみます



748:デフォルトの名無しさん
17/03/12 14:31:17.78 T4N3k6YJ.net
>>729
どうモデリングするかは人の自由だよ
一般的な業務プログラミングではそういうのはないだろうけど
ゲームブックみたいに何ページに行くってのが頻出するやつはジャンプするモデルのほうが自然
言語の制約で思考が凝り固まるのが良い場合もあれば悪い場合がある

749:デフォルトの名無しさん
17/03/12 14:35:02.33 T4N3k6YJ.net
>>735
>>727の例だけどcontinueよりも
whileをネストさせたほうが意図が伝わりやすくていいかもね
while not order.placed:
____while not order.confirmed:
________ask(order)
________confirm(order)
____place(order)

750:デフォルトの名無しさん
17/03/12 14:46:32.11 B7xQW+GI.net
>>734 3月20日は彼岸の中日。

751:デフォルトの名無しさん
17/03/12 15:40:33.95 WG9HLLmd.net
>>736
なに意地張っちゃんてんのw可愛いのうw
そういうのはモデリングとは言わんのだよヘタクソなコーディングなw
せっかくだし彼岸にダイブでもしてみたら?w

752:デフォルトの名無しさん
17/03/12 15:44:16.45 58WNQxmr.net
彼岸じゃなくて涅槃だろ

753:デフォルトの名無しさん
17/03/12 15:53:54.89 T4N3k6YJ.net
>>739
最近の言語の実装でもgotoやラベルへのジャンプは普通に使われてるしLinuxのコードなんかgotoだらけだぞ
リーナスより君のほうがコーディングが上手いんだなw
いまだにgotoが常にharmfulだと信じてるのってパイチョンしか知らないやつだけ

754:デフォルトの名無しさん
17/03/12 15:56:43.14 T4N3k6YJ.net
このスレはPython使ってる素人の知ったかぶりが痛い

755:デフォルトの名無しさん
17/03/12 16:08:26.12 PMaU+xiL.net
そして、高度な事を聞かれると沈黙する

756:デフォルトの名無しさん
17/03/12 16:09:23.02 1AEjxjTb.net
休みの日にID真っ赤にして9回も書き込んでる奴ほどではないさ

757:デフォルトの名無しさん
17/03/12 16:47:28.12 OGxRMYSq.net
>>731
うん
shell=Trueなのはコマンド書式のため

758:デフォルトの名無しさん
17/03/12 17:25:31.13 NGwa4vbi.net
>>709
実質的にはgotoをやっている書き方もできるよ
URLリンク(codepad.org)

759:デフォルトの名無しさん
17/03/12 17:35:25.52 PMaU+xiL.net
os linux() python2.7.3
マウス操作 クリック及び絶対値によるマウス移動
Kona Linux 2.3 black(LXDE)
どうしたらええの?

760:デフォルトの名無しさん
17/03/12 17:45:00.75 WG9HLLmd.net
>>741
ハイハイw最近のガキはどうしてこう素直じゃないかねw
自分の何が間違っているのかも分からんのだろお前w

761:デフォルトの名無しさん
17/03/12 17:48:12.69 87+SaKG+.net
goto
URLリンク(pypi.python.org)
URLリンク(github.com)

762:デフォルトの名無しさん
17/03/12 18:16:41.37 r/LAIW7C.net
>>740
もうすぐですね

763:デフォルトの名無しさん
17/03/12 18:17:25.45 87+SaKG+.net
>>747
URLリンク(pypi.python.org)
URLリンク(github.com)

764:デフォルトの名無しさん
17/03/12 18:17:47.60 r/LAIW7C.net
>>743
そう
うかつなレスすると突っ込まれるから
えろいひとが回答するのを待ってる

765:デフォルトの名無しさん
17/03/12 18:51:37.38 6iMHIBm5.net
>>746
分かりにくいだけやん...

766:デフォルトの名無しさん
17/03/12 19:03:33.93 aQjVbvnT.net
pytz使わずにdatetime.now()でとった現在日時(GMT+9)をGMT-5の時刻に変換するコードをください

767:デフォルトの名無しさん
17/03/12 20:33:55.19 mNviceIe.net
>>722-725
ありがとうございます!

768:デフォルトの名無しさん
17/03/12 21:32:05.82 T4N3k6YJ.net
>>746
お、おう これはharmfulやね
抽象度ごとのコントロールフローがまとまってないと辛い

769:デフォルトの名無しさん
17/03/13 00:02:54.74 RYBEx06L.net
>>746
関数内ループなくしたのは良いが、分かりにくいな
この場合はenum使ったステートマシンでオーダー状態/遷移先を管理したほうが良いのかもな
これCだけど、URLリンク(qiita.com)
な感じに

770:デフォルトの名無しさん
17/03/13 01:13:39.27 Hmz5iRTa.net
>>746
デバッグした?

771:デフォルトの名無しさん
17/03/13 02:47:10.13 A9v11X3F.net
>>754
-16*3600

772:デフォルトの名無しさん
17/03/13 03:06:26.63 /3oucZHe.net
>>759
-14

773:デフォルトの名無しさん
17/03/13 03:17:09.94 A9v11X3F.net
そういえばサマータイムあるところだっけ

774:デフォルトの名無しさん
17/03/13 03:25:50.93 /3oucZHe.net
この場合世界標準時からの差のみだからサマータイムは考慮しなくていい
-9 + -5

775:デフォルトの名無しさん
17/03/13 09:25:01.24 9DicF29x.net
>>709
いくらPythonが統一した書き方を強制しやすいと言っても
やはりずば抜けたアホに対しては無力なようだな

776:デフォルトの名無しさん
17/03/13 09:59:32.96 qHoGQ2gO.net
くだスレってくだらないスレ?くだまくスレ?

777:デフォルトの名無しさん
17/03/13 10:08:55.92 5P5C0Ekt.net
CUDAスレ

778:デフォルトの名無しさん
17/03/13 10:28:05.73 PY1C8/Xh.net
GOTOは悪だとおもってるくだらない奴のスレ
多重ループ抜けられない、多重ループかけないって致命的じゃね

779:デフォルトの名無しさん
17/03/13 10:37:26.98 aew42WlW.net
多重ループする状況でPythonみたいな遅い言語使うな

780:デフォルトの名無しさん
17/03/13 11:07:19.72 W+gruSmy.net
例外投げて抜けるんだろ

781:デフォルトの名無しさん
17/03/13 11:23:13.57 7VMyUxLV.net
それならreturnで抜けたほうがいいだろ

782:デフォルトの名無しさん
17/03/13 13:40:55.09 N3DmujAP.net
どっちでもin

783:デフォルトの名無しさん
17/03/13 17:38:51.44 WQPH0UXu.net
breakさん「」

784:デフォルトの名無しさん
17/03/13 18:55:41.02 BnQlNWII.net
for i in range(5):
_for j in range(5):
__break
_print(i, j)
print(-1)
親のforも込みでbreakの部分でループを抜ける方法を教えてください
下のようにフラグを用意して親forのスコープでbreakを実行するやりかたはNGです
for i in range(5):
_for j in range(5):
__f = 1
__break
_if f:
__break
_print(i, j)
print(-1) 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)


785:デフォルトの名無しさん
17/03/13 18:57:42.02 BnQlNWII.net
グローバルなスコープでforを使います
関数の中じゃないので次のコードもNGです
def f():
_for i in range(5):
__for j in range(5):
___return
__print(i, j)

786:デフォルトの名無しさん
17/03/13 19:05:35.74 WQPH0UXu.net
まぁ無理だから他の方法考えろと言うしかないけど、お前さんがbreak嫌いってことはよく分かったわ
一発で多重ループ抜けするようなコードになるならもっと良いやり方が存在する可能性が高いぞ

787:デフォルトの名無しさん
17/03/13 19:12:53.60 voNf4d3r.net
まぁ正道のelse: continue; break…もスコープ的にダメって言いそうだし
例外ジャンプは邪道やろし、break 2のような物は無いものな

788:デフォルトの名無しさん
17/03/13 19:42:59.99 xj6UKIPj.net
for i in range(5):
_for j in range(5):
__break
_else:
__break
_print(i, j)
print(-1)

789:デフォルトの名無しさん
17/03/13 19:45:17.95 xj6UKIPj.net
逆か
for i in range(5):
_for j in range(5):
__break
_else:
__print(i, j)
print(-1)

790:デフォルトの名無しさん
17/03/13 19:50:16.50 WfgCl99Q.net
俺的には labeled break ぐらいとっとと実装しろよって思うけどなぜか却下されてるんだよな
URLリンク(www.python.org)

791:デフォルトの名無しさん
17/03/13 20:08:29.57 tf/p3QRT.net
ラベルドブレイク!
技名みたいでかっこいいな

792:デフォルトの名無しさん
17/03/13 20:12:38.89 7VMyUxLV.net
return使えって書いてるな
まあそのほうがいいわな

793:デフォルトの名無しさん
17/03/13 21:33:20.30 N714JDKq.net
for i,j in ((i,j) for i in range(5) for j in range(5)):
_break

794:デフォルトの名無しさん
17/03/13 22:02:17.64 h57/U2+3.net
>>772
一段階ずつbreakするか関数にしてreturnを使うか例外を使うかの3択
どれもキレイなコードにはならないから自分の表現したい内容に一番近いのを選ぶほかない

795:デフォルトの名無しさん
17/03/13 22:12:24.08 0Fbbs/T/.net
こういう奴にはPHPでもPerlでもお勧めしとけ

796:デフォルトの名無しさん
17/03/13 22:18:43.04 gT7cCjLG.net
いやいや勧めるのはC++だろ

797:デフォルトの名無しさん
17/03/13 23:18:55.60 wkEXVPnf.net
>>772
いろいろと度外視したもの、見た目よくないし邪道でくだらないし俺は責任取れない
URLリンク(pastebin.com)

798:デフォルトの名無しさん
17/03/14 02:04:14.08 vIMzEjCF.net
goto使おうぜ
URLリンク(github.com)

799:デフォルトの名無しさん
17/03/14 05:37:50.88 bQth80Jl.net
>>786 なんで、tf gotoで書けないだろう。

800:デフォルトの名無しさん
17/03/14 10:23:07.89 vbV/Jpv3.net
for に else とか変態仕様やろ

801:デフォルトの名無しさん
17/03/14 12:20:17.99 UFDW2I+S.net
for elseは非推奨だっけ?

802:デフォルトの名無しさん
17/03/14 12:24:23.70 iJqYjMUp.net
変態てのはお前が知らない馴染みがないって意味じゃないよ

803:デフォルトの名無しさん
17/03/14 12:42:15.09 Bmc3j2Q1.net
知ってても書いたことはない筆頭がfor~else
フォーラムで「何のしがらみもなく構文を一つ削除してよいのなら何を削除する?」って聞いたら上位に来そう

804:デフォルトの名無しさん
17/03/14 12:58:29.09 EHnwNQwM.net
多少ツッコミどころがある仕様の方が面白いからセーフ
いつか難解コードを書きたくなる時があったらきっと使うでしょ

805:デフォルトの名無しさん
17/03/14 15:32:18.71 5xEA7Y6K.net
for elseは一回もループしなければとかならまだ使い道あったのに

806:デフォルトの名無しさん
17/03/14 19:24:17.42 qHSOlZCd.net
for else 普通に便利だと思うけどなあ
URLリンク(python.civic-apps.com)

807:デフォルトの名無しさん
17/03/14 19:47:08.71 EHnwNQwM.net
他の言語にも手を出すつもりならfor elseはあまり多用しない方がよさそう

808:デフォルトの名無しさん
17/03/14 19:49:28.11 CJRugdQQ.net
ボク頭が弱いから使いどころがイマイチわかんないっす!(意訳)

809:デフォルトの名無しさん
17/03/14 19:59:36.65 EHnwNQwM.net
大体あってる
俺と同じような低脳が沢山いるからできるなら使わない方が良いってなるんだが

810:デフォルトの名無しさん
17/03/14 20:13:15.76 SxrvnFMh.net
戻り値の概念がいまいち理解できずに困っています

def gauss(n):
sum = 0
for i in range(1, n+1):
sum += i
return sum

print (gauss(100))

とするじゃないですか。そうすると1~100の和の5050が返ってきますよね
でもreturn使う理由がよく分からないんですよ。関数に引数入れたときの計算結果は一つに定まってるじゃないですか
だからreturnなんか使わなくてもgauss(100)と入力すれば5050が出るんじゃないかと。でも出ないんですよね

811:デフォルトの名無しさん
17/03/14 20:37:27.43 hCSBa/z+.net
数学の関数とは違う。結果が一つに定まるとは限らない、例えばinput関数
input('何か適当に入力しろよ>')

812:デフォルトの名無しさん
17/03/14 20:44:36.81 JZnTb5HD.net
関数ってファイル処理だけさせたりもするから
返り値なんてなくても・・・

813:デフォルトの名無しさん
17/03/14 20:47:50.22 ZhDhc0/i.net
>>796-797
Pythonは高脳をターゲットに開発された言語だからな。
低脳にはfor elseの素晴らしさは理解不可能
>>798
あとdef gauss(n)
もnつけなくて正しく動作する気がするよね
def gaussでOKだよね

814:デフォルトの名無しさん
17/03/14 20:53:57.47 gIyZXesU.net
>>801
guidoは今後のPython初学者のために複雑性を増やしたくないって言ってんだろがゲロカス
板橋まで走って逃げるな死ね
URLリンク(www.python.org)

815:デフォルトの名無しさん
17/03/15 13:06:43.36 kWoiZWut.net
パイソンは超ヌーブなんですけど
アナコンダ入れるかパイソンそのまま入れるかどっちがオススメですか??

816:デフォルトの名無しさん
17/03/15 13:18:54.12 1B/djtP8.net
>>803
どういう環境を構築したいか書いてくれないと答えようがない

817:デフォルトの名無しさん
17/03/15 13:36:37.62 7YWEdixI.net
太いのが好き

818:デフォルトの名無しさん
17/03/15 13:42:28.24 kWoiZWut.net
>>804
テンソルフローとかいうのを触ってみようと思います

819:デフォルトの名無しさん
17/03/15 13:55:07.15 1B/djtP8.net
>>806
公式のインストールに関するドキュメントは読みましたか?
URLリンク(www.tensorflow.org)

820:デフォルトの名無しさん
17/03/15 14:03:28.57 mmE2Q0nO.net
>>803 アナコンダ入れた方がいいだろう。

821:デフォルトの名無しさん
17/03/15 14:04:23.54 1B/djtP8.net
個人的には

#Python3.5.3入れる
URLリンク(www.python.org)

#仮想環境をつくり、アクティベートする
python -m venv tf
tf\Scripts\activate.bat

#tensor flowを入れる
pip3 install --upgrade tensorflow

がいいっと思います

822:デフォルトの名無しさん
17/03/15 15:27:54.58 kWoiZWut.net
>>808
なんか上の方で、アナコンダ入れるとなんかあった時に大変みたいなのを見たのですか大丈夫ですかね・・?
>>809
ありがとうございます、
2ブロック目の仮想環境を作り、アクティベートのところですが、ここの役割は何でしょうか??これがないと動かないのでしょうか?

823:デフォルトの名無しさん
17/03/15 16:22:40.13 71YRh3pu.net
超ヌーブならアナコンダ一択やろ

824:デフォルトの名無しさん
17/03/15 16:51:50.83 D4lD2LgX.net
逆でない?
判ってる人とかお試しで触る程度ならanacondaでいいだろうけど
python自体が初めてでanacondaから入ると後々苦労するのが目に見えるが

>>809のやり方ならそんなに手間変わらんのだから
そっちの方がいいと思う

825:デフォルトの名無しさん
17/03/15 17:02:57.88 kWoiZWut.net
なるほど、 仮想環境のアクティベートはおまじないと思ってやっちゃった方がよかですか?

826:デフォルトの名無しさん
17/03/15 17:13:13.53 nVuVQrDL.net
うん、イイヨー
anacondaはちゃんと最新版のを煎れるようにね

827:デフォルトの名無しさん
17/03/15 17:15:06.68 kWoiZWut.net
え、この流れやとアナコンダはダメなのでは・・・?どっちが正しいと?

828:デフォルトの名無しさん
17/03/15 17:29:32.79 rl+wZjWB.net
まずpythonを学ぶべきだ
こんなクソクエスチョンするようなカスがいきなりtensorflowなんて使えるかよ

829:デフォルトの名無しさん
17/03/15 17:32:02.39 D4lD2LgX.net
混乱させてすまんね

pythonで今後もやってく人 = >>809
機械学習メインでpythonメインでない人 = anaconda

みたいなイメージ?

python今後もやってくなら基本的な環境の作り方ぐらい知らないと苦労するから
俺はどうせやるならちゃんとやった方がいいよねーって思ってんだけど
機械学習をやるのが目的でpythonは手段でしかないならanacondaは
お手軽だよねーって思う人もいる

やれる事は変わらんからお好きな方で

830:デフォルトの名無しさん
17/03/15 17:33:21.58 kWoiZWut.net
ごめんなさい。。超初心者って書いてるけん許されるかと思いました。。

831:デフォルトの名無しさん
17/03/15 17:35:58.71 kWoiZWut.net
>>817
なるほど!分かりやすかったですー!
ホントはテンソルフロー動かせたらいいのだけど、パイソン出来たらいろいろ便利そうなのでこの機会にちゃんとしてみようと思います!ありがとうございます!

832:デフォルトの名無しさん
17/03/15 17:38:18.14 lNG1lg3A.net
いや初心者ほど環境を気にせず使えるanacondaにすべき
嘘教えるな

833:デフォルトの名無しさん
17/03/15 17:44:17.93 AGhEyNXo.net
とりあえず初心者は動かしてみて遊ぶべき
環境構築はその後で問題はない

834:デフォルトの名無しさん
17/03/15 17:52:06.03 3u79xgLU.net
動かした所で使い道がない事に気づく

835:デフォルトの名無しさん
17/03/15 17:58:44.65 1Y+2q/Q/.net
今ってウェブ上でコード書いてそのまま実行できるサービスもある環境だからまず最初はそう言うサービスを利用するのをオススメするかな
しばらく遊んでりゃ大体文法も把握できるからそこから環境整えてサイトやら参考書見てお勉強

836:デフォルトの名無しさん
17/03/15 18:03:59.74 3u79xgLU.net
初心者の頃とかは公式ドキュメント見てたら4日過ぎてました
とか、良くある事なので

1日4~5時間は寝た方が良いよ
  (むしろ、眠れなくて草生える)

837:デフォルトの名無しさん
17/03/15 18:08:01.29 1B/djtP8.net
サードパーティ製のものを使うより、できる限り公式なもので環境構築できるようにしておいた方がいいよ
ていうか、インストーラでPython入れて、pipでtensorflow入れるだけやん
手間かわらん

仮想環境を使う理由はグローバルな環境にゴチャゴチャ突っ込むのが好きじゃないから
別に構わないなら、Pythonインストールしてpipでtensorflow入れるだけでいいよ

838:デフォルトの名無しさん
17/03/15 18:17:10.79 lNG1lg3A.net
>>824
すげえな
公式ドキュメント見てたら4~5分で寝れるわ

839:デフォルトの名無しさん
17/03/15 18:30:32.51 nVuVQrDL.net
>>820
初心者がいま普通にanaconda入れるとtensorflow動かない(もうfixされたのかな?

840:デフォルトの名無しさん
17/03/15 19:35:03.95 mGKxIZbB.net
初心者なんか罠踏んで爆発して死んだらええねん
生き残った奴こそ素質がある

841:デフォルトの名無しさん
17/03/15 19:45:59.62 1B/djtP8.net
>>828


842:デフォルトの名無しさん
17/03/15 20:28:31.96 IsHCJowS.net
>>828
死んだのにまだ未練残してるんですね
一刻も早く成仏出来ることをお祈りしています

843:デフォルトの名無しさん
17/03/15 20:55:46.33 KVS3OOCo.net
print([i * 10for i in range(2)])
これがエラーにならないって糞なパース処理だな

844:デフォルトの名無しさん
17/03/15 20:55:53.65 dhTQXuE0.net
機械学習やるんならいきなりライブラリ使うんじゃなくて
最低でも線形回帰,主成分分析,NNあたりはフルスクラッチできるようになってからの方がいいと思う

845:デフォルトの名無しさん
17/03/15 20:56:59.45 KVS3OOCo.net
こうかくとちゃんとエラー出してくれるのに
print([i * 0xafor i in range(2)])
もちろんこうかけばエラーはでない
print([i * 0xa for i in range(2)])

846:デフォルトの名無しさん
17/03/15 21:31:48.90 XYUUle5Y.net
パイソンをインストールしたんだけど、VSみたいにデバッグできると便利だなと思うんだけど、どしたらええかな?
今はコマンドプロンプトから実行してるんだけど、どこでなぜエラーしてるかとかさっぱり分からない

847:デフォルトの名無しさん
17/03/15 21:52:20.25 1B/djtP8.net
>>834
VS+PTVSで開発する
仮想環境の構築もpipからのインストールもVSでできる

848:デフォルトの名無しさん
17/03/15 22:41:22.15 HXSORuM9.net
標準で付いてくるIDLEでいいんじゃない

849:デフォルトの名無しさん
17/03/17 00:45:53.48 cvnYh8La.net
import curses
def f(screen):
pad = curses.newpad(2, 2)
pad.addstr(0, 0, 'a')
pad.addstr(1, 0, 'b')
for i in range(2):
pad.refresh(0, 0, 0, 0, 1, 2)
pad.getkey()
pad.refresh(1, 0, 0, 0, 1, 2)
pad.getkey()
curses.wrapper(f)
キーを押した時にリフレッシュして
a
b

b
と繰り返して表示されるようにしたいのに
a
b

b
b
ってなってしまいます。
リフレッシュしてbだけ表示したいときに2行目に表示されるbが消えません
これは何でですか?

850:デフォルトの名無しさん
17/03/17 11:12:56.54 is7goi9i.net
>>709
URLリンク(gist.github.com)
流石にもうちょいマシな書き方があるだろうと思って書いてみた
ただ仕様がもうちょい複雑になるとコードが煩雑になりそうだけど

851:デフォルトの名無しさん
17/03/17 13:11:57.91 W1rhDyUi.net
これ以上に複雑なときは、もう変数ジャンプ組み込む方がまだマシと思う

852:デフォルトの名無しさん
17/03/17 13:36:34.43 YJtvdDES.net
set_jmp

853:デフォルトの名無しさん
17/03/17 18:19:46.14 4a5+BdOt.net
>>838
これってよく使われるパターンなの?
def order():
…return order()

このくらいの長さのメソッドになるともう分かりにくいなって感じるんだが

854:デフォルトの名無しさん
17/03/17 19:41:57.57 dpI1G6OF.net
>>838
俺ならこうかな
foods = ['和食', '洋食', '中華']
def choiceInput(prompt, choices):
 while True:
  print(prompt)
  choice = input('>')
  if choice in choices:
   return choice
  print('入力エラー')

def order():
 while True:
  print('和食, 洋食, 中華')
  choice = choiceInput('どれを食べますか (0/1/2)', ['0','1','2'])
  yesNo = choiceInput(f'{foods[choice]}で本当にいいですか(Y/N)', ['Y', 'y', 'N','n'])
  if yesNo in ['Y', 'y']:
   return choice

855:デフォルトの名無しさん
17/03/17 20:25:35.68 is7goi9i.net
>>841
これくらいだったら分かりにくくならないかと思ったけどやっぱり分かりづらいか

>>842
なるほど
そっちの方がシンプルでいいな

856:デフォルトの名無しさん
17/03/17 20:42:07.88 SRILy9AU.net
無限ループでwhile Trueを書いていいのはゲームプログラミングぐらいです
このように書くべきです
def choiceInput(prompt, choices):
 print(prompt)
 choice = input('>')
 while choice not in choices:
  print('入力エラー')
  print(prompt)
  choice = input('>')

whileの横に条件式を書くことで第三者が見てもわかりやすいリーダブルコードになります

857:デフォルトの名無しさん
17/03/17 20:45:06.83 by7KsFNN.net
シンプルだけど一瞬え?ってなる

858:デフォルトの名無しさん
17/03/17 21:25:30.72 4a5+BdOt.net
>>844
こっちはちょっと冗長な気がするけどdo-whileとかdo-untilがないから致し方ないね

859:デフォルトの名無しさん
17/03/17 21:54:06.09 1b+nwuRS.net
>>844
>無限ループでwhile Trueを書いていいのはゲームプログラミングぐらいです
どういう理由でそうなんですか?

860:デフォルトの名無しさん
17/03/17 21:56:06.37 8d4DwhQ0.net
def choiceInput(prompt, choices):
 choice = -1
 while choice not in choices:
  print(prompt)
  choice = input('>')
if choice not in choices:
   print('入力エラー')

こうじゃいかんの?

861:デフォルトの名無しさん
17/03/17 23:04:53.49 scRdPl5f.net
書いてあるやん

862:デフォルトの名無しさん
17/03/17 23:05:23.72 woddruPm.net
>>844
同じ内容を2回書くのは修正があったときに修正漏れしそうで嫌

863:デフォルトの名無しさん
17/03/17 23:19:30.39 AOLqOhzC.net
def choiceInput(prompt, choices):
  choice = None
  while choice not in choices:
    if choice is not None:
      print('入力エラー')
    print(prompt)
    choice = input('>')
  return choice

864:デフォルトの名無しさん
17/03/18 10:25:09.78 nckgi/Sy.net
>>850
同じ内容を関数にまとめるのは常識

865:デフォルトの名無しさん
17/03/18 10:27:37.34 iWX2QE0o.net
>>851
これが一番しっくりきた

866:デフォルトの名無しさん
17/03/18 11:33:37.63 1jN6Nl4i.net
>>852
それは >>844 に言って欲しいし
あの程度の奴でいちいち関数化するのもどうかと思う

867:デフォルトの名無しさん
17/03/18 11:59:15.66 njmdr4yw.net
>>846
横だけどご存知なら教えて下さい
do~系の処理系を持たないのはpythonのポリシーか何かですか?

868:デフォルトの名無しさん
17/03/18 12:55:48.59 1jN6Nl4i.net
>>855
Do
 ...
Loop
って言うのが構文的に難しいからでしょ

869:デフォルトの名無しさん
17/03/18 14:20:38.66 IfcuZKcb.net
>>855
URLリンク(mail.python.org)
Guidoが「馬鹿にはあまりに高度すぎる機能だから拒否する」と述べたので入っていない

プログラミング言語のデザインにポリシーなんて高度なものはなく、基本的に開発者の腹具合だけである
思想というほど成熟したものでもない
俺は嫌いだと言われたら入らない

870:デフォルトの名無しさん
17/03/18 14:31:30.97 IfcuZKcb.net
そうじゃない言語はどれかというとC++とかJavaとか
あれらは委員会による設計をしている
(Javaは怪しいが)独裁者に振り回されることは減る
一方で自分の提案を通そうとするための馴れ合い
仕様の肥大化、策定の長期化を招く

871:デフォルトの名無しさん
17/03/18 18:40:35.06 vEldA4mj.net
python3のクラスで
import unittest
class TestCap(unittest.TestCase):
def test_one_word(self):
text = 'Duck'
self.assertEqual(text, 'Duck')

の場合self.assertEqualはsuper()で呼び出しちゃダメなの?
そもそもどうしてselfが出てくるの?

872:デフォルトの名無しさん
17/03/18 20:20:43.59 IfcuZKcb.net
宗教的な理由のため

873:デフォルトの名無しさん
17/03/18 21:48:13.72 G3oyudm3.net
まあOO自体が一つの宗教
誰が書いても同じようになるというPythonの売りが
OOで見事に消し潰されているのは罪深いことだ

874:デフォルトの名無しさん
17/03/18 22:02:42.41 vEldA4mj.net
つまりどういうことだ

875:デフォルトの名無しさん
17/03/18 22:27:57.82 NEZ4wluv.net
>>862
つまり、そんなこと気にすんなってこと
test ができればオケ

876:デフォルトの名無しさん
17/03/19 09:28:19.12 CiiadJVM.net
>>856
>>857
ありがとう、そうむずかしい構文とは思わなくも思惑は思惑だから仕方ない

>>857
Ritchieにも聞かせたい言葉だな

877:デフォルトの名無しさん
17/03/19 10:28:59.82 IinMJCLx.net
>>864
Python の構文は('_' は空白のつもりね)
1: aaaa
2: __bbbb
3: __cccc
4: dddd
となっていたら 1~3 をブロックと認識するからブロックの終端の記述がない
なので Do~While みたいに終端に条件を書かないといけない構文は難しいって話
他の言語は終端があるからそう言う問題は発生しない

878:デフォルトの名無しさん
17/03/19 12:32:09.54 xRIvmzBZ.net
"2017/03/19"みたいな日付とその日の値段が記録されたcsvをパースしてmatplotlibでグラフにしたいんだけど
日付の部分をstrじゃなくて時間の軸として扱うにはどうすればいい?

879:デフォルトの名無しさん
17/03/19 12:42:04.00 LWm6dPWw.net
>>866
strからdatetimeに

880:デフォルトの名無しさん
17/03/19 12:59:35.56 xRIvmzBZ.net
>>867
datetimeのオブジェクトならそのままx軸につっこめる?

881:デフォルトの名無しさん
17/03/19 13:13:33.92 LWm6dPWw.net
>>868
できる

882:デフォルトの名無しさん
17/03/19 13:27:30.74 x


883:RIvmzBZ.net



884:デフォルトの名無しさん
17/03/19 14:27:32.69 zGHcaEct.net
tzに注意

885:デフォルトの名無しさん
17/03/19 22:28:25.85 Lj5IhMr8.net
>>865
if-elseと同じじゃない?

886:デフォルトの名無しさん
17/03/19 23:52:17.84 W8FwC9AB.net
print(' '.join(map(str, sorted(set(tmp)))))
#tmp = [3, 4, 2, 1,...N]
#重複削除、並び替え、文字列に変更、つなげて出力


上のようなコードがあるとして、
()のネストはどの位までが許容範囲ですか?

887:デフォルトの名無しさん
17/03/20 00:02:48.06 G9+XvfW+.net
括弧2つまで
toolz.functoolzのpipeとか使う

888:デフォルトの名無しさん
17/03/20 00:05:54.26 sXp84j6l.net
>>873
人それぞれ、ただスタイルガイドには一行は79文字までというのはあるから長すぎるとアウト

889:デフォルトの名無しさん
17/03/20 00:14:08.40 3ZZI/KAX.net
()の数を減らしつつ変数も無いの良いですね!
標準ライブラリとかでも同じ事可能ですか?

890:デフォルトの名無しさん
17/03/20 00:26:32.61 G9+XvfW+.net
>>876
pipeのこと? 自分でpipeメソッドとかpipeオペレータみたいの作ればできるよ
toolz.functoolzのpipeのソース
URLリンク(toolz.readthedocs.io)

>>873のコードはこんな感じに
pipe(tmp, set, sorted, partial(map, str), ' '.join, print)

891:デフォルトの名無しさん
17/03/20 08:41:28.66 A6CX4sNJ.net
A= 1:a 2:b 3:c 1:d
B= 1:e 2:f
C= 1:a:e 2:b:f 3:c 1:d:e

Aの数字部分をBの数字で検索して
該当する数字があったらBのアルファベットをAに追加して
Cのような結果を得たいのですが
Aの数字が重複していて辞書が使えなくて
どうすればいいのかわかりません。
ご指導よろしくお願いします。
python2.7です。

892:デフォルトの名無しさん
17/03/20 10:20:35.47 Ia6BH4Hf.net
URLリンク(ideone.com)

893:854
17/03/20 10:42:07.11 nRwuUvF6.net
>>865
そうか、インデントに意味ある言語でしたっけ
ブロック構造の明示って結構悩ましいですね
重ねてありがとう

894:デフォルトの名無しさん
17/03/20 11:01:45.40 6RAbChbA.net
>>872
else は else ブロックの開始だから終端ではないでしょ

>>880
やってやれなくはないと思うけど見易さとの両立は簡単じゃないと思う

895:デフォルトの名無しさん
17/03/20 13:35:45.83 4V6fNJEd.net
>>878
Aをいっこずつの辞書たちで作ってマージ

896:デフォルトの名無しさん
17/03/20 17:16:42.51 l4MXbYf5.net
>>878
URLリンク(gist.github.com)
一応動くものはできたけどけっこう面倒くさいな
python2.7.13で動作確認

897:デフォルトの名無しさん
17/03/20 17:22:42.32 c+tYojiZ.net
素直に改行した方が見やすいと思う

print(' '.join(
  map(str, sorted(
    set(tmp)))))

898:デフォルトの名無しさん
17/03/20 17:27:48.11 G9+XvfW+.net
>>881
>else は else ブロックの開始だから終端ではないでしょ

do-untilにしてuntilブロックの開始として認識しても同じことじゃない?
untilはその後にインデントされたブロックを受け取らないっていうルールを課せばいいだけで
インデント記法の言語だからってdo-while系の実装が他言語より難しいってのは理解できない

899:デフォルトの名無しさん
17/03/20 17:43:29.84 XdgtrFwn.net
>>878
URLリンク(codepad.org)

900:デフォルトの名無しさん
17/03/20 18:33:03.42 LcNjV7jZ.net
>>885
いや、だからできないって話じゃなくて
> untilはその後にインデントされたブロックを受け取らないっていうルールを課せばいいだけ
と言うような特殊ルールが必要でしょって話
実際の見た目も...
1: do
2: __aaaa
3: __bbbb
4: until ...
5: while ...
6: __cccc
7: __dddd
8: if ...
9: __eeee
人によるんだろうけど俺には6行目が until ブロックの始まりのように見えてしまう

901:デフォルトの名無しさん
17/03/20 18:35:52.50 sXp84j6l.net
まあGuidoは心の中で普通のwhileで十分やろとか思ってそうだな

902:デフォルトの名無しさん
17/03/20 18:58:19.86 MXp+WHcu.net
1: do
2: __aaaa
3: __bbbb
4: __until ...

なら、そう不自然でもないでしょ。関数のdef~returnと似た感じで。
まあ必要だとは思わんが。

903:デフォルトの名無しさん
17/03/20 19:03:55.76 sXp84j6l.net
untilがブロックの中にあるのはキモすぎるなと、主観だけど

904:デフォルトの名無しさん
17/03/20 19:10:07.12 MXp+WHcu.net
じゃあキーワードを breakif にするとか。

905:デフォルトの名無しさん
17/03/20 19:57:03.67 LcNjV7jZ.net
>>891
それなら
while True:
__aaaa
__if condition:
____break
で充分なような気がする

906:デフォルトの名無しさん
17/03/20 20:18:16.81 A6CX4sNJ.net
>>882 >>883 >>886
みなさん
ありがとうございます!
勉強しながらトライしてみます。

907:デフォルトの名無しさん
17/03/20 20:38:40.38 MXp+WHcu.net
>>892
だから、それ必要ないってポリシーなんでしょ。構文的に難しいって理由じゃなくて。

908:デフォルトの名無しさん
17/03/20 20:42:18.91 G9+XvfW+.net
>>887
インデントされたブロックを受け取らない文なんてPython書いてればいくらでも使うじゃん 特殊じゃないよ
それにuntilの下に必ず空行入れるから6行目がuntilブロックの始まりに見えるなんてこともまずないでしょ

俺は>>889のほうが不自然に感じるかな
for-elseやif-elseを考えるとuntilだけブロック内ってなんか違う気がする

909:デフォルトの名無しさん
17/03/20 20:57:25.03 kRRsPMR+.net
プログラムの先頭でimportしたモジュールを使うクラスをほかのプログラムから呼ぶ時って
呼び出す側のプログラムでもimportしなきゃならないの?

910:デフォルトの名無しさん
17/03/20 21:09:14.26 6EO7QiL7.net
試せよと言いたいが結論から言えばimportしなくていい

911:デフォルトの名無しさん
17/03/20 21:09:25.37 LcNjV7jZ.net
>>895
> インデントされたブロックを受け取らない文なんてPython書いてればいくらでも使うじゃん 特殊じゃないよ
具体的によろしく

912:854
17/03/20 21:10:05.29 nRwuUvF6.net
>>883
w(゚∀゚)
殿下は永遠だ

913:854
17/03/20 21:15:18.73 nRwuUvF6.net
>>889-892
機能としての繰り返し構造で「一度は処理する」流れはある!
あるにはあるが、コーディング上の特質まで拘る言語だと存在が難しいかもしれない
アセンブラ時代では普通に処理・判断・分岐の流れで繰り返す事があったが
pythonの見栄えを含めたルールに今ひとつしっくり来ないね

言語って難しいと別な意味で思う

914:デフォルトの名無しさん
17/03/20 21:28:14.72 6EO7QiL7.net
どうでもいい
話してる暇があったら僕の考えた最強の言語でも作ってみろ
誰もお前の妄想なんか体現してやらねーよ

915:デフォルトの名無しさん
17/03/20 21:54:45.70 G9+XvfW+.net
>>898
print(“foo”)
__print(“bar”)

916:デフォルトの名無しさん
17/03/21 12:53:28.65 l9q4915F.net
クラスに実装したメソッドが増えすぎて読みづらくなってきたので、C++のように別ファイルに分割しようとおもうのですが、Pythonだとどうやるのが一般的なのでしょうか?

917:デフォルトの名無しさん
17/03/21 13:00:44.91 RBsv5qkl.net
>>902
そうか、
(制御フロー文で)インデントされたブロックを受け取らない文
って書いてないとダメな人もいるのね...

918:デフォルトの名無しさん
17/03/21 13:54:42.63 Z6nDRQUG.net
>>903
できない
Pythonにおいては一般的ではない

919:デフォルトの名無しさん
17/03/21 14:09:34.83 6WWBsw/3.net
>>900
while True:
..hoge
..fuga
..if until==False: break

920:デフォルトの名無しさん
17/03/21 14:11:41.64 ymW1yDlu.net
>>903
---file hoge.py---
class Hoge:
...method1

---file fuga.py---
class Fuga(Hoge):
...method2

---file hage.py--
class Hage(Fuga):
...method3

921:デフォルトの名無しさん
17/03/21 14:32:22.05 l9q4915F.net
>>905,907
レスありがとうございます。
別のオブジェクトからコマンドを受けて、各コマンドに対応したメソッドで処理をするコマンドプロセッサのようなクラスを作っています。
同じ階層の機能を実装したメソッドが増えすぎた場合というのはどのような形で管理するのでしょうか?

922:デフォルトの名無しさん
17/03/21 14:37:22.69 6WWBsw/3.net
各コマンドに対応したメソッドを定義したオブジェクトを作って call かな
そのオブジェクトはメソッドごとに違うクラスで
全て共通の抽象クラスから派生したものにするとかね

923:デフォルトの名無しさん
17/03/21 15:47:09.08 U/W71QG6.net
あのすいません、hogeとは何ですか?
調べても意味が分かりませんでした。

924:デフォルトの名無しさん
17/03/21 15:50:43.25 uzSvvu2S.net
>>910
メタ構文変数と言って特に意味はない、名前付けに困ったらとりあえずあてはめておくもの

925:デフォルトの名無しさん
17/03/21 16:28:28.16 F9uzFhK1.net
>>910
穴がほげる事

926:デフォルトの名無しさん
17/03/21 16:28:49.49 F9uzFhK1.net
穴=セキュリティホールな
つまり脆弱性が出来る事をhogeという

927:デフォルトの名無しさん
17/03/21 16:58:01.02 jV0Y+t/Y.net
>>903
モジュールに分割
次点でMixin
Single Inheritanceで継承構造を深くするのはオススメしない

928:デフォルトの名無しさん
17/03/21 17:32:09.44 jV0Y+t/Y.net
>>904
インデントは字句解析のレベル
インデントされたブロックを受け取らないかどうかは構文解析のレベル

インデントされたブロックを受け取らないかどうかは
制御フロー文かどうかとは全く関係なく決められるルール

結局>>865の主張には全く根拠がない

929:デフォルトの名無しさん
17/03/21 19:12:46.26 72kEtT2Q.net
>>915
> 見易さとの両立は簡単じゃないと思う
の意味が理解できてないのかなぁ
まあ、感覚的なものだから俺はそうは思わないって言うんだろうな
もう引っ込みつかなくなってるみたいだし

930:デフォルトの名無しさん
17/03/21 19:31:01.92 l9q4915F.net
>>909
やはりそうなりますよね。
ちなみになんですが、私、オブジェクト指向を始めたばかりでそのようなオブジェクトやクラスを呼ぶ名称がとんと見当がつかないのですが、
抽象クラスやその具象クラス、オブジェクトにつける名前と言うのはどういった名前になるのでしょうか……
少し例を教えていただけると有り難いです。

>>914
Mixinというのは初めて知りました。これは何故次点なのですか?
またモジュールに分割というのは>>909と同じような作り方でしょうか?

931:デフォルトの名無しさん
17/03/21 19:47:37.03 2crVP7Yr.net
hogeって書くとジジィ扱いされるよな。。実際、ジジィなんだけど。

932:デフォルトの名無しさん
17/03/21 19:59:09.85 3q/SWegZ.net
こんなのどうかな
do:
  aaa
  bbb
:until ccc == ddd
while True:
  eee
  fff

933:デフォルトの名無しさん
17/03/21 20:02:36.48 zOC6lCjq.net
hooとかfooはノリノリな感じがして好き

934:デフォルトの名無しさん
17/03/21 20:10:29.82 Wm5e28fx.net
私「フッ、こういうのはメタ構文変数と言って、ノリノリな感じが語源になったわけではないのだよ」
私「どれWikipediaで調べてからマウンティングするか」

URLリンク(ja.wikipedia.org)メタ構文変数
>プログラミング言語Pythonでは、メタ構文変数に spam, ham, eggs などを使う。

私「!?」

935:デフォルトの名無しさん
17/03/21 20:11:48.49 Abf9RIR5.net
Pythonを使う前に空飛ぶモンティパイソンを100回見よう!

936:デフォルトの名無しさん
17/03/21 20:12:00.13 uzSvvu2S.net
hage

937:デフォルトの名無しさん
17/03/21 20:40:10.13 wMSmjxpw.net
>>917
Rubyは多重継承できない単一継承モデルだから、親クラスは1つのみ。
継承関係にない、便利な関数・utilityなどは、横からmixinする。
mixinされたモジュールも、継承チェーンに入れられる

Object ← 親 ← 子
Object ← utility ← 親 ← 子

Pythonでも、調べてくれ

938:デフォルトの名無しさん
17/03/21 20:51:30.07 jV0Y+t/Y.net
>>916
もう恥ずかしいからやめてくれよ~
>>889の形式だって>>892とパーサーの処理はそう変わらないんだから何も難しいことなんてないだろ?

indentがブロックの開始でdedentがブロックの終端
そういうルールなだけで括弧やdo/end使ってる言語と基本同じだよ
python使ってるやつはそんなことも知らないのかって思われる

939:デフォルトの名無しさん
17/03/21 21:55:47.37 kMyYv3zx.net
なんかKeyErrorってコンパイルしたら出てくるけど考えられる原因って何かある?

940:デフォルトの名無しさん
17/03/21 21:57:34.32 uzSvvu2S.net
>>926
辞書型オブジェクトから存在しないキーを取ろうとすると出るエラー、解決策はググれ

941:デフォルトの名無しさん
17/03/21 22:02:37.33 5glqzG46.net
while ループ中で最初にa=0という変数を作っての最後でa+=1しても
2周目で0に戻らないためにはどうすればいいですか?

942:デフォルトの名無しさん
17/03/21 22:03:59.43 uzSvvu2S.net
>>928
aの宣言をループの外でやるかその目的ならforループに置き換えるのが分かりやすいかなと

943:デフォルトの名無しさん
17/03/21 22:11:03.98 5glqzG46.net
>>929
外で宣言してもなぜか0に戻るんですよね

944:デフォルトの名無しさん
17/03/21 22:13:18.30 uzSvvu2S.net
>>930
pastebin辺りかこのスレでもいいからソース貼ってみて?

945:デフォルトの名無しさん
17/03/21 22:18:12.79 72kEtT2Q.net
>>925
誰もパーサーの処理なんて問題にしてないのに何を必死になってるんだい?
マジで引っ込みつかなくなってるじゃん w

946:デフォルトの名無しさん
17/03/21 22:21:21.56 5glqzG46.net
pastebin.com/bmD2DHrn

これでいいです?まだ作りかけだけど

947:デフォルトの名無しさん
17/03/21 22:22:46.16 jV0Y+t/Y.net
>>932
インデントがパーサー以外の何に関係してんの?
息吐くように嘘をつくなよホント

948:デフォルトの名無しさん
17/03/21 22:32:09.98 uzSvvu2S.net
>>933
ループ内に既に存在するaと変数名が被ってるからどちらかの変数名を変えないと

949:デフォルトの名無しさん
17/03/21 22:48:38.55 EOakUJK/.net
いつまでdo-whileの話してんだよ
いい加減死ねよADHD野郎

950:デフォルトの名無しさん
17/03/21 23:02:57.79 72kEtT2Q.net
>>934
嘘?
意味わからん
誰も実装の話なんてしてないのに w

951:デフォルトの名無しさん
17/03/21 23:07:50.55 jV0Y+t/Y.net
>>917
Mixinが次点なのは一つのクラスにメソッドを定義する必然性を感じなかったから

モジュール分割はこの場合は各コマンドの意味的カテゴリ別にクラスを分割するイメージで書いたけど
>>909の人が書いてるようなコマンドパターン的なやり方もいいと思う
その場合でもある程度のまとまりでモジュールにすることになるんじゃないかと

952:デフォルトの名無しさん
17/03/21 23:18:48.13 2crVP7Yr.net
>>921
ファーー!

953:デフォルトの名無しさん
17/03/21 23:31:39.75 5glqzG46.net
>>935
動きました。ありがとう

954:デフォルトの名無しさん
17/03/22 00:01:29.44 hOsz3hmd.net
>>938
なるほど……。最早スレチかもしれませんが、
「コマンドの処理部を一つのオブジェクトにまとめて、コマンド受付用の公開インターフェイスを用意して内部で各コマンドに対応するメソッドに振り分ける」
みたいな感じで作っていたのですが、pythonというかオブジェクト指向っぽくするにはどうしたら良いのでしょうか?
この辺はもうデザインパターンを学べという感じでしょうか?

955:デフォルトの名無しさん
17/03/22 00:34:58.08 vhfzvoEm.net
>>941
その作り方で別にいいと思うけど?
例えばこのサンプルでcat/dog/bearに対応するメソッドが各クラスになってるのが普通に分割するイメージ
URLリンク(www.safaribooksonline.com)

こっちはコマンドパターンのイメージ
URLリンク(python-3-patterns-idioms-test.readthedocs.io)
Undo/Redoとかも必要ならこっちのほうがいいかもね

956:デフォルトの名無しさん
17/03/22 00:51:52.54 hOsz3hmd.net
>>942
参考URLありがとうございます。
今のところコマンドパターンが使いやすそうではあるのですが、まだ作り始めたばかりなので一度アプリケーション全体の設計も見直してみようと思います。
遅くまで皆様ありがとうございました。

957:デフォルトの名無しさん
17/03/22 17:02:16.91 /LjNvXVg.net
pythonにopencvを入れたいです
VSからc++で使うためにソースからcmakeで前にビルドしたのですが
pythonに入れるにはまた最初から入れ直しですか?
今あるopencvのソース拾って動いてくれたりしませんか??

958:デフォルトの名無しさん
17/03/22 17:32:47.40 vhfzvoEm.net
pythonバインディング付きでビルドしてるなら
PYTHONPATHにopencvのパスを追加するかPYTHONPATHが通ってるところに必要なファイルのリンクをはるか

959:デフォルトの名無しさん
17/03/22 17:36:21.25 /LjNvXVg.net
ありがとうございます。
バインディングが付いているか調べる方法はありますか??

960:デフォルトの名無しさん
17/03/22 17:41:33.53 MH0mX7xP.net
ビルド済みDLL同梱のがあるでしょ

961:デフォルトの名無しさん
17/03/22 17:51:32.15 /LjNvXVg.net
DLLだけ拾ってできますか??
opencv自体はもうあるので重複を避けたいです。

962:デフォルトの名無しさん
17/03/22 18:27:50.62 vhfzvoEm.net
少し調べればすぐ分かることなんだから
聞く前にまず自分で調べなよ

963:デフォルトの名無しさん
17/03/22 20:02:01.65 pQEBF+SX.net
>>948
初心者のくせに欲張りだね君は

964:デフォルトの名無しさん
17/03/22 22:12:43.36 MH0mX7xP.net
おそらく数年前の導入方法を引きずってるんでしょう
現在では、パッケージマネージャから簡単にインストールできるのに

965:デフォルトの名無しさん
17/03/22 22:18:25.20 E3vl/zz6.net
そのパッケージマネージャをマネージするパッケージマネージャをマネージするパッケージマネージャをマネージするのはパッケージマネージャ?

966:デフォルトの名無しさん
17/03/23 02:01:24.38 hMrdA28p.net
もしかして全般的に3.6より2.7の方が速い?

967:デフォルトの名無しさん
17/03/23 12:19:32.96 JkO5l9za.net
>>923
hage
hige
mage
を支持します

968:デフォルトの名無しさん
17/03/23 12:41:45.82 AyyVp0Pm.net
>>944
>pythonに入れるにはまた最初から入れ直しですか?
>今あるopencvのソース拾って動いてくれたりしませんか??

python用のcvモジュールが「ソースからcmakeで前にビルドした」ときに造ってあればOK

969:デフォルトの名無しさん
17/03/23 12:43:03.50 39r6GGlR.net
>>953
プログラミングをする上でよくもこんな糞な質問が出来たな
速いかどうかは自分でベンチマーク取って確かめろ

970:デフォルトの名無しさん
17/03/23 13:29:43.51 dT4NbpKb.net
>>954
tingeは?

971:デフォルトの名無しさん(霧の向こうに繋がる世界)
17/03/23 18:36:24.71 ijnHsh0m.net
みなさんHTTP/2への対応はお済みですか?
nghttp2がないとHTTP/2が使えないPythonってダメですね
Goにユーザー取られちゃいますよ

972:デフォルトの名無しさん
17/03/23 19:04:11.68 atuvna0D.net
使えますが

973:デフォルトの名無しさん
17/03/23 19:42:39.16 J2eFkRx5.net
Goは舎弟なので、取られるとか言う間柄にはない

974:デフォルトの名無しさん
17/03/23 19:46:18.43 qu7cQuqJ.net
GoもPythonも使ってるけど言語としての性格が根本的に違うのに取られるも何も無いと思うが

975:デフォルトの名無しさん
17/03/23 19:51:41.15 xoR/oCcH.net
どう違うんだ?なんなら詳しく聞いてやろうか?

976:デフォルトの名無しさん
17/03/23 19:53:19.53 10TW5lfi.net
何様だよ
ご教示くださいかプリーズって言え

977:デフォルトの名無しさん
17/03/23 19:57:30.18 10TW5lfi.net
というか本当に新参の半分は引き取って貰えると助かる
機械学習ブームのせいで出来損ないばかり増えすぎだ

978:デフォルトの名無しさん
17/03/23 19:58:23.66 xoR/oCcH.net
じゃあ聞いてやるからご教示くださいかプリーズ

979:デフォルトの名無しさん
17/03/23 20:15:04.23 WvFZIAo6.net
>>964
すまんな、パイソンのこと何もよう分からんけど見よう見まねでコード書いてるわ

980:デフォルトの名無しさん
17/03/23 20:49:30.79 Q5D12GoP.net
>>964
ここは初心者スレ、嫌なら去るのはおまえだ

981:デフォルトの名無しさん
17/03/23 20:52:13.77 8mLShO/C.net
>>967 禿同。

982:デフォルトの名無しさん
17/03/23 22:29:57.12 xoR/oCcH.net
無能なベテランの俺は居てもいいんか?

983:デフォルトの名無しさん
17/03/23


984:23:03:49.08 ID:dT4NbpKb.net



985:デフォルトの名無しさん
17/03/24 18:02:09.03 yAGaZT8A.net
パイソンのプログラムの中で、コマンドを実行したい時
例えばプログラムの中でコンソールを起動してpipを実行したい時はどうすればいいですか?

986:デフォルトの名無しさん
17/03/24 18:07:03.42 39OHyuzh.net
>>971
標準ライブラリのsubprocess使う
URLリンク(docs.python.jp)

987:デフォルトの名無しさん
17/03/24 18:16:24.02 yAGaZT8A.net
>>972
記入漏れすみません。
使い方としては、別のコンソールを立ち上げてメインプログラムとは別で走らせたいのですが、無理ですか??

988:デフォルトの名無しさん
17/03/24 18:22:21.87 39OHyuzh.net
>>973
窓出したいってこと?それとも非同期で走ってればおk?

989:デフォルトの名無しさん
17/03/24 18:28:33.70 yAGaZT8A.net
>>974
窓は出来れば出したいです。
メイン起動→サブ呼び出し→同時進行→メイン終了→サブはまだ止まらない→サブ側の窓でctrl-c押された時でサブ終了
という形が理想なのですが。

990:デフォルトの名無しさん
17/03/24 19:21:03.39 FFzzXdlf.net
てす

991:デフォルトの名無しさん
17/03/24 19:22:46.85 FFzzXdlf.net
>>975
とりあえずこんなもんでどうかな
URLリンク(pastebin.com)

992:デフォルトの名無しさん
17/03/24 19:23:24.24 FFzzXdlf.net
長文打ったら何かが規制に引っかかって全俺が泣いた

993:デフォルトの名無しさん
17/03/24 19:26:17.69 FFzzXdlf.net
あーそうそう窓を出すって動作が環境依存だからWinでしか動かんよ

994:974
17/03/24 19:30:45.29 Ixoq+e04.net
>>977
これです、ありがとうございました!

995:デフォルトの名無しさん
17/03/24 19:31:41.62 Ixoq+e04.net
あ、書いてなかったですね、すみません。
winなので大丈夫です、ありがとうござます!

996:デフォルトの名無しさん
17/03/24 19:44:11.88 FFzzXdlf.net
>>980
startで別窓出せるから覚えとくといいよ、後こいつcmdの組み込みだからshell=True無いと実行できないから気をつけて

997:デフォルトの名無しさん
17/03/25 15:01:15.96 dW0T51Nu.net
pythonのリストで

def dice():
....return (random.randint(1, 601) % 6) + 1

status = []
for lp_0 in range(5):
....status.append(dice())

上記のような方法で関数からのretuen値を5回リストに入れる場合for文でまわさないで書く方法ありますか?

998:デフォルトの名無しさん
17/03/25 15:09:28.97 5MnOmzEx.net
np.random.random_integers(1, 6, 5)

999:デフォルトの名無しさん
17/03/25 15:38:20.94 dW0T51Nu.net
>>984
random_integersは初めて知りました
ありがとうごさいます

1000:デフォルトの名無しさん
17/03/25 15:47:29.60 5MnOmzEx.net
私も初めて知りました

1001:デフォルトの名無しさん
17/03/25 15:54:15.22 ZSinSYil.net
くだすれPython(超初心者用) その33
スレリンク(tech板)

1002:デフォルトの名無しさん
17/03/25 18:23:32.35 EmT9w5Dp.net
rrule(YEARLY, bymonth=(1,7), dtstart=from, until=to)

上記のように明示的に変数に値を入れて渡すタイプの関数について
text = 'bymonth=(1,7), dtstart=from, until=to'として
rrule(YEARLY, text)的なことをやりたいのですがこのままではできず。。
何かできる方法はありますでしょうか?

1003:デフォルトの名無しさん
17/03/25 18:31:58.35 AXTU3a0H.net
>>988
ちょっと違うけどこれでどう?
URLリンク(qiita.com)

1004:デフォルトの名無しさん
17/03/25 18:40:43.97 5MnOmzEx.net
そういう問題じゃなくて本気でテキストを渡したいみたいなので
jsonとかじゃだめなの?

1005:デフォルトの名無しさん
17/03/25 18:45:18.29 AXTU3a0H.net
パーサー通して辞書にしちゃえばいける、そのままは無理

1006:デフォルトの名無しさん
17/03/25 18:46:31.43 AXTU3a0H.net
いや関数側いじれるなら可変長引数使えばできるな

1007:デフォルトの名無しさん
17/03/25 20:11:45.64 ++OH//Pd.net
自分だけで使うプログラムならexecやevalに頼るのもありか
人に使わせるのはやめとけ

1008:デフォルトの名無しさん
17/03/25 20:12:38.04 LRDwX3vu.net
textをstringで受け取って関数内でsplitする

1009:デフォルトの名無しさん
17/03/25 20:13:27.03 EmT9w5Dp.net
>>989-992
回答ありがとうございます。

URLリンク(www.yoheim.net)
URLリンク(www.yoheim.net)
色々調べていたのですが、上記の話であっていますでしょうか?
勉強がてらコーディングしています。
もし違う話とかでしたら参考URL教えていただけると助かります。

1010:デフォルトの名無しさん
17/03/25 20:15:37.56 MW++xTd7.net
>>987
たておつ!

1011:デフォルトの名無しさん
17/03/25 20:24:08.31 EmT9w5Dp.net
>>989-992
text = {
'bymonth':(1,7),
'dtstart':from_date,
'until':to_date,
}
rrule(freq, **test_text)

上記のようにしたらできました!
色々教えていただいてありがとうございました。勉強になりました。

1012:デフォルトの名無しさん
17/03/26 13:38:04.98 WjbALPaU.net
うめ

1013:デフォルトの名無しさん
17/03/26 14:02:36.05 eOEOi6dr.net


1014:デフォルトの名無しさん
17/03/26 14:10:42.99 bcDXrrDg.net
おかか

1015:854
17/03/26 14:33:34.16 9Nbedpcg.net
皆よろ昆布1000
次スレ
>くだすれPython(超初心者用) その33
>スレリンク(tech板)

1016:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています


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