本篇文章主要内容:数据类型的常用方法,条件语句,循环语句

在开始正篇之前我们先来看看上一篇留下的题目。

题目:

定义一个字典a,有两个键值对:一个键值对key是可乐,value是18;另一个键值对key是python,value是列表形式的1,2,3,4,5。

答案:

a = { "可乐": "18", "python": [1,2,3,4,5] }

一、字符串的常用方法

1.1 拼接

示例1(常用):

a = "可乐"
b = "爱python"
c = a + b
print(c)
-------------------------------------------------------------------
输出 ---> 可乐爱python

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

示例2(极少使用):

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.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.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.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()来访问值的内存地址

输出结果如图:



五、字典的常用方法

想要熟练掌握字典的常用方法,需要对可乐上一篇字典的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')]

六、条件语句

在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

七、循环语句

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都可以实现。

在下一篇中可乐会留下答案。

< END>

Python基础(中篇)的更多相关文章

  1. python之最强王者(2)——python基础语法

    背景介绍:由于本人一直做java开发,也是从txt开始写hello,world,使用javac命令编译,一直到使用myeclipse,其中的道理和辛酸都懂(请容许我擦干眼角的泪水),所以对于pytho ...

  2. Python开发【第二篇】:Python基础知识

    Python基础知识 一.初识基本数据类型 类型: int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483647 在64位 ...

  3. Python小白的发展之路之Python基础(一)

    Python基础部分1: 1.Python简介 2.Python 2 or 3,两者的主要区别 3.Python解释器 4.安装Python 5.第一个Python程序 Hello World 6.P ...

  4. Python之路3【第一篇】Python基础

    本节内容 Python简介 Python安装 第一个Python程序 编程语言的分类 Python简介 1.Python的由来 python的创始人为吉多·范罗苏姆(Guido van Rossum) ...

  5. 进击的Python【第三章】:Python基础(三)

    Python基础(三) 本章内容 集合的概念与操作 文件的操作 函数的特点与用法 参数与局部变量 return返回值的概念 递归的基本含义 函数式编程介绍 高阶函数的概念 一.集合的概念与操作 集合( ...

  6. 进击的Python【第二章】:Python基础(二)

    Python基础(二) 本章内容 数据类型 数据运算 列表与元组的基本操作 字典的基本操作 字符编码与转码 模块初探 练习:购物车程序 一.数据类型 Python有五个标准的数据类型: Numbers ...

  7. Python之路【第一篇】python基础

    一.python开发 1.开发: 1)高级语言:python .Java .PHP. C#  Go ruby  c++  ===>字节码 2)低级语言:c .汇编 2.语言之间的对比: 1)py ...

  8. python基础之day1

    Python 简介 Python是著名的“龟叔”Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言. Python为我们提供了非常完善的基础代码库,覆盖了 ...

  9. python基础之文件读写

    python基础之文件读写 本节内容 os模块中文件以及目录的一些方法 文件的操作 目录的操作 1.os模块中文件以及目录的一些方法 python操作文件以及目录可以使用os模块的一些方法如下: 得到 ...

  10. python基础之编码问题

    python基础之编码问题 本节内容 字符串编码问题由来 字符串编码解决方案 1.字符串编码问题由来 由于字符串编码是从ascii--->unicode--->utf-8(utf-16和u ...

随机推荐

  1. 保姆级别的RabbitMQ教程!包括Java和Golang两种客户端

    目录 什么是AMQP 和 JMS? 常见的MQ产品 安装RabbitMQ 启动RabbitMQ 什么是Authentication(认证) 指定RabbitMQ的启动配置文件 如何让guest用户远程 ...

  2. moviepy音视频剪辑:颜色相关变换函数blackwhite、colorx、fadein/out、gamma_corr、invert_colors、lum_contrast、mask_color介绍

    ☞ ░ 前往老猿Python博文目录 ░ 一.引言 在<moviepy音视频剪辑:moviepy中的剪辑基类Clip详解>介绍了剪辑基类的fl.fl_time.fx方法,在<movi ...

  3. PyQt(Python+Qt)学习随笔:QStandardItemModel指定行和列创建模型中的项以及索引

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.引言 QStandardItemModel有两种构造方法: QStandardItemModel ...

  4. node.js、yarn、npm到底是什么?

    最近在部署环境,在没有开发脚本的情况下,自己根据以往其他项目中的脚本去生搬硬套,发现很难对项目的配置成功.对配置不成功的情况进行判断,发现是对脚本不熟悉,不了解其原理,实现方式也不知道,所以抽时间去了 ...

  5. john破解kali密码

    实验环境:kali 实验工具:john 所用命令: 1.查看/etc目录下的shadow文档,此文档记录了所有用户的用户名及密码hash值 2.使用命令echo 用户名:密码 > shadow, ...

  6. js内存泄漏的问题?

    内存泄漏指任何对象在您不再拥有或需要它之后仍然存在. 垃圾回收器定期扫描对象,并计算引用了每个对象的其他对象的数量.如果一个对象的引用数量为 0(没有其他对象引用过该对象),或对该对象的惟一引用是循环 ...

  7. C# 9.0新特性详解系列之五:记录(record)和with表达式

    1 背景与动机 传统面向对象编程的核心思想是一个对象有着唯一标识,表现为对象引用,封装着随时可变的属性状态,如果你改变了一个属性的状态,这个对象还是原来那个对象,就是对象引用没有因为状态的改变而改变, ...

  8. (window)Docker的镜像使用

    镜像加速 镜像默认是通过 DockerHub 拉取的,国内可能有些困难,会报以下错误: net/http: TLS handshake timeout 所以,需要配置国内的加速服务地址: 官方地址:h ...

  9. 通过游戏学javascript系列第一节Canvas游戏开发基础

    本节教程通过一个简单的游戏小例子,讲解Canvas的基础知识. 最终效果: 点击移动的方块,方块上的分数会增加,方块的行进方向会改变,并且方块的速度会增加. 在线演示 源码 HTML5引入了canva ...

  10. Android开发系列全套课程

    学习地址 https://pan.baidu.com/s/12Ljy-TDL5-P0AsYdTxGw5w#list/path=%2F