Python 配布プリント (3) 16 May 2016 by 水谷正大 http://www.ic.daito.ac.jp/~mizutani/python/index.html 3 while 文 以下のスクリプトを適切なファイル名で実行し、人間計算機としてその結果を「完璧に」説明しなさい。 while 構文 while 論理式: ブロック文 1. 論理式を評価する。False ならば while 文を終了(何もしない)。 2. True ならブロック文を実行。 3. 論理式の評価に戻る。 x = 15 while x < 20: print "Now, inside while" x = x + 1 # Assume min < max max = 10 min = 3 sum = 0 i = min while i < max: sum = sum + i i = i + 2 print "Sum = ", sum 3.1 無限ループ while True: n = int(raw_input("Input an integer = ")) print "Square value = ", n * n このままではいつまで経っても終了しないので、Ctrl + C(control キーを押しながら c キーを押すこと)で 「割り込み」をかけて、コマンドを強制終了させる。 3.2 文字列の長さを使う s = raw_input("Input an arbitrary string(and hit [Return]) = ") while len(s) != 0: print "You just enter: " + s s = raw_input("Another string = ") print "Terminated!" 1 3.3 平方根を求める 与えた正実数 x > 1 の平方根 √ x を指定した精度で見つけることは、数学を使わず素早く算数だけで容易 に見つけることができる。 x = 5.0 accuracy = 0.01 print "Find square root of", x, " winthin accuracy =",accuracy high = x low = 0.0 num_guess = 0 guess = (high + low) / 2.0 while abs(guess ** 2 - x) >= accuracy: print "guess =", guess, ": low =", low, " high =", high if guess ** 2 < x: low = guess else: high = guess guess = (high + low) / 2.0 num_guess = num_guess + 1 print "Done!" print "It takes a number of guess =", num_guess print guess, " is close to square root of", x 問題 [問題 1] キーボードから入力した実数文字列を変数 x に実数(浮動小数点)として代入するには関数 float() を使って、たとえば x = float(raw_input("Input positive real number = ")) と書く。キー入力した正実数の平方根を指定した精度で求めるスクリプト square_root.py を書いて、実行 結果を報告しなさい。 [問題 2] 単語当てゲーム 変数 target に適当な英単語をセットしておく。キーボードから推測した英単語を変数 guess にセットし、 target と guess との辞書式順序関係を評価してヒントを表示して、一致するまで推測を何度も繰り返して次 のような実行結果となるようなスクリプト guess_word.py を書いて、実行結果を報告しなさい。 ヒント)while 文 while guess != target: を使って if else 文を繰り返すという方法が自然だ。 Guess a word: Input guess word = orange Input more previous word = lemon Input more following word = maple Input more following word = muscat Input more previous word = mother Congraturation! You hit the target = mother 2
© Copyright 2024 ExpyDoc