python专栏系列基础部分(一)​

举报
qinggedada 发表于 2020/08/14 10:29:41 2020/08/14
【摘要】 写在前面:今天开始python基础系列更新,大家可以在学习完python后翻看这个系列来复习知识点。一.序列以及通用操作序列分类:可变序列list,不可变序列tuple、str# 切片可以理解成列表的值区间,且是一个左闭右开区间print(lst[2:5])# 索引5的值 - 倒数第二个值 (切片是右闭区间)print(lst[5:-1]) List[i:j:n]代表:索引i...

写在前面:今天开始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()程序休息()秒


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。