Pythonのお勉強 Part62at TECH
Pythonのお勉強 Part62 - 暇つぶし2ch2:デフォルトの名無しさん
19/09/15 17:23:36.55 +Psjuv8oF.net
O2

3:デフォルトの名無しさん
19/09/16 16:01:41.11 pu7P8atN0.net
建てるのがちょっとはやくて?沈んでしまったのでageとく

4:デフォルトの名無しさん
19/09/16 16:37:55.80 YXSl1XrX0.net
age支援

5:デフォルトの名無しさん
19/09/16 19:05:56.22 MsYhkP050.net
喋るゴミがうるさいからこっちかな

6:デフォルトの名無しさん
19/09/17 07:13:06.28 oiLDvE8A0.net
あーゆうのは見てたくないから俺もこっちだな

7:デフォルトの名無しさん
19/09/18 20:15:44.72 Eln4Km+3M.net
すまん負け犬わんわんおりゅ?w
999 名前:デフォルトの名無しさん [sage] :
>>973
まwまw負け犬www
無能わんわん完全敗北ワォーーーンw
今度から格上の相手に噛み付かないよう気を付けなw
1000 名前:デフォルトの名無しさん [sage] :
はい、終わりw

8:デフォルトの名無しさん
19/09/18 20:29:20.18 CdEduQpkp.net
くだらん書き込みのせいでpythonの話が下火になっているな
なんでこのスレに住み着いたんだろ

9:デフォルトの名無しさん
19/09/18 20:35:46.62 JVT+y9R+0.net
ガイジ2号がいつまでもガイジ1号の相手してるからだろう
どっちもプリウスミサイル叩き込んで殺した方がいい

10:デフォルトの名無しさん
19/09/18 21:05:01.27 Ei+Tp6tdM.net
フルボッコされて発狂してるだけだろw

11:デフォルトの名無しさん
19/09/18 21:07:25.51 WnNHWkf40.net
明日、ワッチョイの変化しない部分をあぼ~ん設定して1週間放置すれば
お豆腐~普通メンタルレベルなら消えるんじゃね?

12:デフォルトの名無しさん
19/09/18 23:49:13.69 Eln4Km+3M.net
>>10
わんわんでしゅか~?wお手!w

13:デフォルトの名無しさん
19/09/20 03:06:28.34 cbLpEk730.net
Jupyterで、
%%bashって書いたセルの一部でPythonを使うとかいうことはできないのかな。
forループとか、変数展開とか。
もちろんsubprocessで実行すればいいんだけど、シェルがメインでpythonが少しの場合、
なんかいいやり方ないかなと思って。

14:デフォルトの名無しさん
19/09/20 16:44:00.15 rjndmUfp0.net
何がしたいのかもう少しくわしく

15:デフォルトの名無しさん
19/09/21 01:15:40.54 U1H67dB+0.net
for i in range(1, 6):
 subprocess.run(('mkdir %d_new' % (i)).split(' ')
 subprocess.run(('cp %d %d_new' % (i, i)).split(' ')
と同様のことを、
for i in range(1, 6):
 !mkdir ${i}_new
 !cp $i $i_new
みたいな感じで書けないかな、と。
これはpythonの中にbashが入ってる例だけど、逆でもいいので。

16:デフォルトの名無しさん
19/09/21 03:11:15.88 xUElhJo20.net
Ruby なら、こういう感じ。
ただし、、DryRun なので、実際には実行されません
Python には、Fileutils みたいな、便利なライブラリは無いのか?
require 'fileutils'
( 1..2 ).each do |idx|
FileUtils::DryRun.mkdir( idx.to_s )
FileUtils::DryRun.touch( "#{ idx }/#{ idx }.txt" )
end
出力
mkdir 1
touch 1/1.txt
mkdir 2
touch 2/2.txt

17:デフォルトの名無しさん
19/09/21 05:24:04.46 L2nY9anWa.net
>>15
xonsh

18:デフォルトの名無しさん
19/09/21 08:35:59.52 sgtRiYtH0.net
>>16
知らないのになぜ答える(呆)

19:デフォルトの名無しさん
19/09/21 08:56:29.85 809PHD3I0.net
>>16
rubyは聞いてないです。pythonで回答してください。

20:デフォルトの名無しさん
19/09/21 09:00:33.23 b6UCNT9id.net
>>18
>>19
pythonより、Rubyの方が将来性はある。
特にキャリアの初期段階では、Rubyがオススメ。
Pythonは機械学習系で人気だけど、初学者にはオススメできない。
CSを学んだ人とかには、オススメできるのかな?
KENTA氏も、そう言ってる。

21:デフォルトの名無しさん
19/09/21 09:36:25.49 l4slB5oe0.net
>>19
荒らしの相手しちゃだめだよー

22:デフォルトの名無しさん
19/09/21 10:23:45.09 AojYT9zq0.net
将来性のないプログラミング言語ワースト5
5 Programming Languages That Are Probably Doomed
URLリンク(insights.dice.com)
Ruby ←←←www
Haskell
Objective-C
R
Perl
KENTA「Rubyに拘泥するやつは伸びない」
嘘ばかりついてるなこの糖質ww
やはりハエがウンコに惹かれるように、
カス人間もクソ言語に惹かれるんだろうwww

23:15
19/09/21 10:54:29.63 U1H67dB+0.net
>>15だけど、
Jupyterにおいて、
%%bashはセル全体をbashで実行、
!はその行をシェルで実行、で、
>>15の例が実はそのまま動くってことがわかった。
確認不足で質問してしまい申し訳ない。
>>17 xonsh調べてみます。
>>16
うーん、、、、15で13だって名乗り忘れたのも悪いけど、
>>13を読んだらディレクトリを作ったりファイルをコピーしたりということは単なる例で、
言語の制御構文、変数を使いつつシェルをシェルスクリプトレベルに簡単に実行したいという質問だったんですけどね。
あなたの例はJupyter上でシェルを簡単に実行できるからJupyterの機能を使って実現したいという大前提を無視してて
単にRubyでディレクトリの作成とファイルのコピーが出来る、ってだけの例で何の答えにもなってない。
当然Pythonにもファイル操作のライブラリはあるよ。
Rubyなら出来るって思うのは勝手だが、Pythonでは簡単にできないって妄想して発言するのやめてくれないかな。
てかそんなにRubyが良いって言うなら、RubyでJupyterに相当するもの教えてもらえないかな。そうしたら日常で使ってみるから。
irbは相当しないんでよろしく。

24:デフォルトの名無しさん
19/09/21 11:05:54.75 4a5WZv9wM.net
プリプロセッサを作ってpythonと同名のエイリアスを作るとかなら比較的簡単そう

25:デフォルトの名無しさん
19/09/21 20:41:07.52 5TKws+Zn0.net
また異教徒が湧いているようだな・・・・・・

26:デフォルトの名無しさん
19/09/21 20:59:48.05 4gE2iOeh0.net
プログラミング言語が宗教なら、複数の言語を日常的に使ってる奴はやばいじゃん

27:デフォルトの名無しさん
19/09/21 23:05:30.93 6UrGeJMka.net
日本人は仏教徒とかいっても、クリスマスとかハロウィンとか祝うじゃん
それと同じことでは?

28:デフォルトの名無しさん
19/09/22 00:15:54.93 fbK9NPLj0.net
nullを\Nと表現しているテキストファイルがあります。
pandasのread_csvのオプションで
na_values = '\\N' と指定しても、読取後に N としか解釈されません。
なお、dtype=str としてすべて文字列で読み込んでいます。
\Nをnull扱いで読み取る方法はないでしょうか。

29:デフォルトの名無しさん
19/09/22 01:33:24.69 1ZcxgUxg0.net
>>27
マホメットの誕生日もお祝いしないと

30:デフォルトの名無しさん
19/09/22 08:05:54.77 Hc6O2uDq0.net
神道でも墓は寺にあったりするし。

31:デフォルトの名無しさん
19/09/22 09:51:13.12 5WmnN11dr.net
状況によって使い分けるだけ
食材は包丁、紙はハサミ、木材はノコギリで切るのと同じ

32:デフォルトの名無しさん
19/09/22 13:36:11.13 NWulzMwt0.net
na_values = ('\\N',)

33:デフォルトの名無しさん
19/09/22 13:44:50.84 7LiwHA260.net
>>28
Ruby では、独自の CSV::Converters を定義すれば、できるけど
require 'csv'
str = <<"EOT"
"\N",1
"2",\N
EOT
proc = Proc.new do |field, field_info|
if field == "\N"
nil
else
field
end
end
options = { :converters => proc }
CSV.parse( str, options ).each do | row |
p [ row[ 0 ], row[ 1 ] ]
end
出力
[nil, "1"]
["2", nil]

34:デフォルトの名無しさん
19/09/22 13:47:39.09 NWulzMwt0.net
>>> pd.read_csv(io.BytesIO(b'abc,def,yyy\nghi,\\N,xxx\n'), sep=',', dtype=str, na_values=('ghi','\\N'))
abc def yyy
0 NaN NaN xxx
>>> pd.read_csv(io.BytesIO(b'"abc","def","yyy"\n"ghi","\\N","xxx"\n'), sep=',', dtype=str, na_values=('ghi',r'\N'))
abc def yyy
0 NaN NaN xxx

35:28
19/09/22 17:25:53.71 fbK9NPLj0.net
皆様、ありがとうございます
escape_charが邪魔していたようです
escape_char='\\'を外したら動作しました。

36:デフォルトの名無しさん
19/09/22 18:11:35.58 5MoRoXDq0.net
すみません、a.txt , b.txt ,c.txtといった感じで5個テキストファイルがあって
各テキストファイルには1行ずつ
2465
451
5887
と並んでいるのですが、これを各テキストごとにaリスト、bリストとリストを
一括で作りたいのですが、どうすればいいでしょうか・・。
一つだけならopenで開いてa = [ ]にappendするだけなのですが、一括でやるのがネックでして

37:デフォルトの名無しさん
19/09/22 18:11:40.10 5MoRoXDq0.net
すみません、a.txt , b.txt ,c.txtといった感じで5個テキストファイルがあって
各テキストファイルには1行ずつ
2465
451
5887
と並んでいるのですが、これを各テキストごとにaリスト、bリストとリストを
一括で作りたいのですが、どうすればいいでしょうか・・。
一つだけならopenで開いてa = [ ]にappendするだけなのですが、一括でやるのがネックでして

38:デフォルトの名無しさん
19/09/22 18:40:53.40 aANq22gT0.net
>>36-37
5回ループさせたらいかんのんけ?

39:デフォルトの名無しさん
19/09/22 18:44:32.08 aANq22gT0.net
>>38補足
各リスト名は入力ファイル名から拡張子とったやつに、すればいんじゃね?
でもって作成済みリスト名を集めたリストでもつくっとけ

40:デフォルトの名無しさん
19/09/22 19:25:51.59 vTpi5vA10.net
コマンドライン引数でループするのが成功法

41:デフォルトの名無しさん
19/09/22 19:44:33.01 5AUskteJa.net
>>37
glob.globをforループしたら

42:デフォルトの名無しさん
19/09/22 20:14:43.44 7LiwHA260.net
ホリエモンもおすすめ!人気のプログラミングキャンプの様子を特別公開
URLリンク(www.youtube.com)
岩手県八幡平市(はちまんたいし)
参加費無料のスパルタキャンプが、10/8 12:00 まで、15名募集中!
(ただし、今年の競争率は、25倍ぐらい)
11/2 ~ 11/24 の毎週土・日の8日間、8:30 ~ 18:30
Python で、機械学習・LINE BOT・Django

43:デフォルトの名無しさん
19/09/22 20:28:10.43 7LiwHA260.net
Ruby なら、こういう感じで、5つ書けばできるけど
# 末尾の改行を削除して、配列に読み込む
a = File.readlines( "a.txt", chomp: true )
b = File.readlines( "b.txt", chomp: true )

44:デフォルトの名無しさん
19/09/22 20:35:47.40 p1u+NLfG0.net
一括でやる必要性の意図が全く分からんけど、下のような程度の話ならくだすれで聞いた方がいいかな
d = {}
for x in ["a.txt", "b.txt", "c.txt"]:
 with open(x) as f:
   d[x] = f.readlines()

45:デフォルトの名無しさん
19/09/22 20:36:33.96 ulErh40p0.net
>>36
普通はリストを要素に持ち、ファイル名をキーに持つ辞書にする
texts_dict = {}
for file in ['a.txt', 'b.txt', 'c.txt']:
 with open(file, 'r') as f:
  texts_dict[file] = f.readlines()
みたいな
で、使うときはtexts_dict['a.txt']とかでアクセス
どうしても変数に直接入れたければ、
globals()['a'] = [] とかすれば a = [] をしたことと同じになるから、それで行うけど、
ファイル名が可変だったら結局globals()経由で辞書アクセスすることになるから、
普通は辞書にすると思うよ

46:デフォルトの名無しさん
19/09/22 20:39:26.05 aANq22gT0.net
>>45
(質問者じゃないけど)なるほどなっとく!
スマートだ > 辞書を使う方法

47:デフォルトの名無しさん
19/09/22 21:26:02.03 eV1DMGD/M.net
>>43
早く死ねよ

48:デフォルトの名無しさん
19/09/22 21:45:30.11 +Vq+U6PO0.net
だまって透明にしときゃいいさ
誰も見ないのにご苦労なこった

49:デフォルトの名無しさん
19/09/22 23:02:47.18 5MoRoXDq0.net
>>38-45
ありがとうございます。ちょっとやってみます

50:デフォルトの名無しさん
19/09/26 01:34:06.99 oHudf+NE0.net
すんません、Pythonに詳しい人教えろください。
アクティブウィンドウの選択テキストをPythonで取得するにはどうすればいい??
LinuxユーザPython初学者です。

51:デフォルトの名無しさん
19/09/26 15:45:09.87 EH9TPs/Va.net
wmによるんじゃね

52:デフォルトの名無しさん
19/09/27 00:07:03.40 2McA6UJq0.net
よくわかりませんが、ブラウザのテキスト選択して、ファンクションキーやショートカットなどでバインド。
テキスト選択テキストをスピーチをさせたり、選択テキストをWEB検索したりとか…ファイル検索して辞書っぽい使い方とか?

53:デフォルトの名無しさん
19/09/27 08:50:31.85 AvYsaFlO0.net
要するにpythonでクリップボードを操作したいワケか。
linuxじゃどうやるかは知らんけど検索すればそれっぽいのが出てくるんじゃねえの

54:デフォルトの名無しさん
19/09/27 12:04:16.80 oLJPEcmZ0.net
漏れにはクリップボードに入る前の話をしているように見える

55:デフォルトの名無しさん
19/09/27 12:08:05.81 oLJPEcmZ0.net
ここの後者の内容でいけるかな
URLリンク(oplern.h%41tenablog.com)

56:デフォルトの名無しさん
19/09/27 12:16:32.88 tWSFBj5g0.net
Linuxは選択しただけでペースト候補になる。

57:デフォルトの名無しさん
19/09/27 16:20:49.29 f2vxlf0q0.net
漏れは、Ruby で、クリップボードを使っている。
Rubyから、Powershell, clip コマンドも呼べる!
クリップボード内の複数行文字列の、各行の先頭・末尾から、
連続する空白類を除去して、クリップボードに入れる
str = `powershell Get-Clipboard`
str.encode! Encoding::UTF_8, Encoding::CP932 # UTF_8 へ変換
ary = str.each_line.map( &:strip ) # 連続する空白類を除去する
IO.popen( 'clip', 'w:cp932' ) do | clip | # CP932 へ戻す
clip.print( ary.join "\n" )
end

58:デフォルトの名無しさん
19/09/27 22:59:05.44 Z4UqEtTG0.net
powershell呼んでるだけだね。
今日日execできない言語なんてあるの?w
>>57
廃止予定のバッククォート失敗記法使ってるからすぐ動かなくなりそうだね。
URLリンク(logmi.jp)
それから「Backquotes」の地上げも考えていたんですけども、Backquotesをするとシェルで実行して結果を文字列で返すってやつですね。
(参加者から「いける、いける」の声)
まつもと:なんかあの辺で「いける、いける」って言ってる人がいますけど、信じない(笑)。なので、これももうちょっと先で、もう1回くるかもしれませんが、少なくとも3.0では死なないということです。

弱い頭で適当に文法決めてすぐブレイキングチェンジして動かなくなる書き捨て専用クソ言語wwwww

59:デフォルトの名無しさん
19/09/27 23:29:19.09 N494Gtz30.net
論よりコード

60:デフォルトの名無しさん
19/09/28 00:21:55.10 H0kYzg7c0.net
>>55
sudo apt-get install xclip
オプション
-i 標準入力からXセレクションへコピーを行う
-o Xセレクションの内容を標準出力へ出力
-selection 出力指定なし時はPRIMARYとなる。
PRIMARY領域から画面に出力:
xclip -o -selection primary
PRIMARY領域からファイルに出力:
xclip -o > primary.txt
…………完璧過ぎる返答に漏らしました。
このスレにも口先だけのベテラン気取りじゃない方もいらっしゃるんですね。
PYTHONだけじゃなくLINUXももっと勉強します!ありがとうございました!m(_ _)m

61:デフォルトの名無しさん
19/09/28 00:23:42.56 H0kYzg7c0.net
>>57
死ねバカ

62:デフォルトの名無しさん
19/09/28 01:37:08.63 mOHVtsFt0.net
>>60
一言多いって言われるだろ
社会人になる前に直しとけよ

63:デフォルトの名無しさん
19/09/28 02:45:43.48 C0qDQBnO0.net
>>57
はやくJupyterでPythonを書く相当のことが出来るRubyのプロダクト教えてくれよ
そのコード実行するのだってJupyter的な便利なインタラクティブシェルがないと
入力もチェックもめんどくさいだろ、当然あるからそういうコード書いて使ってるんだよね
PythonとRubyの両方に精通していてRubyには将来性があるって断言するのなら
まだ実用になっていなくてもそうなりそうなプロダクトも試してたりするんだろうし
あとついでにmatplotlibとnumpy、scipy、pandas相当のものも教えてくれると助かる

64:デフォルトの名無しさん
19/09/28 15:09:52.03 JKTk1U1A0.net
>>60
そんなんじゃ社会人になっても業務支援しかやらせてもらえないぞ

65:デフォルトの名無しさん
19/09/28 17:22:36.20 H0kYzg7c0.net
口先だけのベテラン気取りってのが刺さったらしいな

66:デフォルトの名無しさん
19/09/28 17:36:04.25 od8auTQE0.net
・教えてもらいにきたくせに煽っている点
・おれの質問はハイレベルwだと思っている点
・そのくせポイントを押さえた質問文が書けず、エスパー求む状態の点
などが・・・

67:デフォルトの名無しさん
19/09/28 17:36:54.67 0FIb/jod0.net
無能な奴に限って業務では~とか社会じゃ通用しないとか説教したがるからなw

68:デフォルトの名無しさん
19/09/28 18:33:57.07 od8auTQE0.net
謎の業務マニュアルを策定して裏マニュアルなりなんなり作られたり
デスマ炎上を作成しまくるような
ヽ( ・∀・)ノ● ウンコーの中核になるくらいなら、
きちんと回る業務支援 のほうが 10000倍くらいまし、かつ、有能だとおもうんだが。

69:デフォルトの名無しさん
19/09/28 21:19:41.23 mOHVtsFt0.net
Pythonスレに来てPython全く関係ない回答に完璧とか言い出してる点はまぁよしとしても
個人的にはLinuxとPythonを大文字でLINUXとPYTHONと書いてる点が気になったw
初心者なんだろうなぁ・・・

70:デフォルトの名無しさん
19/09/28 21:46:10.02 4Lg9vq/90.net
COBOLとかFORTRANとかBASICとか
大文字でJIS登録されている言語を普段使いとしているのではないかな

71:57
19/09/28 22:22:03.56 Bvcc+55+0.net
>>63
遂に、VSCode の本が出た!
徹底解説Visual Studio Code、本間咲来、2019/9/27
Jupyter, Vim でも出来るけど、VSCode で良い!
Code Runner(Run Code)という拡張機能で、右クリックメニューから、コード片を実行できる。
ファイルパスが解決できない場合は、File Directory As Cwd を設定する

72:デフォルトの名無しさん
19/09/28 23:58:31.13 qhruDYhYa.net
Python使ってるのは初心者だの、ブロックが分かりづらいからだめとか言われたのだけど
別にダメな言語じゃないよね?
良いライブラリがあってやりたい動きをすぐに実装できるし書きやすいからこればっかり使ってるんだけどおっさんに言われてモヤモヤした…
C#、javascript、pythonしか触ってないけど、一番書きやすくてしっくりきたからお気に入りなのに。すげー悔しかった

73:デフォルトの名無しさん
19/09/29 00:10:46.14 pCkNePeqM.net
>>72
使ったことなくて印象で言ってるんだろ。言わせときなよ。

74:デフォルトの名無しさん
19/09/29 00:17:26.76 6iKlTSzwa.net
とは言えpycharmありきって感じはするんだよな
ブロックが分かりにくいってのは反論できねー

75:デフォルトの名無しさん
19/09/29 00:22:44.02 nT1w560I0.net
初心者向け言語だとは思ってなかったけど
(FedoraとかのインストーラーはAnacondaって名前のPythonのスクリプトだってことをかなり昔から知ってたし)
Pythonでゴリゴリ書く前はブロックがわかりにくいとは思ってたな。
かといってカッコがあるとわかりやすいのか?っていうと、
カッコがあってもわかりにくい時は結構あるって感じがするけどな。

76:デフォルトの名無しさん
19/09/29 01:57:16.53 yF2ygbXTM.net
初心者向けっていうか「分かりやすい」
特に配列関連強い気がする。
ライブラリ多いからやりたいことがすぐ実現できる。
ブロックはカッコ後ろ派と同インデント派があるのに比べれば「分かりやすい」
初心者向けでも要求仕様満たせてれば問題ないんじゃないの?
それで生産性高かったり引き継ぎしやすいなら最高じゃんw
言語に優劣付ける程色々弄ってきてるなら対立煽る以外では不毛な話題でしか無いかと。

77:デフォルトの名無しさん
19/09/29 02:07:50.07 9sS1uJjp0.net
>>72
俺おっさんだけど新人にはPythonだけ教えてる
本質と違うところで悩んで欲しくないからね
言語体系として美しさに欠ける点が多々あるのは諦めている
ブロックが分かりにくいのもあるけどスコープも分かりにくい
withやtryで字下げしてブロック作ってるのにスコープは作らないとか
普通ならあり得ん仕様だ、まぁ便利なんだけど
with open(‘hoge.txt’, ‘r’) with f:
  a = 123 ← これ、ローカル変数じゃない
print(a) ←ブロックの外に出て表示可能
結果 123
こんなこと書くとrubyくんが降臨するかな

78:デフォルトの名無しさん
19/09/29 08:04:21.86 qdFsd7WD0.net
>>74
ブロックについては間違ったインデントで誤認すると言うのを防ぐためのものだからそう言うのが嫌ならPythonを使うことを諦めるしかないな
if(...)
 if(...)
  a = ...
else
 b = ...
>>77
スコープはたしかに分かりにくいね
ただPythonは変数宣言がないからスコープ作るとその例だと
a = 0
with open(‘hoge.txt’, ‘r’) with f:
 a = 123 ← これ、ローカル変数じゃない
print(a) ←ブロックの外に出て表示可能
みたいな本来不要なコードを入れる羽目になるから痛し痒しだね

79:デフォルトの名無しさん
19/09/29 09:54:04.21 6bWGECfja.net
>>78
今時オートインデントのないエディタやIDEなんて使わんから、前に誰かも言ってたけどループ抜けた直後の処理とかインデントを手動で調整する部分は明確に劣ってると思うけどね
掲示板とかの書き込みでも仕様によっては論理構造自体把握できなくなるし
それだけをもってPythonがどうのこうのと言う気はないし好んで使ってはいるけどね

80:デフォルトの名無しさん
19/09/29 10:36:00.68 o2dHW2ZP0.net
Pythonに限らずインデントは整えろよ

81:デフォルトの名無しさん
19/09/29 10:57:44.76 qdFsd7WD0.net
>>79
> 今時オートインデントのないエディタやIDEなんて使わんから
Pythonの仕様決めた頃の話に今時とか言われても…
後付で批判できる俺スゲーってか?w

82:デフォルトの名無しさん
19/09/29 11:03:04.37 sjKzDFMja.net
んなこと言い出したらなんの比較もできんわ
Pythonだけ崇拝してろよ

83:デフォルトの名無しさん
19/09/29 14:19:19.94 qdFsd7WD0.net
お前の批判の理由がおかしいだけ

84:デフォルトの名無しさん
19/09/29 15:04:48.86 wk/e9yFta.net
他の言語も実用上インデントが分かりにくい状況なんかあり得ないって言ってんだけどな
そうなるとブロックの終わりが視認しづらいってデメリットだけが目立つことになるわけ
Pythonのブロックがわかりにくくないって言うなら意見の違いだから別にそれで良いけど

85:デフォルトの名無しさん
19/09/29 15:12:39.88 nT1w560I0.net
オフサイドルールでブロックがわかりにくいより、
ブロックスコープがないほうがよっぽどPythonの欠点だと思うんだよな
ただオフサイドルールは逆に便利なときもあるような気がするけどなー
JSとかで閉じカッコの対応がめちゃくちゃになるときよくあるもの
まぁそれは無名関数を突っ込めるからってのとも関係してるだろうし、
同一条件じゃないから単純比較はできないと思うけど

86:デフォルトの名無しさん
19/09/29 15:26:02.16 wk/e9yFta.net
関数が長くなってきたときとか、分岐やループで一時的にしか使わない変数名にも気を使わないといけないのは確かに面倒くさいな
スコープの仕様自体はわかりやすいんだけど他の言語で広く常識とされてる仕様とは違うからね

87:デフォルトの名無しさん
19/09/29 15:37:16.47 11si1Xxn0.net
if文で && って書いちゃう

88:デフォルトの名無しさん
19/09/29 16:19:10.31 qnyhMUgLp.net
>>86 code folding
でブロックを閉じたり開いたりすれば簡単。
Jupyter notebook なら入ってるよ。

89:デフォルトの名無しさん
19/09/29 17:29:15.15 qdFsd7WD0.net
>>84
>>78のコード見たらわかると思うけど正しいコードの話をいくらされても意味ないよ
他の言語はインデントとコードの意味は関係ないからインデントによって誤認する可能性があって事実それによるバグもあったのでPythonみたいな考え方が出てきたって話ね
別にそれで全てを解決するわけじゃないし色々指摘されてる通り弊害もあるのはわかってる

90:デフォルトの名無しさん
19/09/29 17:32:32.79 qdFsd7WD0.net
>>85
ブロックスコープは>>78の後半に書いてる通り変数宣言と絡むからちょっと難しいな
個人的にはあまり大規模なコードを書くような仕様じゃないと感じてる

91:デフォルトの名無しさん
19/09/29 19:57:20.42 0Rn4cTtQa.net
>>89
>>78のコードで言いたいことがわからんのだけど、elseの対応がわかりやすいってこと?それはあんまりメリットに見えないから誤解してるようだったら申し訳ない
インデントを文法に含めた時代背景とかは知らんかったから勉強になったよ
ただ、今は実用上そうする意義はあんまりないよねって言いたかっただけだから話がかみ合わなかったような気がするわ
いきなり煽られたからカッカしてたわすまんな

92:デフォルトの名無しさん
19/09/29 20:25:33.13 nT1w560I0.net
>>90
大改造にはなるだろうね。どんなところが問題になるか把握してないけど、
JSにES6でlet/constが導入できたみたいにPythonでも導入されるとなんとなく嬉しそうではある。
大規模なコードは書かないから個人的には問題になったことがないけれど。
元の話になったPythonディスおっさんも、ブロックスコープがない、マルチコア時代にそれを活かしづらい設計、
とか言ってディスるなら、そうですねおっしゃるとおりですという感じになるんだけどなぁ。

93:デフォルトの名無しさん
19/09/29 20:59:13.92 qdFsd7WD0.net
>>91
え?
elseがどのifに対応するのかぱっと見てわかるなら素ですごいと思う
ただ誰にでも君みたいな能力があるわけじゃないからインデントとブロックが合うようにしようってだけのこと
今は意味がないと言うけどみんながみんな理想的な環境使ってるわけじゃないしね

94:デフォルトの名無しさん
19/09/29 21:01:42.52 qdFsd7WD0.net
>>92
まあPython 2からPython 3で結構手を入れたからやれなくもないとは思うけど、変数宣言しなくていいと言うメリットを捨ててまでブロックスコープ作るのがいいかどうかは微妙だし

95:デフォルトの名無しさん
19/09/29 22:22:19.03 5vhDzuHra.net
それは(ツールに任せればいい話で)メリットにみえないから、(誰でも知ってることを懇切丁寧に説明してくれた以上のことがあるはずだし)誤解してるようだったら申し訳ない、と言わないと伝わらんよなすまん
言語の成り立ちはわかったし教育上有益だとは思うけど話がかみ合わんからもういいよ
視認性の話は>>88も言ってるとおりIDEかちょっと気の利いたエディタで解決する問題だし

96:デフォルトの名無しさん
19/09/29 22:58:57.71 GVs7K/pUM.net
まあコンパ語と比べるのもアレだがとりまCと比べてif文を例にしたとしても
条件式の()が強制されなくて{}も不要でa<b<cみたいにサンドイッチそのまま書ける等々、コーディングが楽なのは確実

97:デフォルトの名無しさん
19/09/29 23:12:58.62 nT1w560I0.net
>>94
宣言しないものは今まで通り、varなりletなりつけて宣言したものはブロックスコープってなると
ありがたいかな、文法上矛盾なく実現できるのかはわからないけど
明示的にブロックスコープを要求しないとブロックスコープにならないって仕様でも、そんなに困らない気がするな。
今でもdefして直後に呼び出すってことで実現できるっちゃできるのかもしれないけど。

98:デフォルトの名無しさん
19/09/30 06:47:26.08 II5MOx76M.net
>>97
> 宣言しないものは今まで通り、varなりletなりつけて宣言したものはブロックスコープってなる
宣言するものとしないものが混在すると宣言し忘れなのか意図して宣言してないのかがわからなくなるのでそれはそれで嫌かも
なんて意見も出てきたりするからホント難しい

99:デフォルトの名無しさん
19/09/30 10:20:08.17 Bc8Kvfnp0.net
>>98
宣言し忘れを警告するアノテーションをファイルや関数に追加できるようにしたらいいんじゃない。

100:57
19/09/30 11:41:28.14 auJmx+hY0.net
>>60
日経Linux 9月号の付録本に、xclip コマンドについて書いてあるけど、
X Window には内部に、Primary, Secondary, Clipboard の、3つのセレクションがある。
この内、普段クリップボードで使うのは、Clipboardセレクションだから、
「-sel c」オプションを付ける
xclip -o -sel c | toilet

101:デフォルトの名無しさん
19/09/30 12:27:42.38 II5MOx76M.net
>>99
それをするぐらいならすべての変数の宣言を必須とした方がいいんじゃね?
っていう意見が出ると思うよ

102:デフォルトの名無しさん
19/09/30 14:20:51.95 QmRxkeUJ0.net
>>92 Python のルール内の
命名規則に従えば良いだけの話だろ。
[Pythonコーディング規約]PEP8を読み解く
URLリンク(qiita.com)

命名規則
定数 全大文字 + アンダースコア区切り MY_FAVORIT

103:デフォルトの名無しさん
19/09/30 15:19:40.01 SaJNFqAl0.net
見てるスレがどこもかしこもくだらねえ話題に走ってんな
そういう時期なのか…?

104:デフォルトの名無しさん
19/09/30 18:59:04.06 lsZA7Zit0.net
>>101
反論したいだけなのか?JSはそうなってないし、Pythonにおけるその意見の合理性はなに?
文法上そうしないと矛盾が出る具体的な考察はある?
宣言しない変数も使えてほしいというのは現状そうなってるから合理的な意見だと思うけど。

105:デフォルトの名無しさん
19/09/30 20:29:58.47 C5a1QkZEM.net
俺が考えるPythonをよくする提案だったら公式の掲示板でやってくんないかな~
ママに話して聞かせるようなくだらない提案に頭の計算資源使いすぎて、
ガイジ並みの知能になってるのか?クソカス

106:デフォルトの名無しさん
19/09/30 20:56:31.01 II5MOx76M.net
>>104
仕様決めなんてトレードオフの連続なんだから唯一の正解なんてないよ
JSみたいな言語もあるだろうしもっとガチガチなAdaみたいな言語もある
>>99がだめと言ってるわけじゃなくて反論は必ず出るってこと
またJSなんかを見てりゃわかると思うけど時代によって要求されることが変わってきたりするしね
だから世の中に山ほどプログラム言語があるわけ、わかる?

107:デフォルトの名無しさん
19/10/01 03:33:47.77 DUbYYSbu0.net
>>106
論点はなんなの?
こっちは、「ブロックスコープがないと不安なときがある」ぐらいしか言ってないよ。
導入されないのには合理的な理由も当然あるだろうなーと思ってる。
日常的に6個ぐらいプログラミング言語開発で使ってるから得意不得意があることぐらいわかるよ。
「Aという意見もある、難しい」「Bという意見も出る、難しい」しか言ってないように感じるんだけど、
何が言いたいの?反論は出るなんて言語仕様を変更するならどんな言語でどういう風に変更したって
大抵出るような当たり前のことだろうし、さすがにそんなことだけを言いたいわけじゃないだろうし。

108:デフォルトの名無しさん
19/10/01 03:50:49.11 DUbYYSbu0.net
>>57
スレリンク(tech板:722番)n
> 722 名前:デフォルトの名無しさん (ワッチョイ 5f2c-+BGV)[] 投稿日:2019/09/30(月) 20:12:39.70 ID:auJmx+hY0
> 任意の列数のCSV ファイルから、そのファイルを上書きせずに、特定の2列だけを抜き出したい。
> 2列以外のすべての列を削除したりできますか?
> ただし、列名・列数は、ファイルごとに変化します
import sys
import pandas as pd
field_name_1 = 'AAA'
field_name_2 = 'BBB'
df = pd.read_csv(sys.argv[1])[[field_name_1],[field_name_2]] # AAA列とBBB列だけのDataFieldが出来る

109:デフォルトの名無しさん
19/10/01 06:45:24.85 lPnANaUAM.net
>>107
> 「Aという意見もある、難しい」「Bという意見も出る、難しい」しか言ってないように感じるんだけど
いや、初めからそう言う風にしか言ってないけど?
>>98とかを読んでそう取れないとしたらあなたの理解力に相当問題あると思うよ

110:デフォルトの名無しさん
19/10/01 14:58:13.70 DUbYYSbu0.net
>>109
「難しい」として例に出された意見が本当に難しいのか?って内容だったからなぁ。
次に出された「難しい」も、そういう意見が出てきそうな根拠がよくわからない
「始めから全部宣言すれば」だったし。
もうちょっとブロックスコープを導入するにあたって現実的に問題になりそうな点について
「AやBの両立をどうするかって意見があるから難しいよ」って言ってもらえればこっちもすんなり納得するんだけど、
誰でも思いくようなレベルの話を言って「意見の対立があるだろうから難しい」と言われても、
Pythonコミュニティならそんな簡単なことはすぐ合理的に決定するのでは?って思っちゃう。
こっちはブロックスコープの可能性について書いてるのに、仕様変更による意見の対立があるから難しいってのは的を外した反論だし、
じゃあ具体的にどういう対立があるのか?っていうことに対しても知見のある反応をしているとは思えない。
それなのに、「ホント難しい」と、まるで間近で見てきたか議論に参加してきたかのような書きぶりで違和感があったが 、
実際間近で見たとかなのか?それだったらすまんよ。

111:デフォルトの名無しさん
19/10/01 18:10:31.98 edrieGWV0.net
基礎的な数値計算の疑問で
x = 0
for i in range(10000):
x += 0.0001
print(x)

0.9999999999999999062
になる理由がよく分からないので教えてください

112:デフォルトの名無しさん
19/10/01 18:16:03.81 yGujYsxV0.net
0.0001を2進数に直す

113:デフォルトの名無しさん
19/10/01 18:42:48.99 vlDmDXF7r.net
0.0001は2進数では循環小数になる→表現できる桁数は有限だから誤差が積もってゆく

114:デフォルトの名無しさん
19/10/01 18:43:28.06 FnDrhLoap.net
>>111
>>112の返答がほぼ答えだけど、もう少し親切に説明しようと思う
浮動小数点で0.0001を表すと厳密には0.0001ではなくて小さな誤差を持つので、足し合わせても1にはならない

115:デフォルトの名無しさん
19/10/01 18:51:08.71 edrieGWV0.net
>>114
ありがとう

116:デフォルトの名無しさん
19/10/01 19:15:16.00 9fvqkmcJ0.net
>>111
「割り切れない数」の代表格の1/3は三進数では0.1
πはπ進数では10

117:デフォルトの名無しさん
19/10/01 20:05:23.27 lPnANaUAM.net
>>110
ぼくのかんがえたていあんをりかいできないとかありえない
ってか?
バカじゃねーの?
そんな簡単にブロックスコープの問題が解決されるなら誰も苦労はせんよw
言語設計者をなめすぎ

118:デフォルトの名無しさん
19/10/01 20:21:37.81 edrieGWV0.net
>>116
高校数学をやらなければいけないことは分かった、ありがとう

119:デフォルトの名無しさん
19/10/01 22:46:37.27 5NrAsYQP0.net
>>117
結局煽ってマウント取って気持ちよくなりたいだけなんだね。わかったよ。ありがとう。

120:デフォルトの名無しさん
19/10/02 04:59:18.95 fPPXHhjt0.net
>>119
それお前だろ…
どんだけ悔しがりなんだよw

121:デフォルトの名無しさん
19/10/02 07:42:31.71 YpMEiTCH0.net
二進数の浮動小数点演算では誤差が出る。
誤差を出さないために、Pythonでは fraction (文数) という概念がある。
0.0001 は誤差が出るが、1/10000 なら誤差は出ないという話。
from fractions import Fraction
print(Fraction(1, 10000)*3)
#3/10000
実際のプログラムで誤差を出さない様にするためには、整数演算だけで行う事がよくある。
print(1*3/10000)
#0.0003
x = 0
for i in range(10000):
 x += 1
x = x/10000
print(x)
#1.0

122:デフォルトの名無しさん
19/10/02 13:01:18.79 55+aQRnYa.net
>二進数の浮動小数点演算では誤差が出る。
だから違うから初心者に誤解を招く表現はやめろ
十進数でも浮動小数点演算では誤差が出る
原因は二進数じゃない

123:デフォルトの名無しさん
19/10/02 13:27:56.11 vkK/4cs10.net
>>122
from decimal import *
getcontext().prec = 6
print(Decimal('0.0001')*3 , 0.0001*3)
# 0.0003 0.00030000000000000003

124:デフォルトの名無しさん
19/10/02 14:07:38.62 vkK/4cs10.net
decimal --- 十進固定及び浮動小数点数の算術演算
URLリンク(docs.python.org)
decimal モジュールは正確に丸められた十進浮動小数点算術をサポートします。
数値間の等価性を厳しく保たなければならないようなアプリケーションを考えるなら、十進数による数値表現が望ましいということになります。
ハードウェアによる 2 進浮動小数点表現と違い、decimal モジュールでは計算精度をユーザが変更できます(デフォルトでは 28 桁です)。
この桁数はほとんどの問題解決に十分な大きさです:

125:デフォルトの名無しさん
19/10/02 14:15:23.16 BQ6RkETu0.net
三進数で 0.1 - 0.001 = 0.022 で有限小数となるけど十進数で問題解決できるの?
十進数では1/3も1/27も有限小数じゃなくなるけど。

126:デフォルトの名無しさん
19/10/02 15:22:36.64 vkK/4cs10.net
>>125 数字をどう扱うかだろうね。 
途中演算は全て分数で計算し結果も分数ならそれで終わりだし、最終的に浮動小数点数で表したければ何桁で丸めるかと言うだけの話だろ。
有理数として扱いたければ分数で最終まで扱うしかない。
from decimal import *
from fractions import Fraction
getcontext().prec = 28
f137 = Fraction(1,3)+Fraction(1,7) # 1/3 + 1/7 -> f137= 10/21
print(f137 , Decimal(float(f137)))
# 10/21 0.47619047619047616404230893749627284705638885498046875
同じことを普通の浮動小数点演算すると
print(13/+1/7)
# 0.47619047619047616

127:デフォルトの名無しさん
19/10/02 15:30:33.78 dOlpIXopF.net
>>124
丸めてるじゃねーかωωω

128:デフォルトの名無しさん
19/10/02 15:32:50.13 dOlpIXopF.net
>>126
二進数でも二進数のまま全て分数で計算すればそれで終わり

129:デフォルトの名無しさん
19/10/02 15:33:03.55 vkK/4cs10.net
>>127 >>126

130:デフォルトの名無しさん
19/10/02 15:47:10.47 gHIFLYdkp.net
>>128 分数で扱うのなら二進数も10進数も無い。
ただ、最終的に浮動小数点数として扱うなら
2進数の浮動小数点数は、ハードウェアの演算機の精度で有効桁数が決まるが、10進数の場合は自由に決められるから自分の好みの結果が得られる。

131:デフォルトの名無しさん
19/10/02 15:59:41.87 dOlpIXopF.net
なんでそうなる

132:デフォルトの名無しさん
19/10/02 16:10:31.11 gHIFLYdkp.net
なんでそうなるって、decimal が、そう言う仕様で作られてるからに決まってんじゃん。

133:デフォルトの名無しさん
19/10/02 16:14:01.35 dOlpIXopF.net
わざとボケてんのか?
>2進数の浮動小数点数は、ハードウェアの演算機の精度で有効桁数が決まるが、
なんでそうなる
2進数の浮動小数点数だって自分で自由に決められるだろ

134:デフォルトの名無しさん
19/10/02 16:37:42.79 gHIFLYdkp.net
>>133 ボケてるのどっち?
15. 浮動小数点演算、その問題と制限
URLリンク(docs.python.org)
近年の殆どのコンピュータでは float 型は、分子に最も重大なビットから始めて最初の 53 ビットを使い、分母に 2 の累乗を使った、二進小数を使って近似されます。
 1/10 の場合は、二進小数は 3602879701896397 / 2 ** 55 となります。
これは、1/10 に近いですが、厳密に同じ値ではありません。
ハードウェアの浮動小数点演算をサポートしている全ての言語で同じ種類の問題を見つけることができます
Python は 本当に float の正確な値が必要なレアケースに対応するためのツールを提供しています。 float.as_integer_ratio() メソッドは float の値を有理数として表現します:
>>> x = 3.14159
>>> x.as_integer_ratio()
(3537115888337719, 1125899906842624)
>>> x == 3537115888337719 / 1125899906842624
true

fractions モジュールと decimal モジュールを使うとこれらの計算を簡単に行えます

135:デフォルトの名無しさん
19/10/02 17:00:45.15 dOlpIXopF.net
>>134
朝鮮人みたいな絡み方だなお前

136:デフォルトの名無しさん
19/10/02 17:51:41.97 gHIFLYdkp.net
>>135 最後は捨て台詞? 勉強してね。

137:デフォルトの名無しさん
19/10/02 17:55:40.23 wzM2k9fzp.net
ここまでIEEE-754の単語の一つも出ないのは何故なのか

138:デフォルトの名無しさん
19/10/02 18:08:35.75 dOlpIXopF.net
捨て台詞っていうか論点がかみ合わないなと思ってね

139:デフォルトの名無しさん
19/10/02 18:09:09.11 qnjdQ6x30.net
知らないんでしょw
知ってりゃ
「二進数の浮動小数点演算では誤差が出る」
「数値間の等価性を厳しく保たなければならないようなアプリケーションを考えるなら、十進数による数値表現が望ましい」
「2進数の浮動小数点数は、ハードウェアの演算機の精度で有効桁数が決まるが、10進数の場合は自由に決められるから」
とか出てこない。

140:デフォルトの名無しさん
19/10/02 18:15:52.10 QS7AdVKy0.net
Pythonの話はしないのか
しないなら次スレからタイトル変えて

141:デフォルトの名無しさん
19/10/02 18:21:26.45 4+yUm89/p.net
>>139 ここはPython スレだぞ。 Python の仕様を否定するのならこのスレを見てる意味はない。
全て仕様書に書かれてる言葉そのものなのに何をどう反論したいのかな?

142:デフォルトの名無しさん
19/10/02 18:51:41.09 qnjdQ6x30.net
>>141
IEEE 754よめw

143:デフォルトの名無しさん
19/10/02 19:00:26.82 4+yUm89/p.net
>>142 アホ、IEEE を理解していないな。

144:デフォルトの名無しさん
19/10/02 19:05:33.69 qnjdQ6x30.net
一応説明しとく
「二進数の浮動小数点演算では誤差が出る」
→間違い。一般的に言われる「浮動小数点問題」は
URLリンク(docs.python.org)
に説明がある。雑に言うと、10進数に近似するときに出る誤差を問題にしている。
「数値間の等価性を厳しく保たなければならないようなアプリケーションを考えるなら、十進数による数値表現が望ましい」
→そもそも10進数で表現する必要がないのであれば、等価性を厳しく保つために2進数を採用するのが適切。
「2進数の浮動小数点数は、ハードウェアの演算機の精度で有効桁数が決まるが、10進数の場合は自由に決められるから」
→これこそIEEE754の制限でしょw高速性を求めないのであれば、2進数だろうが10進数だろうが精度は自由に設定できる。

145:デフォルトの名無しさん
19/10/02 19:43:16.62 QS7AdVKy0.net
IEEEと二進数をNGにしておこうか

146:デフォルトの名無しさん
19/10/02 19:46:16.71 U7L7TEhBM.net
各言語での 0.1 + 0.2 の結果
URLリンク(0.30000000000000004.com)

147:デフォルトの名無しさん
19/10/02 19:55:32.68 328phbLi0.net
仮数部と指数部の話はPythonの話やんけ

148:デフォルトの名無しさん
19/10/02 20:27:29.73 R3JG1dEeM.net
相変わらずクソどうでもいいことで言い争ってるな
>>146のリンク貼れば終わる話だろうが

149:デフォルトの名無しさん
19/10/02 23:40:17.77 8TApxQXN0.net
2進数の浮動小数点数、10進数の浮動小数点数ってものが
それぞれネイティブのIEEE754のfloatとBinary Coded Decimalを指してる立場でものを言ってるのか、
純粋に「2進数」の「浮動小数点」などと捉えてものを言っているのかで違っているような
floatはfloatって言うべきだし、BCDはBCDって言うべきだし、それぞれを2進数、10進数の浮動小数点数って言うのは
正確なものの言い方ではないと思うけどね

150:デフォルトの名無しさん
19/10/03 00:33:06.53 4GYQfqj50.net
>>144 おいおい、ここはPython スレだぞ。 どこの言語の話をしてるんだ。

151:デフォルトの名無しさん
19/10/03 00:39:40.00 4GYQfqj50.net
>>149 Python で話せよ。 くだらん話をすんな。

152:デフォルトの名無しさん
19/10/03 00:52:45.07 8EsWJ49w0.net
俺はくだらないと思わないが、引き際は大事だと思うよ
これ以上掘り下げてもほとんど意味ないしね

153:デフォルトの名無しさん
19/10/03 00:53:02.11 T7eEfky90.net
scipyで数値積分をおこなうときに積分範囲をベクトルで与えて
積分の値もベクトルで返す方法はありますか?
例えば ∫_0^x 2*t dt の積分を積分範囲を 0から x=0,1.5, 3 と3通りにかえて
積分結果をベクトルで [0, 2.25, 9] とかえしてくれるようなプログラムを書きたいです。
import numpy as np
from scipy import integrate
from scipy import stats
y = lambda t: 2*t
x = np.linspace(0,3,3)
inty = integrate.quad(y, np.zeros(3), x)
としても
ValueError: The truth value of an array with more than one element is ambiguous.
Use a.any() or a.all()
とエラーがでます。for文を使わずにうまいこと書く方法を教えてください。

154:デフォルトの名無しさん
19/10/03 01:42:20.97 8EsWJ49w0.net
>>153
残念ながらfloatにnp.arrayを突っ込むような使い方はできない
こういうときは仕方がないので、以下のようにarray_likeな引数を受け取るような関数を作ることになる
URLリンク(ideone.com)
他にうまい方法があるなら俺も知りたい

155:デフォルトの名無しさん
19/10/03 03:22:12.23 3+KdsVIy0.net
>>154
なるほど分かりました
ありがとうございます。

156:デフォルトの名無しさん
19/10/03 06:10:56.73 Eu2t0lrZ0.net
>>151
まあくだらん話だよな
> 2進数の浮動小数点数は、ハードウェアの演算機の精度で有効桁数が決まる
とアホなこと言ってる奴がボコられてるだけだしw

157:デフォルトの名無しさん
19/10/03 06:32:35.92 4qlP7y1B0.net
今の主流のコンピュータでは2進数に対応する電圧の状態を利用して計算している
ソフトウェアでそれをどう上手く使って計算するか
IEEEの浮動小数点数の形式で扱うと誤差が出ることがある
Pythonのライブラリで色んな工夫をしている
自分で課題を解決できるライブラリを開発して貢献する事も可能だろう
現在のコンピュータで計算するには
10進数→2進数→10進数
の変換があるからこの過程で
必要な精度を保てるように工夫が必要だろう

158:デフォルトの名無しさん
19/10/03 06:37:12.39 /3F4mXI80.net
木曜日だから今NGすれば一週間消せる

159:デフォルトの名無しさん
19/10/03 08:36:04.46 4GYQfqj50.net
>>156
Pythonの浮動小数点数float型の範囲(最大値・最小値)
URLリンク(note.nkmk.me)
Pythonの浮動小数点数float型は64ビットの浮動小数点数表現である倍精度浮動小数点数で、Cなどほかのプログラミング言語におけるdoubleに相当する。

160:デフォルトの名無しさん
19/10/03 11:45:59.34 z1c5xmGqM.net
で?
整数演算機能しか持たない8bit CPUでも多倍長の浮動小数点演算をすることもできる
当然今君が使ってる目の前のPythonでも多倍長の浮動小数点演算ができる
君にできるかどうかは知らんけどねw
なので
> 2進数の浮動小数点数は、ハードウェアの演算機の精度で有効桁数が決まる
と言うのは真っ赤な嘘

161:デフォルトの名無しさん
19/10/03 12:14:43.08 4GYQfqj50.net
>>160 負け惜しみはやめろ。そりゃなんだってゴリゴリやればなんでも出来る。
ここで話してるのはPython の仕様の話だ。
float は、倍精度しか無いと仕様書に書かれている。
それが全てだ。 仮数部53ビット。
これは一般的な64ビット浮動小数点演算機の物理的な制限からきているのは明らか。

162:デフォルトの名無しさん
19/10/03 12:35:57.29 YSTER/9m0.net
ctypes.c_longdouble()

163:デフォルトの名無しさん
19/10/03 12:36:57.80 2k415C0d0.net
まだ言ってんのか^^;
> 一般的な64ビット浮動小数点演算機の物理的な制限からきているのは明らか。
違うぞ。どっちもIEEEによって縛られてるだけ。

164:デフォルトの名無しさん
19/10/03 12:55:46.18 z1c5xmGqM.net
>>161
負け惜しみ?
Pythonの話?
馬鹿にされてるのは2進数と10進数の話だぞw
> ただ、最終的に浮動小数点数として扱うなら
> 2進数の浮動小数点数は、ハードウェアの演算機の精度で有効桁数が決まるが、10進数の場合は自由に決められるから自分の好みの結果が得られる。

165:デフォルトの名無しさん
19/10/03 19:19:02.85 9IWXvZRK0.net
ラムダ式のリストを作りたいのですが、
def func(n):
  return lambda n: print(n)
list = [func(n) for n in range(10) ]
list[0]
list[1]
list[2]
は狙い通りに
0
1
2
という結果が出るのに
list = [lambda n: print(n) for n in range(10)]
list[0]
list[1]
list[2]
だと
9
9
9
になってしまうのはなぜですか?

166:デフォルトの名無しさん
19/10/03 19:59:14.72 W+JElR6/M.net
ならないと思うけど
後者のラムダ式は評価されてないから
<function <listcomp>.<lambda> at 0x2b850b976ea0>
とか出るだろ
サンプルは正確に頼む

167:165
19/10/03 20:19:26.33 nXwJdy3O0.net
すみません
def func(n):
return lambda : print(n)
list = [func(n) for n in range(10) ]
list[0]()
list[1]()
list[2]()

list = [lambda : print(n) for n in range(10)]
list[0]()
list[1]()
list[2]()
でした
ID変わってるかもしれないけど165です

168:デフォルトの名無しさん
19/10/03 20:31:44.96 0JhZY07I0.net
list = [lambda x=n : print(x) for n in range(10)]

169:165
19/10/03 20:33:42.58 nXwJdy3O0.net
>>168
どうしてそうなるのかわかりませんが、うまくいきました
ありがとうございます

170:デフォルトの名無しさん
19/10/03 22:34:54.68 MIbrEnWV0.net
Pythonでファイルの一括処理を行うと
他の言語やシェルの結果と比較してエラーが多い気がしますが、(特にテキスト処理)
気のせいでしょうか?

171:デフォルトの名無しさん
19/10/03 23:13:50.33 twcV991sM.net
僕が論理的に原因分析できないのはここのスレ住民のせいだと思います。気のせいでしょうか?

172:デフォルトの名無しさん
19/10/03 23:55:55.59 4GYQfqj50.net
>>171 気の所為です。 被害妄想とも言います。
ひたすら練習あるのみ。

173:デフォルトの名無しさん
19/10/04 02:06:06.17 kLahYNxr0.net
>>170
エラーではないけど、この関数は将来廃止予定です、みたいな警告はよく見る

174:デフォルトの名無しさん
19/10/04 16:24:44.36 JXWhYfPM0.net
def func(n):
  return lambda n: print(n)
list = [func(n) for n in range(10) ]
これと
list = [lambda n: print(n) for n in range(10)]
これは等価ではない
前者と等価になるのは
list = [(lambda n: print(n))(n) for n in range(10)]

175:デフォルトの名無しさん
19/10/04 16:56:37.71 6EiJ+2U20.net
>>174
ならないんだけど

176:デフォルトの名無しさん
19/10/04 17:07:14.16 FW+Y/3wmF.net
ああ
ならんね
それから
>>165
も狙い通りになってないなω

177:デフォルトの名無しさん
19/10/04 17:28:13.79 6EiJ+2U20.net
>>167>>168で解決してるけど
>>169
python 変数のスコープ クロージャ 変数の束縛
あたりでググったらわかると思うよ

178:デフォルトの名無しさん
19/10/05 00:12:25.64 JlWvx+CH0.net
コンパイラにコード食べさせるのは「コンパイルする」ですけど、インタプリタにコード食べさせるのは何て言うんでしょうか?
「インタプリタする」ですか?

179:デフォルトの名無しさん
19/10/05 03:32:00.51 3zp7gEabM.net
今時のインタプリタはバイトコードへのコンパイルと実行がセットなので
コンパイルではないとされるとすげえ違和感がある

180:デフォルトの名無しさん
19/10/05 07:15:18.06 2xd3HXJk0.net
インタプリタがプログラムを解釈interpretするときにはいろんなことを行う
その総体をさしていうなら実行するexecute、走らせるrunだけど、何らの副作用を伴わないなら評価evaluateするという言い方もありだろう
しかし死刑執行人をexecutionerと婉曲にいうように、インタプリタによるinterpretが特別な帰結をもたらす状況もあるかもしれない
昨夜エジョフがスターリンの言葉を解釈した、といわれれば恐ろしい何かが行われたことを想像するであろう

181:デフォルトの名無しさん
19/10/05 09:34:05.96 oVPf95FK0.net
interpretは子音で終わってるから正確にはインタープリッする

182:デフォルトの名無しさん
19/10/05 10:30:34.58 SKPk8UHd0.net
>>178 実行するだろうな。

183:デフォルトの名無しさん
19/10/05 10:43:06.70 RY9rLLlz0.net
>>178
run
はしらせる

184:デフォルトの名無しさん
19/10/05 11:44:35.13 xk/GxZ7j0.net
>>178
コンパイル くわせる
リンク しばる
実行 はしらせる

185:デフォルトの名無しさん
19/10/05 15:18:28.45 0WeqN8Y0M.net
生ける忠達 死せる孔明をはしらす
だっけ?

186:デフォルトの名無しさん
19/10/05 15:21:10.15 RY9rLLlz0.net
>>185
うるおぼえだなwww

187:デフォルトの名無しさん
19/10/05 16:32:56.72 yQxHyjqi0.net
>>185
ゾンビかよ

188:178
19/10/06 11:10:37.65 kRqXlweR0.net
走らせる、実行するですか
なるほどm(_ _)m

189:デフォルトの名無しさん
19/10/06 11:21:21.15 GF2THHlm0.net
このプログラムが起動するのは一度きりである。実行ののち、消去される。
非実行が選択された場合は起動せずに消去される。
Ready?

190:デフォルトの名無しさん
19/10/06 14:54:40.23 VRfDnOhz0.net
非実行なら消去も実行されないじゃんバカなの?w

191:デフォルトの名無しさん
19/10/06 15:23:13.43 qpx1VOF30.net
スパイ大作戦のネタのつもりだろ

192:デフォルトの名無しさん
19/10/06 15:23:41.08 /HJX1kUSa.net
ハルヒの消失だっけ?

193:デフォルトの名無しさん
19/10/06 17:41:30.75 pvG0vkV+F.net
そもそもメッセージ出してるのは誰よ
実行してんじゃん

194:デフォルトの名無しさん
19/10/06 18:24:32.40 P4FibN0lM.net
おOSがメタデータを読み取って画面表示してるんですよ
ぜ全然破綻してないですよ

195:デフォルトの名無しさん
19/10/06 19:13:30.23 GF2THHlm0.net
 
URLリンク(i.imgur.com)

196:デフォルトの名無しさん
19/10/06 19:22:02.88 qpx1VOF30.net
>>192 >>195
ホホゥ( ゚д゚)
スパイ大作戦との中間に、そういえば、
モンタナ・ジョーンズもあったな
諸事情でDVDとかでないのが悲しい・・・

197:デフォルトの名無しさん
19/10/06 19:58:52.81 nHvdH+7w0.net
非実行が選択された場合はおまいらのPCが等幅フォント、半角カタカナになる。
Ready?

198:デフォルトの名無しさん
19/10/06 20:02:06.85 qpx1VOF30.net
>>197
PC(機械)がフォント(データ)に化けるとはまた面妖な!

199:デフォルトの名無しさん
19/10/06 20:07:23.59 GF2THHlm0.net
昔の16ビットPCに変わるなら、ありかもw

200:デフォルトの名無しさん
19/10/07 09:25:23.00 i5RoY7ITM.net
polish pillarとかの時代

201:デフォルトの名無しさん
19/10/07 09:41:56.19 SdznGAt+0.net
Ready? と言われると V-MAX発動!と返したくなる
あれ、発動宣言してからReadyだったっけ?

202:デフォルトの名無しさん
19/10/07 12:01:35.88 Lz0AbqdP0.net
VMAX発動!
「Ready!」

203:デフォルトの名無しさん
19/10/07 12:36:46.60 UkX/bq2a0.net
蒼き流星

204:デフォルトの名無しさん
19/10/07 19:06:00.76 1o1RFUhAM.net
ラズパイに繋いだ圧電ブザーで
周波数で音の高さが変わるのは分かりましたが
音の音色を変えるにはどう制御すればいいですか?
具体的には音色をピアノ風にしたいです。

205:デフォルトの名無しさん
19/10/07 20:58:09.87 QGOUHRCn0.net
スピーカーをつないでピアノの音を鳴らすか
鍵盤を用意して物理的に叩くギミックを用意する

206:デフォルトの名無しさん
19/10/07 21:12:02.49 yg0UiPau0.net
>>204
ピアノ音の波形を周波数成分に分解したものを準備して重畳する
圧電ブザーの数と音の大きさの制御がキーポイント

207:デフォルトの名無しさん
19/10/08 13:55:30.56 fIh6S9d10.net
プログラミング言語人気トップ8、過去15年間で安定 - 例外はPython
2019/10/07 14:16 後藤大地
URLリンク(news.mynavi.jp)
TIOBE Softwareから、2019年10月のTIOBE Programming Community Index (PCI)が公開された。
TIOBE PCIは、複数の検索エンジンの検索結果から、対象となるプログラミング言語がどれだけ話題に
なっているかをインデックス化したもの。(中略)
TIOBE Softwareは発表の中で、毎年新たなプログラミング言語が登場しているものの、TIOBE
Programming Community Indexのトップ8は過去15年間でほとんど変化していないと説明した。
Perlが消えてPythonに入れ替わったことや、Objective-Cが消えてSwiftに替わったというのが大きな
例外で、それ以外に大きな変動はないと指摘している。
ただし、プログラミング言語の分野に関してはいくつかの傾向があるとして、その例としてPHPやPerlから
Pythonへ移っていること、新しいプログラミング言語としてDart、Scala、Lua、Rust、Kotlin、TypeScript
などが人気上昇の渦中にあることなどを説明している。
10月TIOBE Programming Community Index / 円グラフ
URLリンク(news.mynavi.jp)

208:デフォルトの名無しさん
19/10/08 13:59:03.18 YDJb962sF.net
>人気上昇の渦中
終わってるのあるやん

209:デフォルトの名無しさん
19/10/08 14:11:07.35 J68M6wrj0.net
ちおべは説得力ない

210:デフォルトの名無しさん
19/10/08 20:51:01.81 oYvZ36SI0.net
Rubyは24.6%もあるじゃん

211:デフォルトの名無しさん
19/10/08 20:56:57.87 eKdwgre+0.net
Pythonが最強なのは知ってるからわざわざ貼らなくてよい

212:デフォルトの名無しさん
19/10/10 23:57:06.99 wQAIptsN0.net
PyPy、JSONパーサを大幅高速化 - CPythonとNodeより高速 2019/10/10 09:47 後藤大地
URLリンク(news.mynavi.jp)
高速なPythonの実装系を開発しているPyPyチームは2019年10月8日(米国時間)、「PyPy Status
Blog: PyPy's new JSON parser」において、ここ1、2年で取り組んできたJSONパーサの高速化の取り
組みについて発表した。
JSONデータは特に扱いが増えているデータ形式。さまざまなプログラミング言語が基本的なデータ
形式として扱っており、設定ファイルのような使い方から大規模データ保持の方法としてまで幅広く
使われている。
PyPyチームはいくつかの手法を試して高速化に取り組んだ。結果、処理速度は、CPythonおよびNodeの
双方よりも高速化することに成功したとしている。この新しいパーサは次のリリースバージョンとなるPyPy
7.2に同梱が予定されている。
ただし、PyPyチームはこの新しい実装にはいくつかの課題があると説明。課題とは、高速なJSONパーサと
して知られているRapidJSONほどは高速化を実現できなかったこと、仕組み上採用した仕掛けがPyPyの
世代別ガベージコレクタとの相性が最悪であること、メモリ使用量に関してはNode/V8のほうに分がある
ことなどだ。PyPyチームは、今後さらに多くのベンチマークを実施する必要があるだろうと説明している。
Pythonは現在人気があるプログラミング言語の1つで、デフォルトの処理系以外にもいくつかの実装系が
存在しており、処理速度の高速化に力を入れたている。

213:デフォルトの名無しさん
19/10/11 10:41:11.87 hkXt1GtmF.net
msgpackの勝利

214:デフォルトの名無しさん
19/10/15 23:44:28.20 LXkkA+L30.net
CでコンパイルするCython は評判が良く無いけど、Dropbox が開発してる Mypyc は、評判が良さそうだね。
URLリンク(news.ycombinator.com)
URLリンク(blogs.dropbox.com)

215:デフォルトの名無しさん
19/10/16 08:29:54.15 n3310tdeM.net
Pythonってどんな用途向けの言語んでしょうか?

216:デフォルトの名無しさん
19/10/16 09:12:05.86 Mi1dGaVf0.net
>>215 統計処理、科学技術関係、AI 等。 
スクリプト言語はパラメータをこまめに変えて結果を見ると言う用途には適している。
沢山のライプラリが揃ってるから、今や理系の標準ツールになりつつある。
Excel との相性も抜群だから事務処理用としてもよく使われる。

217:デフォルトの名無しさん
19/10/16 12:13:08.45 FpMoQEu50.net
>>215
216も言うように業務支援スクリプトだな
pythonしかできない業務支援スクリプト専門のプログラマーもいるそうだ

218:デフォルトの名無しさん (ワイーワ2 FFdf-1wBF)
19/10/16 12:28:14 dmmazo8PF.net
ネイティブコードにコンパイルって
for x in range(hoge): みたいなのでも
レジスタ使ってループとかしてくれるのかな

219:デフォルトの名無しさん
19/10/16 17:42:09.39 1Hum/8RQ0.net
「Python 3.8」リリース、新たに代入式を導入 2019年10月16日16:00 末岡洋子
URLリンク(mag.osdn.jp)
 プログラミング言語Python開発チームは10月14日、「Python 3.8」を公開した。
 Python 3.8は2008年末に公開されたバージョン3系の最新版で、2018年6月の3.7公開以来の
メジャーリリースとなる。
 変数に値を代入するための新たな「:=」演算子(「セイウチ演算子」)が導入された。従来のPythonに
おいて変数への代入は値を返さない文であり、代入結果を参照するような式は文法エラーとなっていた。
今回導入された「:=」演算子では代入された値を返し、それを参照する式を記述できるようになる。また、
関数に引数を与える際にキーワード呼び出しの順序を指定する文法が加わった。
 CPython向けの高速な呼び出しプロトコル「Vectorcall」も加わった。CPythonが用いるfastcallを
ベースとし、任意のユーザー定義クラスで用いることができるという。
 コンパイルされたバイトコードを格納するディレクトリを変更するためのPYTHONPYCACHEPREFIXも
新たに導入された。これによって、Pythonコードが格納されたディレクトリやファイルシステムとは異なる
ディレクトリ/ファイルシステム上にバイトコードキャッシュを作成できる。
 このほか、Python 3.6で導入されたf文字列の機能強化、Pickleプロトコル5の導入などさまざまな
強化が加わっている。

220:デフォルトの名無しさん
19/10/17 02:13:23.52 BHqopZt30.net
>>219
セイウチってなんだと思ったけど、
コロンが目で、イコールが牙なんだな

221:
19/10/17 06:54:57 ytwdVAJ4M.net
>>219
> 変数に値を代入するための新たな「:=」演算子(「セイウチ演算子」)が導入された。
これ、C言語とかと同じように単に代入文が値を持つ式とするんじゃ駄目なんだっけ?

222:
19/10/17 08:11:04 WWwnadc0a.net
コストと互換性の問題じゃない?

223:デフォルトの名無しさん
19/10/17 08:29:08.91 DIhvGxCIM.net
派遣更新止めて時間できたらPythonの勉強してみようかな…
講習会とかってあるのでしょうか?
ハロワのでVBAとかPythonとかの講座あればいいのに…

224:
19/10/17 10:02:40 OIw2LILw0.net
>>221 今まで通り代入文は値を持たず、代入式は値を持つと言う使い分けをしたい為。

代入文に値を持たせないのは間違いを少なくするためだから残しておきたい。

225:
19/10/17 12:21:55 l2BIV5MrM.net
>>224
ああなるほど、C言語でも
if(a == b)

if(a = b)
って書き間違えるとかあったから一理あるな

226:
19/10/17 15:09:28 1mHvnb1C0.net
最近のまともなIDE使ってればエディタ上で警告出るからそんな間違いしないけどな

227:
19/10/18 00:46:19 207+8MaLa.net
>>220
walrus operator (:=)
URLリンク(www.theregister.co.uk)
URLリンク(translate.google.com)

228:デフォルトの名無しさん
19/10/18 08:58:17.89 Z0V6+Dq20.net
assignment expression は、代入式 が訳になるね
今までのは、assignment statement 代入文

229:デフォルトの名無しさん
19/10/18 10:10:04.33 2g/GJrKd0.net
そろそろ翻訳するなんて非効率なことは止めればいいのに

230:デフォルトの名無しさん (ワッチョイ d205-jF/Y)
19/10/18 10:51:13 jiatlS6W0.net
Python入門者です。
文字列の操作で、

<AAAAA>BBBBB

最初の<から 次の> までのテキストを削除して

BBBBB

のみにするにはどうすれば良いですか?
RSS取得をしてみようかと思って、不要部分を取り除く際につまづきました。
よろしくお願いします。

231:
19/10/18 10:52:56 5559SrY60.net
>>229
コーダーにいちいち英語能力まで要求したら人を確保できん

232:デフォルトの名無しさん
19/10/18 10:59:43.91 CwxwlRTqM.net
AAAAAの判断をどうしたい?
文字数?
それとも”AAAAA”っていう文字列?

233:デフォルトの名無しさん
19/10/18 11:00:41.78 2g/GJrKd0.net
これだろ
正規表現サンプル(HTMLタグを削除する(記号で囲まれた文字の削除))
URLリンク(hodade.com)

234:デフォルトの名無しさん
19/10/18 11:03:34.10 jiatlS6W0.net
文字列です。
取得したRSSのテキストに
<img src="URLリンク(........) /> 本文
となっており、< > 部分を削除したいです。
よろしくお願いします。

235:デフォルトの名無しさん
19/10/18 11:13:03.03 jiatlS6W0.net
URLリンク(japanese.engadget.com)
上記RSSをfeedparserで取得して
descriptionの余計な部分を削除するといった内容です。

236:デフォルトの名無しさん (ワッチョイ d205-jF/Y)
19/10/18 11:54:08 jiatlS6W0.net
自己解決しました。
正規表現 <.*?> でした。

237:
19/10/18 12:57:02 Z0V6+Dq20.net
>>235 色々やることになるだろうから HTMLParser を使った方が良さそうに思う。

238:
19/10/18 13:07:22 Z0V6+Dq20.net
こんな感じ

URLリンク(ideone.com)

239:デフォルトの名無しさん
19/10/18 13:59:49.82 e+8RgQyma.net
おそらく Beautiful Soup を使うのが近道だと思う
ちょっと使いにくい点もあるが

240:デフォルトの名無しさん
19/10/18 18:14:42.97 jiatlS6W0.net
いろいろアドバイスいただきありがとうございます。
beautiful soap

urllib2+HTMLParser
どっちがおすすめでしょうか?

241:デフォルトの名無しさん
19/10/18 18:43:56.12 6zLZDVSS0.net
>>240
>urllib2+HTMLParser
に一票。
ところで
soapじゃないぞw

242:デフォルトの名無しさん
19/10/18 19:13:54.88 WIdaZ9Ub0.net
とびきりの美しい嬢たちが世の殿方をお待ちしております

243:デフォルトの名無しさん
19/10/18 20:01:49.75 L2N4rS5+M.net
>>242
このスレにふさわしくないな
ちょっと詳しく話を聞かせてもらおうじゃないか

244:デフォルトの名無しさん
19/10/18 21:53:52.53 k3j5/4LT0.net
システム
スタンダード60分 諭吉2人
三輪車スペシャル30分 諭吉5人
他各種コース有
おごと温泉駅からお電話ください。お迎えに上がります。
大人の浴場 ビューティフル・ソープ

245:デフォルトの名無しさん
19/10/19 10:26:52.81 deKWZ/TF0.net
>>214 mypyc のReadme を見ると
mypyc: Mypy to Python C Extension Compiler
THIS PROJECT HAS BEEN MERGED INTO mypy ITSELF.
と書かれてあって、mypy の機能にコンパイラが取り込まれたようなんだが、mypy の何処を見てもコンパイルの指定がない。
どうやってコンパイルするんだろう?

246:デフォルトの名無しさん
19/10/19 10:38:33.40 deKWZ/TF0.net
>>245 mypy のブランチとして開発が進められてるようだけど、まだまだリリースの段階にはないみたいだな。

247:デフォルトの名無しさん
19/10/19 14:15:33.83 EetdzGiu0.net
jupyter で最後の行に変数xを書いておいてその内容が表示される(例1)のと
print(x)でその内容が表示される(例2)のでは改行などが異なります。
printを使わない場合の表示を最後以外の途中の呼び出したいんですが可能でしょうか?
例は実際に確認した表示そのままではありません。
# 例1
x
[None,
(1,2),
(2,3),
(3,4)]
# 例2
print(x)
[None, (1,2), (2,3), (3,4)]

248:デフォルトの名無しさん
19/10/19 14:22:25.96 tUw9vx0/0.net
>>247
printじゃなくpprintをつかえ

249:デフォルトの名無しさん
19/10/19 14:36:03.27 EetdzGiu0.net
>>248
できました。ありがとうございます。

250:デフォルトの名無しさん
19/10/19 14:36:06.35 Gnc7X+FDp.net
print を使わない場合に、print の結果と同じ様に改行無しで見れないかと言う質問?
variable inspector は?

251:デフォルトの名無しさん
19/10/19 14:45:45.86 EetdzGiu0.net
>>250
ありがとうございます。逆です。

252:デフォルトの名無しさん
19/10/19 15:15:53.05 g7gJ/kc1F.net
%latex
display(Math(x))

253:デフォルトの名無しさん
19/10/20 18:44:08.64 kPAikNy+a.net
threading.EventってJSの
promiseみたいなものなのか?

254:デフォルトの名無しさん
19/10/20 20:02:22.82 K+pWsxfLM.net
違う
javascriptでEventに相当するものはない
Eventは複数のスレッドが待ち合わせるための機能だ
複数のスレッドをプログラマが明示的に扱わない言語には必要ない
pythonでPromiseに類する機能を実装しているのはTaskとかFutureとか
ただpythonはjavascriptではなくjavaとc#を参考にマルチスレッディングライブラリを実装しているので
javascriptのインターフェースには似ていない

255:デフォルトの名無しさん
19/10/21 03:15:55.81 xMJWu552a.net
そうですか同じものはないですか
futureってconcurrent.futures のことですかね
task はどのライブラリでしょうか

256:デフォルトの名無しさん (ワッチョイ 1610-4dmd)
19/10/21 09:54:03 LkDkCGmw0.net
>>254
pythonのEventはsemaphoreみたいなもの
非同期処理を実現するためのコールバックの仕組みとは違う
という事?

結果が確定するまで待ち合わせるときは処理を止めてしまう?
CPUは他の処理に明け渡す?

257:デフォルトの名無しさん (ワイーワ2 FF6a-uHRg)
19/10/21 12:53:37 c9dhXgWBF.net
何のためのスレッドよ

258:デフォルトの名無しさん (ブーイモ MM0e-YsJc)
19/10/21 17:35:08 p3hDTVkDM.net
ループが入れ子になるとうっかりイテレータ変数を上書きして、バグ入れちゃうことがある
特にリスト内包表記でやっちゃうとなかなか間違いに気づかない
コーディングスタイル変えて、こういううっかり避けられたりしないかな

259:デフォルトの名無しさん (ワッチョイ 8f2d-kwV+)
19/10/24 06:08:29 kM9IqWxq0.net
チェックボタン1、チェックボタン2、チェックボタン3、チェックボタン4があります。
チェックボタン1にチェックが入っている場合はA、
チェックボタン2にチェックが入っている場合はB、
チェックボタン3にチェックが入っている場合はC、
チェックボタン4にチェックが入っている場合はD、
チェックボタン1と2にチェックが入っている場合はAB、
1と2と3にチェックが入っている場合はABCというように表示させたいのですが
この場合のif分の書き方がわかりません。
全パターンを書く必要があるのでしょうか?

260:デフォルトの名無しさん
19/10/24 06:31:35.12 lWUOvdIHM.net
その条件を見るだけならif文4回通して表示文字列に加算していく等いろいろ実装は可能そうだけど
今後の保守を考えるとその手法を取るかは慎重に考えて(質問文だけでは判断不可)

261:デフォルトの名無しさん
19/10/24 07:28:52.72 dBQJz/zb0.net
pythonの仕事してみたいと思っているのだけど、実際の業務でよく使われる
ライブラリって何があるでしょう?もちろん業務次第っていうのはわかっているので、
「過去にこれはたくさん使った」というものがあれば教えて欲しいです。
numpyは機械学習案件なら凄く使うけど、自動化案件とかなら必要ない
イメージあるけれど、一通りの処理は精通しておくべきですかね?
あと「知名度は高いけど業務では全然使わない」とか。
tkinterとかその類ではないかと思ってます。

262:デフォルトの名無しさん
19/10/24 07:41:12.74 lWUOvdIHM.net
MLというかDLやってた時はtfとかkerasはまあよく使ったよねそりゃ
あと学習データとして画像扱うならopencv(これはc++でやる場合も多そうだけど)
まあマジで業務次第すぎて参考にならないやろこれ
でもnumpyは何するにしても必須級なのは間違いないと思う、forループとか書くとすぐ重くなるし
自動化ってどんなの想定してるか知らないけど役立つ場面はあるはず
あとosとかその辺を一通り覚えとくと実際にやるとき楽になるはず

263:デフォルトの名無しさん
19/10/24 08:09:49.62 86KFGKV60.net
>>259
雰囲気だけ
a=(c1,c2,c3,c4)
b=("A","B","C","D")
c=""
for i in range(4):
if a[i]:c=c+b[i]
print c

264:デフォルトの名無しさん
19/10/24 09:00:48.06 J/YZWTCoa.net
>>259
#c1-c4はTrueかFalse
import numpy as np
check=[c1,c2,c3,c4]
check=np.array(check)
s=np.array(list(‘ABCD’))[check]

265:デフォルトの名無しさん
19/10/24 09:56:58.83 XMGgvhKa0.net
Pythonの講習とかってやってるとこないのかな?

266:デフォルトの名無しさん
19/10/24 10:11:05.17 aLqmTGcB0.net
講習って何だよ

267:デフォルトの名無しさん
19/10/24 10:23:23.29 j8lJvW2N0.net
Pythonは書籍も溢れているのにいちいち人に説明させるのは
ジジイ化の第一歩だぞw

268:デフォルトの名無しさん
19/10/24 15:49:38.89 vCPJ9PmJM.net
基本構文とか説明してくれるのかな?
動画とかたくさんあるやろ…

269:デフォルトの名無しさん
19/10/24 16:59:33.48 n545jbBX0.net
>>261
仕事プロジェクトフォルダのPipfileを全部見て集計してみたけど、
jupyter 17
pandas 7
sortedcontainers 5
requests 5
matlpotlib 4
django 3
sympy, python-dateutil, pyproj, pillow, piexif, numpy, jinja2, ipyleaflet, cython 2
みたいな感じだったな。依存関係で入ってるやつは含めないから、明示的にpipenvで入れたやつってことになるけど
Pythonのコードを実際にリリースするのは大体Djangoで、あとはデータ処理案件だったり、
REST APIの挙動の調査だったりをするからjupyter、matplotlib、requestsあたりが多くなるな。
データが1万件、カラムが10個ぐらいのデータだったらnumpy使わなくても大体いけるし、何するにしても必須ってこともなくないかな
標準ライブラリだったら、datetime, bisect, itertools, functools, pathlib, os, glob, shutil, pickle, subprocess, jsonあたりはかなり使ってるかな。

270:デフォルトの名無しさん
19/10/24 17:23:38.69 myfSxx3G0.net
業務w

271:デフォルトの名無しさん
19/10/24 17:54:14.23 DTpiAYfHM.net
業務がエブリデイ

272:デフォルトの名無しさん
19/10/24 19:41:47.91 LF/tvMrc0.net
numpyのファンシーインデックスを試しているのですが、以下を試すとa[0]には3が入っていました。
この動作はきちんと規定されたものでしょうか?
それとも1か3かは不定だったりしますか?
a = np.zeros(3)
a[[0,1,0]] = [1,2,3]
print(a)

273:デフォルトの名無しさん
19/10/24 20:02:23.24 m57JSwXI0.net
これでためして5が入っていれば既定と見做す
a = np.zeros(5)
a[[0,1,0,0,0]] = [1,2,3,4,5]
print(a)

274:デフォルトの名無しさん
19/10/24 20:10:18.75 LF/tvMrc0.net
Pythonもnumpyも詳しくないのですが処理系に依存するようなことないんですかね

275:デフォルトの名無しさん
19/10/24 20:26:14.14 aF1ja/WU0.net
>>274
配列弄りは
辞書型とか
0.1+0.2の計算とは
異なる

276:デフォルトの名無しさん
19/10/24 23:18:42.55 dBQJz/zb0.net
>>262
なるほど、やっぱり業務次第だよね
言語的に何でもできるせいで、どんな需要があるかが読み切れない。
機械学習系が一番ホットなんだろうなぁとは思ってるけど、
それ以外ってどんなのがあるんだろう?
numpy触ってて無駄じゃなくて良かった。
osは参考になりました、ありがとう。触っておく
>>269
とても参考になります。思ったより知らないのが少なくてホッとした。
初心者だけど名前見て「あぁ、あれか」くらいはイメージついた。
Djangoがそんな活躍してたのはちょっと意外。趣味枠と思ってた。
挙げてもらった名前はいったん全部触ってみる。
やはり実際にやっている人の話は非常に有益。どうもありがとう

277:aaa (ワッチョイ 8f2d-kwV+)
19/10/25 02:10:09 voN2RuQh0.net
処理の中で作った文字を、定数として使う方法が知りたいです。
例えば
tanaka = [1, 2, 3]
satoh = [4, 5, 6]
suzuki = [7, 8, 9]
みたいリストがあったとして
処理の中で、このtanakaとかsatohとかsuzukiというものが文字列として
作成され、list_nameという変数に格納されるので、それを使って
print(random.choice(list_name))
みたいなことをしたいのですが、こうすると、list_nameに入っているのがtanakaなら
その文字の中からランダムに選ばれてしまい、本来やりたいことができません。
tanakaの場合なら1,2,3の中からランダムに選ばせたいです。

278:デフォルトの名無しさん
19/10/25 02:58:48.27 FLPxIKHC0.net
>>277
Dictionaryを使う
{ 'tanaka': [1,2,3], 'satoh': [4,5,6], 'suzuki': [7,8,9] }

279:デフォルトの名無しさん (ワッチョイ 8f2d-kwV+)
19/10/25 04:52:22 9PtrKj3E0.net
yokokara

280:デフォルトの名無しさん (ワッチョイ 8f2d-kwV+)
19/10/25 05:03:04 9PtrKj3E0.net
横からすみません。
277さんと近い状況だったので、失礼します。
私も悩んでいることがありまして

a = "string.ascii_lowercase"
a += " + string.ascii_uppercase"
a += " + string.digits"

for i in range(8):
s += random.choice(a)
とする
「string.ascii_lowercase + string.ascii_uppercase + string.digits」
この文字そのものからランダムに選択されるのですが
これを
s += random.choice(string.ascii_lowercase + string.ascii_uppercase + string.digits)と
同じように動作させるにはどのようにすればよいのでしょうか。
278さんのアドバイスから、私もDictionaryで

a[1] = "string.ascii_lowercase"
a[1] += " + string.ascii_uppercase"
a[1] += " + string.digits"

for i in range(8):
s += random.choice(a[1])

と、やってみたのですが
同じ結果となってしまいました。

281:デフォルトの名無しさん
19/10/25 06:54:21.66 xj06uauP0.net
>>280
eval使う。
a[1] = "string.ascii_lowercase"
a[1] += " + string.ascii_uppercase"
a[1] += " + string.digits"
for i in range(8):
s += random.choice(eval(a[1]))

282:デフォルトの名無しさん
19/10/25 08:34:42.80 hGluSLXpM.net
>>281
相手するなよ…
> 277 aaa (ワッチョイ 8f2d-kwV+) aaaa@aaa.com 2019/10/25(金) 02:10:09.67 ID:voN2RuQh0
> 280 デフォルトの名無しさん (ワッチョイ 8f2d-kwV+) 2019/10/25(金) 05:03:04.96 ID:9PtrKj3E0
> 横からすみません。
> 277さんと近い状況だったので、失礼します。
ワッチョイも知らん基地外だぞ

283:デフォルトの名無しさん
19/10/25 09:58:40.06 Mm36/kGUM.net
近い状態だったので失礼します(笑)(自作自演)

284:デフォルトの名無しさん
19/10/25 18:39:32.96 JwD5kwT2a.net
yokokara(ID変わってるなヨシ)
ってことだったら可哀想だな

285:デフォルトの名無しさん
19/10/25 19:14:32.10 VsSzNoKk0.net
>>284
やめたれw

286:デフォルトの名無しさん
19/10/25 19:15:49.04 GfHpXzuNM.net
>>274
ドキュメントにどうなるか書かれてないならそういう書き方はしない方がいい

287:デフォルトの名無しさん
19/10/25 22:26:27.89 YSt9ZHXn0.net
ワッチョイ晒しage wwwwww

288:デフォルトの名無しさん
19/10/25 22:53:24.30 0AwF1WRA0.net
>>286
まあそうなりますよね
最初見つからなくて質問したんですけど、また探してたら下のページのDetailed notesの2つ目が見つかりました。
英語ダメダメなのでアレなんですが今回質問したようなケースが不定であると捉えて良いんですかね
URLリンク(numpy.org)

289:デフォルトの名無しさん
19/10/25 23:29:56.97 Pxjdzyta0.net
>>288
保証はないって書いてあるね
仮に今結果がいつも同じだとしても、将来のバージョンで順番が変わったりすることがあるってことだろうし、使わない方がいいだろうね

290:デフォルトの名無しさん
19/10/26 00:32:15.18 J54zOHfp0.net
>>289
ありがとうございます
応用したらuniqueが不要になる例があるかと思ったんですがなかなか上手い話はないですね

291:デフォルトの名無しさん
19/10/26 14:38:26.76 y7jerKdM0.net
ワッチョイ 8f2d-kwV+
横からすみませんw


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