[Python学习] 专题二.条件语句和循环语句的基础知识

简介:

        前面讲述了"专题一.函数的基础知识",而这篇文章讲述的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)终止进程.


        代码中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
out 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知识,如果文章中有错误或不足之处,还请海涵,也希望大家提出意见与君共勉.勿喷~
        (By:Eastmount 2014-9-22 夜7点 原创CSDN http://blog.csdn.net/eastmount/)

目录
相关文章
|
23天前
|
测试技术 Python
Python接口自动化测试框架(基础篇)-- 流程控制之循环语句for&while
本文介绍了Python中的循环语句,包括while和for循环的使用,range()函数的运用,以及continue、break和pass关键字的说明,同时提出了关于while循环是否能与成员运算符结合使用的思考。
30 1
Python接口自动化测试框架(基础篇)-- 流程控制之循环语句for&while
|
24天前
|
Python
揭秘Python编程核心:一篇文章带你深入掌握for循环与while循环的奥秘!
【8月更文挑战第21天】Python中的循环结构——for循环与while循环,是编程的基础。for循环擅长遍历序列或集合中的元素,如列表或字符串;而while循环则在未知循环次数时特别有用,基于某个条件持续执行。本文通过实例展示两种循环的应用场景,比如用for循环计算数字平方和用while循环计算阶乘。此外,还通过案例分析比较了两者在处理用户输入任务时的不同优势,强调了根据实际需求选择合适循环的重要性。
36 0
|
1天前
|
存储 前端开发 索引
11个Python循环技巧
本文介绍了在Python中使用循环创建多个列表的方法,并提供了丰富的代码示例。内容涵盖根据固定数量、条件、数据类型、属性、索引范围、哈希值等不同条件创建列表的技巧,展示了如何灵活运用循环和列表推导式,提高代码的灵活性与可维护性,加速开发流程并提升程序性能。
|
23天前
|
搜索推荐 Python
Python基础编程:冒泡排序和选择排序的另一种while循环实现
这篇文章介绍了Python中冒泡排序和选择排序的实现,提供了使用while循环的替代方法,并展示了排序算法的运行结果。
16 2
Python基础编程:冒泡排序和选择排序的另一种while循环实现
|
17天前
|
前端开发 JavaScript 数据库
python Django教程 之模板渲染、循环、条件判断、常用的标签、过滤器
python Django教程 之模板渲染、循环、条件判断、常用的标签、过滤器
|
22天前
|
程序员 测试技术 开发工具
豆瓣评分7.9!世界级讲师耗时5年整理出的Python学习手册!
Python是一门流行的开源编程语言,广泛用于各个领域的独立程序与脚本化应用中。它不仅免费、可移植、功能强大,同时相对简单,而且使用起来充满乐趣。从软件业界的任意一角到来的程序员,都会发现Python着眼于开发者的生产效率以及软件质量,因此无论你的项目是大还是小,选择Python都将带来战略性的优势。 今天给小伙伴们分享的这份手册讲述了完整的Python语言,力争满足“语言”和“原理”两个方面的需求,并拥有足够的深度以便实用。废话不多说,下面展示给大家。
|
22天前
|
数据采集 数据可视化 Ruby
GitHub星标破万!Python学习教程(超详细),真的太强了!
Python 是一门初学者友好的编程语言,想要完全掌握它,你不必花上太多的时间和精力。 Python 的设计哲学之一就是简单易学,体现在两个方面: 1. 语法简洁明了:相对 Ruby 和 Perl,它的语法特性不多不少,大多数都很简单直接,不玩儿玄学。 2. 切入点很多:Python 可以让你可以做很多事情,科学计算和数据分析、爬虫、Web 网站、游戏、命令行实用工具等等等等,总有一个是你感兴趣并且愿意投入时间的。
|
16天前
|
存储 JSON 测试技术
Python中最值得学习的第三方JSON库
Python中最值得学习的第三方JSON库
|
16天前
|
C语言 Python
Python 实现循环的最快方式(for、while 等速度对比)
Python 实现循环的最快方式(for、while 等速度对比)
|
23天前
|
数据采集 数据挖掘 数据处理
解锁Python数据分析新技能!Pandas实战学习,让你的数据处理能力瞬间飙升!
【8月更文挑战第22天】Python中的Pandas库简化了数据分析工作。本文通过分析一个金融公司的投资数据文件“investment_data.csv”,介绍了Pandas的基础及高级功能。首先读取并检查数据,包括显示前几行、列名、形状和数据类型。随后进行数据清洗,移除缺失值与重复项。接着转换日期格式,并计算投资收益。最后通过分组计算平均投资回报率,展示了Pandas在数据处理与分析中的强大能力。
29 0