第三周知识梳理

Day01知识梳理

  • 文本编辑器使用
  • 编程语言的发展史
  • 编程语言的分类
  • Python解释器
  • Python应用领域
  • 配置环境变量
  • 运行第一个Python程序
  • 语法注释
  • 变量的使用

内容详细

前戏

1.什么是编程语言
	人类与计算机沟通的桥梁
2.什么是编程
	程序员用计算机能够理解的语言把自己的逻辑和想法写下来的过程

编程语言发展史

1.机器语言
	计算机刚发明出来时,程序员与计算机沟通的语言即直接使用二进制与计算机交流
    优点:执行效率高
    缺点:难以被人们理解,非常的复杂
2.汇编语言
	用简单的英文单词表示一串二进制数字
    优点:降低了记忆难度,提高了开发效率
    缺点:还是很难理解,开发效率低
3.高级语言
	用人类能够理解的字符与计算机沟通
    优点:极大的降低了难度,大幅度提高开发效率
    缺点:计算机无法直接识别需要翻译,所以执行效率会降低

编程语言的分类

1.编译型
	c++
    优点:可以一次性全部翻译出来,可以重复使用翻译结果
    缺点:如果中间有错误,需要从头开始翻译
2.解释型
	Python
    优点:如果中间有错误不需要重新翻译,不影响翻译速度
    缺点:一句一句翻译,执行效率不高

Python解释器

1.python分为两个主流版本
	python2.x 2020年不再更新维护 最高版本为2.7
    python3.x 一直在持续更新 最高版本为3.9 但一般使用3.6
    python3.6目前最为稳定
2.下载解释器
	到python官网下载
3.使用解释器
	把python添加到环境变量中

python多版本共存

1.将不同的版本路径添加到path中
2.拷贝并重命名python
3.关闭当前cmd窗口重新打开即可切换不同版本

python应用领域

python最早兴起于linux运维
应用领域
1.人工智能
2.网络爬虫
3.数据分析
4.web开发
5.金融量化
6.erp系统
7.自动化运维、测试
目前没有一个编程语言像python一样多点开花

运行第一个python程序

1.在解释器内部运行
	print('hello world!')打印hello world!
2.使用解释器执行文件    	

编程软件

1.vs code
	优点:轻便
    缺点:对小白不是很友好
2.pycharm
	优点:对小白友好 缺点'收费'
	下载:百度搜pycharm进入官网download    
    如何破解:1.下载插件ide eval reset(推荐)
    		2.激活码破解(不太稳定)
# 针对最新版的pycharm破解成功率较低 最容易破解的是2018.1版本        

Day02知识梳理

  • python破解操作
  • python语法注释
  • 变量与常量
  • python基本数据类型

内容详细

pycharm破解操作

1.插件反复使用
	点击help选择eval reset
2.点击help选择about查看激活有效期

pycharm基本操作

1.设置相关
	编程背景file>settings>appearance>选择Theme(推荐使用黑色)
2.字体缩放
	file>settings>editor>general>change font size...
# 上述所有操作都要进行保存 apply ok
3.创建文件
	右键点击project选择new
    点击python file
4.运行文件
	悬浮在文本内容区域 右键点击run

python语法注释

注释:对一段代码的解释说明,不参与执行,为了方便给人理解的
"""
书写规范
	如果是单行注释并且写代码的上方 注释和井号之间空一格
	如果是单行注释并且写在代码的后方 那么井号和代码之间空两格 内容与井号之间空一格
"""
快捷方式
	code
    	reformat code 规范书写格式
1.单行注释
	# 注释内容
2.多行注释
	三引号
    '''内容'''
    """内容"""
ps:pycharm中快速注释和解注释使用CTRL+?
# 写代码一定要养成写注释的习惯

变量

变量:即变化的量
语法结构
	变量名 赋值符号 变化的量
内部本质
	1.先看赋值符号的右边
    	在内存空间中申请一块内存空间将数据储存起来
    2.给这个内存空间绑定一个变量名
    	该变量名就是访问该内存空间的坐标地址       

变量名的命名规范

1.变量名只能由数字下划线和字母组成
2.数字不能开头,下划线也尽量不要
3.变量名一定要做到见名知意
4.变量名不要和关键字冲突

变量名的命名风格

1.下划线式
	user_name_stu
2.驼峰式
	大驼峰
    	所有单词首字母大写其他小写
    小驼峰
    	所有单词首字母小写其他大写

常量

常量即不变的量
在python中没有真正意义的常量,一般把全大写的变量名看成是常量
在其他编程语言中存在真正意义的常量

数据类型

事物的状态千变万化对应的变量值也有很多种类型
查看数据类型
type()
1.int整型
	整数
2.float浮点型
	小数
3.str字符型
	文本描述

Day03知识梳理

  • python基本数据类型
  • 与用户交互
  • 基本运算符
  • 流程控制

内容详细

python基本数据类型

# list 列表
"""
[]中括号括起来 内部可以存放多个数据
元素与元素之间逗号隔开 元素可以是任意数据
"""
# 索引取值 在IT领域中一般从0开始
	先明确列表中有几个元素
    再明确要的数据在哪个元素里面
# dict 字典
"""
{}大括号括起来 内部可以存放多个数据
	元素的形式是K:V键值对形式 中间用逗号隔开
	K 一般是对V的描述性数据
	V 任意的数据类型
"""
# 布尔值 bool
	True
    False
    用来表示对错的逻辑判断
 	一般情况下存储布尔值的变量名用is开头
# 元祖 tuple
"""
()小括号括起来 内部可以存放多个元素 用逗号隔开
元素可以是任意类型 元祖内部不支持修改而列表可以修改
"""
小练习
	t1 = (11,22,[33,44])
    t1[2][0] = 666
    print(t1)
    A.报错
    B.(11,22,[666,44])
    C.未知
    正确答案 : B
# 集合set
"""
[]大括号括起来 可以存放多个数据 用逗号隔开
不是K:V形式 集合内部不能是任意形式 大部分是数字和字符串形式
	功能
		去重
		关系运算
"""

与用户交互

1.输入
	input()
    # 获取用户输入
2.输出
	print()
	# 打印值

格式化输出

# 默认的文本格式
info = "亲爱的%s你好 你%s月的花费是%s,余额是%s"
	# 占位符:提前占位给对应的数据 %s
    print(info % ('jack',7,10,10))
    # 文本中有几个%s就要有几个真实的数据
res = """
------------info of %s-------------
Name :%s
Age :%s
Gender :%s
Job : %s
-------------end-------------------
"""    
	username = input("请输入您的用户名>>>:")
    age = input('请输入您的年龄>>>:')
    gender = input('请输入您的性别>>>:')
    job = input('请输入您的工作岗位>>>:')
    print(res % (username, username, age, gender, job))
    
# 占位符:%s 只能给数字占位
# res = 'my name is %s my age is %d'
# print(res%*('jason',18))

基本运算符

# 算术运算符
**次方 //整除
# 比较运算符
	><
# 增量赋值
	x +=1
# 交叉赋值
	m,n=n,m
# 链式赋值
	x=y=z=1
# 解压赋值
	stu_name = ['jason','kevin','tony']		
    # name1 = stu_name[0]
    # name2 = stu_name[1]
    # name3 = stu_name[2]
     """也可以利用*号打破位数限制"""
l1 = [11,2,2,3,4,5,6,7,8,67,5,4,5,7,5,3,5,4]
a,b,*_,d = l1
print(a,b,d,_)

Day04知识梳理

  • 逻辑运算符
  • 成员运算符
  • 身份运算符
  • 流程控制
  • 数据类型的内置方法

内容详细

逻辑运算符

and 与
	链接多个条件都成立
or 或
	链接多个条件其中一个成立
not 非
	对条件取反
"""
上述三个关键字混合使用存在优先级 但是不需要考虑需要加括号来强制限制优先级关系
"""    

成员运算符

判断某个个体在不在群体内
in
print(xxx in yyy)

身份运算符

"""
如何查看变量值的内存地址
	id() 返回一串数字 可以用来表示内存地址
"""
# 判断两个变量的值是否相等 =
# 判断两个变量值的内存地址是否相等 is

流程控制

流程分为三个机构
	1.顺序结构
    	从上往下依此执行
    2.分支结构
    	根据不同的条件执行不同的流程
    3.循环结构
    	根据条件循环往复的执行流程

分支结构

语法结构
	1.if:
        xxx
      else:
        xxx
	2.if:
        xxx
	  elif:
        xxx
      else:
        xxx        

循环结构

# 语法结构
 	while 条件:
        条件成立执行循环体
	1.先判断条件是否成立 成立
    2.执行while循环体 再判断是否成立
    3.如果还成立再继续执行循环体 再继续判断是否成立
    4.重复执行2,3步骤 直到不成立
小练习
	利用while循环打印1-10 排除7
    count = 1
    while count < 11:
        if count == 7:
            count += 1
            continue
		print(count)
        count +=1
	# 利用while循环打印1-10 但是到7之后直接结束循环
count = 1

while count < 11:
     # 判断count是否等于7 如果等于则结束循环
     if count == 7:
         # 结束本层循环
         break
     print(count)
     count += 1              

Day05知识梳理

  • 循环结构之for循环
  • 数据类型的内置方法
  • 字符编码
  • 文件操作

内容详细

循环结构之for循环

"""
for循环能够实现的while都能实现
但for循环语法更加简单快捷
"""
name_list = ['jason','tony','kevin','jerry']
# 循环打印列表中的每一个元素
# while 循环
	count = 0
    while count < 4:
        print('>>>:',name_list[count])
        count +=1
# for循环
	"""
	for循环擅长应用在循环取值方面
	for 变量名 in 可迭代对象
		for循环体代码
	for循环不需要添加结束条件 会自动结束
	"""
    for name in name_list:
        print('>>>',name)
'''for循环字符串会将字符串中的每个字符依此赋值给变量名i'''
'''for循环字典只会取出字典的key value无法获取'''

range用法

for i in range(0,101):
for i in range(5):
 # 一个参数表示 从0开始 顾头不顾尾
for i in range(5,10):
    # 两个参数表示 第一个是起始位 同样是顾头不顾尾
for i in range(0,250,25):
    # 三个参数 表示最后一个是间隔 

数据类型内置方法

补充

"""
查看数据类型拥有的方法 句点符
pycharm会自动列出所有的方法
"""

int整型

# 整形int
int()

# 将十进制转换成二进制
print(bin(100))  # 0b1100100
# 将十进制转换成八进制
print(oct(100))  # 0o144
# 将十进制转换成十六进制
print(hex(100))  # 0x64
# 浮点型float
	float()
# 字符串str
str可以将任意数据类型转成字符型

res = 'hello world'
1.统计字符个数
print(len(res))  # 11
2.索引取值
print(res[0])  # h
3.切片取值
print(res[1:5])  # ello  顾头不顾尾
4.步长(间隔)  2表示间隔一个取一个 不写默认是1没有间隔
print(res[1:8:2])  # el o
5.移除字符串首尾指定的字符
name = '$$jason$$'
print(name.strip('$'))  
print(name.lstrip('$'))  
print(name.rstrip('$'))  
name1 = '  jason  '
print(len(name1)) 
print(len(name1.strip()))  
username = input('username>>>:').strip()
if username == 'jason':
    print('登录成功')
else:
    print('登录失败')
6.按照指定的字符切割数据
data = 'jason|123|teacher|read'
print(data.split('|'))  
print(data.split('|', maxsplit=1))  
print(data.rsplit('|', maxsplit=1))  
7.大小写转换
res = 'Yu0My'
print(res.upper()) 
print(res.lower())  
"""图片验证码之所以不需要校验大小写 内部就是统一转大小写再比对"""
print(res.isupper())  
print(res.islower())  
8.判断字符串是否是纯数字
print('123'.isdigit()) 
print('jason123'.isdigit())  
9.统计字符出现的次数
res = 'my name is jason jason jason jason jason'
print(res.count('jason'))  # 5
10.替换指定的字符
res = 'my name is jason jason jason jason jason'
print(res.replace('jason', 'tony'))  
print(res.replace('jason', 'kevin', 2))  
11.按照指定的字符拼接字符串
l = ['jason','123','read']
print('|'.join(l))  
name1 = 'jason'
pwd1 = '123'
hobby1 = 'study'
print(name1 + '|' + pwd1 + '|' + hobby1)  

列表list

l1 = [11, 22, 33, 44, 55, 66]
# 1.统计长度(元素的个数)
# print(len(l1))  # 6
# 2.索引取值
# print(l1[0])  # 11
# 3.切片操作
# print(l1[0:4])  # [11, 22, 33, 44]  顾头不顾尾
# 4.步长
# print(l1[0:4:2])  # [11, 33]  顾头不顾尾
# 5.添加元素
# 5.1尾部追加元素
# l1.append('jason')
# print(l1)  # [11, 22, 33, 44, 55, 66, 'jason']
# l1.append([111, 222, 333])  # 无论添加的元素是什么都只会当成列表的一个元素
# print(l1)  # [11, 22, 33, 44, 55, 66, 'jason', [111, 222, 333]]
# 5.2指定位置插入元素
# l1.insert(0, 'jason')
# print(l1)  # ['jason', 11, 22, 33, 44, 55, 66]
# l1.insert(2, [111, 222])  # 无论添加的元素是什么都只会当成列表的一个元素
# print(l1)  # ['jason', 11, [111, 222], 22, 33, 44, 55, 66]
# 5.3扩展列表
# l1.extend([111, 222, 333, 444])
# print(l1)
"""
如果不让你使用extend也完成扩展列表的操作  如何实现?
for i in [111,222,333,444]:
    l1.append(i)
"""
# 6.删除元素
# 6.1通用的删除操作
# del l1[0]
# print(l1)  # [22, 33, 44, 55, 66]
# 6.2弹出元素
# res = l1.pop(1)
# print(l1, res)  # [11, 33, 44, 55, 66]  22
# 6.3删除元素
# res = l1.remove(22)
# print(l1, res)  # [11, 33, 44, 55, 66]  None
# 7.统计元素出现的次数
# l2 = [11, 222, 33, 22, 33, 11, 11, 11, 22, 22, 33, 44, 44]
# print(l2.count(11))  # 4
# 8.排序
l3 = [55, 44, 22, 33, 11, 99, 77, 88]
l3.sort()  # 默认是升序
print(l3)  # [11, 22, 33, 44, 55, 77, 88, 99]
l3.sort(reverse=True)  # 倒序
print(l3)  # [99, 88, 77, 55, 44, 33, 22, 11]

字典dict

# 字典dict
字典内元素也是无序的
user_dict = {'username': 'jason', 'pwd': 123, 'hobby': 'read'}
1.统计长度(键值对的个数)
print(len(user_dict))  # 3
2.按键取值
print(user_dict['username'])  # jason
print(user_dict['xxx'])  # 键不存在会直接报错
print(user_dict.get('username'))  # jason
print(user_dict.get('xxx'))  # None  键不存在不会报错返回None
3.设置值(重点)
user_dict['username'] = 'jasonNB'
'''键存在则修改'''
print(user_dict)  # {'username': 'jasonNB', 'pwd': 123, 'hobby': 'read'}
user_dict['age'] = 18
'''键不存在则新建'''
print(user_dict)  # {'username': 'jasonNB', 'pwd': 123, 'hobby': 'read', 'age': 18}
4.删除值(字典的键值对是一个整体)
res = user_dict.pop('username')
print(user_dict, res)  # {'pwd': 123, 'hobby': 'read'}  jason
5.三个小方法
print(user_dict.keys())  # ['username', 'pwd', 'hobby']
print(user_dict.values())  # ['jason', 123, 'read']
print(user_dict.items())  # [('username', 'jason'), ('pwd', 123), ('hobby', 'read')]

集合set

集合内元素是无序的
	1.去重
    	集合内不允许出现重复的元素 会自动去重
    2.关系运算
		交叉并集
        	eg:共同好友 共同关注 共同点赞
  
f1 = {'jason', 'tony', 'kevin', 'jack'}
f2 = {'jason', 'tom', 'jerry', 'tony'}
# 1.求两个人共同好友
	print(f1 & f2)  # {'tony', 'jason'}
# 2.求f1独有的好友
	print(f1 - f2)  # {'jack', 'kevin'}
# 3.求f2独有的好友
	print(f2 - f1)  # {'tom', 'jerry'}
# 4.求两个人所有的好友
	print(f1 | f2)  # {'jason', 'jerry', 'tony', 'jack', 'tom', 'kevin'}
# 5.求两个人各自的好友
	print(f1 ^ f2)  # {'kevin', 'jack', 'tom', 'jerry'}
# 6.父集 子集
	print(f1 > f2)
	print(f1 < f2)
posted @ 2021-08-15 17:20  lovewx35  阅读(68)  评论(0)    收藏  举报