問題1

12 + 22 - (3 × 7) ÷ 2

In [2]:
12 + 22 - (3 * 7) / 2
Out[2]:
23.5

問題2

sent = ["Wars","not","make","one","great"]を文字列に変換して出力する。

In [3]:
sent = ["Wars","not","make","one","great"]
" ".join(sent)
Out[3]:
'Wars not make one great'

問題3

問題2で文字列に変換したものをリストに変換する。

In [5]:
sent2 = " ".join(sent)
sent2.split()
Out[5]:
['Wars', 'not', 'make', 'one', 'great']

問題4

a = "Use the force."とb="Feel it."を結合して"Use the force. Feel it."にする。

In [7]:
a = "Use the force."
b="Feel it."

a + " " + b
Out[7]:
'Use the force. Feel it.'

問題5

"You don't know the power of the darkside."の語数を出力する。

In [10]:
sent3 = "You don't know the power of the darkside."
len(sent3.split())
Out[10]:
8

問題6

"But you can't stop the change, any more than you can stop the suns from setting."の単語の種類数を出力する。

In [14]:
sent4 = "But you can't stop the change, any more than you can stop the suns from setting."
L = sent4.split()
M = set(L)
len(M)
Out[14]:
13

問題7

以下のデータの平均値(データの総和を個数で割る)を求めましょう。

L = [12,25,32,65,44,89,35]

In [16]:
L = [12,25,32,65,44,89,35]
sum(L)/len(L)
Out[16]:
43.142857142857146

問題8

以下のリストの"C"を出力しなさい。

M = [["A","B",["C","D"],"E"],"F",["G","H"],"I"]

In [19]:
M = [["A","B",["C","D"],"E"],"F",["G","H"],"I"]
M[0][2][0]
Out[19]:
'C'

問題9

以下のリストのHを出力しなさい。

M = [["A","B",["C","D"],"E"],"F",["G","H"],"I"]

In [21]:
M = [["A","B",["C","D"],"E"],"F",["G","H"],"I"]
M[2][1]
Out[21]:
'H'

問題10

以下のリストからA,B,C,Dを出力しなさい。

M = [["A","B",["C","D"],"E"],"F",["G","H"],"I"]

In [35]:
M = [["A","B",["C","D"],"E"],"F",["G","H"],"I"]

M[0][:3]
Out[35]:
['A', 'B', ['C', 'D']]

第2回練習問題¶

問題1

for文を使って以下の単語を複数形にしなさい。

["boy","girl", "pen","book","dish","watch","box","fox"]

In [36]:
L = ["boy","girl", "pen","book","dish","watch","box","fox"]

for w in L:
    if w[-1] == "h" or w[-1] == "x":
        a = w + "es"
    else:
        a = w + "s"
    print(a)
boys
girls
pens
books
dishes
watches
boxes
foxes

問題2

inputされた値が3の倍数の場合は"Yes!"、そうでない場合は"No!"と出力するコードを書きなさい。

In [40]:
x = input()

if int(x) % 3 == 0:
    print("Yes!")
else:
    print("No!")
1269
Yes!

問題3

inputされた英単語が10文字以上の場合は"Long word"と出力されるコードを書きなさい。

In [42]:
x = input()
if len(x) > 9:
    print("Long word")
pen

問題4

fizzbuzzです。ルールは以下です。

  1. 1から100までの数字で
  2. 3で割り切れる時には"Fizz!"と表示
  3. 5で割り切れる時には"Buzz!と表示
  4. 3でも5でも割り切れる時には"Fizz! Buzz!"と表示
  5. それ以外の数字はそのまま表示

for文を使って出力してみましょう。

In [43]:
for i in range(1,101):
    if i % 15 == 0:
        print("Fizz! Buzz!")
    elif i % 5 == 0:
        print("Buzz!")
    elif i % 3 == 0:
        print("Fizz!")
    else:
        print(i)
1
2
Fizz!
4
Buzz!
Fizz!
7
8
Fizz!
Buzz!
11
Fizz!
13
14
Fizz! Buzz!
16
17
Fizz!
19
Buzz!
Fizz!
22
23
Fizz!
Buzz!
26
Fizz!
28
29
Fizz! Buzz!
31
32
Fizz!
34
Buzz!
Fizz!
37
38
Fizz!
Buzz!
41
Fizz!
43
44
Fizz! Buzz!
46
47
Fizz!
49
Buzz!
Fizz!
52
53
Fizz!
Buzz!
56
Fizz!
58
59
Fizz! Buzz!
61
62
Fizz!
64
Buzz!
Fizz!
67
68
Fizz!
Buzz!
71
Fizz!
73
74
Fizz! Buzz!
76
77
Fizz!
79
Buzz!
Fizz!
82
83
Fizz!
Buzz!
86
Fizz!
88
89
Fizz! Buzz!
91
92
Fizz!
94
Buzz!
Fizz!
97
98
Fizz!
Buzz!

問題5

任意の整数に関して、その値が偶数の場合は2で割り、奇数の場合は3をかけて1を足すという操作を繰り返すと必ず1になります(コラッツの問題)。

例1
13 -> 40 -> 20 -> 10 -> 5 -> 16 -> 8 -> 4 -> 2 -> 1

例2
22 -> 11 -> 34 -> 17 -> 52 -> 26 -> 13 -> 40 -> 20 -> 10 -> 5 -> 16 -> 8 -> 4 -> 2 -> 1

whileとifを用いて任意の整数を入力して、この過程を出力してみましょう。

In [45]:
x = input()
x = int(x)

while x != 1:
    if x % 2 == 0:
        y = x//2
    else:
        y = x * 3 + 1
    print(y)
    x = y
13
40
20
10
5
16
8
4
2
1

問題6

以下のリスト(L)の各要素を10で割ってリストMに保存しなさい。要素が数値ではない場合、リストMには"X"を追加しなさい。

L = [12,100,90,88,45,"32","25",12,"33",90,100]

In [46]:
L = [12,100,90,88,45,"32","25",12,"33",90,100]
M = []

for i in L:
    try:
        M.append(i/10)
    except:
        M.append("X")
M
Out[46]:
[1.2, 10.0, 9.0, 8.8, 4.5, 'X', 'X', 1.2, 'X', 9.0, 10.0]