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

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

新規登録して質問してみよう
ただいま回答率
85.35%
NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

4回答

900閲覧

Pythonのこのif文についてわかりません

退会済みユーザー

退会済みユーザー

総合スコア0

NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/10/03 09:21

pythonのこのif文がわかりません。
このif文はどういうことなのでしょうか?
検索しても、
条件式があるIf文しかみつかりません。

python

1 2# 指定された解像度の8ビット画像を読み込んで準備する 3def readLDR(file, sz, clip=True, sc=1.0): 4 try: 5 """scipy.misc.imread(*args, **kwds) 6 ファイルから画像を配列として読み取ります。""" 7 x_buffer = scipy.misc.imread(file) 8 9 # 画像をクリップして、画像のサイズ変更によって比率が変更されないようにする 10 if clip: 11 sz_in = [float(x) for x in x_buffer.shape] 12 sz_out = [float(x) for x in sz] 13 14 r_in = sz_in[1]/sz_in[0] 15 r_out = sz_out[1]/sz_out[0] 16 17 if r_out / r_in > 1.0: 18 sx = sz_in[1] 19 sy = sx/r_out 20 else: 21 sy = sz_in[0] 22 sx = sy*r_out 23 24 yo = np.maximum(0.0, (sz_in[0]-sy)/2.0) 25 xo = np.maximum(0.0, (sz_in[1]-sx)/2.0) 26 27 x_buffer = x_buffer[int(yo):int(yo+sy),int(xo):int(xo+sx),:] 28 29 # 画像のサイズ変更とフロートへの変換 30 """scipy.misc.imresize(* args、** kwds ) 31 画像のサイズを変更します。""" 32 x_buffer = scipy.misc.imresize(x_buffer, sz) 33 x_buffer = x_buffer.astype(np.float32)/255.0 34 35 # スケーリングとクリッピング 36 if sc > 1.0: 37 x_buffer = np.minimum(1.0, sc*x_buffer) 38 39 x_buffer = x_buffer[np.newaxis,:,:,:] 40 41 return x_buffer 42 43 except Exception as e: 44 raise IOException("Failed reading LDR image: %s"%e) 45 46 47

これがプログラムなのですが

if clip:

このIf文がわかりません。
ほかのif文は条件式でわかるのですが、このif文はなんなのでしょうか?

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

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

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

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

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

guest

回答4

0

if clip:

変数clipの値が真であれば、インデント部分を実行するという意味です。
if文の基本機能です。

この場合だと、clipは引数でデフォルト値がTrueなので、その場合はifのインデント部分が実行されます。
引数のclipFalseを指定して関数を呼び出した場合は、その部分がスキップされます。
TrueFalse以外の値の場合に、bool()関数での結果と同じ基準で真偽が判断されます。

投稿2021/10/03 09:36

otn

総合スコア85901

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

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

退会済みユーザー

退会済みユーザー

2021/10/03 09:40

とてもわかりやすい解説ありがとうございます。 本当にありがとうございます。
otn

2021/10/03 10:13

whileの条件部分だと、 while True: と、定数を書くこともありますね。
guest

0

ppaulさんのは、自分が望んでいる回答だったのですが、
今回はjhashimotoさんが、私の知らない知識を教えてくださったので、ベストアンサーにしました。

投稿2021/10/03 09:38

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

ikapy

2021/10/03 10:46

評価の基準は、望むかどうかでなく正確かどうかではないでしょうか。 極論ですが〇〇をアドルフにしたらどうでしょうね!
YT0014

2021/10/04 14:39

ベストアンサーの選定に関するコメントは、各回答へのコメントなどへの記載が良いかと思います。
guest

0

clipというbool型の変数がTrueであればif節を実行し、Falseであれば実行しないという意味です。

投稿2021/10/03 09:33

ppaul

総合スコア24670

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

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

0

ベストアンサー

if clip:はBoolean値を評価しています。

Python の Boolean - Python のデータ型 - Python の基本 - Python 入門

# 変数 a は関数を呼び出した結果を保持 a = doSomething() if a: print('a is True') else: print('a is False')

ここでは変数a (14行目) は、6行目から11行目で作成したダミーの関数である doSomething()関数を呼び出した結果を保持します。 そして、16行目からの if 文を使った条件分岐で a が True の場合に 'a is True'、そうでない場合 (つまり False の場合) 'a is False' という文字列を表示します。

投稿2021/10/03 09:33

jhashimoto

総合スコア838

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問