7月30日(中間発表、テストと例外処理)

ページ名:7月30日(中間発表 テストと例外処理)

8月の授業

通常授業:6日(火)、20日(火)、27日(火)

補講:26日(月)、30日(金)※どちらか都合の良い日に来てください

※8月13日(火)はお休み

卒業制作の計画

加藤 → ふりがなカメラ

武村さん → My Menu (いま自分が持っている食材を入力すると、その食材を使ったメニューが表示される)

信木さん → 但馬検定問題アプリ(予想問題が100問でてきて4択で答える)

佐藤さん → 工場で使っている生産量のデータ等をいまExcel管理しているが、それをプログラミングで処理したらどんな楽しいことがあるか。

細見さん→考え中

テスト

作ったプログラムが正しいかどうかチェックするために、テストが必要です。
全ての可能性をテストすることは不可能なので、ある程度絞ってテストをすることになります。
テストはやみくもに行うのではなくて、どの値をテストすれば正しいと判断できるのか、
という基準があります。

例題)

コトリ温泉は通常料金500円ですが、65歳以上は100円引きです。
以下は年齢を入力すると料金を表示するプログラムです。

nenrei = input('年齢は?')
if int(nenrei) >= 65:
    print('料金は400円です')
else:
    print('料金は500円です')

次のプログラムが正しいかどうかテストしなさい。

テストの仕方:極端な値と境界の値を検査する
0 → 400
64 → 400
65 → 500
999 → 500

問題)
コトリ遊園地のジェットコースターは身長が135cm以上の人だけ乗ることができます。
身長を入力すると、乗れるかどうかを表示するプログラムを書きなさい。
また、そのプログラムが正しいかどうかをテストしなさい。

shincho = input('身長は?')
if int(shincho) >= 135:
    print('乗れます')
else:
    print('乗れません')

問題)
コトリ百貨店では1000円以上のお買い上げで記念品としてタオルが、
10000円以上のお買い上げで時計がもらえます。
購入額を入力すると記念品を表示するプログラムを作りなさい。
また、プログラムが正しいことをテストしなさい。

kingaku = input('購入額は?')
if int(kingaku) >= 10000:
    print('記念品は時計です')
elif int(kingaku) >= 1000:
    print('記念品はタオルです')
else:
    print('記念品はありません')

問題)
コトリ村の青年会は年齢が20代か30代の男性が入ることができます。
年齢と性別を入力すると、入会できるかどうかを表示するプログラムを書きなさい。
また、プログラムが正しいことをテストしなさい。

nenrei = input('年齢は?')
seibetsu = input('性別は?')
if int(nenrei) >= 20 and int(nenrei) <= 39 and seibetsu == '男':
    print('入会可能です')
else:
    print('入会できません')

例外処理

例題)
コトリ温泉は通常料金500円ですが、65歳以上は100円引きです。
以下は年齢を入力すると料金を表示するプログラムです。

nenrei = input('年齢は?')
if int(nenrei) >= 65:
    print('料金は400円です')
else:
    print('料金は500円です')

年齢のところに、数字以外の文字列(例えば「65歳」)を入れるとエラーになります。
このエラーを出さないために、以下のように解決します。

import sys
nenrei = input('年齢は?')

if not(nenrei.isdigit()): #数字かどうかの判定
    print('数字を入力してください')
    sys.exit() #プログラムの終了
    
if int(nenrei) >= 65:
    print('料金は400円です')
else:
    print('料金は500円です')

問題:
以下は数字の和を求めるプログラムです。

kazu1 = input('1つ目の数は')
kazu2 = input('2つ目の数は')
wa = int(kazu1) + int(kazu2)
print(wa)


数字以外の入力を受け付けないように処理を加えなさい。

import sys
kazu1 = input('1つ目の数は')
kazu2 = input('2つ目の数は')

if not(kazu1.isdigit()) or not(kazu2.isdigit()):
    print('数字を入力してください')
    sys.exit()
    
wa = int(kazu1) + int(kazu2)
print(wa)

問題:
以下はお店の予約プログラムの一部です。
「来店人数」は1以上の整数のみを受け付けるようにしなさい。

ninzu = input('ご来店人数は?')
print(ninzu + '名様のご予約を受け付けました')

問題:
以下は入力した名前に対してあいさつをするプログラムです。


name= input('お名前は?')
print('こんにちは、' + name + 'さん!')

名前の入力がなかった時に、もう一度聞き返すようにしなさい。

ヒント:空白は '' で表すことができます

問題:
以下はカフェの注文を確認するプログラムです。
メニューにない商品を注文したら「それは無いよ」というようにしなさい。

print('メニューはコーヒー, 紅茶, ケーキ, ランチです。')
menu = ['コーヒー', '紅茶', 'ケーキ', 'ランチ']
chumon = print('ご注文は何にいたしましょうか')
print('ご注文は' + chumon + 'ですね。')

ヒント:
'in' 関数を使うことができます

list = ["A", "B", "C", "D", "E"]
target = 'X'
if target in list:
  print(target + 'は存在します')
else:
  print(target + 'は存在しません')

 

シェアボタン: このページをSNSに投稿するのに便利です。

コメント

返信元返信をやめる

※ 悪質なユーザーの書き込みは制限します。

最新を表示する

NG表示方式

NGID一覧