首页 > 其他分享 >学习总结

学习总结

时间:2022-10-06 12:45:17浏览次数:57  
标签:总结 username res 学习 dict user l1 print

本周总结

1.列表

2.字典

3.集合

4.元组

5.分支结构和循环结构

6.垃圾回收机制

1.列表

1.类型转换
	list(其他数据类型)
	ps:能够被for循环的数据类型都可以转成列表
 	print(list('hello'))
    print(list({'name': 'jason', 'pwd': 123}))
    print(list((1, 2, 3, 4)))
    print(list({1, 2, 3, 4, 5}))
2.需要掌握的方法
	11 = [111, 222, 333, 444, 555, 666, 777, 888]
    # 1.索引取值(正负数)
    # print(l1[0])
    # print(l1[-1])
    # 2.切片操作    与字符串讲解操作一致
    # print(l1[0:5])
    # print(l1[:])
    # 3.间隔数 方向  与字符串讲解操作一致
    # print(l1[::-1])
    # 4.统计列表中数据值的个数
    # print(len(l1))   8
    # 5.数据值修改
    # l1[0] = 123
    # print(l1)
    # 6.列表添加数据值
    # 方式1:尾部追加数据值
    # l1.append('干饭')
    # print(l1)  # [111, 222, 333, 444, 555, 666, 777, 888, '干饭']
    # l1.append(['jason', 'kevin', 'jerry'])
    # print(l1)  # [111, 222, 333, 444, 555, 666, 777, 888, ['jason', 'kevin', 'jerry']]
    # 方式2:任意位置插入数据值
    # l1.insert(0, 'jason')
    # print(l1)
    # l1.insert(1, [11, 22, 33, 44])
    # print(l1)  # [111, [11, 22, 33, 44], 222, 333, 444, 555, 666, 777, 888]
    # 方式3:扩展列表 合并列表
    # ll1 = [11, 22, 33]
    # ll2 = [44, 55, 66]
    # print(ll1 + ll2)  # [11, 22, 33, 44, 55, 66]
    # ll1.extend(ll2)  # for循环+append
    # print(ll1)  # [11, 22, 33, 44, 55, 66]
    # for i in ll2:
    #     ll1.append(i)
    # print(ll1)
    # 7.删除列表数据
    # 方式1:通用的删除关键字del
    # del l1[0]
    # print(l1)
    # 方式2:remove
    # l1.remove(444)  # 括号内填写数据值
    # print(l1)
    # 方式3:pop
    # l1.pop(3)  # 括号内填写索引值
    # print(l1)
    # l1.pop()  # 默认尾部弹出数据值
    # print(l1)
    # res = l1.pop(3)
    # print(res)  # 444
    # res1 = l1.remove(444)
    # print(res1)  # None
    # 8.排序
    # ss = [54, 99, 55, 76, 12, 43, 76, 88, 99, 100, 33]
    # ss.sort()  # 默认是升序
    # print(ss)
    # ss.sort(reverse=True)
    # print(ss)  # 改为降序
    # 9.统计列表中某个数据值出现的次数
    # print(l1.count(111))
    # 10.颠倒列表顺序
    # l1.reverse()
    # print(l1)

2.字典

1.类型转换
	dict()
	字典的转换一般不使用关键字 而是自己动手转
2.字典必须要掌握的操作
	user_dict = {
    'username': 'jason',
    'password': 123,
    'hobby': ['read', 'music', 'run']
    }
    # 1.按k取值(不推荐使用)
    # print(user_dict['username'])  # jason
    # print(user_dict['phone'])  # k不存在会直接报错
    # 2.按内置方法get取值(推荐使用)
    # print(user_dict.get('username'))  # jason
    # print(user_dict.get('age'))  # None
    # print(user_dict.get('username', '没有哟 嘿嘿嘿'))  # jason   键存在的情况下获取对应的值
    # print(user_dict.get('phone', '没有哟 嘿嘿嘿'))  # 键不存在默认返回None 可以通过第二个参数自定义
    # 3.修改值数据
    # print(id(user_dict))
    # user_dict['username'] = 'tony'  # 键存在则修改对应的值
    # print(id(user_dict))
    # print(user_dict)
    # 4.新增键值对
    # user_dict['age'] = 18  # 键不存在则新增键值对
    # print(user_dict)
    # 5.删除数据
    # del user_dict['username']
    # print(user_dict)
    # res = user_dict.pop('password')
    # print(user_dict)
    # print(res)  # 123
    # 6.统计字典中键值对的个数
    # print(len(user_dict))  # 3
    # 7.字典三剑客
    # print(user_dict.keys())  # 一次性获取字典所有的键 dict_keys(['username', 'password', 'hobby'])
    # print(user_dict.values())  # 一次性获取字典所有的值 dict_values(['jason', 123, ['read', 'music', 'run']])
    # print(user_dict.items())  # 一次性获取字典的键值对数据  dict_items([('username', 'jason'), ('password', 123), ('hobby', ['read', 'music', 'run'])])
    # for i in user_dict.items():
    #     k, v = i
    #     print(k, v)
    # 8.补充说明
    # print(dict.fromkeys(['name', 'pwd', 'hobby'], 123))  # 快速生成值相同的字典
    # res = dict.fromkeys(['name', 'pwd', 'hobby'], [])
    # print(res)  # {'name': [], 'pwd': [], 'hobby': []}
    # res['name'].append('jason')
    # res['pwd'].append(123)
    # res['hobby'].append('study')
    # print(res)
    '''当第二个公共值是可变类型的时候 一定要注意 通过任何一个键修改都会影响所有'''
    # res = user_dict.setdefault('username','tony')
    # print(user_dict, res)  # 键存在则不修改 结果是键对应的值
    # res = user_dict.setdefault('age',123)
    # print(user_dict, res)  # 存不存在则新增键值对 结果是新增的值
    user_dict.popitem()  # 弹出键值对 后进先出

3.集合

1.类型转换
	dict()
	字典的转换一般不使用关键字 而是自己动手转
2.字典必须要掌握的操作
	user_dict = {
    'username': 'jason',
    'password': 123,
    'hobby': ['read', 'music', 'run']
    }
    # 1.按k取值(不推荐使用)
    # print(user_dict['username'])  # jason
    # print(user_dict['phone'])  # k不存在会直接报错
    # 2.按内置方法get取值(推荐使用)
    # print(user_dict.get('username'))  # jason
    # print(user_dict.get('age'))  # None
    # print(user_dict.get('username', '没有哟 嘿嘿嘿'))  # jason   键存在的情况下获取对应的值
    # print(user_dict.get('phone', '没有哟 嘿嘿嘿'))  # 键不存在默认返回None 可以通过第二个参数自定义
    # 3.修改值数据
    # print(id(user_dict))
    # user_dict['username'] = 'tony'  # 键存在则修改对应的值
    # print(id(user_dict))
    # print(user_dict)
    # 4.新增键值对
    # user_dict['age'] = 18  # 键不存在则新增键值对
    # print(user_dict)
    # 5.删除数据
    # del user_dict['username']
    # print(user_dict)
    # res = user_dict.pop('password')
    # print(user_dict)
    # print(res)  # 123
    # 6.统计字典中键值对的个数
    # print(len(user_dict))  # 3
    # 7.字典三剑客
    # print(user_dict.keys())  # 一次性获取字典所有的键 dict_keys(['username', 'password', 'hobby'])
    # print(user_dict.values())  # 一次性获取字典所有的值 dict_values(['jason', 123, ['read', 'music', 'run']])
    # print(user_dict.items())  # 一次性获取字典的键值对数据  dict_items([('username', 'jason'), ('password', 123), ('hobby', ['read', 'music', 'run'])])
    # for i in user_dict.items():
    #     k, v = i
    #     print(k, v)
    # 8.补充说明
    # print(dict.fromkeys(['name', 'pwd', 'hobby'], 123))  # 快速生成值相同的字典
    # res = dict.fromkeys(['name', 'pwd', 'hobby'], [])
    # print(res)  # {'name': [], 'pwd': [], 'hobby': []}
    # res['name'].append('jason')
    # res['pwd'].append(123)
    # res['hobby'].append('study')
    # print(res)
    '''当第二个公共值是可变类型的时候 一定要注意 通过任何一个键修改都会影响所有'''
    # res = user_dict.setdefault('username','tony')
    # print(user_dict, res)  # 键存在则不修改 结果是键对应的值
    # res = user_dict.setdefault('age',123)
    # print(user_dict, res)  # 存不存在则新增键值对 结果是新增的值
    user_dict.popitem()  # 弹出键值对 后进先出

集合
1.类型转换
	set()
	集合内数据必须是不可变类型(整型 浮点型 字符串 元组)
 	集合内数据也是无序的 没有索引的概念
2.集合需要掌握的方法
	去重
 	关系运算
	ps:只有遇到上述两种需求的时候才应该考虑使用集合
3.去重
	 s1 = {11, 22, 11, 22, 22, 11, 222, 11, 22, 33, 22}
 	 l1 = [11, 22, 33, 22, 11, 22, 33, 22, 11, 22, 33, 22]
    s1 = set(l1)
    l1 = list(s1)
    print(l1)
 	'''集合的去重无法保留原先数据的排列顺序'''
4.关系运算
	群体之间做差异化校验
 	eg: 两个微信账户之间 有不同的好友 有相同的好友
 	 f1 = {'jason', 'tony', 'jerry', 'oscar'}  # 用户1的好友列表
    f2 = {'jack', 'jason', 'tom', 'tony'}  # 用户2的好友列表
    # 1.求两个人的共同好友
    # print(f1 & f2)  # {'jason', 'tony'}
    # 2.求用户1独有的好友
    # print(f1 - f2)  # {'jerry', 'oscar'}
    # 3.求两个人所有的好友
    # print(f1 | f2)  # {'jason', 'jack', 'tom', 'tony', 'oscar', 'jerry'}
    # 4.求两个人各自独有的好友
    # print(f1 ^ f2)  # {'oscar', 'tom', 'jack', 'jerry'}
    # 5.父集 子集
    print(f1 > f2)
    print(f1 < f2)

4.元组

1.类型转换
	tuple()
 	ps:支持for循环的数据类型都可以转成元组
2.元组必须掌握的方法
	 t1 = (11, 22, 33, 44, 55, 66)
    # 1.索引取值
    # 2.切片操作
    # 3.间隔、方向
    # 4.统计元组内数据值的个数
    # print(len(t1))  # 6
    # 5.统计元组内某个数据值出现的次数
    # print(t1.count(11))
    # 6.统计元组内指定数据值的索引值
    # print(t1.index(22))
    # 7.元组内如果只有一个数据值那么逗号不能少
    # 8.元组内索引绑定的内存地址不能被修改(注意区分 可变与不可变)
    # 9.元组不能新增或删除数据

5.分支结构和循环结构

while 条件:	
	条件成立之后执行的子代码(循环体代码)
1.先判断条件是否成立
2.如果成立则执行循环体代码
3.循环体代码执行完毕后再次回到条件判断处 判断条件是否成立
4.如果成立 则继续执行循环体代码
5.按照上述规律依次执行 直到条件不成立才会结束循环体代码的执行

# count = 1
# while count < 5:
#     print('hello world')
#     count += 1  # count = count + 1
# print('想不想干饭?')

break  # 强行结束循环体
	while循环体代码一旦执行到break会直接结束循环
continue  # 直接跳到条件判断处
	while循环体代码一旦执行到continue会结束本次循环 开始下一次循环
    
 
while 条件:
    循环体代码
else:
    循环体代码没有被强制结束的情况下 执行完毕就会执行else子代码


1.单if分支结构
	if 条件:
		条件成立之后才会执行的代码快
	ps:单if可以借助于流程图理解
 	 username = input('username>>>:')
	 if username == 'jason':
	     print('老师好')

2.if...else...分支结构
	if 条件:
     	条件成立之后执行的子代码
	else:
      	条件不成立执行的子代码
 	 username = input('username>>>:')
    if username == 'jason':
        print('老师好')
    else:
        print('去你妹的')

3.if...elif...else分支结构
	if 条件1:
       条件1成立之后执行的子代码
 	elif 条件2:
       条件1不成立 条件2成立执行的子代码
  	elif 条件3:
       条件1和2都不成立 条件3成立执行的子代码
   	else:
       上述条件都不成立 执行的子代码
 	ps:中间的elif可以写多个、上述子代码永远只会走一个
 	 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的嵌套使用(有点难)
	 age = 28
    height = 170
    weight = 110
    is_beautiful = True
    is_success = False
    username = 'tony'
    if username == 'tony':
        print('tony发现目标')
        if age < 30 and height > 160 and weight < 150 and is_beautiful:
            print('大妹纸 手机掏出来 让我加微信')
            if is_success:
                print('吃饭 看电影 天黑了...')
            else:
                print('去你妹的 流氓!!!')
        else:
            print('不好意思 认错人了')
    else:
        print('不是tony做不出来这件事')

6.垃圾回收机制

为了节省空间内存,减轻电脑压力,python有自带的垃圾回收机制自动管理

1 引用计数
	name='wuyong' 数据值wuyong身上的引用计数为1
	name1 = name,此时引用计数为2
	del name1 引用计数减1 为1 
当数据值引用计数为0时,会被垃圾回收机制当做垃圾回收掉,不为0就不会被回收掉

2 标记清除
	主要针对循环引用问题
  	lt1 = [11,22] #引用计数 1
    lt2 = [33,44] #引用计数 1
		lt1.append(lt2) #引用计数 2
    lt2.append(lt1) #引用计数 2
    del 1t1 #断开变量名lt1与列表的绑定关系 引用计数为2-1=1
    de2 1t2 #断开变量名lt1与列表的绑定关系 引用计数为2-1=1
	当内存占用到一定临界值时,程序会自动停止 然后扫描程序中的所有数据
  并只给产生循环引用的数据打上标记 之后一次性清除
3 分代回收
	垃圾回收机制的频繁运行也会损耗各项资源
  根据引用计数增长的频率,频率高的,检测频率越低。(每次检测间隔时间越长)

标签:总结,username,res,学习,dict,user,l1,print
From: https://www.cnblogs.com/yueq43/p/16757409.html

相关文章

  • ImageView 用法总结
    结构继承关系publicclassView.OnClickListnerextendsView java.lang.Objectandroid.view.Viewandroid.widget.ImageView 直接子类ImageButton,QuickContactBadge ......
  • Android中的JSON详细总结
    1、JSON(JavaScriptObjectNotation)定义:一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性。业内主流技术为其提供了完整的解决方案(有点类似于正则表达式,获得......
  • Linux笔记丨文件管理类常用命令学习笔记
    今天的笔记内容是:linux常用文件管理类基础命令file、cut、in、more、less、mktemp、mv、paste、split、read的学习笔记。Linux文件管理file命令识别文件的编码方式和......
  • 前端程序员学习 Golang gin 框架实战笔记之二分析 context
    上一节:前端程序员学习Golanggin框架实战笔记之一开始玩gin之前讲到了如何使用gin,这一节我们来分析和调试一下它的代码。New()第一行的gin.New(),其实还有一种......
  • C语言学习的第一篇博客
    今年40,一直从事医药行业的销售工作,现在越来越发现销售类的工作没有未来,反倒是觉得以前不屑一顾的公务员、事业单位和技术类的工作是不错的,因为这些工作重在积累,当然公务员及......
  • 并发学习记录17:tomcat线程池
    tomcat在哪里用到了线程池LimitLatch用来限流,可以控制最大连接个数acceptor负责接收新的socket连接poller负责监听socketchannel是否有可读的IO事件一旦有可读的IO......
  • 热血传奇输入帐号选择人物后黑屏的解决办法总结
    选择人物后黑屏不能进入游戏说明是游戏网关设置有误或者与您当前使用的登录器不配套。解决办法:一、客户端、引擎、登录器不配套相关问题1、完全卸载你当前传奇客户端,然后重......
  • 详解机器学习中的数据处理(二)——特征归一化
    摘要:在机器学习中,我们的数据集往往存在各种各样的问题,如果不对数据进行预处理,模型的训练和预测就难以进行。这一系列博文将介绍一下机器学习中的数据预处理问题,以\(\col......
  • 新概念第一册51~60单元学习笔记
    Chapterfifty-one:ApleasantclimateDialogueWheredoucomefrom?#相似句whereareyoufromIcomefromGreece#what'ssb/sthlike句式What'stheclimatelikein......