赞
踩
特点: Python语言是一种面向对象的解释型语言
1、解释型,开源,简单,易学,免费
2. 可扩展性,丰富的库,可移植性,面向对象
3.规范的代码,可读性较强
书写规范:
缩进;注释;每个 import 只导入一个模块,尽量避免一次导入多个模块;语句太长可以在行尾使用续行符’ ’ ’ ’,来表示下面紧接的一行仍然属于当前的语句,也可以使用括号来包含多行内容;使用必要的空格和空行增强代码的可读性;适当使用异常处理结构增加代码的健壮性和可读性以及容错性。
Python的标识符可以由字母、数字和下划线_组成,不能以数字开头; 标识符区分大小写,没有长度限制; 标识符不能使用计算机语言中预留的有特殊作用的关键字; 标识符的命名尽量符合见名知意的原则,从而提高代码的可读性。
和其他大多数的语言一样,python 也有 +(加)、-(减)、*(乘)、/(除)、%(取余)这 5 个运算符,除此之外还有两个特殊的运算符,分别是 //(整除)和 **(幂运算符,或叫乘方运算符)。
和其他大多数的语言一样,python 的比较运算符包括 <、<=、>、>=、==、!=。比较运算符根据表达式的值的真假返回布尔值 True 或 False。
逻辑运算符就是我们常说的与、或、非,在 python 里分别表示为 and、or、not。
使用逻辑运算符可以将任意的表达式连接在一起,并得到一个布尔值。
= 最简单的赋值,简单的说就是用来给变量赋值。+= 加法赋值运算符,一般情况下用来做自增。-= 减法赋值运算符,用来做自减。*= 乘法赋值运算符。/= 除法赋值运算符。%= 取模赋值运算。**= 次方赋值运算。// = 取整除赋值运算 。
& 将十进制转换为2进制,然后每一位都进行与运算。
| 按位或运算符,也是将十进制先转换为二进制,然后逐位进行或运算后,在转换为十进制,和&一样,只不过每一位都是或运算。
^ 按位异或运算符,将两个数都转换为二进制,两个数的同一位相异时,这一位就为1,相同就为0。
<< 左移动运算位,将准备运算的数从十进制转换成二进制,往左移几位,右边不够的地方用0填。
右移动运算位,将准备运算的数从十进制转换成二进制,往右移几位,如果没地方移了,从右边开始删几位。
slice()函数:第一个参数是:起始位置。第二个参数是:结束位置。第三个参数是:间距、步长。
列表 list:元组列表可以互相转换,list(str) 将tuple转为list。
元组 tuple:元素值不能修改,不能删除。可以使用del语句来删除整个元组。可以进行截取,组合。
tuple(str) 将list转为tuple。
字典 dictionary 。
基本数据类型主要可分为以下几种:1.数字(Number);2.字符串(String);3.列表(List);4.字典(Dictionary);5.元组(Tuple);6.集合(set)。
python里可以通过type()函数来查看数据类型。如果你只有第一个参数则返回对象的类型,三个参数返回新的类型对象。
可变:集合 列表 字典。不可变的有:整型,字符串,元组。
python中range()函数可创建一个整数列表,一般用在for循环中。
range()函数语法: range(start,stop[,step])。
参数说明⭐️ 计数从star开始.默认是从0开始;stop: 计数到stop结束,但不包括stop;step: 步长,默认为1。
特点:字典是一个无序的数据集合,通常输出的顺序和定义的顺序不一致,key-value键-值对,不支持索引和切片,但可通过key值查询values值,key值唯一。
增加:dec[ ‘ key ’] = ‘value’
删除:del dec(‘key’)
删除:dec.pop(‘key’) 返回值是value
清空:dec.clear()
查看字典的所有key值:dec.keys()
查看字典的所有values值:dec.values()
查字典的key-value值:dec.items()
查看key的value值:dec.get(‘key’)
有的可变,有的不可变;元素无次序,不可重复。
集合中的元素不能重复,可作为一种简单高效的元素去重方式。
集合没有索引,它的元素无次序,不是序列。
利用set()和{}建立集合时,集合中的元素必须是不可变的。
利用set()创建的集合是可变集合,set()创建的集合,整体上是可变的,可以增、删;但集合中的元素(个体)是不可变的,不能被修改,且集合中的元素不能是列表、字典等可变类型的对象。
1.函数的定义主要有如下要点:def:表示函数的关键字 • 函数名:函数的名称,调用时根据函数名调用函数。函数体:函数中进行一系列的逻辑计算或是该函数的功能内容。参数:为函数体提供数据。
返回值:当函数执行完毕后,可以给调用者返回数据。
2.函数的调用:重函数体至上而下进行函数操作;调用是运行函数代码的方式;调用时要给出实际参数;实际参数替换定义中的参数;函数调用后得到返回值。
3.定义全局变量:如定义在类或者函数体外,在函数或者类中引用需要用到 global声明;直接在函数或类中定义,需要先执行函数或者类,才能执行输出。
基本操作:创建文件对象;读或者写(分清读写模式);关闭对象。
不同访问模式的含义:
这个类表示一个动作应该在一个特定的时间之后运行 — 也就是一个计时器。Timer是Thread的子类, 因此也可以使用函数创建自定义线程。
def sum_str(str1):
len1=len(str1) #首先将字符串str1的长度赋值给len1
sum = n = 0 #建立一个值为0的空变量sun #建立一个值为0的空变量n
for i in range(len1): #用i来遍历字符串的长度
if 49 <= ord(str1[i]) <= 57: #判断字符ascii码是否在数字ascii值范围内
n = n * 10 #n = 10
n = int(str1[i]) + n #n += int(str1[i])
else:
sum = n + sum #sum += n
n = 0
# 上面6行代码的意思是从0下标开始,遍历字符串,如果是数字,用n加上其数字,
#执行逻辑是,碰见一个数字,用n加上,如果下一个还是数字,就将上一个数字乘10加这个数字,依次循环
#比如:连续数字df123asd = ((110+2)*10)+3
#如果不是数字,就将n值加到变量sum中,保存,并且将n重新赋值为0,再次进入for循环,(sun只在碰见字母的时候出现,把数字之前的数字的值收集起来)
# 下次再碰到数字(满足if条件),循环(if)条件下面的逻辑
sum = n +sum
print(sum)
str1 = “b532x2x3c4b5”
sum_str(str1) #调用函数
while循环:while循环是通过一个条件来控制是否要继续反复执行循环体中的语句。
for循环:for循环是一个计次循环,一般应用在循环次数已知的情况下。通常适用于枚举或遍历序列,以及迭代对象中的元素。
循环嵌套:在Python中,允许在一个循环体中嵌入另一-个循环,这称为循环嵌套。在Python中,for循环和while循环都可以进行循环嵌套。
退出循环:1.可使用while循环让程序在用户在愿意的时不断运行。在其中定义一个退出值,只要用户输入的不是这个,程序就接着运行。2.用break退出:当明确遇到某些条件即退出时使用。当程序执行到break,不管后面直接退出循环。3.在循环中使用continue:当循环中需要跳过一些值时使用。当程序执行到continue,直接跳出本次循环,进入下一次循环。在遇到continue的时候,不管后面的else直接进入下一次while。
面向对象程序设计方法是一种支持模块化设计和软件重用的编程方法。它把程序设计的主要活动集中在建立对象和对象之间的联系上。面向对象程序设计的特点是抽象、封装、继承、多态。抽象是将同一类事物的共同特点概括出来的过程。在完成抽象后,通过某种语法形式,将数据(即属性)和用以操作数据的算法(即方法)捆绑在一起,在形式上写成一个整体(类),这个过程就叫作封装。继承就是在编写一个类的时候,以现有的类作为基础,使得新类从现有的类派生而来,从而达到代码扩充和代码重用的目的。多态则是指不同种类的对象都具有名称相同的行为,而具体行为的实现方式却有所不同。
1.进程是系统中正在运行的一个程序,程序一旦运行就是进程。进程可以看成程序执行的一个实例。进程是系统资源分配的独立实体,每个进程都拥有独立的地址空间。一个进程无法访问另一个进程的变量和数据结构,如果想让一个进程访问另一个进程的资源,需要使用进程间通信,比如管道,文件,套接字等。
2.线程是进程的一个实体,是进程的一条执行路径。线程是进程的一个特定执行路径。当一个线程修改了进程的资源,它的兄弟线程可以立即看到这种变化。
3.关系和区别:一个进程可以拥有多个线程,每个线程使用其所属进程的栈空间。线程与进程的一个主要区别是,统一进程内的一个主要区别是,同一进程内的多个线程会共享部分状态,多个线程可以读写同一块内存(一个进程无法直接访问另一进程的内存)。同时,每个线程还拥有自己的寄存器和栈,其他线程可以读写这些栈内存。
在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果没有找到匹配的,则返回空列表。
findall(pattern,string)
pattern.findall(string)
pattern : 匹配模式 string : 待匹配的字符串
1:作用:返回字符串、列表、字典、元组等长度;2:语法:len(str);3:参数:str:要计算的字符串、列表、字典、元组等;4:返回值:字符串、列表、字典、元组等元素的长度。
lambda匿名函数的格式:冒号前是参数,可以有多个,用逗号隔开,冒号右边的为表达式。其实lambda返回值是一个函数的地址,也就是函数对象。
a = lambda x,y,z:(x+8)*y-z
print(a(5,6,8))
网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。socket通常被叫做“套接字”,用于描述IP地址和端口,是一个通信链的句柄,可以用来实现不同虚拟机或不同计算机之间的通信。在Internet上的主机一般运行了多个服务软件,同时提供几种服务。每种服务都打开一个Socket,并绑定到一个端口上,不同的端口对应于不同的服务。python中socket模块为操作系统的socket实现提供了一个python接口。
关键字参数是指使用形式参数的名字来确定输入的参数值。通过该方式指定实际参数时,不再需要与形式参数的位置完全一致。只要将参数名写正确即可。这样可以避免用户需要牢记参数位置的麻烦,使得函数的调用和参数传递更加灵活方便。
模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。模块让你能够有逻辑地组织你的 Python 代码段。把相关的代码分配到一个模块里能让你的代码更好用,更易懂。模块能定义函数,类和变量,模块里也能包含可执行的代码。
方法:1、导入整个模块:一般格式为:import 模块名。
2、与form联用导入整个模块:一般格式为:form 模块名 import* 这种方式导入模块后,调用模块中的函数或类,仅使用函数名或类名,代码简洁,但可读性差,不容易理解。
3、与form联用导入一个或多个对象:一般格式为:form 模块名 import 对象1[,对象2[,对象…]]
这种方式只导入模块中的一个或多个对象,调用模块中的对象时,仅使用对象名。
4.import 模块名 as 别名
5.from 模块名 import 功能名 as 别名
异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行,运行期检测到的错误被称为异常。
1、默认异常处理器。 2、try…except… 3、try…except…finally
4、try…finally… 5、Assert 6、with…as
网络爬虫是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成。爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。
基本流程:发起请求 => 获取响应内容 => 解析数据 => 保存数据。
URL是Uniform Resource Location的缩写,译为“统一资源定位符”。通俗地说,URL是Internet上用来描述信息资源的字符串zhi,主要用在各种客户程序和服务器程序上,特别是著名的Mosaic。采用URL可以用一种统一的格式来描述各种信息资源,包括文件、服务器的地址和目录等。
多线程是指程序中包含多个执行流,即在一个程序中可以同时运行多个不同的线程来执行不同的任务,也就是说允许单个程序创建多个并行执行的线程来完成各自的任务。
使用 Thread 对象的 Lock 和 Rlock 可以实现简单的线程同步,这两个对象都有acquire方法和 release方法,对于那些需要每次只允许一个线程操作的数据,可以将其操作放到acquire和 release方法之间。
intcount=[]
upstrcount=[]
lowstrcount=[]
othercount=[]
def number(a):
for i in a:
if i.isdigit():
intcount.append(i)
elif i.isupper():
upstrcount.append(i)
elif i.islower():
lowstrcount.append(i)
else:
othercount.append(i)
return intcount,upstrcount,lowstrcount,othercount
a=input(‘请输入一个字符串:’)
a,b,c,d=number(a)
print(‘大写字母的个数:{}’.format(len(a)))
print(‘小写字母的个数:{}’.format(len(b)))
print(‘数字的个数:{}’.format(len©))
print(‘其他数字的个数:{}’.format(len(d)))
a=tuple(a)
b=tuple(b)
c=tuple©
d=tuple(d)
print(a,b,c,d)
属性和类的具体使用方法
def init(self):
self.变量名1 = 值1 # 定义一个公有属性
self.__变量名2 = 值2 # 定义一个私有属性
def 方法名1(self):# 定义一个公有属性
pass
def __方法名2(self):# 定义个私有方法
Pass
list = [3, 5, 2, 1, 8, 4]
n= len(list)
for j in range(n-1):
for x in range(n-1):
if list[x] < list[x+1]:
t = list[x]
list[x] = list[x+1]
list[x+1] = t
print(list)
列表切片是处理列表的部分元素,也就是把整个列表切开。
[start
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。