一、if语句
1、if后表达式返回值为true则执行其子代码块,然后此if 语句到此终结,否则进入下一分支判断,直到满足其中一个分支,执行后终结if
2、expression可以引入运算符:not,and,or,is,is not
3、多重expression为加强可读性最好用括号包含
4、if与else缩进级别一致,表示是一对
5、elif与else都是可选的
6、一个if判断最多只有一个else但是可以有多个elif
7、else表示if判断的终结
8、expession可以是返回值为布尔值的表达式(例如:x>1,x is not None)的形式,也可以是单个标准对象(例如:x=1;if x :print('ok'))
9、所有标准对象均可以用于布尔测试,同类型的对象之间可以比较大小。每个对象天生具有布尔True或False值。空对象、值为零的任何数字或者Null对象None的布尔值都是False。
案列:
#!/usr/bin/env python
#_*_coding:utf-8_*_
'''
提示输入用户名和密码
验证用户名和密码
如果错误,则输出用户名或密码错误
如果成功,则输出 欢迎,XXX!
'''
import getpass
name=input('用户名: ')
passwd=getpass.getpass('密码: ')
if name == 'alex' and passwd == '123':
print('土豪里边请')
else:
print('土鳖请走开')
用户登陆验证
二、while语句
while循环的本质就是让计算机在满足某一条件的前提下重复做同一件事情(既while循环为条件循环,包含:1、条件计数循环,2、条件无限循环)
这一条件是指:条件表达式
同一件事是指:while循环体包含的代码块
重复的事情例如:从1加到1000.求1-1000内所有奇数,服务等待链接等
计数循环
count=0
while (count < 9):
print('the loop is %s' %count)
count+=1
无限循环
count=0
while True:
print('the loop is %s' %count)
count+=1
条件为真就重复执行代码,直到条件不在为真,而if是条件为真,只执行一次代码就结束了
while有计数循环和无限循环两种,无限循环可以用于某一服务的主程序一直处于等待被连接状态
break代表跳出本层循环,continue代表跳出本次循环
while循环在没有被break打断的情况下结束,会执行else后代码
案列:
import getpass
account_dict={'alex':'123','eric':'456','rain':'789'}
count = 0
while count < 3:
name=input('用户名: ').strip()
passwd=getpass.getpass('密码: ')
if name in account_dict:
real_pass=account_dict.get(name)
if passwd == real_pass:
print('登陆成功')
break
else:
print('密码输入错误')
count+=1
continue
else:
print('用户不存在')
count+=1
continue
else:
print('尝试次数达到3次,请稍后重试')
用户登陆验证
三、for语句
for循环提供了python中最强大的循环结构(for循环是一种迭代循环机制,而while循环是条件循环,迭代部分重复相同的逻辑操作,每次操作都是基于上一次的结果而进行的)
迭代对象:就是一个具有next()方法的对象,obj.next()每执行一次,返回一行内容所有内容迭代完后,
迭代器引发一 个 StopIteration 异常告诉程序循环结束. for 语句在内部调用 next() 并捕获异常.
for循环遍历迭代器或可迭代对象与遍历序列的方法并无二致,只是在内部做了调用迭代器next(),并捕获异常,终止循环的操作
很多时候你根本无法区分for循环的是序列对象还是迭代器
for语法小结:
for循环为迭代循环
可遍历序列成员(字符串,列表,元祖)
可遍历任何可迭代对象(字典,文件等)
可以用在列表解析和生成器表达式中
break,continue,else在for中用法与while一致
案例:
albums = ('Poe', 'Gaudi', 'Freud', 'Poe2')
years = (1976, 1987, 1990, 2003)
#sorted:排序
for album in sorted(albums):
print(album)
#reversed:翻转
for album in reversed(albums):
print(album)
#enumerate:返回项和
for i in enumerate(albums):
print(i)
#zip:组合
for i in zip(albums,years):
print(i)