Python100本ノック by サプー 61~70問目
61問目
変数textに「あかさたな-はまやらわ」という文字列を代入してください。
文字列の中の文字を1文字ずつ出力してください。ただし、ハイフンが出てきた時点で出力を中止してください。
回答
text = 'あかさたな-はまやらわ'
for s in text:
if s == '-':
break
print(s)
62問目
変数ng_numberというリストに4,9,13という要素が入っています。
1から20までの数値を1つずつ出力してください。ただし、nu_numberに含まれている文字の場合は出力をスキップしてください。
回答
ng_number = [4,9,13]
for i in range(1,21):
if i in ng_number:
continue
print(i)
63問目
1から20までの数値を1つずつ出力してください。
ただし、3の倍数の時だけ「〇〇は3の倍数」と出力してください。
回答
for i in range(1,21):
print(i)
if i % 3 == 0:
print(f'{i}は3の倍数')
64問目
addressという辞書があり、keyに名前、valueにメールアドレスが入っています。
この中からメールアドレスのドメインがgmail.comのデータだけを取り出して新しいgmail_addressという辞書を作ってください。そして、gmail_addressを出力してください。
address = {
"鈴木": "suzuki@example.com",
"田中": "tanaka@example.com",
"山田": "yamada@example.com",
"サプー" : "python.supu.vtuber@gmail.com"
}
回答
address = {
"鈴木": "suzuki@example.com",
"田中": "tanaka@example.com",
"山田": "yamada@example.com",
"サプー" : "python.supu.vtuber@gmail.com"
}
gmail_address = {}
for name, address in address.items():
if address.endswith('gmail.com'):
gmail_address[name] = address
print(gmail_address)
65問目
九九の1の段から9の段まで出力してください。
回答
for first_num in range(1,10):
for second_num in range(1,10):
print(f'{first_num} ✖︎ {second_num} = {first_num * second_num}')
66問目
引数に文字列の値を1つ受け取りその値をprint関数で表示するだけの関数print_stringを作成してください。
そして、その関数を使って「Hello Python!」という文字を出力してください。
回答
def print_string(text):
print(text)
print_string('Hello Python!')
67問目
変数aに10、変数bに20を代入します。
次にadd関数を作成します。
add関数は2つの数値を引数に受け取り、その数値の足し算の結果を返す関数です。
そのadd関数を使ってaとbを足した結果を出力してください。
回答
a = 10
b = 20
def add(x,y):
return x + y
print(add(a,b))
68問目
14, 32, 80, 1, 9という要素が入っているnumbersがあります。
sum_and_avgという関数を作成します。
sum_and_avg関数は引数にリストを受け取りそのリストの値の合計と平均を返す関数です。
このsum_and_avg関数を使ってnumbersの合計と平均値を出力してください。
回答
numbers = [14,32,80,1,9]
def sum_and_avg(array):
avg = sum(array) / len(array)
return sum,avg
sum,avg = sum_and_avg(numbers)
print(f'合計:{sum},平均:{avg}')
69問目
14, 32, 80, 1, 9という要素が入っているnumbersがあります。
is_evenという関数を作ります。
is_evenは引数に数値を一つ受け取り、その数値が偶数か奇数かを判定し偶数ならTrue、奇数ならFalseを返す関数です。
is_even関数を使ってnumbersの要素が偶数か奇数かを判定し「〇〇は偶数」「〇〇は奇数」と判定結果を出力してください。
回答
numbers = [14,32,80,1,9]
def is_even(num):
return num % 2 == 0
for i in numbers:
if is_even(i):
print(f'{i}は偶数')
else:
print(f'{i}は奇数')
70問目
drink_priceという関数を作成してください。
- 引数1:drink_size(S/M/L)
Sは100円、Mは200円、Lは300円 - 引数2:has_whip(True/False)
ホイップありは+100円 - 戻り値:飲み物の価格
Mサイズのドリンクにホイップクリームをトッピングした場合の料金とLサイズのドリンクの価格を出力してください。
回答
def drink_price(drink_size,has_whip=False):
price = 0
match drink_size:
case 'S':
price += 100
case 'M':
price += 200
case 'L':
price += 300
if has_whip:
price += 100
return price
print(drink_price('M',True))
print(drink_price('L',False))