列表

获取指定对象出现的次数:count() e g: listname.count(obj)

获取指定元素首次出现的下标: index()

修改列表元素:指定列表名和要修改的元素的索引 再指定该元素的新值

​ eg: sum[0]='ABC' 即把sum列表的第一个数改为'ABC'

在列表中添加元素:

  1. 在列表末尾添加元素 e g: sum.append('ABC')

  2. 在列表中插入元素 (任何位置) 需要指定新元素的索引和值

    ​ e g: sum.insert(0,'ABC')

从列表中删除元素: del sum[0]

排序: sort() 永久排序 sorted() 临时排序 reverse() 反转排序

cars = ['bmw', 'audi', 'toyota', 'subaru']

cars.sort()

print(cars) 输出:['audi', 'bmw', 'subaru', 'toyota']

list=[1,6,5,34,8,52]

list.sort()

print(list)

列表切片: e g:[2:4] 第三个到第四个

players = ['charles', 'martina', 'michael', 'florence', 'eli']

print(players[0:3]) 输出:['charles', 'martina', 'michael']

players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players[1:4]) 输出:['martina', 'michael', 'florence']

players = ['charles', 'martina', 'michael', 'florence', 'eli']

print(players[:4]) 输出:['charles', 'martina', 'michael', 'florence']

复制列表:即同时省略起始索引和终止索引([:])

e g: my_foods = ['pizza', 'falafel', 'carrot cake']

​ friend_foods = my_foods[:]

元组

注:使用圆括号、数据不可修改

遍历元组 e g: dimensions = (200, 50)
for dimension in dimensions:
print(dimension)

虽然不能修改元组的元素,但可以给存储元组的变量赋值

字典

zip() 函数:用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表

字典用放在花括号 {} 中的一系列键—值对表示 e g: alien_0 = {'color': 'green', 'points': 5}

访问字典中的值 : 依次指定字典名和放在方括号内的键 print(alien_0['color'])

添加键—值对 : 可依次指定字典名、用 方括号括起的键和相关联的值

​ alien_0['y_position'] = 25

文件

参数 方式 文件
r 只读模式 需存在
rb 二进制格式(打开)、只读模式 需存在
R+ 可读可写入模式,覆盖当前文本内容 需存在
rb+ 二进制格式(打开)、读写模式 需存中
w 只读模式 存在则覆盖,不存在新建
wb 二进制格式(打开)、只读模式 存在则覆盖,不存在新建
w 先清空文件,然后可读写 存在则覆盖,不存在新建
wb+ 二进制格式(打开)、读写模式 存在则覆盖,不存在新建
a 追加模式打开文件,在文件末尾可写入
ab 二进制格式(打开)、后同上
a+ 以读写模式打开、末尾追加(与a进制不同)
ab+ 二进制格式(打开)、后同上

python读取文件

方法 说明
file.read([number]) 这种方式用于读取文本的指定字符串长度
file.readline() 这种方式读取文本的第一行内容
flie.readlines() 这种方式读取了文本的所有内容,并把每一行内容放到一个list中
file.flush() 刷新缓冲区,立即写到磁盘上
file.seek(index) 移动文件到指定的索引处,从此位置开始读取,但写入从最后开始
with open 使用完自动关闭,省去file.close()操作
encoding='utf-8' 读写的文件含中文时添加
  • "r" - 读取 - 默认值。打开文件进行读取,如果文件不存在则报错。

  • "a" - 追加 - 打开供追加的文件,如果不存在则创建该文件。

  • "w" - 写入 - 打开文件进行写入,如果文件不存在则创建该文件。

  • "x" - 创建 - 创建指定的文件,如果文件存在则返回错误。

  • "a" - 追加 - 会追加到文件的末尾

  • "w" - 写入 - 会覆盖任何已有的内容

    指定文件是应该作为二进制还是文本模式进行处理

  • "t" - 文本 - 默认值。文本模式。

  • "b" - 二进制 - 二进制模式(例如图像

    e g: open() 函数返回文件对象,此对象有一个 read() 方法用于读取文件的内容

f = open("demofile.txt", "r")
print(f.read())

注:demofile.txt有该文件,位于与 Python 相同的文件夹中

e g: 返回文件中的前五个字符:

f = open("demofile.txt", "r")
print(f.read(5))

seek() 将文件的指针移动到新的位置 例可以从文件的第19个字符读取13个字符

注:一个汉字按两个字符 英文和数字占一个字符

 with open('message.txt,'r')as file 
   file.seek(19)
   string=file.read(13)
   print(string)

readline() : 方法返回一行

f = open("demofile.txt", "r")
print(f.readline())

close() 函数 :是专门用来关闭已打开文件的

写入已有文件: 实例

打开文件 "demofile2.txt" 并将内容追加到文件中:

f = open("demofile2.txt", "a")
f.write("Now the file has more content!")
f.close()

# 追加后,打开并读取该文件:
f = open("demofile2.txt", "r")
print(f.read())

删除文件:

删除文件,必须导入 OS 模块,并运行其 os.remove() 函数

实例:

删除文件 "demofile.txt":

import os
os.remove("demofile.txt")

删除整个文件夹,请使用 os.rmdir()

import os
os.rmdir("myfolder")
方法 描述
close() 关闭文件。
detach() 从缓冲区返回分离的原始流(raw stream)。
fileno() 从操作系统的角度返回表示流的数字。
flush() 刷新内部缓冲区。
isatty() 返回文件流是否是交互式的。
read() 返回文件内容。
readable() 返回是否能够读取文件流。
readline() 返回文件中的一行。
readlines() 返回文件中的行列表。
seek() 更改文件位置。
seekable() 返回文件是否允许我们更改文件位置。
tell() 返回当前的文件位置。
truncate() 把文件调整为指定的大小。
writeable() 返回是否能够写入文件。
write() 把指定的字符串写入文件。
writelines() 把字符串列表写入文件。

在调用open函数添加 encoding='utf-8' 参数实现将编码指定为utf-8

注:即可以添加文字的文本 不成乱码

目录操作

在os模块中存在创建目录的函数os.mkdir()

语法格式为:

os.mkdir(path)   (名字为path)

判断目录是否存在的函数:

os.path.exists(path)
eg:
      import os
      if os.path.exists("text.txt"):
          print("该目录存在")
      else:
          print("该目录不存在")

创建多级目录:os.makedirs()

os.makedirs(path)

eg: 

      import os

      now=os.getcwd()      注:getcwd() 为返回当前进程的工作目录

      os.makedirs("one\kiki\zizi")

      print("创建成功")

删除目录: 使用os模块中的os.rmdir()函数

import os
if not os.path.exists( '一级目录' ):
   os.mkdir( '一级目录' )

重命名: os.rename(str,dst) 注:str为更改的文件或目录,dst为新的名字

 eg:

   import os 

   os.rename(r"D:\vstest\一级目录Kiki",r"D:\vstest\一级目录ljx")

删除文件os.remove() 注:在删除文件的时候最好使用绝对路径

import os 
os.remove(r"D:\vstest\一级目录ljx111")

面向对象程序设计

面向对象编程有三大特点: 封装 继承 多态

引用类 例:

class Turtle:

​ def climb(self):

​ print("刮风这天我试过握住你手")

​ 输:

1.类 的定义: class关键字

class Name:

'''类文档'''

content

注:name为创建类的名字 尽量首字母都大写 content为类中的类体 包含变量 属性 方法等

eg 来定义一个类:

class School:

pass

school =school()

print(type(school)) 注:通过输出看一下类型 <class 'main.school'>

2. -init-()方法 (使用该方法必须包含一个self参数) 调用时,不用传递该参数

构造方法: 在创建类的时候,往往创建一个—init—()的方法

比如:处理学生的成绩表

class student(object):`

   def_init_(self,name,score):`

​          self.name=name

​          self.score=score

   def print_score(self):

​          print("%s: %s"%(self.name,self.score))

​ 调用: bart.print_score() →Bart Simpson: 59

例题:

class Student(object):

def _init_(self,name,score):

self.name=name

self.score=score

def get_grade(self):

if self.score>=90:

return 'A'

elif self.score>=60:

return 'B'

else:

return 'C'

输入:

lisa = Student('Lisa', 99)
bart = Student('Bart', 59)
print(lisa.name, lisa.get_grade())
print(bart.name, bart.get_grade())
输出: Lisa A
      Bart C

在Python中,实例的变量名如果以__开头,就变成了一个私有变量(private),只有内部可以访问,外部不能访问

class Student(object):

    def __init__(self, name, score):
        self.__name = name
        self.__score = score

    def print_score(self):
        print('%s: %s' % (self.__name, self.__score))
>>> bart = Student('Bart Simpson', 59)
>>> bart.__name
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'Student' object has no attribute '__name'

判断对象类型使用type( )函数:

判断class的类型 使用 isinstance()函数:

例:

isinstance(h, Husky)
True

没有问题,因为h变量指向的就是Husky对象。

获得一个对象的所有属性和方法 使用dir()函数

模块

模块是一组python代码的集合,可以使用其他模块,也可以被其他模块使用

注: 创建自己的模块时,模块名不要使用中文、特殊字符:

不要和系统的模块名起冲突

正则表达式

进行文本匹配的工具

e g:某个字符串匹配某个正则表达式,通常指这个字符串里有一部分或几部分能够满足表达式给出的条件

\b :正则表达式元字符 可以代表单词的开始或结尾 只是匹配一个位置

\n : ASCII编码为10的字符 换行符

. :是匹配除了换行符以外的任意字符

*代表的不是字符 也不是位置而是数量 说明前面的内容可以连续重复使用任意次

.* :任意个数量不包含换行的字符

\d: 匹配一位数字

-: 不是元字符 匹配他本身

\bnihao\b.*\blianjunxian\b
析:一个 nihao 然后任意个字符,不能换行 最后的单词是lianjunxian
0\d\d-\d\d\d\d\d\d\d\d
解析:0开头 后跟两位数字,然后—,后跟8位数字
法二:
0\d{2}-\d{8}

\s :匹配任意的空白符,包括空格、制表符(tab) ,换行符,中文全角空格

\w: 匹配字母或下划线或数字或汉字等

* 匹配前面的字符零次或多次

+: 匹配前面的字符一次或多次

^: 表示匹配字符串的开始

**$: ** 表示匹配字符串的结束

\ba\w*\b
解:a开头 且中间有任意量的数字或字母 然后单词结束 即a开头的
\d+    匹配一个或多个连续的数字
\b\w(6)\b    匹配6个字符

代码 意义
. 匹配除换行符以外的任意字符
\w 匹配字母或数字或下划线
\s 匹配任意的空白符
\d 匹配任意数字
\b 匹配单词的开始或结束
^ 匹配字符串的开始
$ 匹配字符串的结束
\n 匹配一个换行符
\t 匹配一个制表符

字符转义: 当无法指定一些元字符时,\ 就用上了

c:\\windows
就是
c:\windows
代码 说明
* 0或多
+ 1或多
0或1
{n} 重复n次
{n,} >=n
{n,m} n到m次
lianjunxian\d+
解析:lianjunxian后加一个或多个数字
^\w+
解析: 开头至少是一个字母数字或下划线或汉字

字符类

[ ] :匹配其中任意一个

{ }: 重复次数 例:[1-9]{1,3} 在1-9内选取1位或2位或3位数字

  1. [0-9]代表的含意与\d意思一样

  2. [a-z0-9A-Z_]也完全等同于\w

  3. ()也是元字符,需要转义字符来进行

\a 报警字符(打印它的效果是电脑嘀一声)
\b 通常是单词分界位置,但如果在字符类里使用代表退格
\t 制表符,Tab
\r 回车
\v 竖向制表符
\f 换页符
\n 换行符
\e Escape
\0nn ASCII代码中八进制代码为nn的字符
\xnn ASCII代码中十六进制代码为nn的字符
\unnnn Unicode代码中十六进制代码为nnnn的字符
\cN ASCII控制字符。比如\cC代表Ctrl+C
\A 字符串开头(类似^,但不受处理多行选项的影响)
\Z 字符串结尾或行尾(不受处理多行选项的影响)
\z 字符串结尾(类似$,但不受处理多行选项的影响)
\G 当前搜索的开头
\p{name} Unicode中命名为name的字符类,例如\p{IsGreek}
(?>exp) 贪婪子表达式
(?-exp) 平衡组
(?im-nsx:exp) 在子表达式exp中改变处理选项
(?im-nsx) 为表达式后面的部分改变处理选项
(?(exp)yes|no) 把exp当作零宽正向先行断言,如果在这个位置能匹配,使用yes作为此组的表达式;否则使用no
(?(exp)yes) 同上,只是使用空表达式作为no
(?(name)yes|no) 如果命名为name的组捕获到了内容,使用yes作为表达式;否则使用no
(?(name)yes) 同上,只是使用空表达式作为no

python 细节

While True,让它能循环运行
python strip():返回移除字符串头尾指定的字符生成的新字符串
str2 = " Runoob "; # 去除首尾空格
print str2.strip();
Python split( ) :通过指定分隔符对字符串进行切片
eg: txt = "apple#banana#cherry#orange"
x = txt.split("#")
print(x)
answer: ['apple', 'banana', 'cherry', 'orange']
str -- 分隔符:默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等
while True:意思是要一直进行loop(死循环)。
通常while true 循环中会加入break条件判断用以在
循环内部的某个条件达成时终止循环。
try except :首先执行 try 中的代码块,如果执行过程中出现异常,把该异常
对象交给该 except 块处理
map() 函数: iterable 中的每个项目执行指定的函数。
项目作为参数发送到函数。
ord函数取字母的ASCII值,chr()是ord()的反方法
end : “end=' '”意思是末尾不换行,加空格。 end默认值是换行符\n

format() 方法格式化指定的值,并将其插入字符串的占位符内。

{:.2f} 表示打印输出小数点保留两位小数; eg:print('c={:.2f}'.format(c))

sum[::-1]: 让sum列表倒序输出。

range()函数:数的第一个值,是包含这个值,计数的最后一位,不包含这个值

​ range(start, stop[, step])

    eg:list``(``range``(``0``, ``10``, ``3``))范围``0``-``9``,步长为``3

打印数字1~5,需要使用range(1,6): for value in range(1,6):

​ print(value)

函数可变参数:参数前加*,这种方式的可变参数在传递的时候是以元组的形式传递

title() 所有单词的首个字母转化为大写,其余字母均为小写 istitle()

append:给元组或列表增加数据,eg: a.append(i)

isalpha() 方法检测字符串是否只由字母组成

isdigit() 方法检测字符串是否只由数字组成 e g: str.isdigit()

eval() 函数 用来执行一个字符串表达式,并返回表达式的值

函数open():接受一个参数: 要打开的文件的名称

检索字符串一定要在数据上加上引号

更多文章请关注《万象专栏》