首页 > 编程语言 > 详细

2_Python3 基础知识

时间:2020-02-02 09:54:01      阅读:87      评论:0      收藏:0      [点我收藏+]

参考:https://docs.python.org/zh-cn/3/library/index.html

1、 注释

单行注释:#

多行注释:以’’’开始和结束

2、 命名规则

大小写字母、数字、下划线

不能以数字开头

大小写敏感

不能与保留字相同

3、 Python保留字

查看:import keyword

      print(keyword.kwlist)

结果如下:

‘False‘, ‘None‘, ‘True‘, ‘and‘, ‘as‘, ‘assert‘, ‘async‘, ‘await‘, ‘break‘, ‘class‘,‘continue‘, ‘def‘, ‘del‘, ‘elif‘, ‘else‘, ‘except‘, ‘finally‘, ‘for‘, ‘from‘, ‘global‘, ‘if‘, ‘import‘, ‘in‘, ‘is‘, ‘lambda‘, ‘nonlocal‘, ‘not‘, ‘or‘, ‘pass‘, ‘raise‘, ‘return‘, ‘try‘, ‘while‘, ‘with‘, ‘yield‘

4、 程序的输入和输出

输出:

print( value, …, sep = ’ ’, end = ’\n’, file = sys.stdout, flush = False )

value:想要输出的数据,若是字符串,须前后加上单(双)引号。

sep:以半角空格隔开输出值

end = \n’:默认值。’\n’是换行符号,表示输出之后移向下一行。若输出不换行,使用end=’’。

file = sys.stdout:表示标准输出设备,通常指屏幕。

flush = False:执行print()函数,可决定数据先暂存于缓冲区或全部输出。

   注意:print函数只会输出十进制数值。

输入:

X = input([prompt])

prompt是提示字符串,须前后加上单(双)引号,输入数据存储于变量X中。

值得说明的是:

5、 数据类型

1) 整型(整数、布尔)

进制转化:

bin(int):十进制转二进制,结果以0b为前缀的字符

  • oct(int):十进制转八进制,结果以0o为前缀的字符

hex(int):十进制转十六进制,结果以0b为前缀的字符

int(s,base):字符串s根据base参数提供进制数转十进制数值

2) 浮点类型

浮点型由整数部分与小数部分组成,float(x)将x转换到一个浮点数。

3) 复数类型(complex)

复数由实数部分和虚数部分构成,可以用a+ bj,或者complex(a,b)表示,复数的实部a和  虚部b都是浮点型

6、 字符串

使用单引号(’) 或 (”)来创建字符串。不支持单字符类型,单字符在 Python 中也是作为一个字符串使用。访问子字符串,可以使用方括号来截取字符串。

索引/访问方式:

  • ●正向索引、反向索引

 

  • ●区间索引

  [A:B]:从位置A到B的部分字符串,不包括位置B,特殊地[0:B] 等同于[:B]

1)转义字符

序号

转义字符

描述

1

\

在行尾时,续行符

2

\\

反斜杠符号

3

\‘

单引号

4

\"

双引号

5

\a

响铃

6

\b

退格(Backspace)

7

\000

8

\n

换行

9

\v

纵向制表符

10

\t

横向制表符

11

\r

回车

12

\f

换页

13

\oyy

八进制数,yy 代表的字符,例如:\o12代表换行,其中o是字母,不是数字 0。

14

\xyy

十六进制数,yy代表的字符,例如:\x0a代表换行

15

\other

其它的字符以普通格式输出

2)字符串运算符

序号

操作符

描述

实例( a="Hello", b="Python" )

1

+

字符串连接

a+b输出结果:HelloPython

2

*

重复输出字符串

a*2输出结果:HelloHello

3

[]

通过索引获取字符串中字符

a[1]输出结果 e

4

[ : ]

截取字符串中的一部分,遵循左闭右开原则

a[1:4]输出结果 ell

5

in

成员运算符,如果字符串中包含给定的字符返回 True

‘H‘ in a输出结果 True

6

not in

成员运算符,如果字符串中不包含给定的字符返回 True

‘M‘ not in a 输出结果 True

7

r/R

原始字符串,原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。原始字符串除在字符串的第一个引号前加上字母 r或R以外,与普通字符串有着几乎完全相同的语法。

print( r‘\n‘ )

print( R‘\n‘ )

8

%

格式字符串

 

3)字符串格式化

将一个值插入到一个有字符串格式符 %s 的字符串中:

print ("我叫%s今年%d岁!" % (‘小明‘, 10))

输出:我叫小明今年10岁!

字符串格式化符号:

序号

符号

描述

1

%c

格式化字符及其ASCII码

2

%s

格式化字符串

3

%d

格式化整数

4

%u

格式化无符号整型

5

%o

格式化无符号八进制数

6

%x%X

格式化无符号十六进制数

7

%f

格式化浮点数字,可指定小数点后的精度

8

%e%E

用科学计数法格式化浮点数

9

%g

%f和%e的简写

10

%G

%f和%E的简写

11

%p

用十六进制数格式化变量的地址

4)三引号

三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符。

5)Unicode字符串

在Python2中,普通字符串是以8位ASCII码进行存储的,而Unicode字符串则存储为16位unicode字符串,使用的语法是在字符串前面加上前缀u。

在Python3中,所有的字符串都是Unicode字符串。

6)字符串内建函数

序号

方法及描述

1

capitalize(str)

将字符串的第一个字符转换为大写

2

center(width,fillchar)

返回一个指定的宽度width居中的字符串,fillchar为填充的字符,默认为空格

3

count(str,beg=0,end=len(string))

返回str在string里面出现的次数,如果beg或者end指定则返回指定范围内str出现的次数

4

bytes.decode(encoding="utf-8",errors="strict")

Python3中没有decode方法,但我们可以使用bytes对象的decode()方法来解码给定的bytes对象,这个bytes对象可以由str.encode()来编码返回

5

encode(encoding=‘UTF-8‘,errors=‘strict‘)

以encoding指定的编码格式编码字符串,如果出错默认报一个ValueError的异常,除非errors指定的是‘ignore‘或者‘replace‘

6

endswith(suffix,beg=0,end=len(string))
检查字符串是否以suffix结束,如果beg或者end指定则检查指定的范围内是否以suffix结束,如果是,返回True,否则返回False

7

expandtabs(tabsize=8)

把字符串string中的tab符号转为空格,tab符号默认的空格数是8

8

find(str,beg=0,end=len(string))

检测str是否包含在字符串中,如果指定范围beg和end,则检查是否包含在指定范围内,如果包含返回开始的索引值,否则返回-1

9

index(str,beg=0,end=len(string))

跟find()方法一样,只不过如果str不在字符串中会报一个异常

10

isalnum()

如果字符串至少有一个字符并且所有字符都是字母或数字则返回True,否则返回False

11

isalpha()

如果字符串至少有一个字符并且所有字符都是字母则返回True,否则返回False

12

isdigit()

如果字符串只包含数字则返回True否则返回False..

13

islower()

如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回True,否则返回False

14

isnumeric()

如果字符串中只包含数字字符,则返回True,否则返回False

15

isspace()

如果字符串中只包含空白,则返回True,否则返回False

16

istitle()

如果字符串是标题化的(见title())则返回True,否则返回False

17

isupper()

如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回True,否则返回False

18

join(seq)

以指定字符串作为分隔符,将seq中所有的元素(的字符串表示)合并为一个新的字符串

19

len(string)

返回字符串长度

20

ljust(width[,fillchar])

返回一个原字符串左对齐,并使用fillchar填充至长度width的新字符串,fillchar默认为空格

21

lower()

转换字符串中所有大写字符为小写

22

lstrip()

截掉字符串左边的空格或指定字符

23

maketrans()

创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标

24

max(str)

返回字符串str中最大的字母

25

min(str)

返回字符串str中最小的字母

26

replace(old,new[,max])

把将字符串中的str1替换成str2,如果max指定,则替换不超过max次

27

rfind(str,beg=0,end=len(string))

类似于find()函数,不过是从右边开始查找

28

rindex(str,beg=0,end=len(string))

类似于index(),不过是从右边开始

29

rjust(width,[,fillchar])

返回一个原字符串右对齐,并使用fillchar(默认空格)填充至长度width的新字符串

30

rstrip()

删除字符串字符串末尾的空格

31

split(str="",num=string.count(str))

num=string.count(str))以str为分隔符截取字符串,如果num有指定值,则仅截取num+1个子字符串

32

splitlines([keepends])

按照行(‘\r‘,‘\r\n‘,\n‘)分隔,返回一个包含各行作为元素的列表,如果参数keepends为False,不包含换行符,如果为True,则保留换行符

33

startswith(substr,beg=0,end=len(string))

检查字符串是否是以指定子字符串substr开头,是则返回True,否则返回False。如果beg和end指定值,则在指定范围内检查

34

strip([chars])

在字符串上执行lstrip()和rstrip()

35

swapcase()

将字符串中大写转换为小写,小写转换为大写

36

title()

返回"标题化"的字符串,就是说所有单词都是以大写开始,其余字母均为小写(见istitle())

37

translate(table,deletechars="")

根据str给出的表(包含256个字符)转换string的字符,要过滤掉的字符放到deletechars参数中

38

upper()

转换字符串中的小写字母为大写

39

zfill(width)

返回长度为width的字符串,原字符串右对齐,前面填充0

40

isdecimal()

检查字符串是否只包含十进制字符,如果是返回true,否则返回false

 

7、  列表

创建列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。可进行的操作包括索引,切片,加,乘,检查成员,列表的数据项不需要具有相同的类型。

访问列表中的值:使用下标索引来访问列表中的值,同样你也可以使用方括号的形式截取字符。

更新列表:可对列表的数据项进行修改或更新,也可使用append()方法来添加列表项。

删除元素:使用del语句来删除列表的的元素。

列表操作符

列表截取与拼接

嵌套列表

使用嵌套列表即在列表里创建其它列表

列表函数

序号

函数及描述

1

len(list)
列表元素个数

2

max(list)
返回列表元素最大值

3

min(list)
返回列表元素最小值

4

list(seq)
将元组转换为列表

列表方法

序号

方法及描述

1

list.append(obj)

在列表末尾添加新的对象

2

list.count(obj)

统计某个元素在列表中出现的次数

3

list.extend(seq)

在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)

4

list.index(obj)

从列表中找出某个值第一个匹配项的索引位置

5

list.insert(index, obj)

将对象插入列表

6

list.pop([index=-1])

移除列表中的一个元素(默认最后一个元素),并且返回该元素的值

7

list.remove(obj)

移除列表中某个值的第一个匹配项

8

list.reverse()

反向列表中元素

9

list.sort( key=None, reverse=False)
对原列表进行排序

10

list.clear()

清空列表

11

Obj = list.copy()

复制列表

 

8、 元组

元组与列表类似,但元组元素不能修改,元组使用小括号。元组创建只需要在括号中添加元素,并使用逗号隔开即可。

创建空元组:tup1 = ();

元组中只包含一个元素时,需要在元素后面添加逗号,否则括号会被当作运算符使用

访问元组:元组可以使用下标索引来访问元组中的值

修改元组:元组中的元素值是不允许修改的,但我们可以对元组进行连接组合

删除元组:元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组,如下实例:

元组运算符:元组索引,截取

因为元组也是一个序列,所以我们可以访问元组中的指定位置的元素,也可以截取索引中的一段元素,如下所示:

元组内置函数

序号

函数及描述

1

len(tuple)
元组元素个数

2

max(tuple)
返回元组元素最大值

3

min(tuple)
返回元组元素最小值

4

tuple (seq)
将列表转换为元组

 

9、  字典

字典的每个键值对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中,格式如下所示:

d = {key1 : value1, key2 : value2 }

键必须是唯一的,但值则不必。值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。

访问字典里的值:把相应的键放入到方括号中

修改字典

向字典添加新内容的方法是增加新的键/值对,修改或删除已有键/值对

删除字典元素

能删单一的元素也能清空字典,清空只需一项操作。

显示删除一个字典用del命令,如下实例:

字典键的特性

字典值可以是任何的 python 对象,既可以是标准的对象,也可以是用户定义的,但键不行。

两个重要的点需要记住:

1)不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住,如下实例:

2)键必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行,如下实例:

字典内置函数

序号

函数及描述

1

len(dict)

计算字典元素个数,即键的总数。

2

str(dict)

输出字典,以可打印的字符串表示。

3

type(variable)

返回输入的变量类型,如果变量是字典就返回字典类型。

字典内置方法

序号

方法及描述

1

dict.clear()

删除字典内所有元素

2

dict.copy()

返回一个字典的浅复制

3

dict.fromkeys(seq[, value])

创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值

4

dict.get(key, default=None)

返回指定键的值,如果值不在字典中返回default值

5

key in dict

如果键在字典dict里返回true,否则返回false

6

dict.items()

以列表返回可遍历的(键, 值)元组数组

7

dict.keys()

返回一个迭代器,可以使用 list()来转换为列表

8

dict.setdefault(key, default=None)

和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default

9

dict.update(dict2)

把字典dict2的键/值对更新到dict里

10

dict.values()
返回一个迭代器,可以使用 list()来转换为列表

11

pop(key[,default])

删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。

12

popitem()

随机返回并删除字典中的最后一对键和值。

 

10、              集合

集合(set)是一个无序的不重复元素序列。使用大括号{}或者set()函数创建集合,注意:创建一个空集合必须用set()而不是{},因为{}是用来创建一个空字典。例如:

parame = {value01,value02,...} 或者set(value)

1) 两个集合间的运算

a – b  # 集合a中包含而集合b中不包含的元素

a | b  # 集合a或b中包含的所有元素

a & b  # 集合a和b中都包含了的元素

a ^ b  # 不同时包含于a和b的元素

2) 集合内置方法

序号

方法

描述

1

add()

为集合添加元素

2

clear()

移除集合中的所有元素

3

copy()

拷贝一个集合

4

difference()

返回多个集合的差集

5

difference_update()

移除集合中的元素,该元素在指定的集合也存在

6

discard()

删除集合中指定的元素

7

intersection()

返回集合的交集

8

intersection_update()

返回集合的交集

9

isdisjoint()

判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False

10

issubset()

判断指定集合是否为该方法参数集合的子集

11

issuperset()

判断该方法的参数集合是否为指定集合的子集

12

pop()

随机移除元素

13

remove()

移除指定元素

14

symmetric_difference()

返回两个集合中不重复的元素集合。

15

symmetric_difference_update()

移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中

16

union()

返回两个集合的并集

17

update()

给集合添加元素

 

11、              分支语句 if else

根据判断条件选择执行路径,注意语句的缩进,补充:占位符(pass)

使用方法:if <条件1>:

               <语句块1>

           elif<条件2>:

               <语句2>

           …

           else:

               <语句N>

12、              循环语句 while

根据判断条件确定程序执行次数

使用方法:

当条件为真(True)时,执行语句块1;为假(False)时,退出循环

while(<条件>):

               <语句块1>

else:

<语句块2>

13、              循环语句 for

根据判断条件确定程序执行次数

使用方法:

for <variable> in <sequence>:
             <语句块1>

else:

             <语句块2>

 

14、              文件操作

1)open()方法

  • open()方法用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开,会抛出OSError。

注意:使用 open()方法一定要保证关闭文件对象,即调用 close() 方法。

  • open() 函数常用形式是接收两个参数:文件名(file)和模式(mode):
  • open(file, mode)

完整的语法格式为:

  • open(file,mode=‘r‘, buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

参数说明:

file:      必需,文件路径(相对或者绝对路径)。

mode:    可选,文件打开模式

buffering: 设置缓冲

encoding: 一般使用utf-8

errors:   报错级别

newline:  区分换行符

closefd:   传入的file参数类型

  • opener:

 

mode参数有:

序号

模式

描述

1

t

文本模式(默认)

2

x

写模式,新建一个文件,如果该文件已存在则会报错

3

b

二进制模式

4

+

打开一个文件进行更新(可读可写)

5

U

通用换行模式(Python3不支持)

6

r

以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。

7

rb

以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等

8

r+

打开一个文件用于读写。文件指针将会放在文件的开头。

9

rb+

以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等

10

w

打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件

11

wb

以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等

12

w+

打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件

13

wb+

以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等

14

a

打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入

15

ab

以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入

16

a+

打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写

17

ab+

以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写

默认为文本模式,如果要以二进制模式打开,加上b。

模式总结如下:

 

模式

r

r+

w

w+

a

a+

+

+

 

+

 

+

 

+

+

+

+

+

创建

 

 

+

+

+

+

覆盖

 

 

+

+

 

 

指针在开始

+

+

+

+

 

 

指针在结尾

 

 

 

 

+

+

3) file对象常用的函数:

序号

函数

描述

1

file.close()

关闭文件。关闭后文件不能再进行读写操作。

2

file.flush()

刷新文件内部缓冲,直接把内部缓冲区的数据立刻写入文件,而不是被动的等待输出缓冲区写入。

3

file.fileno()

返回一个整型的文件描述符(filedescriptorFD整型),可以用在如os模块的read方法等一些底层操作上。

4

file.isatty()

如果文件连接到一个终端设备返回True,否则返回False。

5

file.next()

Python3中的File对象不支持next()方法。返回文件下一行。

6

file.read([size])

从文件读取指定的字节数,如果未给定或为负则读取所有。

7

file.readline([size])

读取整行,包括"\n"字符。

8

file.readlines([sizeint])

读取所有行并返回列表,若给定sizeint>0,返回总和大约为sizeint字节的行,实际读取值可能比sizeint较大,因为需要填充缓冲区。

9

file.seek(offset[,whence])

移动文件读取指针到指定位置

10

file.tell()

返回文件当前位置。

11

file.truncate([size])

从文件的首行首字符开始截断,截断文件为size个字符,无size表示从当前位置截断;截断之后后面的所有字符被删除,其中Widnows系统下的换行代表2个字符大小。

12

file.write(str)

将字符串写入文件,返回的是写入的字符长度。

13

file.writelines(sequence)

向文件写入一个序列字符串列表,如果需要换行则要自己加入每行的换行符。

 

15、              字符编码与转码

参考:https://www.cnblogs.com/luotianshuai/articles/5735051.html

 

https://www.cnblogs.com/alex3714/category/770733.html

 

16、              函数定义

函数调用时参数为实参,定义时参数为形参,参数列表用”,”逗号隔开

def <函数名>(<参数列表>):

                    <函数体>

                    return <返回值列表>

需要说明的是,常规引入主函数方法如下:

def main()

    <函数体>

if  __name__ == ‘__main__’:

    main()

17、              lambda函数

说明:特殊函数(匿名函数),用于简单的、能够在一行内表示函数,计算结果为返回值

使用方法:<函数名> = lambda<参数列表>:<表达式>

 

2_Python3 基础知识

原文:https://www.cnblogs.com/zhangshiwu/p/12250856.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!