标签:控制流、demo4
# -*- coding:utf-8 -*- #--控制流---------------------------------------------------------------- #---if----- age = 13; if age>=18: print 'adult'; elif 18>age>=6: print 'teenager'; else: print 'kid'; #teenager #可以改造的简单一些-------------------------- age=3; print 'adult' if age>=18 else('teenager' if 18>age>=6 else 'kid'); #kid #或者利用and,or条件短路 age=6; print(age>=18 and 'adult') or (18>age>=6 and 'teenager') or 'kid'; #teenager ''' 注意条件表达式不能包含复制语句 if(x=1)>0: #此写法是错误得 print '二大爷'; if(x=1)>0: ^ SyntaxError: invalid syntax ''' #-----------if练习----------猜数字---------------------------- number = 23; guess = int(raw_input('请输入数字:')); if guess==number: print '祝贺你,猜中了'; print '但是没有奖励'; elif guess<number: print '小了'; else: print '大了'; print 'done'; #------------循环-------------------------------------------------------------------- #--for---- names = ['Michael','Bob','Tracy']; for name in names: print'name:%s'%name; ''' name:Michael name:Bob name:Tracy ''' #--for x in...循环就是把每个元素带入变量,然后执行语句 #计算10! sum=0; for x in [1,2,3,4,5,6,7,8,9,10]: sum = sum+x; print 'sum:',sum; #55 #用上述方法较麻烦,所以有range()函数 xrange() sum = 0; for x in range(11): sum = sum+x; print 'sum:',sum; #55 #遍历i for i in xrange(4): print 'i:',i; ''' i: 0 i: 1 i: 2 i: 3 ''' #----多变量赋值------- for i,j in {'a':1,'b':2}.items(): print i,j; ''' a 1 #i--a j--1 b 2 #i--b j--2 ''' s = ((1,['a','b']),(2,['x','y'])); for i,(c1,c2) in s: #展开,[]和()都可以用 print i,c1,c2; ''' 1 a b #i--1 (c1,c2)--a b 2 x y #i--1 (c1,c2)--a b ''' #for中也可以有else for x in xrange(3): print x; else: print'哈哈'; ''' 0 1 2 哈哈 ''' for x in xrange(2): print x; if x>=1:break; #结束了,不执行else else: print '哈哈' ''' 0 1 ''' #--------用enumerate()返回序列号的for循环,既遍历索引,又遍历元素----------------- for i,c in enumerate('abcd'): print 's[{0}]={1}'.format(i,c); ''' s[0]=a s[1]=b s[2]=c s[3]=d format用来格式化字符串,当然可以直接 print i,c 结果是 0 a 1 b 2 c 3 d ''' #当然也可以这样 ss = 'abc' for i in range(len(ss)): print 's{0}={1}'.format(i,ss[i]); ''' s0=a s1=b s2=c 与上题比较可以看出[]&{}的不同 ''' #------用list来举例--原理the same------------- list = ['二','大','爷']; #先不用enumerate for i in range(len(list)): print 's[{0}]={1}'.format(i,list[i]); ''' s[0]=二 s[1]=大 s[2]=爷 ''' #现在来用enumerate for index,item in enumerate(list): print 's[{0}={1}]'.format(index,item); #enumerate可以用来指定索引起始值 for index,item in enumerate(list,1): print 's[{0}={1}]'.format(index,item); ''' s[1=二] s[2=大] s[3=爷] ''' ''' enumerate 可以统计文件行数 count = len(open(filepath, 'r').readlines()) 简单慢文件过大不能工作 这样 count = 0 for index, line in enumerate(open(filepath,'r')): count += 1 ''' #-------------------------------------------------------------------------- #------while----------- #python的while中有else分支,循环没中断,则执行else x=3; while x>0: x-=1 print x; else: print"哈哈!" ''' 2 1 0 哈哈! ''' while True: x+=1 if x>3: break print x; else: print '二大爷!'; ''' 1 2 3 ''' #------下面用while来完成猜数字------------- number = 23; running = True; while running: guess = int(raw_input('请输入数字:')); if guess == number: print '祝贺你,猜对了'; running = False; #用来结束循环 也可以用break elif guess<number: print '小了,请重猜'; else: print '大了'; else: print '二大爷驾到'; print '游戏结束'; #------------------------------------------------------ #-----break--- while True: s = raw_input('please entering someing:') if s=='quiet': break; print 'length of the string is:',len(s); print 'over'; ''' please entering someing:i want to length of the string is: 9 please entering someing:you and me length of the string is: 10 please entering someing:quiet over ''' #---补充 range和xrange---------------------- #range(start,end,step)生成序列 print range(3); #[0, 1, 2] print range(1,6,3); #[1, 4] #用法与range相同,不同的是成成不是一个数组,是生成器 print xrange(3); #xrange(3) print list(xrange(3)); #[0, 1, 2] print xrange(0,7,3); # xrange(0, 9, 3) print list(xrange(0,7,3)); #[0, 3, 6] #--二者都用于循环,但是xrange优于range for i in range(0,100): print i; for i in xrange(0,100): print i; #--二者结果一样都是打印0到100,但是运行过程不一样 #--range-- a = range(0,100); print type(a); #<type 'list'> print a; #1,2,3,4,5......98,99 print a[0],a[1],a[2],a[3]; #0 1 2 3 接着写到a[99] #--xrange-- a = xrange(0,100); print type(a); #<type 'xrange'> print a; #xrange(100) print a[0],a[1],a[2],a[3]; #0 1 2 3 接着写到a[99]标签:控制流、demo4
原文地址:http://blog.51cto.com/11927232/2055248