python

Posted qwewqs

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python相关的知识,希望对你有一定的参考价值。

变量:1变量由数字,字母,下划线组成
2不能以数字开头
3禁止使用python关键字
4禁止使用中文和拼音
5变量名区分大小写
6变量名要有意义
7推荐使用驼峰 下划线
python2.7和3.x的区别:2.7:重复代码 语言不统一
3.x:代码不重复 语言统一
常量:PI=3.1415
注释:#当行注释(单行注释) ‘‘‘ ‘‘‘ """ """多行注释
初始基础数据类型:
(1)int 整型 34+56 用于计算和比较的 *乘 /除
(2)str 字符串 在python中只要使用引号引起来的都是字符串
(3)布尔值 bool True 真 False 假
(4)程序交互(input)
type()查看数据类型
注意:用input获取的内容都是字符串
int(‘6‘)将字符串转换成数字6
str(6)将数字转换成字符串‘6‘
格式化输出:%s--字符串 注意:s必须小写
%d--整型 %i--也是整型
注意:必须按照相对应的数量来填充,使用位置来填充参数
if条件语句:
1.if 条件:
代码块
2.if 条件:
代码块
else:
代码块
3.if 条件:
代码块
elif 条件:
代码块
elif 条件:
代码块
else 条件:
代码块
4.if 条件:
代码块
if 条件:
代码块
5.if 条件:
代码块
elif 条件:
代码块
elif 条件:
代码块
补充python2和python区别
python2:重复代码 语言不统一 不支持中文
input()输入数字获取数字,输入字符串必须手动写引号
raw_input和python3中的input一样
print可以加括号也可以不加括号
python2中除法获取到的是整型
python3:代码不重复 语言统一 支持中文 input() print() 必须加括号
python3中除法获取到的是浮点型(有小数点)
while循环:
while--关键字
while 条件:
循环体(代码块)
死循环 条件一直为真就形成了一个环
break 跳出循环 continue 跳出本次循环继续执行下次循环
运算符:

5 种

算数运算符

print(a + b) # 加
print(b - a) # 减
print(b * a) # 乘
print(b / a) # 除(有小数点)
print(b % a) # 取膜
print(b ** a) # 幂 (几次方)
print(b // a) # 整除(没有小数点)

比较运算符

a = 10
b = 20

print(b > a) # 大于
print(b < a) # 小于
print(b >= a) # 大于等于
print(b <= a) # 小于等于
print(b == a) # 等于
print(b != a) # 不等于


赋值运算符

a = 10 # a就是10
# a += 10 # a = a + 10 就是在自己的身上在就上一个自己
# print(a)
# a -= 10
# print(a) # a = a - 10
# a *= 10 # a = a * 10
# print(a)
# a /= 10 # a = a / 10
# print(a)
# a **= 10 # a = a ** 10
# print(a)
# a //= 10 # a = a // 10
# print(a)
# a %= 10 # a = a % 10
# print(a)

逻辑运算符

与 或 非
and or not

成员运算符

in 存在
not in 不存在

初始编码:ascii码 不支持中文 python2默认编码是ascii码
unicode 万国码 32位 中文四个字节 英文两个字节 最少用十六位两个字节来表示
utf-8 最少用8位1个字节表示 欧洲16位 亚洲24位
GBK(国际) 中文2个字节 英文1个字节
8(bit)位==1(byte)字节
1024(byte)==1kb(千字节)
1024kb==1Mb
1024Mb==1Gb
1024Gb==1Tb
1024Tb==1Pb
常用到1Tb就可以了
python2中有长整型 long 浪
python3中全都是整型
n=bool(6) True 数字和布尔值可以进行转换
print(n)
s=bool(0) False 数字和布尔值可以进行转换
print(s)
注意:在数字转换成布尔值的时候只有0是False其余都是True
n=int(True) True 1
print(n)
n=int(False) False 0
print(n)
字符串详解:
title()每个单词首字母大写 只要有特殊字符隔开才能分别认为是多个单词(中文也是特殊字符)
capitalize()首字母大写
upper()全部大写
lower()全部小写
count()计数 统计
find()查找索引位置
‘meet‘(下标)索引 从左往右
index()索引 查找不存在的就报错
总结:下标(索引)从左往右0开始从右往左-1开始
切片从左往右[起始位置:终止位置]
如果是[-1:-4],这样是不可以取到内容的
步长(扯淡)[起始位置:终止位置:步长] (方向)默认使用时1,也就是从左往右,想要从右往左步长写为-1,可以一次性跨多个(列如我们写的步长为2,3,4,5)
center(居中) 第一个放数字 第二个放要填充的内容
split 分割 默认使用的是空格
strip 脱 脱得是头尾两边的空格,默认脱空格和换行符 ==键盘上的回车
join用代码一行把列表转换成字符串
s=‘_‘指定字符串拼接
replace 替换 第一个是要被替换的内容,第二个是要什么替换
replit 右分割
startswith 以什么开始获取的结果是布尔值
endswith 以什么结尾 获取的结果是布尔值
format格式化 可以按照占位 索引 关键字来填充
isalnum 判断是不是数字和字母
isalpha 判断是不是纯字母
isdight 判断是不是纯数字
list列表[]可变的
增:append追加 insert插入 第一个参数是插入的位置(索引)要插入的内容 extend迭代添加
删:remove移除 删除指定元素,元素放在括号里只能指定一个删除
pop弹出 默认删除最后一个有返回值,返回的就是被删除的元素,可以通过元素的下标指定删除的元素
ciear清空 del删除整个列表,可以通过下标删除对应的元素
改:通过下标修改 范围修改
查:lst=[1,2,3,4,True,‘alex‘,‘alex‘]
print(lst[2]) #查询
for循环
for i in lst:
print(i)
其他操作:reverse反转 sort排序 从小到大没有赋值None
sort(reverse=True)降序从大到小
 字典用{}表示,
{‘key‘:1}
不可变(可哈希): 数字 字符串 元祖 布尔值
可变(不可哈希): 列表 字典

print(dic)

字典里的键必须保证唯一(不能重复)
python36 有顺序打印
python35及以下无序打印

增 如果这个键不在字典中就是添加,存在就是修改

dic[‘周志鹏‘]=‘小奶狗的芭比‘
print(dic)

dic.setdefault(‘周阳‘,‘国家一级大厨‘) #存在就不进行添加,不存在就添加
setdefault中第一个参数是键 第二个参数是值 如果不写值就默认为None
print(dic)


########## 字典是没有remove

s=dic.pop(‘3‘) #pop返回的是被删除的值 pop一定要给人家参数 参数是要删除的键
print(s)
print(dic)

s1=dic.popitem() #随机删除 在python36中删除最后一个 python35及以下随机删除
print(s1) popitem返回的是被删除的键值对以元祖的形式显示 元祖中第一个是字典中的键 第二个是字典中的值
print(dic)

del dic #删除整个字典
print(dic)

del dic[‘3‘] #通过dic[‘键‘]删除
print(dic)

dic.clear() #清空


dic = {1:2,‘3‘:‘4‘,False:True,(123):[‘132‘,‘qw‘]}
dic1={‘周公‘:‘放了我的孩子们‘}
dic[1] = 78 #如果这个键在字典中就是修改,不存在就是添加
print(dic)

dic1.update(dic)
print(dic1)


dic = {1:2,‘3‘:‘4‘,False:True,(123):[‘132‘,‘qw‘]}
s=dic.get(‘4‘) #不报错,默认返回None 可以自己定义返回值

print(dic[4]) #报错
print(s)

其他操作

dic = {1:2,‘3‘:‘4‘,False:True,(123):[‘132‘,‘qw‘]}
print(dic.keys()) #高仿列表A货
print(dic.values()) #高仿列表A货
print(dic.items()) #以元祖形式将键值对放在一个高仿列表里

for i in dic.items():
print(i)

for i in dic.keys():
print(i)

for i in dic:
print(i) #获取到的是键

if 1 in dic:
print(666)

for i in dic:
print(dic[i])
print(dic.get(i)) #建议使用get

for i in dic:
print(i,dic[i])

字典的嵌套:
dic = {‘name‘:‘汪峰‘,
‘age‘:48,
‘job‘:‘输出‘,
‘wife‘:[{‘name‘:‘葛慧杰‘,‘age‘:20,‘job‘:‘输入‘,‘baby‘:‘小苹果‘},
{‘name‘:‘国际章‘,‘age‘:23,‘job‘:‘国际输入‘,‘baby‘:[‘胸大‘,‘熊二‘]}],
}
print(dic[‘wife‘][0][‘name‘])
print(dic[‘wife‘][0][‘baby‘])

print(dic[‘wife‘][1][‘baby‘][0])

id() #查看内存地址
name = ‘alex‘
name1 = ‘alex‘
print(id(name))
print(id(name1))

is #查看是不是一个 通过内存地址
print(name == name1)
==查看等号两边的值

def func():
#pass #代码块1
name = ‘alex‘
print(id(name))

def func1():
#pass #代码块2
name = ‘alex‘
print(id(name))

func()
func1()

多个代码块中是可以使用小数据池

代码块中有一个问题 就是重复使用

a = 100
b = 100
print(a is b)

数字
/-5~256

字符串 乘法总数长度不能超过20,0和1除外 不能有特殊字符

a = ‘@‘*1
b = ‘@‘*1
print(a is b)
set 集合 {} 无序  去重 可变

s = {1,2,3,4,5}

s = {}
print(type(s)) # 空{}就是字典

s = {1,2,3,4,5}
s = {1,2,3,‘22‘,‘ss‘,False,(3,4),{1,3}}
列表 和 字典 和 集合
print(s)


s . add(8)
print(s)

s . update(‘alex‘) # 迭代添加
print(s)


s = {1,2,3,‘22‘,‘ss‘,False,(3,4)}
s1=s.pop() #随机删除
print(s) #返回值 返回的是被删除的元素
print(s1)

s.clear() #清空 set()
print(s)

s = {1,2,3,‘22‘,‘ss‘,False,(3,4)}
del s #删除整个集合
print(s)

s = {1,2,3,‘22‘,‘ss‘,False,(3,4)}
s.remove(‘22‘) #通过元素指定删除
print(s)

改: 先删后增就是改
s = {1,2,3,‘22‘,‘ss‘,False,(3,4)}
s.remove(3)
s.add(7)
print(s)

查: for循环
s = {1,2,3,‘22‘,‘ss‘,False,(3,4)}
for i in s:
print(i)
frozenset 冻结集合
s={1,2,3,4,33,21,4,1234,34,1234,5324,1234,12341,23,22,34112,2,21,23,34}
集合天然去重
print(s)

面试题:
lst = [1,2,3,42,3,45,67,534,2]
print(list(set(lst)))

s=set(lst)
print(lst(s))

其他操作:
s = {‘黑哥‘,‘白哥‘,‘艺术哥‘,‘豹哥‘,‘龙哥‘}
s1={‘虎哥‘,‘开哥‘,‘alex哥‘,‘黑哥‘,‘wu哥‘}
print(s & s1) #两个集合中的共有元素 交集

print(s | s1) #并集 两个集合合并到一起

print(s - s1) #差集 前面前后边的集合前边集合中有的输出出来

print(s ^ s1) #反交集

print(s < s1) #子集
print(s1 > s) # 超(父)集

a = frozenset({1,2,3,4})冻结集合
dic = {a:1}
print(dic)

二次编码
ascii #不支持中文
unicode 万国码 中文四个字节 英文2个
utf-8 最少使用1个字节 欧洲2 亚洲3
gbk 中文2 英文1
windows 默认编码是GBK

a = ‘你好黑‘
a1 = ‘alex‘

a2=a.encode(‘gbk‘) #编码
print(a)
print(a2)
a3=a2.decode(‘gbk‘)
print(a3)
# bytes 字节 用于传输和存储

a=‘你好黑‘
a1=‘alex‘
a2=a.encode(‘gbk‘) #编码
a3=a.encode(‘utf-8‘) #最常,用
print(a2)
print(a3)
a4=a2.decode(‘gbk‘) #解码
a5=a3.decode(‘utf-8‘)
print(a4,a5)
注意:用什么编就用什么解

基础补充 列表用for循环删除的坑 字典for循环中不能做添加,删除 字典fromkeys后边的值是共用一个
lst = [1,2,3,4,5,]

for i in lst:

lst . remove(i)

print(lst)
删除不行

lst = [1,2,3,4,5]
for i in lst:
lst.pop()
print(lst)
不行

lst = [1,2,3,4,5]
for i in lst:
lst.clear()
print(lst)
行,作弊

lst = [1,2,3,4,5]
for i in lst:
del lst[0]
print(lst)
不行

lst = [1,2,3,4,5]
for i in range(len(lst)):
lst.pop(0)

print(lst)
这个行

lst = [1,2,3,4,5]
for i in range(len(lst)):
lst.pop()
print(lst)
这个行

lst = [1,2,3,4,5]
for i in lst:
if type(i) == int:
lst[i-1]=‘‘
print(lst)

print(list(set(lst)))

lst=[1,2,3,4,5]
lst1=[]

for i in lst:
lst1.append(i)
for k in lst1:
lst.remove(k)
print(lst)
这个方式也可以

dic = {‘a‘:1,‘b‘:2}
for i in dic:
dic[‘c‘]=3
print(dic)

for i in dic:
dic.pop(i)
print(dic)

lst = {}
dic = {‘a‘:1,‘b‘:2}
for i in dic:
lst[i]=dic[i]
print(lst)
for i in dic:
dic.pop(i)
print(dic)

#################以上都是深坑##########################

dic=dict.fromkeys([‘alex‘,‘wusir‘,‘wenzhou‘,‘nvshen‘,‘kaige‘],[‘太白‘,‘姗姗‘])
fromkeys 第一个是键,第二个是值
print(dic)

dic[‘alex‘].append(‘老村长‘)
print(dic)
###########坑#############

深浅拷贝:
lst = [1,2,3,4,5,[3,4,6,8],5]
lst1=lst
lst1 = lst[:] #浅拷贝只拷贝第一层元素
print(id(lst))
print(id(lst1))
lst.append(6)
print(lst)
print(lst1)
lst[-2].append(9)
print(lst)
print(lst1)



dic ={‘a‘:1,"b":1}
dic1=dic
print(id(dic1))
print(id(dic))


import copy 深拷贝
# lst = [1,2,3,4,5,[3,4,6,8],5]
# lst1=copy.deepcopy(lst)
# print(lst)
# print(lst1)
# lst[-2].append(10)
# print(lst)
# print(lst1)

浅拷贝: 拷贝的是第一层元素
深拷贝: 拷贝所有元素开辟新的空间存放,两者完全没有关系

面试题:
a=[1,2]
a[1]=a # [1,2]
print(a[1])


























































































































































































































































































































































































































































































































































以上是关于python的主要内容,如果未能解决你的问题,请参考以下文章

PythonPython库之机器学习

PythonPython库之机器学习

PythonPython库之游戏开发

PythonPython库之游戏开发

PythonPython XML 读写

PythonPython库之Web信息提取