zoukankan      html  css  js  c++  java
  • python数据类型详解

    数据类型基础

    数据类型: 不同种类的变量值用不同的数据类型描述

    数字类型

    整形(int)

    1. 定义方式: age = 18;age = int(18);int('18')
    age = 18;age1 = 19  # 不建议使用
    print(age,age1)
    
    age,age1 = 18,19  # 解压缩
    
    1. 作用: 描述年龄/id号等
    2. 使用方式:+-*/ % // **( a = 1
      b = 2
      print(a+b)
      print(b-a)
      print(a*b)
      print(a/b)
      print(a//b) # 取整
      print(a%b) # 取余
      print(a**b) # 幂)
    3. 如果使用log方法,导入import cmath

    作用

    年龄/身份证号码/身高/体重等

    浮点型(float)

    1. 定义方式:salary=3.2;salary=float(3.2);float('3.2')
    2. 作用:描述薪资等
    3. 使用方法:+-*/ % // **( a = 1
      b = 2
      print(a+b)
      print(b-a)
      print(a*b)
      print(a/b)
      print(a//b) # 取整
      print(a%b) # 取余
      print(a**b) # 幂)
    4. 如果使用log方法,导入import cmath

    作用:

    可以用来表示薪水等

    字符串类型

    1. 定义方式:
    name = 'nick';name = "nick"
    name = str('nick')
    name = '''
    nick
    nick
    '''
    name = """
    nick
    nick
    """
    
    
    x = str(10) # '10'
    
    1. 作用: 名字等
    2. 使用方法
    s1 = 'nick'
    s2 = 'handsome'
    
    s1 + s2
    
    s3 = 10  # nickhandsome
    s1 + str(10)  # nick10
    # int(s1) + s3
    
    
    s1 * 5  # 'nicknicknicknicknick'
    

    列表

    1. 定义方式: []内用逗号隔开多个元素(所有数据类型)

    ctrl+鼠标左键 进入源码模式

    1. 作用: 存储多个值
    2. 使用方法
    nick_info = ['nick',180,140,['read','run','music']]
    
    nick_info[-1][1]  # 'run'
    
    
    
    # 仅做了解
    lis = [1,2,3]
    lis2 = [4,5,6]
    print(lis+lis2)
    
    
    print(lis*2)  # [1, 2, 3, 1, 2, 3]
    

    字典

    1. 定义方式: {}内以逗号隔开键值对 key(一般为字符串,具有描述意义):value(为任意数据类型) # 哈希表
    2. 作用: 存储多个值,不依赖索引取值,而通过key取值
    3. 使用方法
    nick_info_dict = {'name':'nick','height':180}
    
    nick_info_dict['height']
    

    布尔类型

    1. True和False,一般只在条件判断的时候

    除了0/None/空/False之外所有的数据类型(所有你能看到的东西)都自带布尔值为True

    解压缩

    一次性取多个值,解压缩的对象有多少个元素,则必须拿多少个

    lis = [1,2,3]
    
    x1,x2,x3 = lis  # 1,2,3
    
    # 不会用
    x1,_,x3 = lis  # 1,_,3
    *_,x3 = lis  # _,_,3
    

    基本运算符

    算术运算符

    +-*/ % // **

    逻辑运算符

    1. and: 两个条件都为真,即为真,否则都为假
    2. or:两个条件其中一个为真,则为真,否则都为假
    3. not: 真变假,假变真

    赋值运算符

    = += -= *= /= %= //= **=

    比较运算符

    > >= < <= == !=

    身份运算符

    1. is: 比较两个变量的id
    2. is not: 比较两个变量的id(A is not B == not A is B)

    运算符的优先级(了解)

    1. 如果你要优先运算,加括号

    数值类型内置方法

    整型

    1. 作用:描述年龄,id
    2. 定义方式: x = 10, x = int('10')
    3. 使用方法: 算术运算 和 比较比较运算
    4. 有序无序: 压根没有这一说
    5. 存一个值还是多个值:一个值
    6. 可变还是不可变: 不可变

    浮点型

    1. 作用:描述薪资
    2. 定义方式: x = 10.1, x = float('10.1')
    3. 使用方法: 算术运算 和 比较比较运算
    4. 有序无序: 压根没有这一说
    5. 存一个值还是多个值:一个值
    6. 可变还是不可变: 不可变

    字符串类型内置方法

    1. 作用: 描述姓名,性别
    2. 定义方法
    name = 'nick'
    
    # 
     换行
    # 	 缩进,4个空格
    # 
    +end='' 覆盖上一次打印
    
    name = r'
    	a'   # 取消
    和	的作用
    name = '\n\ta'  # 取消
    和	的作用
    
    1. 内置方法
      1. 优先掌握
        1. 索引取值
        2. 切片
        3. strip
        4. split
        5. len长度
        6. 成员运算
        7. for 循环
      2. 需要掌握
        1. upper/lower
        2. startswith/endswith
        3. rstrip/lstrip
        4. rsplit
        5. isdigit/isalpha
        6. join
        7. replace
      3. 了解
        1. find/rfind/index/rindex/count
        2. capitalize/swapcase/title
        3. center/ljust/rjust/zfill
        4. is系列(真正的了解)
      4. 存一个值还是多个值:一个值
      5. 有序or无序:有序
      6. 可变还是不可变:不可变

    有序or无序

    有索引的就是有序,无索引的就是无序

    可变or不可变

    值变id不变的是可变类型;值变id变的是不可变

    列表list

    1. 定义方式: []内逗号隔开多个元素(任意数据类型)
    2. 使用方法
      1. 优先掌握
        1. 索引取值,索引修改值
        2. 切片
        3. 成员运算
        4. 长度
        5. for循环
        6. append
        7. del删除
      2. 需要掌握
        1. insert
        2. pop
        3. remove
        4. count
        5. find
        6. index
        7. extend
        8. sort
        9. reverse
        10. clear
        11. copy
        12. ...

    字典dict

    1. 定义方式: {}内以逗号隔开键值对,key(具有描述意义,不能为可变数据类型):value(具体的任意数据类型)
    2. 使用方法
      1. 优先掌握
        1. 按key取值,按key修改值,按key增加值
        2. 成员运算
        3. 长度
        4. for循环
        5. keys/values/items
        6. del 删除
        7. get
      2. 需要掌握
        1. copy
        2. update
        3. clear
        4. setdefault
        5. fromkeys
        6. pop(按key删除)
        7. popitem(随机删除,但是删除最后一个)

    元组tuple

    1. 定义方式: ()内以逗号隔开多个任意数据类型的元素
    2. 不可更改的列表,创建后就只能是那样了

    集合set

    1. 定义方式: {}内以逗号隔开多个元素(不能为可变数据类型)
    
    1. 使用方法:

    布尔类型bool

    1. True
    2. False

    条件判断后触发,一般不单独使用

    一、Python基础实战之猜年龄游戏

    1. 给定年龄,用户可以猜三次年龄
    2. 年龄猜对,让用户选择两次奖励
    3. 用户选择两次奖励后可以退出
    age = 18  # 答案
    count = 0  # 游戏次数控制
    prize_dict = {0: '布娃娃', 1: '变形金刚', 2: '奥特曼', 3: '<Python从入门到放弃>'}
    
    # 核心代码
    while count < 3:
        inp_age = input('请输入你的年龄>>>')  # 与用户交互
    
        # 判断用户是否骚扰(超纲:判断用户输入的是否为数字)
        if not inp_age.isdigit():
            print('傻逼,你的年龄输错了')
            continue
    
        inp_age_int = int(inp_age)
    
        # 核心逻辑,判断年龄
        if inp_age_int == age:
            print('猜对了')
    
            print(prize_dict)  # 打印奖品
    
            # 获取两次奖品
            for i in range(2):
                prize_choice = input(
                    '请输入你想要的奖品,如果不想要,则输入"n"退出!!!')  # 与用户交互获取奖品
    
                # 判断是否需要奖品
                if prize_choice != 'n':
                    print(f'恭喜你获得奖品: {prize_dict[int(prize_choice)]}')
                else:
                    break
            break
    
        elif inp_age_int < age:
            print('猜小了')
    
        else:
            print('猜大了')
    
        count += 1  # 成功玩一次游戏
    
        if count != 3:
            continue
    
        again_choice = input('是否继续游戏,继续请输入"Y",否则任意键直接退出.')  # 交互是否再一次
    
        # 判断是否继续
        if again_choice == 'Y':
            count = 0
    

    数据类型分类

    可变or不可变

    可变 不可变
    列表/字典/集合 整型/浮点型/字符串/元组

    有序or无序

    有序 无序
    字符串/列表/元组 字典/集合

    一个值or多个值

    一个值 多个值
    整型/浮点型/字符串 列表/元组/字典/集合

    文件的基本操作

    打开文件的流程

    # 1. 打开文件
    
    f = open(file_path, 'r')
    
    # 2. 读写操作
    f.read() / f.write()
    
    # 3. 关闭文件
    f.close()
    
  • 相关阅读:
    (hdu step 7.1.2)You can Solve a Geometry Problem too(乞讨n条线段,相交两者之间的段数)
    阅读&lt;反欺骗的艺术&gt;思考
    顺序查找(改进)
    win7电脑那些事
    激活office 2010
    MyEclipse10安装SVN插件
    合并排序法
    希尔排序法
    直接插入排序法
    快速排序法——较优方法
  • 原文地址:https://www.cnblogs.com/zfb123-/p/12056065.html
Copyright © 2011-2022 走看看