Views
条件分岐
教科書 9章 If ステートメント
例によって
- このレッスンは ~/python/10ディレクトリでプログラムを作成してください。
- どうすればよいか、もう、わかってるよね。わからなかったら、前の課で確認。
if 文による分岐
- if -- (elif --) elseを使うと、条件によって異なるプログラムのブロックを実行することができます。
#!/usr/bin/env python # -*- coding: utf-8 -*- # a.py print '*** いちご占い ***' ans = raw_input('好きなフルーツの名前をどうぞ: ') if ans == 'いちご': print 'いちごの好きなあなたには幸運が訪れます.' elif ans == 'みかん': print 'みかんの好きなあなたは努力が必要です.' else: print ans, 'の好きなあなたは健康に気をつけてください.'
補足
- if と elif の後には、条件を書きます。
- 条件は演算であり、通常は大小関係を検査する演算子(<, <=, >=, >) 同値であるかどうかを検査する演算子(==, <>, !=) や、その結果の論理値に対する演算(and, or, not) が用いられます。
- 詳しくは教科書 p181 Python のブール演算を参照してください。
- 条件に合致したとき、式の値は「真」であり、合致しなかったときは「偽」となります。また、0 でない整数や空でない文字列・リストは「真」となります。
- if, elif, else の文はコロン(:) で区切り、次の行は字下げ(インデント)を行い、ブロックであることを示します。
論理式
- 次の2つのプログラムが同じ動作をすることを確かめてください。
#!/usr/bin/env python # -*- coding: utf-8 -*- # b.py x = input('? ') if 10 <= x and x < 20: print '当たり' else: print 'はずれ'
論理式(続き)
- 2つめのプログラム
#!/usr/bin/env python # -*- coding: utf-8 -*- # c.py x = input('? ') if x < 10 or 20 <= x: print 'はずれ' else: print '当たり'
ループから抜ける break
- break 文を使うと繰り返し実行を中断することができます。
#!/usr/bin/env python # -*- coding: utf-8 -*- # d.py sum = 0 while 1: n = input('+? ') if n == 0: break sum = sum + n print '合計 =', sum
問題1
- lim(x→0) sin(x)/x は 1.0 である。しかし,sin(0.0)/0.0 を計算することはできない。x に小さい値を入れて計算してみて,1.0 に近づいていく様子を見てみよう。 この問題をプログラム(q1.py)で解きなさい。但し、最初の x の値を 1.0 とし、繰り返すとき x の値は前の値の半分(1/2) にすること。
問題2
- 二次方程式の解を計算するプログラム q2.py を作りなさい。平方根の計算には math.sqrt() を使うことができる。以下の実行例を参考にすること。
$./q2.py 二次方程式の係数を入れてください a? 1 b? 0 c? 1 実数解はありません $ ./q2.py 二次方程式の係数を入れてください a? 1 b? 0 c? -1 解は 1.0 と -1.0 です
解答は、"メール":mailto:tkikuchi+ci2006@is.kochi-u.ac.jp?Subject=10IfElse で送ってください。 また,今回の演習の結果できたファイルはそのまま ~/python/10 に残しておいてください。評価の対象とします。