这周太舒服,也没怎么认真写,这周去团建黄山,自己又跑到法喜寺。非常辛苦,喜欢我得博文麻烦点个三连,支持一下这个快秃头的博主
1.字符串
编程语言最常见就是字符串,Python很多地方确实字符串比其他类型更常见,就拿输入得函数怎么输入都是字符串类型的。
Python字符串有很多写法,是非常多得写法,你敢相信有4种写法
1.1语法
# 第一种
str1 = '字符串写法1'
# 第二种
str2 = "字符串写法2"
# 第三种
str3 = '''字符串写法3'''
# 第四种
str4 = """字符串写法4"""
1.2格式化字符串
格式化字符串方式很多,我就讲几个需要更加强大请到CSDN搜索
占位符 | 说明 |
---|---|
%d | 格式化整数 |
%s | 格式化字符串 |
%f | 格式化浮点数 |
f | 我最喜欢格式化方法 |
1.3截取
语法:
字符串[开始位置:结束位置:步长]
按照含头不含尾,并且位置可以是负数![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7NrgNacg-1605456767431)(https://i.loli.net/2020/11/09/3SyA8QCjTxXlLba.gif)]
str1 = 'I am Chinese, I love Python programming language, I will try my best to learn this technology well'
print(str1[3:8]) # m Chi
print(str1[-4:-1]) # wel
1.4查找
在Java查找子串是否在字符串中,我用的最多就是indexOf的方法。
Python查找大体分成3种
- find(子串,beg,end)
- index(子串,beg,end)
- count(子串,beg,end)
# find和index效果一样,但index找不到会抛异常
# 检测 str1 是否包含在字符串中,如果指定范围 beg 和 end ,则检查是否包含在指定范围内,如果包含返回开始的索引值,否则返回-1
str1 = 'I am Chinese, I love Python programming language, I will try my best to learn this technology well'
print(str1.find('love'))
# count返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数
print(str1.count('I'))
1.5修改
这里记录一些常用方法,许多用的频率很小的方法,用时候想不起来直接上百度或者CSDN问大佬
方法 | 描述 |
---|---|
replace() | 替换,跟Java一模一样 |
split() | 分割,返回是个list |
join() | 将序列中的元素以指定的字符连接生成一个新的字符串 |
upper() | 小写转大写 |
lower() | 大写转小写 |
capitalize() | 首字母大写 |
title() | 每个单词大写 |
strip() | 去除首尾空格 |
有意思的是在Python中字符串修改,是不会改变原有的字符串,这也说明了Python字符串是不可变的。其实Python有很多关于字符串的方法,这里就不过多累赘的写这些东西(主要我够懒)!
2.列表
从这改改之前写作风格,用自己语言组织去描述,而不是冰冷冷的代码或表格,或许代码表格来的更直接点,但换位思考一下大家忙碌一整天,好不容易有个下班休息的时间,打开CSDN点开自己心仪的博文,正准备欣赏博主二话不说啪叽向你抛一段代码和表格,你说头疼不头疼,所以字符串我按照以前写作风格和下面的风格进行对比,给大家对比来参考那种方式更好让大家阅读到更优质的文章。
啥是列表,从我们在字面上理解,就是一些有顺序排列的数据咯,别人说小陈啊下班前把这些文件整理成一份列表交给我,这时候对于一坨文件来说他是乱七八糟的摊在那边,在你整理归纳后并按照这些文件顺序进行编号,才出来一份列表。在计算机中其实跟生活类似,一些相同数据类型数据整理在一起,并按顺序编号出来的就是一份列表,并且我们能按照编号,快速准确拿出这些数据。如果有Java基础的,很明白这无非是个数组,而当初学Java数组时候,是怎么定义数组含义的呢?一组相同数据类型的集合?我也记不清了,Java我都好久没用了。
不过注意一点Pyhton中列表可以是不同类型聚合,这就牛啤哄哄了,在Java中好像这样容器很少吧,即使你写个Object[]的数组或者List好像最后都变成Object,那有啥用也就是接收的东西可以不一样,但全部存储时候都给你转一样了。当然对于列表有增删改查等操作的函数(在最后我已表格形式展示给大家,感觉没必要看直接跳过),而列表创建非常简单,把不同数据用逗号割开然后包裹一个方括号就行如list1 = [123,3.1415926,'我是字符串']
,一定记得Python列表对数据类型是没有要求的,对于这种序列访问其实都有一套规则的,访问就那着下标去取,替换就是找到下标元素赋值就好了。举个例子print(list1[0])
,list1[0]='csdn'
2.1列表常用方法
方法 | 说明 |
---|---|
append() | 追加一个 |
extend() | 追加一个序列 |
insert() | 插入 |
pop() | 移除元素,并返回 |
remove() | 移除指定元素 |
index() | 查找指定元素 |
3.元组
我第一次看Python时候,看元组感觉这东西没必要,这玩意除了跟列表换了一下方括号换成小括号,还有一点就是元组元素不能修改不可删除。那我感觉元祖好像也没啥内容可以讲的了,这里我多拓展一点关于元组和列表转换,有时候元组用不方便想用列表怎么办,用list()
函数轻松解决。那list转元组也有对应一个函数tuple()
。
使用id()
函数可以查看变量地址
3.1元组常用方法
方法 | 说明 |
---|---|
len() | 长度 |
max()/min() | 元素最大值/最小值 |
tuple() | 转换成元组 |
4.字典
字典是比列表和元组更厉害的,可以存储类似key-value数据,跟Java中的map有些类似。是一个可变的数据容器,而且key必须唯一,值类型可以随意的类型,但key的类型必须内置类型。字典创建也非常简单,使用花括号包裹数据然后用逗号分隔每个数据。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vlt2ws0P-1605456767437)(https://i.loli.net/2020/11/11/npj8WghIYMDSd3L.png)]
字典其实无非把列表(元组)的下标换成一个具体的值用来与数据相对于,像之前列表(元组)拿这下标去查找和修改,现在无非该成一个个key去操作数据而已。
4.1字典常见方法
方法 | 说明 |
---|---|
clear() | 清空字典数据 |
get() | 获取指定key的值,不存在报错 |
items() | 返回元组数组,遍历神器 |
keys() | 返回key迭代器,遍历神器 |
values() | 返回value迭代器,遍历神器 |
dict1 = {'name':'Tom','age':18,'gender':'男'}
for key,value in dict1.items():
print(f'{key}={value}')
5.集合
集合是一个无序不重复序列,像之前讲的几个序列都是有序可以重复的,集合是对之前序列类型做一个补充,集合有啥用途呢,我用过一次好像也就是快速去重一个功能,其他的很少用到集合的地方。这里集合创建要主要一下,因为集合也是用花括号包裹数据,所以创建空的集合必须用set()方法。其他的一些方法请参考我的下面的表格
5.1集合常用的方法
方法 | 说明 |
---|---|
add() | 添加 |
update() | 追加元素 |
remove() | 删除指定数据,不存在报错 |
discard() | 删除指定数据,不存在不报错 |
pop() | 随机删除,并返回 |
in/not in | 判断是否在集合中 |
最后放上黄山精美图片