您的位置:首页 > 编程语言 > Python开发

python入门系列4―——语句

2017-06-26 10:17 267 查看
个人博客网址

1.条件语句

条件语句是通过一条或者多条判断才决定执行的代码,python指定任何非0和非空(null)为True,0或者null为False。

判断语句可以使用 >,<,==,!=,>=,<=,<>等等

if 判断条件:
执行语句1……
else:
执行语句2……
判断条件为True时,执行语句1,否则执行语句2。

实例:

a=10
b=20
if a>b:
print "a大于b"
else:
print "a小于b"
结果:

a小于b

当判断条件为多种时候,可以使用:

if 判断条件1:
执行语句1……
elif 判断条件2:
执行语句2……
elif 判断条件3:
执行语句3……
else:
执行语句4……
例如:

a="python"
b="python1"
c="python2"
d="python3"
if a==b:
print "a、b一样"
elif a==c:
print "a、c一样"
elif a==d:
print "a、d一样"
else:
print "a和bcd都不一样"
结果:

a和bcd都不一样


如果判断条件需要多个条件同事满足,可以使用or(或),and(并且)

例如:

a=5
if a>=0 and a<=10:
print "a在0-10之间"
else:
print "a不在0-10之间"

if a>10 or a<0:
print "a不在0-10之间"
else:
print "a在0-10之间"
结果:

a在0-10之间
a在0-10之间
这里需要说明下,python对and和or采用的是短路规则,也就是and需要都满足,那么条件会全部执行。or是或,所以第一个条件成立,其实整个判断就是成立,那么python就不行执行a<0这句,如果第一条件是False才会执行之后的条件判断。

PS:如果我们执行语句有多句,需要格式化对齐

a=5
if a>=0 and a<=10:
print "a在0-10之间"
print "a在0-10之间"   #如果这句顶着开头写是不行的,需要TABLE对齐
else:
print "a不在0-10之间"


if测试

>>> data

{'a':1,'c':3,'b':2 }

>>>data['e']=99

>>>data

{'a':1,'c':3,'b':2,'e':99 }

>>>data['f']     #<----- Error

>>> 'f' in data

False

>>> if not 'f' in data:

print('Missing')

Missing

>>> value = data.get(‘X’,0)

>>>value

0

>>> value = data['X'] if 'X' in D else 0

>>> valur

0

2.循环语句

当初重复相通的语句可以使用村换语句。判断条件可以是任何表达式,任何非0,非空为True。

while循环,形式:

while 判断条件:
执行语句……


判断条件为True时,执行语句

我们想输出1到10,例如:

a=0
while a<10:
a+=1
print a
结果:

1
2
3
4
5
6
7
8
9
10


循环语句还有2个重要命令,continue和break。

continue跳过本次循环

break退出循环

我们使用continue来输出1-10之前的偶数:

a=0
while a<10:
a+=1
if a%2==1:
continue #如果是奇数 跳过此次循环
print a
break输入1-10:

a=0
while 1: #判断条件为1表示恒成立,会一直循环,所以使用break可以跳出循环
a+=1
print a
if a>=10:
break
循环中使用else语句,表示条件不满足的时候执行,例如:
a=0
while a<10:
a+=1
print a
else:
print "Finish"


for循环语句

for循环语句主要用于遍历序列,比如一个列表list或者一个字符串等。

语法格式:

for 变量 in 序列:

   执行语句...

具体例子如下:

mylist=["python","pyn","on","thon"]
for x in mylist:
print x
结果:

python
pyn
on
thon


在 python 中,for … else 表示这样的意思,for 中的语句和普通的没有区别,else 中的语句会在循环正常执行完(即 for 不是通过 break 跳出而中断的)的情况下执行,while … else 也是一样。

or num in range(10,20):  # 想像成10-20的list
for i in range(2,num): # 循环嵌套语句
if num%i == 0:      # 确定第一个因子
j=num/i          # 计算第二个因子
print '%d 等于 %d * %d' % (num,i,j)
break            # 跳出当前循环
else:                  # 循环的 else 部分
print num, '是一个质数'
range()返回一个序列的数

结果:

10 等于 2 * 5
11 是一个质数
12 等于 2 * 6
13 是一个质数
14 等于 2 * 7
15 等于 3 * 5
16 等于 2 * 8
17 是一个质数
18 等于 2 * 9
19 是一个质数


[× for循环看起来与之前的列表解析表达式一样,他们都是通用迭代工具,都遵守迭代协议(python中的一个概念,表示在内存中物理存储的序列,或一个迭代操作情况下爱每次产生一个元素的概念,表示在内存中物理存储的序列,或一个在迭代操作情况下每次产生一个元素的对象)后面会继续补充

从左到右的扫描一个对象的每个python工具都使用迭代协议

]

计算一列数字的平方

>>> data = [x ** 2 for x in [1,2,3,4,5]]

>>>data

[1,4,9,16,25]

pass 语句

python pass是空语句,不做任何事情,一般用做占位语句。

for letter in 'Python':
if letter == 'h':
pass
print '这是pass块'
print '当前字母 :', letter





                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python