Python 基础知识
文章平均质量分 83
Python基础
沉觞流年
博客内容仅是个人学习笔记,不是技术博客。
展开
-
电脑的存储机制
电脑的存储机制1、电脑的存储机制2、单位3、进制以及进制的换算进制二进制:0b 标识八进制:0o十进制:0d十六进制:0x进制的换算十进制换算成二进制二进制换算成十进制八进制转换二进制二进制转换为八进制十六进制转换二进制二进制转换十六进制拓展:4、原码、反码、补码1、电脑的存储机制电脑的作用1.存储数据2.处理数据电脑存储数据有两个地方,内存、磁盘内存:临时数据,正在运行的程序[运存]磁盘:永久数据,软件以及文件图片那么,数据以什么样的方式进行存储的呢?电脑如何记录数据呢?原创 2020-07-08 17:39:41 · 743 阅读 · 0 评论 -
编写Python程序
编写Python程序1、Python 环境搭建2、第一个Python程序1.交互式解释器模式:2.命令行脚本模式:3.集成开发环境(IDE):PyCharm3、Pyhton中文编码拓展4、输入与输出输出输入5、python的编码规范6、python的基本语法7、标识符1、Python 环境搭建window 下搭建python环境1.打开WEB浏览器访问 http://www.python.org/download/2.在下载列表中选择Window平台安装包,包格式为:python-XYZ.msi 文原创 2020-07-08 17:42:41 · 1690 阅读 · 0 评论 -
Python中的变量和常量
Python中的变量和常量变量1、变量概述2、变量的定义:3、删除变量:4、检查变量所占用的内存常量变量变量的概念基本上和初中代数的方程变量是一致的,只是在计算机程序中,变量不仅可以是数字,还可以是任意数据类型。1、变量概述程序可操作的存储区的名称,在运行的期间能够改变的数据,每个变量都是特定的类型作用:将不同类型的数据存储到内存中2、变量的定义:变量名=初始值age = 18注:给定初始值的原因是因为确定变量的类型age = 18print('age =', age)#查看原创 2020-07-08 19:10:08 · 252 阅读 · 0 评论 -
python内存管理
python内存管理每一种语言都有自身的一个内存管理机制,那么在python中是如何进行内存管理的?众所周知,python是一种动态数据类型的语言,在就是说,在python中变量无须事先声明、变量无需指定类型,我们甚至无需关心它的内存管理,那么,python是如何做到如此智能的,内存资源它是如何回收的?可以从这三个方面说起:一、python的内存管理机制----引用计数在pyt...原创 2019-08-25 16:52:39 · 185 阅读 · 0 评论 -
python基本数据类型
python基本数据类型python基本数据类型1、Number(数字)2、String(字符串)3、Boolean(布尔值)4、None(空值)5、list(列表)6、tuple(元组)7、dict(字典)8、set(集合)拓展python基本数据类型为什么会有不同的数据类型?计算机是用来做数学计算的机器,因此它可以处理各种数值,但是计算机能够处理的远远不止是数值,它还可以处理文本、图形、音频、视频等各种各样的数据,不同的数据要定义不同的数据类型。python的基本数据类型分为几种?python原创 2019-10-05 22:46:03 · 220 阅读 · 0 评论 -
Number(数字)
Number(数字)1、数字类型之间的转换2.、数学函数3、math模块的使用4、随机数函数5、三角函数1、数字类型之间的转换> int(x) :将x转换为一个整数> float(x) :将x转换为一个浮点数#浮点数转为intprint(int(1.9))# int转为浮点数print(float(1))#字符串转为intprint(int('123'))#字符串转为floatprint(float('12.3'))#注意:如果有其他无用字符会报错,比如:p原创 2020-07-08 20:38:54 · 1556 阅读 · 0 评论 -
运算符与表达式
运算符与表达式一、算术运算符与算术表达式1、算术运算符2、算术运算表达式二、比较运算符三、赋值运算符与赋值运算表达式四、逻辑运算符五、位运算符六、成员运算符七、身份运算符一、算术运算符与算术表达式1、算术运算符 假设变量 a = 10, b = 20+ :加 两个对象相加 例如 a + b = 30- :减 标识负数/一个数减去另一个数 a - b = -10* :乘 两个数相乘/返回一个被重复若干次的字符串 a*b=200/ : 除 b除以a b/a = 2% : 取模原创 2020-07-08 20:42:35 · 799 阅读 · 0 评论 -
String字符串
String字符串1、什么是字符串2、创建字符串3、字符串运算3.1字符串链接3.1.1 使用加号进行链接3.1.2 使用“,”进行链接【tuple类型】3.1.3 使用%格式化链接3.1.4 使用join函数进行链接3.2 重复输出字符串3.3 获取字符串中的字符3.4 截取字符串3.5 判断是否包含指定字符3.6 格式化输出4.关于字符串常用函数4.1 eval(str)4.2 len(str)4.3 str.lower()4.4 str.upper()4.5 str.swapcase()4.6 str原创 2019-10-05 22:51:53 · 299 阅读 · 0 评论 -
分支语句
分支语句一、if 语句嵌套的if语句if 的神奇用法(三目运算)二、循环语句之whilewhile 之死循环while 循环之elsewhile之简单的语句组三、结束循环语句1.break语句的使用2.continue语句的使用3. pass语句的使用四、循环语句之forfor 循环使用else语句range函数嵌套循环一、if 语句计算机之所以能够自动化执行任务,是因为它自己可以做条件判断。思考1:现有一需求,比如,输入用户年龄,如果小于18,则打印”未成年人禁止进入“if 判断条件: 执行原创 2020-07-08 22:09:18 · 334 阅读 · 0 评论 -
list 列表
list 列表list 列表1、列表概述2、创建列表3、列表元素的访问3.1 列表的取值3.2 列表元素的替换4、列表操作4.1 列表组合4.2 列表重复4.3 判断元素是否在列表中4.4 列表截取4.5 二维列表5、列表的方法5.1 list.append(元素/列表)5.2 list.extend(列表)5.3 list.insert(下标值, 元素/列表)5.4 list.pop(下标值)5.5 list.remove(元素)5.6 list.clear()5.7 list.index(object原创 2019-05-23 22:07:18 · 367 阅读 · 0 评论 -
tuple元组
tuple元组tuple元组1、概述2、元组的创建3、元组元素的访问3.1 访问元组中的元素:3.2 修改元组3.3 删除元组4、元组操作4.1 元组连接组合4.2 元组重复4.3 判断元素是否在元组中4.4 元组的截取5、元组的方法5.1 len(tuple)5.2 max(tuple)5.3 min(tuple)5.4 tuple(list)6、二维元组tuple元组1、概述本质上是一种有序的集合,和列表非常的相似,列表使用[]表示,元组使用()表示特点:一旦初始化,就不能发生改变2、元原创 2020-07-08 22:48:01 · 334 阅读 · 0 评论 -
dict字典
dict字典dict字典1、概述2、key的特性3、字典的创建4、字典操作4.1访问元素4.2 添加元素4.3 删除元素5、字典的遍历6、与list的区别dict字典1、概述dict也是一种存储方式,类似于list和tuple,但是,字典采用键—值(key—value)的形式存储优点:具有极快的查找速度2、key的特性1.字典中的key必须唯一2.key必须是不可变对象例如:字符串、整数等都是不可变的,可以作为keylist是可变的,不能作为key不可变对象:bool,str,nu原创 2020-07-09 00:06:07 · 594 阅读 · 0 评论 -
set集合
set集合1、概述set与dict类似,也是一组key的集合,但与dict的区别在于set不存储value本质:无序且无重复元素的集合2、set的创建语法:set1 = set([1, 2, 3, 4, 5])注意:创建set需要一个list或者tuple或者dict作为输入集合,重复的元素在set中会被自动的过滤s1 = set([1, 2, 3, 4, 5])print(s1)3、set操作3.1 set.add()注意:1.可以添加重复的元素,但是不会有效果2原创 2020-07-09 00:07:50 · 448 阅读 · 0 评论 -
Python四大类型转换
Python四大类型转换1、 list 转换为set2、 tuple 转换为set3、 set转换为list4、set转换为tuple主要针对几种存储工具:list、tuple、dict、set特殊之处:dict是用来存储键值对的1、 list 转换为setl1 = [1, 2, 4, 5]s1 = set(l1)print(type(s1))print(s1)2、 tuple 转换为sett1 = (1, 2, 3, 4)s1 = set(t1)print(type(s1))原创 2020-07-09 00:10:35 · 216 阅读 · 0 评论 -
python2与python3的区别
python2与python3的区别1、性能方面2、编码方面3、语法3.1 print函数3.2 除法运算3.3 异常处理1、性能方面python3.x起始比python2.x效率低,但是python3.x有很大的优化空间,效率正在追赶2、编码方面python3.x原码文件默认使用utf-8,使得命名更加广泛。python3.x>>> 中国 = 'china'>>> print(中国)'china'>>> str = "我爱北京天安门"原创 2020-02-11 23:25:21 · 169 阅读 · 0 评论 -
pip 命令
pip 命令查看 pip 命令参数以及可选项安装卸载查看更新python 这门语言有着庞大的第三方库,我们总会用 pip 命令来安装一些依赖库查看 pip 命令参数以及可选项Windows下可通过快捷键 win + R 输入 cmd 命令打开黑屏终端Linux下例如Ubuntu系统,可通过快捷键 Ctrl + Alt + T打开黑屏终端在终端输入 pip 可以查看所有的命令参数以及可选项安装这里以 flask 库举例,安装 flask 库,默认安装最新版pip install flask原创 2020-09-13 13:31:39 · 2807 阅读 · 0 评论 -
Pipenv
pipenv安装虚拟环境及相应命令原创 2022-07-29 21:23:22 · 8347 阅读 · 3 评论 -
函数
函数1 认识函数2 定义函数3 函数的调用4 最简单的函数5 函数的参数6 函数的返回值7 参数传递7.1位置参数[必选参数]7.1.1 位置参数之值传递7.1.2 位置参数之引用传递7.2 关键字参数7.3 默认参数7.4 不定长参数【可变参数】7.4.1 包裹位置参数 (*args)7.4.2 包裹关键字参数 (**kwargs )1 认识函数函数的概述【方法】函数:在一个完整的项目中,某些功能会反复的使用,那么会将功能会反复的使用,那么会将功能封装成函数,当我们要使用此功能的时候调用即可。优原创 2019-08-25 00:20:26 · 185 阅读 · 0 评论 -
匿名函数
匿名函数概念:是指一类无需定义标识符(函数名)的函数或者子程序。特点:匿名函数不使用def定义函数,使用lambda来创建匿名函数1.lambda只是一个表达式,函数体比def简单2.关键字lambda表示匿名函数,冒号前面的x表示函数参数.3.匿名函数有个限制,就是只能有一个表达式,不用写return,返回值就是该表达式的结果.语法:lambda 参数1,参数2,…,参数n: expression[表达式]好处:函数没有名字,不必担心函数名冲突,此外,匿名函数也是一个函数对原创 2020-07-09 16:04:43 · 1069 阅读 · 0 评论 -
zip函数
zip函数打包解包打包zip()函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同list1 = [1,2,3,4,5]list2 = ["hello","good","nice","haha"]set3 = {True,False,None,0}zipobj = zip(list1,list2,set3) # 打包print(zipobj) # 这是一个包,显示的是包所在的地址原创 2020-07-09 16:07:56 · 13475 阅读 · 9 评论 -
format()函数
format函数 format() 函数与参数结合使用格式化字段将会被 format() 中的参数替换在format()中使用关键字参数,它们的值会指向使用该名字的参数位置及关键字参数可以任意的结合format() 函数与数字,字符结合使用format() 函数与参数结合使用格式化字段将会被 format() 中的参数替换括号及其里面的字符 (称作格式化字段) 将会被 format() 中的参数替换print("我叫{},今年{}!".format("张三",22))print("我叫{0},今年原创 2020-02-14 23:06:51 · 82953 阅读 · 12 评论 -
迭代器与生成器
迭代器与生成器1、列表生成式2、可迭代对象3、 生成器4、 迭代器5、Iterator转换1、列表生成式语法:list = [result for x in range(m, n)]需求:创建一个[1, 2, …100]的列表>>> range(1, 101)[1, 2, 3, 4, 5,...,100]需求2 :生成一个[1x1, 2x2, 3x3,….100x100]的列表>>> list1 = []>>> for原创 2020-07-09 00:13:53 · 177 阅读 · 0 评论 -
Python推导式
Python推导式推导列表list1、普通列表生成式2、带条件的列表生成式3、列表生成式与函数结合推导字典dict推导集合set推导式:推导式从一个可枚举数据(列表,元组,集合,字典等)推导出一个列表。也可以推导出生成器,集合或字典。推导式可以加推导条件,只对符合条件的元素推导要推导出的元素使用表达式生成,可以用 if else 生成不同元素推导列表list1、普通列表生成式生成1到100之间的数字的平方的列表nums = [i*i for i in range(1,101)原创 2021-01-20 21:46:20 · 437 阅读 · 0 评论 -
Python中变量的作用域
Python中变量的作用域1、概述2、作用域的划分2.1 L(local) 局部作用域2.2 E(enclosing) 嵌套作用域2.3 G(global) 全局作用域2.4 B(built-in)内置作用域3 变量名解析LEGB法则4 关键字global1、概述在python程序中,创建,改变,查找变量名的时候,都是在一个保存变量名的空间中进行,我们称之为命名空间,也被称之为作用域.简单来说,变量的作用域就是指变量可以使用的范围程序的变量并不是在任意的位置都可以访问,访问权限取决于这个变量是在哪里原创 2020-07-09 16:28:33 · 771 阅读 · 0 评论 -
偏函数
偏函数python中的functools模块提供了很多有用的功能,其中一个就是偏函数(Partial function)。简单来讲偏函数的作用就是把函数的某些参数给固定住(也就是设置默认值),返回一个新的函数,调用的时候调用新的函数,被固定的参数无需传递。functools.partial(func,args)参数一:要固定的函数的函数名参数二:要固定的参数.功能:将要固定的函数的参数给固定住,然后给你返回一个新的函数.#functools 模块import functools#int(原创 2020-07-09 16:18:39 · 638 阅读 · 0 评论 -
回调函数
回调函数回调函数就是一个通过函数指针调用的函数,如果你把函数的指针(地址)作为一个参数传递给另一个参数,当这个指针被用来调用其所指向的函数时,这就是我们说的回调函数.简单来说:回调函数就是把函数当成一个参数传递到函数中.需求:现在酒店提供免费叫醒服务,叫醒的方式有多种,你可以自己选择,比如夺命电话连环call, 或者是早起冷水迎头泼,随你自己喜欢,只要你提前预约,则酒店工作人员将在你指定的时间用你喜欢的方式叫醒你.def wake_call(time): #第一种叫醒服务 print(ti原创 2019-08-25 12:11:51 · 207 阅读 · 0 评论 -
返回函数
返回函数当函数作为返回值返回的时候,称这个函数为返回函数在python中除了可以接受函数作为参数外,还可以把函数作为结果值返回.需求:实现一个可变参数的求和.通常是这么定义的:def calc_sum(*args): sum = 0 for i in args: sum += i return sum现在需求有变,现在我不需要立即求和,而是在后面的代码中,根据需要再进行计算,这时候,我们可以不返回求和的结果,而是返回求和的函数.def lazy_sum(*args): de原创 2020-07-09 16:38:38 · 247 阅读 · 0 评论 -
闭包
闭包当出现函数嵌套的时候 (即在一个函数内部定义了另一个函数) ,外部的我们暂且称之为外函数,内部的称之为内函数闭包: 在一个外函数中定义了一个内函数,内函数里运用了外函数的临时变量,并且外函数的返回值是内函数的引用 (内函数的函数名) ,这样就构成了一个闭包装饰器是最典型的闭包一般情况下,如果一个函数结束,函数内部所有的东西都会被释放掉,还给内存,局部变量也会消失,但是闭包是一种特殊的情况,如果外函数在结束的时候发现有自己的临时变量将来还会在内部函数中用到,就把这个临时变量绑定给了内函数,然后再自原创 2020-07-09 16:36:44 · 120 阅读 · 0 评论 -
装饰器
装饰器1、装饰器概述2、简单的装饰器3、复杂一点的装饰器4、带@标识符的装饰器不带参数的函数装饰器带参数的函数装饰器不带参数的类装饰器带参数的类装饰器使用偏函数与类实现装饰器能装饰类的装饰器1、装饰器概述在代码运行期间动态增加功能的方式,称之为“装饰器”(Decorator)装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象。实际上就是一个闭包,把一个函数当做函数参数传入,然后返回一个替代版函数,本质上就是一个返回函数的高阶原创 2019-08-25 11:14:53 · 272 阅读 · 0 评论 -
递归函数
递归函数递归函数:在函数的内部,可以调用其他的函数,如果一个函数在内部调用自身本身,这个函数就是递归函数.递归调用:一个函数调用自身,成为递归函数使用递归解决问题的思路:1.写出临界条件2.找这一次和上一次的关系3.假设当前函数已经能用,调用自身计算上一次的结果,再求出本次的结果使用递归的时候考虑的问题:1.效率问题2.递归栈溢出的问题使用递归函数需要注意防止栈溢出,在计算机中函数是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,就会增加一层栈帧,每当函数返回,栈就原创 2020-07-09 16:41:31 · 701 阅读 · 0 评论 -
模块与包
模块与包一、 模块1. 模块的概述2. 模块优点3. 模块的引入4. sys模块4.1 sys.argv4.2 sys.platform4.3 sys.path二、 自定模块1. 自定义模块的创建2. 自定模块的引用之整体引入3. 自定义模块的引用之局部引用4. 自定义模块的引用之 *三、 __name__属性四、包五、 安装第三方模块一、 模块1. 模块的概述在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里的代码就会越来越长,越来越不容易维护.为了编写可维护的代码,我们把很多原创 2019-08-25 16:03:56 · 141 阅读 · 0 评论 -
Python之 os模块
Python之 os模块1. os.getcwd()2. os.listdir(path)3. os.path.abspath(path)4. os.path.split(path)5. os.path.join(path1,path2,...)6. os.path.dirname(path)7. os.path.basename(path)8. os.path.getsize(path)9. os.path.exists(path)10. os.path.isdir(path)11. os.path.is原创 2020-07-09 16:43:17 · 663 阅读 · 0 评论 -
栈与队列
栈与队列1、栈 stack2、队列 queue1、栈 stack特点:先进后出[可以抽象成竹筒中的豆子,先进去的后出来] 后来者居上mystack = []#压栈,或称位入栈[向栈中存数据]mystack.append(1)print(mystack)mystack.append(2)print(mystack)mystack.append(3)print(mystack)#出栈[从栈中取数据]mystack.pop()print(mystack)mystack.pop()原创 2020-07-09 16:45:16 · 116 阅读 · 0 评论 -
目录遍历
目录遍历1. 递归遍历目录2. 栈模拟递归遍历目录3. 队列模拟递归遍历目录1. 递归遍历目录import osdef getall(path, treeshow): filelist = os.listdir(path) treeshow += " " for filename in filelist: #拼接绝对路径 filepath = os.path.join(path, filename) if os.path.isdir(filepath): print(tr原创 2020-07-09 16:46:44 · 888 阅读 · 0 评论 -
时间和日期模块
时间和日期模块1、 Time模块1.1 名词解释1.2 时间的表示形式2、 datetime模块2.1 概述2.2 模块中的类2.3函数的使用3、 Calendar 模块python的内置模块中,时间与日期模块是属于较为常用的模块。关于时间和日期模块python程序能用很多方式处理日期和时间,转换日期格式是一种常见的功能.python提供了一个time和calendar模块可以用于格式化日期和时间.时间间隔是以秒为单位的浮点小数每个时间戳都以自从1970年1月1日午夜(历元)经过了多长时间来表原创 2020-07-09 17:26:09 · 327 阅读 · 0 评论 -
类和对象
类和对象一 、面向对象思想面向对象的设计思想面向对象和面向过程面向过程面向对象区别与联系二、类和对象类和对象的概念类的定义类的设计类中的方法和属性方法和属性的定义方法和属性的使用实例化对象:对象调用方法和属性内存中的对象一 、面向对象思想面向对象的设计思想面向对象是基于万物皆对象这个哲学观点面向对象和面向过程面向过程在生活中:它是一种看待问题的思维方式,在思考问题的时候,着眼问题是怎样一步一步解决的,然后亲力亲为去解决问题[类似于公司里的执行者]在程序中:代码是从上而下顺序执行原创 2019-08-27 00:58:01 · 178 阅读 · 0 评论 -
构造函数和析构函数
构造函数和析构函数构造方法的使用析构函数的使用self的使用构造方法的使用使用上面的方式可以创建对象,但是,很多类都倾向于将对象创建为有初始化状态.因此类可能定义一个名为__init__() 的特殊方法(构造方法)构造方法也叫做构造器,是指当实例化一个对象(创建一个对象)的时候,第一个被自动调用的方法.演示1: 构造方法被调动的动机class Person(): name = "" age = 0 #构造方法 def __init__(self):原创 2020-07-09 17:43:34 · 115 阅读 · 0 评论 -
成员变量与类变量
成员变量与类变量(静态成员变量)成员变量与类变量的区别:结论:定义在类中的变量我们又分为成员变量以及类变量(或者称静态成员变量)类变量定义在类中,且在函数体之外,类变量通常不作为实例变量使用,类变量在整实例化的过程中是公用的。成员变量:定义在方法中且通过self绑定在实例上的变量,只作用于当前实例。成员变量与类变量的区别:定义的位置不同,类变量直接定义在类中变量,成员变量是定义在方法绑定在self身上的变量成员变量使用对象来访问,类变量使用类名来访问类变量主要给我们的类使用的.原创 2019-08-27 17:12:54 · 3124 阅读 · 0 评论 -
动态给对象添加属性和方法
动态添加属性和方法成员方法:静态方法:类方法:正常情况下,我们定义了一个class,创建一个class的实例后,我们可以给该实例绑定任何的属性和方法,这就是动态语言的灵活性。动态给对象添加属性和方法:class.属性名 = 属性值class.方法名 = 函数这里说的动态加属性和方法主要指的是关于 __slots__函数的使用__ slots __ = (属性名,函数名)功能:对动态添加的属性以及函数进行限制,只能添加元组中列举出来的属性名或者函数名此限制当前类的实例起作用,对其子类不起作用.原创 2020-07-09 21:05:51 · 2143 阅读 · 0 评论 -
类的封装
类的封装--访问限制概念使用单下划线,双下划线,头尾下划线的说明语法糖概念面向对象语言的三大特征:封装, 继承, 多态 (鸭子模型)python中不存在真正的多态广义的封装: 类和函数定义本身就是封装的体现狭义的封装:一个类的某些属性,不希望外界直接访问,而是把这个属性私有化[只有当前类持有],然后暴露给外界一个访问的方法即可.封装的本质:就是属性私有化的过程封装的好处:提供了数据的复用性,保证了数据的安全性举例:插排在class内部可以有属性和方法,而外部的代码可以通过直接调用实例原创 2020-07-09 21:08:46 · 776 阅读 · 0 评论