Pythonのお勉強 Part62

1デフォルトの名無しさん
垢版 |
2019/09/16(月) 15:41:11.74ID:OCMqZYFH
★当スレにRubyのソースコード類を書くことを禁ず★
☆Ruby等、Pythonではないプログラミング言語での回答類を書くのも禁止
☆「Ruby では」「Rubyでは」をNGワード登録推奨

◆エラーを解決したいときはエラー表示(勝手に省略禁止)と
 環境(Pythonのバージョン・OS名・IDEの種類とバージョン)をシッカリ書く

◆Pythonのソースコードを5ちゃんにコピペするとインデントが崩れるので
  ↓にあげてるような、ソースコードうp用サイトに貼ってきてくだしあ
    (スクリーンショットをimgur等にうpる「横着」禁止)
ttp://ideone.com/      デフォ設定がCなので、Pythonするには言語種選択ボタン押下がピコ手間かも。
ttp://codepad.org/      ほぼ直感的に使える。Run codeボタンあり。
ttp://pastebin.com/     まずまずシンプル。
ttp://dpaste.com/      とてもシンプル。消えるまでの日数は十分長ーく指定のこと。
ttps://jupyter.org/try    (旧try.jupyter.org)ちょっとめんどうそう。
ttps://ja.osdn.net/pastebin/ ログイン必須になりやがった(゚Д゚#)

◇Pythonオフィシャルサイト
http://www.python.org/

◇まとめwiki
ttp://python.rdy.jp/

●関連スレ●
くだすれPython(超初心者用) その44【Ruby禁止】
https://mevius.5ch.net/test/read.cgi/tech/1563969768/

〇前スレ
Pythonのお勉強 Part61
https://mevius.5ch.net/test/read.cgi/tech/1563622784/

次スレの建立は>>985が挑戦する。
2020/04/27(月) 18:22:07.14ID:S6IgcIOW
>>125
DrawChart()の最後に、self.fig.canvas.draw()入れると、呼ばれた瞬間落ちるんだけど・・・
127デフォルトの名無しさん
垢版 |
2020/04/27(月) 18:30:21.87ID:l27UEbbh
両方に入れたら?
2020/04/27(月) 18:42:55.15ID:kdRxWvyg
ここに回答が
https://stackoverflow.com/questions/34764535/why-cant-matplotlib-plot-in-a-different-thread
2020/04/27(月) 19:28:07.67ID:S6IgcIOW
>>128
ありがとう
読んでみる
2020/04/27(月) 19:33:54.89ID:GPaVbTha
英語は読めなくてもコードは読めるなと最近思った。
2020/04/27(月) 20:18:59.45ID:+seUVNTq
コード読んでから説明を読むのだ
2020/04/28(火) 05:26:45.81ID:CHpsAleC
コードの方が文法が少ないから
慣れると英語より楽だね
2020/04/28(火) 23:48:49.42ID:z88ZISx+
そう言われるまで、
プログラミングが言語を駆使するものだという認識がなかったわ。
まさにLanguageなのにねぇw
慣れてしまうとそんなもんなんだろうか。
2020/04/29(水) 01:25:30.89ID:aX8BTSoD
プログラミング言語には重層的な意味がないから単に記号論理的な頭の使い方をすればよくて、
慣れたらほとんど自動的に論理展開が行われちゃうから大抵簡単だよね

高階関数のややこしいのとかは全然わかんないけど
あれも慣れればいけるのかもしれないが
135デフォルトの名無しさん
垢版 |
2020/04/29(水) 09:29:58.71ID:TuLha3Ht
ソースコードが仕様書(キリっ
2020/04/29(水) 10:35:22.49ID:cZ1bml3g
外国人の書いたコードはコメントが英語だから参考にならない
2020/04/29(水) 13:50:22.63ID:O4788IK/
>>136
自動翻訳にコピペすらできないあほはっけん(*゚д゚)ムホムホ
138124
垢版 |
2020/04/29(水) 14:43:10.32ID:DiTATvas
>>128を見て、別スレッドで描画するからうまくないってことが分かって修正してたんだけど
また詰まってしまった。
animation.FuncAnimation()で定期的に描画関数を実行するようにしたんだけど、
更新できないんだ。
描画するための関数は何を使えばいいんだろう?

↓が現在のコードで、おそらく、96,97行目をうまいことしてやればいいんだと思うけど、それが分からないんだ
https://pastebin.com/C3p1MpRT
139デフォルトの名無しさん
垢版 |
2020/04/29(水) 14:54:44.23ID:Kg9KSBpE
>>132
>>136
アラビア語のソースコードらしいんだが意外と読めるなω
https://stackoverrun.com/ja/q/10970956
2020/04/29(水) 15:02:53.91ID:/cY8SYIV
アラビアータは右から読むので大変だろうと思う
141デフォルトの名無しさん
垢版 |
2020/04/29(水) 17:10:30.76ID:DmNhs8y1
日本語も元々は右から左の文化だが
意外と大変じゃないな
2020/04/29(水) 18:43:15.19ID:PE4YX4Ec
右から読みの時代の日本人が現役でいるとは思えないんだが・・・・・
2020/04/29(水) 19:05:28.84ID:PJPPBooA
こういうのでもそんなに苦労せずに読めるって話だろ
https://image.itmedia.co.jp/nl/articles/1711/08/qk_migigaki-1.jpg
2020/04/29(水) 19:20:52.12ID:qH3UHXua
車のボディに書き込まれる社名に、右から読ませるタイプがある
2020/04/29(水) 22:18:48.43ID:f6LPbIhG
>>144
車の前側から読ませるだけなんだけどね
タクシー側面の文字も昔は前→後だった
146デフォルトの名無しさん
垢版 |
2020/04/30(木) 10:18:45.32ID:J5HM1FZQ
>>144
電話番号は混乱するな
2020/04/30(木) 10:47:19.40ID:aC6sOq5z
楽に読めるな
https://i.imgur.com/7KSOUzx.jpg
2020/04/30(木) 11:16:46.11ID:qQJQyRha
さすが大本営発表
149デフォルトの名無しさん
垢版 |
2020/04/30(木) 12:06:40.91ID:J5HM1FZQ
令和二年三月三十一日というと
大東亞戦争で言えば昭和十七年位のレベルだな
2020/04/30(木) 12:18:04.39ID:6rah8Luj
>>147
出来ればフォントは活版っぽく頼む
151デフォルトの名無しさん
垢版 |
2020/04/30(木) 15:28:24.17ID:cbZ3bzMp
今のキッズはマジで活版印刷された本見たことないんじゃないの
シラネーんだよきっと

見せてもなんで紙がへこんでるのかも知らなさそう
2020/04/30(木) 23:25:29.06ID:zLT/BN3l
コロナ騒ぎあおってる連中がやりたいのって
結局これだよなあ
2020/04/30(木) 23:37:16.70ID:GAsejKiL
python foo.py
python foo.py -s
python foo.py -s 10
を区別したいんだけどどうすれば良いの?
>cat foo.py
import argparse
p = argparse.ArgumentParser()
p.add_argument('-s', nargs='?')
args = p.parse_args()
print(args.s)
>python foo.py
None
>python foo.py -s
None
>python foo.py -s 10
10
これじゃ-sの有無が判らん
2020/05/01(金) 00:14:53.03ID:eLVhgQ4h
-s のアクションが不明
2020/05/01(金) 01:57:54.00ID:gkl90wa7
if "s" in args:とかじゃだめなん?
156デフォルトの名無しさん
垢版 |
2020/05/01(金) 08:18:55.56ID:gHLn0qVE
default=-1とかつければいい。
157デフォルトの名無しさん
垢版 |
2020/05/01(金) 09:17:19.44ID:k2YlXFh6
>>152
革命のチャンスだしなω
新学期9月は成功しそうだなωωω
2020/05/01(金) 09:28:27.73ID:xXuuls7c
>>156
どちらかと言えばconstを使うケース

いずれにしろnargs=‘?’の場合
argparseだけでは100%の判別は無理
2020/05/01(金) 10:50:01.22ID:MCEzZFz/
Ruby のオプションパーサーみたいなやつだろ

ruby script.rb -h a -s 10
と入力すると、

require 'optparse'

opts = { }
ARGV.options do |o|
o.on( "-s 引数", "引数" ) { |x| opts[ :s ] = x }
o.on( "-h 引数", "引数" ) { |x| opts[ :h ] = x }

o.parse!
end

p opts #=> {:h=>"a", :s=>"10"}
160159
垢版 |
2020/05/01(金) 10:57:21.41ID:MCEzZFz/
>>159
の続き

ruby script.rb -h a -s
missing argument: -s
{:h=>"a"}

ruby script.rb -s -h a
{:s=>"-h"}

これは間違えて、次のオプション・-h を引数と勘違いしているw
2020/05/01(金) 14:24:58.96ID:gkl90wa7
>>160
お前生きてて楽しい?
2020/05/01(金) 17:19:05.23ID:oZ5QHjAY
そもそも、"-s"と"10"が何を意味しているかわからないし、
何をしたいのかもわからない。
特に後者は、全体の引数とも、"-s"の値ともとれるわけだし。

>>158
"-s"のほうで、actionを指定すればできるよ
2020/05/05(火) 12:44:32.20ID:lrlqOn2p
フォルダ構成が複雑な、ものすごい膨大なlogファイルから、
特定のワードが含む行と、ファイル名を抽出したいのですが、
・サブフォルダを巡回して命令を実行する
・ファイル名のあとに、検索結果を出す
のやり方がわからず、躓いております。

参考になりそうなサンプルがあればご教示いただけますでしょうか。

test01.log
-----------------------------------
0501 問題ないよ
0501 Error!
|まちがってるよ
|まちがってるよ
0501 問題ないよ
-----------------------------------

このうち
・「Error」のある行
・| ではじまる行
を抜き出し、このような出力結果を希望しています。

test01.log
-----------------------------------
0501 Error!
|まちがってるよ
|まちがってるよ
-----------------------------------

「Find」「再帰的」「文字列」「検索」「Python」「テキストマイニング」などで検索をするも、これといった情報が得られず……
参考になりそうなURL、「こういうワードで検索しろ」などあればお願いします。
2020/05/05(火) 12:47:27.09ID:hpwOcr6+
>>163
globモジュール
with open
f.readlines
strクラスのfindメソッド

一回公式のPythonチュートリアルを全てやってみることをお勧めする
165デフォルトの名無しさん
垢版 |
2020/05/05(火) 13:47:12.99ID:JDagEH9a
Perl時代の教科書は一章まるまる使って正規表現説明してたが
Pythonじゃあそういうことは無くなった

なので現代では言語に関わりなく「正規表現」というキーワード自体知らない、ということが起こってるのではなかろうか

Python チュートリアル ― Python 3.8.3rc1 ドキュメント
https://docs.python.org/ja/3/tutorial/index.html

公式チュートリアルでも「標準ライブラリミニツアー」の箇所にちょっと置かれているだけで、扱いが非常に小さい
つまり、初心者はそこまで念入りには読まないだろうから、キーワード自体を知らない
166デフォルトの名無しさん
垢版 |
2020/05/05(火) 14:05:25.10ID:3RO6WiLW
>>163
os.walk
os.path.walk
どっちかのドキュソ観れ
2020/05/05(火) 14:15:49.76ID:uTsiWylk
>>163
grep使えって

出力フォーマットが気に入らないなら
ripgrep使うかgrep -lをループさせればいい

$ rg -n "^¥||Error" ./*.log
./test02.log
2:0501 Error!
3:|まちがってるよ
4:|まちがってるよ

./test01.log
2:0501 Error!
3:|まちがってるよ
4:|まちがってるよ
2020/05/05(火) 14:18:12.72ID:uTsiWylk
regex="^¥||Error"
grep -l -E "$regex" ./*.log | while read file
do
echo "$file"
grep -h -E "$regex" "$file" | xargs printf "¥t%s¥n"
done

#出力
./test01.log
 0501 Error!
 |まちがってるよ
 |まちがってるよ
./test02.log
 0501 Error!
 |まちがってるよ
 |まちがってるよ
169デフォルトの名無しさん
垢版 |
2020/05/05(火) 14:32:59.61ID:G46XbD1M
>>165
正規表現だけで書籍出てるのにそんな人おるんか?
公式でも小さかろうが載ってる内容なら知らないのは言い訳にはならんでしょ
2020/05/05(火) 14:37:02.54ID:KwIsFJ1G
>>165
昔は文字列処理が多かったが
今は機械学習とかやるから
ページ割かないんだろう
2020/05/05(火) 15:10:14.14ID:93UQ4haG
>>163
「膨大な」と書いてあるのでpythonでやるのは速度的な面で躊躇する
他の人も書いているけど標準コマンドを使うのが速い
・Linux/macOSならgrep
・Windowsならfindstr

「フォルダ構成が複雑な」と書かれているのでサブフォルダまで検索するには
・grepの場合は-rオプション
・findstrの場合は/Sオプション
を付ける

何らかの理由でpython縛りなら
glob.glob
os.wak
のどちらかを使ってファイルリストを取得した上で、そのファイルに指定したキーワードが含まれるか確認する
2020/05/05(火) 15:34:33.06ID:DTkAo5/g
時代的に書き込み時に複雑なパースが必要になるようなやり方はしないように
って方針が一般化してきたからだろう。
もしくはjson,yamlなら専用のライブラリがあったりでわざわざ正規表現使う必要性も下がってる。
173デフォルトの名無しさん
垢版 |
2020/05/05(火) 15:38:40.27ID:JDagEH9a
……多分時代が違っていて、grepやawkといったコマンドラインツールはおろか、
リダイレクトやパイプの使い方から知らない

そもそもコマンドラインを使わないから、cdやdirコマンドですらもあやしい世代だ
本当に知らないんだよ
2020/05/05(火) 15:40:34.82ID:rwJ86+M0
grep -E '^\||Error' -Hd skip ./**/*.log

-E で正規表現。
-d skip で、ディレクトリ名を非表示。
-H で、ファイル名も表示。
ディレクトリの再帰は、./**/*

出力
./test/test01.log:0501 Error!
./test/test01.log:|まちがってるよ
./test/test01.log:|まちがってるよ

この出力から、: の前をファイル名、後を行に、分解すればよい

Ruby の、glob でも出来るけど
175デフォルトの名無しさん
垢版 |
2020/05/05(火) 16:29:06.07ID:E9jCQTmY
>>163
https://ideone.com/xba6sl

組み込み関数やライブラリで同等の機能が用意されているにも関わらず正規表現書くのはやめてほしい
176デフォルトの名無しさん
垢版 |
2020/05/05(火) 17:07:50.66ID:D2QZwsc6
アホしかおらんのか
177163
垢版 |
2020/05/05(火) 17:41:03.01ID:lrlqOn2p
たくさんのご返信ありがとうございます。

>>164
ありがとうございました。
ご推察の通り、Pythonは本を一冊読んだ程度の知識しかありません。
チュートリアル一通り試してみます。

>>165
ありがとうございます。
その二つのドキュメントも読み込んでみます。

>>167
ありがとうございます。
申し遅れておりましたが、Windowsユーザーです。
ただ、教えていただいたコマンドを調べてみると、
Windowsでもインストールすれば、ripgrepを扱えるみたいですね。

必ずしもPythonにこだわらなければならないわけでもないので、
(学習中だったので、使ってみたかった程度)
コマンドでの解決も検討してみます。

>>171
>>174
ありがとうございます。
必ずしもPythonでなくてもよいので、Grepやfindstrも調べてみます。
178163
垢版 |
2020/05/05(火) 17:41:16.65ID:lrlqOn2p
>>175
ありがとうございます。
すごい! まさに私の理想通りの出力結果になりました。

自分なりにいただいたソースコードを調べて、勉強させていただきます。
2020/05/05(火) 18:25:34.80ID:XXjmfIiw
おいおい>>175は冗談で出した例だろ
2020/05/05(火) 18:51:52.49ID:rwJ86+M0
Ruby で作った

# . で始まる、隠し directory, file を除く
glob_pattern = "/mnt/c/Users/Owner/Documents/test/**/*.log"

re = /^\||Error/
first_time = true # 最初の1回だけ

Dir.glob( glob_pattern )
.select { |full_path| File.file?( full_path ) } # ファイルのみ
.each do |full_path|
# 末尾の改行を削除して、1行ずつ処理する
File.foreach( full_path, chomp: true ) do |line|
line.match( re ) do |matched| # 一致した行だけ
if first_time # 最初だけ
puts full_path
first_time = false
end
puts line
end
end
first_time = true
end

出力
/mnt/c/Users/Owner/Documents/test/test/test01.log
0501 Error!
|まちがってるよ
|まちがってるよ
/mnt/c/Users/Owner/Documents/test/test02.log
|xx
bb Errorzz
2020/05/05(火) 21:21:30.44ID:6nb4DqgK
本当にデータが大きいのであれば
データを分割して複数のPCで並列実行するのも
考えた方がいい
182デフォルトの名無しさん
垢版 |
2020/05/05(火) 23:18:26.51ID:G46XbD1M
Pythonでもシェルでもどっちでも良いけど、大量ファイル相手ならマルチで処理すれば良い
ファイル毎にやる処理同じなんだから
183180
垢版 |
2020/05/06(水) 21:09:35.21ID:Fjn1hDTG
>>175

>>180
みたいに、もっと簡単に書けないの?

Python には、glob は無いのか?
無ければ、walk とか
2020/05/06(水) 21:20:13.91ID:ohBd/rOh
>>183
あるよ
Path('.').rglob('*.log')とかglob.iglob(‘./**/*.log’, recursive=True)とか
>>175は「ライブラリで同等の機能が用意されているにも関わらず」に対するツッコミ待ちだと思われ
2020/05/07(木) 21:24:10.42ID:xxddKGgg
>>175
>>183
pythonにそんなものねえよ!
だから初心者向けなんよ。

こういう温かみのある書き方こそpythonらしさがあって、いいじゃないか。
2020/05/07(木) 21:25:15.27ID:xxddKGgg
>>180
Rubyのほうがいいな
シンプルでわかりやすい
2020/05/07(木) 22:16:34.03ID:O8jL8wQb
>温かみのある書き方
「職人が一行一行、丁寧に書き上げました」
188sage
垢版 |
2020/05/07(木) 23:20:38.81ID:RMklkh4T
rubyは玄人向けだから初心者は使っちゃダメだぞっ

import glob
for log in glob.glob('**/*.log', recursive=True):
. outputs = []
. with open(log, 'r') as f:
. for line in f:
. if line.startswith('|') or line.find('Error') >= 0:
. outputs.append(line)
. if len(outputs):
. print(log)
. print('----------')
. print(''.join(outputs), end='')
. print('----------')
2020/05/07(木) 23:21:50.47ID:VKbX/7v8
美味しそうw
2020/05/07(木) 23:37:05.12ID:Lnek/XJg
>>188
`in`を使いましょう
The find() method should be used only if you need to know the position of sub. To check if sub is a substring or not, use the in operator:

ついでにRubyの例はoutputsの配列が
めちゃくちゃでかくなる可能性も考慮されてる
191180
垢版 |
2020/05/08(金) 12:32:49.45ID:Fn4yfVbS
>>180
は、配列化していない!

メソッドチェーンで逐次処理。
前段から1つ来たら、1つ処理する

配列に入れる意味がない

Dir.glob( パターン ).select{ }.each{ }
192180
垢版 |
2020/05/08(金) 12:39:56.07ID:Fn4yfVbS
Python は大学院卒とか、高学歴の非プログラマーの学者が使うもの。
数学・統計は知っているけど、プログラミング・コンピューター・OS などを知らない

一方、Ruby は低学歴の職人プログラマーが使うもの。
数学・統計は知らないけど、プログラミング・コンピューター・OS などには詳しい

だから、Rubyの1行1行には、職人さんが丁寧に書いた、温かみが感じられる!
2020/05/08(金) 13:25:49.56ID:tDlcbx57
Pythonが文字列処理得意だったらなあ
2020/05/08(金) 17:09:53.24ID:JpV79Xjz
>>193
???
むしろバイナリ処理には呪文が必要なのがPython。
2バイト文字が大変なのには禿同。
2020/05/08(金) 19:00:25.69ID:ztqG52En
例えば多数ある文章間で使用単語の類似性を検討するにはどの言語がやりやすい?
2020/05/08(金) 19:26:27.46ID:qca/Mwjw
>>195
word2vecやdoc2vecのライブラリが揃ってたらどの言語でも良いと思う
参考資料が多いと言う観点や辞書の手に入りやすさと言う観点からはpythonかな

その他重要なのは、対象とする文書を読み込めるを機能があるかどうか
mdやtxtのASCIIばかりでなくdocxやpdfも対象と言うことならpythonでいい
2020/05/08(金) 21:30:24.58ID:FhTTD0+N
>>193
えっ、Pythonの用途の大半は大きな意味での文字列処理
つまりテキスト処理だと思うんだが
2020/05/08(金) 23:18:55.72ID:B0NvsSSc
>>194
ぱいそんに
199デフォルトの名無しさん
垢版 |
2020/05/09(土) 09:29:52.12ID:3rxWY8lS
おっぱyは4bytes
2020/05/09(土) 11:28:18.96ID:4AGhJAkS
知識が20年前ぐらいで止まってるんだけど
perlのかわりになりますかね
2020/05/09(土) 13:14:16.71ID:mr/P9GQq
perlが書ける人なら、大概の言語はOKなんではないか?
2020/05/09(土) 14:05:02.83ID:/WGeoYJn
>>200
今自分がperlを使ってないことから代わりになっていると思う
ただし正規表現の扱いの容易さはperlのが優れている
2020/05/09(土) 14:14:06.26ID:m5t3nUyt
perlのどこまでを要求するかにもよるだろうけど、
概ね他の言語(Python含む)で代替できるのでは?
2020/05/09(土) 14:18:35.09ID:m5t3nUyt
>>202
s/foo/bar/g とかはpythonでも使いたいと思うことがある
まぁ、書き方の問題に過ぎないけど

置換で思い出したが、ワンライナーはperlの圧勝かなぁ
2020/05/09(土) 15:55:31.80ID:mr/P9GQq
その記述はviでもsedでも使えるので便利
2020/05/09(土) 18:24:57.68ID:9+f2Z3ZT
>>200
なる!

PythonやRubyはP言語だから
同じような使い道するからね
もちろん文法の細部は違うけど
2020/05/09(土) 18:26:06.32ID:9+f2Z3ZT
Perlって記号多用して読みにくくなるから
Pythonの方がいいわ
2020/05/09(土) 18:57:08.84ID:Gxw/aWGG
ワンライナーをするにはpythonはあんま向いてないな。まあ最近ワンライナーあんまり使わなくなってきたけど。
2020/05/10(日) 09:06:42.56ID:j31NiFTx
pythonだと読みやすくするために
毎回一時変数使って構造化しないといけないから
書き捨てるようなテキスト処理とは相性が悪い
2020/05/11(月) 22:09:27.83ID:qfXbD+ub
>>188
横から質問します。

私は163さんではありませんが、学習のためにここを覗きました。

記載されているプログラムを実行すると、
’|まちがってるよ¥n’ ,’|まちがってるよ¥n’
と前後に記号と、改行コードがついてしまいますが、これを除去して出力する方法はありますでしょうか。
2020/05/11(月) 23:26:53.85ID:masQzK0H
line.rstrip()
212デフォルトの名無しさん
垢版 |
2020/05/12(火) 10:06:33.55ID:4WwqN1hQ
ほちがってるよ
2020/05/12(火) 11:44:31.16ID:s06VnCgE
>>210
print(''.join(output), end='')
のところは実行してる?
214210
垢版 |
2020/05/12(火) 22:39:09.39ID:7RXslmjs
>>213
はい、そのまま実行すると改行コードがそのままでてしまうのです。

せめて改行して表示してくれればよいのですが.....
215210
垢版 |
2020/05/12(火) 22:40:50.64ID:7RXslmjs
>>211
line=line.rstrip()
とすればいけるかなあ...と思いましたが、
だめみたいですね(´・ω・`)
2020/05/13(水) 03:39:34.71ID:ibBgBr2u
>>215
OSとpythonのバージョンを教えて

あとfor line in f:の下に以下のデバッグコード入れてみて欲しい

print([f'{x:02x}' for x in line.encode('utf-8')])

の出力が見たい

macで実行すると
>>> line = 'あいう¥n'
>>> print([f'{x:02x}' for x in line.encode('utf-8')])
['e3', '81', '82', 'e3', '81', '84', 'e3', '81', '86', '0a']
>>> print([f'{x:02x}' for x in line.rstrip().encode('utf-8')])
['e3', '81', '82', 'e3', '81', '84', 'e3', '81', '86']

最後の0aが改行コードLFなので、rstrip()するとちゃんと消える
2020/05/14(木) 20:12:34.90ID:eyziGhr3
a = ''
b = '123'
とした時、
if a: とすれば、False 、
if b: とすれば、True と評価されるけど、
この真偽値をif文を用いずに変数に直接代入するにはどうしたらいい?

bool_a = not (not a) # False
bool_b = not (not b) # True
とすれば、目的は達せられるけど、二重否定でいかにもまわりくどい
そのものズバリの方法はないかな?
218デフォルトの名無しさん
垢版 |
2020/05/14(木) 20:20:09.01ID:xR/PZA9p
!!a
219デフォルトの名無しさん
垢版 |
2020/05/14(木) 20:22:21.62ID:xR/PZA9p
bool(a)
220217
垢版 |
2020/05/14(木) 20:47:02.81ID:eyziGhr3
>>219
どうもありがとう
スッキリしたわ
2020/05/17(日) 17:21:31.20ID:xAYNfwXu
scikit-learnよりXGBoostのrandomforestのほうが性能よいのですか?
222デフォルトの名無しさん
垢版 |
2020/05/19(火) 22:28:31.73ID:m8F9ts/N
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^

あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!

クソチョンw
2020/05/24(日) 23:50:52.29ID:k0sc2Lpo
えーと、たとえばubuntuでspyder使うとき、ubuntuのaptとかsnapで入れたものと
Anacondaの中で入れたものだと設定ファイルとかちゃんと別のものになりますか?
224デフォルトの名無しさん
垢版 |
2020/05/25(月) 01:07:05.65ID:Y9cCXaqZ
自分でどこを見るのか設定するだけ
2020/05/25(月) 13:33:29.09ID:gis+qwRr
漏れは、Windows 10, WSL, Ubuntu 18.04 で、
VSCode の拡張機能、Remote WSL も使って、

Linux側には、日本人が作った、バージョンマネージャーのanyenv で、rbenv, nodenv を使って、
ruby 2.6.6, node 12.16.2 を入れた

rubyコマンドの参照先を確認する
rbenv which ruby
~/.rbenv/versions/2.6.6/bin/ruby

global はシステム全体、local は、そのプロジェクトだけのバージョンを設定する
rbenv global 2.6.6
rbenv local 2.6.6

system は、apt などで、/usr/bin/ruby へ、インストールしたバージョンを設定する
rbenv global system
rbenv local system

つまり、apt のパッケージとも共存できる
レスを投稿する

5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況