本篇文章主要内容:数据类型的经常使用方法,条件语句,循环语句。html
在开始正篇以前咱们先来看看上一篇留下的题目。python
题目:git
定义一个字典a,有两个键值对:一个键值对key是可乐,value是18;另外一个键值对key是python,value是列表形式的1,2,3,4,5。app
答案:函数
a = { "可乐": "18", "python": [1,2,3,4,5] }
1、字符串的经常使用方法学习
1.1 拼接优化
示例1(经常使用):编码
a = "可乐" b = "爱python" c = a + b print(c) ------------------------------------------------------------------- 输出 ---> 可乐爱python
注意:若是是str和number则须要对number转换,经过str(number)转换。
3d
示例2(极少使用):code
a = "可乐" "爱python" print(a) ------------------------------------------------------------------- 输出 ---> 可乐爱python
1.2 切片(截取)
用法灵活,须要对上一篇的索引已有深入的理解。
语法:
string[start : end : step]
注意:左开右闭
示例1:截取python
a = "可乐爱python" b = a[3:] print(b) ------------------------------------------------------------------- 输出 ---> python
示例2: 截取可爱yhn
a = "可乐爱python" b = a[::2] # 或者 b = a[0::2] print(b) ------------------------------------------------------------------- 输出 ---> 可爱yhn
1.3 获取字符串长度
获取字符串长度因为比较少用,可乐就不写了,须要了解的能够私聊。
语法:
len(string)
示例:
a = "可乐爱python" b = len(a) print(b) ------------------------------------------------------------------- 输出 ---> 9
1.4 分割字符串
经过split分割字符串,经常使用于将字符串转换成列表。
语法:
str.split(sep,maxsplit)
str.rsplit(sep,maxsplit)
- sep:分割符,默认为None。
- maxsplit:最大分割数,默认无限制。
- split:从左往右分割。
- rsplit:从右往左分割 。
须要深刻了解split,rsplit使用方法的,能够看源代码注释,或者私聊可乐。
示例1:
a = "可乐,爱,python" b = a.split(",",1) print(b) ------------------------------------------------------------------- 输出 ---> ['可乐', '爱,python']
示例2:
a = "可乐,爱,python" b = a.rsplit(",",1) print(b) ------------------------------------------------------------------- 输出 ---> ['可乐,爱', 'python']
1.5 合并字符串
能够将可迭代对象经过join()方法合并成字符串。(可迭代对象:后续可乐会在高级部分进行讲解,并自定义咱们想要的可迭代对象)在这里你们能够通俗的理解为可迭代对象就是str,dict,list,tuple。
语法:
str.join(iterable)
示例1(经常使用):
a = ["可乐", "爱", "python"] b = "".join(a) print(b) ------------------------------------------------------------------- 输出 ---> 可乐爱python
示例2(不经常使用):
a = {"可乐": "嘿嘿", "很帅": "是的"} b = "".join(a) print(b) ------------------------------------------------------------------- 输出 ---> 可乐很帅
1.6 检测子字符串在字符串的索引
ps:当子字符串不存在时,会报错!能够利用这个特性来判断子字符串是否存在。
语法:
str.index(sub[, start[, end]]) -> int
- sub:要检测的子字符串。
- start:检测的开始位置索引,默认从头开始。
- end:检测的结束位置索引,默认到最后。
可灵活使用,须要深刻了解的可私聊可乐或者看源码注释。
示例1:
a = "可乐是可乐呀" b = a.index("可乐") # b = a.index("可乐", 0, -1) print(b) ------------------------------------------------------------------- 输出 ---> 0
示例2:
a = "可乐是可乐呀" b = a.index("可了") # b = a.index("可了", 0, -1) print(b) ------------------------------------------------------------------- 抛出异常 ValueError
1.7 指定字符串开头或者结尾
startswith()指定某个字符串开头。若是是,返回True,反之返回False。
endswith()指定某个字符串结尾。若是是,返回True,反之返回False。
语法:
str.startswith(prefix[, start[, end]]) -> bool
str.endswith(suffix[, start[, end]]) -> bool
- prefix/suffix: 要检测的子字符串。
- start: 检测的开始位置索引, 默认从头开始。
- end: 检测的结束位置索引, 默认到最后。
示例1:
a = "可乐是可乐呀" b = a.startswith("可乐") # b = a.startswith("可乐",0,-1) print(b) ------------------------------------------------------------------- 输出 ---> True
示例2:
a = "可乐是可乐呀" b = a.endswith("可乐") # b = a.endswith("可乐",0,-1) 输出True print(b) ------------------------------------------------------------------- 输出 ---> False
思考一下为何b=a.endswith("可乐",0,-1)的时候输出True, 可乐会在下篇进行解释, 或者私聊可乐。
1.8 字符串转所有大写
语法:
str.upper()
示例:
a = "abc" b = a.upper() print(b) ------------------------------------------------------------------- 输出 ---> ABC
1.9 字符串转所有小写
语法:
str.lower()
示例:
a = "ABC" b = a.lower() print(b) ------------------------------------------------------------------- 输出 ---> abc
1.10 字符串格式化
语法:
① %
② format()
③ f-string
注意:第一种方式官方并不太建议, 详细请看官方文档
第三种f-string格式化方式须要python3.7以上的版本!!!
示例1:
a = "可乐" b = "hello %s" % a print(b) ------------------------------------------------------------------- 输出 ---> hello 可乐
示例2:
a = "可乐" b = "hello {}".format(a) print(b) ------------------------------------------------------------------- 输出 ---> hello 可乐
示例3:
a = "可乐" b = f"hello {a}" print(b) ------------------------------------------------------------------- 输出 ---> hello 可乐
1.11 编解码
概念:
编码: 将字符串编码成字节。
解码: 将字节解码成字符串。
语法:
编码: str.encode(encoding,errors)
解码: str.decode(encoding,errors)
- encoding: 须要编码或者解码的格式, 通常为utf-8, 或者gbk。
- errors: 错误的处理方式, 默认是strict, 遇到非法字符抛出异常, 默认便可。
后续可乐会专门加一篇ASCII和Unicode和UTF-8和gbk的文章。
示例1:
a = "可乐" b = a.encode() print(b) ------------------------------------------------------------------- 输出 ---> b'\xe5\x8f\xaf\xe4\xb9\x90' 注:输出的是以16进制形式的字符编码值
示例2:
a = b'\xe5\x8f\xaf\xe4\xb9\x90' b = a.decode() print(b) ------------------------------------------------------------------- 输出 ---> 可乐
2、数字型经常使用方法
2.1 浮点型转整型
语法:
int()
示例:
a = 1.1 b = int(a) print(b) ------------------------------------------------------------------- 输出 ---> 1
2.2 保留小数位并四舍五入
语法:
round(number, digits)
- digits: 四舍五入时要使用的小数位数,默认为0。
示例:
a = 3.1415 b = round(a, 3) print(b) ------------------------------------------------------------------- 输出 ---> 3.15
3、列表经常使用方法
注意: 想要熟悉掌握列表经常使用方法, 必须熟悉上一篇的索引, 以及可变类型。
3.1 将其余类型转换成列表
语法:
list(iterable)
可迭代对象iterable字符串部分已经备注, 这里可乐就不备注了。
示例:
a = (1, 2, 3) b = list(a) print(b) ------------------------------------------------------------------- 输出 ---> [1, 2, 3]
3.2 指定位置插入数据
语法:
list.insert(index,obj)
示例:
a = [1, 2, 3] a.insert(1, "可乐") print(a) ------------------------------------------------------------------- 输出 ---> [1, '可乐', 2, 3]
3.3 在列表末尾添加数据
语法:
list.append(obj)
示例:
a = [1, 2, 3] a.append("可乐") print(a) ------------------------------------------------------------------- 输出 ---> [1, 2, 3, '可乐']
3.4 将其余可迭代对象追加到列表中
语法:
list.extend(iterable)
示例:
a = [1, 2, 3] a.extend((4, 5, 6)) print(a) ------------------------------------------------------------------- 输出 ---> [1, 2, 3, 4, 5, 6]
3.5 修改指定索引的数据
语法:
list[index] = obj
示例:
a = [1, 2, 3] a[0] = "可乐" print(a) ------------------------------------------------------------------- 输出 ---> ['可乐', 2, 3]
3.6 删除指定索引的数据
语法:
① del list[index]
② list.pop(index)
示例1:
a = [1, 2, 3] del a[2] print(a) ------------------------------------------------------------------- 输出 ---> [1, 2]
示例2:
a = [1, 2, 3] a.pop(2) print(a) ------------------------------------------------------------------- 输出 ---> [1, 2]
3.7 删除第一个出现的指定数据
语法:
list.remove(value)
示例:
a = [1, 2, 3, 2] a.remove(2) print(a) ------------------------------------------------------------------- 输出 ---> [1, 3, 2]
3.8 清空列表
语法:
list.clear()
示例:
a = [1, 2, 3] a.clear() print(a) ------------------------------------------------------------------- 输出 ---> []
3.9 统计列表长度
语法:
len(list)
示例:
a = [1, 2, 3] b = len(a) print(b) ------------------------------------------------------------------- 输出 ---> 3
3.10 统计数据在列表中出现的次数
语法:
list.count(value)
示例:
a = [1, 2, 3, 2] b = a.count(2) print(b) ------------------------------------------------------------------- 输出 ---> 2
3.11 列表排序
语法:
list.sort(key,reverse)
- key: 指定排序方式的函数。
- reverse: 等于True降序, 等于False升序, 默认False。
示例1:
a = [1, 2, 3, 2] a.sort() print(a) ------------------------------------------------------------------- 输出 ---> [1, 2, 2, 3]
示例2:根据字典的 key=可乐 进行升序排序
def hello_list(e): return e["可乐"] a = [{"可乐": 18}, {"可乐": 26}, {"可乐": 20}] a.sort(key=hello_list) print(a) ------------------------------------------------------------------- 输出 ---> [{'可乐': 18}, {'可乐': 20}, {'可乐': 26}]
备注:函数在下一篇可乐会详细讲解, 示例2只是演示key的做用。
3.12 列表反转
语法:
list.reverse()
示例:
a = [1, 2, 3, 4] a.reverse() print(a) ------------------------------------------------------------------- 输出 ---> [4, 3, 2, 1]
4、元组的经常使用方法
4.1 建立空元组
语法:
① tuple()
② ()
示例:
a = tuple() # a = () print(a) ------------------------------------------------------------------- 输出 ---> ()
4.2 经过索引访问元组的值
语法:
tuple[index]
示例:
a = (1, 2, 3, 4) b = a[0] print(b) ------------------------------------------------------------------- 输出 ---> 1
4.3 删除元组
语法:
del tuple
示例:
a = (1, 2, 3, 4) print(a) del a print(a) ------------------------------------------------------------------- 第一行输出 ---> (1,2,3,4) 第二行抛出 NameError
注意: 上篇可乐已经明确表示元组是不可变类型, 因此对于元组来讲不存在修改和切片。由于当你修改元组时, 实际状况是会在内存中开辟新的内存地址用来存放新的元组。
可乐用代码给你们演示一下:
a = (1, 2, 3, 4) print(f"原元组的值是{a}") print(f"原元组的内存地址是{id(a)}") b = a[:2] print(f"修改后元组的值是{b}") print(f"修改后元组的内存地址是{id(b)}")
备注: python经过内置函数id()来访问值的内存地址
输出结果如图:
5、字典的经常使用方法
想要熟练掌握字典的经常使用方法,须要对可乐上一篇字典的key-value(键值对)的格式比较熟悉,字典的key必须是不可变类型,value能够是任何类型。
5.1 建立空字典
语法:
① dict()
② {}
示例:
a = {} #a = dict() print(a) ------------------------------------------------------------------- 输出 ---> {}
5.2 获取字典的值
语法:
① dict[key]
② dict.get(key, default=None)
示例1:
a = {"name": "可乐", "age": 18} print(a["name"]) ------------------------------------------------------------------- 输出 ---> 可乐
示例2:
a = {"name": "可乐", "age": "18"} b = a.get("name") print(b) ------------------------------------------------------------------- 输出 ---> 可乐
注意: 在第一种方式中, 若是key不存在, 会抛出异常;第二种方式若是key不存在, 则返回默认值。
5.3 修改字典的值
语法:
① dict[key] = value
② dict.update(new_dict)
示例1:
a = {"name": "可乐", "age": 18} a["name"] = "是可乐呀" print(a) ------------------------------------------------------------------- 输出 ---> {'name': '是可乐呀', 'age': 18}
示例2:
a = {"name": "可乐", "age": 18} a.update({"python": "hello"}) print(a) ------------------------------------------------------------------- 输出 ---> {'name': '可乐', 'age': 18, 'python': 'hello'}
注意: 若是指定的key在字典中不存在, 那么就是增长一个键值对。
5.4 计算字典元素个数
语法:
len(dict)
示例:
a = {"name": "可乐", "age": 18} b = len(a) print(b) ------------------------------------------------------------------- 输出 ---> 2
5.5 获取字典全部的key
语法:
dict.keys()
示例:
a = {"name": "可乐", "age": 18} b = a.keys() print(b) ------------------------------------------------------------------- 输出 ---> ["name","age"]
获取字典全部的value
语法:
dict.values()
示例:
a = {"name": "可乐", "age": 18} b = a.values() print(b) ------------------------------------------------------------------- 输出 ---> ['可乐', '18']
5.7 获取字典的key-value
语法:
dict.items()
示例:
a = {"name": "可乐", "age": "18"} b = a.items() print(b) ------------------------------------------------------------------- 输出 ---> [('name', '可乐'), ('age', '18')]
6、条件语句
在python中条件语句就是三个关键字 if elif else 。
语法:
if 判断条件:
执行代码
elif 判断条件:
执行代码
else:
执行代码
说明: 在上述的条件判断中是互斥的, 也就是说要么执行if的代码, 要么执行elif的代码, 要么执行else的代码, 而且只要其中一个符合条件, 那么程序便不会判断后面的条件了。这部分能够优化代码。
示例1:
a = "可乐" if a == "可乐": print("可乐1") elif a == "可乐": print("可乐2") else: print("什么都不是") ------------------------------------------------------------------- 输出 ---> 可乐1
示例2:
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循环
语法:
while 判断条件:
执行代码
示例:
a = 0 while a < 10: print(a) a += 1 ------------------------------------------------------------------- 输出 ---> 0-9
7.2 for循环
语法:
① for iterating_var in iterable:
执行代码
② for iterating_var in range(start,stop,step)
执行代码
- start是开始数据
- stop是结束数据
- step是步长
示例1:
for i in [1, 2, 3]: print(i) ------------------------------------------------------------------- 输出 ---> 1~3
示例2:
for i in range(1, 10, 2): print(i) ------------------------------------------------------------------- 输出 ---> 1 3 5 7 9
7.3 循环控制语句
语法:
① break
② continue
说明:
- break会终止循环体,程序再也不往下循环;
- continue结束本次循环,程序继续下一次的循环。
注意: 若是是嵌套循环, 那么break终止的是当前所在的循环体, 而不是整个循环嵌套体。
示例1:
for i in [1, 2, 3]: for j in [4, 5, 6]: if j == 5: break print(j) ------------------------------------------------------------------- 输出 ---> 4 4 4 解释一下: 在程序中是一个循环嵌套, 当j==5时, 内层循环会终止进入外层循环的下一次循环。
示例2:
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数据类型的经常使用方法,条件语句和循环语句。各位道友在学习过程当中遇到疑问能够私聊可乐,可乐看到了都会一一回复的。
那么下一篇可乐将和你们看一下python当中的异常处理,函数和模块。
按照惯例,可乐为各位道友准备了一个简单的题目来巩固本篇的内容:
变量 a = {"name": "可乐", "age": 18, "hello": "python"},如今要将 a 全部的 key 放入到 b列表 中,全部的 value 放到 c列表 中。
提示:利用字典的方法和循环结合,while和for均可以实现。
在下一篇中可乐会留下答案。