python语法基础笔记

本篇笔记基于博主自己的的学习,理解,总结所写。很多东西可能存在误解,不能保证百分之百的正确。

1. 数据表达

1.1 常量和变量

  • 变量

变量在解释器的命名空间中,只是一个标签,用于表示对对象的引用。可以作为数据类型的引用,也可以用函数等其他对象的引用。

1.2 数据类型

1.2.1 基本数据元素

1.2.1.1 数字

  • 整形 int
  • 浮点型 float
  • 布尔型 bool
  • 复数型 complex

1.2.1.2 字符串

1.2.2 标准数据类型

1.2.2.1 列表(方括号)

1.2.2.2 元祖(圆括号)

1.2.2.3 字典(花括号)

1.3 运算符

运算符表示数据运算的类别。python*有七种运算类型。不同运算类型包括不同的运算符。

  • 算术运算
  • 关系运算
  • 逻辑计算
  • 赋值运算
  • 位运算
  • 成员运算
  • 身份运算

1.3.1 算术运算

算术运算包括七种运算符:

+     加法计算
- 减法计算
* 乘法计算
/ 除法计算
% 取模(余)计算
** 幂计算
// 取整除计算

1.3.2 关系运算

关系运算包括七种运算符:

==    等于
!= 不等于
<> 不等于
> 大于
< 小于
>= 大于等于
<= 小于等于

1.3.3 逻辑运算

逻辑运算包括三种运算符:

and    布尔与
or 布尔或
not 布尔非

1.3.4 赋值运算

赋值运算包括八种运算符:

=    基本赋值
+= 加后赋值
-= 减后赋值
*= 乘后赋值
/= 除法赋值
%= 取余赋值
**= 幂赋值
//= 取整赋值

1.3.5 位运算

位运算包括六种运算符:

&    按位于
| 按位或
^ 按位异或
~ 按位取反
<< 左移
>> 右移

1.3.6 成员运算

成员运算两种运算符:

in
not in

1.3.7 身份运算

is
not is

1.4 表达式

表达式由数据类型和运算符组成。表达式有返回值。

返回值有:

  • 基本数据元素
  • 标准数据类型

表达式有多种类型,比如:

  • 运算表达式
  • 条件表达式
  • 赋值表达式
  • 判断表达式

1.5 返回值

返回值一般为:

  • 基本数据元素
  • 标准数据类型
  • 空值
  • 无返回值

2. 控制结构

2.1 条件判断结构

条件判断结构,由if...elseif...else...else引导构成。

if后面为条件表达式,条件表达式通常由关系运算,身份运算,成员运算等能够构成条件运算,且一般返回布尔类型值True或者False构成判断条件。

esle为条件成立后的结果。一般为输入,输出,计算,或者无操作。

条件判断不单一,一般存在一个或者多个添加。

一般会按照“判断条件-结果分支“的形式,存在多种判断结构。即:

  • 单条件,单分支
  • 单条件,双分支
  • 单条件,多分支
  • 多条件,单分支
  • 多条件,双分支
  • 多条件,多分支

2.1.1 if 特殊情况判断

单分支。常用于特殊情况排除

    # 简单示例
if True:
print 'ok'
if 1:
print 'ok'
if 2 > 1:
print 'ok'
# 示例代码
for i in range(10):
if i % 2 != 0:
print i

2.1.2 if 互斥情况判断

双分支。常用于对立的两个方面

    #简单示例
if False
print 'ok'
else:
print 'not ok'
# 示例代码
for i in range(10):
if i % 2 == 0:
print "偶数:",i
else:
print "奇数:",i

2.1.3 if 多种情况判断

多分支。常用于多个情况的选择或者条件嵌套

    # 简单示例
# 示例代码
if 0 < a < 100:
print "a+100=:",a+100
elif 100 <= a < 200:
print "a+200=:",a+200
elif 200 < a:
print "a > 200"
else:
print "a < 0"

2.1.4 if 多个条件混合判断

    #示例代码
a = input("a的值:")
b = input("b的值:")
if a > 100 and b < 100:
print "a > 100 and b < 100"
else:
print "不满足a>100,并且b<100"
if a >= 100 or b >= 100:
print "a >= 100 or b >= 100"
else:
print "a和b都不大于100"

2.2 条件循环结构

2.2.1 for循环遍历

  • for 循环输入

for 遍历一个列表(或者返回列表的表达式),来处理输入操作

    a = [ ]
for i in range(10):
a.append(i)
print a[i]
  • for 循环输出

for遍历一个列表(或者返回列表的表达式),来处理输出操作。示例如下:

    for i in 1,2,3,4:
print i
for i in range(10):
print i
  • for 循环计算

2.2.2 while条件循环

2.3 控制跳转

3. 模块编程

3.1 语句和语句块

python语句由换行符和缩进组成。语句块是稍微复杂一点的带有逻辑性的语句,如控制结构种的语句模块。

语句和语句块是模块化编程的基础,也就是语法基础。由语句和语句块,构成了编程文件。

语句和表达式的区别在于,表达式一般都有返回值,而语句只是一条包含了表达式的指令合集。

    ## 赋值语句
a = 100
a = input("输入a:")
## 控制结构
if a > 0:
print a
else
print "hello"

上述示例种,控制结构语句块,包含了条件表达式等

3.2 函数和模块

如果说语句和语句块,是编程语句的最基本组成。

那么可以由语句或者语句组成功能性更强,重复性更低的代码段。可以称之为函数。

函数的定义,在数学上为:对输入的不同的值,都进行同样的操作,这也服务编程中函数的使用规范。

python函数,表示组织好的,可重复使用的,用来实现单一,或者相关功能的代码段。

python解释器,提供了很多内置函数,也支持用户自定义函数

函数的使用,包括定义,调用,传参,返回,变量作用域等概念。

函数在python中的引用极其重要,是python功能的体现。

3.2.1 函数的定义

语法层面上,函数以def关键字定义,后接函数名称和圆括号括起来的参数列表

任何传入参量和自变量,需要放入参数列表中

函数第一行语句,可以选择性的使用函数说明文档。

函数同样遵循python的语法,冒号+缩进

return 表达式,表示函数的结束,表示给调用者的返回。不带表达式的函数返回None

定义函数时,需要确定函数的名称和参数个数;如果有必要,可以先对参数的数据类型做检查。

    #语法结构
def functionname( parameters ):
"函数_文档字符串"
function_suite
return [experssion]
#示例代码。打印字符串函数
def helloworld(str):
print "I am :%s" % str
helloworld("liwanliang")

3.2.2 函数的调用

函数的定义完成之后,基本上能够知道函数的功能。函数功能的实现,通过在代码中调用函数实现。

有多个默认参数时,调用的时候,既可以按照顺序提供的默认参数,也可以不按顺序提供部分默认参数。当不按顺序提供部分默认参数时,需要把参数名写上。

    #示例代码:
def helloworld(str):
print "I am :%s" % str
myname = raw_input("input your name:")
hellowrld(myname)

3.2.3 函数的传参

python中,一切都是对象。对象才具有类型,而变量是对象的引用,无类型。

对象有可变对象,也有不可变对象。

可变对象包括:

  • list
  • dict

不可变对象包括:

  • string
  • tuple
  • number

python函数中,以变量来进行参数传递,分为不可变类型和可变类型。

不可变类型传递的是值的拷贝,而可变类型传递得是值。

严格意义上讲,我们不能说是值传递,还是引用传递。我们应该说是传可变对象和传不可变对象。

    #不可变对象示例代码
def liwanliang(a):
a = 100
print a
b = 200
liwanliang(b)
print b
#可变对象示例代码
def helloworld(str1,str2):
print "Hello,I am:" + str1 +"."+ "I am "+ str2
myname = raw_input("input your name:")
myage = raw_input("input your age:")
helloworld(myname,myage)

python可以使用的正式参数类型:

  • 必备参数。即函数定义了参数,调用时也一定要传入。
  • 关键字参数。即函数调用时,在参数列表中赋值传入。
  • 默认参数。即函数调用时,未指定参数值时,则会默认为函数定义时的值。
  • 不定长参数。即函数参数不定长时,通过*号表示不定长的参数列表。

可变参数允许传入0个或者任意个参数,这些可变参数在函数调用时自动组装为tuple。

关键字参数允许传入0个或者任意个含参数名的参数,这些关键字参数在函数内部自动组装成dict。

3.2.4 函数的返回

return 表达式。该语句表示退出函数,选择性地向调用方返回一个表达式。不带参数值的return语句返回None。

所有函数均有返回值,通过显示指定,或者隐式返回None。

一个函数可以有多个return语句,但是只有一个被执行。如果没有一条return被执行,则隐式返回None。

如果执行了return语句,函数会立刻返回,结束调用。被执行的return之后的语句,不再被执行。

return和print的区别为:print仅仅是函数代码段中,打印标准输出部分的语句;而return是结束调用时,返回给调用者的对象。

无论定时的返回什么类型,return只能返回单个标准数据类型,单个数据类型可以包括多种基本数据元素。

函数可以同时返回多个值,但其实就是一个tuple。

  • 返回基本数据元素

    如整型,浮点型,布尔型,复数型
  • 返回标准数据类型

    如字符串,列表,元祖,字典,集合
  • 返回函数,闭包,匿名函数

3.2.3 高阶函数

python高阶函数中,函数可以作为参数,也可以作为返回值,并且参与函数运算。

3.3 包和类

上一篇:java 、HashMap 和单例


下一篇:使用Python实现Hadoop MapReduce程序