こちらでPythonを学び始めています。前回から時間が空いてしまいましたが、少しずつでも進めていきたいです。今回は関数について学びまして。
関数(メッセージ)
def greeting(name): print('Welcome,' + name + '!!!') print('You are the best')
greeting('Po')
名前を受け取って歓迎のメッセージを表示する関数です。このコードは、Pythonで書かれた関数 greeting
を定義しています。この関数は、引数として name
を受け取り、以下の2つのメッセージを表示します。
print('Welcome,' + name + '!!!')
: 引数name
を使って「Welcome, [name]!!!」というメッセージを作成し、出力します。print('You are the best')
: 固定のメッセージ「You are the best」を出力します。
実行部分では、greeting('Po')
と呼び出しており、これにより name
に ‘Po’ が渡されます。したがって、出力は以下のようになります。
Welcome,Po!!! You are the best
関数(計算)
def area_triangle(base, height): return base * height / 2
このコードは、三角形の面積を計算する関数 area_triangle
を定義しています。
base
(底辺)と height
(高さ)を引数として受け取り、三角形の面積を計算します。
面積の計算式は 面積=1/2×底辺×高さです。この式に基づいて計算を行い、その結果を返します。
area_x = area_triangle(1, 2) area_y = area_triangle(3, 4)
area_triangle(1, 2)
を呼び出すと、底辺が 1、高さが 2 の三角形の面積が計算され、area_x
に格納されます。
area_triangle(3, 4)
も同様に、底辺が 3、高さが 4 の三角形の面積が計算され、area_y
に格納されます。
total_area = area_x + area_y total_area
area_x
と area_y
を足し合わせて、total_area
に格納します。
まとめると、このコードは2つの三角形の面積を計算し、その合計を求めるものです。
関数(時間)
def get_seconds(hours, minutes, seconds): total_seconds = 3600*hours + 60*minutes + seconds return total_seconds
このコードは、時間(時間、分、秒)を合計して、すべてを秒単位で表現する関数 get_seconds
を定義しています。
get_seconds
という名前の関数を定義しています。引数として、hours
(時間)、minutes
(分)、seconds
(秒)を受け取ります。
1時間は3600秒なので、hours
に3600を掛けます。1分は60秒なので、minutes
に60を掛けます。これらを足し合わせることで、総秒数 total_seconds
を計算します。
計算された総秒数 total_seconds
を関数の呼び出し元に返します。
get_seconds(3, 46, 57)
この場合、3時間、46分、57秒を入力すると結果が以下のように計算されます。
13617
関数(ラッキーナンバー)
def lucky_number(name): number = len(name)*9 print("hello " + name + ". your lucky number is " + str(number)) lucky_number("taro") lucky_number("はなこ")
このコードは、与えられた名前の文字数に基づいてラッキーナンバーを計算し、その結果をメッセージとして表示するものです。日本語の名前にも対応しています。
lucky_number
という名前の関数を定義しています。引数として name
を受け取ります。
len(name)
は、名前の文字数を取得します。その文字数に9を掛けて number
という変数に格納します。
名前とラッキーナンバーを組み合わせたメッセージを作成し、print
関数を使って出力します。str(number)
で number
を文字列に変換しています。
最初の呼び出し lucky_number("taro")
では、name
は “taro” になります。文字数は4なので、計算は 4×9=36 となります。
次の呼び出し lucky_number("はなこ")
では、name
は “はなこ” になります。文字数は3なので、計算は 3×9=27となります。
hello taro. your lucky number is 36 hello はなこ. your lucky number is 27
関数
a = input(); y = 1 for i in range(int(a)): y = y*(i+1) print(y)
このコードは、ユーザーから入力された数の階乗を計算し、各ステップの結果を表示するシンプルなプログラムです。
input()
関数を使用して、ユーザーから入力を受け取ります。この入力は文字列として扱われるため、後で整数に変換します。- 階乗の計算に使う変数
y
を初期化します。階乗の計算では1から始めます。 range(int(a))
は、0からa-1
までの整数を生成します。int(a)
で、入力された文字列を整数に変換しています。- ループ内で、
i
は0から始まり、a
の数値より1小さい値まで増加します。 - 各ループの中で、
y
に(i + 1)
を掛けて、現在の階乗の値を更新します。更新後のy
の値をprint()
で表示します。
例えば、ユーザーが 4
を入力した場合、コードの動作は以下のようになります。
- 1回目のループ (
i = 0
):- y=1×(0+1)=1
- 出力:
1
- 2回目のループ (
i = 1
):- y=1×(1+1)=2
- 出力:
2
- 3回目のループ (
i = 2
):- y=2×(2+1)=6
- 出力:
6
- 4回目のループ (
i = 3
):- y=6×(3+1)=24
- 出力:
24
関数(factorial)
# This function takes an integer as an input and returns its factorial. def factorial(n): # Exclude 0 as product, start with 1 y = 1 for i in range(int(n)): y = y*(i+1) return y # Enter a numerical value between 1-9 in the command line that appears. input_num = input() # Apply factorial function to an integer input print(factorial(input_num))
このコードは、ユーザーからの整数入力に基づいてその階乗を計算し、結果を出力するものです。正しく動作させるためには、入力を整数に変換する必要があります。
factorial
という関数を定義し、引数n
を受け取ります。このn
は階乗を計算したい整数です。- 階乗の計算に使う変数
y
を初期化します。階乗の計算は1から始まります。 range(int(n))
は0からn-1
までの整数を生成します。int(n)
で、入力された値を整数に変換します。- ループ内で、
i
は0から始まり、n
の数値より1小さい値まで増加します。 - 各ループの中で、
y
に(i + 1)
を掛けて、現在の階乗の値を更新します。 - 最終的な階乗の値
y
を返します。 input()
関数を使用して、ユーザーから数値を入力として受け取ります。この値は文字列として取得されます。- 入力された値を
factorial
関数に渡し、その結果を出力します。ただし、ここでのinput_num
は文字列であるため、整数に変換して渡す必要があります。
関数(問題)
# Define a function named `total_sales` def total_sales(n): sales = n * 7.99 # Return a value return sales total_sales(59)
471.41
- この関数
total_sales
は、引数n
を受け取り、n
個の商品の合計売上を計算します。具体的には、各商品の価格が 7.99 ドルであると仮定しています。 - 引数
n
: 売上を計算したい商品の数量です。 - 計算:
sales = n * 7.99
で、n
個の商品の合計金額を求めます。 - 戻り値:
return sales
によって、計算された合計売上を返します。 total_sales(59)
は471.41
を返します。
def total_sales(price, num_tickets): # Calculate total sales sales = price * num_tickets # Round the result to two decimal places rounded_sales = round(sales, 2) # Return the rounded total sales return rounded_sales # Example usage result = total_sales(7.99, 59) print(result) # This will print the total sales amount rounded to two decimal places
- 引数:
price
: 一枚のチケットの価格。num_tickets
: 売れたチケットの枚数。
- 売上の計算:
sales = price * num_tickets
で合計売上を計算します。
- 小数点以下の丸め:
rounded_sales = round(sales, 2)
で、計算結果を小数点以下2桁に丸めます。
- 戻り値:
return rounded_sales
によって、丸めた売上を返します。
# Example usage result = total_sales(15.99, 1001) print(result)
16005.99
# Boolen data print(10 == 1) print(10 > 1) print("Yellow" > "Cyan" and "Brown" > "Magenta") print(25 > 50 or 1 != 2) print(not 1 == "a")
print(10 == 1)
- 評価:
False
- 理由: 10 は 1 と等しくないため。
2. print(10 > 1)
- 評価:
True
- 理由: 10 は 1 より大きいため。
3. print("Yellow" > "Cyan" and "Brown" > "Magenta")
- 評価:
True
- 理由: アルファベット順で、”Yellow” は “Cyan” より後にあり、”Brown” は “Magenta” より前にあるため、両方の条件が真です。
4. print(25 > 50 or 1 != 2)
- 評価:
True
- 理由:
25 > 50
はFalse
ですが、1 != 2
はTrue
です。or
のため、一方が真であれば全体が真となります。
5. print(not 1 == "a")
- 評価:
True
- 理由:
1
と"a"
は等しくないため、1 == "a"
はFalse
であり、not
によって逆転しTrue
になります。
#greater than > #greater than or equal to >= #less than < #less than or equal to <= #not equal to != #equal to ==
計算
x = 3 my_list = [3, 4, 6, 10] print(x < 3 and x != 0) print(x >= len(my_list) or x == min(my_list)) print(x not in my_list)
False True False
1. print(x < 3 and x != 0)
- 評価:
False
- 理由:
x
は 3 なので、x < 3
はFalse
です。and
演算子は両方の条件が真である場合のみ真を返すため、全体もFalse
になります。
2. print(x >= len(my_list) or x == min(my_list))
- 評価:
True
- 理由:
len(my_list)
は 4 なので、x >= len(my_list)
はFalse
です。min(my_list)
は 3 なので、x == min(my_list)
はTrue
です。or
演算子はどちらか一方が真であれば全体が真となるため、結果はTrue
になります。
3. print(x not in my_list)
- 評価:
False
- 理由:
my_list
に3
が含まれているため、x not in my_list
はFalse
になります。
def hint_username(username): if len(username) < 8: print('Invalid username. Must be at least 8 characters long.') else: print('Valid username.')
この関数 hint_username
は、ユーザー名の長さをチェックして、その有効性を評価するものです。
機能の説明
- 引数:
username
: ユーザー名として検証したい文字列。
- 長さのチェック:
if len(username) < 8
: ユーザー名の長さが 8 文字未満の場合。- 処理:
print('Invalid username. Must be at least 8 characters long.')
で無効なメッセージを表示します。
- 処理:
else
: ユーザー名が 8 文字以上の場合。- 処理:
print('Valid username.')
で有効なメッセージを表示します。
- 処理:
# 使用例 username = "abcndonfadkdo;" print(hint_username(username))
Valid username. None
def is_even(number): if number % 2 == 0: return True return False is_even(11)
False
def hint_username(username): if len(username) < 8: print('Invalid username. Must be at least 8 characters long.') else: if len(username) > 15: print('Invalid username. Cannot exceed 15 characters.') else: print('Valid username.') hint_username('ajfdhlfkjzdfldsjf;kajds')
Invalid username. Cannot exceed 15 characters.
def send_email(num_visits, visits_email): if num_visits >= visits_email: print('Send email.') else: print('Not enough visits.')
send_email(num_visits=3, visits_email=5) # Should print 'Not enough visits.' send_email(num_visits=5, visits_email=5) # Should print 'Send email.' send_email(num_visits=15, visits_email=10) # Should print 'Send email.'
Not enough visits. Send email. Send email.
コメント