Python经常使用语法看这些就够了(上篇)

参考教程:菜鸟教程html

https://www.runoob.com/python3/python3-tutorial.htmlpython

使用的开发工具是Jupyter Notebook(Anaconda)编程

下面我主要是介绍一些须要注意的点和练习过程:数据结构

说在前面:动手很重要函数

1、python基本语法

1.标识符规则:工具

在 Python 里,标识符由字母、数字、下划线组成。开发工具

在 Python 中,全部标识符能够包括英文、数字以及下划线(_),但不能以数字开头。测试

Python 中的标识符是区分大小写的。spa

注意:3d

如下划线开头的标识符是有特殊意义的。

单下划线开头 _foo 的表明不能直接访问的类属性,需经过类提供的接口进行访问,不能用 from xxx import * 而导入。

以双下划线开头的 __foo 表明类的私有成员,以双下划线开头和结尾的 __foo__ 表明 Python 里特殊方法专用的标识,如 __init__() 表明类的构造函数。

 

2.行和缩进

python中的代码块不适应大括号{ } 来控制类、函数以及其余逻辑判断。python对缩进是很敏感的,它经过缩进来判断函数或者模块。

if True:
    print("true")
else:
    print("false")

若出现: IndentationError: unindent does not match any outer indentation level错误代表是缩进错误

 

3.多行语句在行尾使用 \ 来接下一行

句中包含 [], {} 或 () 括号就不须要使用多行链接符。

 

4.字符串表示 ‘’,“”,“““,三引号能够由多行组成。单行注释用 #  多行注释用三个单引号或三个双引号。

 

5.input、print表示输入、输出,python中的命令-h能够查看各参数的帮助信息。

 

6.import 与 from...import

 

2、Python变量类型

1.变量赋值

Python中变量名赋值不须要进行类型声明,变量名也不须要提早建立,变量赋值之后才会被建立(这一点和R语言相似)

 

2.多变量赋值

能够同时给三个变量赋相同的值,也能够将三个变量同时分别赋值。

 

3.标准数据类型

Python中有五个标准数据类型:Numbers(数字)、String(字符串)、List(列表)、Tuple(元组)、Dictionary(字典)

详细内容看下面的第

 

3、Python的基本数据类型

用于存储数据

1.Number数字

Python3 支持 int、float、bool、complex(复数)

(1)内置的 type() 函数能够用来查询变量所指的对象类型。

(2)此外还能够用 isinstance 来判断

(1)(2)的区别在于:

(3)Python3 中,把 True 和 False 定义成关键字了,但它们的值仍是 1 和 0,它们能够和数字相加

(4)del语句能够删除一些对象引用。也能够删除单个或多个对象。

(5)Python还支持复数,复数由实数部分和虚数部分构成,能够用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型。

 

2.字符串

Python中的字符串用单引号 ' 或双引号 " 括起来,同时使用反斜杠 \ 转义特殊字符。

(1)字符串截取:

变量[头下标:尾下标],字符串第一个字符索引是0;

从左往右以0开始,从右往左以-1开始。

(2)字符串操做

注意不能使用索引来改变字符串内的字符。

(3)对转义字符的说明

反斜杠(\)转义特殊字符,若是你不想让反斜杠发生转义,能够在字符串前面添加一个 r,表示原始字符串:

 

3.列表List(Python内还有一些对列表操做的函数)

(1)列表是写在方括号 [] 之间、用逗号分隔开的元素列表, 列表中元素的类型能够不相同。

(2)列表中元素的截取

①当只截取一个时,返回值是这个元素;当截取多个时,返回的是一个新的列表。

②注意选取范围是左闭右开区间

索引值以 0 为开始值,-1 为从末尾的开始位置。

能够直接经过索引来更改列表内元素,也能够经过列表内置方法来更改。

③注意:

list能够用+进行拼接

和字符串同样,list能够被索引和切片

python截取列表数据时,能够接收第三个参数,实现按步数截取

当第三个参数为负数时逆向读取,能够用来翻转字符串。

 

4.元组Tuple

(1)特色:操做元组与列表相似,不一样之处在于,元组内的元组不能修改,元组写在小括号()里,元组之间用逗号隔开,元组内的元组类型也能够不一样。元组之间也能够经过+直接合并。

(2)虽然tuple的元素不可变,可是他能够包含可变的对象,好比说list列表。

(3)特别注意:构造包含0或1个元素的元组有着特殊的语法规则

 

5.集合set

是由一个或数个形态万千的大小总体组成的,构成集合的事物或对象称做元素或是成员

基本功能是进行成员关系测试和删除重复元素set里的内容位置是随意的,因此不能用索引列出

(1)set的建立

①可使用大括号{}或者set()函数来建立

②在用set函数的时候,注意,set函数最多只能接收一个参数

那么怎样用它来建立含有多个元素的集合呢?

    向set函数的参数里,传入含有多个元素的列表或元组都可;若是只传入一个字符串,他会将字符串拆成一个个的字符,那么建立的集合就全是一个个的字母的集合啦

空的集合必须经过set()函数来建立;{}是用来建立空的字典的。

(2)集合之间能够进行运算,差、交、并、补等

(3)set的使用:

①去重,set自动完成

②判断元素是否在集合中

 

6.字典dictionary(具体字典内置函数,能够百度一下)

列表是有序的对象集合,字典是无序的对象集合。二者之间的区别在于:字典当中的元素是经过来存取的,而不是经过偏移存取。

(1)字典的实质:字典是一种映射类型,字典用 { } 标识,它是一个无序的 键(key) : 值(value) 的集合

(2)注意: 键(key)必须使用不可变类型, 在同一个字典中,键(key)必须是惟一的。

(3)建立字典:三种方式对比

建立空字典用{}。

(4)对字典的读取操做

 

7.Python数据转换

下面介绍几个内置函数能够执行数据类型之间转换,这些函数返回一个新的对象值,表示转换的值。

函数

描述

int(x)

将x转化为一个整数

float(x)

将x转化为浮点数

comlext(real,imag)

建立复数

str(x)

将对象x转化为字符串

repe(x)

将对象x转化为表达式字符串

tuple(s)

将序列s转化为元组

list(s)

将序列s转化为列表

set(s)

将s转化为可变集合

frozenset(s)

转化为不可变集合

dict(d)

将d转化为字典;d必须是一个(key,value)的元组序列

chr(x)

将一个整数转化为字符

ord(x)

将一个字符转化为整数

hex(x)

将x转化为16进制形式字符串

oct(x)

转化为八进制形式字符串

 

 

4、Python解释器

如今Python的集成开发工具多种多样,我如今使用的是Jupyter notebook,网页版,高效方便。

也可使用python自带的IDE,有脚本编程和交互式编程两种。

还有pycharm、Ipython等工具都很方便。

 

5、Python运算符(这里只讲一些经常使用的)

1.算术运算符

运算符

描述

+,-,*,/ 

加减乘除

%

取模,返回除法的余数

x**y

返回x的y次方结果

//

向下取接近除数的整数,9//2=4;-5//2=-3;获得的是更小的整数

2.比较运算符(返回的是真值)

运算符

描述

==、!=

等于、不等

>、<、>=、<=

大于、小于、大于等于、小于等于

3.赋值运算符

运算符

描述

=

简单赋值符     c = a + b 将 a + b 的运算结果赋值为 c

+=、-=、*=、/=

加减乘除赋值符    c += a 等效于 c = c + a

%=

取模赋值符    c %= a 等效于 c = c % a

**=

幂赋值符   c **= a 等效于 c = c ** a

//=

取整除赋值符   c //= a 等效于 c = c// a

:=

海象运算符(和R语言中的有点相似)

可在表达式内部为变量赋值。

4.位运算符

运算符

描述

&

按位与运算符:参与运算的两个值,若是两个相应位都为1,则该位的结果为1,不然为0

|

按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。

^

按位异或运算符:当两对应的二进位相异时,结果为1

~

按位取反运算符:对数据的每一个二进制位取反,即把1变为0,把0变为1。~x 相似于 -x-1

<<

左移动运算符:运算数的各二进位所有左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0。

>>

右移动运算符:把">>"左边的运算数的各二进位所有右移若干位,">>"右边的数指定移动的位数

5.逻辑运算符(看X的真值)

运算符

描述

and

与运算符:若是x为False,x and y 返回 False,不然返回y的计算值

or

或运算符:若是x是True,返回x的值,不然返回y的值

not

非运算符,若是x为True,则返回False,不然返回True

6.成员运算符

in、not in

 

7.身份运算符(判断)

is 判断两个标识符是否引用自同一个对象

is not  判断两个标识符是否引自不一样的对象

 

8.Python运算符的优先级

"**" > "~ +@ -@" > "*/%//" > "+-" > "<< >>"

注意:python3已经不支持<>(不等)运算符,被!=替代了。

 

6、Python条件控制

1.if判断

(1)小例子:

(2)if嵌套

if 表达式1:
    语句
    if 表达式2:
        语句
    elif 表达式3:
        语句
    else:
        语句
elif 表达式4:
    语句
else:
    语句

 

7、Python循环语句

1.while循环语句

while(condition):
    statement

例子:

当条件永真时,会无限循环

当条件不成立时跳出循环,也能够用break来终止循环

 

2.for循环语句

(1)通常格式

for var in sequence:
    statemnet1
else:
    statement2

(2)小例子(range函数也能够指定步数,默认是整数 1)

 

3.continue关键字

从例子中就能够看出,continue是执行到该语句时,下面的语句再也不执行,继续执行下一个循环过程

 

8、Python 迭代器和生成器

1.迭代器: 能够记住遍历的位置的对象。

迭代是Python最强大的功能之一,是访问集合元素的一种方式。

迭代器有两个基本的方法:iter() 和 next()

(1)使用Python内置迭代器

例子:

(2)迭代

(3)对自定义的类使用迭代器

把一个类做为一个迭代器使用须要在类中实现两个方法:__iter__(),__next__()     ※注意是双下划线!!!!

① __iter__() 方法返回一个特殊的迭代器对象, 这个迭代器对象实现了 __next__() 方法并经过触发 StopIteration 异常标识迭代的完成(目的就是识别循环结束的状况,防止出现无限循环的状况)。

② __next__() 方法会返回下一个迭代器对象。

③小例子:

更加合理的指定迭代范围的方式:

 

2.生成器generator:生成器就是一个迭代器

(1)定义:使用了yield的函数被称为生成器

调用一个生成器函数,返回的是一个迭代器对象。

(2)生成器的工做流程:

    在调用生成器运行的过程当中,每次遇到 yield 时函数会暂停并保存当前全部的运行信息,返回 yield 的值(至关于一个断点), 并在下一次执行 next() 方法时从当前位置继续运行

小例子:使用yield实现斐波那契数列:

 

9、Python函数

1.定义一个函数

    函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()。

    任何传入参数和自变量必须放在圆括号中间,圆括号之间能够用于定义参数。

    函数内容以冒号起始,而且缩进

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

 

2.调用函数

    直接使用函数标识符(加须要传递的参数)进行调用

 

3.参数传递

(1)明确一下Python里的可更改不可更改对象

    string、tuple、number都是不可更改对象;而list、dict是可更改对象

下面的概念好好理解:

不可变类型: 变量赋值 a=5 后再赋值 a=10,这里实际是新生成一个 int 值对象 10,再让 a 指向它,而 5 被丢弃,不是改变a的值,至关于新生成了a。

可变类型: 变量赋值 la=[1,2,3,4] 后再赋值 la[2]=5 则是将 list la 的第三个元素值更改,自己la没有动,只是其内部的一部分值被修改了。

(2)对于不可变类型、可变类型对象在调用函数中做为参数传递:

不可变类型( string、tuple、number等):相似于C++的值传递;如func(a),a传入的只是a的值,并不影响原来a对象自己。好比在函数内部对a的值改变,改变的只是这个对象的复制对象,对象a自己是不变的。

可变类型(list、dict等):相似于C++的引用传递,如func(la),la传入的是这个对象自己,函数内部对这个对象修改后,外部的对象是会被改变的。

 

4.参数类型

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

必需参数、关键字参数、默认参数、不定长参数

(1)必需参数: 必需参数须以正确的顺序传入函数。调用时的数量必须和声明时的同样

(2)关键字参数: 使用关键字参数容许函数调用时参数的顺序与声明时不一致,由于 Python 解释器可以用参数名匹配参数值。

例:

(3)默认参数

调用函数时,若是没有传递参数,则会使用默认参数。如下实例中若是没有传入 age 参数,则使用默认值:

接上面例子:

(4)不定长参数

你可能须要一个函数能处理比当初声明时更多的参数。

①第一种形式:使用加*的参数,表示输入一个元组,这个元组的长度是不定的,由调用函数时,自动读取。

例:

②第二种形式:使用加**的参数,表示输入形式为字典形式,长度不定

例:

 

5.匿名函数

python 使用 lambda 来建立匿名函数。 lambda的主体是一个表达式,而不是一个代码块。

所谓匿名,意即再也不使用 def 语句这样标准的形式定义一个函数。

lambda 函数拥有本身的命名空间,且不能访问本身参数列表以外或全局命名空间里的参数。

(1)语法:注意写lambda表达式时参数部分不要加 [ ] 这个符号只是表明能够省略  ,否则会报错

(2)例:

 能够看出,也能够不指定参数

 

10、Python数据结构

1.列表

2.列表——>堆栈

3. 元组和序列

4.集合

5.字典

相关文章
相关标签/搜索