python教程(持续更新)

图片缺失狠呐

python学习路径

img

变量名

• 变量名必须以字母或下画线开始,名字中间只能由字母、数 字和下画线“_”组成。 • 变量名的长度不得超过255个字符。
• 变量名在有效的范围内必须是唯一的。
• 变量名不能是Python中的关键字。
变量名是区分大小写的

python的关键字为
在这里插入图片描述

数据类型

数据类型转换

查看数据类型:用type()

int(x [,base ]) 将 x 转换为一个整数

float(x) 将 x 转换到一个浮点数

complex(real [,imag ]) 创建一个复数

chr(x ) 将一个整数转换为一个字符

ord(x ) 将一个字符转换为它的整数值

hex(x ) 将一个整数转换为一个十六进制字符串

oct(x ) 将一个整数转换为一个八进制字符串

bin(x ) 将一个整数转换为一个二进制字符串

元组与列表转化

str = 'hello world' 
print(list(str)) 
print(tuple(str)) 
tup = ('hello','world') 
print(list(tup)) l
ist = ['hello','world'] 
print(tuple(list))

转换成字典

li = ['name', 'age', 'city'] 
tup = ('jmilk', 23, 'BJ') 
kvtup = zip(li, tup) 
print(kvtup) print(dict(kvtup))

out:[('name', 'jmilk'), ('age', 23), ('city', 'BJ')] 
  {
    
    'city': 'BJ', 'age': 23, 'name': 'jmilk'}

字符串

字符串的基本操作

#字符串拼接
'a'+'b'
-----
ab

#复刻
'a'*2
-----
aa

#字符串查找
#字符串查找是指查找某一个字符串是否包含在另一个字符串中
#用in或者not in两种方法都可以,还可以用find()方法
'ab' in 'abc'
-----
True

'abc'.find('c')
--------
2

'abc'.find('d')
------
-1

#如歌不存在那就返回-1


#字符串索引
a[0]#从零开始

#字符串分割
"a,b,c".split(',')#将字符串用逗号分隔,列表展示
"a|b|c".split('|')#将字符串用|分隔,列表展示

#字符串删除
" A ".strip()#删除空格
"\ta\t ".strip()#移除换行符
'aAa'.strip('a')#移除a

转义字符:\n换行等

运算字符 +、 * 、[]、 [:]、 in、 not in、r’\n’(原始字符串)、%s(格式化字符串的输出)

格式化字符:%s 格式化字符串

列表

# 列表合并
#有两种方法,一种是+,另一种是extend
list1=[1,2,3]
list2=[4,5,6]
list1+list2
---------
[1,2,3,4,5,6]

list1.extend(list2)
[1,2,3,4,5,6]

list2.extend(list1)
[4,5,6,1,2,3]

#将列表B合并到列表A中,用到的方法是A.extend(B);将列表A
#合并到列表B中,用到的方法是B.extend(A)。

#列表插入
#主要有append()和insert()两种方法
#append()是在列表末尾插入新的数据元素
list1.append('a')
-----------
[1,2,3,'a']

insert()是在列表的指定位置插入新的数据元素。

list1.insert(1,'a')#在第2个位置插入a
----------
[1,'a',2,3]

# count用法
某值在列表中出现的次数
list1=[1,2,3,3,4,4]
list1.count(3)
-------
2

# index 获取某值的位置
list1.index(2)
---------
1
如果不止一个那么会返回第一个所在的位置

#列表索引
索引分为单个索引与切片索引
索引都是从0开始的
list1[0]#第一个位置
list1[1,3]#第二个到第三个,不包含第四位
list1[2:]#第三位到最后一位

#删除
pop和remove两种用法
pop指定的位置删除
remove指定元素删除

list1.pop(2)
list1.remove("a")

#排序
sort()
list1.sort()#默认升序

字典

字典是一种键值对结构

# 创建字典
dict1={
    
    }
dict1['a']=123
dict1['b']=456
--------
{
    
    "a":123,"b":456}

#用列表的方式放在元组中,用dict进行转化
content=(['a','1'],['b','1'])
dict2=dic(content)
dict2
-----
{
    
    "a":"2","b":"2"}
#keys,values和items用法
dict2.keys()
dict2.values()
dict2.items()

元组

元组不能进行修改,元组使用圆括号

获取元组长度
tup=(1,2,3)
len(tup)

#获取元组元素可以用索引或者切片索引的方式
不再赘述

#元组列表相互转化
list(tup)
tuple(list)

zip()函数将可迭代的对象(列表,元组)作为参数,,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。常与for循环一起搭配使用。

list1=[1,2,3,4]
tup2=(5,6,7,8)
for i in zip(list1,tup2):
    print(i)

在这里插入图片描述

str.format()用法

字符串格式

print("{} {}".format("hello", "world")) # 不设置指定位置,按默认顺序 
print("{0} {1}".format("hello", "world")) # 设置指定位置 
print("{1} {0} {1}".format("hello", "world")) # 设置指定位置 # 设置参数 print("网站名:{name}, 地址 {url}".format(name="百度", url="www.baidu.com")) # 通过字典设置参数
site = {
    
    "name": "百度", "url": "www.baidu.com"} 
print("网站名:{name}, 地址 {url}".format(**site)) # 通过列表索引设置参数 my_list = ['百度', 'www.baidu.com'] 
print("网站名:{0[0]}, 地址 {0[1]}".format(my_list)) # "0" 是可选的

格式化数字

下表展示了 str.format() 格式化数字的多种方法:

数字 格式 输出 描述

浮点设置
.2f表示以浮点型展示,且输出保留小数点后两位,这里的数字 2表示输出后保留的小数点位数

print("{:.2f}".format(2))

百分数设置
2%表示以百分比的形式展示,且输出保留小数点后两位,这 里的数字2表示输出后保留的小数点位数

print("{:.2f%}".format(0.002))

格式

缩进:用tab键,如果是取消缩进就用shift+tab键
注释:# 单行缩进,‘’’ 多行缩进 ‘’',“”" 多行缩进2 “”"

运算符

算数运算符
在这里插入图片描述
比较运算符
在这里插入图片描述

逻辑运算符
在这里插入图片描述

循环语句与条件语句

for
while
if

函数

定义调用函数函数

def a(canshu):
	"""
	函数指定注释:过滤危险字段 可以用a.__doc__,help(a)
	"""
	import re
	pattern=r'(黑客抓包)
	sub=re.sub(pattern,'@_@',string)
	print(sub)
	
#调用函数
a("abcderf")

参数

形参(形式参数):函数定义式参数列表中的参数

实参(实际参数):函数调用时传递进来的参数

位置参数:第一必须数量一致,第二必须位置一致,否则会抛出typeerror的异常信息

关键字参数:用形参的名字来指定关键值,不需要与形参的位置完全一致

参数默认值:如果没有指定某个参数会抛出异常,在定义函数时直接指定形参的默认值,当没有参数时直接使用定义函数时设置的默认值,指定默认形式的参数必须在所有参数之后,否则产生语法错误

可变参数:

第一种形式为*parameter,表示接受任意多个实际参数并将其放在元祖中.

第二种形式为**parameter,表示接受任意多个类似关键字参数赋值的参数

返回值:用return函数 如果没有return默认返回none即空值,可以返回多个值

def a(b,c):#b为形参
	print(b)
	
#调用
a(d,e)#d,e为实参

a(b=d,c=e)#关键字参数

#参数默认值
def a(b,c,d='2020'):
	pass
#查看默认值
a.__defaults__

#可变参数
def coffer(*coffername):
	for item in coffername:
		print(item)
#调用1
coffer('蓝山','卡布奇诺','摩卡')
#调用2
coffers=['蓝山','卡布奇诺','摩卡']
coffer(*coffers)

def coffer(**coffername):
	for key,value in coffername.items():#遍历字典
		print("["+key+"]喜欢的咖啡是:"+value)#输出组合后的信息
  return key,value
#调用1
coffer(a='蓝山',b='卡布奇诺')
#调用2
coffers={
    
    'a':'蓝山','b':'卡布奇诺'}
coffer(**coffers)

#返回值
cof=coffer(a='蓝山',b='卡布奇诺')
print(cof[0],cof[2])

变量的作用域:局部变量是指在函数内部定义并使用的变量,否则会抛出nameerror报错

全局变量能够作用于函数内外部的变量,分为两种一种是在函数外部被定义,函数内部的变量进行复制后,不用影响函数外部的变量.

另一种是在函数内部被定义,使用global将该局部变量转化为全局变量,可以在函数外部进行访问,并且还可以在函数内部对其进行修改.

#局部变量
def demo(): 
  name='abcd'
  print('局部变量为:',name)
demo()
print(abcd)
#nameerror报错

#全局变量
name='abcd'
def demo(): 
  print('全局变量为:',name)
demo()
print(abcd)

#第二种
name='abcd'
print('全局变量为:',name)
def demo(): 
  global name
  name='efgh'
  print('全局变量为:',name)
demo()
print(abcd)

匿名函数

是指没有名字的函数lambda,lambda是个表达式没有函数体

lambda arg1,arg2,arg3…:expression
arg1、arg2、arg3表示具体的参数,expression表示参数要执行
的操作。

最简单的lambda函数为
lambda x,y:x+y

高级特性

列表生成式

list1=[1,2,3,4]
[i**2 for i in list1]
--------
[1, 4, 9, 16]

list2=[5,6,7,8]
[i+j for i in list1 for j in list2]
-------
[6, 7, 8, 9, 7, 8, 9, 10, 8, 9, 10, 11, 9, 10, 11, 12]

map()函数的表现形式为map(function,agrs),表示对序列args中
的每个值进行function操作,最终得到一个结果序列

a=map(lambda x,y:x+y,[1,2],[3,4])
a
-------
<map at 0x109fe3c4d00>

map()函数生成的结果序列不会直接把全部结果显示出来,要
想获取到结果,则需要使用for循环遍历。也可以使用list()方法,将
结果值生成一个列表。

for i in a:
	print(i)
--------
4
6

#或者
list(map(lambda x,y:x+y,[1,2],[3,4]))
-----
[4,6]

面向对象程序设计

对象:抽象的概念即任意存在的事物.可以化为两部分,静态部分与动态部分.,静态部分称为属性,动态部分指对象的行为,即对象的执行动作

类是封装对象的属性和行为的载体,可以说具有相同属性和行为的一类实体被称为类,

面向对象设计的特点封装,继承,多态

#创建类
class Name:#一般使用大些字母开头,驼峰式命名法
  """类的帮助信息""" 
  pass #类的实体

#创建类的实例,即实例化该类的对象
name=Name()
print(name)
#创建__init__方法:每当创建一个新的实例时,都会自动运行它,必须包含self属性和方法,用于访问类的属性和方法
class Name:
  """大雁名字"""
  def __init__(self,a,b,c):#构造方法
    print('我的名字是')
    print(a,b,c)
a='a'
b='b'
c='c'
name=Name(a,b,c)#创建类的实例

在类中定义函数:通过类的实例名和点进行访问

#语法格式
def functionname(self,para):#必须有self存在,para各个参数间用逗号隔开
  bolck#方法体实现具体的功能
  
class Name:
  """大雁名字"""
  def __init__(self,a,b,c):#构造方法
    print('我的名字是')
    print(a,b,c)
  def fly(self,state):
    print(state)
a='a'
b='b'
c='c'
name=Name(a,b,c)#创建类的实例
name.fly('hhhh')#调用方法

在类中创建属性并访问

是指在类中定义的变量即属性,根据定义位置可以分为类属性和实例属性

猜你喜欢

转载自blog.csdn.net/weixin_41867184/article/details/125343379