关于Python条件语句和循环语句的基础知识介绍

高洛峰
发布: 2017-03-20 09:17:22
原创
1797 人浏览过

本文主要介绍了Python条件语句和循环语句的基础知识。主要内容包括: 1.条件语句:包括单分支、双分支和多分支语句,if-elif-else;2.循环语句:while的使用及简单网络刷博器爬虫;3.循环语句:for的使用及遍历列表、元组、文件和字符串。

这篇文章讲述的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 &#39;count=&#39;,count 
if count>80: 
 print &#39;lager than 80&#39; 
else: 
 print &#39;lower than 80&#39; 
print &#39;End if-else&#39; 
 
#多分支if-elif-else 
number = input("please input:") 
print &#39;number=&#39;,number 
if number>=90: 
 print &#39;A&#39; 
elif number>=80: 
 print &#39;B&#39; 
elif number>=70: 
 print &#39;C&#39; 
elif number>=60: 
 print &#39;D&#39; 
else: 
 print &#39;No pass&#39; 
print &#39;End if-elif-else&#39; 
 
#条件判断 
sex = raw_input("plz input your sex:") 
if sex==&#39;male&#39; or sex==&#39;m&#39; or sex==&#39;man&#39;: 
 print &#39;Man&#39; 
else: 
 print &#39;Woman&#39;
登录后复制

二. 循环语句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 &#39;exit while&#39; 
print &#39;sum = &#39;,s 
 
&#39;&#39;&#39;&#39;&#39; 
输出结果为:exit while 
 sum = 5050 
&#39;&#39;&#39;
登录后复制

它的输出结果为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(&#39;http://andy111.blog.sohu.com/46684846.html&#39;) 
 i=i+1 
 time.sleep(0.8) 
else: 
 os.system(&#39;taskkill /F /IM iexplore.exe&#39;) 
print &#39;close IE&#39;
登录后复制

在搜狐博客或新浪博客中只要在新窗口打开就会增加浏览访问次数,所以上面的代码主要是通过调用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 = &#39;Eastmount of CSDN&#39; 
for c in s1: 
 print c,
登录后复制

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

2.列表循环

list1 = [1,3,4,5,&#39;x&#39;,12.5] 
i = 0 
for val in list1: 
 print format(i,&#39;2d&#39;),val 
 i = i+1 
else: 
 print &#39;out for&#39;
登录后复制

注意:列表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 &#39;End for&#39;
登录后复制

元组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(&#39;for.py&#39;,&#39;r&#39;).read(): 
 print n, 
print &#39;End&#39; 
for n in open(&#39;for.py&#39;,&#39;r&#39;).readlines(): 
 print n, 
print &#39;End&#39; 
for n in open(&#39;for.py&#39;,&#39;r&#39;).readline(): 
 print n, 
print &#39;End&#39;
登录后复制

输出显示:

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

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

 for r in open(&#39;test.txt&#39;,&#39;r&#39;).readlines():
 open(&#39;test.txt&#39;,&#39;a+&#39;).write(c)
登录后复制


以上是关于Python条件语句和循环语句的基础知识介绍的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!