Python面向对象之函数之函数简介与参数
函数
单一功能的封装。
实现代码复用。
Python语言中使用函数分为两个步骤:定义函数和调用函数。
定义函数,即根据函数的输入、输出和数据处理完成函数代码的编写。
定义函数只是规定了函数会执行什么操作,但并不会真正去执行。
调用函数,即真正去执行函数中的代码,是根据传入的数据完成特定的运算,并将运算结果返回到函数调用位置的过程。
定义函数
12345def functionname([parameters]): """docstring """ function_suite [return [expression]]
函数命名规范和变量命名一样
必须使用字母或者下划线_开头
仅能含有字母、数字和下划线
调用函数
语法格式:函数名称(), 括号中传入参数值。
1234def print_things(name): print(name ,...
Python面向对象之变量的作用域
变量的作用域
局部变量和全局变量。
变量的作用域是指变量的作用范围,即定义一个变量后,在哪些地方可以使用这个变量。
按照作用域的不同,Python 中的变量可分为局部变量和全局变量。
例:我们定义并测试一个函数,它读取两个变量的值。
12345678910# 读取两个变量的值。变量a是函数的参数;变量b,这个函数没有定义它。def f1(a): print(a) print(b)b = 5f1(2)# 2# 5
局部变量:在一个函数中定义的变量就是局部变量(包括形参),其作用域是从定义局部变量的位置至函数结束位置。
全局变量:在所有函数外定义的变量就是全局变量,其在所有函数中都可以使用。
123456def f1(a): print(a) print(b)b = 6 #如果先给全局变量b赋值,然后再调用f1,就不会出错。f1(3)
12345678910b = 6def f2(a): print(a) b = 7 print(b) b = 9 #...
Python常用模块之正则表达式与时间日期模块
Python的模块、包和库
模块(Module)通常以.py为扩展名,可以被其他程序通过import语句导入使用。
包(Package)包含多个模块,必须包含一个特殊的__init__.py文件,这个文件可以为空,但它的存在表明这个目录可以被作为一个包来使用。
库(Library)是一组完成特定功能的模块或包的集合,第三方库是Python强大生态系统的重要组成部分,它们提供了各种各样的工具和框架,使得Python成为一个功能丰富的编程语言。
re模块
使用 re
模块来处理正则表达式,正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。
简单的正则
.:匹配除换行符...
Python的文件操作
Python的文件操作
文件的打开与关闭
文件的读取与写入
文件的打开
内置函数:open(文件名, 模式)
os模块的函数:os.open(文件名, 模式)
with open(文件名, 模式) as file
文件的关闭
fileobject.close() fileobject是文件对象
os.close(file) 关闭文件
12345file_1 = open('F:\\file_1.txt', 'r')print('file_1---', file_1, type(file_1))#关闭文件之后,python才能释放对该文件的控制,可以去尝试删除该文件file_1.close()
默认的文件编码encoding一般依赖于系统的区域设置和Python的版本。
cp936代表GBK编码
标准编码参考:https://docs.python.org/3/library/codecs.html
123import io ...
Python的推导式、迭代器和生成器
Python推导式
列表推导式: [expression for item in iterable]
集合推导式: {expression for item in iterable}
字典推导式:
{key_expression: value_expression for item in iterable}
item是一个变量,用于遍历iterable中的元素
1234567891011121314#列表推导式:list_com = [x**2 for x in range(10) if x**2 < 40]list_com# [0, 1, 4, 9, 16, 25, 36]#集合推导式 ,代表什么意思set_com = {x**2 if x**2 % 2==0 else x**2 + 1 for x in range(10)}set_com# {0, 2, 4, 10, 16, 26, 36, 50, 64, 82}#字典推导式dict_com = {x:...
Python的数据类型
Python的数据类型
数值(Numbers)
字符串(String)
元组(Tuple)
列表(List)
集合(Set)
字典(Dictionary)
……
其他数据类型
字节类型(Bytes):b’Hello’
字节数组(Byte Arrays): bytearray(b’Hello’)
空类型(None):没有返回的函数值
未执行的(NotImplemented):在运算时,对象不支持,返回该值
省略号(Ellipsis):用于Numpy的切片或者表示无限循环
Python数据类型-数值型
Python数值型介绍
整型(int):123
布尔型(bool):False(0)、True(1)
浮点型(float):123.04
复数型(complex):3 + 7j、real +...
Python的浅复制与深复制
Python的浅复制与深复制
对于不可变对象来说,因其值不可变,复制一个副本对它的作用不大。但对于可变对象来说,因其值可变,很多时候复制一个副本可以保存它未改变前的值,用来做对比或者做数据备份。
创建一个副本,这里涉及到浅复制和深复制。
浅复制与深复制的构造方法
首先都需要导入copy模块
浅复制:copy.copy(x)
深复制:copy.deepcopy(x)
其中浅复制还可以用切片实现:
例如:a = [1,2,3] ; aa = a[:]
浅复制与深复制的区别
浅复制:复制内层容器时不会单独开辟空间,而是引用原来的地址。
深复制:复制内层不可变的容器时不会单独开辟空间,引用其原地址;若是内层可变的容器,则会单独开辟空间
容器:
可以在里面装下多个元素的,可以用in,...
Python基础部分
...
数据库相关概念与DBMS特色
数据库相关概念
数据管理
image-20250512195115041
数据:能够被记录且具有实际含义的已知事实
大数据
元数据:描述数据的数据
数据库管理系统 DBMS
image-20250512195253000
数据库与文件系统的对比:
文件系统
数据库
定义
管理存储磁盘上数据的存储、访问和管理方式的过程
可以轻松存储、访问、管理和更新的有组织的数据集合
数据一致性
数据不一致性高
维护数据一致性
结构
简单
复杂
数据共享
困难
容易
冗余
冗余度高
冗余度低
安全性
不是很安全
更加安全
备份与恢复
没有备份和恢复过程
有备份恢复过程
数据库系统...
Hibernate的其他API以及HQL查询.md
Hibernate的其他API
Query
Query接口让你方便地对数据库及持久对象进行查询,它可以有两种表达方式:HQL语言或本地数据库的SQL语句。
HQL:Hibernate Query Language
:Hibernate查询语言。这种语言与SQL的语法及其类似,是一个面向对象的查询语言。
SQL的操作对象是数据表、列等数据库对象,而HQL操作对象是类、对象、属性等。
Query 接口用来执行 HQL,Query 接口实例可以从 Session 对象 session
中生成:session.createQuery(String hql)
12345// HQL 查询Query<Student> hqlQuery = session.createQuery("FROM Student WHERE age > :age", Student.class);// 原生 SQL 查询Query<Student> sqlQuery = session.createNativeQuery("SELECT...
Hibernate框架之事务控制
事务概述
Hibernate是对JDBC的轻量级封装,其主要功能是操作数据库。在操作数据库过程中,经常会遇到事务处理的问题,接下来就来介绍Hibernate中的事务管理。
事务的并发问题
在实际应用过程中,数据库是要被多个用户所共同访问的。在多个事务同时使用相同的数据时,可能会发生并发的问题,具体如下:
脏读:一个事务读取到另一个事务未提交的数据。
不可重复读:一个事务读到了另一个事务已经提交的update的数据,导致在同一个事务中的多次查询结果不一致。
虚读/幻读:一个事务读到了另一个事务已经提交的insert的数据,导致在同一个事务中的多次查询结果不一致。
事务的隔离级别
为了避免事务并发问题的发生,在标准SQL规范中,定义了4个事务隔离级别,不同的隔离级别对事务的处理不同。
读未提交(Read...
galgame妹妹推荐转自七海妹
有群友希望我转载这个,那我就转载了
更新时间 2021·12·23 更新内容:推妹妹破百,初代表格诞生
前排提醒:仅为群名~“七海妹”个人主观意见,如有与你不和者,就无视我,没必要争吵。本人一年游玩时间,耗时30小时制作而成,难免有失误,还请告知我更改。本人主看重妹妹,不对作品本身评价,所以废萌评分会高一点。
更新时间 2022·7·26晚
更新内容1:重置评分系统,由原来的SS<SS+<SSS-<SSS 更改成
S<SA<SX<SS<=SAAA<=SSA<SSS
更新内容2:增加50位妹妹,其中15名生肉,1名不能攻略
更新内容3:加入鼠标放在妹妹名字上显示立绘功能 更新耗时25小时
更新时间 2023·1·27下午
更新内容1:添加妹妹、兄妹、妹线这三个评价(等级为:稀烂、拉跨、不太行、凑合、一般、还行、良好
、不错、优秀、极好、完美)...
Java难绷知识05--Swing中的事件调度线程和资源释放
Swing中的事件调度线程
先了解一下Swing中的单线程模型
单线程模型有什么作用
虽然大伙认为Swing又丑又落后(但是我编写gui入门真的是从Swing开始)
Swing 最初设计是单线程模型,这意味着所有与 Swing
组件交互的代码都应该在同一个线程中执行。
单线程模型避免了 Swing
组件可能因为会多个线程同时访问和修改而导致数据不一致或界面闪退等问题
而且单线程模型使得开发者无需处理复杂的线程同步问题,这是保持页面一致性的重要原因,同一时间只有一个线程可以操作组件,正常思维去调度下不会出现部分界面更新而其他部分未更新的情况。
但是单线程模型会造成一个迟钝的API。为了达到单线程模型,有一个专门的线程用于和Swing组件交互,就是Swing事件调度线程(Event
DispatchThread,EDT)。
如果对单线程模型线程不清楚,可能在打造响应式界面和其他更多的扩展应用上会出很多问题。
为什么要了解事件调度线程(EDT)
因为,EDT 是 Swing 单线程模型的核心
在Swing中,所有与...











