質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

Q&A

解決済

1回答

1169閲覧

pythonのブール値の代入について

esklia

総合スコア81

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

0グッド

0クリップ

投稿2020/02/10 10:56

編集2020/02/10 11:00

『入門python3』p92のコードより、pythonのブール値についてです。
以下のコードの3行目なのですが、if disaster:の意味が分かりません。「もしdisasterがTrueなら」って意味なのでしょうか?だとしたらif disaster is True:が適切だと思いますが…

disaster = True if disaster: print("Woe") else: print("Whee")

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

if 文は、式の評価結果をbool関数で真偽値にしてTrueかどうかを判断します。
つまり、

python

1if disaster:

python

1if bool(disalster) is True:

と同等です。
bool関数では、None, False, 数値のゼロ, 空要素が False となり、それ以外はTrueになります。

python

1>>> bool('hello') 2True 3>>> bool(0) 4False 5>>> bool([]) 6False 7>>> bool([0]) 8True

ちなみに、「PEP8: Pythonコードのスタイルガイド」には、真偽値変数と True/False を比較するなと書いてあります。
https://pep8-ja.readthedocs.io/ja/latest/

ブール型の値と True や False を比較するのに == を使うのはやめましょう。:

良い: if greeting:
悪い: if greeting == True:
もっと悪い: if greeting is True:

投稿2020/02/10 11:13

編集2020/02/10 11:32
shiracamus

総合スコア5406

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

esklia

2020/02/10 11:16

なるほど、よく理解できました。ありがとうございます。
shiracamus

2020/02/10 11:20

PEP8の記述を追記しておきました。
esklia

2020/02/10 11:26

ご丁寧に指摘くださりありがとうございます。pep8もよく読むようにします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問