if 语句的使用
在 Python 中, 要构造分支结构可以使用 if,elif 和 else 关键字. 所谓关键字就是有特殊含义的单词, 像 if 和 else 就是专门用于构造分支结构的关键字, 很显然你不能够使用它作为变量名 (事实上, 用作其他的标识符也是不可以). 下面模拟个认证的例子来说明一下,
- username=str(raw_input("请输入用户名:"))
- password=str(raw_input("请输入密码:"))
- if username == "admin" and password=="12345" :
- print ("身份认证成功")
- else:
- print ("身份认证失败")
以上的代码还是存在不严谨的, 我们还需要通过判断用户输入的是否为空值. 这里需要用到 if 的嵌套. 修改后的代码如下:
- username=str(raw_input("请输入用户名:"))
- password=str(raw_input("请输入密码:"))
- if username !=''and password !='':
- if username == "admin" and password=="12345" :
- print ("身份认证成功")
- else:
- print ("身份认证失败")
- else:
- print("请输入用户名和密码")
巩固练习
练习 1: 英制单位与公制单位互换
- #1 英寸 = 25.4 毫米
- value=float(raw_input('请输入长度:'))
- unit=str(raw_input('请输入单位:'))
- if unit == 'in' or unit == '英寸':
- print('%f 英寸 =%f 厘米' %(value,value*2.54))
- elif unit =='cm' or unit =='厘米':
- print('%f 英寸 =%f 厘米' % (value, value / 2.54))
- else:
- print('请输入有效的单位')
练习 2: 与电脑玩剪刀石头布游戏
- import random
- payer=int(raw_input('请输入你的指令 (0: 石头, 1: 剪刀, 2: 布):'))
- comptuer=random.randint(0,2)
- if (payer == 1 and comptuer == 2 ) or (payer == 0 and comptuer == 1 ) or (payer== 2 and comptuer==0):
- print('电脑出:{}, 你出 {}, 你赢了'.format(comptuer,payer))
- elif (payer== comptuer):
- print('电脑出:{}, 你出 {}, 打平'.format(comptuer, payer))
- else:
- print('电脑出:{}, 你出 {}, 你输了'.format(comptuer, payer))
针对以上的小游戏, 我们有这样一个需求, 三盘两胜方可算赢. 那么程序又如何修改呢. 参考如下:
- import random
- comptuer_win=0
- payer_win=0
- while True :
- payer=int(raw_input('请输入你的指令 (0: 石头, 1: 剪刀, 2: 布):'))
- comptuer=random.randint(0,2)
- if (payer == 1 and comptuer == 2 ) or (payer == 0 and comptuer == 1 ) or (payer== 2 and comptuer==0):
- print('电脑出:{}, 你出 {}, 你赢了'.format(comptuer,payer))
- payer_win+=1
- print(payer_win)
- elif (payer== comptuer):
- print('电脑出:{}, 你出 {}, 打平'.format(comptuer, payer))
- else:
- print('电脑出:{}, 你出 {}, 你输了'.format(comptuer, payer))
- comptuer_win += 1
- if comptuer_win == 2 :
- print('电脑最终胜出')
- break
- elif payer_win == 2 :
- print('电脑最终胜出')
- break
练习 3: 输入三条边长如果能构成三角形就计算周长和面积
- import math
- a=int(raw_input("请输入三角形的第一条边长:"))
- b=int(raw_input("请输入三角形的第二条边长:"))
- c=int(raw_input("请输入三角形的第二条边长:"))
- if a+b> c and a+c>b and b+c>a :
- print("三角形的周长:{}".format(a+b+c))
- #三角形面积, 已知三边利用海伦公式 (p=(a+b+c)/2)
- #S=sqrt[p(p-a)(p-b)(p-c)]
- p=(a+b+c)/2
- area=math.sqrt(p*(p-a)*(p-b)*(p-c))
- print("三角形的面积:{}".format(area))
- else:
- print("输入的边长不能构成三角形, 请重新输入")
练习 4: 实现一个个人所得税计算器.
- salary=float(input('本月收入:'))
- insurance=float(input('五险一金扣除:'))
- diff=salary-insurance-5000
- if diff <= 0:
- rate = 0
- deduction = 0
- elif diff < 3000 :
- rate=0.3
- deduction = 0
- elif diff < 12000 :
- rate = 0.1
- deduction= 210
- elif diff < 25000:
- rate = 0.2
- deduction=1410
- elif diff < 35000 :
- rate = 0.25
- deduction = 2660
- elif diff < 55000:
- rate =0.3
- deduction = 4410
- elif diff < 80000 :
- rate = 0.35
- deduction = 7160
- else:
- rate = 0.45
- deduction=15160
- tax=abs(diff*rate - deduction)
- print('个人所得税: ¥%.2f 元' % tax)
- print('实际到手收入:¥%.2f 元' % (diff + 5000 - tax))
来源: http://www.jianshu.com/p/24477df70e02