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

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 包和类

python语法基础笔记的更多相关文章

  1. python 笔记2:python语法基础

    python语法学习笔记: 1 输入输出 input(),print(). name = input('input your name : ')print('hello ,'+name)print(& ...

  2. (数据分析)第02章 Python语法基础,IPython和Jupyter Notebooks.md

    第2章 Python语法基础,IPython和Jupyter Notebooks 当我在2011年和2012年写作本书的第一版时,可用的学习Python数据分析的资源很少.这部分上是一个鸡和蛋的问题: ...

  3. Python学习基础笔记(全)

    换博客了,还是csdn好一些. Python学习基础笔记 1.Python学习-linux下Python3的安装 2.Python学习-数据类型.运算符.条件语句 3.Python学习-循环语句 4. ...

  4. JavaScript基础——JavaScript语法基础(笔记)

    JavaScript语法基础(笔记) 1.语言编码 JavaScript语言建立在Unicode字符集基础之上,因此脚本中,用户可以使用双字节的字符命名常量.变量或函数等. [示例] var 我=&q ...

  5. Python | Python语法基础

    目录 前言 1. 变量与简单数据结构 2. 列表相关 3. 集合 4. If语句 5. 字典 6. 用户输入和while循环 7. 函数 8. 类与对象 9. 文件 10. 异常 11. 测试 最后 ...

  6. 学习笔记_58 python语法基础

    1.python是解析型语言. 有点像javaScript在html运行一样,不需要mian函数入口,随时随地定义函数,执行函数, 执行语句,定义类型 2.python能面向对象 3.python使用 ...

  7. python语法基础-面向对象-基础-长期维护

    ###############    类的基本操作    ############## """ 类的基本认识: 1,类就是一个模子 2,dict,list都是类,具体的一 ...

  8. day_02~day_09的Python语法基础

    Python基础学习 day_02 使用方法修改字符串的大小写 将字符串首字母变成大写 >>> name = "ada lovelace" >>> ...

  9. python语法基础-初始化/继承

    写了一些程序,基本上都是直接def函数 然后在main方法中 调用 但是在一些应用程序中 会有基本语法的使用(初始化,继承) 初始化: 1.在程序执行时一定执行一次的操作 2.python中初始化in ...

随机推荐

  1. 自己写bitmap

    备注:1.原创文章,转载请标明出处: 2.欢迎建议和意见 3.我的实现是C语言,为了保护公司隐私,下述数据类型被我改了.实际上int应改是无符号4个字节的类型,byte是有符号1个字节,才能保证移植性 ...

  2. JDBC-Statement,prepareStatement,CallableStatement的比较

    参考:https://www.cnblogs.com/Lxiaojiang/p/6708570.html JDBC核心API提供了三种向数据库发送SQL语句的类: Statement:使用create ...

  3. python第八十四天---十五周作业

    后台管理页面: <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...

  4. apache 访问权限出错,apache selinux 权限问题, (13) Permission Denied

    今天在使用 httpd 做文件服务器的时候,发现 png 图像没有打开,但是原本www/html 文件夹内部的文件就可以打开.后来猜测是selinux 的问题,之前一直想写一篇关于selinux 的博 ...

  5. [Eclipse+PyDev]ImportError: DLL load failed:找不到指定的模块 解决方案

    1. 环境 Eclipse 4.4.2 Python 3.5 Window 8.1 2. 问题 在代码中import numpy时,提示 " ImportError: DLL load fa ...

  6. CanalSharp.AspNetCore v0.0.4-支持输出到MongoDB

    一.多样输出支持 CanalSharp.AspNetCore是一个基于CanalSharp的适用于ASP.NET Core的一个后台任务组件,它可以随着ASP.NET Core实例的启动而启动,目前采 ...

  7. 对数组的操作splice() 和slice() 用法和区别

    JavaScript splice() 方法 定义和用法 splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目. 注释:该方法会改变原始数组. 语法 arrayObject.spli ...

  8. Recurrences UVA - 10870 (斐波拉契的一般形式推广)

    题意:f(n) = a1f(n−1) + a2f(n−2) + a3f(n−3) + ... + adf(n−d), 计算这个f(n) 最重要的是推出矩阵. #include<cstdio> ...

  9. [转]VC++宏与预处理使用方法总结

    原文链接:VC 宏与预处理使用方法总结 原文链接:VC预处理指令与宏定义的妙用

  10. IDEA学生免费申请教程

    1.点击网址,进入申请页面https://www.jetbrains.com/zh/student/ 2.由于网页是全英文的,可以用浏览器将页面翻译成中文版,更方便操作 3.因为没有大学的邮箱地址,所 ...