9.26总结

  • python基本数据类型

    • 整型int

      整数:年龄、班级、年份
         year = 2022
         print(type(year))
      <class 'int'>
      
    • 浮点型float

      小数:身高、体重、薪资
         height = 1.68
         print(type(height))
      <class'float'>
      
    • 字符串str

      文本类型:引号里的全是字符串
             名字、地址。。。。
          name = 'ZhangGaoLi'
          print(type(name))
      <class'str'>
      ps1:我们在字符串中编写文本可能也会用引号,为了避免冲突。外面用双引号里面就用单引号。。。
      ps2:区分字符串还是注释
         看左边有赋值符号或者变量名,则是字符串没有则是注释
      
    • 列表list

      存储多个数据—还能快速提取
          number = [1, 2, 3, 4, 5, 6, 7, 8, 9]
          print(type(number))
      <class'list'>
      ps:列表最常用python数据类型,用方括号括起来里面数   据用逗号+空格隔开。
        列表索引是从0开始
      
    • 字典dict

      能非常精确的存储和表达数据的含义
          info_dict = {
              'name':'dd',
               'age':'18'
      }
          print(type(info_dict))
          print(info_dict('name'))
      <class'dict'>
      dd
      ps:每个键与值用冒号隔开,每对后面用逗号隔开,整体   放在{}
        值可以取任何数据类型,必须是不可变的,如字符     串、数、元组。
        键独一无二的,值不必。
      
    • 布尔值bool

      用来判断事物的对错、是否可行、只要用于流程控制中
      只有两种状态
         True:对的、真的、可行的
         False:错的、假的、不可行的
      python所以数据都自带布尔值
         布尔值为False的数据:0 None''[]{}
         布尔值为True的数据:除看上面的都是True
          is_delete = false
          is_alive = True
      """
      很多程序中提供的注销账户的功能 其实底层并没有删除数据 而是修改了数据的状态
      id		username	password    phone    is_delete
      1		jason		123		   110     	 1
      2		kevin		321		   120		  0
      """
      
    • 元组tuple

      • 不可变的列表

        • 元组内索引绑定的内存地址不能修改
      • 小括号括起来,内部存放多个数据值,数据值之间逗号隔开,数据值可以是任何数据类型。

      • 代码实现

      T1 = (11,22,'jason')
      
      • 元组与列表对比
      # l1 = [11, 22, 33]
          # print(l1[0])  # 获取索引0对应的数据值
          # l1[0] = 666
          # print(l1)  # [666, 22, 33]
      
          # t1 = (11, 22, 33)
          # print(t1[0])
          # t1[0] = 999
          # print(t1)
      
          t1 = (11, 22, [111, 222])
          t1[2][1] = 666
          print(t1)
          """
          A.直接报错
          B.(11, 22, [111, 666])
          C.不知道 超出了我的认知
          """  
      

      • 元组内如果只有一个数值
        t1 = (1)
          t2 = (11.11)
          t3 = ('jason')
          print(type(t1), type(t2), type(t3))  # <class 'int'> <class 'float'> <class 'str'>
          t1 = (1,)
          t2 = (11.11,)
          t3 = ('jason',)
          print(type(t1), type(t2), type(t3))  # <class 'tuple'> <class 'tuple'> <class 'tuple'>
          """
          建议:以后在使用可以存放多个数据值的数据类型时 如果里面暂时只有一个数据值 那么也建议你加上逗号
          """  
      
    • 集合set

      • 集合只能用于去重和关系运算
      • 集合内数据只能是不可变类型
      • 大括号括起来、内部存放多个数据值、数据值与数据值之间逗号隔开,数据值不是K:V值对
      • 代码实现
        • S1 =
      • 定义空集合与空字典
        • {}:默认是字典
        • set():定义空集合
  • 与用户交互

    """
    以前银行取钱只能拿着存折去柜台跟工作人员交流才可以
    	你想干嘛 我想取钱 
    	请输入密码 滴滴滴密码
    	想取多少钱 我想取一个亿
    	...
    随后程序代替了工作人员直接跟我们交互
    	ATM机器
    """
    1.获取用户输入
    	 input
    	 # 获取用户输入
        username = input('请输入您的用户名>>>:')
        """
        1.先执行input获取用户输入
        2.将输入的数据绑定给变量名username
        3.以后在程序中就可以使用变量名反复调用用户数据
        """
    	强调:input获取到的数据都会统一处理成字符串类型
    2.输出内部信息
    	print
     	1.括号内既可以放数据值也可以放变量名 并且支持多个 逗号隔开即可
     	2.print自带换行符
    		换行符:\r\n \n(斜杠与字母组合到一起可能会产生特殊的含义)
    	3.print也可以切换结束符
        	print(数据,end='默认是\n')
    扩展:python2与python3中两个关键字的区别
     	python2中
        	input方法需要用户自己提前指定数据类型 写什么类型就是什么类型
     	 	 raw_input方法与python3中input一致 输入的统一处理成字符串	
    	python2中
        	print方法有两种使用方式
            	print 数据值
               print(数据值)
    
  • 格式化输出

    提前定义好一些内容 将来需要使用的时候可以局部修改
    	eg:奖状、录取通知书、合同
    代码实现
    	在现实生活中大部分情况下使用下划线提示别人填写内容
     	但是在程序中需要使用占位符:%s %d
    info = '%s同志你好'
    '''单个占位符'''
    # print(info % 'Jason')  # Jason同志你好
    # print('%s同志你好' % 'Tony')  # Tony同志你好
    # print(info % ('jason',))
    # print('%s同志你好' % ('Tony',))
    '''多个占位符'''
    # desc = '姓名:%s 年龄:%s 爱好:%s'
    # print(desc % ('jason', 18, 'read'))
    # print('姓名:%s 年龄:%s 爱好:%s' % ('tony', 28, 'rap'))
    '''注意事项:有几个占位符就需要几个数据值'''
    # print('my name is %s my age is %s' % ('jason',))  # 少了不行
    # print('my name is %s my age is %s' % ('jason', 18, 'read'))  # 多了不行
    '''不同占位符的区别'''
    # demo1 = '%s您好 您本月的话费是%s 余额是%s'  # %s常见数据类型都支持
    # print(demo1 % ('jason', 100, 10000000000000))
    # demo2 = '%d您好 您本月的话费是%d 余额是%d'  # %d只支持数字类型
    # print(demo2 % ('tony', 1000000000, -100000))
    
    print('%08d'% 123)  # 00000123
    print('%08d'% 1234324324)  # 1234324324
    
  • 基本运算符

    • 数学运算符

      简化写法
          n = 10
          n += 1  # n = n + 1
          n -= 1  # n = n - 1
          n *= 1  # n = n * 1
          n /= 1  # n = n / 1
          n %= 1  # n = n % 1
          n //= 1  # n = n // 1
          n **= 1  # n = n ** 1
      
    • 比较运算符

  • 多种赋值方式

    • 链式赋值

      name = 'jason'
      name1 = name
      name2 = name

      name = name1 = name2 = 'jason'

    • 交叉赋值

     m = 100
     n = 999
    1.'''方式1:采用中间变量'''
        # temp = m
        # m = n
        # n = temp
        # print(m, n)  # 999 100
    2. '''方式2:交叉赋值语法'''
        m, n = n, m
        print(m, n)  # 999 100
    
    • 解压赋值
      name_list = ['jason', 'kevin', 'tony', 'oscar']
        '''low的写法'''
        # name1 = name_list[0]
        # name2 = name_list[1]
        # name3 = name_list[2]
        # name4 = name_list[3]
        '''解压赋值语法'''
        # name1, name2, name3, name4 = name_list
        '''解压赋值在使用的时候 正常情况下需要保证左边的变量名与右边的数据值个数一致'''
        # a, b = name_list  # 变量名少了不行
        # a, b, c, d, e = name_list  # 变量名多了也不行
        '''当需要解压的数据个数特别多 并且我们只需要使用其中的几个 那么可以打破上述的规则'''
        # a, *b = name_list  # *会自动接收多余的数据 组织成列表赋值给后面的变量名
        # print(a)  # jason
        # print(b)  # ['kevin', 'tony', 'oscar']
        # a, c, *b = name_list
        # print(a)
        # print(c)
        # print(b)  # ['tony', 'oscar']
        # a, *b, c = name_list
        # print(a)  # jason
        # print(b)  # ['kevin', 'tony']
        # print(c)  # oscar
        '''当数据值不准备使用的时候 可以使用下划线作为变量名绑定'''
        a, *_, c = name_list
    
  • 逻辑运算符

    • 主要是配合条件一起使用

      • and 与 and连接的多个条件必须全部成立,结果才能成立

      • or 或 or连接的多个条件只要有一个成立,结果就是成立

      • not 非 取反 说反话

    """
    三者混合使用的时候有优先级之分 但是我们不需要记忆优先级 应该通过代码的形式提前规定好优先级
    	eg: 先乘除有加减  但是可以使用括号来改变优先级
    	(3>4 and 4>3) or ((1==3 and 'x' == 'x') or 3 >3)
    """
    

  • 成员运算符

    判断个体在不在群体内
    
    # name_list = ['jason', 'kevin', 'oscar', 'jerry']
    # print('tony' in name_list)  # False
    # print('tony' not in name_list)  # True
    # print('j' in name_list)  # False 列表最小单位是数据值  不能再细分
    
    # s1 = 'hello world'
    # print('d' in s1)  # True 字符串最小单位是单个单个的字符
    
    d1 = {
          'username': 'jason',
          'pwd': 123
    }
    print('jason' in d1)  # False 字典成员运算只有键参与
    print('username' in d1)  # True      'username' 'pwd'
    
  • 身份运算符

    """
    id()  返回一串数字 该数字可以看成是内存地址
    """
    1.is:判断内存地址是否相同
    2.==:判断数据值是否相同
    
    l1 = [11, 22, 33, 44, 55, 66, 77, 88]
    l2 = [11, 22, 33, 44, 55, 66, 77, 88]
    print(l1 == l2)  # True
      print(id(l1))
      print(id(l2))
    print(l1 is l2)  # False
    
    # 小整数池
    i1 = 11
    i2 = 11
    print(i1 is i2) # True
    
    s1 = 'jason jason jason'
    s2 = 'jason jason jason'
    print(s1 is s2) # True
    不同的环境下可能优化的程度不一样 
    
    """
    了解
        值相同 内存地址可能不同
        内存地址相同 值肯定相同
    """
    
    

    课后习题

1.获取用户输入并打印成下列格式
	 ------------ info of Jason -----------
    Name : Jason
    Age  : 18
    Sex  : male
    Job  : Teacher 
    ---------------- end -----------------
解析:
 info_demo = '''
 ------------ info of %s -----------
    Name : %s
    Age  : %s
    Job  : %s 
    ---------------- end -----------------
'''
username = input('username>>>:')
Age = input('Age>>>:')
Job = input('Job>>>:')
print(info_demo % (username, username, Age, Job)) 
2.准备说出下列变量名v绑定的结果
	 v1 = 1 or 3
   print(v1) # 1
    v2 = 1 and 3
   print(v2) # 3
    v3 = 0 and 2 and 1
   print(v3) # 0不成立
    v4 = 0 and 2 or 1
   print(v4) # 1
    v5 = 0 and 2 or 1 or 4
   print(v5) # 1
    v6 = 0 or False and 1
   print(v6) # false 不成立
posted on 2022-09-27 15:04  眼眸里的温暖  阅读(8)  评论(0)    收藏  举报