[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 12/30 19:48 / Filesize : 277 KB / Number-of Response : 1011
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



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/

730 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 21:14:42.57 ID:iNVxJNOu.net]
>>723
>書き換えて別の子クラスを作る方法
継承してオーバーライドすること言ってるのかな?

それと
条件によってpをどんどん書き換えていくような仕様は
一般的にはものすごく悪い設計
バグりやすいしテストもしにくいので避けたほうがいい

731 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 21:47:49 ID:17VZ7Cpd.net]
>>721
>英語版はタダで見れる
なん・・・だと・・・・

まあいいや
日本語版書籍には訳者によるおまけがついてるらしいから・・・

732 名前:722 [2020/02/16(日) 22:05:37 ID:S0ZkinLG.net]
>>725
たぶん、継承オーバーライドの事だと思います
よくわかってなくてすいません
pを書き換えていくのを直します
ありがとうございます

>>724
ありがとうございます
やってみます

733 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 22:59:10 ID:5EL9p8ON.net]
Ruby なら、B はA から派生したクラスで、
派生クラスで、親クラスの同名のメソッドを上書きする(override)。
@ はインスタンス変数

class A
def f( ) @x = 1 end
end

class B < A
def f( ) @x = 2 end
end

p A.new.f #=> 1
p B.new.f #=> 2

734 名前:デフォルトの名無しさん mailto:sage [2020/02/17(月) 00:33:34.29 ID:VGvKWI+b.net]
リーダブルコードもコードコンプリートも読んだ上で700書いてるけどねえ
PEP8とかもそうだけど、知恵とルールを混同してしまう人が結構いる

735 名前:デフォルトの名無しさん mailto:sage [2020/02/17(月) 02:53:30.28 ID:DyKTwZyk.net]
お前にはその両方が足りていない

736 名前:デフォルトの名無しさん [2020/02/17(月) 05:56:39.51 ID:9Byn+CCQ.net]
アンカも打てないのかよ
いちいち自分で辿らせるとかどんだけ構って欲しいんだ

737 名前:デフォルトの名無しさん mailto:sage [2020/02/17(月) 07:12:48 ID:a4xzah5x.net]
>>728
endとか90年代かよダッサ無駄な記述乙

738 名前:デフォルトの名無しさん [2020/02/17(月) 07:47:39.40 ID:wxeqwMT5.net]
裏表紙のない本
ドアのないトイレ
キャップのないペットボトル



739 名前:デフォルトの名無しさん [2020/02/17(月) 11:57:31.26 ID:xV6ZEvHF.net]
Macなんですが元々入ってるPython2系をpython2で呼び出して
Python3系をpythonコマンドで呼び出す方法ってありませんか?
alias python="python3"
を設定してもpython2が使えなくなる代替案を探してる最中です

740 名前:デフォルトの名無しさん [2020/02/17(月) 12:37:38.00 ID:m/x7HUx7.net]
>>730
読んであれならヤバイ級だよなあ

741 名前:デフォルトの名無しさん [2020/02/17(月) 12:38:09.76 ID:m/x7HUx7.net]
エイリアスにフルパス入れちまえよ

742 名前:デフォルトの名無しさん [2020/02/17(月) 12:53:44.11 ID:xV6ZEvHF.net]
>>736
エイリアスで置き換えすることばかり考えてました、ありがとうございます
m(_ _)m

743 名前:デフォルトの名無しさん mailto:sage [2020/02/17(月) 13:05:59.25 ID:sUzH4s3p.net]
>>732
トイレを使って水を流さない犯人を見つけた

744 名前:デフォルトの名無しさん mailto:sage [2020/02/17(月) 13:31:47.59 ID:y136Nw0W.net]
>>734
pipだったり他のプログラムが使ってるpythonの依存ぶっ壊れるようなやり方すぎる。
dockeで隔離するか、pyenv, anaconda 使うなりする方が問題起きたときに復帰しやすいと思われる。

745 名前:デフォルトの名無しさん mailto:sage [2020/02/17(月) 15:10:44.14 ID:wzCOK5rA.net]
>>734
ln -s /usr/bin/python /usr/local/bin/python2
ln -s /usr/local/bin/python3 /usr/local/bin/python

746 名前:デフォルトの名無しさん mailto:sage [2020/02/17(月) 15:56:50.96 ID:y136Nw0W.net]
完全に環境ぶっ壊しにかかってんな。。カスだな。

747 名前:デフォルトの名無しさん [2020/02/17(月) 17:29:32.07 ID:91EB+qlc.net]
>>738
Rubyはスレチだから

748 名前:デフォルトの名無しさん mailto:sage [2020/02/17(月) 19:14:02.33 ID:A9t7x7q2.net]
デフォルトの設定を変えたら、それを使っている無数のアプリがバグルw

OS の仕組みを学べ!



749 名前:デフォルトの名無しさん [2020/02/17(月) 20:02:52.96 ID:4yysNtzR.net]
呼ぶときはPython2ならpythonで、Python3はpyで呼べるようになってるだろ
方針としてpythonで呼ばれるのはPython2のままにするっていうのがあるし

750 名前:デフォルトの名無しさん mailto:sage [2020/02/17(月) 20:03:49.54 ID:4njBz49B.net]
$ pip3 --version
bash: /home/xxx/.local/bin/pip3: そのようなファイルやディレクトリはありません
$ which pip3
/usr/bin/pip3

以下のページ通りにやったら直った

パッケージ更新インストール後にコマンドが実行できない場合の対処
https://qiita.com/vmmhypervisor/items/e846338b204061040957

751 名前:デフォルトの名無しさん mailto:sage [2020/02/17(月) 21:27:41.44 ID:EJ6dkZYZ.net]
Python記事まとめ(毎日自動更新)
https://qiita.com/kamata1729/items/eaf1d7b945b3a61a4fdd
Qiita週間ストック数ランキング【自動更新】
https://qiita.com/kai_kou/items/180a91fd88dbbbd746f6

752 名前:デフォルトの名無しさん [2020/02/18(火) 00:00:11 ID:o6M8r8f5.net]
import numpy as np
a = np.array([1,2,3])
print(a.shape)

こうやると、
(3,)
と表示されますけど
この3の後ろにあるカンマは
どゆ意味なんでしょう?
不必要としか思えないのですが?

753 名前:デフォルトの名無しさん mailto:sage [2020/02/18(火) 00:10:14.62 ID:ObTpNy6/.net]
tuple
同じ型が返されることに意味がある
(3,)と(3)で型を比べてみればいい

754 名前:デフォルトの名無しさん [2020/02/18(火) 00:17:31.22 ID:o6M8r8f5.net]
>>748
ありがとうございます。
型を比べると(3)はint、(3,)はtupleですね。
np.arrayのshapeをtuple型の同じ型にする、
ということですね?

755 名前:デフォルトの名無しさん [2020/02/18(火) 13:43:57.54 ID:ZbgU3Gim.net]
全然違うω

756 名前:デフォルトの名無しさん mailto:sage [2020/02/18(火) 13:54:29.04 ID:2AC9Ct1n.net]
>np.arrayのshapeをtuple型の同じ型にする、
>ということですね?
日本語がおかしい、もしくは理解の仕方がおかしい。
「np.array の shape を print で確認したら、tuple 型で (3,) だった。」
くらいは書いてほしい。

757 名前:デフォルトの名無しさん [2020/02/18(火) 17:44:44 ID:NpZig/vi.net]
>>749
何が言いたいのかよくわからない
何と何が同じなの?

758 名前:デフォルトの名無しさん mailto:sage [2020/02/18(火) 20:55:10 ID:EFQS+VhN.net]
新しいノートパソコン買ったけど使ってるやつpipして入れていくの面倒だな



759 名前:デフォルトの名無しさん mailto:sage [2020/02/18(火) 22:11:49.35 ID:kXXzWqPh.net]
>>753
現行このスレの上の方か、前スレで
pipで既に入ってるものを全部txtに吐かせて
それを新しいPCにコピーして
新しいPCのコマンドプロンプトからpipに食べさせる方法レスした記憶

760 名前:デフォルトの名無しさん mailto:sage [2020/02/18(火) 22:25:08.60 ID:Sq+szhyd.net]
>>753
コマンドをバッチファイルに記録しておくのおすすめ
何を入れたのかの備忘録にもなるし、クリーンインストール後にも一気に復帰可能

761 名前:デフォルトの名無しさん mailto:sage [2020/02/18(火) 22:27:06.73 ID:I7Q3zK/c.net]
あーそういやエクセルにpip一覧作ってコピペって入れてたな
あれバッチにすればよかったのか!

762 名前:デフォルトの名無しさん mailto:sage [2020/02/19(水) 00:22:18 ID:67Zh1tMt.net]
>>754で書いてた過去のレスの、要約したったど

てきとうな階層でコマンドプロンプト起動して
pip freeze > requirements.txt

できたtxtを次のPCの
これまたてきとうな階層に入れ、
そこからコマンドプロンプト起動して
pip install -r requirements.txt

763 名前:デフォルトの名無しさん [2020/02/19(水) 11:51:55.61 ID:cGULNOoW.net]
そしてcondaに感染

764 名前:デフォルトの名無しさん mailto:sage [2020/02/19(水) 18:42:16.77 ID:DTFko2h2.net]
このコードについて質問です
https://github.com/TestStudio/usbmuxd/blob/master/python-client/usbmux.py

class MuxError(Exception):
   pass

raise MuxError("socket connection broken")

みたいな書き方がされていますが、なぜ何もしない(passだけする)クラスを作って使用しているのでしょうか?

765 名前:デフォルトの名無しさん mailto:sage [2020/02/19(水) 18:45:07.19 ID:RE1Trb9N.net]
raiseだからじゃない

766 名前:デフォルトの名無しさん mailto:sage [2020/02/19(水) 19:01:50.35 ID:Um90NQYB.net]
Ruby なら、StandardError を継承して、カスタム例外クラスを作るだけ!

class MyError < StandardError
def initialize( msg="引数なし" )
super
end
end

raise MyError #=> 引数なし (MyError)

raise MyError, "引数あり" #=> 引数あり (MyError)

767 名前:デフォルトの名無しさん mailto:sage [2020/02/19(水) 19:32:54.08 ID:TvNfUAFk.net]
Exceptionを継承してるのだから何もしてないわけではない
既存の例外クラスをそのまま使わず新たな例外クラスを作ればexcept節で場合分けしやすくなる

768 名前:デフォルトの名無しさん mailto:sage [2020/02/19(水) 23:14:11 ID:DTFko2h2.net]
>>762
ありがとうございます



769 名前:デフォルトの名無しさん mailto:sage [2020/02/19(水) 23:17:38 ID:DTFko2h2.net]
質問が大雑把すぎて答えてもらえない気がするんですが…
>>759に関してダメ元で聞きたいです。
>>759のコードをPython3.7で実行するとこんな感じのエラーが出るのですが何をどうしたら直せますか…?
いくつもエラーが出ているんですが、1つだけでも良いので…教えてもらえると嬉しいです…。
どのエラーも直し方がわからないです。。

Traceback (most recent call last):
File "C:\Users\username\Desktop\test.py", line 238, in <module>
mux = USBMux()
File "C:\Users\username\Desktop\test.py", line 222, in __init__
self.listener.listen()
File "C:\Users\username\Desktop\test.py", line 191, in listen
ret = self._exchange(self.proto.TYPE_LISTEN)
File "C:\Users\username\Desktop\test.py", line 184, in _exchange
self.proto.sendpacket(req, mytag, payload)
File "C:\Users\username\Desktop\test.py", line 101, in sendpacket
data = struct.pack("IIII", length, self.VERSION, req, tag) + payload
TypeError: can't concat str to bytes

770 名前:デフォルトの名無しさん mailto:sage [2020/02/19(水) 23:53:08.56 ID:GM7mImOk.net]
>>764
いくつもエラーが出てるんじゃなくて
エラー内容と呼び出し履歴が表示されてるだけ

101行目ので
「TypeError: can't concat str to bytes」ってエラーが発生してる
python2用のコード

771 名前:デフォルトの名無しさん mailto:sage [2020/02/20(Thu) 00:05:49 ID:rl2y9G0y.net]
よく見たら11年以上前のコードやん
個人的にどういう経緯で辿り着いたのか気になる

772 名前:デフォルトの名無しさん mailto:sage [2020/02/20(Thu) 00:35:27 ID:x93hW6cn.net]
>>765
ありがとうございます…!!
101行目のエラーさえ潰せれば解決なんですね…!!

>>766
iOSデバイスとPC上のPythonをUSB/lightningケーブルで接続して通信をしようと思ったのですが
それらしき情報がコレしか見つからなかったので辿り着きました

773 名前:デフォルトの名無しさん [2020/02/20(Thu) 12:40:33 ID:sbHTvmgo.net]
不潔ゾーンからお帰りください

774 名前:デフォルトの名無しさん mailto:sage [2020/02/21(金) 16:02:46 ID:x3GQj6xQ.net]
インスタンス変数についての質問です
他言語(c/c++/c#)から入った人間の例に漏れずself/clsって何なの…となりました
で色々見ているのですが1番大きな疑問はインスタンス変数です
サンプル見ると大体コンストラクタでself.x=とかやってますがこのxはどこで定義されているのですか?
仮にこれが定義としてもコンストラクタや関数内部で定義したものがスコープ外でつかえるのは妙です
それに関数で新しく定義出来てしまうならインスタンシエイト時にそのオブジェクトがどのようなメンバを持つのかの情報が欠落していることになります
この辺りの解説を探しても見つけられませんでした
ご教授頂ければ幸いです

775 名前:デフォルトの名無しさん [2020/02/21(金) 16:35:03 ID:AkYRUnXu.net]
コンストラクタでself.x=とやればそこで定義される

776 名前:デフォルトの名無しさん mailto:sage [2020/02/21(金) 16:35:43 ID:RiyafmFC.net]
>>769
>インスタンシエイト時にそのオブジェクトがどのようなメンバを持つのかの情報が欠落していることになります
オブジェクトがどういうメンバを持つかは静的じゃなく動的
インスタンス化後にインスタンス変数やメソッドを追加できる
クラスはディクショナリみたいなものだと思っておけばいいよ
https://ideone.com/aAGA0y

>仮にこれが定義としてもコンストラクタや関数内部で定義したものがスコープ外でつかえるのは妙です
メソッドの第1引数にレシーバのオブジェクトが渡されるので
それを`self`という名前の引数で受けてメソッド内では渡されたレシーバを使って
`self.x`とかでインスタンス変数を参照してるのでスコープ外ではない
ちなみにselfは慣習として使われてる変数名であってhogeとかに変えても問題なく動く

777 名前:デフォルトの名無しさん [2020/02/21(金) 16:35:53 ID:AkYRUnXu.net]
あとCの経験があるならPyObjectについて調べたら理解が進むはず

778 名前:デフォルトの名無しさん [2020/02/21(金) 17:12:06.44 ID:QP8p1GF2.net]
仮想通貨のbotを作りたいんだけど、
AWSのCloud9で、
pythonのプログラムかいて動かす場合、
ブラウザー閉じたり、PCの電源切ったりしても、
プログラムはずっと動くの?



779 名前:デフォルトの名無しさん mailto:sage [2020/02/21(金) 17:31:14 ID:2TMdipPT.net]
>>769
Ruby では、デフォルトでインスタンス変数は、private だから、
アクセサー(attr_accessor)で宣言しないと、クラス外部からアクセスできない

class A
attr_accessor :x
def initialize
@x = 1
end
end

p A.new.x #=> 1

780 名前:デフォルトの名無しさん mailto:sage [2020/02/21(金) 17:33:36 ID:2TMdipPT.net]
仮想通貨は、Solidity だろ

781 名前:デフォルトの名無しさん mailto:sage [2020/02/21(金) 20:23:10 ID:/Xk0nwt/.net]
>>773
そのように組めばそのように動く

782 名前:デフォルトの名無しさん [2020/02/21(金) 20:31:58 ID:QP8p1GF2.net]
>>776
そうですかぁ
停電とかPCの故障で停止して、
大損したらまずいと思ってたから、
AWSでずっと動かしてみる、
クラウドなら停止しないで安心ですね。

783 名前:デフォルトの名無しさん mailto:sage [2020/02/21(金) 21:03:51 ID:/Xk0nwt/.net]
>クラウドなら停止しないで安心
ヒソ( ´д)ヒソ(´д`)ヒソ(д` )ヒソ

784 名前:デフォルトの名無しさん mailto:sage [2020/02/21(金) 21:52:48.61 ID:g+Ne8Q54.net]
>>777
そのレベルなら停電の心配するより自分のプログラムのバグで損失出す可能性の方がはるかに高いだろう。

785 名前:772 [2020/02/21(金) 23:27:12.20 ID:QP8p1GF2.net]
Cloud9にPyCarmで書いてたプログラムを移して、
AWSで動かしてみました、
ブラウザー閉じても、無事に自動で動いてるみたい、
もう、20円くらい稼げた、
これで、寝ているだけで朝起きたらお金が増えてるかな、
AWSは750時間分無料で使えるみたいなので、
しばらくこのまま動かしてみます。

786 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 00:10:39.94 ID:pQxmP5Jc.net]
朝起きたらバンされてるから

787 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 02:14:03.09 ID:R+gSedzt.net]
◎バグで損失
〇アルゴリズムがクソで損失
△利用料の請求でしぬ

788 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 08:40:23.32 ID:6wlvfoPI.net]
>>771
参考になりました
https://stackoverflow.com/questions/12569018/why-is-adding-attributes-to-an-already-instantiated-object-allowed
検索して見つけたんですがここでもクラスはディクショナリの糖衣構文なんて書いてますね
いやしかしそうすると同じ型のオブジェクトなのにその後の操作によって違うメンバを持ってたりするわけですか
えぇ……型適当すぎませんかpython……

selfに関しては自分自身を参照型なりポインタなりで関数内に渡していじくってると考えればいいんですかね
なぜthisにしない……そして自分自身が変化しないインスタンスメソッドでselfなんで書かねばならんのだ……



789 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 09:16:04.11 ID:/f58S0oT.net]
>>783
言語が異なれば用語や概念は異なるのだから、自分の母国語に無理に当てはめて考えようとすると行き詰まるぞ。それぞれの言語で意図やポリシーがあってその言語の仕様が作られているのだから、違う考えに基づくものだとして違いを受け入れ、理解しようとしてみなよ。

790 名前:772 mailto:sage [2020/02/22(土) 09:50:55.45 ID:ltYpm+bh.net]
動かしたまま寝て朝見たら、
無事に動き続けてました、
45円くらい利益出たから、
半日もしないのに資金の1.2%程増えた、
ほんとに、寝ているだけで朝起きたらお金が増えてるw
クラウド便利ですね、ありがとうございます。

791 名前:デフォルトの名無しさん [2020/02/22(土) 10:10:20 ID:hsz3eTB9.net]
>>783
嫌なら使わなくていいよ
世界で2番目に使われてる言語は諦めて田舎で畑でも耕してな

792 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 12:14:02.69 ID:4QVNajON.net]
>>783
selfに関してはC++やっている奴なら、非明示でC++のメンバ関数にもPythonのself
のようなもの(this ポンタ)が渡されると知っているんじゃないのか?
www7b.biglobe.ne.jp/~robe/cpphtml/html03/cpp03057.html
>メンバ関数には this ポンタが隠し引数として渡されるので、普通の関数と同じようには扱えないのです

793 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 13:22:04 ID:WVugcdbO.net]
>>783
Python開発した当時にthisを使ってたのはC++くらいだしね。
SmalltalkやObjective-CはselfだしJavaやJavaScriptはまだ出てなかった。

794 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 13:45:22 ID:qQaAG+8d.net]
レシーバーは、Ruby ではself、jQuery ではthis で、
どちらも引数で渡さないでも使えるように、実装で頑張った

Rubyのインスタンス変数には、@ を付ける。
@x = 1

Ruby のself は、文脈依存。
モジュール内で、クラスの外では、Module

module M
p self.class #=> Module
class C
p self.class #=> Class
end
end

M::C.new

795 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 13:46:07 ID:BwPLw7gM.net]
なぜthisにしない……って
そりゃCやC++で開発するんだから被るthisは回避するじゃん
C++で使ってないselfになるのは順当

Cで作る→C++に移行 との可能性はわずかながらあり

796 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 15:28:23 ID:8UzPa+1r.net]
プログラム未経験のまったくのど素人です

以下のコードを実行しても何も起こりません
なぜか逆スラッシュが\になってしまい、それが原因でしょうか?

長いので二つにわけます

def hangman(word):
wrong = 0
stages = ["",
"_______ ",
"| ",
"| | ",
"| 0 ",
"| / | | ",
"| / | ",
"| "
]
rletters = list(word)
board = ["_"] * len(word)
win = False
print("ハングマンへようこそ !")

797 名前:790 mailto:sage [2020/02/22(土) 15:30:30 ID:8UzPa+1r.net]
while wrong < len(stages) -1:
print("\n")
msg = "1文字を予測してね"
char = input(msg)
if char in rletters:
cind = rletters.index(char)
board[cind] = char
rletters[cind] = "$"
else:
wrong += 1
print(" ".join(board))
e = wrong + 1
print("\n".join(stages[0:e]))
if "_" not in board:
print("あなたの勝ち !")
print(" ".join(board))
win = true
       break

如何でしょう?

798 名前:デフォルトの名無しさん [2020/02/22(土) 15:40:17.92 ID:2qBDSHyD.net]
一方うbyはklassを使った



799 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 15:57:31 ID:/f58S0oT.net]
>>791
まず>>1を読んでその通りにする。話はそれからだ。

800 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 16:10:09.30 ID:mY130Jrs.net]
hangman関数を定義したけど呼び出してないからでは?

801 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 16:18:17 ID:nfgptzfk.net]
>>783
>えぇ……型適当すぎませんかpython……
Pythonに限らずJSやRubyなんかのOOをサポートしてる動的言語はだいたい同じ
クラスやオブジェクトのベースはディクショナリ

>そして自分自身が変化しないインスタンスメソッドでselfなんで書かねばならんのだ……
Cやシェルスクリプトと同じでレガシーな言語だからイケてない部分もたくさんある
そういうものだと思って受け止めるしかない
開発者が使いやすいように積極的に機能追加していくような言語ではないからね

Stackoverflowとか見てもわかるけど
Pythonコミュニティは割と言語機能に対するコンプレックス強いから
イケてないところ指摘すると逆ギレされやすいから気をつけて

802 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 16:38:39 ID:qQaAG+8d.net]
>>910-911
>win = true
win = True

それと、break の前に、何かの文字が入っているとか?

803 名前:796 mailto:sage [2020/02/22(土) 16:51:45.07 ID:qQaAG+8d.net]
>>910-911
ちゃんと動く

Python は、スペースでインデントしないといけないのか。
タブでは動かない

804 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 17:20:59 ID:WVugcdbO.net]
>タブでは動かない

んなことない。

805 名前:796 mailto:sage [2020/02/22(土) 17:36:28 ID:qQaAG+8d.net]
スペースとタブが混在したからかな?

漏れは、動かなかったけど

806 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 18:24:55.47 ID:R+gSedzt.net]
近頃の3系は混在ダメ

807 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 18:39:04.76 ID:WVugcdbO.net]
混在は別に問題ないぞ?linterで警告されるかもしれんが。
インデントに一貫性がない場合はエラーになる。

808 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 18:42:52.13 ID:lw7HhssO.net]
言語機能に対するコンプレックスというか、
「○○の言語にある◽︎◽︎がないなんて…」と思うなら、
○○を使えばいいじゃん、としか思わないなあ。
日常的に7言語ぐらい使ってるし、経験としてはもう3言語ぐらい使えるけれど、
Pythonで書くとメリットがあるものしかPythonで書かないから、他の言語の構文がどうとかかなりどうでもいいな。
ブロックスコープがあるといいなと思うことはあるけど。



809 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 18:48:19.79 ID:/u2JjX4w.net]
>>791
これ、関数定義だけのように見えるんだけど
それなら実行しても何も起きないのは当然だよね

810 名前:796 mailto:sage [2020/02/22(土) 18:57:19.31 ID:qQaAG+8d.net]
そのスクリプトの下の方に、こう書いておいて、
「python3 script.py abc」みたいに実行すればよい

全角空白で、インデントしたけど

if __name__ == "__main__":
 args = sys.argv

 hangman( args[ 1 ] )

811 名前:796 mailto:sage [2020/02/22(土) 18:59:26.46 ID:qQaAG+8d.net]
>>805
のスクリプトの冒頭に、import sys

も必要

812 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 20:38:45.74 ID:NV/PY/Op.net]
>>802
> 混在は別に問題ないぞ?
あるだろ
なんのためにインデントでブロック表現するようにしたと思ってるんだよ

813 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 21:00:17.41 ID:WVugcdbO.net]
インデントにスペースとタブを混在しても問題ないと言っているんだが話理解してるか?

814 名前:790 mailto:sage [2020/02/22(土) 21:03:41.80 ID:8UzPa+1r.net]
皆さんスレのルールを守らなかったにも関わらずレスして戴きありがとうございます
今後はルールを厳守しますのでよろしくお願いします

早速ご忠告どおりに試してみたいと思います

厚かまいついでにもう一つ、逆スラッシュが\に変換されてしまう理由も教えて戴ければ幸いです

815 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 21:07:01.25 ID:+QQ7ccWr.net]
変換されてるのではなくフォントの違い

816 名前:790 mailto:sage [2020/02/22(土) 21:10:51.98 ID:8UzPa+1r.net]
独学でpythonをマスターしたというコーリー・アルソフなる御仁の「独学プログラマー」って本で勉強しているんですが、
これは、とても初心者向けとはいえない入門者なので、「超初心者が初心者になるためのpython入門」という本を買い直し
ました

817 名前:790 mailto:sage [2020/02/22(土) 21:12:47.05 ID:8UzPa+1r.net]
入門者→入門書
訂正いたします

818 名前:796 mailto:sage [2020/02/22(土) 21:13:08.40 ID:qQaAG+8d.net]
逆スラッシュが、\ に割り当てられているのは、
日本語キーボードだからじゃないの?

Ruby では、改行は、\n。
\ で問題ない



819 名前:790 mailto:sage [2020/02/22(土) 21:19:59.48 ID:8UzPa+1r.net]
仰るとおり日本語キーボードを使っています
\で問題ないんですね

820 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 21:34:34.14 ID:NV/PY/Op.net]
>>808
理解してないのはお前
念の為に言っとくけど動けばいいという話じゃないぞ

821 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 21:38:27.08 ID:/f58S0oT.net]
>>814
円記号とバックスラッシュに同じ文字コード0x5Cが割り当てられているせいで、フォントによってどちらで表示されるかが異なるがデータ上は同じ文字として扱われているから気にしなくてよい。
>>813が言ってる日本語キーボードは無関係。ついでに言うと、>>813はこのスレのタイトルに【Ruby禁止】と付けられる原因になった有名な荒しだからスルー推奨。コテはつけてないけど書き方に癖があるからすぐに見分けられるようになるよ。

822 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 21:44:03 ID:WVugcdbO.net]
>>815
流れ読めよ。エラーにならないという意味で問題ないと書いた。
推奨されない書き方だから警告されるとも書いた。

823 名前:790 mailto:sage [2020/02/22(土) 22:00:26 ID:8UzPa+1r.net]
解決しました!
ちゃんと動きます
最後に関数を呼び出していませんでした
お騒がせしました

824 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 22:06:36 ID:NV/PY/Op.net]
>>817
流れを読めてないのはお前な
コンパイルが通ればOKとか言い出すタイプか?w

825 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 22:17:04 ID:WVugcdbO.net]
>>819
面倒くさい奴だな。エラーにならないという意味で問題ないと書いたし警告が出るとも書いた。
それに何か反論するならお前の考える問題のあるなし・OK/NGの基準をきちんと定義してからにしろよな。

826 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 22:42:33 ID:NV/PY/Op.net]
>>820
> お前の考える問題のあるなし・OK/NGの基準をきちんと定義してからにしろよな。
それを書かずに問題ないとか言ったのはお前な

827 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 22:50:49 ID:WVugcdbO.net]
だから流れ読めと言ったんだが。>>798-802は動く動かないの話しかしてないだろ。

828 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 22:57:54 ID:WVugcdbO.net]
面倒くさいからケリつけて。

>>807
どういう意味でどう問題があると言いたいのか。

>>815
動けばいいという話じゃなくてどういう話なのか。

>>819
コンパイルが通ればOKじゃなくてどうだと言いたいのか。

ケチつけるだけで内容が無いから話が進まない。



829 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 23:49:21.14 ID:nfgptzfk.net]
TabError: inconsistent use of tabs and spaces in indentation
https://ideone.com/3EhNsh

インデントに一貫性がない場合ってのが「混在してる」場合の一つ
結論 =>「混在は別に問題ない」わけがない

830 名前:デフォルトの名無しさん [2020/02/23(日) 00:11:39.44 ID:4i+7lYMQ.net]
しょもない流れww






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<277KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef