转自:微点阅读  https://www.weidianyuedu.com

一、python语句简介(python是面向过程、基于语句的语言)

1、python程序结构:

程序由模块构成

模块由语句构成

语句由表达式构成

表达式建立并处理对象

2、常用python语句集

语句

角色

例子

赋值

创建引用值

a,b,c=’good’,’bad’,’ugly’

调用

执行函数

log.write(“spam,ham\n”)

print

打印对象

print ‘the killer’,joke

if/elif/else

选择动作

if ‘python’ in text:

print text

for/else

序列迭代

for x in mylist:

print x

while/else

一般循环

while x>y:

print x

pass

空占位符

while True:

pass

break/continue

循环跳跃

while True:

if not line:break

try/except/finally

捕捉异常

try:

action()

except:

print ‘action error’

raise

触发异常

raise endSearch,location

import,from

模块读取

import sys

from sys import stdin

def,return,yield

创建函数

def f(a,b,c=1,*d):

return a+b+c+d[0]

def gen(n)

for I in n,yield i*2

class

创建对象

class subclass(Superclass):

staticdata=[]

global

命名空间空间

def function():

global x,y

x=’new’

del

删除引用

del data[k]

exec

执行代码字符串

exec “import” +modname

exec code in gdict,ldict

assert

调试检查

assert x>y

with/as

环境管理器

with open(‘data’) as myfile:

process(myfile)

3、try语句:

eg:

while True:

reply=raw_input(‘Enter text:’)

if reply==’stop’:

break

try:

num=int(reply)

except:

print ‘Bad!’*8

else:

print int(reply)**2

print ‘Bye!’

解释:try关键字后面跟上我们尝试运行的代码块,再跟except部分,给异常处理

器代码,再接else部分,如果try部分没有异常,就执行这一部分代码,如

有异常发生就执行except部分代码

二、赋值、表达式、打印语句

1、赋值语句

(1)赋值语句专门特性:

a、赋值对象建立专门引用值,赋值语句总是建立对象的引用值而不是拷

贝;

b、变量名会在首次赋值时被创建;

c、变量名在引用前必须先赋值;

d、隐式赋值语句:import、from、def、class、for、函数参数

(2)赋值语句的形式:

a、基本形式:spam=’spam’

b、元组及列表分解赋值:当“=”左边编写成元组或列表时,python会按照

位置把右边的对象和左边的目标从左到有想配对。

c、序列赋值语句:任何变量名的序列都可以赋值给任何值的序列,python会按照位置一次赋值一个元素

d、多重目标赋值:python赋值相同对象的引用值(最右边的对象)给左边所有的目标

e、增强赋值语句:例如:s+=2相当于s=s+2

(3)序列赋值:

a、高级序列赋值语句模式:可以在“=”两侧混合和匹配匹配序列类型,但左右两边元素的数目必须相等。若要通用,则需要使用分片的方法。

>>>string=’spam’

>>>a,b,c=string[0],string[1],string[2:]

>>>a,b,c=list(string[:2)+[string[2:]]

>>>(a,b),c=string[:2],string[2:]

b、赋值一系列整数给一组变量:

>>>red,green,blue=range(3)

>>>range(3)

[0,1,2]

(4)多目标赋值语句:

a、多目标赋值以及共享引用:

多目标赋值语句中,只有一个对象,由三个变量共享(全都指向内存内统一对象)在此需要注意对象的是否支持在原处的修改

(5)增强赋值语句:

a、增强赋值语句从C借鉴而来:

x+=y

x&=y

x-=y

x|=y

x*=y

x^=y

x/=y

x>>=y

x%=y

x<<=y

x**=y

x//=y(floor除法)

b、增强赋值语句的一些优点:

左侧只需计算一次,执行更快;

优化技术选择,对于支持原处修改的对象而言,增强形式会自动执行原处的修改运算,而不是复制。

c、增强赋值与共享引用:

对列表而言,“+=”隐含了对原处做修改的意思,“+”总是生成新的对象

(6)表达式语句:

a、在python中,可以使用表达式作为语句,但表达式结果不会储存,只有当表达式工作并作为附加的效果时才有意义。通常有两种情况下表达式用作语句:调用函数和方                法、在交互模式下打印值

b、表达式语句通常用于执行可于原处修改列表的列表方法:

>>>L=[1,2]

>>>L.append(3)  #这是一条表达式语句,返回值为None

>>>L

[1,2,3]

(7)打印语句:

a、重定向输出流:

print x

等价于:

import sys

sys.stdout.write(str(x)+’\n’)

因为有可能把sys.stdout重新复制给标准输出流意外的东西,这样就可以有一种方法让print语句将文字传送到其他地方:

>>>import sys

>>>sys.stdout=open(‘log.txt’,’w’)

print x,y,z

b、print file 扩展:

重定向输出流有一个问题:没有直接的方式可以保存原始的输出流。在打印到文件后可以切换回来。因为sys.stdout只是一个普通文件对象,一个例子如下:

>>>import sys

>>>temp=sys.stdout

>>>sys.stdout=open(‘log.txt’,’a’)

>>>print ‘spam’

>>>print 1,2,3

>>>sys.stdout.close()

>>>sys.stdout=temp

>>>print open(‘log.txt’).read()

spam

1,2,3

这样的操作显得复杂,于是增加了print的扩展功能,当print以>>开始,后面再跟输出的文件对象或其他对象时,该print语句可以将文字传给该对象的write方法。

>>>log=open(‘log.txt’,’a’)

>>>print >> log,’x’.’y’,’z’

这种print扩展形式通常把错误讯息打印到标准错误流sys.stderr,例如:

>>>import sys

>>>sys.stderr.write(‘Bad!’+’\n’)

Bad!

>>>print >>sys.stderr,’Bad!’

Bad!

三、if语句:

1、通用格式:

if  <test1>:

<statements1>

elif <test2>:

<statements2>

else:

<statements3>

2、if语句是执行多路分支的最直接的方式

3、一些python语法规则:

(1)语句是逐个运行的;

(2)块和语句的边界会自动被检查;

(3)复合语句=首行+“:”+缩进语句;

(4)空白行、空格以及注释通常会被忽略;

(5)文档字符串(docstring)会被忽略,但会保存并由工具显示;

(6)代码块分隔符:python以行缩进检测块的边界

(7)语句的分隔符:

a、如果使用语法括号对,语句可以横跨数行;

b、如果语句以反斜线结尾,可以横跨数行;

c、三重引号字符串常量可以横跨数行;

d、分号可以分隔在同一行的多条语句

(8)真值测试:

a、任何非零数字或非空对象都为真;

b、数字零、空白对象、None都被认作是假;

c、比较和相等测试会递归地应用在数据结构中;

d、比较和相等测试会返回真或假的操作对象;

e、布尔and和or会返回真或假的操作对象

(9)布尔运算:

and运算:x and y; 若x、y均为真就返回真

or运算:x or y; 若x或y为真就返回真

not运算:not x; 若x为假就返回真

(10)if/else三元表达式:(只有当组成成分及其简单才用,否则写完整的if/else表达式)

A=Y if X else Z

等价于:

if X:

A=Y

else:

A=Z

四、while和for循环语句:

1、while循环:

(1)一般格式:

while <test>:

<statements1>

else:

<statements2>

2、break、continue、pass、循环else

(1)break

跳出最近所在的循环(跳过整个循环语句)

continue

跳到最近所在循环的开头处(来到循环的首行)

pass

什么也不做,只是空占位语句

循环else块

只有当循环正常离开时才会执行(也就是没有碰到break语句)

(2)一般的循环格式:

a、加入break和continue语句后,while循环的一般格式为:

while <test1>:

<statements1>

if <test2>:break

if <test3>:continue

else:

<statements2>

break,continue语句可以出现在while(或for)循环主体的任何地方,但通常会进一步嵌在if语句中,根据相应的条件采取相应的操作

b、pass:

pass语句是空占位语句,当语法需要没有任何实用的语句时,就可以实用这条语句;

c、continue/break语句:

eg:

x=10

while x:

x-=1

if x %2!=0:continue

print x

3、for循环:

for循环是一个通用的序列迭代器:可以遍历任何有序的序列对象内的元素;可用于字符串、列表、元组、其他内置可迭代对象以及通过类所创建的新对象

(1)一般格式:

for <target> in <object>:

<statements1>

else:

<statements2>

for语句也支持一个选用的else块,如果循环离开时没有碰到break语句,就会执行(也就是所有元素被访问完后)

for循环的完整格式:

for <target> in <object>:

<statements1>

if <test1>:continue

if <test2>:break

else:

<statements2>

4、迭代器:

迭代工具包括有:for循环,列表解析,in成员测试,map内置函数等

(1)文件迭代器:

a、readline()方法可以从一个文件中读取一行,每调就会前进到下一行,到达文件末尾时返回空字符串

b、next()方法也有类似功能

c、读取文本文件的最佳方式,利用for循环,例如:

for line in open(‘文件’):

print line.upper

(2)其他内置类型迭代器:

a、列表迭代器:当for循环开始时,会通过它传递给iter()内置函数,以便从迭代对象获取一个迭代器,返回的对象含有需要的next()方法

>>>L=[1,2,3]

>>>I=iter(L)

>>>I.next()

1

b、字典迭代器:会自动返回一个键

>>>D={‘a’:1,‘b’:2,’c’:3}

>>>for key in D:

print key,D[key]

a 1

b 2

c 3

c、其他迭代环境:(文件‘script1.py’事先已经写好)

in成员关系测试:

>>>uppers=[line.upper() for line in open(‘script1.py’)]

map()内置函数:

>>>map(str.upper(),open(‘script1.py’))

其他内置函数:

>>>L=[1,2,3,4]

>>>sorted(L)

>>>sum(L)

>>>any([‘spam’,’’,’ni’])

True

>>>all([‘spam’,’’,’ni’])

False

5、编写循环的技巧:

(1)range函数

range函数传入一个参数时,产生从零算起的整数列表;

range函数传入两个参数时,第一个参数视为下边界;

range函数传入三个参数时,第三个参数提供步进值;

range函数常用于for循环中;

range函数加上步进参数常用来实现非完备遍历;

range函数常用于在循环遍历列表时对其进行修改:

eg:>>>L=[1,2,3,4,5]

>>>for i inrange(len(L)):

L[i]+=1

>>>L

[2,3,4,5,6]

(2)并行遍历:zip()和map()函数:

zip()函数会取得一个或多个序列作为参数,返回值为元组的列表,将这些序列中的并排元素配成对;

map()函数也可以把序列的元素配对,只是参数长度不同时会为较短的序列用None补齐;

a、利用zip()构造字典:

>>>keys=[‘spam’,‘eggs’,’toast’]

>>>vals=[1,2,3]

>>>zip(keys,vals)

>>>D={}

>>>for (k,v) inzip(keys,vals):

D[k]=v

>>>D

{‘spam’:1,’eggs’:2,’toast’:3}

当然我们也可以跳过for循环,利用dic()函数构造字典:

>>>D1=dic(zip(keys,vals))

(3)产生偏移和元素:enumerate()

enumerate()函数返回一个生程器对象:这种对象支持迭代协议,这个对象有一个next()方法,每次遍历列表都会返回一个(index,value)的元组

eg:>>>S=’spam’

>>>E=enumerate(S)

>>>E.next()

(0,’s’)

6、列表解析:

(1)列表解析基础:从语法上讲,列表解析就是对集合中的每一个元素进行某种运算

eg:>>>L=[1,2,3,4]

>>>L=[x+10 for x in L]

>>>L

[11,12,13,14]

(2)列表解析都可以用for循环来完成

五、文档:

形式

角色

#注释

文件中的文档

dir函数

对象中可用属性列表

文档字符串:_ _doc_ _

附加在对象上的文件中的文档

PyDoc:help函数

对象的交互帮助

PyDoc:HTML报表

浏览器中的模块文档

标准手册

正式的语言和库说明

网站资源

在线教程和例子

出版书籍

商业参考书籍

1、文档字符串:_ _doc_ _

python支持可自动附加在对象上的文档,而且在运行时可以保存查看。从语法上看,这类注释写成字符串,放在模块文件、函数以及类语句的顶端,就在任何可执行代码            前,python会自动封装这个字符串,成为文档字符串,使其成为相应对象的_ _doc_ _属性。

eg:考虑下面文件docstrings.py

‘’’

Module documentation

Words Go Here

‘’‘

spam=40

def square(x):

‘’’

function documentation

can we have your liver then?

‘’’

return x**2

class employee:

‘class documentation’

pass

print square(4)

print square._ _doc_ _

执行命令:

>>>importdocstrings

16

function documentation

can we have your liverthen?

>>>printdocstrings._ _doc_ _

Module documentation

Words Go Here

>>>print docstrings.employee._ _doc_ _

class documentation

要从模块中类的方法函数的文档字符串,可以路径访问:module.class. method._ _doc_ _

2、PyDoc:HTML报表

PyDoc提供GUI接口将报表通过HTML网页格式来呈现:linux系统下打开GUI的方法如下:

>>>import pydoc

>>>pydoc.gui()

python语句和语法介绍相关推荐

  1. python语句和语法(一)

    1 python语句介绍 python的结构层次:1) 程序由模块构成 2) 模块包含语句 3)语句包含表达式 4)表达式建立并处理对象. python的语法实质上是由语句和表达式组成的. print ...

  2. 史上最全Python学习笔记(基于《Python学习手册(第4版)》)——Part3 语句和语法

    文章目录 Chap10 Python语句简介 重访Python程序结构 Python的语句 两个if的故事 Python增加了什么 Python删除了什么 括号是可选的 终止行就是终止语句 缩进的结束 ...

  3. 第二章(1):Python入门:语法基础、面向对象编程和常用库介绍

    第二章(1):Python入门:语法基础.面向对象编程和常用库介绍 目录 第二章(1):Python入门:语法基础.面向对象编程和常用库介绍 1. Python 简介 1.1 Python 是什么? ...

  4. [转载] python中的且语句_简单探讨python中的语句和语法

    参考链接: 在Python中解包:并行分配之外 python程序结构 python"一切皆对象",这是接触python听到最多的总结了.在python中最基层的单位应该就是对象了, ...

  5. 语句与语法笔记:学会python中_doc_和pydoc——python学习手册笔记之3

    标题## 语句与语法:学会python中的_doc_和pydoc--python学习手册笔记之3 光看书不练习很难学好python,光看书不做点学习笔记,恐怕连书本的东西也是半知半解,不知所云.这手册 ...

  6. python语句行从解释器提示符后第几列开始_Python基础语法

    学习一门编程语言,通常是学习该语言的以下几个部分的内容:基础语法:如,变量的声明与调用.基本输出语句.代码块语法.注释等: 数据类型:通常都为 数字.字符串.布尔值.数组.链表.Map.Set等: 运 ...

  7. Python学习笔记(九)- 介绍Python语句(Introducing Python Statements)

    1.哪三样东西在类C语言中被需要但是在Python被忽略? 答:类C语言需要在某些语句中在测试周围加上括号,在每个语句的末尾使用分号,并在嵌套的代码块周围用大括号表示.如下面的类C语言: if (x ...

  8. python编程基础语法-Python编程基础语法快速入门

    1. 课程咨询加老师助理微信:助理1微信: chenjinglei88 ,助理2微信: omf6757 2. 决定购买并想得到陈敬雷老师亲自指导(课程或自己项目难题均可)加老师微信: chenjing ...

  9. python循环语句-python语句中Python循环语句(附代码)

    python语句多如牛毛,对于很多初学者来说,不知道该如何下手.今天本文将着重讲述python语句中for语句和while语句.都知道这2种语句都属于循环语句,for语句属于遍历循环,while语句属 ...

最新文章

  1. Python入门之编程与编程语言
  2. android 不可点击状态,Android开机指引后notification应为不可点击状态
  3. 移动金融业务风控框架及设备风险识别的意义(下)
  4. BUUCTF-Reverse:内涵的软件
  5. Android热修复技术原理详解(最新最全版本)
  6. mindray心电监护仪使用说明_怎么看监护仪上的参数
  7. 向量表示 运动抛物线_ALevel物理知识点详解:抛物线运动
  8. 用Python增强Excel的3大集成方法及用途
  9. python封装一个函数并调用_python - 函数的封装与调用
  10. 没有为 ucrtbase.dll 加载符号_深入理解Java虚拟机(类加载机制)
  11. scala和java集合的区别_Scala中Array和List的区别
  12. PS CS6教程(photoshop视频教程) 免费下载
  13. python怎么做相加两个变量_2组语法,1个函数,教你用Python做数据分析
  14. java block报错图_Poi读取Excle报错 java.util.zip.ZipException: invalid stored block lengths
  15. 一小伙使用 python爬虫来算命?
  16. envoy做集中式egress sidecar
  17. Unity 2D光照(2D Light)和阴影(Shadow Caster 2D)
  18. 2020年中国环博会|2020环博会|第21届中国环博会参展商名单(第2批)“加速”出炉!
  19. 关于如何运行Power Automate Flow
  20. 前端学习-HTML5

热门文章

  1. python3中编解码、进制、字节、bytes及爬虫中经常遇到的编码问题的总结
  2. 【英文语法】英语是世界上最容易的语言(语法汇总)
  3. 织梦更新主页html慢,织梦后台更新网站HTML卡死的解决方法
  4. iOS--无法加载dae文件
  5. 一些工具 covim, Topcoat, Runscope, Ghost
  6. 计算机的击键方法教学教案,学习敲击L键计算机教案
  7. 立体仓库堆垛机控制系统安全操作规程
  8. 16进制转10进制 nodejs_Js字符串与十六进制的相互转换 【转】
  9. 《Python知识手册》.pdf
  10. linux服務器重啟後自動啟動java項目的腳本配置