首页 > 其他分享 >本周总结

本周总结

时间:2022-10-06 20:44:40浏览次数:47  
标签:总结 循环体 s1 本周 l1 print 数据 代码

本周总结

数据类型

整型int

一.类型转换
int(其他数据类型)
二.进制转换
bin二进制
oct八进制
hex十六进制
其他转十进制可以直接int
三.python自身对数字敏感度低(精确度低),如果需要进行准确的计算需要借助模块numpy...

浮点型float

一.类型转换
float(其他数据类型)
字符串里面可以允许出现一个小数点 其他都必须是纯数字
二.python自身对数字敏感度低(精确度低),如果需要进行准确的计算需要借助模块numpy...

字符串str

s1 = 'hello world'
一.类型转换
str(其他类型数据)
ps:可以转任意数据类型(只需要在前后加引号即可)
二.必须掌握
1.索引取值s1[0]
2.切片操作:s1[1:5] # 第一个初始位置 第二个结束位置 顾头不顾尾
3.修改切片方向(间隔):[1:5:2] 不填默认是1
4.统计字符串中元素的个数:len(s1)
5.移除字符串首尾指定字符s1.stip(),括号里写什么移除什么,括号里什么不写 默认移除首尾的空格
6.只移除左边s1.lstrip 只移除右边s1.rstrip
7.切割字符串中指定的字符s1.split默认从左往右切
s1.split('|',maxsplit=1)指定切的个数 从右往左切s1.rsplit
8.字符串格式化.format:第一种用法等价于占位符,第二种用法索引取值并支持反复使用,第三种用法占位符见名知意并重复使用,第四种用法,可以在字符串前加f直接使用
三.需要了解
1.大小写相关s1.upper s1.lower
2.判断字符串中是否是纯数字s1.isdigit
3.替换字符串中指定的内容s1.replace(旧字符,新字符,指定个数)
4.字符串的拼接'拼接的符号's1.join([各种字符])
5.统计指定字符出现的次数s1.count('指定字符')
6.判断字符串的开头或结尾s1.startwith s1.endwith
7.其他:s1.title()每个英文字非常开头大写 s1.capitalize()字符第一个字母大写 s1.swapcase()大小写翻转 s1.index() s1.find找符号出现的次数 s1.index()找不到直接报错 s1.find()找不到默认返回-1

列表list

一.类型转换
list(其他数据类型)
能够被for循环的数据类型都可以转成列表
二.需要掌握的方法
l1 = [111, 222, 333, 444, 555, 666, 777, 888]
1.索引取值(正负数)
2.切片操作 与字符串一样
3.间隔数 方向 与字符串一样
4.统计列表中数据值的个数len(l1)
5.数据值修改 直接索引修改l1[索引] = 修改之后的值
6.添加数据值l1.append() 插入数据值l1.insert() 扩展列表l1.extend()
7.删除列表数据关键字del del.l1[索引] l1.remove(括号里填数据值) l1.pop(索引)不填默认尾部弹出数据值
8.排序l1.sort()默认升序 l1.sort(reverse = True)改为降序
9.统计列表中某个数据出现的次数l1.count(某个数据)
10.颠倒列表顺序l1.reverse()

布尔值bool

1.原来判断事物的对错 是否可行 只用于流程控制中

2.两种状态:True  False

3.python中所有数据都有布尔值

4.存储布尔值的变量名一般推荐使用is开头

元组tuple

t1 = (11, 22, 33, 44, 55, 66, 77, 88)

一.不可变类型

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

集合set

s1 = {11, 22, 11, 22, 22, 11, 222, 11, 22, 33, 22}

一.元组的基础
1.集合只能用于去重和关系运算

2.集合内数据只能是不可变类型

3.大括号括起来 内部存放多个数据 数据值与数据值之间用逗号隔开

4.空字典和空集合区别

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

字典dict

一.类型转换
dict()
字典的转换一般不使用关键字 而是自己手动转
二.字典必须要掌握的操作
user_dict = {
    'username': 'jason',
    'password': 123,
    'hobby': ['read','']
    
}
1.按k取值(不推荐使用)
user_dict['username'] # jason
2.按内置方法get取值(推荐使用)
user_dict.get('username') # jason
3.修改数据值
user_dict['username'] = 'tony'
4.新增键值对
user_dict['age'] = 18
5.删除数据
del user_dict['username']
user_dict.pop('password')
6.统计字典中键值对的个数
len(user_dict)
7.字典三剑客
user_dict.keys() # 一次性后去字典所有的键
user_dict.values() # 一次性获取字典所有的值
user_dict.items() # 一次性获取字典所有的键值对
8.补充说明
ditxt.fromkeys(['name'],'pwd','hobby',123)
res = dict.fromkeys(['name','pwd','hobby'],[])
print(res)
res['name'].append('jason')
res['pwd'].append(123)
res['hobby'].append('study')
print(res)
'''当第二个公共值是可变类型的时候一定要注意 通过任何一个键修改都会影响所有'''
res = user_dict.setdefault('username','tony') # 键存在则不 修改 结果是键对应的值
res = user_dict.setdefault('age',123) # 不存在则新增键值对 结果是新增的值
user_dict.popitem() # 随机弹出键值对 后进后出

可变类型和不可变类型

可变类型:值改变 内存地址不变
不可变类型:值改变 内存地址肯定变

与用户交互

1.input # 获取用户输入

python2中input需要用户提前指定数据类型。写什么类型就是什么类型

raw_input方法与python3中input一直 输入的统一处理成字符串

2.print # 输入内部信息

python2中print有两种使用方式

print 数据值		print(数据值)

- print自带换行符
- print可以切换结束符print(数据, end = ‘默认是\n’)

格式化输出

1.占位符:%s	%d

info = '%s同志你好'		

print(info % 'jason')

- 多个占位符

desc = '姓名:%s 年龄:%s 爱好:%s'

print(desc % ('jason',18,'read'))

注意:有几个占位符就需要几个数据值

- 不同占位符区别

%s常见占位符 任何数据类型都支持

%d只支持数字类型

运算符

基本运算符

1.数字运算符

+加	-减	*乘	/除	%余数	//除后取整数向下取整	**幂次方

2.比较运算符

<小于	>大于	<=小于等于	>=大于等于	==等于	!=不等于

常用赋值符

1.链式赋值

​	name = 'jason'

​	name1 = name

​	name2 = name

​	name = name1 = name2 = 'jason'

2.交叉赋值

m = 100	n = 999

- 奇葩式写法

m = n

n = m

print(m,n) # 999,999

- 采用中间变量

t = m

m = n

n = t

print(m,n) # 999,100

- 交叉赋值法

m,n = n,m

print(m,n) # 999,100

3.解压赋值

name_list = ['jason' , 'kevin' , 'tony' , 'oscar']

name1,name2,name3,name4 = name_list # 变量名少了不行,有几个值需要几个变量名

a,*b = name_list #  *会接收多余的数据 组织成列表赋值给后边的变量名

当数据值不准备使用时 可以使用下划线作为变量名绑定

a,*_,c = name_list 

逻辑运算符

'''主要配合条件一起使用'''
and		与
	and连接的多个条件必须全部成立 结果才成立
    print(1 < 10 and 666) # 666	成立
    print(1 < 10 and 2 < 8) # True	成立
    print(111 and 222) # 222 成立
    如果and左边的条件是成立的 那么结果就是该数据值 如果是含有表达式 则为布尔值
    
or		或
	or连接多个条件只要有一个成立 结果就成立
    如果条件中全部由or组成那么判断起来非常简单 只要发现一个成立 结果就成立
    
not		非
	取反
    类似于说反话
'''
三者混合使用的时候有优先级之分 但是我们不需要记忆优先级 应该通过代码的形式提前规定好优先级
'''

身份运算符

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

不同环境下可能优化的程度不一样
"""
了解
	值相同	内存地址可能不同
	内存地址相同	值肯定相同
"""

垃圾回收机制

1.引用计数
数据值每被变量名指向一次引用计数加一
当数据值身上的引用计数为0时 就会被垃圾回收机制当成垃圾回收掉
当数据身上的引用计数不为0时 不会被垃圾回收机制回收
2.标记清除
主要针对循环引用问题
当内存占用达到临界值的时候 程序会自动停止 然后扫描程序中所有的数据
并给指产生循环引用的数据打上标记 之后一次性清除
3.分代回收

流程控制理论

1.python中使用代码的缩进来表示代码的从属关系
2.并不是所有的代码都可以拥有缩进的代码(子代码)
3.如果多行子代码属于同一个父代码 那么这些子代码需要保证相同的缩进量
4.python中针对缩进量没有具体的要求 但是推荐使用四个空格(windows中用tab键)
5.当一行代码需要编写子代码时 那么这一行代码的结尾肯定需要冒号
6.相同缩进量的代码之间平起平坐 按照顺序结构依次执行

分支结构

1.单if分支结构
    if 条件:
        条件成立之后才会执行的代码块
2.if...else...分支结构
	if 条件:
    	条件成立之后执行的子代码
    else:
    	条件不成立执行的子代码
3.if...elif...else分支结构
	if 条件1:
    	条件1成立后执行的子代码
    elif 条件2:
    	条件2成立后执行的子代码
    elif 条件3:
    	条件1和2都不成立 条件3成立之后执行的子代码
    elif 条件4:
    	上述条件都不成立执行的子代码
4.if的嵌套使用
	也就是if里套if

循环结构之while循环

就是让一些代码反复的执行
while 条件:
	条件成立之后执行的子代码(循环体代码)
1.先判断条件是否成立
2.如果成立则执行循环体代码
3.循环体代码执行完毕之后再次回到条件判断处 判断条件是否成立
4.如果成立 则继续执行循环体代码
5.按照上述规律依次执行 直到条件不成立才会结束循环体代码的执行
break # 强行结束循环体
	while循环体代码一旦执行到break会直接结束循环
continue # 直接跳到条件判断处
	while循环体代码一旦执行到continue会结束本次循环 开始下一次循环
    
while 条件:
	循环体代码
else:
	循环体代码没有被强制结束的情况下 执行完毕会执行else子代码
while循环补充说明
1.死循环
2.嵌套及全局标志位
	强调:一个break只能结束它所在的那一层循环
    有几个while的嵌套 想一次性结束 就应该写几个break
    如果不想反复写break 可以使用全局标志位

循环结构之for循环

for循环能做到的事情while循环都可以做到 只不过for循环在一些场景下使用更加简单
主要使用场景:循环获取存储多个数据的数据内部数据值
for循环语法结构
	for 变量名 in 待遍历的数据:
    	for循环体代码

for循环特点
	1.擅长遍历取值
    2.不需要结束条件 自动结束(遍历完)
    
for循环主要遍历的数据类型有(常见有字符串 列表 元组 字典 集合)
字典只有键参与遍历 字符串全部元素参与遍历

for循环语法结构中的变量名如何命名
	1.见名知意
    2.如果遍历出来的数据没有具体的含义 可以使用常用的i, j, k, item, v

for循环体代码中如果执行到break也会直接结束整个for循环
for循环体代码中如果执行到continue也会结束当前循环直接开始下一次循环

for 变量名 in 待遍历的数据:
	for循环体代码
else:
	for循环体代码没有被break强制结束的情况下运行完毕之后运行

range方法

range可以简单的理解为是帮我们产生一个内部含有多个数字的数据
for i in range(1, 20, 2): # 第一个为起始位置 第二个为结束位置 第三个数为等差值默认不写为1
    print(i)
"""
在python2中
	range()
		直接产生一个列表 内部含有多个数据
	xrange()
		其实就是python3中的range
在python3中
	range()
		类似一个工厂 不会占用太多的内存空间 要就生产
"""

range实战案例

网络爬虫
	使用代码爬取网络上我们需要的数据
项目需求
	爬取所有页面的数据(博客园)
找寻规律
'''
分页的规律 不同的网址有所区别
	1.在网址里面有规律
	2.内部js文件动态加载
'''

字符编码理论

编码:将人类的语言按照指定的编码 编码成计算机能够读懂的数据
字符串.encode()
解码:将计算机能够读懂的数据按照指定的编码解码成人能够读懂
bytes类型数据.decode()
python2默认编码是ASCII
python3默认编码是utf系列

标签:总结,循环体,s1,本周,l1,print,数据,代码
From: https://www.cnblogs.com/zpf1107/p/16758440.html

相关文章

  • 「牛客网」45道JS能力测评经典题总结
    前言牛客网的45道JS能力评测题个人觉得是非常好的45道js基础检测题,基本就是对自己的JavaScript基础做一个比较全面的评估,包括if语句、循环体、基础操作符、setInterval、s......
  • C语言下for循环的一点技巧总结
    for循环是普遍应用与各种计算机语言的一种循环方式。一般情况下,for循环规则:for(条件一;条件二;条件三)条件一为满足条件,也就是条件一为1时,进入这个for循环。条件二为循环......
  • 第二组chap1-2学习总结
      在两周C语言的学习课程中,让我们从认识C语言历史到开始动手打代码,从最初对C语言的懵懵懂懂到小有成就,我们对C语言的认识和运用也越来越深。充实着我们的不仅仅是学习......
  • 2022.9.30 Java第四次课后总结
    1.publicclassBoxAndUnbox{ /** *@paramargs */ publicstaticvoidmain(String[]args){ intvalue=100; Integerobj=value;//装箱 intresult=obj*2;......
  • 每周总结——week02(流程控制篇)
    每周总结——week02(流程控制篇)1、流程控制理论什么是流程控制对程序执行的顺序进行控制总共有三种:1、顺序结构 按程序语句的自然顺序,自上到下,依次执行每条语句的程......
  • 每周总结——week02(运算符篇)
    每周总结——运算符篇1、基本运算符数学运算符:'''+-*///%**简化写法如下:'''m=7m+=2m-=2m*=2m/=2m//=2m%=2m**=2比较运算符:'''<......
  • 第二周总结汇总
    https://www.cnblogs.com/HaiMan/p/16758084.html 基本数据类型篇https://www.cnblogs.com/HaiMan/p/16758086.html 流程控制篇https://www.cnblogs.com/HaiMan/p/1675......
  • 每周总结——week02 (基本数据类型及其内置方法篇)
    每周总结——week02基本数据类型及其内置方法篇1、基本数据类型之整型(int)概述:整型(int): 整型就是指各种整数,整型属于不可变数据类型,语法结构: 变量名=整数数值eg: a......
  • Java课堂学习总结
    对于Java字段的初始化来说,共有以下几种方法:1.类的构造函数(构造方法):当创建一个对象时,其构造函数就会自动调用。构造方法必须与类名相同,无返回值。如果程序员没有定义一......
  • vue3中pinia的使用总结
      pinia的简介和优势:Pinia是Vue生态里Vuex的代替者,一个全新Vue的状态管理库。在Vue3成为正式版以后,尤雨溪强势推荐的项目就是Pinia。那先来看看Pinia比Vuex好的地方,也......