33 から 126 の範囲の整数を乱数により1個発生させ,それを文字コードとします.そのコードに対応する文字が,記号か数字か大文字もしくは小文字のどれに相当するかを答えるプログラムを作成しましょう.
Student number: s246099 '@' is a symbol. ------------------------ | Student number: s246099 1 is a number. ------------------------ | Student number: s246099 'M' is an upper case letter. ------------------------ | Student number: s246099 'x' is a lower case letter. ------------------------ |
||||
記号の場合 | 数字の場合 | 大文字の場合 | 小文字の場合 |
教科書の p.199 にASCIIコード表があります.教科書にも見方が書いてありますが,例えば記号の ! は16進コードで 21 です.これはIDLEのシェルでなお,結果の出力では必ず最初の行に自分の学生番号を,最後にハイフンによるラインをつけること.無い場合には減点するので注意.これらは解答用紙にあらかじめ入っているものを自分のものに修正するだけでよいので,必ず行ってください.
>>> print(0x21)
と入力してエンターを押すと,33 と10進数に直してくれます.
解答用紙を使用する際には,学生番号と名前の記入も忘れないでください.さらに,解答用紙自体がPythonのプログラムとなっていますので,実行してエラーの無いことを確認してから提出してください. 指定の解答用紙を使用していない,実行時にエラーが出る,学生番号と名前が無い,というような答案は提出されても採点しません.注意してください. |
解答例
# ############################# # # プログラミング入門I 宿題 2024.11.6 # 学生番号: s246099 # 氏名: 松江 花子 # # ############################# import random print('Student number: s246099') print('') char = random.randint(33, 126) print(f"'{chr(char)}' is ", end = '') if 48 <= char <= 57: print('a number.') elif 65 <= char <= 90: print('an upper case letter.') elif 97 <= char <= 122: print('a lower case letter.') else: print('a symbol.') print('\n------------------------\n') |
# ############################# # # プログラミング入門I 宿題 2024.11.6 # 学生番号: s246099 # 氏名: 松江 花子 # # ############################# import random print('Student number: s246099') print('') char = random.randint(33, 126) print(f"'{chr(char)}' is ", end = '') if 0x30 <= char <= 0x39: print('a number.') elif 0x41 <= char <= 0x5a: print('an upper case letter.') elif 0x61 <= char <= 0x7a: print('a lower case letter.') else: print('a symbol.') print('\n------------------------\n') |
|
10進数で処理 | 16進数で処理 |