Python 专题二 条件语句和循环语句的基础知识


Posted in Python onMarch 19, 2017

前面讲述了"专题一.函数的基础知识",而这篇文章讲述的Python的条件语句和循环语句的基础知识.主要内容包括:

1.条件语句:包括单分支、双分支和多分支语句,if-elif-else

2.循环语句:while的使用及简单网络刷博器爬虫

3.循环语句:for的使用及遍历列表、元组、文件和字符串

前言: 语句块

在讲诉条件语句、循环语句和其他语句之前,先来补充语句块知识.(前面讲函数时已经用到过)

语句块并非一种语句,它是在条件为真(条件语句)时执行或执行多次(循环语句)的一组语句.在代码前放置空格或tab字符来缩进语句即可创建语句块.很多语言特殊单词或字符(如begin或{)来表示一个语句块的开始,用另外的单词或字符(如end或})来表示语句块的结束.

而在Python中使用冒号(:)来标识语句块的开始,块中每一个语句都是缩进的(缩进量相同).当回退到和已经闭合的块一样的缩进量时,就表示当前块已经结束.

一. 条件语句if

if分支语句表达式基本类型常见的有一下三种:

1.单分支语句

它的基本格式是:

if condition:
   statement
   statement

需要注意的是Ptthon中if条件语句条件无需圆括号(),条件后面需要添加冒号,它没有花括号{}而是使用TAB实现区分.其中condition条件判断通常有布尔表达式(True|False 0-假|1-真 非0即真)、关系表达式(>= <= == !=)和逻辑运算表达式(and or not).

2.双分支语句

它的基本格式是:

if condition:
   statement
   statement
   else:
   statement
   statement

3.多分支语句

if多分支由if-elif-else组成,其中elif相当于else if,同时它可以使用多个if的嵌套.具体代码如下所示:

#双分支if-else 
count = input("please input:") 
print 'count=',count 
if count>80: 
 print 'lager than 80' 
else: 
 print 'lower than 80' 
print 'End if-else' 
 
#多分支if-elif-else 
number = input("please input:") 
print 'number=',number 
if number>=90: 
 print 'A' 
elif number>=80: 
 print 'B' 
elif number>=70: 
 print 'C' 
elif number>=60: 
 print 'D' 
else: 
 print 'No pass' 
print 'End if-elif-else' 
 
#条件判断 
sex = raw_input("plz input your sex:") 
if sex=='male' or sex=='m' or sex=='man': 
 print 'Man' 
else: 
 print 'Woman'

二. 循环语句while

while循环语句的基本格式如下:

while condition:
     statement
     statement
    else:
     statement
     statement

其中判断条件语句condition可以为布尔表达式、关系表达式和逻辑表达式,else可以省略(此处列出为与C语言等区别).举个例子:

#循环while计数1+2+..+100 
i = 1 
s = 0 
while i <= 100: 
 s = s+i 
 i = i+1 
else: 
 print 'exit while' 
print 'sum = ',s 
 
''''' 
输出结果为:exit while 
 sum = 5050 
'''

它的输出结果为5050,当时当i加到101时,由于i>100将执行else语句.

需要注意的是Python中使用井号(#)表示行注释,使用三引号('''...''')表示多行注释.区别于C/C++的//行注释和/**/多行注释.

下面讲述一段代码刷博器爬虫,先给出代码再讲解:

import webbrowser as web 
import time 
import os 
i=0 
while i<5: 
 web.open_new_tab('http://andy111.blog.sohu.com/46684846.html') 
 i=i+1 
 time.sleep(0.8) 
else: 
 os.system('taskkill /F /IM iexplore.exe') 
print 'close IE'

在搜狐博客或新浪博客中只要在新窗口打开就会增加浏览访问次数,所以上面的代码主要是通过调用webbrowser浏览器的open_new_tab打开新的窗口,而CSDN不行(估计绑定用户或ip有关).

上面代码中windoes命令taskkill的作用是杀掉应用程序IE浏览器,在DOS中输入"taskkill /F /IM iexplore.exe"可以强行关闭应用程序(chrome.exe或qq.exe),其中/F表示强行终止程序,/IM表示图像.在该程序中主要的作用是清除内存,防止内存消耗太大出现死机现象;但是需要调用import os的system()函数打开,而Linux下用kill命令(kill -pid或killall)终止进程.

Python 专题二 条件语句和循环语句的基础知识

代码中time.sleep(seconds)表示"Delay execution for a given number of seconds.",从打开到加载有一定时间.

当你需要大量增加浏览量时可以使用两层循环嵌套,每次打开5个网页在关闭在执行100次,这样你的内存也不会因为消耗太大出现死机现象,也可以使用import random count=random.randint(20,40)产生20到40随机数来执行外层循环.代码比较简单,主要是想通过它介绍些Python的基础知识.但是初次打开IE浏览器会出现打开次数不一致的错误.why?

三. 循环语句for

该循环语句的基础格式为:

for target in sequences:
    statements

target表示变量名,sequences表示序列,常见类型有list(列表)、tuple(元组)、strings(字符串)和files(文件).

Python的for没有体现出循环的次数,不像C语言的for(i=0;i<10;i++)中i循环计数,Python的for指每次从序列sequences里面的数据项取值放到target里,取完即结束,取多少次循环多少次.其中in为成员资格运算符,检查一个值是否在序列中.同样可以使用break和continue跳出循环.

1.字符串循环

s1 = 'Eastmount of CSDN' 
for c in s1: 
 print c,

注意:如果在print结尾加上逗号,那么接下来语句会与前一条语句在同一行打印.故上面输出显示一行.

2.列表循环

list1 = [1,3,4,5,'x',12.5] 
i = 0 
for val in list1: 
 print format(i,'2d'),val 
 i = i+1 
else: 
 print 'out for'

注意:列表List由一堆数据用逗号间隔,方括号括起,可以是同类型也可以是不同类型.format(i,'2d')相当于输出两位,不足的补空格.当输出0-9时显示"口0",而输出10-99时显示"10"实现对其功能.输出结果如下:

1 3 
2 4 
3 5 
4 x 
5 12.5 
ut for

因为迭代(循环另一种说法)某范围的数字是很常用的,所以有个内建的范围函数range供使用.列表中for n in [1,2,3,4,5,6,7,8]相当于listNum=range(1,9).其格式"range(start, stop[, step]) -> list of integers",它的工作方式类似于分片,它包含下限(本例range(1,9)中为1),但不包含上限(本例中9),如果希望下限为0,可以只提供上限如range(4)=[0,1,2,3].

产生1到100的数字range(1,101),输出1到100的奇数range(1,101,2),输出1到100的偶数range(2,101,2).

3.元组循环

tup = (1,2,3,4,5) 
for n in tup: 
 print n 
else: 
 print 'End for'

元组tuple每个数据项不可修改,只可读,而序列list[1,2,3,4]可以修改.

4.文件循环

help(file.read)返回一个字符串."read([size]) -> read at most size bytes, returned as a string."

help(file.readlines)返回一个列表."readlines([size]) -> list of strings, each a line from the file."相当于读n行,由n次readline组成,读出的字符串构成列表.

help(file.readline)从某个文件读一行."readline([size]) -> next line from the file, as a string."

#文件循环遍历三种对比 
for n in open('for.py','r').read(): 
 print n, 
print 'End' 
for n in open('for.py','r').readlines(): 
 print n, 
print 'End' 
for n in open('for.py','r').readline(): 
 print n, 
print 'End'

输出显示:

#第一个read()输出:每个字符间有个空格 
s 1 = ' E a s t m o u n t o f C S D N ' 
f o r c i n s 1 : 
.... 
End 
#第二个readlines()输出:读取的是一行 
s1 = 'Eastmount of CSDN' 
for c in s1: 
.... 
End 
#第三个readline()输出:读取for.py文件第一行并输出 
s 1 = ' E a s t m o u n t o f C S D N ' 
End

如果需要文件输出也可以通过下面代码实现,使用w会覆盖而a+是追加功能,后面讲文件详细叙述.

for r in open('test.txt','r').readlines():
 open('test.txt','a+').write(c)

PS:我主要是通过《Python基础教程》和"51CTO学院 智普教育的python视频"学习.所以文中引用了很多视频中的知识、书籍知识和自己的知识,感谢那些作者和老师,希望文章对大家有所帮助,才开始学习python知识,如果文章中有错误或不足之处,还请海涵,也希望大家提出意见与君共勉.勿喷~

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Python 相关文章推荐
python中反射用法实例
Mar 27 Python
在Heroku云平台上部署Python的Django框架的教程
Apr 20 Python
Python和Perl绘制中国北京跑步地图的方法
Mar 03 Python
解决pyqt中ui编译成窗体.py中文乱码的问题
Dec 23 Python
Django中的Signal代码详解
Feb 05 Python
python 产生token及token验证的方法
Dec 26 Python
Python之循环结构
Jan 15 Python
Django框架设置cookies与获取cookies操作详解
May 27 Python
TensorFlow实现打印每一层的输出
Jan 21 Python
Python 安装 virturalenv 虚拟环境的教程详解
Feb 21 Python
基于SpringBoot构造器注入循环依赖及解决方式
Apr 26 Python
python爬取网页版QQ空间,生成各类图表
Jun 02 Python
解决Python requests 报错方法集锦
Mar 19 #Python
python字符串str和字节数组相互转化方法
Mar 18 #Python
Python执行时间的计算方法小结
Mar 17 #Python
python django事务transaction源码分析详解
Mar 17 #Python
Python自动生产表情包
Mar 17 #Python
Python实现的异步代理爬虫及代理池
Mar 17 #Python
Python 专题一 函数的基础知识
Mar 16 #Python
You might like
hessian 在PHP中的使用介绍
2010/12/13 PHP
PHP高自定义性安全验证码代码
2011/11/27 PHP
php数组删除元素示例
2014/03/21 PHP
PHP经典面试题集锦
2015/03/19 PHP
PHP数组与对象之间使用递归实现转换的方法
2015/06/24 PHP
简单解析PHP程序的运行流程
2016/06/23 PHP
CL vs ForZe BO5 第四场 2.13
2021/03/10 DOTA
基于jQuery的公告无限循环滚动实现代码
2012/05/11 Javascript
jquery插件制作 手风琴Panel效果实现
2012/08/17 Javascript
JavaScript获取XML数据附示例截图
2014/03/05 Javascript
JavaScript实现动态创建CSS样式规则方案
2014/09/06 Javascript
Javascript冒泡排序算法详解
2014/12/03 Javascript
基于Javascript实现二级联动菜单效果
2016/03/04 Javascript
input获取焦点时底部菜单被顶上来问题的解决办法
2017/01/24 Javascript
推荐10款扩展Web表单的JS插件
2017/12/25 Javascript
Vue 拦截器对token过期处理方法
2018/01/23 Javascript
js核心基础之构造函数constructor用法实例分析
2019/05/11 Javascript
微信小程序上传图片到php服务器的方法
2019/05/23 Javascript
15 分钟掌握vue-next响应式原理
2019/10/13 Javascript
[01:05:56]2018DOTA2亚洲邀请赛3月29日 小组赛A组 Newbee VS VG
2018/03/30 DOTA
[04:15]DOTA2-DPC中国联赛 正赛 Ehome vs Aster 选手采访
2021/03/11 DOTA
使用Python的datetime库处理时间(RPA流程)
2019/11/24 Python
Python如何批量生成和调用变量
2020/11/21 Python
css3的@media属性实现页面响应式布局示例代码
2014/02/10 HTML / CSS
PHP高级工程师面试问题推荐
2013/01/18 面试题
迟到检讨书800字
2014/01/13 职场文书
党员领导干部廉洁从政承诺书
2014/03/27 职场文书
五水共治一句话承诺
2014/05/30 职场文书
工作批评与自我批评范文
2014/10/16 职场文书
投标邀请书范本
2015/02/02 职场文书
2015年出纳个人工作总结
2015/04/02 职场文书
2015年化验室工作总结
2015/04/23 职场文书
正规欠条模板
2015/07/03 职场文书
钓鱼岛事件感想
2015/08/11 职场文书
2016七夕情人节感言
2015/12/09 职场文书
React Fragment介绍与使用详解
2021/11/11 Javascript