# -*- coding: cp936 -*-
#P69 5.4 条件和条件语句
#5.4.1 这就是布尔变量的作用
print True
print False
print True == 1
print False == 0
print True + False +42
print bool('I think, theretore I am')
print bool(42)
# False None 0 "" () [] {} 均为假
print bool('')
print bool(0)
print '\n'
#5.4.2 条件执行和if语句
name = raw_input('What is your name?')
if name.endswith('Gumby'):
print 'Hello, Mr. Gumby'
#5.4.3 else子句
else:
print 'Hello, stranger'
#5.4.4 elif子句
num = input('Enter a number:')
if num > 0:
print 'The number is positive'
elif num < 0:
print 'The number is negative'
else:
print 'The number is zero'
#5.4.5 嵌套代码块
name = raw_input('What is your name?')
if name.endswith('Gumby'):
if name.startswith('Mr.'):
print 'Hello, Mr. Gumby'
elif name.startswith('Mrs.'):
print 'Hello, Mrs. Gumby'
else:
print 'Hello, Gumby'
else:
print 'Hello, stranger'
#5.4.6 更复杂的条件
#相等运算符
print "foo" == "foo" #True
print "foo" == "bar" #False
#is:同一性运算符
x = y = [1, 2, 3]
z = [1, 2, 3]
print x == y #True
print x == z #True
print x is y #True
print x is z #False
x = [1, 2, 3]
y = [2, 4]
print x is not y #True
del x[2]
y[1] = 1
y.reverse() #reverse列表方法,将列表中的元素反向存放
print x == y #True
print x is y #False
#in:成员资格运算符
name = raw_input('What is your name?')
if 's' in name:
print 'Your name contains the letter "s".'
else:
print 'Your name does not contain the letter "s".'
#字符串和序列比较
print "alpha" < "beta" #True
print 'FnOrD'.lower() == 'Fnord'.lower() #lower字符串方法,返回字符串的小写字母版
print [1, 2] < [2, 1] #True
print [2, [1, 4]] < [2, [1, 5]] #True
#布尔运算符
# 读取数字并且判断该数字是否位于1~10之间
number = input('Enter a number between 1 and 10:')
if number <= 10:
if number >= 1:
print 'Great!'
else:
print 'Wrong!'
else:
print 'Wrong!'
# 改写如下
number = input('Enter a number between 1 and 10:') or '<unknown>'
if number <= 10 and number >= 1:
print 'Great!'
else:
print 'Wrong!'
#5.4.7 断言
age = 10 #assert语句,在0<age<100一定为真时才让程序正常工作
assert 0 < age < 100
age = -1
assert 0 < age < 100, 'The age must be realistic'
raw_input("Press <enter>")