Tips: 本文创建于2016年12月21日,已超过 2 年,内容或图片可能已经失效!

## 分支循环

> 语法

  1. if a == 1 and b == 2:  
  2.         print 'ok'  
  3. else:  
  4.         print 'no'  
  5.   
  6. if a == 1:  
  7.         print 1  
  8. elif a == 2:  
  9.         print 2  

> eg:

  1. #! /usr/bin/env python  
  2. # -*- coding: utf-8 -*-  
  3. # vim:fenc=utf-8  
  4. username = 'admin'  
  5. user_input = raw_input('Enter your name: ') # 3版本为 input  
  6. if user_input == username:  
  7.     print('welcome %s' % user_input)  
  8. else:  
  9.     print('is wrong')  

> 三目/元运算符

  1. x, y = 10, 20  
  2. smallValue = x if x<y else y  
  3.   
  4. smallValue = (x < b or b)  
  5. smallvalue = (x < x and x or y)  

> while 循环

  1. i = 1  
  2. sum = 0  
  3. while i <= 100:  
  4.         sum += i  

> 99乘法表

  1. i = 1  
  2. while i < 10:  
  3.     j = 1  
  4.     while j <= i:  
  5.         print("%s X %s = %s" % (j,i,i*j)),  
  6.         j += 1  
  7.     print  
  8.     i += 1  

> for 循环

> 主要用来访问序列和可迭代的数据对象

> 序列:list/str/tuple

> 语法:

  1. for i in str:  
  2.         print i  
  3.   
  4.         list1 = ['a','b','c']  
  5.         for i in list1:  
  6.             print i  
  7.         d = {'a':1,'b':2}  
  8.         for k in d:  
  9.             print k  
  10.         for v in d.values():  
  11.             print v  
  12.         for k,v in d.items():  
  13.             print k,v  

## 深浅拷贝

  1. >>> mylist = [1,2,3] #复制运算,原来的改变,都改变  
  2. >>> mylist1 = mylist  
  3. >>> id(mylist)  
  4. 4415885824  
  5. >>> id(mylist1)  
  6. 4415885824  
  7. >>> mylist1[0] = 'a'  
  8. >>> mylist1  
  9. ['a', 2, 3]  
  10. >>> mylist  
  11. ['a', 2, 3]  
  12. >>> mylist2 = mylist[:] #列表冒号赋值,原来的改变,新的不变  
  13. >>> mylist2  
  14. ['a', 2, 3]  
  15. >>> mylist[1] = 'b'  
  16. >>> mylist  
  17. ['a', 'b', 3]  
  18. >>> mylist2  
  19. ['a', 2, 3]  
  20. >>> id(mylist)  
  21. 4415885824  
  22. >>> id(mylist2)  
  23. 4416059296  
  24.   
  25. >>> help(copycopy.copycopy#浅拷贝 copy,原来的改变,新的不变  
  26. >>> mylist3 = copycopy.copycopy(mylist)  
  27. >>> mylist3  
  28. ['a', 'b', 3]  
  29. >>> mylist  
  30. ['a', 'b', 3]  
  31. >>> mylist[2] = 'c'  
  32. >>> mylist  
  33. ['a', 'b', 'c']  
  34. >>> mylist3  
  35. ['a', 'b', 3]  
  36.   
  37. >>> mylist.append(['abc',1])  
  38. >>> mylist #浅拷贝,第一层。深拷贝,都拷贝  
  39. ['a', 'b', 'c', ['abc', 1]]  
  40. >>> mylist4 = copycopy.copycopy(mylist) #浅拷贝  
  41. >>> mylist5 = copycopy.deepcopy(mylist) #深拷贝  
  42. >>> mylist4  
  43. ['a', 'b', 'c', ['abc', 1]]  
  44. >>> mylist5  
  45. ['a', 'b', 'c', ['abc', 1]]  
  46. >>> mylist  
  47. ['a', 'b', 'c', ['abc', 1]]  
  48. >>> mylist[3][1] = 'bcd'  
  49. >>> mylist  
  50. ['a', 'b', 'c', ['abc', 'bcd']]  
  51. >>> mylist4 #浅拷贝改变  
  52. ['a', 'b', 'c', ['abc', 'bcd']]  
  53. >>> mylist5 #深拷贝不变  
  54. ['a', 'b', 'c', ['abc', 1]]  

## 饮料机

> 循环判断举例

  1. # coding=utf-8  
  2. loop = True  
  3. money = 0  
  4. while loop:  
  5.     x = raw_input('please insert your money,press "q"Key to end!')  #用户输入钱数  
  6.     if x == 'q':  #输入q的条件下进行判断  
  7.         if money == 0: #如果输入的钱数为0,提示他没有投币  
  8.             print "Error:you haven't insert money,please insert your money to buy the drink"  
  9.         else#提示他将转入购买饮料的操作界面,投币结束,结束循环  
  10.             print 'Tip: You have finished coin,the next step is the operation interface for you to buy the drink '  
  11.             loop = False   
  12.     else:  # 投币功能,每次投币后都显示本次投币金额和总投币金额  
  13.         x = int(x)  
  14.         money += x  
  15.         print 'Tip:this coin is ', x, 'yuan,all your balance is ', money, 'yuan'  
  16. drinklist = {  
  17.     'Coca Cola': 2.5,  
  18.     'milky tea': 1.5,  
  19.     'Orange juice': 3,  
  20.     'JDB': 4  
  21. }  
  22. #输出饮料明细  
  23. i=0  
  24. print 'please choose the drink you want to buy:'  
  25. for x in drinklist:  
  26.     i+=1  
  27.     print 'No.',i,'drink ',x,'price',drinklist[x]  
  28. print  
  29. #顾客选择饮料  
  30. loop = True  
  31. while loop:  
  32.     drinkNo = raw_input('please input the drink No. you will buy,press "q" to end:')  
  33.     if drinkNo=='q': #输入q结束饮料选择  
  34.         loop = False  
  35.     else# 选择饮料的流程  
  36.         drinkNo = int(drinkNo) # 转换数据类型  
  37.         if drinkNo >= 1 and drinkNo <= len(drinklist):  #如果顾客输出编码在饮料编码范围内  
  38.             i = 0  
  39.             for x in drinklist: #查找顾客选择的饮料  
  40.                 i += 1  
  41.                 if i == drinkNo:#查找到顾客的饮料后,判断顾客的余额是否充足  
  42.                     if money >= drinklist[x]:  
  43.                         money -= drinklist[x] #饮料选择后,对顾客的余额进行相应扣除  
  44.                         print 'the drink you choose:', x, ', the price is', drinklist[x], ',your balance is:', money  
  45.                         if money == 0: #选择饮料后,判断顾客余额是否为0,为零则循环结束  
  46.                             loop = False  
  47.                     else#余额不足则提示顾客余额不足  
  48.                         print 'Remind:your balance is not enough for the drink'  
  49.         else#顾客输出的编码不在系统提供的列表内,则提示选择的饮料不存在  
  50.             print 'Remind: the drink No. is not exist!'  
  51. if money>0: #顾客结束饮料购买,判断顾客余额是否为0,不为0则退换顾客余额,欢迎下次光临  
  52.     print 'Remind:we will return your balance ',money,'yuan, welcome to come again'  
  53. else#顾客余额为0则提示余额为0,欢迎下次光临  
  54.     print 'Your balance has run out, welcome to come again !'