Python基础——中篇

Python——中篇

1、 字符串的常用方法

1.1、 拼接

1.1.1、 示例1(常用):
1
2
3
4
5
6
a = "洋群满满"
b = "爱python"
c = a + b
print(c)
-------------------------------------------------------------------
输出 ---> 洋群满满爱python

注意:如果是str和number则需要对number转换,通过str(number)转换。

1.1.2、 示例2(极少使用):
1
2
3
4
a = "洋群满满" "爱python"
print(a)
-------------------------------------------------------------------
输出 ---> 洋群满满爱python

1.2、 切片(截取)

用法灵活,需要对上一篇的索引已有深刻的理解。

1.2.1、 语法

string[start : end : step]
注意:左开右闭

1.2.2、 示例1:截取python
1
2
3
4
5
a = "洋群满4爱python"
b = a[3:]
print(b)
-------------------------------------------------------------------
输出 ---> python
1.2.3、 示例2: 截取洋满真爱
1
2
3
4
5
a = "洋群满满真可爱"
b = a[::2] # 或者 b = a[0::2]
print(b)
-------------------------------------------------------------------
输出 ---> 洋满真爱

1.3、 获取字符串长度

获取字符串长度由于比较少用,洋群满满就不写了,需要了解的可以私聊。

1.3.1、 语法

len(string)

1.3.2、 示例—len(string)
1
2
3
4
5
a = "洋群满满爱python"
b = len(a)
print(b)
-------------------------------------------------------------------
输出 ---> 11

1.4、 分割字符串

通过split分割字符串,常用于将字符串转换成列表。

1.4.1、 语法

str.split(sep,maxsplit)
str.rsplit(sep,maxsplit)
- sep:分割符,默认为None。
- maxsplit:最大分割数,默认无限制。
- split:从左往右分割。
- rsplit:从右往左分割 。

1.4.2、 示例1—split
1
2
3
4
5
a = "洋群满满,爱,python"
b = a.split(",",1)
print(b)
-------------------------------------------------------------------
输出 ---> ['洋群满满', '爱,python']
1.4.3、 示例2—rsplit
1
2
3
4
5
a = "洋群满满,爱,python"
b = a.rsplit(",",1)
print(b)
-------------------------------------------------------------------
输出 ---> ['洋群满满,爱', 'python']

1.5、 合并字符串

可以将可迭代对象通过*join()**方法**合并成字符串*。(可迭代对象:后续洋群满满会在高级部分进行讲解,并自定义我们想要的可迭代对象)在这里大家可以通俗的理解为可迭代对象就是str,dict,list,tuple

1.5.1、 语法

str.join(iterable)

1.5.2、 示例1(join)
1
2
3
4
5
a = ["洋群满满", "爱", "python"]
b = "".join(a)
print(b)
-------------------------------------------------------------------
输出 ---> 洋群满满爱python
1.5.3、 示例2(不常用)
1
2
3
4
5
a = {"洋洋爱": "当然", "群群": "是的"}
b = "".join(a)
print(b)
-------------------------------------------------------------------
输出 ---> 洋洋爱群群

1.6、 检测子字符串在字符串的索引

ps:当子字符串不存在时,会报错!可以利用这个特性来判断子字符串是否存在

1.6.1、 语法

str.index(sub[, start[, end]]) -> int
- sub:要检测的子字符串。
- start:检测的开始位置索引,默认从头开始。
- end:检测的结束位置索引,默认到最后。
可灵活使用!

1.6.2、 示例1
1
2
3
4
5
6
a = "洋洋是群群的呀"
b = a.index("洋洋")
# b = a.index("洋洋", 0, -1)
print(b)
-------------------------------------------------------------------
输出 ---> 0
1.6.3、 示例2
1
2
3
4
5
6
a = "洋洋是群群的呀"
b = a.index("洋群")
# b = a.index("洋群", 0, -1)
print(b)
-------------------------------------------------------------------
抛出异常 ValueError

1.7、 指定字符串开头或者结尾

*startswith()**指定**某个字符串开头*。如果,返回True反之返回False
**endswith()**指定某个字符串结尾。如果,返回True反之返回False

1.7.1、语法

str.startswith(prefix[, start[, end]]) -> bool
str.endswith(suffix[, start[, end]]) -> bool
- prefix/suffix: 要检测的子字符串。
- start: 检测的开始位置索引, 默认从头开始。
- end: 检测的结束位置索引, 默认到最后。

1.7.2、 示例1
1
2
3
4
5
a = "洋洋是群群的呀"
b = a.startswith("洋洋")
# b = a.startswith("洋洋",0,-1)
-------------------------------------------------------------------
输出 ---> True
1.7.3、 示例2
1
2
3
4
5
6
a = "洋洋是群群呀"
b = a.endswith("群群")
# b = a.endswith("群群",0,-1) 输出Ture
print(b)
-------------------------------------------------------------------
输出 ---> False

思考一下为什么b=a.endswith(“洋群满满”,0,-1)的时候输出True, 洋洋会在下篇进行解释

1.8、 字符串转全部大写

1.8.1、 语法

str.upper()

1.8.2、 示例—upper
1
2
3
4
5
a = "abc"
b = a.upper()
print(b)
-------------------------------------------------------------------
输出 ---> ABC

1.9、 字符串转全部小写

1.9.1、 语法

str.lower()

1.9.2、 示例—lower
1
2
3
4
5
a = "ABC"
b = a.lower()
print(b)
-------------------------------------------------------------------
输出 ---> abc

1.10、 字符串格式化

1.10.1、 语法

① %
② format()
③ f-string
注意:第一种方式官方并不太建议, 详细请看官方文档
img
第三种f-string格式化方式需要python3.7以上的版本!!!

1.10.2、 示例—%
1
2
3
4
5
a = "洋群满满"
b = "hello %s" % a
print(b)
-------------------------------------------------------------------
输出 ---> hello 洋群满满
1.10.3、 示例— format()
1
2
3
4
5
a = "洋群满满"
b = "hello {}".format(a)
print(b)
-------------------------------------------------------------------
输出 ---> hello 洋群满满
1.10.4、 示例— f-string
1
2
3
4
5
a = "洋群满满"
b = f"hello {a}"
print(b)
-------------------------------------------------------------------
输出 ---> hello 洋群满满

1.11、 编解码

1.11.1、 概念

编码: 将字符串编码成字节。
解码: 将字节解码成字符串。

1.11.2、 语法

编码: str.encode(encoding,errors)
解码: str.decode(encoding,errors)
- encoding: 需要编码或者解码的格式, 一般为utf-8, 或者gbk。
- errors: 错误的处理方式, 默认是strict, 遇到非法字符抛出异常, 默认即可。
后续洋群满满会专门加一篇ASCII和Unicode和UTF-8和gbk的文章。

1.11.3、 示例—encode
1
2
3
4
5
6
a = "洋群满满"
b = a.encode()
print(b)
-------------------------------------------------------------------
输出 ---> b'\xe6\xb4\x8b\xe7\xbe\xa4\xe6\xbb\xa1\xe6\xbb\xa1'
注:输出的是以16进制形式的字符编码值
1.11.4、 示例—decode
1
2
3
4
5
a = b'\xe6\xb4\x8b\xe7\xbe\xa4\xe6\xbb\xa1\xe6\xbb\xa1'
b = a.decode()
print(b)
-------------------------------------------------------------------
输出 ---> 洋群满满

2、 数字型常用方法

2.1、 浮点型转整型

2.1.1、 语法

int()

2.1.2、 示例—int
1
2
3
4
5
a = 1.1
b = int(a)
print(b)
-------------------------------------------------------------------
输出 ---> 1

2.2、 保留小数位并四舍五入

2.2.1、 语法

round(number, digits)
- digits: 四舍五入时要使用的小数位数,默认为0。

2.2.2、 示例—round
1
2
3
4
5
a = 3.1415
b = round(a, 3)
print(b)
-------------------------------------------------------------------
输出 ---> 3.142

3、 列表常用方法

注意: 想要熟悉掌握列表常用方法, 必须熟悉上一篇的索引, 以及可变类型。

3.1、 将其他类型转换成列表

3.1.1、 语法

list(iterable)
可迭代对象iterable字符串部分已经备注, 这里洋群满满就不备注了。

3.1.2、 示例—list
1
2
3
4
5
a = (1, 2, 3)
b = list(a)
print(b)
-------------------------------------------------------------------
输出 ---> [1, 2, 3]

3.2、 指定位置插入数据

3.2.1、 语法

list.insert(index,obj)

3.2.2、 示例—insert
1
2
3
4
5
a = [1, 2, 3]
a.insert(1, "洋群满满")
print(a)
-------------------------------------------------------------------
输出 ---> [1, '洋群满满', 2, 3]

3.3、 在列表末尾添加数据

3.3.1、 语法

list.append(obj)

3.3.2、 示例—append
1
2
3
4
5
a = [1, 2, 3]
a.append("洋群满满")
print(a)
-------------------------------------------------------------------
输出 ---> [1, 2, 3, '洋群满满']

3.4、 将其他可迭代对象追加到列表中

3.4.1、 语法

list.extend(iterable)

3.4.2、 示例—extend
1
2
3
4
5
a = [1, 2, 3]
a.extend((4, 5, 6))
print(a)
-------------------------------------------------------------------
输出 ---> [1, 2, 3, 4, 5, 6]

3.5、 修改指定索引的数据

3.5.1、 语法

list[index] = obj

3.5.2、 示例—index
1
2
3
4
5
a = [1, 2, 3]
a[0] = "洋群满满"
print(a)
-------------------------------------------------------------------
输出 ---> ['洋群满满', 2, 3]

3.6、 删除指定索引的数据

3.6.1、 语法

① del list[index]
② list.pop(index)

3.6.2、 示例—del
1
2
3
4
5
a = [1, 2, 3]
del a[2]
print(a)
-------------------------------------------------------------------
输出 ---> [1, 2]
3.6.3、 示例—pop
1
2
3
4
5
a = [1, 2, 3]
a.pop(2)
print(a)
-------------------------------------------------------------------
输出 ---> [1, 2]

3.7、 删除第一个出现的指定数据

3.7.1、 语法

list.remove(value)

3.7.2、 示例—remove
1
2
3
4
5
a = [1, 2, 3, 2]
a.remove(2)
print(a)
-------------------------------------------------------------------
输出 ---> [1, 3, 2]

3.8、 清空列表

3.8.1、 语法

list.clear()

3.8.2、 示例—clear
1
2
3
4
5
6
a = [1, 2, 3]
a.clear()
print(a)
-------------------------------------------------------------------
输出 ---> []
12345

3.9、 统计列表长度

3.9.1、 语法

len(list)

3.9.2、 示例—len
1
2
3
4
5
a = [1, 2, 3]
b = len(a)
print(b)
-------------------------------------------------------------------
输出 ---> 3

3.10、 统计数据在列表中出现的次数

3.10.1、 语法

list.count(value)

3.10.2、 示例—count
1
2
3
4
5
a = [1, 2, 3, 2]
b = a.count(2)
print(b)
-------------------------------------------------------------------
输出 ---> 2

3.11、 列表排序

3.11.1、 语法

list.sort(key,reverse)
- key: 指定排序方式的函数。
- reverse: 等于True降序, 等于False升序, 默认False。

3.11.2、 示例—sort
1
2
3
4
5
a = [1, 2, 3, 2]
a.sort()
print(a)
-------------------------------------------------------------------
输出 ---> [1, 2, 2, 3]
3.11.3、 示例—根据字典的 key=洋群满满 进行升序排序
1
2
3
4
5
6
7
8
def hello_list(e):
return e["洋群满满"]

a = [{"洋群满满": 18}, {"洋群满满": 26}, {"洋群满满": 20}]
a.sort(key=hello_list)
print(a)
-------------------------------------------------------------------
输出 ---> [{'洋群满满': 18}, {'洋群满满': 20}, {'洋群满满': 26}]

备注:函数在前面已经详细讲解, 上述示例只是演示key的作用。

3.12、 列表反转

3.12.1、 语法

list.reverse()

3.12.2、 示例—reverse
1
2
3
4
5
a = [1, 2, 3, 4]
a.reverse()
print(a)
-------------------------------------------------------------------
输出 ---> [4, 3, 2, 1]

4、 元组的常用方法

4.1、 创建空元组

4.1.1、 语法

① tuple()
② ()

4.1.2、 示例—tuple()
1
2
3
4
5
a = tuple()
# a = ()
print(a)
-------------------------------------------------------------------
输出 ---> ()

4.2、 通过索引访问元组的值

4.2.1、 语法

tuple[index]

4.2.2、 示例—tuple[index]
1
2
3
4
5
a = (1, 2, 3, 4)
b = a[0]
print(b)
-------------------------------------------------------------------
输出 ---> 1

4.3、 删除元组

4.3.1、 语法

del tuple

4.3.2、示例—del tuple
1
2
3
4
5
6
7
a = (1, 2, 3, 4)
print(a)
del a
print(a)
-------------------------------------------------------------------
第一行输出 ---> (1,2,3,4)
第二行抛出 NameError

注意: 上篇已经明确表示元组是不可变类型, 所以对于元组来说不存在修改和切片。因为当你修改元组时, 实际情况是会在内存中开辟新的内存地址用来存放新的元组。

下面用代码给大家演示一下

1
2
3
4
5
6
a = (1, 2, 3, 4)
print(f"原元组的值是{a}")
print(f"原元组的内存地址是{id(a)}")
b = a[:2]
print(f"修改后元组的值是{b}")
print(f"修改后元组的内存地址是{id(b)}")

备注: python通过内置函数id()来访问值的内存地址

输出结果如下:

1
2
3
4
5
6
7
C:\Python\python.exe D:/Desktop/test/demo.py
原元组的值是(1, 2, 3, 4)
原元组的内存地址是2745085044200
修改后元组的值是(1, 2)
修改后元组的内存地址是2745085729928

Process finished with exit code 0

5、 字典的常用方法

想要熟练掌握字典的常用方法,需要对上一篇字典的key-value(键值对)的格式比较熟悉,字典的key必须是不可变类型,value可以是任何类型。

5.1、 创建空字典

5.1.1、 语法

① dict()
② {}

5.1.2、 示例—dict
1
2
3
4
5
a = {}
#a = dict()
print(a)
-------------------------------------------------------------------
输出 ---> {}

5.2、 获取字典的值

5.2.1、 语法

① dict[key]
② dict.get(key, default=None)

5.2.2、 示例1—dict[key]
1
2
3
4
a = {"name": "洋群满满", "age": 23}
print(a["name"])
-------------------------------------------------------------------
输出 ---> 洋群满满
5.2.3、 示例2—dict.get
1
2
3
4
5
a = {"name": "洋群满满", "age": "23"}
b = a.get("name")
print(b)
-------------------------------------------------------------------
输出 ---> 洋群满满

注意: 在第一种方式中, 如果key不存在, 会抛出异常;第二种方式如果key不存在, 则返回默认值。

5.3、 修改字典的值

5.3.1、 语法

① dict[key] = value
② dict.update(new_dict)

5.3.2、 示例1—dict[key] = value
1
2
3
4
5
a = {"name": "洋洋", "age": 23}
a["name"] = "洋群满满"
print(a)
-------------------------------------------------------------------
输出 ---> {'name': '洋群满满', 'age': 23}
5.3.4、 示例2—dict.update(new_dict)
1
2
3
4
5
a = {"name": "洋群满满", "age": 23}
a.update({"python": "hello"})
print(a)
-------------------------------------------------------------------
输出 ---> {'name': '洋群满满', 'age': 23, 'python': 'hello'}

注意: 如果指定的key在字典中不存在, 那么就是增加一个键值对。

5.4、 计算字典元素个数

5.4.1、 语法

len(dict)

5.4.2、 示例—len(dict)
1
2
3
4
5
a = {"name": "洋群满满", "age": 23}
b = len(a)
print(b)
-------------------------------------------------------------------
输出 ---> 2

5.5、 获取字典所有的key

5.5.1、 语法

dict.keys()

5.5.2、 示例—dict.keys()
1
2
3
4
5
6
a = {"name": "洋群满满", "age": 23}
b = a.keys()
print(b)
-------------------------------------------------------------------
输出 ---> ["name","age"]
12345

5.6、 获取字典所有的value

5.6.1、 语法

dict.values()

5.6.2、 示例—dict.values()
1
2
3
4
5
a = {"name": "洋群满满", "age": 23}
b = a.values()
print(b)
-------------------------------------------------------------------
输出 ---> ['洋群满满', '23']

5.7、 获取字典的key-value

5.7.1、 语法

dict.items()

5.7.2、 示例—dict.items()
1
2
3
4
5
a = {"name": "洋群满满", "age": "23"}
b = a.items()
print(b)
-------------------------------------------------------------------
输出 ---> [('name', '洋群满满'), ('age', '23')]

6、 条件语句

在python中条件语句就是三个关键字 if elif else 。

6.1、 语法

if 判断条件:
 执行代码
elif 判断条件:
 执行代码
else:
 执行代码
说明: 在上述的条件判断中是互斥的, 也就是说要么执行if的代码, 要么执行elif的代码, 要么执行else的代码, 并且只要其中一个符合条件, 那么程序便不会判断后面的条件了。这部分可以优化代码。

6.1.1、 示例1—if/elif…/else
1
2
3
4
5
6
7
8
9
a = "洋群满满"
if a == "洋群满满":
print("洋群满满1")
elif a == "洋群满满":
print("洋群满满2")
else:
print("什么都不是")
-------------------------------------------------------------------
输出 ---> 洋群满满1
6.1.2、 示例2—if/if/if…
1
2
3
4
5
6
7
8
9
10
11
a = "洋群满满"
if a == "洋群满满":
print("洋群满满1")
if a == "洋群满满":
print("洋群满满2")
if a == "洋群满满":
print("洋群满满3")
-------------------------------------------------------------------
输出 ---> 洋群满满1
输出 ---> 洋群满满2
输出 ---> 洋群满满3

7、 循环语句

python中循环包括while循环和for循环。

  • while循环:表示给定一个判断条件为True时, 进入循环体, 为False跳出循环体;
  • for循环:表示会重复的执行语句;
  • 死循环:表示程序一直在循环体当中跳不出来。一定要避免死循环!!!

7.1、 while循环

7.1.1、 语法

while 判断条件:
 执行代码

7.1.2、 示例—while
1
2
3
4
5
6
a = 0
while a < 10:
print(a)
a += 1
-------------------------------------------------------------------
输出 ---> 0-9

7.2、 for循环

7.2.1、 语法

① for iterating_var in iterable:
   执行代码
② for iterating_var in range(start,stop,step)
   执行代码
- start是开始数据
- stop是结束数据
- step是步长

7.2.3、 示例1—in
1
2
3
4
for i in [1, 2, 3]:
print(i)
-------------------------------------------------------------------
输出 ---> 1~3
7.2.4、 示例2—in range
1
2
3
4
for i in range(1, 10, 2):
print(i)
-------------------------------------------------------------------
输出 ---> 1 3 5 7 9

7.3、 循环控制语句

7.3.1、 语法

① break
② continue
说明:
- break会终止循环体,程序不再往下循环;
- continue结束本次循环,程序继续下一次的循环。
注意: 如果是嵌套循环, 那么break终止的是当前所在的循环体, 而不是整个循环嵌套体。

7.3.2、 示例1—break
1
2
3
4
5
6
7
8
for i in [1, 2, 3]:
for j in [4, 5, 6]:
if j == 5:
break
print(j)
-------------------------------------------------------------------
输出 ---> 4 4 4
解释一下: 在程序中是一个循环嵌套, 当j==5时, 内层循环会终止进入外层循环的下一次循环。
7.3.4、 示例2—continue
1
2
3
4
5
6
7
8
for i in [1, 2, 3]:
for j in [4, 5, 6]:
if j == 5:
continue
print(j)
-------------------------------------------------------------------
输出 ---> 4 6 4 6 4 6
解释一下: 在程序中是一个循环嵌套, 当j==5时, 内层循环会跳出本次循环, 进入内层循环的下一次循环。

到此我们在本篇中学习了python数据类型的常用方法,条件语句和循环语句。各位coder在学习过程中可在底下评论区发表你们的想法。看到了都会回复的。

那么下一篇洋群满满将和大家看一下python当中的异常处理,函数和模块


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!