Python基础之条件和循环
阅读目录
一.if语句
- 1.1功能
- 1.2语法
- 1.2.1:单分支,单重条件判断
- 1.2.2:单分支,多重条件判断
- 1.2.3:if + else
- 1.2.4:多分支if + elif +else
- 1.2.5if语句小结
- 1.3案例
- 1.4三元表达式
二.while语句
- 2.1功能
- 2.2语法
- 2.2.1:基本语法
- 2.2.2:计数循环
- 2.2.3:计数无限循环
- 2.2.4:while与break,continue,else连用
- 2.2.5:while语句小结
- 2.3:案例
三.for语句
- 3.1功能语法
- 3.2语法
- 3.2.1:基本语法
- 3.2.2:遍历序列类型
- 3.2.3:遍历可迭代对象或迭代器
- 3.2.4:for基于range()实现计数循环
- 3.2.5:for与break,continue,else
- 3.2.6:for语句小结
- 3.3:案例
四.练习
一.if语句
1.1功能
计算机又被称作电脑,意指计算机可以像人脑一样,根据周围环境条件(即expession)的变化做出不同的反应(即执行代码)
if语句就是来控制计算机实现这一功能
1.2语法
1.2.1:单分支,单重条件判断
if 'aaa':
print ('yes')
- 注释:如果aaa为真,则执行print,打印出yes
1.2.2:单分支,多重条件判断
- i = 0
if not 'test' or 111 >=10:
print ('continue')
i += 1
1.2.3:if + else
- if 'expression':
print ('yes')
else:
print ('no')
1.2.4:多分支if +elif+else
- if 'expression':
print ('one')
elif 'two':
print('two')
elif 'thress':
print('three')
else:
print ('no')
1.2.5: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.expression可以是返回值为布尔值的表达式(例x>1,x is not None)的形式,也可是单个标准对象(例x=1;if x: print('ok')
9.所有标准对象均可用布尔测试,同类型的对象之间可以比较大小。每个对象天生具有布尔True或False值。空对象、值为零的任何数字或者Null对象None的布尔值都是False
下列对象的布尔值是False
1.3案例
- #!/usr/bin/env python
- #_*_coding:utf-8_*_
- '''
- 提示输入用户名和密码
- 验证用户名和密码
- 如果错误,则输出用户名或密码错误
- 如果成功,则输出 欢迎,XXX!
- '''
- import getpass
- name=input('用户名: ')
- passwd=getpass.getpass('密码: ')
- if name == 'alex' and passwd == '':
- print('土豪里边请')
- else:
- print('土鳖请走开')
- 用户登陆验证
- #!/usr/bin/env python
- #_*_coding:utf-8_*_
- '''
- 根据用户输入内容打印其权限
- alex --> 超级管理员
- eric --> 普通管理员
- tony,rain --> 业务主管
- 其他 --> 普通用户
- '''
- name = input('请输入用户名:')
- if name == "alex":
- print("超级管理员")
- elif name == "eric":
- print("普通管理员")
- elif name == "tony" or name == "rain":
- print("业务主管")
- else:
- print("普通用户")
- 根据用户输入内存输出权限
1.4三元表达式
- 案例一
- >>> active=1
- >>> print('service is active') if active else print('service is inactive')
- service is active
案例二
- >>> x=1
- >>> y=2
- >>> smaller=x if x < y else y
- >>> smaller
- 1
二.while语句
2.1功能
while循环的本质就是让计算机在满足某一条件的前提下去重复做同一件事情(即while循环为条件循环,包含:1.条件计数循环,2条件无限循环)
这一条件指:条件表达式
同一件事指:while循环体包含的代码块
重复的事情例如:从1加到10000,求1-10000内所有奇数,服务等待连接
2.2语法
2.2.1:基本语法
- while True:
print ('重复循环')
注释:重复执行‘重复循环’,直到‘重复循环’不再为真为止
2.2.2计数循环
- count = 0
while count < 9:
print ('the loop is %s'%count)
count += 1
2.2.3
- count=0
- while True:
- print('the loop is %s' %count)
- count+=1
- tag=True
- count=0
- while tag:
- if count == 9:
- tag=False
- print('the loop is %s' %count)
- count+=1
2.2.4:while与break,continue,else连用
- count = 0
- while count <9: #计数限制必须小于9
- count +=1
- if count == 3:
- print('zaijian')
- break #当count = 3的时候,终止本次循环,并退出
- print ('the loop is %s'%count) #此句不执行
Break跳出本层循环
- count=0
- while (count < 9):
- count+=1
- if count == 3:
- print('跳出本次循环,即这一次循环continue之后的代码不再执行,进入下一次循环')
- continue
- print('the loop is %s' %count)
- continue跳出本次循环
continue跳出本次循环并进入下一次循环
- count=0
- while (count < 9):
- count+=1
- if count == 3:
- print('跳出本次循环,即这一次循环continue之后的代码不再执行,进入下一次循环')
- continue
- print('the loop is %s' %count)
- else:
- print('循环不被break打断,即正常结束,就会执行else后代码块')
- count=0
- while (count < 9):
- count+=1
- if count == 3:
- print('跳出本次循环,即这一次循环continue之后的代码不再执行,进入下一次循环')
- break
- print('the loop is %s' %count)
- else:
- print('循环被break打断,即非正常结束,就不会执行else后代码块')
- else在循环完成后执行,break会跳过else
else语句(存在疑问)
2.2.5案例
- #import getpass
- account_dict={'alex':'','eric':'','rain':''}
- count = 0
- while count < 3:
- name=input('用户名: ').strip()
- passwd=input ('密码: ')
- 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循环
3.1功能
for循环提供了python中最强大的循环接口(for循环是一种迭代循环机制,而while循环是条件循环,迭代即重复相同的逻辑操作,每次操作都是基于上一次的结果而进行的)
3.2.1:基本语法
for iter_var in iterable:
suite_to_repeat
注解:每次循环, iter_var 迭代变量被设置为可迭代对象(序列, 迭代器, 或者是其他支持迭代的对 象)的当前元素, 提供给 suite_to_repeat 语句块使用.
3.2.2:遍历序列的类型
- name_list=['alex','eric','rain','xxx']
- #通过序列项迭代
- for i in name_list:
- print(i)
- #通过序列索引迭代
- for i in range(len(name_list)):
- print('index is %s,name is %s' %(i,name_list[i]))
- #基于enumerate的项和索引
- for i,name in enumerate(name_list,2):
- print('index is %s,name is %s' %(i,name))
例子
3.2.3:遍历可迭代或迭代器
迭代对象:就是一个具有next()方法的对象,obj.next()每执行一次,返回一行内容所有内容迭代完后,
迭代器引发一 个 StopIteration 异常告诉程序循环结束. for 语句在内部调用 next() 并捕获异常.
for循环遍历迭代器或可迭代对象与遍历序列的方法并无二致,只是在内部做了调用迭代器next(),并捕获异常,终止循环的操作
很多时候你根本无法区分for循环的是序列对象还是迭代器
- >>> f=open('a.txt','r')
- for i in f:
- print(i.strip())
- hello
- everyone
- sb
3.2.4:for基于range()实现计数循环
range()语法
range(start,end,step=1):顾头不顾尾
- range(10):默认step=1,start=0,生成可迭代对象,包含[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
- range(1,10):指定start=1,end=10,默认step=1,生成可迭代对象,包含[1, 2, 3, 4, 5, 6, 7, 8, 9]
- range(1,10,2):指定start=1,end=10,step=2,生成可迭代对象,包含[1, 3, 5, 7, 9]
- >>> list(range(10))
- [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
- >>> for i in range(10):
- print(i)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
注:for基于range()实现计数循环,range()生成可迭代对象,说明for循环本质还是一种迭代循环
3.2.5:for与break,continue,else
同while
3.2.6: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)
四.练习
- 一、元素分类
- 有如下值集合 [11,22,33,44,55,66,77,88,99,90...],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。
- 即: {'k1': 大于66的所有值, 'k2': 小于66的所有值}
- 二、查找
- 查找列表中元素,移除每个元素的空格,并查找以 a或A开头 并且以 c 结尾的所有元素。
- li = ["alec", " aric", "Alex", "Tony", "rain"]
- tu = ("alec", " aric", "Alex", "Tony", "rain")
- dic = {'k1': "alex", 'k2': ' aric', "k3": "Alex", "k4": "Tony"}
- 三、输出商品列表,用户输入序号,显示用户选中的商品
- 商品 li = ["手机", "电脑", '鼠标垫', '游艇']
- 四、购物车
- 功能要求:
- 要求用户输入总资产,例如:2000
- 显示商品列表,让用户根据序号选择商品,加入购物车
- 购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。
- 附加:可充值、某商品移除购物车
- goods = [
- {"name": "电脑", "price": 1999},
- {"name": "鼠标", "price": 10},
- {"name": "游艇", "price": 20},
- {"name": "美女", "price": 998},
- ]
- 五、用户交互,显示省市县三级联动的选择
- dic = {
- "河北": {
- "石家庄": ["鹿泉", "藁城", "元氏"],
- "邯郸": ["永年", "涉县", "磁县"],
- }
- "河南": {
- ...
- }
- "山西": {
- ...
- }
- }
Python基础之条件和循环的更多相关文章
- Python基础:条件判断 &&循环
1:条件判断 2:循环 2.1:for 2.2 while 小结: continue :跳出本次循环 进行下次循环, break :结束循环体.
- 『Python基础-7』for循环 & while循环
『Python基础-7』for循环 & while循环 目录: 循环语句 for循环 while循环 循环的控制语句: break,continue,pass for...else 和 whi ...
- 【Python】-NO.99.Note.4.Python -【Python3 条件语句 循环语句】
1.0.0 Summary Tittle:[Python]-NO.99.Note.4.Python -[Python3 条件语句 循环语句] Style:Python Series:Python Si ...
- python基础之条件控制与循环
Python3 条件控制 Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块. 计算机之所以能做很多自动化的任务,因为它可以自己做条件判断. 比如,输入用户 ...
- Python基础__Python语法基础、条件、循环
之前主要讨论的是Python的对象,这本节将第一次走进Python的语言之旅,将会介绍条件与循环.本节我们将会涉及到复合语句,简要介绍一下Python的语法规则是有必要的Python语法规则 1.语句 ...
- Python基础:条件判断与循环的两个要点
一.条件判断: Python中,条件判断用if语句实现,多个条件判断时用if...elif实现:看下面一段程序 #python 3.3.5 #test if...elif age = 20 if ag ...
- Python基础之条件语句和循环
条件语句 Python中的条件语句分为 if ...else . if ...elif...else 以及if ...else 的嵌套使用: username = input('请输入您的用户名:' ...
- python学习第六天:python基础(条件判断、循环)
条件判断 格式 if <条件判断1>: <执行1> elif <条件判断2>: <执行2> elif <条件判断3>: <执行3> ...
- #7 Python顺序、条件、循环语句
前言 上一节讲解了Python的数据类型和运算,本节将继续深入,涉及Python的语句结构,相当于Python的语法,是以后编写程序的重要基础! 一.顺序语句 顺序语句很好理解,就是按程序的顺序逻辑编 ...
随机推荐
- escape,encodeURI,encodeURIComponent的区别
escape是对字符串进行编码而另外两种是对URL. encodeURI方法不会对下列字符编码 ASCII字母 数字 ~!@#$&*()=:/,;?+'encodeURIComponent方法 ...
- 使用sql server 链接服务器
在我们的日常应用场景中经常会碰访问不同服务器上的数据库,即跨服务器访问操作不同的服务器上的SQL Sever数据库, 这个时候Sql Server的链接服务器就非常实用,创建SQL语句如下: --重新 ...
- jvm性能监控与故障处理工具
jdk为我们提供了一系列的jvm性能监控和故障处理工具,在这里根据学习进度进行整理记录.便于之后查阅 1.jps 虚拟机进程工具 类似于Linux系统中的ps命令,用于查看虚拟机进程,常用的有以下功 ...
- C# MVC 页面静态化导致的问题
在设置页面静态化的路由,代码如 //静态路由 routes.MapRoute( name: "html", url: "{controller}/{action}.htm ...
- 如何理解C#委托
一:从下面的例子开始,理解委托变量本质 如上图,Condition是我定义的委托变量.这个委托变量的本质就是地址变量(即C语言当中的指针变量),它保存的是方法的入口地址. 当函数的调用者传递实参给这个 ...
- <table>标签隐藏内边框与外边框
属性名称 属性值 说明 frame void 不显示表格的 ...
- 所有的cursor图标
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 老贼博客php教程从零学习PHP开始写作,顺祝新同事快乐!
随笔是不是这样写的,好似是吧! 老贼博客php教程从零学习PHP开始写作,顺祝新同事快乐! 谢谢支持,点赞!
- paper 116:自然图像抠图/视频抠像技术梳理(image matting, video matting)
1. Bayesian Matting, Chuang, CVPR 2001.http://grail.cs.washington.edu/projects/digital-matting/paper ...
- 论文阅读(Xiang Bai——【PAMI2017】An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application to Scene Text Recognition)
白翔的CRNN论文阅读 1. 论文题目 Xiang Bai--[PAMI2017]An End-to-End Trainable Neural Network for Image-based Seq ...