# -*- 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]
控制流
原文:http://blog.51cto.com/11927232/2055248