目的
Pythonの基本文法を得ること(初心者向け)
内容
頭の体操程度に解いてみた練習問題。
練習問題一覧
問1
- テストの教科および点数を入力して、合格・不合格を出力するプログラムを書きなさい。
尚、教科は数学(以下mathと表記)および英語(以下engと表記)のみを考え、
mathは75点以上、engは60点以上で合格とする。- 例1:
入力 eng 60
出力 合格 - 例2:
入力 math 74
出力 不合格
- 例1:
問2
- 入力 i (1 <= i <= 100)に対して、1 ~ i までの数が1つずつ小さい順に入ったリスト、
および累積和のリストを出力するプログラムを書きなさい。
尚、累積和のリストとは、n (1 <= n <= i)番目の要素が 1 ~ nまでの総和であるリストのこと。-
例1:
入力 5-
出力
-
[1, 2, 3, 4, 5]
-
[1, 3, 6, 10, 15]
-
-
例2:
入力 50-
出力
-
[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, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50]
-
[1, 3, 6, 10, 15, 21, 28, 36, 45, 55, 66, 78, 91, 105, 120, 136, 153, 171, 190, 210, 231, 253, 276, 300, 325, 351, 378, 406, 435, 465, 496, 528, 561, 595, 630, 666, 703, 741, 780, 820, 861, 903, 946, 990, 1035, 1081, 1128, 1176, 1225, 1275]
-
-
問3
- FizzBuzz問題を、print文の記述を1回だけにして解いてください。
- 簡単に言えば、世界のナベアツ。3の倍数で"Fizz", 5の倍数で"Buzz" 15の倍数で"FizzBuzz"
問4
-
たぬき暗号を解くプログラムを作成してください。
たぬき暗号:「た」を全て除くと、元の文が出てくる暗号。 -
例1:
入力- たたぱたたたたたいたたたたたたそたたたたたたたたたたたたんたた
-
出力
- ぱいそん
-
例2:
-
入力
- たたぱたたたたたいたたたたたたそたたたたたたたたたたたたんたた
たたぱたたたたたいたたたたたたそたたたたたたたたたたたたんたた
- たたぱたたたたたいたたたたたたそたたたたたたたたたたたたんたた
-
出力
- ぱいそんぱいそん
答え
※答えは一例です。
- 問1のコード
math = int(input("math:"))
eng = int(input("eng:"))
if math >74:
print('math:', math,'合格')
else:
print('math:', math,'不合格')
if eng >59:
print('eng:', eng,'合格')
else:
print('eng:', eng,'不合格')
- 問1の答え
math: 74
eng: 59
math: 74 不合格
eng: 59 不合格
- 問2のコード
i = int(input("0~100の数字を入力>>"))
i_num=[]
i_ruiseki=[]
rui = 0
for i in range(1,i+1):
i_num.append(i)
rui +=i
i_ruiseki.append(rui)
print(i_num)
print(i_ruiseki)
- 問2の答え
0~100の数字を入力>>100
[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, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100]
[1, 3, 6, 10, 15, 21, 28, 36, 45, 55, 66, 78, 91, 105, 120, 136, 153, 171, 190, 210, 231, 253, 276, 300, 325, 351, 378, 406, 435, 465, 496, 528, 561, 595, 630, 666, 703, 741, 780, 820, 861, 903, 946, 990, 1035, 1081, 1128, 1176, 1225, 1275, 1326, 1378, 1431, 1485, 1540, 1596, 1653, 1711, 1770, 1830, 1891, 1953, 2016, 2080, 2145, 2211, 2278, 2346, 2415, 2485, 2556, 2628, 2701, 2775, 2850, 2926, 3003, 3081, 3160, 3240, 3321, 3403, 3486, 3570, 3655, 3741, 3828, 3916, 4005, 4095, 4186, 4278, 4371, 4465, 4560, 4656, 4753, 4851, 4950, 5050]
- 問3のコード
print("start")
start = int(input("s"))
print("stop")
stop = int(input())
fizzbuzz = ''
for i in range(start,stop+1):
if (i%3) == 0:
if (i%5) == 0:
fizzbuzz += 'FizzBuzz\n'
else:
fizzbuzz += 'Fizz\n'
else:
if (i%5) == 0:
fizzbuzz += 'Buzz\n'
else:
fizzbuzz += str(i) + "\n"
print(fizzbuzz)
- 問3の答え
start1
stop100
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz
16
17
Fizz
19
Buzz
Fizz
22
23
Fizz
Buzz
26
Fizz
28
29
FizzBuzz
31
32
Fizz
34
Buzz
Fizz
37
38
Fizz
Buzz
41
Fizz
43
44
FizzBuzz
46
47
Fizz
49
Buzz
Fizz
52
53
Fizz
Buzz
56
Fizz
58
59
FizzBuzz
61
62
Fizz
64
Buzz
Fizz
67
68
Fizz
Buzz
71
Fizz
73
74
FizzBuzz
76
77
Fizz
79
Buzz
Fizz
82
83
Fizz
Buzz
86
Fizz
88
89
FizzBuzz
91
92
Fizz
94
Buzz
Fizz
97
98
Fizz
Buzz
- 問4のコード
moji = input("文字を入れまくれ ! ('た'が消える)")
print(moji.replace("た","").replace("\n",""))
- 問4の答え
文字を入れまくれ ! ('た'が消える)たたさたたたんたたぷたたたたるた
さんぷる
# 筆者のコメント
ifやforが入れ子になってくるとわからなくなってくる。