課題04-1 階乗を計算する関数を作成する #
難易度 ⭐
コマンドライン引数で与えられた数値の階乗を計算する関数 factorial
を作成してください.
factorial
関数は,引数 n
に対して,n!
を計算して返すようにしてください.
n!
は,n
から 1 までの整数の積を表します.
ファイル名はfactorial.py
としてください.
import sys
def factorial(n):
# ここに関数を実装してください
pass
for arg in sys.argv[1:]:
n = int(arg)
print(f"{n}! = {factorial(n)}")
実行例 #
$ python3 factorial.py 2 3 4 5 10
2! = 2
3! = 6
4! = 24
5! = 120
10! = 3628800
課題04-2 四則演算を行う関数を作成する #
難易度 ⭐⭐
コマンドライン引数で与えられた3つの値(数値,演算子,数値)を受け取り,計算結果を返す関数 calc
を作成してください.
calc
内の処理は,演算子に応じて,足し算(+
),引き算(-
),掛け算(*
),割り算(/
)を行うようにしてください.
そして,計算結果を返してください.
ファイル名は,calc.py
としてください.
import sys
def calc(value1, operator, value2):
# ここに関数を実装してください
# operator の値に応じて,value1 と value2 の演算結果を返します.
pass
if len(sys.argv) != 4:
print('Usage: python3 calc.py <value1> <operator> <value2>')
sys.exit(1)
value1 = int(sys.argv[1])
operator = sys.argv[2]
value2 = int(sys.argv[3])
print(calc(value1, operator, value2))
実行例 #
$ python3 calc.py 1 + 2
3
$ python3 calc.py 3 - 4
-1
$ python3 calc.py 5 \* 6 # * は特殊文字であるため,エスケープする.
30
課題04-3 文字列に含まれる文字の出現頻度を数える関数を作成する. #
難易度 ⭐⭐⭐
コマンドライン引数で与えられた文字列それぞれに対して,その文字列に含まれる文字の出現頻度を数えるプログラム char_freq.py
を作成してください.
与えられた文字はすべて小文字に変換して出現頻度を数えるものとします.
ただし,文字の頻度を数える関数 count_chars
を作成してください.
str
を小文字にします.str.lower()
のように,文字列型変数に対して,lower
関数を呼び出すと,小文字に変換されます.- 小文字に変換した
str
の各文字を順に取り出してc
とします.freq[c]
が存在しなければfreq[c] = 0
とします.freq[c]
に 1 を加えます.
import sys
def count_chars(str):
# ここに関数を実装してください
freq = dict()
for c in str.lower():
pass # この行を置き換えて,適切な処理に変更してください.
return freq
for arg in sys.argv[1:]:
print(f"{arg}: {count_chars(arg)}")
実行結果 #
# ターミナル上でも'や"で囲むとスペース入りの文字列を入力できる.
$ python3 char_freq.py abracadabra 'This is a pen'
abracadabra: {'a': 5, 'b': 2, 'r': 2, 'c': 1, 'd': 1}
This is a pen: {'t': 1, 'h': 1, 'i': 2, 's': 2, ' ': 3, 'a': 1, 'p': 1, 'e': 1, 'n': 1}