day2-Tensorflow2.0-python语言基础

数据类型

数字,字符串,列表,元组,字典,集合

数字(Numbers):整型(Integer),浮点数(Float),布尔值(Boolean),复数(Complex)
字符串(String):

  • 使用成对的单引号或者双引号括起来
  • 使用三重引号指定一个多行字符串(文档字符串)
  • 多行注释
    标识符(Identifier):变量、函数、数组、文件、对象等的名字
  • _xxx # 类中的保护变量名
  • __xxx # 类中的私有变量名
  • __xxx __ # 系统定义的标识符

常量

  • 数字、字符串、布尔值、空值等
  • python中没有命名常量

变量

  • python变量不需要声明
  • 其数据类型由所赋的值来决定
  • 不同类型的数字型数据运算时,会自动的进行类型转换bool<int<float<complex
  • 数据类型转换函数,用help函数查看用法

运算符:完成不同类型的常量、变量之间的运算
算术运算符;赋值运算符;连续赋值,多元赋值;逻辑运算符;比较运算符;位运算符;字符串运算符;成员运算符

x = (y = z + 1)

# 这句话错在(y=z+1)是一个整体,不能整体赋值给x
# 可以改为x=(y==z+1)

表达式:由常量变量和运算符组成


程序控制语句

  • 条件分支语句:if-else语句;if-elif-else语句;if条件表达式
  • 循环语句:while语句;for语句;range函数;终止循环

内置数据结构

  • 内置数据结构(sequence):字符串、列表、元组
    列表(list): 索引,切片,打印,获取序列的长度——len,更新列表——向列表中添加元素(append,insert),合并列表(extend,+运算符),删除列表中的元素(del),排序(sort:对列表中的元素排序;reverse:对列表中的元素倒排序)
    元组(tuple): 一经定于,不允许更改
    字典(Dictionary): 键值对;创建字典;打印字典、访问字典中的元素;判断字典是否存在元素——in运算符;遍历字典元素(keys():返回字典中所有的关键字;values():返回字典中所有的值;items():返回字典中所有的键值对);更新字典(添加元素、修改指定元素的取值);合并字典(update():将一个字典中的元素追加到字典中);删除字典中的元素(pop,clear,del语句);
    集合(set): 可变集合(set);不可变集合(frozenset)

函数和模块

函数(function)

  • 实现某种特定功能的代码块
  • 程序简洁,可重复调用、封装性好、便于共享
  • 系统函数和用户自定义函数

Python内置函数:

  • 数学运算函数
函数 原型 具体说明
abs() abs(x) 返回x的绝对值
pow() pow(x,y) 返回x的y次幂
round() round(x[,n]) 返回浮点数x的四舍五入值,参数n指定保留的小数位数,默认为0
divmod() divmod(a,b) 返回a除以b的商和余数,返回一个元组;divmod(a,b)返回(a/b,a%b)
  • 输入输出函数
  • 类型转换函数
  • 逻辑判断函数
  • 序列操作函数
  • 对象操作函数

用户自定义函数:

  • 定义函数:函数名、参数和返回值
def 函数名(参数列表):
	函数体
# 参数列表是形式参数/形参,在定义时并没有确定的值,只是用来说明函数的功能
  • 调用函数
函数名(参数列表)
# 参数列表是实际参数/实参,实参的个数、类型应该与形参一一对应,并且要有确定的值
  • 通过多元赋值语句,同时获取多个返回值
  • 无形式参数时小括号不能省略

变量的作用域

  • 局部变量(Local Variable):在函数中定义的变量,仅在定义它的函数内部有效;
  • 全局变量(Global Variable):在函数体之外定义的变量,在定义后的代码中都有效,包括在它之后定义的函数体内;

函数的参数
参数的传递:

  • 按值传递:形参和实参分别存储,相互独立
  • 在内部函数改变形参的值时,实参的值不会随之改变

参数的默认值:

def 函数名(参数1=默认值,参数2=默认值...)
	函数体

# 当函数中有多个默认值时,只能从右开始依次设置

向函数内部批量传递数据:

  • 可以使用列表、字典变量作为参数,向函数内部批量传递数据
  • 当使用列表或字典作为函数参数时,在函数内部对列表或字典的元素所做的修改,会改变实参的值。

模块、包和库

模块(Module)

  • 模块是一个python文件,拥有多个功能相近的函数或类。
  • 便于代码复用,提高编程效率,提高代码的可维护性。
  • 避免函数名和变量名冲突

包(Package)

  • 为了避免模块冲突,Python引入按目录来组织模块的方法
  • 一个包对应一个文件夹,将功能相近的模块,放在同一个文件夹下
  • 在作为包的文件夹下有一个__init__.py文件
  • 子包:子目录中也有__init__.py文件

库(Liberay):具有相关功能的模块或包的集合

导入模块/包/库

  • 导入整个包 import 名称 as 别名
  • 导入包中指定的模块或子包 from 模块/包名称 import 函数名 as 函数别名

语句的作用域

  • 在程序顶部导入模块,作用域是全局的
  • 在函数的内部导入语句,作用域就是局部的
  • 建议导入的顺序:
python 标准库/模块
python 第三方库/模块
自定义模块

使用模块/包/库中的函数和变量

模块//库名.函数名(参数列表)
模块//库名.变量名
  • 创建自定义模块:将常用函数的定义放在一个.py文件中
  • 调用自定义模块
  • 当函数较多时,可以按照功能将它们放在不同的模块
  • 一个应用程序中可以定义多个模块

Python标准库中的模块:(常见)
sys模块:提供有关Python运行环境的变量和函数

变量 功能
sys.platform 获取当前操作系统
sys.path 获取指定模块搜索路径
sys.argv 获取当前正在执行的命令行参数的参数列表
函数 功能
sys.exit(n) 退出应用程序
sys.getdefaultencoding() 获取系统当前编码
sys.setdefaultencoding() 设置系统默认编码
sys.getfilesystemencoding() 获取文件系统使用编码方式

platform模块:

函数 功能
platform.platform() 获取操作系统名称及版本号信息
platform.system() 获取操作系统类型
platform.version() 获取操作系统的版本信息
platform.processor 获取计算机的处理器信息
platform.python_build() 获取python的版本信息,包括python的主版本、编译版本号和编译时间等信息

random模块:

函数 功能
random.random() 生成0到1的随机浮点数
random.uniform(a,b) 生成一个指定范围内的随机浮点数。a是下限,b是上限
random.randint(a,b) 生成一个指定范围内的随机整数。a是下限,b是上限
random.choice(seq) 从序列中随机获取一个元素。参数seq表示一个有序类型,可以是一个列表、元组或者字符串
random.shuffle(x) 将一个列表x中的元素打乱

小数和分数处理模块:

  • decimal模块:表示和处理小数
  • fractions模块:表示和处理分数

时间处理模块:

  • time
  • datetime
  • calendar

python面向对象编程

  • 面向对象的程序设计(Object-oriented programming,OOP)
  • 面向过程的程序设计(Process-oriented programming,POP)

对象(object):将属性和方法封装在一起
类(class):具有相同的属性和方法的对象集合

  • 对象是类的示例
  • 字类继承了父类的全部属性和方法,并且也有自己特有的属性和方法。
  • 继承也描述了类之间的层次关系
    类和对象并非仅限于具体的事物,它也可以是一种抽象的概念或者规则

声明类

class 类名:
	类属性=初值
	方法(参数列表)
  • 类属性是类中所有对象共同拥有的属性
  • 它在内存中只存在一个副本
  • 它可以通过类名访问,也可以被类的所有对象访问
  • 在类定义之后,可以通过类名添加类属性,新增的类属性也被类和所有对象共有
类属性 含义
__name__ 类的名字
__doc__ 类的文档字符串
__bases__ 类的所有父类组成的元组
__dict__ 类的属性组成的字典/。
__module__ 类所属的模块
__class__ 类对象的类型

创建对象
对象名 = 类名()

添加对象属性
可以动态地添加实例属性,添加的对象属性只属于这个实例自己;

删除对象
del 对象名

构造函数和析构函数

  • 构造函数:在创建对象时,用来完成初始化操作
    __init__(self, 参数2, 参数3, ...)
  • 析构函数:在清除对象时,回收和释放对象所占用的资源
    __del__()
    使用构造函数可以更加灵活的为成员变量赋初值;
    在类的声明中,构造函数和析构函数也可以省略;

静态方法和类方法

  • 类方法
class 类名:
	@classmethod
	def 类方法名(cls,...):
		方法体
# @classsmethod 是装饰器
# 类方法使用装饰器修饰
# 第一个参数必须是当前类对象class,代表定义这个类方法的类,通过它来传递类的属性和方法

类方法可以通过类名或者对象名调用;
不能访问实例属性,但可以访问类属性。
类方法就是将类本身作为对象进行操作的方法

  • 静态方法
class 类名:
	@staticmethod
	def 类方法名():
		方法体

静态方法可以通过类名或对象名调用;
不能访问实例属性,也不能之间访问类属性,但是可以通过类名引用类属性。

公有变量和私有变量

  • 公有变量:可以在类的外部访问
  • 保护变量:智能允许其本身和字类进行访问
  • 私有变量:不允许在类的外部访问
__xxx:私有变量
_xxx:保护变量
__xxx__:专有变量,方法

继承(inheritance)
字类能够继承父类中的所有非私有的成员变量和成员函数。

class 子类名(父类名)
	类属性=初值
	方法(参数列表)

文件

打开文件
文件对象 = open(文件名, 访问模式)

获取当前路径

import os
print(os.getcwd())

参数“访问模式”的可取值

访问模式 执行操作
‘r’ 以只读方式打开文件
‘w’ 以写入方式打开文件,会覆盖已经存在的文件
‘a’ 以写入方式打开文件,在末尾追加写入
‘+’ 以可读写的方式打开文件
‘b’ 以二进制模式打开文件
‘t’ 以文本模式打开文件(默认)

关闭文件
文件对象.close()

读取文件的内容
文件对象.read()
文件对象.readline()

向文件中写入数据
write(写入内容)

  • 在写入write()函数之前,要确保open()函数的访问模式,是支持写入的
  • 写入成功之后,会返回写入的字符数,是一个整数
发布了80 篇原创文章 · 获赞 6 · 访问量 7642

猜你喜欢

转载自blog.csdn.net/qq_33749437/article/details/104284710