• 使用Visual Studio Code 进行Python编程(三)


    1、关于Python变量的数据类型

    1.1、Python变量没有类型,使用变量时,不需要声明其内存对象的数据类型。

    1.2、Python变量在使用前都必须赋值,变量赋值时被创建。

    1.3、在 Python 中变量的值决定了变量在内存中的数据类型

    2、Python变量在内存中的数据类型

    2.1        Numbers(数字)
    2.2        String(字符串)
    2.3        List(列表)
    2.4        Tuple(元组)
    2.5        Dictionary(字典)
    2.6        Set(集合)

    3、数值类型(Numbers)

    3.1        int(长整型)
    3.2        float(浮点型)
    3.3        complex(复数):包含实部、虚部两个部分,通过+号连接,虚部以j表示,

                    复数的实部a和虚部b都是浮点型
    3.4        bool(布尔型)

    在混合计算时,Python会把整型转换成为浮点数

    1. #数值类型
    2. a=123
    3. b=1.23
    4. c=1.23+2.34j
    5. d=2.34+3.45j
    6. e=True
    7. print(a+b,c+d,e)

    运行结果

    124.23 (3.57+5.79j) True

    4、字符串(String)

    python的字符串允许使用字母、数字、下划线组成,如下的命名是合法的

    1. #字符串的使用
    2. MyStr='Python sample code 2'
    3. print(MyStr)
    4. MyStr1='Python sample code ,MyStr1'
    5. print(MyStr1)
    6. MyStr_1='Python sample code ,MyStr_1'
    7. print(MyStr_1)

    运行结果:

    Python sample code 2       
    Python sample code ,MyStr1 
    Python sample code ,MyStr_1

    Python中单引号'双引号"使用完全相同;三引号(''' 或 """)指定多行字符串。

    反斜杠\ 用来转义,使用r可以让反斜杠不发生转义,\n用以换行

    Python中的字符串不能改变,向某个索引位置赋值,比如word[0] = 'm'会导致错误

    字符串可以用 + 运算符连接在一起,用 * 运算符重复

    按字面意义级联字符串,如"Sample " "code " "1"会被自动转换为Sample code 1

    字符串的切片

    1. #以下例子:字符串切片
    2. print('\n字符串切片')
    3. x = 'hello' # 所有字符串切片都返回新值
    4. print(x[3]) # l 查询字符串下标为3的元素
    5. print(x[0:]) # hello 查询字符串下标为0到末尾的元素
    6. print(x[:4]) # hell 查询字符串下标0到下标为(n-1)的元素
    7. print(x[1:]) # ello 查询字符串下标为1到末尾的元素
    8. print(x[1:4]) # ell 查询字符串下标1到下边为(n-1)的元素
    9. print(x[-4:-1]) # ell 查询字符串下标为-4到-1的元素
    10. print(x[-3:4]) # ll 查询字符串下标为-3到4的元素
    11. print(x[-2:]) # lo 查询字符串下标为-2到末尾的元素

    列表切片
    l
    hello
    hell
    ello
    ell
    ell
    ll
    lo

    5、列表(List)

    列表是数值、字符串的集合,并且可以嵌套,以[]进行使用,元素可以修改,是Python中一种基本的数据操作类型可以使用 append( ) 方法来添加列表项

    1. #以下例子:列表运算
    2. print('\n列表运算')
    3. x = [1, 2, 3]
    4. y = [4, 5, 6]
    5. print(len(x)) # 3 计算列表元素个数
    6. print(x + y) # [1, 2, 3, 4, 5, 6] 列表x和列表y拼接
    7. print(x*2) # [1, 2, 3, 1, 2, 3] 复制指定系数列表x
    8. print(5 in y) # True 判断5是否在列表x内
    9. print(5 not in y ) # False 判断5是否不在列表x内
    10. print(x!=y) # True 判断列表x和y是否相等

    运行结果

    列表运算
    3
    [1, 2, 3, 4, 5, 6]
    [1, 2, 3, 1, 2, 3]
    True
    False
    True

    可以使用条件列表解析式进行列表数据的填充

    1. #条件列表解析式
    2. print('\n条件列表解析式')
    3. myList = [x*2 for x in range(100) if x%2 == 0]
    4. for ele in range(len(myList)):
    5. print(myList[ele])

    条件列表解析式
    0
    4
    8
    12
    16

    ......

    6、元组(Tuple)

    元组是元素的集合,这一点与列表类似。与列表不同,元组的元素是不可以修改的。

    元组写在小括号 ( ) 里,元素之间用逗号隔开。

    元组切片

    1. #元组切片
    2. print('\n元组切片')
    3. x = (1, 2, 3, 4, 5, 6)
    4. print(x[2]) # 3 查找元组下标为2的元素
    5. print(x[-2]) # 5 查找元组倒数第2个元素
    6. print(x[:]) # (1, 2, 3, 4, 5, 6) 查找元组下标为0到末尾的元素
    7. print(x[::2]) # (1, 3, 5) 查找元组下标0到末尾间隔为2的元素
    8. print(x[:5]) # (1, 2, 3, 4, 5) 查找元组下标为0到5的元素
    9. print(x[1:]) # (2, 3, 4, 5, 6) 查找元组下标为1到末尾的元素
    10. print(x[1:-2]) # (2, 3, 4) 查找元组下标1的到倒数第2个间的元素
    11. print(x[-5:-3]) # (2, 3) 查找元组倒数第5到倒数第3间的元素

    运算结果

    元组切片
    3
    5
    (1, 2, 3, 4, 5, 6)
    (1, 3, 5)
    (1, 2, 3, 4, 5)
    (2, 3, 4, 5, 6)
    (2, 3, 4)
    (2, 3)

     元组运算

    1. #元组运算
    2. print('\n元组运算')
    3. x = (1, 2, 3)
    4. y = (4, 5, 6)
    5. print(len(x)) # 3 计算元组元素个数
    6. print(x + y) # (1, 2, 3, 4, 5, 6) 元组 x 和元组 y 拼接
    7. print(x*2) # (1, 2, 3, 1, 2, 3) 复制指定系数元组 x
    8. print(5 in y) # True 判断 5 是否在元组 x 内
    9. print(5 not in y ) # False 判断 5 是否不在元组 x 内
    10. print(x!=y) # True 判断元组 x 和 y 是否相等

    运算结果

    元组运算
    3
    (1, 2, 3, 4, 5, 6)
    (1, 2, 3, 1, 2, 3)
    True
    False
    True

    7、字典(dict)

    列表是有序的对象集合,字典是无序的键(key) : 值(value)集合。字典用 { } 标识,{ }创建空字典。

    两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。

    键必须是唯一的,但值不必;键必须使用不可变类型,值可取任何数据类型。

    使用构造函数 dict( ), 可以直接从键值对序列中构建字典;

    把相应的键放入到方括号中,可访问字典里的值

    1. # 字典创建
    2. print('\n字典运算')
    3. x = dict(name ='老胡杨树',age = 53)
    4. print(x) # {'name': '老胡杨树', 'age': 53}
    5. name = ['张三丰','张无忌']
    6. age = [93,21]
    7. x = dict(zip(name,age))
    8. print(x) # {'张三丰': 93, '张无忌': 21}
    9. # 字典增加
    10. x = {'name':'裘千仞','age':21}
    11. x['scores'] = 100
    12. print(x) # {'name': '裘千仞', 'age': 21, 'scores': 100}
    13. # 字典删除
    14. x = {'name':'黄老邪','age':21}
    15. del x['age']
    16. print(x) # {'name': '黄老邪'}
    17. # 字典修改
    18. x = {'name':'裘千仞','age':21}
    19. x['age'] = 25
    20. print(x) # {'name': '裘千仞', 'age': 25}
    21. # 字典查询
    22. x = {'name':'黄老邪','age':21}
    23. print(x['age']) # 21
    24. # 字典嵌套
    25. x = {}
    26. x['name'] = [1,2,3]
    27. print(x) # {'name': [1, 2, 3]}
    28. print(x['name'][1]) # 2 嵌套取值
    29. # 字典判断
    30. x = {'张三丰': 93, '张无忌': 21}
    31. print('张三丰' in x) # True 判断字典键中是否包含'漫漫'
    32. print('张无忌' in x) # False 判断字典键中是否包含'小漫'

    运算结果

    字典运算
    {'name': '老胡杨树', 'age': 53}
    {'张三丰': 93, '张无忌': 21}
    {'name': '裘千仞', 'age': 21, 'scores': 100}
    {'name': '黄老邪'}
    {'name': '裘千仞', 'age': 25}
    21
    {'name': [1, 2, 3]}
    2
    True
    True

    8、集合

    进行成员关系运算的元素集合。可以使用大括号 { } 或者 set( ) 函数创建集合

    1. #集合操作
    2. print('\n集合操作')
    3. x = {1,2,3}
    4. print(2 in x) # True 判断元素 2 是否在集合 x 中
    5. x = [1,1,2,3,5,5]
    6. print(list(set(x))) # [1, 2, 3, 5] 列表、元组去重
    7. x = { 1 , 3 , 5 }
    8. y = { 2 , 3 , 4 }
    9. print(x-y) # {1, 5}
    10. #差集:返回一个新集合,包括集合 x 中与集合y不同元素。
    11. print(x|y) # {1, 2, 3, 4, 5}
    12. #并集:返回一个新集合,包括集合 x 和集合 y 中所有元素。
    13. print(x&y) # {3}
    14. #交集:返回一个新集合,仅包括集合 x 和 y 中相同的元素。
    15. print(x^y) # {1, 2, 4, 5}
    16. #补集:返回一个新集合,仅包括集合 x 和 y 中的不同元素。

    运算结果

    集合操作
    True
    [1, 2, 3, 5]
    {1, 5}
    {1, 2, 3, 4, 5}
    {3}
    {1, 2, 4, 5}

  • 相关阅读:
    体验 Shifu 解决报错流程
    leetcode 55.跳跃游戏 贪心
    计算机视觉系列 -MMDetection 之SSDLite经典算法
    A股风格因子看板 (2023.10 第03期)
    CSS 背景
    字符串讲解
    如何写一份HR主动给你发送面试邀请的简历
    订单正逆向流程
    基于HTML+CSS+JavaScript制作响应式个人博客模板源码( JavaScript期末大作业 )
    PaddleX数据集规范
  • 原文地址:https://blog.csdn.net/qq_37497440/article/details/128184616