语言 | Python基础知识总结

Python发展的未来方向

  1. 数据分析
  2. 自然语言处理
  3. 社交网络分析
  4. 人工智能
  5. 深度学习
  6. 计算机视觉
  7. 网络爬虫
  8. 量化交易

Python语言特点

  1. 语法简洁,实现相同功能,代码量相当于其他语言的1/10~1/5
  2. 跨平台,可用于大部分操作系统,集群,服务器,甚至小设备(树莓派)上
  3. 可扩展,可与其他编程语言集成,如C,C++,Java等
  4. 开放源码,Python和大部分支持库及工具都是开源的
  5. 多用途,可用于快速,交互式代码开发,也可用于构建大型应用程序,如科学计算,数据处理,人工智能等
  6. 类库丰富,除了自身提供的几百个内置库,开源社区还贡献了十几万个第三方库,拥有良好的编程生态…

1.配置

软件安装完成配置了sublime的插件,运行了第一个hello world程序,可以在终端和IDE运行。

2.变量

字符串 方法 . upper()、.lower()、.title()首字母大写

去除空白 .lstrip() .strip() .rstrip()

整数和浮点型

str() 转化为字符串

注释 #…

import this 常看隐藏

3.列表

array[-1] 返回最后一个数组元素,以此类推。下标从0开始

.append() 在最后面追加新的列表元素

.insert(index,data)在列表的指定索引位置插入新的元素

del 语句 删除 del array[index]

.pop(index) 删除指定索引位置的值,默认删除最后一个元素

.remove(value)删除列表中指定值的元素

.sort()排序 按字母 反向可设置 sort(reverse=True )永久性排序,会改变原数组

sorted() 临时排序,不改变原数组

.reverse(列表) 倒着排序

len() 获取列表长度 不是方法,没有.len()

4.操作列表

range(start,end , 步长 ) 生成系列数字

list( ) 可以将range()的结果转换为列表

统计运算 min() max() sum()

列表解析 array=[x2 for x in range(1,10)]

*切片 使用列表的一部分 print(array[start:end])

元组 不可修改的列表 使用括号包闭 array=(200,400)可以重新赋值但不能修改元素

设置代码格式 缩进 (四个空格) 行长 空行 Python改进方案 PEP8

5.if语句

== 比较

and 连接多个条件

or 同上,一个成立即可

…in…

…not in…

if …if if 多个if独立语句

if-else

if-elif-else 只执行一个代码块

输出1-9序列:

num_arrays = [1,2,3,4,5,6,7,8,9]
for num_array in num_arrays: 
	if num_array == 1:    
	print('1st')  
	elif num_array == 2:    
	print("2nd")  
	elif num_array == 3:    
	print("3rd")  
	else:    
	print(str(num_array)+"th")
print("all over")

6.字典

键值对,用{ }包含,逗号隔开

for key, value in dictionary.items(): 其中key,value名称可以任意

Python不关心键值对的添加顺序,只关心键值对的关联关系。

.items() 遍历字典键值对列表

.keys() 遍历字典的键,返回列表

.values() 遍历字典的值,返回列表
1.在字典中存储列表

2.在列表中存储字典

3.在字典中存储字典

item = []
for item_nums in range(30):  
    item_array = {'cyk':'xxxx'}  	        	
    item.append(item_array)
for item_new in item[:5]:  
    print(item_new)

7.用户输入和while循环

input() 输入并用变量保存

int() 转化为数值

% 求模运算符

raw_input() Python 2.7中输入

while

flag = True 使用标志,用于会有多个条件发生变化时break 不继续执行,退出整个循环

continue 不继续执行,回到循环开头,根据条件判断是否继续循环

使用while循环处理列表和字典

8.函数 def

实参和形参

文档字符串 ‘’’’’’ ‘’’’’’ 描述函数内容

位置实参 实参与形参位置一一对应

关键字实参 在调用时采用键值对,不考虑顺序 (形参=实参)

返回值 return

切片表示法 [ : ] 创建列表副本,不会影响原列表(会花时间和内存创建副本,一般不用)

*arrays 传递任意数量的实参 ,显示为元组
**info 传递任意数量的实参,存储到字典中

引用模块 import module_name 调用 module_name.function_name()

引用模块方法 from module_name import function_name1,2,3 调用 function_name()

创建别名 from module_name import function_name as fn 调用 fn()

给模块指定别名 import module_name as mn

导入所有函数 from module_name import * 调用:直接调用函数 实践中一般不用,采用具体导入和句点表示法

函数编写指南

函数名: 全部小写和下划线,描述性文字

文档字符串’’’’’’ ‘’’’’’’ 描述函数功能

给形参指定默认值,以及函数调用中的关键字实参,不要加空格

def fun_name(parameter_0,parameter_1='temp')

fun_name(para_0,para_1='temp1')

9.类、面向对象编程

class Dog() 类名首字母大写

Python 2.7 中创建类 class Dog(object)

init(self) self 表示指示实例本身的引用,不需要传参 init() 特殊的方法

以self为前缀的变量可以供类中所有方法使用

class Dog():  
	def __init__(self, name, age):    				
        self.name = name    
		self.age = age
  	def dog_run(self):    
  		print(self.name +" run")
  	def dog_jump(self):    
  		print(self.name +" jump")
  		
dog = Dog('ss', 13)
dog.dog_jump()

继承

class Son(Father):   
	def __init__(self,A,B,C):     			 		
        super().__init__(A,B,C)

python 2.7 需要两个实参:子类名和对象

class Son(Father):   
	def __init__(self,A,B,C):     					
        super(Son,self).__init__(A,B,C)

模块和类的相互引用 引用语句中不加括号 import module_name 调用: module_name.class_name

from module_name import ClassName

from module_name import * 不推荐使用

类编码风格

类名:驼峰法命名法 ClassName, 不使用下划线

类和模块都需要文档字符串描述功能 ‘’’’’‘说明’’’’’’

类使用一行空行分隔方法,模块使用两行空行分隔类。

10.文件和异常

异常:Python创建的特殊对象

with open('file.txt') as new_name:   
    temp = new_name.read()
print(temp)

with 在不再需要访问文件时将其关闭,比close() 要好,python会自动在合适的时机关闭

文件路径: 相对路径 绝对路径

window中使用\来划分,Linux和OS X中使用/划分

file_path='home\files\file_name.txt'
with open(file_path) as new_name:

.readlines() 逐行读取

.replace(old, new)

.split() 将字符串按空格划分成列表

open(‘地址’,‘w’) 写入文件

读取模式:‘r’(默认)

写入模式:‘w’ 会清空原文件内容,不存在则新建

附加模式:‘a’ 以追加方式写入文件,不存在则新建

读写模式:‘r+’.write() 写入文件 不会自动换行,要加\n

错误处理:

将可能引发错误的代码放入 try-except结构中,依赖于try成功执行的代码放入else中

try:  
	.....
except 错误类型:  
	....
else:  
	.....

ZeroDivisionError FileNotFoundError
使用pass跳过错误,不执行任何操作except

ZeroDivisionError:  
	pass

.count(字符串) 计算字符串在原字符串中出现了多少次,区分大小写
使用JSON结构存储数据

json.dump(参数1,参数2) 1:要存储的对象 2:被存储的地方

json.load(文件名) 读取json数据

import json 导入json

重构:将代码划分成一系列完成具体工作的函数,这样的过程叫做重构。重构让代码更清晰,更易于理解和维护。
return None 不返回任意值

11.测试代码

Python模块 unittest

单元测试: 用于测试函数的某个方面没有问题

测试用例:一组单元测试,用于测试函数在各种测试下都符合要求

全覆盖测试:包含一整套单元测试,用于测试函数在各种情况下都没问题,一般难以实现,用于后期。
点击下载

测试方法名必须以test开头

import unittest 导入测试模块

继承 unittest.TestCase类

self.assertEqual(first, second) 断言方法 核实得到的结果与期望的结果是否一致
结果如下:

句点表示一个测试通过了

OK表示所有的单元测试都通过了

测试没有通过:
点击下载

unittest.TestCase中的断言方法点击下载

setUp()方法 用于设置一系列实例及属性,并在测试方法中直接使用这些实例相当于创建全局变量和实例。

def setUp(self):

点击下载
运行测试用例,每完成一个单元测试,都打印一个字符。. 表示通过

E 测试引发错误

F 断言失败

因此在运行测试用例时,在输出的第一行看到的句点和字符串各不相同。


The End

以上,希望对你梳理python知识点有用。

猜你喜欢

转载自blog.csdn.net/CYK5201995/article/details/106420932