基本問題(1)

[ edit ]

*


概要

*


ヒント

この課題で使うPythonの機能 (学習のヒント)

[ edit ]

この課題の解き方 (問題解決のヒント)

[ edit ]

  • この課題の解き方 (問題解決のヒント) ....
    • タブ文字ではなく,文字列の書式化をつかって,10進数2桁で表示させましょう
      • print( "{0:2d} ".format( table[x][y] ), end="" )
        • 0は位置指定子
          • format()メソッドのパラメータの1つ目(ゼロ始まり)の引数の値
        • 2は整数の桁数
        • dは10進の整数を意味します.
    • とりあえず,空白区切りで表示できたら,罫線にトライしてみましょう.
*


実行例

[ edit ]

  • 実行例(1) ... クリックすると拡大します

fig-01

*


プログラム例: 本質的な部分 (授業中に順次公開します)

[ edit ]

  • 解答例の核心部分,下記3行です.

# ===== 【関数定義】  九九の表を二重リスト(二次元配列として使う)として生成します
def kuku_table():
    # ----- 表(行列)の生成 -----
    table = list()
    for x in range( 1,10 ):
        # ----- 行の生成 -----
        row = list()
        for y in range( 1,10 ):
            row.append( x * y )
        table.append( row )
    return( table )
*


プログラム例: 配布コード (授業中に順次公開します)

[ edit ]

  • 以下の解答例を配布します.
    • 本質部分は替えませんが,コメントや,メインプログラム部分の実行例を,後々,分かり易く書き換える可能性はあります.

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# ==============================================================================
# * Copyright (c) 2018 IIJIMA, Tadashi
# *       (IIJIMA Laboratory, Dept. of Science and Technology, Keio University).
# ==============================================================================
# ソフトウェア工学[03] 基本課題[03]-(001a)  BP_03_001a_kuku_table.py
# BP(Basic Problem) 03-001a: 九九の表を二重リストで返す
#        2018-10-17 飯島 正 (iijima@ae.keio.ac.jp)
# ==============================================================================
# ===== 【関数定義】  九九の表を二重リスト(二次元配列として使う)として生成します
def kuku_table():
    # ----- 表(行列)の生成 -----
    table = list()
    for x in range( 1,10 ):
        # ----- 行の生成 -----
        row = list()
        for y in range( 1,10 ):
            row.append( x * y )
        table.append( row )
    return( table )
# ==============================================================================
# ===== 【関数定義】  九九の表を表示させましょう
#    ※ 2桁の10進整数の二重リスト(二次元配列として使う)を表示します
def print_kuku_table( table ):
    # ----- 行数と列数の取得 -----
    m = len( table    ) # 行数 (九九の表だから9に決まっているけれど,一般性を持たせています)
    n = len( table[0] ) # 列数 (九九の表だから9に決まっているけれど,一般性を持たせています)
    
    print_line( n )
    for x in range( m ):
        print( "|", end="" )
        for y in range( n ): 
            print( "{0:2d}|".format( table[x][y] ), end="" )
        print()
        print_line( n )
        
# ==============================================================================
# ===== 【関数定義】 横罫線の表示
def print_line( n ) : 
    print( "+", end="" )
    for y in range( n ): 
        print( "--+", end="" )
    print()
# ==============================================================================
# ===== 【メイン・プログラム】 =====
# ----- オープニングメッセージ -----
print( "九九の表を表示します: " )
print( " ※「文字列の書式化」を使って,2桁の整数を表示させます" )
print( " ※ついでに罫線も書かせてみましょう" )
print()

table = kuku_table()
print_kuku_table( table )
# ==============================================================================
*
*

SoftEng: Python/Prog/Practice/Basic/03/BP_001a (last edited 2018-10-21 12:15:05 by TadashiIijima)