Coursera Google Advanced Data Analyticsを受講:Python勉強記録3

データサイエンス
Get Started with Python
Offered by Google. This is the second of seven courses in the Google Advanced Data Analytics Certificate. The Python programming language is ... Enroll for free...

こちらでPythonを学び始めています。前回から時間が空いてしまいましたが、少しずつでも進めていきたいです。今回は関数について学びまして。

関数(メッセージ)

def greeting(name):
    print('Welcome,' + name + '!!!')
    print('You are the best')
greeting('Po')

名前を受け取って歓迎のメッセージを表示する関数です。このコードは、Pythonで書かれた関数 greeting を定義しています。この関数は、引数として name を受け取り、以下の2つのメッセージを表示します。

  1. print('Welcome,' + name + '!!!'): 引数 name を使って「Welcome, [name]!!!」というメッセージを作成し、出力します。
  2. 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_xarea_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
  1. 引数:
    • price: 一枚のチケットの価格。
    • num_tickets: 売れたチケットの枚数。
  2. 売上の計算:
    • sales = price * num_tickets で合計売上を計算します。
  3. 小数点以下の丸め:
    • rounded_sales = round(sales, 2) で、計算結果を小数点以下2桁に丸めます。
  4. 戻り値:
    • 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 > 50False ですが、1 != 2True です。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 < 3False です。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_list3 が含まれているため、x not in my_listFalse になります。

def hint_username(username):
    if len(username) < 8:
        print('Invalid username. Must be at least 8 characters long.')
    else:
        print('Valid username.')

この関数 hint_username は、ユーザー名の長さをチェックして、その有効性を評価するものです。

機能の説明

  1. 引数:
    • username: ユーザー名として検証したい文字列。
  2. 長さのチェック:
    • 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.

コメント

タイトルとURLをコピーしました