Pythonエンジニア認定基礎試験模試の復習
Pythonエンジニア認定基礎試験の模試、DIVE INTO EXAM の復習。
わからなかった問題の中から、特にこれはアウトプットしておきたい! と思ったものについて書いていく。
.format( )
次のprint文のうち、「こんにちは!山田さん」と出力される記述はどれかを選びなさい。print('こんにちは!()さん', '山田')print('こんにちは!()さん'+'山田')print('こんにちは!{}さん'.format('山田'))print('こんにちは!{}さん', '山田')
正解: print('こんにちは!{}さん'.format('山田'))
私の回答:print('こんにちは!()さん', '山田')
文字列に { } を埋め込む。
{ }の中に、.format( )の引数(つまり( )の中に書いた値や文字列)が入る。
.format( )を使うにあたっては、まずこれを覚えておけば良いのでしょう。
.format( )について知っていたら絶対に間違えない問題。
案の定、私はよくわかっていなかったので、全く自信がないまま回答し、間違える。笑
とりあえず、2番目の選択肢ではない、ということだけわかって、他は??だった。
ちなみに、間違っている選択肢をターミナルで実行したところ、以下の結果になった。
print('こんにちは!()さん', '山田')
▶︎SyntaxError
print('こんにちは!()さん'+'山田')
▶︎こんにちは!()さん山田
print('こんにちは!{}さん', '山田')
▶︎SyntaxError
「SyntaxError」つまり、構文エラー。
理由は「invalid character in identifier」。
つまり、「書いた中に無効な文字が含まれてるよ〜」というもの。
なるほどねえ。
.format( ) について、わかりやすくまとめてくれていたのはこちらの記事。
int と float
以下のプログラムを実行した際の出力結果を選びなさい。
a = 2 b = 5 c = 3.0 + b, 5 * a print(c)
正解:(8.0,10)
私の回答:(8.0,10.0)
出力時には型を合わせた状態になる、という趣旨の問題。
a と b に代入されている「2」と「5」は整数。intという型。
一方、c の計算式に登場している「3.0」は小数点を持つ。float という型。
int型 と float型が混ざって計算されるとどうなるのか?
そういうとき、Pythonでは、float型に合わせられるように作られている。
意図はわかったけど、範囲がわかってなかった。
「, 」で区切られているから、同じ「c」に代入されていても
「3.0 + b」
「5 * a」
この2つは別の数式だと考えてよかったのね。
それぞれ
「float型 + int型」
「int型 + int型」
だから、出力されたときは (float型 , int型) になる。
お疲れさまでした!
.format( ) の使い方、int と float の計算の仕方。
どっちもかなり基礎的なことだろうけど、わかってなかったなあ。
しかし、二度と間違えない!!
明日も頑張ろう。