問1:数の大小を表示する条件分岐
整数をx,yというint型の変数にコンソール上で入力し、xがyよりも大きい場合は
「xはyよりも大きい」
xがyよりも小さい場合は
「xがyよりも小さい」
xとyの値が同じ場合は
「xとyの値が同じ場合」
とコンソールに表示するプログラムを作成しなさい。
コンソールに値入力するためには、下記のソースを使ってください。
1 2 3 |
print( "xの値を入力してください") x = int(input()) |
問2:正負の奇数か偶数を判定するプログラム
整数をxのint型の変数にコンソール上で入力し、
それがプラスの値だった場合「正の数の奇数か偶数か」
マイナスの値を入力した場合「負の数の奇数か偶数か」
を判定するプログラムを作成しなさい。
問3:月の日数を表示するプログラム
コンソールに月の値(1~12)を入力して
1月から12月までの日数を表示するプログラムを作成しなさい。
また、1~12以外の数字を入力した場合、「入力が間違っています」とコンソールに表示しなさい。
答え
問1:数の大小を表示する条件分岐
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
def compare(a): # 入力値が条件に当たるかを判断する関数 if a.isalpha(): # 変数が文字なのか数字なのかを判断するため return True a = int(a) # 変数をintに変わる if 0 > a or a > 100: return True return False while True: # 入力値Xに正しい値が入るまでの反復門 x = input("Xの値を入力してください。") m = compare(x) if m == False: break # ループを止める while True: # 入力値Yに正しい値が入るまでの反復門 y = input("Yの値を入力してください。") n = compare(y) if n == False: if x > y: # Yだけの条件を確認 print(x, "は", y, "よりも大きい") break # ループを止める |
問2:正負の奇数か偶数を判定するプログラム
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
def function(**kwargs): # 受けた変数をkwargsというdictionaryに追加 K = kwargs.get("x") # kwargsの中にあるxというキーをKという変数で入れる if K.isalpha() or -99 > int(K) or int(K) > 100: # Kが条件に当たるかを確認 return function(x = input("値を入力してください")) # 間違ったときまた入力値を受ける K = int(K) # Kをint形で変わる if K >= 0 and K % 2 == 0: # Kが正のか負のかと偶数か奇数かを判別 print("正の数の偶数") elif K >= 0 and K % 2 == 1: print("正の数の奇数") elif K < 0 and K % 2 == 0: print("負の数の偶数") else: print("負の数の奇数") function(x = input("値を入力してください")) # functionを使ってxというキーと入力した値をバリューで受ける |
問3:月の日数を表示するプログラム
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
arr = [[" "]*7 for _ in range(5)] # 2次元配列を作る def check(C): # 変数が条件に当たるかを検討 if C.isalpha() or int(C) <= 0 or int(C) >= 13: return False else: return int(C) def month(M): # 変数で月の数が入ったら日数を変換 if int(M) == 2: m = 28 elif int(M) == 4 or int(M) == 6 or int(M) == 9 or int(M) == 11: m = 30 else: m = 31 print(M, "月") return m def day(D): # 日数が入ったらカレンダーのように日数を変換 D = int(D) d = 0 for i in range(5): for j in range(7): if d < D: d = d + 1 arr[i][j] = d elif d == D: break for i in arr: # 拡張for門:for([配列の資料形][変数名]:[配列名]又は[コレクションのオブジェクト名])➞in java for j in i: # ㄴ> 配列内の全ての値を反復するfor門の向上された形体index値が必要ない時簡潔で有用 print(j, end = " ") print() def calander(num): # 月の入力値を受けて、間違ったらまた質問をする if check(num) == False: return calander(input("月を入力してください")) day(month(num)) calander(input("月を入力してください")) |
コメント