1、第三方python库---pip:
可在PyPI平台上找到。
pip工具允许在【终端窗口通过命令】的查找\下载和安装\卸载Python包或库软件,pip在安装python时已经一并安装。
- 使用pip下载并安装包时,下载的默认源就是PyPI平台。https://pypi.org/ 但是这个站点在国外,连接慢。国内有镜像源站点:
- 清华 https://pypi.tuna.tsinghua.edu.cn/simple
- 中科大 https://pypi.mirrors.ustc.edu.cn/simple
- 阿里云 https://mirrors.aliyun.com/pypi/simple
- 豆瓣 http://pypi.douban.com/simple
使用方式:pip install 包名 -i 镜像地址
使用pip命令:在【PyCharm平台】中: 菜单View--Tool Windows--Terminal选项,打开终端窗口。 输入:
- pip --verion 查看pip版本.
- pip -help 获取帮助
- pip install -U pip 升级 pip
- pip install 包名 安装指定包的最新版本
- pip install 包名==1.0.1 安装指定包的指定版本
- pip install '包名>=1.0.4' 安装指定包的最低版本
- pip install --upgrade 包名 升级指定包
- pip uninstall 包名 卸载指定包
- pip search 包名 查找指定包(该命令暂时处于无法使用状态,恢日期待官方通知)
- pip show包名 显示已安装的包的基本信息
- pip show-f包名 显示已安装的包的详细信息
- pip list 列出已安装的包
- pip list -o 列出可以升级的包
- 托管平台GitHub上也有大量的开源Python包、库及完整的python软件。https://github.com/
2、python使用变量前不需要声明:
变量类型也不需要声明。
a = 1
d="" #一个语句一行,不用加分号结尾。 多语句一行,加分号
a=b=c=1 #多变量赋值
q,b=1,2
查看变量类型:
print(type(a)) # 输出结果为<class 'int'>
变量名规则:字母、数字、下划线。数字不开头--区分大小写
保留关键字查看:
import keyword
print(keyword.kwlist)
删除已经定义的变量:
del(a_name)
.py文件执行的时候,按照【自上而下】的顺序进行。相同变量名时,下方的会覆盖上方的变量值
3、数据类型:
- Number \ String \ Tuple-->不可变数据。改变值时,创建一个新的对象返回
- Set \ Dictionary \ List----->可变。在原对象上调整.
- Bool布尔.1--true 0--false 可与数字加减.
- Number:int \ float \ complex
a=0.1; b=0.2; print(a+b) # 输出0.30000000000000004
#尾巴上04是不确定尾数,由计算机内部运算产生的.最好设置保留小数的位数解决.
#c=a+b #加法,并赋值给c
r=round(a+b,3) #x为需要处理的浮点数; d为需要保留的小数位数.0为整数.3是3位小数;
#round还会对数据四舍五入
print(r) # 输出:0.3 #应该是0.300,但会显示0.3
a=2e2 # 代表200 浮点数可用科学计数法
a = 12+ 0.5j # 复数由实部和虚部组成。复数的虚部由j或J为后缀
4、String :单引号或双引号.
#大量字符串输入:
- 需要【换行输入】大量字符串时,行尾加反斜杠 \ 连接.'''
a="d为需要保留的小数位数.0为整数.3是3\
位小数; 0.300会显示0.3"
- 【大量字符输入】用三个单/双引号 括起来,无需 \ 连接。没有变量接收时三个引号还可以用于[多行注释]
s="""r=round(a+b,3) #x为需要处理的浮点数;
为需要保留
的小数位数.0为整数.3是3位小数; 0.300会显"""
# 转义字符:
- \n 换行
- \r 回车符,回到本行行首
- \t 相当于Tab键
- \b 退格.当前位置后退一个字符
a="\"dfdf\""
print(a) #输出:"dfdf"
# 原始字符串:
将字符串原样输出。
str= r"c:\Windows\sys" +"\\" #在字符串前面加上 r 前缀。输出:c:\Windows\sys\
#字符串的结尾不可以是\.若结尾一定需要\,可在后面拼接一个"\\"
# 字符串的连接
- + 号连接字符串 a="sss" b=12 c=a+str(b) #强转转换整数为字符串.+连接的两个字符串类型数据
- 两个字符串写在一起: a="ss""fff"
- * 代表字符串的重复 print("sss "*5) #重复5遍
# 字符串的格式化
# 1、%占位符:
a = {'name = %s,age = %d'%("王三",24)}
s= "my name is: %s"%"hello" #输出:my name is: hello
print(a) #输出 {'name = 王三,age = 24'}
# 2、format格式:
把字符串当做一个模版.用大括号{}作为占位符代替%
#使用方式:str.format(p0,p1,a="1",b="2")
print("{0}{1}{0}".format("哈哈","你好")) #哈哈你好哈哈
print("{a}{b}{a}".format(a="123",b="你好")) #123你好123 使用{}时,默认按顺序填充
# 字符串切片:
正索引:从0 开始,0、1、2、3 负索引:-3、-2、-1 【取左不取右】
a="hello" # 0,1,2,3,4,
print(a[1:4:1]) #[从左往右]:ell
print(a[-4:-1]) #也是输出ell :步长默认从左往右取值,默认值为 1
a[3:0:-1] # 也可[[从右往左]],取值ell:
a[-2:-5:-1] #步长为-1 ,取出来的是倒序
# --步长和取值方向冲突时,输出为空
#-5,-4,-3,-2,-1
#字符串的其他操作:
print(len(str)) #1、获取字符串长度:
print(a.lower()) #2、大小写转换:b.upper()
c = a.find("ccc")#3、检测字符串中是否包含某字符串: 若有,返回开始索引;若无,返回-1
num= a.count(b) #4、检测字符串出现次数: 没有返回0
a.replace(b,c,2) #5、替换字符串:str.replace(old,new,[,max]):max为限制替换次数。
# 不设max时会全部替换。
str = a.strip(b) #6、移除头尾指定字符串:不传b时,默认移除空格 a.lstrip() 删左边|b.rstrip()删右边
str.split(str,num)#7、按分隔符号对字符串进行切片: :str为分隔符; num为分割次数,默认为-1.分割所有
c =a.ljust(20,"*") #8、对字符串进行对齐: 左对齐,宽度为20,使用*填充不够的
b =a.rjust(10."#") #右对齐 b=a.center(20,"=") 居中对齐
5、List [列表]
以0开始 。 列表可以被修改 。列表中的元素类型可以不同
list = [1,2,"aa",(1,2,3),[1,2]]
print(type(list)) #输出:<class 'list'>
1、list切片:
- 正索引:从0 开始,0.1.2.3.4
- 负索引:从右往左: ,-5,-4,-3,-2,-1
- 取值:list[索引号]
list[:] #取所有
list[1:3] #取左不取右
2、list的常见操作
1)添加元素:
list.insert(位置,元素) #元素整体往后移动,腾位置给新元素
list.append(元素) #在列表末尾添加单个元素
list.extend(指定序列) #多个值一次性追加到列表末尾.可以是列表\元组\集合\字典等 [1,2,3,4]列表
2)删除元素:
list.pop(索引) # 指定位置删除.不指定时,索引默认为-1.删除最后一个
list.remove("two") #指定删除元素.
3)列表排序:
list.sort(key=None,reverse=False) #key为比较前在每个列表元素上调用的函数;
#reverse=true,降序排列,false升序排列
#sort()会在当前列表直接修改
#sorted(可迭代列表对象,key=None,reverse=False): 会构建一个新的排序列表
#-------------------------------
def func333(parm):
return parm[1] #返回列表的第二个元素为排序依据
c=[["a",4],["b",3],["c",2],["d",1]]
c.sort(key=func333,reverse=False) #[['d', 1], ['c', 2], ['b', 3], ['a', 4]]
print(c) #key为比较前在每个列表元素上调用的函数;
4)列表的重复与组合
c=a+b # +号组合
d=a*5 # *号重复
列表的其他操作
print(len(列表)) #5)获取列表元素的个数:
print(max(列表)) #6)获取列表中的最大值最小值: min(列表)
list2= list(元组或字符串对象)#7)列表的类型转换:元组或字符串与列表之间的转换:
print(a.count("指定元素")) #8)统计指定元素在列表中出现的次数:
print(a.index(2)) #9)查找指定元素的索引: #返回首次匹配元素的索引
a.reverse() #10)翻转列表:#只是翻转列表,在原列表上修改,无返回值
d = b [in/not in] 列表a #11)判断元素是否在列表中: 返回true或false
6、Tuple [元组]
- 以0开始
- 元组不可以被修改
- 元组中的元素类型可以不同
tup=("a","b",(1,2),[1,2])
print(type(tup)) #<class 'tuple'>
#元组中【只有一个元素】时,需要在后面增加逗号,否则括号会被当做运算符使用.
#如 a=(1) 会被当做int 数字1
相关操作:
print(tup[3][2]) #1、访问元组
print(tup[:3]) #2、元组切片: 取左不取右
del tup; #3、删除元组: 元组不可修改,所以元组不能删除某一个元素,只能【删除元组本身 】
tup = tup1 + tup2 #4、组合新元组: 元组不可修改,组合是创建了一个新的元组返回:
tup = tup1 *3 #5、复制新元组: 使用*号
c=len(tup); #6、统计元组个数:
print(max(tup)) #7、返回元组中最大值最小值:
tups = tuple(list) #8、强制将列表转换为元组类型:
7、Dictionary [字典]
- 字典可以被修改
- 字典可存储任意类型元素
- 字典存储键值对,以冒号分割,用逗号隔开.
- 其中键必须唯一且是不可变的数据类型:字符串\数字\元组
相关操作:
#1、创建字典:可改变:
dic={}; dic["name"]=18 #1)可以创建一个空字典再赋值:
dic = {"name":"cc","sex":"boy"} #2)直接创建字典并赋值
value = dic["name"] #2、访问字典: 通过键名 访问键值
dic["name"]=18 #3、修改字典: 用赋值的方式添加元素.
del dic["name"] #4、删除字典元素:用键值删除元素
dic.clear() #清空字典:
del dic #删除字典本身
print(len(dic)) #5、统计字典元素:
s=str(dic) #6、字典转字符串: #输出 {1:'a','str':'b'}
t= "str" in dic #7、判断键是否存在 #true 或 false
dic.pop("name") #8、删除指定键对应的值
dic.popitem() #9、删除最后一对键值对 删除最后一对时
8、Set [集合]
- 无序且不重合
- 没有索引
- 不可切片
- 用大括号{}或使用set() 创建集合.
s = set() #1、创建空集合,必须使用set() ;用空的大括号 {} 创建的是[字典]类型
sets={1,2,'a'} #创建集合
#---------------------------------
sets.add("newbj") #2、添加元素: #若已经存在,不做操作
sets.remove("name") #3、移除元素: #删除时若元素不存在,会报错
sets.clear() #4、清空集合
print(len(sets)) #5、统计集合元素:
newset = a.difference(b) #6、返回集合差集: a有b没有
newset = a.intersection(b) #7、返回集合交集: a有b也有
newset = a.union(b) #8、返回集合并集: a+b去重:
ifIn = a.isdisjoint(b) #9、判断两个集合中是否包含相同元素 # b 中是否有 a 中的元素
sets.pop() #10、随机移除一个元素:
newset =a.symmetric_difference(b) #11、返回两个集合中不重复的元素集合: 删除ab中相同元素,再合并
9、Bool [布尔]
1是true 0 是false'''
# 除了空字符,空的序列,数字0 以外,其余都可以表示真
print(bool([1,2])) #输出true
10、运算符
1、算术运算符:
- + : int型做相加数学运算,其他类型做连接符、
- - : 减法
- * : int型做相乘,其他类型复制;、
- / : 除法
- % : 模运算,取余数、
- ** : 幂运算 、
- //:整除,向下取余
2、比较运算符:
- == 等于。一个=用于赋值,如a=1
- != 不等于
- > 大于
- < 小于
- >= 大于等于
- <= 小于等于
3、逻辑运算符:
- and
- or
- not 取反
4、成员运算符:
- in 包括返回true,否则返回false
- not in 不包括
11、python中的缩进
1、python中的代码块靠 缩进来控制
2、缩进距离必须完全一致,否则不会被视为同一个代码块
12、条件语句
if a>b:
print(1)
elif a==b:
print(2)
else:
print(3)
13、for循环:
#for 迭代变量 in 序列:
# 循环代码块
#-------------------------------------
list = [1,"name",3]
for a,b in enumerate(list): #枚举遍历
print(a,b)
#--输出--
0 1
1 name
2 3
14、while 条件语句:
#while 条件语句:
# 循环代码块
#------------------------------
while a<=10:
print("您好")
a=a+1
# 跳出循环:
1、break 语句:完全跳出循环体
2、continue :跳出当前单词循环
15、pass:
为了保证程序结构的完整性,占位. pass不做任何事情.
python中的函数=内置函数+自定义函数