python专栏系列基础部分(一)
写在前面:今天开始python专栏系列,建议刚入门python的同学拿来回顾python基础知识点~
一.序列以及通用操作
序列分类:可变序列list,不可变序列tuple、str
print(lst[2:5]) # 切片可以理解成列表的值区间,且是一个左闭右开区间
print(lst[5:-1]) # 索引5的值 - 倒数第二个值 (切片是右闭区间)
List[i:j:n]代表:索引i - 索引j,以n为步
print(lst.index(3)) # .index(obj)方法:从列表中找出某个值第一个匹配项的索引位置
lst1 = [1,2,3,'a','b','c',[1,2,3]]
# 可包含任意类型的对象:数值、字符串、列表等
print( lst2[0], lst2[4], lst2[-1] )
# 通过下标索引访问序列中的值 → 序列的顺序是不能改变的,通过索引来定位列表的元素
print(range(5),type(range(5)))
# range()是生成器,指向了一个范围
# range(5)代表指向了0,1,2,3,4这几个值
# range(2,5)代表指向了2,3,4这几个值,注意这里不是使用:
# range(0,10,2)代表指向了0,2,4,6,8这几个值,最后的2代表步长
#lst = list(range(5))
print(lst) # 通过list()函数生成列表
# list.append() 添加单个元素
# 添加多个元素用.extend()方法:用新列表扩展原来的列表
# .remove方法:移除列表中某个值的第一个匹配项
# del语句:删除list的相应索引值 lst.clear() # 移除所有值
# list.copy()方法:复制一个新的列表,lst,lst2指向两个列表(虽然两个列表值相同)
# 可变列表list常用操作 - 排序sort(),默认升序排序/字母顺序
# 参数reverse:反向排序,针对数字
# 函数sorted():排序并复制
元祖tuple :不可变的“列表” , 只包含一个元素时,需要在元素后面添加逗号,索引、切片和list一样
元祖不能单独删除内部元素(不可变性),但可以del语句来删除整个元祖
lst = list(range(10))
tup5 = tuple(lst)
print(tup5)
# tuple()函数:将列表转换为元组
# 转义字符:\
print('\'', '\"') # \',\" :分别输出单引号,双引号
print('hello\nhow do you do?') # \n:空行
print('\\') # 输出\,所以文件路径用“/”或者“\\”
# 序列通用功能
print('a' in 'abc') # in/not in :判断是否存在
print(st.index('g')) # .index()方法,查询g在st中的索引位置
# str.replace(old,new,count):修改字符串,count:更换几个
# str.split(obj):拆分字符串,生成列表
# str.join():连接字符串,对象为列表
# str.startswith(“str”) 判断是否以“str”开头;str.endswith (“str”) 判断是否以“str”结尾
st = 'aBDEAjc kLM'
print(st.upper()) # 全部大写
print(st.lower()) # 全部小写
print(st.swapcase()) # 大小写互换
print(st.capitalize()) # 首字母大写
# 格式化字符:在字符串中插入变量
name = "FATBIRD"
truth = "%s is 好人" %name
二.字典映射
字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中
键必须是唯一的,但值则不必
# 字典是一个无序集合,序列由于没有key来做对应,所以以顺序来对应值
# 序列有顺序,字典没有!
# dict.update()方法:更新/合并一个字典,把第二个字典合并到第一个字典,改变了第一个字典
a = {'m':1 , 'n':2 , 'p':3}
b = a
a.update( {'q':4} )
print(a,b)
# 和序列的原理一样,a和b指向同一个字典,所以会一起更新
a = {'m':1 , 'n':2 , 'p':3}
b = a.copy()
a.update({'q':4})
print(a,b)
# 通过.copy()方法,复制一个新的字典
print(len(a))
# 查看字典元素个数
print('m' in a)
print(1 in a)
# in / not in :判断是否包含,这里的判断对象是key
poi = { 'name':'shop' , 'city' : 'shanghai', 'information':{'address':'somewhere', 'num':66663333}}
print(poi['information']['address'])
# 对于嵌套字典,输出嵌套内容,通过重复指向来输出
poi = {'name':'shop', 'city':'shanghai', 'information':{'address':'somewhere', 'num':66663333}}
for key in poi.keys():
print(key) # 字典的元素遍历
三.匿名函数
# 示例
def fun(a,b,c):
return a+b+c
print(fun(2,3,4))
# def创建自定义函数,求和
f = lambda a,b,c:a+b+c
print(f(2,3,4))
# lambda作为匿名函数,是不需要函数名的 → 需要一个函数,又不想动脑筋去想名字,这就是匿名函数
# lambda的主体是一个表达式,而不是一个代码块。
# lambda只有一行,仅仅能在lambda表达式中封装有限的逻辑进去。
四.模块与包
# 模块路径问题
import pandas
print(pandas.__file__)
# 查看现有包所在路径,将自己创建的包存入路径
# 加载sys包,把新建的tsmodel所在路径添加上
import sys
sys.path.append('C:/Users/XXXXX/Desktop/')
# 简化模块名:import...as...
import tsmodel1 as tm1
print(tm1.f1(5))
# 简化模块名
# 调用部分模块语句:From…import 语句
from tsmodel1 import f2 # 单独导入模块的部分功能,但无法使用其他未导入模块功能
# random.random()随机生成一个[0:1)的随机数
# random.randint()随机生成一个[0:10]的整数
# random.choice()随机获取()中的一个元素,()种必须是一个有序类型
# random.sample(a,b)随机获取a中指定b长度的片段,不会改变原序列
# time.sleep()程序休息()秒
- 点赞
- 收藏
- 关注作者
评论(0)