1 名前:デフォルトの名無しさん [2020/01/02(木) 15:56:54.08 ID:ZUrZA+uS.net] 当スレに★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公式サイト◇ www.python.org/ ◇まとめwiki◇ ttp://python.rdy.jp/ 〇前スレ〇 くだすれPython(超初心者用) その45【Ruby禁止】 https://mevius.5ch.net/test/read.cgi/tech/1571188632/
604 名前:デフォルトの名無しさん mailto:sage [2020/02/11(火) 15:36:18 ID:lGXjI99c.net] 継承クラスのinitの引数が増える場合はどうしたらいいですか? class person(): def __init__(self, age): this.age = age class student(person): def__init__(self, age, number) this.age = age this.number = number こんな感じにしたいのですが。
605 名前:デフォルトの名無しさん [2020/02/11(火) 15:56:30.44 ID:BVyNsmkt.net] >>599 ぱいそんのしかくしけんはひとつだけじゃないんだ きみがいっているのはどのしけんのしょきゅうかな?
606 名前:デフォルトの名無しさん mailto:sage [2020/02/11(火) 15:58:27.34 ID:RWYSN8yj.net] >>599 何にも勉強せずに一度受けてみるとよい 試験の雰囲気と問題の内容と自分の実力がわかる それを踏まえて備えれば二回目は受かる
607 名前:デフォルトの名無しさん [2020/02/11(火) 15:59:40.15 ID:BVyNsmkt.net] >>600 Student側でsuper().__init__(age)するだけじゃねーの ああ、基底クラスの__init__を呼ぶ方法が分からんのかな?
608 名前:デフォルトの名無しさん [2020/02/11(火) 16:01:24.03 ID:BVyNsmkt.net] それにしても、金になると思うとすぐ資格ビジネス屋が群がりやがって
609 名前:デフォルトの名無しさん mailto:sage [2020/02/11(火) 16:52:49.23 ID:RUM4eNEQ.net] a1 = 0, a2 = 0, a3・・・・が続く for i in range(1, 2): i = i +1 a[i] = 5 a+数字に値を入れたいのですがa[i]のような使い方はできないのでしょうか
610 名前:デフォルトの名無しさん mailto:sage [2020/02/11(火) 17:57:52 ID:iLli/Di+.net] pythonってインターフェースって概念はあるんだっけ?
611 名前:デフォルトの名無しさん mailto:sage [2020/02/11(火) 17:58:18 ID:L4MHQKAq.net] >>601 有難うございます。 Python3エンジニア認定基礎試験です
612 名前:デフォルトの名無しさん mailto:sage [2020/02/11(火) 18:15:03 ID:noKKsZcY.net] >>605 (インデント崩壊してるからか?) 質問がイミフ + 投稿前に1見ろ
613 名前:デフォルトの名無しさん mailto:sage [2020/02/11(火) 18:35:43.13 ID:AyaWNvDt.net] これはスゴイ やりたい事はなんとなく分かるが、 何をやりたいのかが分からない
614 名前:デフォルトの名無しさん [2020/02/11(火) 18:50:33.09 ID:HQEYSI3a.net] >>605 a1 = 0, a2 = 0 for i in range(1, 2): i = i +1 exec(' "a"+str(i) + "= 5" ')
615 名前:デフォルトの名無しさん [2020/02/11(火) 19:40:05.81 ID:X3jD9Kja.net] これは高確率でやり方よくないパターン
616 名前:デフォルトの名無しさん mailto:sage [2020/02/11(火) 19:47:41.29 ID:a/euzlWM.net] 初心者のうちはそういうことやりたくなるのわからなくもないけど素直にlist使いましょう
617 名前:デフォルトの名無しさん mailto:sage [2020/02/11(火) 21:21:11 ID:v/oRLdRM.net] >>605 for i in range(1, 2): ____i = i +1 ____x = “a%s” % i # xには”a2”という文字列が入る ____locals()[x] = 5 静的言語のリフレクションみたいなのは globals/locals, getattr/setattr/delattr 文字列をコードとして評価したいならeval 実行したいならexec
618 名前:デフォルトの名無しさん mailto:sage [2020/02/11(火) 22:13:11.46 ID:ZhnXkLvm.net] >>605 は a1 = 0, a2 = 0, a3・・・・が続く があり、それらに、オブジェクトaを通して a[1]でa1に,a[2]でa2に....([]を使って)アクセスしたいってことだろ。 (a[1]のaはaでなくても、名前みたいなものだから好きなのにしていい。 aシリーズにアクセスするらわかりやすくaにしている) こんなことを実現するクラスの作り方を教えて?という質問になるよな。 と、言っても俺は低脳で出来ない。 >>612 俺もそれで間に合うならそれが良いがと思う
619 名前:デフォルトの名無しさん mailto:sage [2020/02/11(火) 22:48:00 ID:v/oRLdRM.net] >>614 絶対違うと思うがそういう解釈ができなくもないなw subscriptingは__getitem__, __setitem__を使えば可能 https://ideone.com/7WR8yJ
620 名前:デフォルトの名無しさん mailto:sage [2020/02/11(火) 22:48:39 ID:6c6RIlRn.net] あー for i in range(1000): __try: ____a[i]=5 __except 的な?
621 名前:デフォルトの名無しさん mailto:sage [2020/02/11(火) 23:02:14 ID:RUM4eNEQ.net] 605です レスありがとうございました >>610さんのアドバイスで私のやりたかったことが出来ました。ありがとうございます。 execを初めて知りましたが、初心者的には便利な使い方ができそうですね hoge = "aaaa" exec('hoge = "ほげ"') print(hoge) >>616 それです
622 名前:デフォルトの名無しさん mailto:sage [2020/02/12(水) 02:21:47.75 ID:8gaFy0VD.net] dtreevizで決定木を可視化したのですが棒グラフの下の閾値が謎の数値と被ってとても見にくい状態です 閾値だけ表示させることはできますか?
623 名前:デフォルトの名無しさん [2020/02/12(水) 08:34:59.50 ID:MxyBlFwL.net] a1=0,0 はタプルになるから a1=0,a2=0 もそうかと思ったらこっちはエラーだな
624 名前:コーディングも未経験 mailto:sage [2020/02/12(水) 09:31:44.36 ID:CHK50RDvo] Python 2.7.17 のインストーラを起動したら、デフォルトのインストール先が C:\Python 2.7 になっているんだけれど、C 以外にすると何か不都合がありま すか。(CはSSDで容量が小さい、second bayのHDDを使いたい)
625 名前:デフォルトの名無しさん [2020/02/12(水) 15:55:30.07 ID:a1w2Xqz0.net] >>617 こいつとは仕事したくない うちの会社にいたら首切る
626 名前:デフォルトの名無しさん mailto:sage [2020/02/12(水) 17:24:47 ID:LrVjYqM5.net] 別にええやん 学生かもしれないしプログラマーじゃない可能性も高いし 簡易的なツール作るだけならそんな高いレベル求められないし execを覚えたというだけでも成長したのにそんな言い草あるか?
627 名前:デフォルトの名無しさん [2020/02/12(水) 17:34:29 ID:QgfOdoDN.net] >>616 どういうこと?
628 名前:デフォルトの名無しさん mailto:sage [2020/02/12(水) 18:24:00.47 ID:h0cbN6Js.net] >>621 初心者が間違った判断をしたならそれを指摘してやればいいだろう。 おれはお前のような奴の方が一緒に仕事したくないよw
629 名前:デフォルトの名無しさん [2020/02/12(水) 22:17:48.25 ID:ohhYjydu.net] 環境はMacです、ワケあってpython2を使おうとしてpip install -U python2を行ったら Requirement already up-to-date: python2 in /usr/local/Cellar/pypy3/7.3.0/libexec/site-packages (1.2) と表示され、versionが1.2でしかもpython2 -Vとしてもコマンドが見つからないと 言われるのでどういうことかと首をかしげpip listを行うと $pip list Package Version ---------- ------- appdirs 1.4.3 cffi 1.13.2 greenlet 0.4.13 packaging 20.0 pip 20.0.2 pyparsing 2.4.6 python2 1.2 readline 6.2.4.1 setuptools 44.0.0 six 1.13.0 と表示され、numpyなどが入ってないので何かおかしいと思い、 numpy.__version__、numpy.__file__を確認するとそれぞれ '1.17.3'、'/usr/local/lib/python3.7/site-packages/numpy/__init__.py' まあ正直どうなってるかよく分からないのでとりあえずpip install -U numpyを行うと Successfully installed numpy-1.18.1 しかし上記のように__version__を確認しても、'1.17.3'のままでした。 pipのlistには1.18.1でしっかり入ってます。 これって何が起きてるんでしょうか?Homebrewでinstall
630 名前:した可能性も考えたのですが brew listを行ってもnumpyもscipyも見つからずpypy、pypy3、pythonがあるくらいです pipのversionは pip 20.0.2 from /usr/local/Cellar/pypy3/7.3.0/libexec/site-packages/pip (python 3.6) です。思い当たる原因としては一回brewでpypy3を消したらpip効かなくなったことですが、 消す前にpipでinstallしたものは今でも普通にimportが効きます。 pipに表示されない原因に思い当たる方がいたらどうかよろしくお願いします。 [] [ここ壊れてます]
631 名前:デフォルトの名無しさん mailto:sage [2020/02/12(水) 22:41:09.40 ID:mtSj8YKm.net] >>625 パス通す順番はジッサイトテモダイジ MacにしみこんでいるPython(2系)の存在を忘れてはいけない。
632 名前:デフォルトの名無しさん mailto:sage [2020/02/12(水) 23:00:22.35 ID:bYqOq5KM.net] 605です。ご迷惑をおかけして申し訳ありません 最初に書いた例が私自身もよくわかっていないまま書いたのが駄目でした 皆さまのアドバイスでコードが完成しました https://pastebin.com/y2QT7m3E 色んな方法があると思うのですが、教えて頂いたexecとevalを使いました コード中のa_no_list[0] にはforで作ったa1を入れて、そのa1にランダム関数の数字を代入しました 手動でa1,a2を作って値を入れたりというのは出来たのですが、forで任意の回数繰り返して自動でa1,a2作れないかとこちらに相談した次第です forでprint(a[i])もa(i)もできるようになって、自動でリストの中の要素の中の要素・・・・を表示したり代入できるようになってるはずだと思います ちなみにこれは初心者参考書を1/4まで読み終わった復習として作りました
633 名前:デフォルトの名無しさん [2020/02/12(水) 23:30:50 ID:ohhYjydu.net] >>626 ありがとうございます、それ聞いて試しに aliasのpython="python3" を外したら動きました、linuxだとpython2で認識するんですけど macだと効かないんですね……悩んでた問題が一つ解決しました、本当にありがとうございます。 ただ今インストールされてるnumpyやtensorflowなどがpipで出ない方は解決できてません 上記のこともありpip listとpip3 list両方試したんですが全く同じ結果でした……
634 名前:デフォルトの名無しさん mailto:sage [2020/02/12(水) 23:52:40 ID:ohhYjydu.net] 申し訳ありません、自己解決しました 何故かPATHで/usr/PATH/pypy3が先頭に立っててpypyが一番最初に呼び出される設定になってた為 pypy3のpipが表示されてたんだと思います……PATHのpypy3外したら直りました。 長文と勘違いで迷惑を書けてしまい申し訳ありませんでした。
635 名前:デフォルトの名無しさん mailto:sage [2020/02/13(木) 00:09:12.49 ID:n7qjy+CZ.net] セルフってなんやねん!?
636 名前:デフォルトの名無しさん mailto:sage [2020/02/13(Thu) 00:14:39 ID:Gd0xgnoa.net] 自分でガソリンを入れるスタンド
637 名前:デフォルトの名無しさん [2020/02/13(木) 08:14:35.67 ID:0eJoVY/8.net] >>627 どうしてa1とかa2の変数名が必要なのかわからないな
638 名前:デフォルトの名無しさん mailto:sage [2020/02/13(木) 12:13:43.09 ID:lzB8uQ2A.net] >>630 オナニーをテーマにした漫画だよ。
639 名前:デフォルトの名無しさん mailto:sage [2020/02/13(Thu) 14:49:45 ID:MOac+3r5.net] >>630 話すと長いから解説してるブログ貼る 簡単に言えばselfを書くことで新しい機能を追加することなく書けるからって考えらしい https://python.ms/self/#%E3%81%95%E3%82%89%E3%81%AB%E4%BB%96%E8%A8%80%E8%AA%9E%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6
640 名前:デフォルトの名無しさん mailto:sage [2020/02/13(木) 17:35:23.50 ID:r7bSHOfr.net] pythonでオブジェクト指向やれば selfだらけになってシグナルノイズ比が高い事は自覚しておくべき 明示的にselfを渡してる言語としてGoやRustと同列に語るのはぶっちゃけ頭おかしい Goはどの型のメソッドが識別するためにselfを渡してる Goの場合はそれ以外で識別する方法がないから Rustはselfの使い方が3種類があるから 関数がどの種類なのかをシグニチャで指定するために明示的にselfを渡してる
641 名前:デフォルトの名無しさん mailto:sage [2020/02/13(木) 18:39:18.80 ID:Ure0FzdD.net] >>627 何を参考にコーディングしたらそれが生まれたのか純粋に知りたいw
642 名前:デフォルトの名無しさん [2020/02/13(Thu) 19:02:19 ID:qvECNN2e.net] 条件分岐の分かり易い書き方について教えてください 通常ではa=bで c=0の時はa=zで d=1の時はa=yというときに if c == 0: __a=z elif b==1: __a=y else : __a=b になりますがほとんどの場合a=bになって まれにa=y やa=zになるとすると a=bが最後に来るのはわかりにくい気がするんですが どうしてますか?
643 名前:デフォルトの名無しさん mailto:sage [2020/02/13(Thu) 19:45:20 ID:n7qjy+CZ.net] >>634 ありがてえ!!
644 名前:デフォルトの名無しさん mailto:sage [2020/02/13(Thu) 20:12:27 ID:Ure0FzdD.net] >>637 別に気にならないけど、前に持ってきたいなら 最初に無条件でa=bを記述 その後条件文を記述 にするかな
645 名前:デフォルトの名無しさん mailto:sage [2020/02/13(Thu) 20:16:27 ID:Ure0FzdD.net] ちなみにそんなことよりも、自分がレビューするとしたら cが0でbが1の時は本当にa=zでいいのかとかが不安になるわ
646 名前:デフォルトの名無しさん mailto:sage [2020/02/13(木) 21:36:32.33 ID:r7bSHOfr.net] >>637 通常ケースと通常でないケースという認識なんであれば 3つを並列に書くんじゃなくガード節を使ったりして通常ケースとそれ以外のケースを分離する def evaluate(b, c): ____if c == 0: ________return z ____if b == 1: ________return y ____return b
647 名前:デフォルトの名無しさん mailto:sage [2020/02/13(木) 21:40:41.28 ID:zu6t+bqI.net] コメントにそう書いておく。
648 名前:デフォルトの名無しさん mailto:sage [2020/02/13(木) 21:59:00.84 ID:n7qjy+CZ.net] pythonてSwitch文ないの?
649 名前:デフォルトの名無しさん mailto:sage [2020/02/13(木) 22:08:31.25 ID:Gd0xgnoa.net] ない
650 名前:デフォルトの名無しさん mailto:sage [2020/02/13(木) 23:45:35.00 ID:l+IDZGdn.net] まあ変数の真名と役割をコメントしてくれないと可読性の議論は出来ないよね 順番とか記述方法云々よりそっちが先
651 名前:636 [2020/02/13(木) 23:51:12.83 ID:qvECNN2e.net] >>639 条件が変わったら上書きしていくのもアリなんですね ありがとうございます 説明へtsくそですいません・・・ >>641 ありがとうございます こんな方法あるんですね >>642 コメントでの説明がへたくそすぎて 後で過去の自分を殴りたくなることが多いですorz
652 名前:デフォルトの名無しさん [2020/02/14(金) 13:14:33 ID:a5iC3cHy.net] >>637 カルノー図を覚えろ
653 名前:デフォルトの名無しさん [2020/02/14(金) 14:54:01.70 ID:/S4vU3l9.net] mac os 10.11.6 python 3.7.4 https://ideone.com/Mkhw9S ターミナルから上のスクリプトを実行すると以下のようなエラーがおきます。 VScodeから実行した場合は問題なく実行されます。 Non-UTF-8 code starting with '¥xe6' in file test2.py on line 2, but no encoding declared; https://ideone.com/D9Fkym 上のスクリプトはターミナルからも実行できます。 (リストの文字列の数のみの違いです) 以前はこんな感じのエラーは起きなかったのですが 原因がわかる方おられますか?
654 名前:647 [2020/02/14(金) 14:59:14.12 ID:/S4vU3l9.net] 自己レスです。 # coding: UTF-8を入れたらターミナルからも実行できましたが、 なぜリストの内容数とVScodeからだと問題無いのかがわかりません。
655 名前:デフォルトの名無しさん [2020/02/14(金) 15:27:13.81 ID:WtuYdkw5.net] atomic bomb
656 名前:デフォルトの名無しさん mailto:sage [2020/02/14(金) 15:34:47 ID:+9NDg3r6.net] 「python non-utf-8 code starting with ' xe6'」で検索! どうせ、文字コードが異なるとか? BOM 無しUTF-8 で保存すれば? 漏れは、Windows 10, VSCode で、Ruby, JavaScript などを使うけど、 すべてのファイルを、BOM 無しUTF-8 だけにしている!
657 名前:647 [2020/02/14(金) 15:39:07 ID:/S4vU3l9.net] >>651 上下とも同じエンコーディング(BOM 無しUTF-8 )で保存しています。 リスト内の文字列は全て同じ文字列の繰り返しで、2種類のスクリプトは要素数のみの違いです。
658 名前:デフォルトの名無しさん [2020/02/14(金) 15:40:45 ID:WtuYdkw5.net] # coding: UTF-8 書いてなかったんだろ
659 名前:デフォルトの名無しさん [2020/02/14(金) 15:42:19 ID:WtuYdkw5.net] >>6
660 名前:647 [2020/02/14(金) 15:52:33 ID:/S4vU3l9.net] >>653 >>649で書いたように、# coding: UTF-8は入れてなかったのですが、 知りたいのは、以下の2点の理由です。 1.VScodeだと問題なく実行できる 2.リスト要素数の違いによるエラーの有無
661 名前:デフォルトの名無しさん [2020/02/14(金) 15:57:16 ID:WtuYdkw5.net] sys.getdefaultencoding() みろ
662 名前:647 [2020/02/14(金) 16:01:14 ID:/S4vU3l9.net] >>> sys.getdefaultencoding() 'utf-8'
663 名前:デフォルトの名無しさん [2020/02/14(金) 16:01:50 ID:WtuYdkw5.net] お前は言われたことしかできないんか? https://qiita.com/methane/items/6e294ef5a1fad4afa843
664 名前:647 [2020/02/14(金) 16:07:55 ID:/S4vU3l9.net] >>658 単にマウント取りたいだけなら返信不要です
665 名前:650 mailto:sage [2020/02/14(金) 17:08:51 ID:+9NDg3r6.net] >>655 VSCode では、Microsoft がPython の拡張機能も作っているし、 設定ファイルにでも、UTF-8 で起動するように書いてあるのだろう 一般的には、IDE などの統合開発環境は、親切
666 名前:デフォルトの名無しさん mailto:sage [2020/02/14(金) 17:19:37 ID:EOtBZfN8.net] >>655 原因はバグ 対処は改行して1行のバイト数を減らすか 明示的にencoding指定をファイルの先頭に記述するか https://bugs.python.org/issue34979 VSCodeで実行できるのは>>660の書いてる通り何か設定してるからだと思われる 俺の環境ではVSCodeでも同じエラーが出る
667 名前:647 [2020/02/14(金) 17:21:58 ID:/S4vU3l9.net] >>660 >>661 ありがとうございます。すっきりしました。 バグですか。確かに配列内容を分割しただけでエラーが消えたりしてたので悩みました。
668 名前:デフォルトの名無しさん mailto:sage [2020/02/14(金) 19:07:56 ID:+2T2g9zy.net] 要領悪いやつ 大人しくutf8宣言しときゃ動くんだからそうしろよ お前なんかがvscodeのバグ発見したからって何になるんだ 時間のムダ
669 名前:デフォルトの名無しさん [2020/02/14(金) 19:13:36.39 ID:x4GfXJj6.net] 単に知的好奇心だろ おまえみたいなIT土方にはわからんか
670 名前:デフォルトの名無しさん mailto:sage [2020/02/14(金) 19:39:14 ID:+2T2g9zy.net] 全く知的ではない ただの"何でvscodeだと上手くいかないのムキー"でしかない その証拠にバグと分かったらもう投げ出してる
671 名前:デフォルトの名無しさん [2020/02/14(金) 19:44:06 ID:x4GfXJj6.net] それがなんで証拠なんやろうか バクについてまでは興味ないってだけやろうに 土方が偉そうに評価するな
672 名前:デフォルトの名無しさん mailto:sage [2020/02/14(金) 19:56:12 ID:+2T2g9zy.net] バグだったら仕方ない、 自分のせいじゃない、 よかったよかったあースッキリ。 どこに知的要素が存在するのか
673 名前:デフォルトの名無しさん [2020/02/14(金) 20:00:15 ID:x4GfXJj6.net] 知的好奇心のない奴は動けばいいやでuft8宣言して終わりだろうな
674 名前:650 mailto:sage [2020/02/14(金) 20:19:25 ID:+9NDg3r6.net] プログラマーが日本語のバグで時間を使うのは、馬鹿らしい。 Python は、日本語対応をやってない Ruby なら、Cookpad・マネーフォワード・Ruby 開発とか、 日本人のメンテナーが、一杯いる
675 名前:デフォルトの名無しさん mailto:sage [2020/02/14(金) 20:23:20 ID:+2T2g9zy.net] >>668 だからそれで終わりでよい 知的な意味もなく自己満足のためにムダな時間費やす無能よりも幾らか使えると言っているのだ
676 名前:デフォルトの名無しさん [2020/02/14(金) 20:26:32 ID:x4GfXJj6.net] IT土方は動けばいいだけだもんな
677 名前:デフォルトの名無しさん [2020/02/15(土) 00:24:05 ID:GcRD3KfQ.net] True=1,False=0じゃなくて IFで何行も書かなくても Trueの時は1をかけて、Falseの時はマイナス1を掛ける方法ってありますか?
678 名前:デフォルトの名無しさん [2020/02/15(土) 00:33:48 ID:NYbvjz3Y.net] 普通は *(1 if hoge else 0) だろうな hoge*1でもできるっぽいけど
679 名前:デフォルトの名無しさん [2020/02/15(土) 00:50:26 ID:GcRD3KfQ.net] >>673 *(1 if hoge else -1) で行けるんですね ありがとうございます!
680 名前:デフォルトの名無しさん [2020/02/15(土) 00:52:40 ID:NYbvjz3Y.net] よく読んでなくてすまん
681 名前:デフォルトの名無しさん [2020/02/15(土) 04:34:54 ID:CrxoAXqf.net] >>672 hoge*2-1
682 名前:デフォルトの名無しさん mailto:sage [2020/02/15(土) 07:03:08.25 ID:1M8DJTak.net] >>676 Basicは三項演算子なかったからその手のコードよく見かけたな Trueが-1だから-2*hoge-1とかにしないと駄目だけど
683 名前:デフォルトの名無しさん mailto:sage [2020/02/15(土) 07:39:54.28 ID:cl/r4jK1.net] *[-1,1][hoge]とか
684 名前:デフォルトの名無しさん mailto:sage [2020/02/15(土) 08:44:35.96 ID:lCqRUL4P.net] >>671 その通り コマはコマらしく動いていればよい
685 名前:デフォルトの名無しさん [2020/02/15(土) 12:23:37 ID:GcRD3KfQ.net] みなさん色々ありがとうございます >>678 *[-1,1][hoge]なら短いし 1か−1を掛けてるのが一目でわかっていいですね。
686 名前:デフォルトの名無しさん mailto:sage [2020/02/15(土) 12:33:06.53 ID:Od0WFVIs.net] >>680 横からですまんが この*は何?掛け算記号じゃないよな
687 名前:デフォルトの名無しさん [2020/02/15(土) 12:54:17.21 ID:OeWG4QMt.net] どーでもよくて草
688 名前:デフォルトの名無しさん [2020/02/15(土) 13:02:49.71 ID:GcRD3KfQ.net] >>681 >>672 で-1か1を掛けたいと質問したので *マークをつけてくれたんだと思います
689 名前:デフォルトの名無しさん mailto:sage [2020/02/15(土) 13:09:52.19 ID:a5tEBtfb.net] それはわたしの肛門だ
690 名前:デフォルトの名無しさん mailto:sage [2020/02/15(土) 13:29:58.94 ID:J1bovO5o.net] 糞みたいな小手先のテクニック使うくらいなら潔く if else で書けや
691 名前:デフォルトの名無しさん mailto:sage [2020/02/15(土) 14:48:11.69 ID:cTwFsuY/.net] x * [-1, 1][hoge]ってことだと思うが 流石にこれはない 評価する変数にboolしか入らない状況なら x * (hoge or -1) でいいんじゃないかと思うが これだと何のためにやってるかわかりにくいので 通常のif else使って関数化したほうがいい気もする
692 名前:デフォルトの名無しさん mailto:sage [2020/02/15(土) 22:11:51.52 ID:L3zGf310.net] >>685-686 俺もそう思う。 元質問をしたPythonでの三項演算の表記を知らないレベルの人は x * [-1, 1][hoge]やx * (hoge or -1) を嬉々として・どや顔して 使いそうだが
693 名前:デフォルトの名無しさん mailto:sage [2020/02/15(土) 22:40:28.65 ID:cl/r4jK1.net] [-1, 1][hoge]は0,1以外弾くから結構間違いが入り込みにくい実装なんだけどね。 まぁ、普通は三項演算子使うだろうな。
694 名前:デフォルトの名無しさん [2020/02/15(土) 23:35:32.08 ID:GcRD3KfQ.net] 質問ですが def内で使う変数名を考えるのが面倒だし 後でどれがどれか分かるように 引数と同じ変数名にしてますが 問題ないですか??? グローバル変数はほぼ使ってないです。
695 名前:デフォルトの名無しさん mailto:sage [2020/02/15(土) 23:49:52.90 ID:robjZmR7.net] def addnumbers(a, b): return a+b a=10 b=5 print(addnumbers(a, b)) みたいな話? なら別に問題はないけど。 引数じゃなくて関数内で宣言するローカル変数の話なら、頭に_をつけたりして外の環境をマスクしないようにしたほうがお行儀がいいけど。
696 名前:デフォルトの名無しさん [2020/02/16(日) 00:44:18.75 ID:S0ZkinLG.net] >>690 そんな感じです ありがとうございます 解説とかだと大抵名前変えてあるので 変えた方がいいのかと思い込んでいました
697 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 02:28:25 ID:Q6srCXr2.net] >>691 動くか動かないという意味では動くから、同じであっても問題はない、というだけだぞ。 意味的に分かりやすく適切な名前をつけるべき。
698 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 09:01:43 ID:17VZ7Cpd.net] >>691 > 変数名を考えるのが面倒 これは2年後にタイムマシンで過去の自分をブン殴りたくなるまでなおらんとおもうが なおせるものなら早めになおしとけ > 後でどれがどれか分かるように この発想はただしい。 で、どうしたらいいのかについては>>692が書いてくれてる つまり 考えるのが面倒だから、って理由で 引数の名前をaだのbだのにしておくのはやめておけ
699 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 09:35:32 ID:xJ91WGrf.net] 名前を考える時間がもったいない スクリプト言語はいかに早く作り早く動かすかが命 一度動けば後は野となれ山となれ
700 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 10:19:55 ID:1yJgvEz2.net] どうしても名前を考えるのがめんどくさいならば 注釈で変数の意味を書いておくという方法もある 典型的な変数の値も書いておくとなおよい
701 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 10:26:00.98 ID:6foDUZHe.net] 関数の分割と命名が適切ならローカル変数なんて全部一文字でいいよ そんなことで読めなくなるような長い関数を書くな
702 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 11:27:23 ID:17VZ7Cpd.net] >>696 2行目には禿同 >ローカル変数なんて全部一文字でいい ここまでがんばる必要はない
703 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 11:28:24 ID:17VZ7Cpd.net] >>694 そう思っていた時期もありました まだならこれからなるか、或いはクビになるでせう
704 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 11:33:53.98 ID:vdOGaRiC.net] Goはむしろ一文字変数と引数を推奨してるね コードが十分に構造化されていれば、長い変数名はノイズになって逆に読みにくいってのは一理ある