前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python--数据类型、循环、运算符、容器的使用

Python--数据类型、循环、运算符、容器的使用

作者头像
aruba
发布2022-09-13 17:07:32
1.2K0
发布2022-09-13 17:07:32
举报
文章被收录于专栏:android技术android技术

由于最近有自动化测试的需要,对Python的语法不是很熟悉,Python的介绍就忽略了,下面开始Python基本语法的学习

一、第一个Python程序

下载安装Pycharmhttps://www.jetbrains.com/pycharm/download/#section=windows

创建工程比较简单,这边就直接开始撸码: python中的main函数使用if __name__ == '__main__':开始

代码语言:javascript
复制
if __name__ == '__main__':
    print("hello python")

运行结果:

二、数据类型

在使用数据类型之前,先来了解下python中的注释: 单行注释:#内容 多行注释:'''内容'''"""内容"""

1. 整型

表示一个整数:

代码语言:javascript
复制
if __name__ == '__main__':
    # 定义整数变量
    i = 10

    print(i)
    # 输出变量类型
    print(type(i))

运行结果:

2. 浮点型

表示一个小数:

代码语言:javascript
复制
if __name__ == '__main__':
    # 定义小数变量
    f = 8.8

    print(f)
    print(type(f))

运行结果:

3. 布尔类型

Python中布尔类型使用TrueFalse表示,这两位还可以表示10的整数。

代码语言:javascript
复制
if __name__ == '__main__':
    # 定义布尔类型
    b = True

    print(b)
    print(type(b))
    # 将True和False转为为整形表示
    print(int(True))
    print(int(False))

运行结果:

4. 字符串类型
4.1 定义方式

字符串是我们使用的最常见的类型,python中字符串类型定义方式有三种:

定义方式

描述

单引号:'内容'

表示单行字符串

双引号:"内容"

和单引号相同,表示单行字符串

三对单引号:'''内容'''

表示多行字符串

三对双引号:"""内容"""

表示多行字符串

代码语言:javascript
复制
if __name__ == '__main__':
    info = '一对单引号'
    print(info, type(info))
    print("-------------")

    info = "一对双引号"
    print(info, type(info))
    print("-------------")

    info = '''三对单引号
    三对单引号
    三对单引号
    '''
    print(info, type(info))
    print("-------------")

    info = '''三对双引号
    三对双引号
    三对双引号
    '''
    print(info, type(info))
    print("-------------")

运行结果:

4.2 获取字符串长度

两种方式:

  • 使用内置len函数:
代码语言:javascript
复制
    info = "abc"
    print(len(info))
  • 使用字符串的__len__函数:
代码语言:javascript
复制
    info = "abc"
    print(info.__len__())
4.3 获取字符串拼接

python中,字符串拼接使用+号,但数字型变量(整型和浮点型)和字符串相加会报错:

代码语言:javascript
复制
    info = "abc"

    print(info + 1)

运行结果:

可以调用内置函数str,将之转为字符串类型:

代码语言:javascript
复制
    print(info + str(1))
5. 类型转换

上面基本类型之间都可以相互转换,方式如下:

转换方法

描述

str(var)

将var转换为字符串

int(var)

将var转换为整形

float(var)

将var转换为浮点型

三、循环

除了循环外,我把条件控制也放在这块了

1. 条件控制
1.1 单分支

用于判断表达式是否成立,语法:if 表达式:

代码语言:javascript
复制
    if True:
        print("真")
    else:
        print("假")

运行结果:

1.2 多分支

多分支使用elif

代码语言:javascript
复制
    i = 10
    if i > 10:
        print("i大于10")
    elif i < 10:
        print("i小于10")
    else:
        print("i等于10")

运行结果:

1.3 三目运算符

python中的三目运算符是我见过的最奇葩的,语法:成立执行语句 if 条件 else 不成立执行语句

代码语言:javascript
复制
    gender = 0
    print("男") if gender == 1 else print("女")

运行结果:

2. for循环
2.1 for循环基本语法

学习for循环之前,先来了解下rangerange也是python中一个容器类型,表示一个区间,定义语法为:range([开始],结束,[步长]) for循环可以遍历range中的内容,for循环的语法为:for 变量名 in 容器:

代码语言:javascript
复制
    for i in range(0, 10, 2):
        print(i)

运行结果:

2.2 continue 与break
  • continue可以直接进入循环的下一次
代码语言:javascript
复制
    for i in range(10, 2):
        if i == 4:
            continue
        print(i)

运行结果:

  • break可以直接跳出循环:
代码语言:javascript
复制
    for i in range(10, 2):
        if i == 4:
            break
        print(i)

运行结果:

2.3 else追加执行

python特有的特性,当循环正常执行完成(不使用break跳出循环),使用else可以追加执行一块代码:

代码语言:javascript
复制
    for i in range(0, 10, 2):
        if i == 4:
            continue
        print(i)
    else:
        print("循环执行结束啦")

运行结果:

3. while循环

while循环和for循环类似,只是结束条件需要自己指定,语法为:while 条件:

代码语言:javascript
复制
    i = 0
    while i < 10:
        print(i)
        i += 2

执行结果:

除此以外,while循环中也可以使用continuebreakelse

四、运算符

这边只介绍python中一些特殊的运算符

1. 算术运算符
1.1 取余:%

python中一正一负的取余操作要采用新的公式:余数 = 被除数 - 除数 * 商,其中商向上取整

代码语言:javascript
复制
    print(8 % -3)

执行结果:

1.2 取整://

python使用//进行取整操作,一正一负的情况向下取整:

代码语言:javascript
复制
    print(12 // 5)
    print(12 // -5)

执行结果:

1.3 幂运算:**

python中可以直接使用**来进行幂运算

代码语言:javascript
复制
    print(2 ** 3)

执行结果:

2. 赋值运算符

python中不支持++--操作,需要使用+=1-=1

2.1 解构

python也支持多个变量赋值:

代码语言:javascript
复制
    a, b, c = range(3)
    print(a, b, c)

运行结果:

交换两个变量的值就可以使用解构了:

代码语言:javascript
复制
    a, b = 10, 20
    a, b = b, a
    print(a, b)

运行结果:

3. 比较运算符
3.1 值相等:==

python中的==表示的是变量的值相等,并不表示内存地址相同 由于编译器会优化以及常量池,所以使用列表进行测试,列表在后续容器中会介绍:

代码语言:javascript
复制
    a = [10, 20, 30]
    b = [10, 20, 30]
    print(a == b)

运行结果:

3.2 地址相等:is

python中使用is对比两个变量是否是一个内存地址:

代码语言:javascript
复制
    a = [10, 20, 30]
    b = [10, 20, 30]
    print(a == b)
    print(a is b)

运行结果:

is相对应,is not则表示两个变量内存地址不相等,返回True

4. 逻辑运算符

符号

描述

and

并且

or

或者

not

五、容器

Java中有很多类型的容器,像ListMap等,他们用于存放指定类型的数据,Python中也有对应的容器

1. 列表

和Java的List对应,python中定义列表使用:[]list()

代码语言:javascript
复制
    m_list = [1, 2]
    print(m_list)

也可以使用list()函数,将range转换为list:

代码语言:javascript
复制
    m_list = list(range(0, 2))
    print(m_list)
1.1 获取列表的元素

获取列表元素使用:变量名[索引]

代码语言:javascript
复制
    m_list = [1, 2]

    print(m_list[0])

运行结果:

python中可以使用负数作为索引,表示倒着取元素:

代码语言:javascript
复制
    m_list = [1, 2]

    print(m_list[-1])

运行结果:

1.2 列表增加元素

添加元素有三种方式:

  • append()方法在列表尾添加一个元素,相当于Java的add()
代码语言:javascript
复制
    m_list = [1, 2]
    m_list.append(3)
    print(m_list)

运行结果:

  • extend()方法在列表尾添加一个列表,相当于Java的addAll()
代码语言:javascript
复制
    m_list = [1, 2]
    m_list.append(3)
    m_list.extend([4, 5])

    print(m_list)

运行结果:

  • insert()方法在列表指定索引后添加一个元素:
代码语言:javascript
复制
    m_list = [1, 2]
    m_list.append(3)
    m_list.extend([4, 5])
    m_list.insert(2, 10)

    print(m_list)

运行结果:

1.3 查找元素的索引

使用index()方法,查找元素的索引,并支持指定索引范围:

代码语言:javascript
复制
    print(m_list.index(10))
    print(m_list.index(10, 0, 4))

运行结果:

如果查找不到,抛出异常:

代码语言:javascript
复制
    print(m_list.index(8))

运行结果:

1.4 列表元素的修改与删除

修改列表元素很简单,只要赋值新的值即可:

代码语言:javascript
复制
    m_list = [1, 2]
    m_list[0] = 3
    print(m_list)

运行结果:

元素删除可以通过值删除(remove()方法),也可以通过索引删除(pop()方法):

代码语言:javascript
复制
    # 值删除
    m_list.remove(2)
    print(m_list)
    
    # 索引删除
    m_list.pop(0)
    print(m_list)

运行结果:

列表清空使用del关键字或clear()方法,其中del会将内存清空,变量不可使用:

clear()方式:

代码语言:javascript
复制
    m_list.clear()
    print(m_list)

运行结果:

del方式:

代码语言:javascript
复制
    del m_list
    print(m_list)

运行结果:

1.5 元素是否存在于列表中

使用in关键字,判断元素是否在列表中:

代码语言:javascript
复制
    m_list = [1, 2]
    # 判断3是否在列表中
    print(3 in m_list)

运行结果:

1.6 元素遍历

元素遍历使用for循环,语法为for 变量名 in 列表名

代码语言:javascript
复制
    m_list = [1, 2]

    for item in m_list:
        print(item)

运行结果:

1.7 列表操作总结

功能

方法

描述或例子

定义列表

变量名=[]

空列表:m_list=[] ;初始值列表:m_list=[1,2]

list([range([开始],结束,[步长])])

空列表:m_list=list() ;初始值列表:m_list = list(range(0, 2))

获取列表的元素

变量名[索引]

索引支持负数,获取索引为1的元素:m_list[1]

列表增加元素

append(元素)

增加一个元素:m_list.append(3)

extend(列表)

添加一个列表:m_list.extend([4,5])

insert(索引,元素)

指定索引后面追加一个元素:m_list.insert(2,10)

查找元素的索引

index(元素,[开始],[结束])

如果元素存在,返回元素的索引,反之抛出异常:m_list.index(20)

列表元素的修改

变量名[索引]=新元素

赋值一个新元素:m_list[0]=100

列表元素的删除

remove(元素)

删除指定元素:m_list.remove(100)

pop(索引)

删除指定索引下的元素:m_list.pop(1)

clear()

清空列表元素:m_list.clear()

del

删除变量内存:del m_list

元素是否存在于列表中

in

判断元素是否在列表中:2 in m_list

元素遍历

for 变量名 in 列表名

遍历列表:for item in m_list

列表生成推导式

[i for i in range([开始],结束,[步长])]

快速生成一个列表:m_list = [i for i in range(0, 10,2)]

2. 字典

字典对应Java中的HashMap,存放的是键值对,定义字典使用:{}dict() {}用法:

代码语言:javascript
复制
    d = {"name": "张三", "age": 18}
    print(d)

运行结果:

dict()用法:

代码语言:javascript
复制
    d = dict(name="张三", age=19)
    print(d)

运行结果:

2.1 字典元素的获取

字典元素都是通过键获取的,获取有两种方式:

[索引]获取:

代码语言:javascript
复制
    print(d["name"])

get()方法获取:

代码语言:javascript
复制
    print(d.get("name"))

还可以根据返回是否为None,判断是否存在键值对:

代码语言:javascript
复制
    print(d.get("name1"))

同样的可以使用in关键字,判断是否存在键:

代码语言:javascript
复制
    print("name1" in d)

运行结果:

2.2 字典元素的增删改

字典增加和修改元素使用[key]直接赋值即可:

代码语言:javascript
复制
    d["gender"] = '女'
    print(d["gender"])

删除元素可以使用del

代码语言:javascript
复制
    del d["gender"]
    print("gender" not in d)

运行结果:

清空元素可以使用clear()

代码语言:javascript
复制
    d.clear()
    print(list(d.keys()))

运行结果:

2.3 字典所有的key和value获取

keys()方法用于获取字典中所有的key,使用list()将它转换为列表:

代码语言:javascript
复制
    print(list(d.keys()))

values()方法用于获取字典中所有的value:

代码语言:javascript
复制
    print(list(d.values()))

items()方法用于获取字典中所有的键值对,使用list()将它转换为元表,元表后续会介绍:

代码语言:javascript
复制
    print(list(d.items()))

运行结果:

2.4 字典元素的遍历

遍历还是使用for循环即可,其中由于python的解构特性,for循环变量也支持多个:

代码语言:javascript
复制
    for k, v in d.items():
        print(k, v)

运行结果:

2.5 字典操作总结

功能

方法

描述或例子

定义字典

变量名={}

空字典:d={} ;初始值字典:d = {"name": "张三", "age": 18}

dict()

空字典:d=dict() ;初始值字典:d= dict(name="张三", age=19)

获取字典的元素

变量名[key]

获取key为name的元素:d["name"],不存在抛出异常

get(key)

获取key为name的元素:d.get("name"),不存在返回None

字典增加元素

变量名[key]=value

增加一个元素:d["gender"] = '女'

字典元素的修改

变量名[key]=新value

将key赋值一个新value:d["gender"] = '男'

字典元素的删除

del

删除指定键值对:del d["gender"]

clear()

清空列表元素:d.clear()

元素是否存在于字典中

in

判断元素是否在字典中:"name1" in d

元素遍历

for 变量名 in 字典名

遍历字典:for k, v in d.items()

字典生成推导式

{k:v for k,v in zip(列表1, 列表2)}

快速生成一个字典:d = {k: v for k, v in zip(keys, values)}

3. 元组

python中元组是不可变的列表,一旦创建,内存就不可修改了,只能读取,对多线程下操作提升了性能 元组的定义使用:()tuple()

()方式:

代码语言:javascript
复制
    t = (1, 2)
    print(t)

tuple()方式,tuple的入参需要一个容器,其实就是将其他容器转换为元组:

代码语言:javascript
复制
    t = tuple((1, 2))
    print(t)

运行结果:

元组除了不能增加修改外,其他用法和列表相同

4. 集合

集合对应Java中的HashSet,如果熟悉源码的就知道,HashSet就是HashMap,只是HashSet存放的value都是null,所以集合的使用和字典差不多,定义集合使用:{}set()

{}方式:

代码语言:javascript
复制
    s = {1, 2}
    print(s)

set()方式,也元素一样需要一个容器:

代码语言:javascript
复制
    s = set([1, 2])
    print(s)

运行结果:

4.1 判断元素是否在集合中

使用in来判断:

代码语言:javascript
复制
    print(3 in s)
4.2 集合元素的增加

两种方式:add()update()

add()方法一次增加一个元素:

代码语言:javascript
复制
    s.add(3)
    print(s)

运行结果:

update()方法传入一个容器,一次增加多个元素:

代码语言:javascript
复制
    s.update([4, 5, 6])
    print(s)

运行结果:

4.3 集合元素的删除

remove()方法,删除指定的key,如果不存在抛出异常:

代码语言:javascript
复制
    s.remove(3)
    print(s)

discard()方法,删除指定的key,如果不存在不抛出异常:

代码语言:javascript
复制
    s.discard(3)
    print(s)

pop()方法,随机删除一个元素:

代码语言:javascript
复制
    s.pop()
    print(s)

clear()方法,清空集合:

代码语言:javascript
复制
    s.clear()
    print(s)

运行结果:

4.4 集合间比较

集合除了使用==对比两个集合中元素是否一样外,还支持以下比较操作:

issubset()方法用于判断本集合是否是其他集合的子集:

代码语言:javascript
复制
    s1 = {1, 2, 3}
    s2 = {1, 2}
    print(s2.issubset(s1))

与之相对的,issuperset()方法用于判断本集合是否是其他集合的超集:

代码语言:javascript
复制
    print(s1.issuperset(s2))

运行结果:

isdisjoint()方法用于判断本集合和另一个集合是否没有交集:

代码语言:javascript
复制
    s1 = {1, 2, 3}
    s2 = {4, 5}
    print(s1.isdisjoint(s2))

运行结果:

4.5 集合数据操作

集合还支持以下的数学操作:

intersection()方法,求交集:

代码语言:javascript
复制
    s1 = {1, 2, 3, 4}
    s2 = {4, 5}
    print(s1.intersection(s2))

union()方法,求并集:

代码语言:javascript
复制
    print(s1.union(s2))

difference()方法,求差集:

代码语言:javascript
复制
    print(s1.difference(s2))

symmetric_difference()方法,求对称差集:

代码语言:javascript
复制
    print(s1.symmetric_difference(s2))

运行结果:

4.6 集合操作总结

功能

方法

描述或例子

定义集合

变量名={}

空集合:s={} ;初始值集合:s = {1, 2}

set()

空集合:s = set() ;初始值集合:s = set([1, 2])

集合增加元素

add()

增加一个元素:s.add(3)

update()

增加多个元素:s.update([4, 5, 6])

字典元素的删除

remove()

删除指定元素,不存在抛异常:s.remove(3)

discard()

删除指定元素,不存在不抛异常:s.discard(3)

pop()

删除随机元素:s.pop()

clear()

清空集合:s.clear()

元素是否存在于集合中

in

判断元素是否在集合中:3 in s

元素遍历

for 变量名 in 集合名

遍历集合:for k in s1

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-07-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、第一个Python程序
  • 二、数据类型
    • 1. 整型
      • 2. 浮点型
        • 3. 布尔类型
          • 4. 字符串类型
            • 4.1 定义方式
            • 4.2 获取字符串长度
            • 4.3 获取字符串拼接
          • 5. 类型转换
          • 三、循环
            • 1. 条件控制
              • 1.1 单分支
              • 1.2 多分支
              • 1.3 三目运算符
            • 2. for循环
              • 2.1 for循环基本语法
              • 2.2 continue 与break
              • 2.3 else追加执行
            • 3. while循环
            • 四、运算符
              • 1. 算术运算符
                • 1.1 取余:%
                • 1.2 取整://
                • 1.3 幂运算:**
              • 2. 赋值运算符
                • 2.1 解构
              • 3. 比较运算符
                • 3.1 值相等:==
                • 3.2 地址相等:is
              • 4. 逻辑运算符
              • 五、容器
                • 1. 列表
                  • 1.1 获取列表的元素
                  • 1.2 列表增加元素
                  • 1.3 查找元素的索引
                  • 1.4 列表元素的修改与删除
                  • 1.5 元素是否存在于列表中
                  • 1.6 元素遍历
                  • 1.7 列表操作总结
                • 2. 字典
                  • 2.1 字典元素的获取
                  • 2.2 字典元素的增删改
                  • 2.3 字典所有的key和value获取
                  • 2.4 字典元素的遍历
                  • 2.5 字典操作总结
                • 3. 元组
                  • 4. 集合
                    • 4.1 判断元素是否在集合中
                    • 4.2 集合元素的增加
                    • 4.3 集合元素的删除
                    • 4.4 集合间比较
                    • 4.5 集合数据操作
                    • 4.6 集合操作总结
                相关产品与服务
                容器服务
                腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档