[表示 : 全て 最新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/

583 名前:デフォルトの名無しさん mailto:sage [2020/02/10(月) 17:29:20 ID:fRmEVRio.net]
568 名前:デフォルトの名無しさん[sage] 投稿日:2020/02/09(日) 21:20:07.67 ID:U6aZQoQk
質問者はリストにin演算子使うと遅いって話と混同してるんじゃないかと
そっちは遅くて当たり前なんだが、forでsetより遅くなる道理はないと思うが

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

この辺の説明を ID:U6aZQoQk がちゃんとすれば良いんだと思う

584 名前:デフォルトの名無しさん mailto:sage [2020/02/10(月) 17:38:58 ID:8uBZGbTk.net]
逆になにがわからないのかわからないんだが

585 名前:デフォルトの名無しさん mailto:sage [2020/02/10(月) 17:42:34 ID:fRmEVRio.net]
分かるまで、みんなの話を聞いていたら

586 名前:デフォルトの名無しさん mailto:sage [2020/02/10(月) 17:44:23 ID:fRmEVRio.net]
553 名前:デフォルトの名無しさん[sage] 投稿日:2020/02/09(日) 12:11:02.39 ID:vWZlCr2H
list = [1,2,3,4,5,6,7,8,9,10]
というリストがあった場合
for i in list:
とするよりも
for i in set(list):
とする方が高速ですか?
それとも、setに変更しても元々がリストなので早くならないですか?

これが最初の質問

587 名前:デフォルトの名無しさん mailto:sage [2020/02/10(月) 17:47:57 ID:fRmEVRio.net]
この質問で想定される回答は

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

この三通りじゃないかと思うが

588 名前:デフォルトの名無しさん mailto:sage [2020/02/10(月) 17:55:55 ID:cKG4UD69.net]
>>580
俺も何がわからないのかわからん

in演算子が何かわかってないから
>>568や>>570に書いてることが理解できないんじゃないかな
と想像してみる

589 名前:デフォルトの名無しさん mailto:sage [2020/02/10(月) 17:59:57 ID:cKG4UD69.net]
>>583
それはもう回答が出てるでしょ

んで普通に考えたらsetにしたほうがが速いという考えにはならないのに
setのほうが高速かもしれないと思ってしまってるのは
for loopのfor x in fooの`in`と
contains(foo, x)を演算子にしたin演算子の`in`とを勘違いしてるんじゃない?
ってコメントが>>568

590 名前:デフォルトの名無しさん mailto:sage [2020/02/10(月) 18:20:13.36 ID:fRmEVRio.net]
回答までにしか興味は無いです
後は、妄想も含めた雑談なわけだし

591 名前:デフォルトの名無しさん mailto:sage [2020/02/10(月) 18:21:49.94 ID:8uBZGbTk.net]
>>584
そういうことかね

>>585
前にQiitaでリストにin演算子使うと遅いっていう記事がバズってたからね
そういうの見て質問者が漠然とリストはsetより遅いって思い込んでしまった可能性はあるね



592 名前:デフォルトの名無しさん [2020/02/10(月) 19:06:26.64 ID:NX1L632S.net]
>>584
質問者ですがそうです
setのforループの方が早いのかと思い込んでいました
>>574で自分の勘違いに気づいたところです

593 名前:デフォルトの名無しさん mailto:sage [2020/02/10(月) 19:34:40.34 ID:TAH0RZ5f.net]
>>583
ケースバイケース
っていう可能性もあるかと

594 名前:デフォルトの名無しさん mailto:sage [2020/02/10(月) 19:44:21.91 ID:fRmEVRio.net]
>>589
ハッシュキーが衝突したレコードが大量にあるとか、かな?

595 名前:デフォルトの名無しさん [2020/02/11(火) 10:10:26.19 ID:QVEssOx9.net]
ちっちゃい質問かもなんですが
かっこ閉じ際の位置ってpython的にはどこが良いですか?

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

kakkoのインデントに合わせるのか
kakko(
____1+2+3+4,
____5+4+6+7
)

596 名前:デフォルトの名無しさん mailto:sage [2020/02/11(火) 10:24:42.95 ID:iLli/Di+.net]
>>591
pythonの思想は1行で処理だから改行すな

597 名前:デフォルトの名無しさん [2020/02/11(火) 10:30:13.65 ID:KtXysiBK.net]
kakko(
____1+2+3+4,
____5+4+6+7)
または
kakko(1+2+3+4,
____5+4+6+7)

598 名前:591 [2020/02/11(火) 11:02:07 ID:QVEssOx9.net]
>>592
ですよね・・・
そうなると式が長くなる時は
かっこの前に分かり易い名前をつけて
さきに計算しておいたほうが良いですか?

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

>>593
ありがとうございます
かっこ閉じは改行で分離しない方が良いんですね

599 名前:デフォルトの名無しさん [2020/02/11(火) 11:07:02 ID:BVyNsmkt.net]
実運用としてはblackとかyapfにフォーマットさせてそれに従っとく

600 名前:591 [2020/02/11(火) 11:51:51 ID:QVEssOx9.net]
>>595
これ使えば悩まなくて済みそうです。
ありがとうございます!!

601 名前:デフォルトの名無しさん mailto:sage [2020/02/11(火) 12:22:58.77 ID:Nq1ZGiCx.net]
pythonの流儀・作法に従うのが一番いい

もしもどうしてもやりたいなら他のメジャーな流儀を真似る

WINAPI とは何か? - C/C++ 入門
https://c.keicode.com/windows/windows-programming-11.php

int WINAPI WinMain (
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow ) {



602 名前:デフォルトの名無しさん mailto:sage [2020/02/11(火) 13:52:28.79 ID:YRn6ep9S.net]
>>597
>pythonの流儀・作法に従うのが一番いい

そのpythonの流儀・作法を聞いてるのになぜそれに答えずC++のそれもWIN32API持ってくんの?

603 名前:デフォルトの名無しさん mailto:sage [2020/02/11(火) 14:25:45.03 ID:L4MHQKAq.net]
Pythonの初級を受けた人いますか?
どのような勉強されたか教えてください
m(__)m

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]とか






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

前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