Pythonの実験と課題 - 04 データ型、数学関数、文字列

提出期限

実験目標

以下の内容を習熟します:

  • forループとturtleの活用
  • 数値演算子
  • mathライブラリの基本関数
  • 文字列から数値型への変換(int, float, complex)
  • 文字列操作の基本関数

実験内容

課題1. whileループをforループに置き換える円生成プログラム

参考コード:

def calculate_area(radius):
    return 3.14 * radius * radius

n = int(input("n = "))
radius_list = []
for _ in range(n):
    r = float(input("半径を入力してください:"))
    radius_list.append(r)

for radius in radius_list:
    print(calculate_area(radius))

#課題2:turtleを使用してradius_listの半径を円として描画

作業1. forループとwhileループの違いは?

課題2 数値演算子 - 整数部分取得、余数取得

`//`演算子は整数部分を取得します。例:10//3=3。

`%`演算子は余数を取得します。例:10%3=1。

これらの演算子はプログラミングで広く使用されます。

例題:お金を返す場合、レジ係員は10元、5元、1元の紙幣を使用します。可能な限り少ない枚数でお金を返す必要があります。

例:17元を返す場合、10元1枚、5元1枚、1元2枚を返します。

入力:17

出力:10元1枚、5元1枚、1元2枚

2.1. `//`と`%`演算子を使用して与えられた値を計算します。

2.2. 上記の手順を関数として定義します:

def give_money_change(change):
    ten_count = change // 10
    change %= 10
    five_count = change // 5
    change %= 5
    one_count = change
    print("10元{}枚、5元{}枚、1元{}枚".format(ten_count, five_count, one_count))

#1. 入力プロンプトを表示し、数値に変換します。
money = int(input("返す金額を入力してください:"))
give_money_change(money)

課題3 mathライブラリの基本関数

3.1. 次のコードを実行し、意味を理解します。

import math
daily_growth = 0.01
annual_growth = math.pow((1.0 + daily_growth), 365)
annual_decay = math.pow((1.0 - daily_growth), 365)
print("向上:{:.2f} 倍、向下:{:.2f} 倍。".format(annual_growth, annual_decay))

3.2. 銀行預金問題:

年利率rate%の場合、money元をn年間預金するといくらになりますか?

a) 直接計算。

b) IPO分析を行い、計算アルゴリズムを関数として定義します。

課題4. 回文判定問題

回文とは、正読と逆読が同じ文字列のことです。

例:'a', 'aba', '123454321'

1. 初級版:5文字の文字列のみを対象とした回文判定プログラムを作成します。

2. 中級版:任意長の文字列を対象とした回文判定関数を作成します。

3. 空白除去:左右の空白を削除した後で回文判定を行います。

4. 数字判定:入力文字列が全て数字であることを確認します。

課題5. 毎日の向上プログラミング

課題3.2を関数を使用して改修します。

進階課題:課題3.3を解決します。

課題6. 文字列操作の基本関数 - 預習

6.1. ord関数の使用例:

plain_text = input("明文を入力してください:")
encrypted_text = ""
for char in plain_text:
    if ord('a') <= ord(char) <= ord('z'):
        shifted_char = chr(ord('a') + (ord(char) - ord('a') + 3) % 26)
        encrypted_text += shifted_char
    else:
        encrypted_text += char
print(encrypted_text)

課題7. テキストプログレスバー - 預習

7.1. 教科書P89-91の例4.1-4.3を研究し、例4.3の各行にコメントを付けます。

7.2. 次のコードを実行し、動作を観察します。

import time
while True:
    for symbol in ['/', '-', '|', '\\', '|']:
        print(symbol + '\r', end='')
        time.sleep(0.05)

課題8. テキストプログレスバー - 特別課題

教科書の課題3.6を実装します。

選択課題:教科書の課題3.8を解きます。

前提条件:tqdmライブラリをインストールします。

pip3 install tqdm -i https://pypi.douban.com/simple

タグ: Python 回文 数学関数 文字列操作 turtleグラフィックス

6月3日 16:37 投稿