10.3学习归纳总结

10.3学习归纳总结

一、python基本数据类型

1.整型(整数)
  应用场景:年级,班级人数,年份
  代码实现:
        age = 18
  表达关键字:int
2.浮点数(小数)
  应用场景:薪资,身高
  代码实现:
        height = 1.8
  表达关键字:float
3.字符串(文本)
  应用场景:姓名,爱好
  代码实现:
        name = 'jia'
  表达关键字:str
4.列表(存储多个数据值)
  代码实现:
       list = [11, 22, 33, 44]
  表达关键字:list
5.字典(能够精确地存储和表达数据的含义)
  代码实现:
       dict = {
           name = 'jia',
           age = 18
       }
        大括号括起来,内部存放数据,数据的形式是k:v键值对
  表达关键字:dict
6.布尔(用于判断事物的对错,是否可行,主要用于流程控制)
  状态:
       True:对的,可行的,真的
       False:错的,不可行的,假的
  Python中所有的数据自带布尔值:
       布尔值为False的数据:0,None,'',{},[]
       布尔值为True的数据:除了上面五个都是
  布尔值得变量的命名一般推荐以is开头:
    eg:
        is_right = True
        is_left = False
  表达关键字:bool
7.元组(也称'不可变列表',数据地址不可变)
  代码实现:
        t1 = (1, 2, 3, 'jia')
  元组和列表的区别:
    1.元组的数据不能被改变
    2.列表使用的是[],元组使用的是()
    3.列表属于可变类型,元组是不可变类型
  表达关键字:tuple
  在使用存放多个数据的数据类型时,如果元组里面只有一个数据时,建议在数据值后面加个逗号
8.集合(用于去重和关系运算)
  去重:去除存放的数据
  关系运算:判断两个集合之间的数据值的关系
  大括号括起来,里面存放多个数据值,数据值之间用逗号隔开
  代码实现:
        s1 = {11, 22, 33, 44, 55}
  定义空集合:c = set()
  表达关键字:set

二、用户交互

1.输入与输出

1.输入(input)  # 获取用户输入的信息
  eg:
    username = input('请输入您的用户名')
    print(username)
 '''
 1.先获取用户输入的信息
 2.再将数据赋值给左边的username
 3.通过username使用用户传入的数值
 4.input获取到的信息一般统一处理成字符串类型
 '''
2.输出(print)  
eg:
  print()  # 打印数据值
  print(name)   # 括号里面可以放数据值也可以放变量名
  print(s1, s2, s3)  # 括号里面可以放多个数据值或者变量名
 '''
 换行符:\r\n   \n   \r
 最早的换行符是:\r\n
 print可以切换换行符的
 不换行:print(数据,end='默认是\n')
 '''

2.python2与python3的区别

1.输入的区别
  python2:input输入字符串时要带上引号,输入数字时不需要,raw_input用来接收字符串的        
  python3:只有input,它返回的都是str类型
2.输出的区别
  python2: print 数据值 或者  print(数据值)
  python3: print(数据值)
3.字符串编码的改变
  python2: ASCII编码方式
  python3: UTF-8形式
4.内置函数的区别
  python2: range()内置函数直接生成列表(占用大量内存会死机),xrange()只生成一个生成器
  python3: range()只生成一个生成器

三、格式化输出

程序中想要占位就得用占位符
eg:
 info = 'xx女士,您好,您xx月的话费是xx,余额是xx'
方法1:
%s:支持所有的数据类型
'''
info = '%s女士,您好,您%s月的话费是%s,余额是%s'
print(info % ('王',3,300,400))
'''
方法2:
%d:支持数字占位
'''
info = '%d女士,您好,您%d月的话费是%d,余额是%d'
print(info % ('王',3,300,400))
'''

四、多种赋值符

1.链式赋值
 eg:
     x = 1
     y = x
     z = y
     x = y = z = 1
2.解压赋值
 eg:
     num = [1, 2, 3, 4]
     num1, num2, num3, num4 = num
3.交叉赋值
 eg:
     x = 1
     y = 2
     temp = x
     x = y
     y = temp
     print(x,y)

五、多种运算符

1.基本运算符

1.数学运算符
  加   +=   # x += 10  x = x + 10
  减   -=   # x -= 10  x = x - 10
  乘   *=   # x *= 10  x = x * 10
  除   /=   # x /= 10  x = x / 10
  取余  %=   # x % =10  x = x % 10
  幂   **=  # x ** = 10  x = x ** 10
2.比较运算符
  <  >   <=  >=  ==   !=

2.成员运算符

判断个体是否在群体里面
in  是否包含条件
not in  是否不包含条件
eg:
    name_list = ['jia', 'jason', 'tom']
    print('jia' in name_list)
    print('tia' not in name_list)

3.逻辑运算符

逻辑运算符与条件搭配着一起使用
1. and  与
 and连接的多个条件必须全部成立,结果才会成立
 如果and左边的条件是成立的,那么完全取决于右边的条件
 如果右边是数据值,那么结果就是数据值,如果是表达式,那么则为布尔值
2. or   或者
  or连接的多个数据值,只要有一个成立,结果就成立
  准确说出具体结果的方法和and差不多
3. not  非
   not  取反

4.身份运算符

id()  返回一串数字,可以查看内存地址
is    判断内存地址是否相同
==    判断数据值是否相同

六、垃圾回收机制

1.垃圾回收机制
 专门回收不可用的变量值所占的内存空间,
2.为什么要用垃圾回收机制
  程序运行过程中会申请大量的内存空间,对于一些没有用的内存空间没有及时处理的话,会造成程序崩溃,内存溢出,为了更好的管理内存,则用解释器自带的垃圾回收机制,清理垃圾,释放内存。
3.垃圾回收机制的原理分析
   (1).引用计数
   (2).标记清除
   (3).分代回收

七、流程控制

1.顺序结构

代码块从上往下依次执行

2.if分支结构

1.单if分支结构
 if 条件:
    条件成立才会执行的代码块
eg:
    username = input('username-->>')
    if username == 'jia':
        print('你好')  
2.if...else...分支结构
if 条件:
   条件成立之后执行的子代码
else:
    条件不成立执行的子代码
eg:
    username = input('username-->>')
    if username == 'jia':
     	print('你好,jia')
    else:
        print('不好意思,认错了')
3.if...elif...else分支结构
 if 条件1:
    条件1成立之后执行的代码块
 elif 条件2:
 	条件1不成立,条件2成立执行的代码块
 elif 条件3:
 	条件1,条件2不成立,条件2成立执行的代码块
 else:
 	上述条件都不成立时,执行的代码块
注意:中间的elif可以写多个,都是子代码只会执行一个
eg:
    score = input('请输入你的成绩-->>')
    score = int(score)   # 讲字符串的整数转换成整型的整数
    if score >= 90:
        print('优秀')
     elif score >= 80:
        print('良好')
     elif score >= 70:
        print('一般')
     elif score >=60:
        print('及格')
     else:
        print('不及格')
4.if的嵌套使用
  eg:
    is_eat = True
    is_drink = True
    is_play = False
    if is_eat:
        print('吃了米饭')
        if is_drink:
            print('喝了八杯水')
            if is_play:
                print('玩了一下午')
            else:
                print('一直在学习')
        else:
            print('一天都没有喝水')
    else:
        print('什么都没吃')

3.while循环结构

循环结构就是让一些代码反复执行
while 条件:
    条件成立之后执行的子代码(循环体代码)
1.先判断条件是否成立,成立则执行代码体
2.循环体代码执行完毕,再回条件处判断,判断条件是否成立
3.如果成立,继续执行代码体
4.按照上面的次序,执行,直到条件不成立才会结束循环
eg:
    count = 1
    while count < 5:
        print('结束了')
         count += 1
     print('哈哈哈哈') 
额外知识点:
while 条件:
 	循环体代码
else:
	循环体没有强制被结束的情况下,执行完毕就会执行else子代码

4.for循环结构

1.for循环的主要应用场景:循环获取多个数据值
2.for循环语法结构:
    for 变量名 in 待遍历的数据:
         for循环体代码
  eg:
        info = 'hello word'
        for i in info:
            print(i)  # 打印出来十位字符,输出的是单个字符,空格也算单个字符
3.for循环特点:擅长遍历取值,不需要结束条件(遍历完自动结束)
4.for循环主要遍历的数据类型有(字符串,列表,元组,字典,集合)
5.for循环中如果执行到break也会直接结束整个循环的
6.for循环如果执行到continue也会结束当前循环开始下一次循环

5.流程控制的小知识点

1.python中使用代码的缩进来表示代码的从属关系
2.并不是所有代码都有子代码的
3.如果多行代码同属一个父代码,那么他们有相同的缩进量
4.某一行要写子代码的话,这一行的结尾一定要有冒号
5.缩进可以按空格键或者tab键

八、数据类型的内置方法

1.内置方法

1.内置方法是每个数据类型自带的功能
2.Python中数据类型调用内置方法的统一句式:句点符(.)
  绑定的字符串变量名.字符串内置方法

2.整型相关操作

1.类型转换(把其他类型转换为整型)
 int(其他数据类型)
 浮点型可以直接转,字符串转的话内部必须满足是纯数字才可以
2.进制数的转换
  十进制转为其他进制
  print(bin(30))
  print(oct(20))
  print(hex(29))

3.浮点型相关操作

1.类型转换(把其他类型转换为浮点型)
  float(其他数据类型)
2.Python自身对于数字的敏感度较低
  需要更精确地计算就得借助于解释器模块numpy

4.字符串相关操作

# s1 = 'hello word'
1.类型转换
  str(其他数据类型)
2.索引取值
  起始位置为0,超出范围直接报错
3.切片操作
  print(s1[0])   # h
4.修改切片的方向(间隔)
  print(s1[2:3:-1])
5.统计字符串中字符的个数
  print(len(s1))
6.移除首尾字母的空格
  .strip()
7.切割字符串中指定的字符
  .split()
8.字符串格式化输出
  .format
9.字符串大小写
  .upper()  # 统一转为大写
  .lower()  # 统一转为小写
10.判断字符串中是否是纯数字
  .isdigit()
11.替换字符串中指定的内容
  .replace()
12.字符串的拼接
  .join()
13.统计字符出现的次数
  .count()
14.判断字符串的开头或者结尾
  startswith  开头
  endswith    结尾
15.title()  # 所有首字母大写
15.capitalize()  # 第一个首字母大写
15.swapcase()  # 大写变小写 小写变大写
15.index()  # 索引
15.find()  # 查找

5.列表相关操作

l1 = [11, 22, 33, 44, 55, 77]
1.索引取值
  print(l1[-1])   # 77
2.切片操作
  print(l1[0:5])  # [11, 22, 33, 44, 55]
3.间隔数
   print(l1[::-1])   # [77, 55, 44, 33, 22, 11]
4.统计列表中的数据值个数
  eg:
      print(len(l1))   # 6
5.数据值修改
  eg:
        l1[0] = 99
        print(l1)     # [99, 22, 33, 44, 55, 77]
 6.列表中添加数据值
    (1).append()   # 尾部追加数据值
    	eg: l1.append('数据')
    (2).insert()   # 任意位置插入数据值
    	eg: l1.insert(1, [11, 33])
    (3)+号        # 扩展列表 合并列表
    	eg: 
            l2 = [2, 4]  
            print(l1 + l2)  # [11, 22, 33, 44, 55, 77, 2, 4]
    (4).extend()   # 相当于for循环加append
        eg:  
            l1.extend(l2)  
            print(l1)  # [11, 22, 33, 44, 55, 77, 2, 4]
         相当于:
           for i in l2:
                l1.append(l2)
            print(l1)
7.删除列表数据
    (1)del  通用删除关键字del
        eg: 
            del l1[0]   
            print(l1)
    (2) remove  彻底删除数据值
         eg:
             l1.remove(22)
             print(l1)
    (3)pop  尾部弹出数据值,并没有真正删除数据
         eg:
             l1.pop(33)
             print(l1)
8.排序
     (1) .sort()就是升序
       eg:
        s1 = [33, 44, 66, 88, 21, 12]
        s1.sort()
        print(s1)    # [12, 21, 33, 44, 66, 88]
    (2) 降序  加一个参数,将其设为True,就是降序了
       eg:
        s1 = [33, 44, 66, 88, 21, 12]
        s1.sort(reverse=True)
        print(s1)     # [88, 66, 44, 33, 21, 12]
9. 统计列表中某个数据出现的次数
    eg:
      print(l1.count(22))
10.颠倒列表顺序
   eg:
      l1.reverse()
      print(l1)

6.字典相关操作

dict()
eg:
    user_dict = {
    'username': 'jason',
    'password': 123,
    'hobby': ['read', 'music', 'run']
}
1.按k取值
  print(user_dict['username'])   # jason
2.按内置方法get取值
  print(user_dict.get('username'))   # jason
3.修改值数据
  user_dict['usernam'] = 'tony'   # 键存在则修改对应的值
4.新增键值对
  user_dict['age'] = 18
5.删除数据
  del user_dict['username']
6.统计字典中键值对的个数
  print(len(user_dict))  # 3
7.字典三剑客
  print(user_dict.keys())   # 一次性获取字典所有的键
  print(user_dict.values())  # 一次性获取字典所有的值
  print(user_dict.items())   # 一次性获取字典的键值对数据

7.元组相关操作

tuple()
支持for循环的数据类型都可以转换为元组
l1 = (11, 22, 33, 44, 55, 66)
1.索引取值
 print(l1[2])   # 33
2.切片
 print(l1[2:4])  # (33, 44)
3.间隔,步长
 print(l1[0:5:2])  # (11, 33, 55)
4.统计元组内某个数据值出现的个数
 print(len(l1))    # 6
5.统计元组内某个数据值出现的次数
 print(l1.count(22))    # 1
6.统计元组内指定数据值的索引值
 print(l1.index(22))  # 1
7.元组内如果只有一个数据值那么逗号不能少
8.元组内索引绑定的内存地址不能被修改(可变数据类型内存地址不变的)
  可变数据类型有:集合,列表,字典
9.元组不能新增或者删除数据

8.集合相关操作

set()
集合内的数据必须是不可变类型(整型,浮点型,字符串,元组)
集合内数据是无序的 没有索引的概念
1.去重
  去除集合内重复的数据值
eg:
    l2 = {11, 33, 44, 88, 99}
    l1 = set(l2)
    l2 = list(l1)
    print(l2)      # [33, 99, 88, 11, 44]
2.关系运算
&    共同的部分
-    独有的部分
|    全部的部分(和)
^    独有部分的和
posted @ 2022-10-06 16:21  小王应该在学习!  阅读(102)  评论(0编辑  收藏  举报