一:常数、变量和数据类型
1。常数和变量的差异
一个程序通常都会有被处理的对象,而这些对象在被处理之前要以一些特定的类型存放在内存的某一个位置,需要的时候再拿出来处理。
程序设计语言会把放置数据的那些内存位置都给一个名字,并把这个概念以“变量”来命名。放在这些位置的里面的数据是可以随着处理的需求而被改变的。
相较于“变量”,另外一种经过设置之后就不能被改变的数据叫作“常数”。
【在Python中,任一字符串的两侧既可以使用单引号,也可以使用双引号,同一个程序中也可以交替使用,但在使用时一定要成对出现。】
2。变量的命名原则
每一个数据在现实生活中都有其代表的意义,只有一个好的名称才能让这个程序容易被了解其执行的逻辑流程,如此不仅方便程序的设计,也利于日后的维护。
命名的原则除了使用英文字母和数字外,也可以利用下划线来作为变量中不同文意的分隔符,但是自定义变量的第一个符号一定要是英文字母。此外,不能使用中文作为变量的名称。
3。程序设计语言的保留字
在为变量命名时一定要避免使用这些字词哦!
4。基本数据类型
在Python语言中,使用任何类型的变量都不需要事先声明,关键是看我们存放了什么样的数据到变量中。
我们可以通过type()来查询任一个变量当前的类型。例如:
a = 12
type(a)
<class 'int'>
a=12.0
type(a)
<class 'float'>
a = "hello"
type(a)
<class 'str'>
为变量指定一个正确的类型非常重要,不然有时候会发生预想不到的计算错误。为了确保计算的正确性,可以通过int()、float()、str()来进行类型上的转换。
【当需要把计算所得的数值和字符信息一起显示出来的时候,要先把数值转换成字符串之后再使用“+”号连接两个字符串】例如:
msg='The sum is:'
sum=1+2+3
print(msg + sum)
Traceback (most recent call last):
File "<pyshell#11>", line 1, in <module>
print(msg + sum)
TypeError: can only concatenate str (not "int") to str
print(msg + str(sum))
The sum is:6
二:C语言知识点
Socket套接字
- 网络通信:Socket可以用于实现各种网络应用程序,如Web服务器、邮件服务器、聊天室等。
- 分布式计算:Socket可以用于不同计算机之间的进程通信,实现分布式计算任务的协调和数据传输。
- 实时通信:Socket可以用于实现实时通信应用,如在线游戏、视频会议等。
- 文件传输:Socket可以用于实现文件传输功能,允许客户端和服务器之间传输文件。
- 远程控制:Socket可以用于远程控制设备,如远程桌面、远程终端等。
总之,Socket套接字是一种实现网络通信的机制,可以在不同设备之间进行数据传输,并在各种应用场景中发挥重要作用。
PV操作
PV操作是指对一个共享资源的访问进行控制,其中P操作表示申请资源,V操作表示释放资源。
理解PV操作可以参考以下步骤:
- 初始化共享资源的数量,设置为初始值。
- 当一个进程需要访问共享资源时,需要执行P操作,即申请资源。如果资源数量大于0,则允许访问,资源数量减1;如果资源数量等于0,则阻塞进程,直到资源可用。
- 当一个进程使用完共享资源后,需要执行V操作,即释放资源。资源数量加1,并唤醒可能在等待资源的进程。
二叉树的遍历
二叉树的遍历方法有三种,分别是前序遍历、中序遍历和后序遍历。
- 前序遍历(Pre-order Traversal):先访问根节点,然后递归地前序遍历左子树,最后递归地前序遍历右子树。
- 中序遍历(In-order Traversal):先递归地中序遍历左子树,然后访问根节点,最后递归地中序遍历右子树。
- 后序遍历(Post-order Traversal):先递归地后序遍历左子树,然后递归地后序遍历右子树,最后访问根节点。
可以通过观察节点的访问顺序来区分不同的遍历方法。以二叉树的根节点为起始点,按照不同的遍历方法,访问节点的顺序会有所不同。具体来说:
- 前序遍历:根节点 -> 左子树 -> 右子树
- 中序遍历:左子树 -> 根节点 -> 右子树
- 后序遍历:左子树 -> 右子树 -> 根节点
线性插值
线性插值是一种常用的数值计算方法,用于根据已知的两个点的值,推算出两个点之间的值。
线性插值公式可以表示为:y = y1 + (x - x1) * ((y2 - y1) / (x2 - x1))
数据库设计
简单属性是指一个实体只有一个值的属性,例如一个人的身高、年龄等。
复合属性是由多个简单属性组成的属性,例如一个人的地址可以由省、市、区等多个简单属性组成。
多值属性是指一个实体可以有多个值的属性,例如一个人可以有多个电话号码。
派生属性是通过计算或推导得出的属性,例如根据一个人的出生日期可以推导出其年龄。
它们的区别主要在于属性值的数量和属性值的来源。
简单属性只有一个值,
复合属性由多个简单属性组成,
多值属性可以包含多个值,
而派生属性是根据其他属性的值计算或推导得出的。
使用场景可以根据实际情况来确定。
简单属性适用于只有一个值的情况,例如一个人的姓名、性别等。
复合属性适用于需要多个简单属性来描述的情况,例如一个人的地址。
多值属性适用于一个实体可以有多个值的情况,例如一个人的电话号码。
派生属性适用于通过其他属性的值计算或推导得出的情况,例如根据一个人的出生日期来计算其年龄。
再厚的书,一页一页用心翻阅,终能内化于心;再高的山,一步一步努力攀登,终能到达峰顶。明确自己想要的,坚定自己选择的,从微小的事情着手,久久为功,你终会离自己的目标越来越近。共勉!