提出期限
実験目標
以下の内容を習熟します:
- 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