1、python打开文件、写入文件
Python提供了丰富的文件操作功能,可以用于读取、写入和管理文件。
- 打开文件:
要打开一个文件,可以使用open()
函数,它接受两个参数:文件路径和打开模式。常见的打开模式包括:
- “r”:只读模式(默认)
- “w”:写入模式,如果文件已存在则覆盖,如果文件不存在则创建
- “a”:追加模式,在文件末尾追加内容,如果文件不存在则创建
- “x”:创建模式,创建新文件,如果文件已存在则报错
- “b”:二进制模式
- “t”:文本模式(默认)
- 读取文件内容:
可以使用read()
方法从文件中读取内容。read()
方法读取整个文件内容,而readline()
方法逐行读取文件内容。 - 写入文件:
使用write()
方法可以向文件中写入内容。需要注意的是,写入文件前需要以写入模式打开文件。 - 关闭文件:
在完成文件操作后,要记得关闭文件,可以使用close()
方法。
2、递归和隐式递归
递归是指在函数或过程的定义中使用自身的调用方式。通过递归,问题可以被分解成更小的子问题,并通过不断调用自身来解决这些子问题。递归函数通常包含两个部分:基本情况(递归终止条件)和递归调用。
示例1:计算阶乘
def factorial(n):
if n == 0: # 基本情况
return 1
else:
return n * factorial(n-1) # 递归调用
print(factorial(5)) # 输出120
示例2:计算斐波那契数列
def fibonacci(n):
if n <= 1: # 基本情况
return n
else:
return fibonacci(n-1) + fibonacci(n-2) # 递归调用
print(fibonacci(6)) # 输出8
隐式递归是指在某些数据结构或算法中,递归的过程在内部进行,而不是在显式地编写递归函数。在这种情况下,递归的实现可能由编程语言或库提供,而不需要显式地调用函数。
例如,在树的遍历中,递归就是隐式的。对于一个树结构,我们可以通过递归地访问树的每个节点来实现先序、中序或后序遍历。
示例3:树的先序遍历
class Node:
def __init__(self, value):
self.value = value
self.left = None
self.right = None
def preorder_traversal(node):
if node:
print(node.value) # 先访问根节点
preorder_traversal(node.left) # 递归访问左子树
preorder_traversal(node.right) # 递归访问右子树
# 创建一个树结构
root = Node(1)
root.left = Node(2)
root.right = Node(3)
root.left.left = Node(4)
root.left.right = Node(5)
preorder_traversal(root) # 输出 1 2 4 5 3
无论是显式递归还是隐式递归,都需要设计递归终止条件,以避免无限递归导致程序崩溃。
3、生成式
# 生成式
bbb = (i for i in range(10))
for i in bbb:
print(i)
4.MIPS:
计算机中mips是指单字长定点指今平均执行速度,即每秒处理的百万级的机器语言指令数,是衡量计算机运算速度的指标MIPS是指令执行的速率,规定了性能和执行时间成反比,越快的计算机具有越高的MIPS值。
5.DRAM 和SRAM比较:
DRAM 和 SRAM 是两种不同的存储器类型,DRAM 适用于主存储器,容量较大但性能较低,而 SRAM 适用于高速缓存和特定应用,具有更快的速度和高性能。
6、python常用的魔法方法
__init__(self, ...): 初始化一个对象,在创建对象时调用。
__str__(self):返回一个描述对象的字符串,可以使用str(obj)调用。
__repr__(self): 返回一个表示对象的字符串,可以使用repr(obj)调用。
__len__(self):返回对象的长度,可以使用len(obj)调用。
__getitem__(self, key):获取对象中指定键的值,可以使用obj[key]调用。
__setitem__(self, key, value):设置对象中指定键的值,可以使用obj[key] = value调用。
__delitem__(self, key): 删除对象中指定键的值,可以使用del obj[key]调用。
__iter__(self):返回一个可迭代对象,可以使用for ... in obj循环迭代调用。
__next__(self):返回下一个迭代器对象,可以使用next(obj)调用。
__add__(self, other): 定义加法运算符,可以使用obj1 + obj2调用。
__sub__(self, other):定义减法运算符,可以使用obj1 - obj2调用。
__mul__(self, other):定义乘法运算符,可以使用obj1 * obj2调用。
__div__(self, other):定义除法运算符,可以使用obj1 / obj2调用。
__eq__(self, other): 定义相等运算符,可以使用obj1 == obj2调用。
__ne__(self, other):定义不等运算符,可以使用obj1 != obj2调用。
__lt__(self, other): 定义小于运算符,可以使用obj1 < obj2调用。
__gt__(self, other):定义大于运算符,可以使用obj1 > obj2调用。
7、64位的解释
电脑64位什么意思?
64位的电脑是指能够处理64位数据的电脑,它有更大的内存,更强大的处理能力。64位的电脑可以处理更大的数据,并且有更高的运行速度,可以更好的支持多任务处理。
电脑64位的优势
1.更大的内存容量:64位的电脑可以处理更大的数据,支持更大的内存,可以更好的支持多任务处理.
2.更快的处理速度:64位的电脑可以更快的处理数据,能够更快的运行应用程序,可以提高用户的工作效姿
3.更好的安全性: 64位的电脑可以更好的防止病毒的入侵,保护用户的系统安全。
8、计算机的电子元件
1、第一代计算机逻辑元件采用的是真空电子管,称为电子管数字机,(1946-1958年)
2、第二代计算机采用了晶体管,体积缩小、能耗降低、可靠性提高、运算速度提高,称为晶体管数字机 (1958-1964年) ;
3、第三代计算机硬件方面,逻辑元件采用中、小规模集成电路 (MSI、SSI),称为集成电路数字机(19641970年) ;
4、第四代计算机硬件方面,逻辑元件采用大规模和超大规模集成电路(LSI和VLSI),称为大规模集成电路机 (1970年至今)
9、推导式
列表推导式允许我们从一个可迭代对象创建一个新的列表。它的语法形式为:
n= [1, 2, 3, 4, 5]
aaa= [x**2 for x in n if x % 2 == 0]
# 输出: [4, 16]
10、常用数据库
1、Oracle
Oracle是甲骨文公司的一款关系型数据库管理系统,在数据库领域一直处于领先地位的产品,是目前世界上流行的关系型数据库之一,是一种高效率、可靠性好、适应高吞吐量的数据库方案。
2、SQL Server
SQL Server是 Microsoft(微软)公司推出的关系型数据库管理系统,主要应用于大型的管理系统中。
3、MySQL
MySQL是一种开放源代码的关系型数据库管理系统,由瑞典 MySQL AB 公司开发,属于 Oracle 旗下产品。因为其速度、可靠性和适应性而备受关注。
4、Access
Access是由 Microsoft(微软)发布的小型关系数据库管理系统,是微软把数据库引擎的图形用户界面和软件开发工具结合在一起的一个数据库管理系统。
5、DB2
DB2是美国 IBM 公司开发的一款支持多媒体、Web 的关系型数据库管理系统。主要应用于大型应用系统,具有较好的可伸缩性,可支持从大型机到单用户环境。