python语句和语法
python语句和语法
python程序结构:
1.程序由模块构成。
2.模块包含语句。
3.语句包含表达式。
4.表达式建立并处理对象。
python的语法实质上是有语句和表达式组成的。表达式处理对象并嵌套在语句中。语句还是对象生成的地方(例如,赋值语句中的表达式),有些语句会完全生成新的对象类型(函数、类等)。语句总是存在于模块中,而模块本身则又是由语句来管理的。
python语句:
| 语句 | 角色 | 例子 |
| 赋值 | 创建引用值 | a,b,c = ‘good’,’bad’,’ugly’ |
| 调用 | 执行函数 | log.write(‘hello,world’) |
| 打印调用 | 打印对象 | print(“hello world”) |
| if/elif/else | 选择动作 | if ‘print’ in text: print(text) |
| for/else | 序列迭代 | for x in mylist: print(x) |
| while/else | 一般循环 | while x>y: print(“hello”) |
| pass | 空占位符 | while True: pass |
| break | 循环退出 | while True: if exittest(): break |
| continue | 继续下一次循环 | while True: if skiptest(): continue |
| def | 函数和方法 | def f(a,b,c=1,*d): print(a+b+c+d[0]) |
| return | 函数返回结果 | def f(a,b,c=1,*d): return a+b+c+d[0] |
| yield | 生成器表达式 | def gen(n): for i in n:yield i * 2 |
| global | 命名空间,全局变量 | x = ‘old’ def function(x): global x,y,;x = ‘new’ |
| nonlocal | 局部变量(python3.0+) | def outer(): x = ‘old’ def function(): nonlocalx;n=’new’ |
| import | 模块访问,导入 | import sys |
| from | 模块属性访问 | from sys import stdin |
| class | 创建对象 | class Subclass(Superclass): staticData = [] def method(self): pass |
| try/except/finally | 捕捉异常 | try: action() except: print(‘action error’) |
| raise | 触发异常 | raise EbdSearch(location) |
| assert | 调试检查 | assert x>y,’x too small’ |
| with/as | 环境管理器 | with open(‘data’) as myfile: process(myfile) |
| del | 删除引用 | del data[k] del data[i:j] del obj.attr del variable |
终止行就是终止语句
x = 1;
在python中,一般原则是,一行的结束会自动终止出现该行的语句.也就是可以省略分号.
x = 1
- 一行的结束就是终止该行语句(没有分号).
- 嵌套语句是代码块并且与实际的缩进相关(没有大括号).
虽然语句一般都是一行一个,但在python中也有可能出现某一行挤进多个语句情况,这时他们由分号隔开:
>>> a = 1;b = 2;print(a + b)
3
这时python中唯一需要分号的地方——作为语句界定符。
语句的另一个特殊规则基本可以让一个语句的范围横跨多行。为了能实现这一操作,只需要一对括号把语句括起来就可以了:括号(),方括号[],或者字典的大括号{}。任何括在这些符号里的程序代码都可横跨好几行。语句将一直运行,直到遇到包含闭合括号的哪一行。
>>> mylist = [111,
... 222,
... 333,
... 444]
>>> mylist
[111, 222, 333, 444]
括号可以包含一切的——因为任何表达式都可以包含在内。
x = (a + b +
c + d)
if(A == 1 and
b == 2 and
c == 3):
print('hello world')
还有一条老的规则也允许我们跨越数行——当上一行以反斜线结束时,可以在下一行继续:
X = A + B + \
C + D
缩进
python复合语句采用缩进代码风格。一般为4个空格。
while (x > 0):
---1----
---2----
....
赋值语句\表达式和打印
- 赋值语句建立对象引用值。赋值语句总是建立对象的引用值,而不是复制对象。因此,python变量更像指针,而不是数据存储区域。
- 变量名在首次赋值时会被创建。python会在首次将值(即对象引用值)赋值给变量时创建其变量名,有些数据结构也会在赋值时创建(例如,字典中的元素,一些对象属性)。一旦赋值了,每当这个变量名出现在表达式时,就会被其所引用的值取代。
- 变量名在引用前必须先赋值。使用尚未赋值的变量名将会引发异常。
- 执行隐式赋值的一些操作。赋值语句会在许多情况下使用,模块导入、函数和类的定义、for循环变量以及函数参数全都是隐式赋值运算。
赋值语句的形式:
| 运算 | 解释 |
| s = ‘hello’ | 基本形式 |
| s,h = ‘hello’,’world’ | 元组赋值运算 |
| [s,h] = [‘hello’,’world’] | 列表赋值运算 |
| a,b,c,d,e = ‘hello’ | 序列赋值运算 |
| a,*b = ‘hello’ | 扩展的序列解包 |
| a = b = ‘hello’ | 多目标赋值运算 |
| a += 42 | 增强赋值运算(相当于a = a + 42) |
| a,b,c = range(3) | 生成器赋值运算 |
不允许出现过个带*好的变量赋值:
>>> a,*b,c,*d = 'helloworld'
File "<stdin>", line 1
SyntaxError: two starred expressions in assignment
增强赋值语句:
x += y x &= y x -= y x |= y
x *= y x ^= y x /= y x >>= y
x %= y x <<= y x **= y x //= y
- 程序输入减少
- 左侧只需计算一次.在x += y中,x可以是复杂的对象表达式。在增强形式中,则只需计算一次。然而,在完整形式 x = x + y中,x出现两次,必须执行两次。因此增强赋值语句通常执行得更快。
- 优化技术会自动选择。对于支持原处修改的对象而言,增强形式会自动执行原处的修改运算,而不是相比更慢速度的复制。
>>> L = [1,2,3,4]
>>> L += [5,6] #列表使用增强型赋值时,python会自动调用较快的extend方法,而不是使用较慢的“+”合并运算
>>> L
[1, 2, 3, 4, 5, 6]
变量命名规则
python中,当为变量名赋值时,变量名就会存在。但是,要遵循如下规则:
- 语法:(下划线或字母)+(任意数目的字母、数字或下划线)
- 区分大小写
- 禁止使用保留字:
python3.0+保留字
False class finally is return
None continue for lambda try
True def from nonlocal while
and del global not with
as elif if or yield
assert else import pass break
except in raise
python语句和语法的更多相关文章
- 简单探讨python中的语句和语法
python程序结构 python"一切皆对象",这是接触python听到最多的总结了.在python中最基层的单位应该就是对象了,对象需要靠表达式建立处理,而表达式往往存在于语句 ...
- Python 学习 第五篇:语句和语法
Python程序是语句构成的,语句包含表达式,表达式嵌套在语句中,包含变量和常量,用于处理对象.Python的语法实质上是由表达式.语句和代码块构成的.语句是由表达式构成的,代码块是由多个语句构成的复 ...
- Python基础学习之语句和语法
语句和语法 python语句中有一些基本规则和特殊字符: 井号键“#”表示之后的字符为python注释: 三引号(‘‘‘ ’’’)可以多行注释 换行“\n”是标准的行分隔符(通常一个语句一行): 反斜 ...
- Python2.3-原理之语句和语法
此节来自于<Python学习手册第四版>第三部分 一.python语句简介(第10章) 1.首先记得一个概念:a.程序由模块构成:b.模块包含语句:c.语句包含表达式:d.表达式建立并处理 ...
- 《Python 学习手册4th》 第十章 Python语句简介
''' 时间: 9月5日 - 9月30日 要求: 1. 书本内容总结归纳,整理在博客园笔记上传 2. 完成所有课后习题 注:“#” 后加的是备注内容 (每天看42页内容,可以保证月底看完此书) “重点 ...
- python 语句:条件、循环、break、continue...
1. 条件语句 执行条件:判断条件"成立时(非零),则执行后面的语句,而执行内容可以多行,以缩进来区分表示同一范围. [Python程序语言指定任何非0和非空(null)值为true,0 或 ...
- Python基础__Python语法基础、条件、循环
之前主要讨论的是Python的对象,这本节将第一次走进Python的语言之旅,将会介绍条件与循环.本节我们将会涉及到复合语句,简要介绍一下Python的语法规则是有必要的Python语法规则 1.语句 ...
- Python基础:语法基础(3)
本篇主要介绍Python中一些基础语法,其中包括:标识符.关键字.常量.变量.表达式.语句.注释.模块和包等内容. 1. 标识符和关键字 1.1 标识符 标识符是变量.常量.函数.属性.类.模块和包等 ...
- Python的基础语法(二)
0. 前言 接着上一篇博客的内容,我将继续介绍Python相关的语法.部分篇章可能不只是简单的语法,但是对初学者很有帮助,也建议读懂. 1. 表达式 由数字.符号.括号.变量等组成的组合. 算术表达式 ...
随机推荐
- 【CF1009F】Dominant Indices(长链剖分优化DP)
点此看题面 大致题意: 设\(d(x,y)\)表示\(x\)子树内到\(x\)距离为\(y\)的点的个数,对于每个\(x\),求满足\(d(x,y)\)最大的最小的\(y\). 暴力\(DP\) 首先 ...
- CFS调度分析(内核版本:2.6.34)
CFS调度分析(内核版本:2.6.34) 1.时间记账 CFS不再有时间片的概念,他维护的是每个进程运行的时间记账 使用调度器实体结构来追踪进程运行记账: <linux/sched.h> ...
- ACM-ICPC(11/9)
今天看了一下黑书,感觉很刘汝佳,是他的风格,题目挺好的~~~ 枚举 P12翻硬币 二进制枚举每一列的情况2^9种. 在每一种情况下然后对于每一行就是翻与不翻的两种情况~~~ 贪心 P13钓鱼问题 PO ...
- Codeforces Round #512 (Div. 2, based on Technocup 2019 Elimination Round 1) C. Vasya and Golden Ticket 【。。。】
任意门:http://codeforces.com/contest/1058/problem/C C. Vasya and Golden Ticket time limit per test 1 se ...
- linnx 修改ip地址
vi /etc/sysconfig/network-scripts/ifcfg-eth0 [编辑网卡的配置文件] 输入上述命令后回车,打开配置文件,使用方向键移动光标到最后一行,按字母键“i”,进入编 ...
- 到底什么时候需要使用 final
final: final修饰属性,则该属性不可再次改变,而且在初始化中必须在属性或者是构造方法中其中且中有一个中初始化他 final修饰方法,则该方法不可被重写 final修饰类,则不可被继承 1:当 ...
- SQL Server笔记——sql语句创建数据库
MS SQLServer的每个数据库包含: 1个主数据文件(.mdf)必须. 1个事务日志文件(.ldf)必须. 可以包含: 任意多个次要数据文件(.ndf) 多个事务日志文件 CREATE DATA ...
- awk分隔符
最近需要检测日志,shell中用到了awk,因为分割条件不止一个,并且包括了中括号.在此记录一下关于多分隔符并且包含中括号的情况 awk -F'[=,]|[][]+' '{print $6}'
- python脚本批量杀死redis链接
#!/usr/bin/python #coding:utf8 import sys import commands,time,re ##自定义redis链接类 from redismodel impo ...
- django环境搭建和学习
由于服务器down了好几天,前几天做的django的project全都在上面,无法继续开展工作,所以决定在本地重新部署一套virtualenv 之前没有好好整理过部署过程(其实也不难),所以决定写个随 ...