授業-ソフトウェア工学 > 2018年度 > 試験 > 第01回 学力確認試験 > 第01回 学力確認試験 問題01
授業-2018年度-ソフトウェア工学-第01回 学力確認試験 問題01
問題01: 10進数表現の数値の文字列から,2進数表現の文字列へ変換
問題 01: 10進数表現の数値の文字列から,2進数表現の文字列へ変換
[ edit]
問題
[ edit]
関数定義,データ入出力
1-1
10進数表現の数値の文字列から,2進数表現の文字列へ変換
10進数表現の数値の文字列から,2進数表現の文字列へ変換する
Pythonプログラムを関数として作ってください.エラー処理は省いて構いません.
この関数を使って,キーボードからの入力(10進整数に相当する
文字列)を6桁の2進数表現に変換して,表示させます.
関数
関数int_to_binary_str( x, column )
x
(int)
変換したい数値
column
(int)
2進表現の桁数
返戻値
(str)
変換した文字列
メイン
# ==============================================================================
# ===== 【メイン・プログラム】 =================================================
# ------------------------------------------------------------------------------
# ----- データを入力する -------------------------------------------------------
data_str = input( " 正整数を入力してください >>> " )
# ------------------------------------------------------------------------------
# ----- 10進整数文字列を6桁の2進表示へ変換し表示する ---------------------------
print( int_to_binary_str( int( data_str ), 6 ) )
# ==============================================================================
使い方
python decimal_to_binary.py 正整数を入力してください >>> 7 000111
解答例
[ edit]
★基本的な解 (1): この問題で,確認したい学力を持つことを示しています
a
基本的な解法とします.2で割ることを繰り返して,剰余を桁とします
b
整数のリストを文字列へ変換する関数を独立させます
c
除算結果と剰余を同時に得られるdivmodを使います
★基本的な解 (2): この問題で,確認したい学力を持つことを示しています
d
文字列に追加していき,最後に反転させます
e
整数のリストを文字列のリストへ変換し,joinメソッドを使います
★高度な手法: 授業では扱っていない手法を使っています
f
整数のリストを文字列のリストへ変換するのに内包リスト表現を使います
g
整数のリストを文字列のリストへ変換するのにmap関数を使います
★同等の機能は持ちますが,この問題で,確認したい学力とは,異なる手法を使っています
(まあ,こうした解答があることは,一応,想定していましたが)h
数値の2進表示文字列を得るbin()関数を使う
i
bin()関数の代わりにformat()関数を使う
j
文字列のformat()メソッドでゼロ詰めを行う
k
format()関数でゼロ詰めを行う
[ edit]