周末总结2
计算机的本质
计算机也称电脑,也称通电的电脑,计算机的工作离不开电,电信号只有高低电平两种状态(0和1),所有计算机只认识0和1,一般用进制数(二进制)来表示,常用的进制数有二进制、八进制、十进制和十六进制
计算的五大组成部分
控制器:控制各个计算机硬件设备的工作,类似人的大脑
运算器:进行数学运算、逻辑运算,类似人的大脑
存储器:进行计算机记忆的存储,分为长期记忆(硬盘)和短期记忆(内存)
输入设备:接收外界的信息,比如键盘、鼠标、触摸屏
输出设备:给外界传递信息,比如显示屏、音响、磁盘、磁带
文件路径:绝对路径和相对路径
计算的三大核心硬件
CPU:CPU作为计算机系统的运算和控制中心,是信息处理、程序运算的最终执行单元,计算机要运行,就必须有cpu的参与,
控制器+运算器=CPU
内存:存取速度快,主要和CPU配合使用,但是断电数据立刻丢失
硬盘:存取速度慢,但是可以长久存储数据
操作系统
操作系统:控制、协调、管理计算机各个硬件的工作
PC端常见的操作系统:windows、macOS、Linux
移动端常见操作系统:安卓、ios、鸿蒙
编程
编程语言
编程语言就是人与计算机之间的交流沟通的媒介
编程
编程就是把自己的逻辑逻辑和想法用计算机能够懂的语言写出来的过程,编程的语言就是产生一堆的文件
编程的历史
机器语言
用二进制与计算机交流
优点:计算机能够直接读懂,执行效率高
缺点:学习难度大,开发效率低,门槛高
汇编语言
用一些英文字母来表示一串二进制数
优点:学习难度有所降低,但开发效率有所提高,
缺点:门槛还是太高
高级语言
人类能够读懂的字符和计算机交流
优点:学习难度有所降低,开发效率高,门槛低
缺点:执行速度没有机器语言和汇编语言快
常见的高级语言:C C++ pyhton Java Golang PHP
编程语言
编译器语言:C 、 C++、Objective-C、Swift、Kotlin
优势:翻译一次可以反复使用翻译的结果,类似谷歌翻译
劣势:当程序中频繁出翔BUG,那么就需要反复去编译
解释器语言
说一句翻一句,类似同声传译
优势:有BUG和没BUG执行效率几乎一样
劣势:速度没有编译性语言快
python解释器
python1.x 几乎不用
python2.x python2.7 2020之后就不再更新了,
python3.x python3.6 python3.8 python3.10+
markdawn语法
标题
大标题:
#+空格键+文字 (几个#代表几级标题)
ctrl+数字(1-6) 字母代表级数 如果是零就代表文本
小标题:
*+空格+文本 无序标题
++空格+文本 无序标题
数字+文本 有序标题
语言环境
三个```+环境名称
表格
|字段名|字段名|字段名|+回车
ctrl+T是python的快速生产表格的快捷键
查看源码
ctrl + ?
表情
:+表情英文单词
图片展示
将图片插入图床
将图片转为pdf
其他的方式
变量与常量
变量的基本使用
变量:记录变化的事物状态
变量的命名规则
1.变量名由数字、字母、下划线组成
2.变量名不能以数字开头
3.变量名不能与关键字冲突
4.变量可以中文,但不建议
5.变量可以是拼音,但不推荐
6.变量名要见名知意
变量名的命名风格
下划线 name_from_info
驼峰式命名法
大驼峰 NameFromInfo
小驼峰 nameFromInfo
常量的基本使用
常量:记录固定(可能不经常改变)的事物状态,一般圆周率、重力加速度
数据类型
整型Int:通俗就是整数
int()
浮点型和字符串可以转整型,但字符串必须是纯数字
浮点型Float:通俗就是小数
float()
整型和字符的可以转,但是字符串必须是纯数字
字符串String:在编程语言,字符串就是文本的数据类型
Str()
l1='helio world'
任何数据类型都能转字符串
列表List
list()
l1 =[11, 22, 33, 44, 55, 66]
字典Dict
dict()
dict1 = {'name':'jason',
'age':16}
字典是无序的,一般是以键值对(k:v)的形式存在,k是键,对应的是v值,k是不可变类型,但v可以是任意类型,一般是按k取值,因为字典是无序的
布尔常量bool
常用来判断事物的对错,是否可行,只用于流程控制
True 对的
False 错误的
元组Turple
turple()
turple1 = (11, 22, 33, 44, 55, 66, 77, 88, 99, 98)
元组是不可变列表,元组内索引绑定的内存地址不能修改
元组内只有一个数据值时,一定要加上逗号,否则输出的是其他类型的数据类型
集合Set
set() 空集合一定要是set() ,不然系统默认是字典{}
set1 = {11, 33, 44, 55, 77, 88}
与用户交互
input :获取用户的类型
在python2中,input要写清楚数据类型,raw_input和python3一样,输出的统一是字符串
运算符
基本运算符
算数运算符 = 、+=、 -= 、 *= 、 /= 、 %=、 **=、 //=
逻辑运算符 ==、!=、>、<、>=、<=
常用运算符 链式赋值、交叉赋值、解压赋值
注意:字符串、列表、字典、元组、集合都支持解压赋值
逻辑运算符
and 左右都为真则为真
or 只要有一个真就真
not 非
成员运算符
name_list = ['jason', 'kevin', 'oscar', 'jerry']
print('kiki' in name_list) # False
列表最小单位是数据值,字符串最小单位是单个单个字符,字典只有键参与
身份运算符
is 判断的是内存地址是否相等
== 判断的是数据值是非相等
id() 返回的是内存地址
控制流程图
控制流程图分别为顺序结构、分支结构、循环结构
顺序结构就是一步一步往下执行的代码,之前学都都是顺序结构
分支结构有:
if结构
if 条件 :
满足条件执行得子代码(循环体)
if...else结构
if 条件 :
条件满足执行得代码
else:
条件不满足执行的代码
if...elif...else 结构
if 条件1:
条件1满足执行的代码
elif 条件2:
条件1不满足,条件2满足执行的代码
elif 条件3:
条件1和2都不满足,条件3执行的代码
....
else:
上述条件都不满足执行的代码
循环结构有for结构和while结构
while循环
while 条件:
循环体
代码1
代码2
代码3
# 满足条件,依次执行代码1、代码2、代码3....
当循环遇break,则结束break所在的循环体
当循环遇continue,则跳过本次循环,执行下一次循环
while 条件:
循环体代码
else:
当循环没有被break提前终止,循环体结束后执行else子代码
死循环、嵌套和全局观
for 循环
for 变量名 in 可迭代的对象(字符串、字典、列表、集合、元组):
print()
当循环遇break,则结束break所在的循环体
当循环遇continue,则跳过本次循环,执行下一次循环
for 变量名 in 可迭代的对象:
print()
else:
当循环没有被break提前终止,循环体结束后执行的代码
注意:字符串遍历出来是单个字符,字典遍历出来是键
数据类型内置方法
整型的内置方法
int(其他数据类型)
浮点型和字符串可以转整型,但字符串必须是纯数字
进制数的转换
十进制转其他进制
print(bin(100)) 0b开头为二进制
print(oct(100)) 0c开头为八进制
print(hex(100)) 0x开头为十六进制
其他进制数转为十进制
int(二进制,八进制,十六进制数),如果进制数以字符串的形式转的,一定要表明是哪一个进制数,如下
print('二进制',2)
print('八进制',8)
print('十六进制',16)
浮点型内置方法
float(其他数据类型)
字符串里面可以允许出现小数点,其他都必须是纯数字
字符串的内置方法
str(其他数据类型),可以转任何数据类型
内置方法
1.索引取值
l1[]
2,切片
l1[:]
l1[::-1] 默认不写为1,正向取值,-1为反方向
3.切片方向,间隔
l1[::-1] 默认不写为1,正向取值,-1为反方向
l1[::2] 2代表等差值
4.统计字符串的字符个数
len(l1)
5.统计字符串中字符出现的次数
l1.count('要统计的字符')
6.字符串的拼接
L1+L2
print('|'.join(['kiki','mimi', '1234', 'happy'])) # kiki|mimi|1234|happy 拼接只能是字符串
7.字符串的格式化输出
l1.format
字符串常用的内置方法
1.删除首尾的空字符
l1.strip() 移除首尾的空字符
l1.strip('$') 移除首尾的$字符
l1.lstrip() 移除左边的空字符
l1.rstrip() 移除右边的空字符
2.字符的切割
l1.split('|') 进行数据的拆分
l1.split('|',maxsplit=1) 1就是拆分的个数 从左到右切割
l1.rsplit('|',maxsplit=1) 1就是拆分的个数 从右到左切割
3.查看首尾的部分
l1.startswith('字符')
l1.endswith('字符')
4.大小写相关
l1.upper() 纯大写
l1.lower() 纯小写
l1.isupper() 是否纯大写
l1.islower() 是否纯小写
5.判断是否纯数字
l1.isdigit()
6.其他方法补充
l1.title() 首字母大写
l1.capitalize() 只有第一个单词的首字母大写
l1.swapcase() 大小写互换
l1.index()
l1.find()
列表的内置方法
1.索引取值
2.切片
3.切片方向、间隔
4.统计字符的个数
5.统计某个字符出现的次数
6.修改数据
索引取值修改数据 l1[1]= 888
l1.repace(a,b,1) a要被替换的数据 b替换的新数据 1代表替换的个数
7.增加数据
l1.append() 尾部添加
l1.insert(1,22) 任意位置添加 1是索引值
l1.extend(l2) 扩展数据
8.删除数据
del l1[索引]
l1.remove() 括号里要删除的数据
l1.pop() 删除的数据是从尾部弹出的
9.排序
l1.sort() 升序
l1.sort(reverse=True) 降序
10.颠倒列表
l1.reverse()
字典的内置方法
dict(其他数据类型)
dict1 = {'name':'kiki',
'age':34}
1.取值
按k取值(不推荐)
print(dict1[name]) = 'kiki'
按内置方法get取值(推荐使用)
print(user_dict.get('username')) # kiki
print(user_dict.get('number')) # None
print(user_dict.get('username','抱歉,您输入的内容有误!!')) #kiki 键存在的情况下获取对应的值
print(user_dict.get('number','抱歉,您输入的内容有误!!')) # 抱歉,您输入的内容有误!!
当键不存在再默认返回None,可以通过第二个参数自定义
2.增加键值对 通过键增加
dict1['password']=123 键不存在则新增键值对
dict1['username'] = 'kiki' # 键存在则修改对应的值
3.删除键值对 通过键删除
del dict['name'] 通过键直接删除键和键所对应的值
dict1.pop('username') 通过键直接删除键和键所对应的值
4.统计字典中键值对的个数
len(dict1)
5.字典三剑客
dict1.keys() 一次性得出字典所有的键
dict1.value() 一次性得出字典键所对应的值
dict1.items() 一次性得出字典的键值对数据,并以列表的形式展示
6.补充说明
dict1.fromkeys 快速生产值相同的字典
dict.fromkeys(['sum', 'number', 'pwd'],[])
dict.setdefault('username', 'jason') 键存在则不修改,结果是键对应的值,不存在则新增键值对 ,结果是新增的值
dict1.popitem() 弹出键值对,后进先出
元组的内置方法
tuple(其他数据类型)
1.索引取值
2.切片操作
3.切片方向、间隔
4.统计元组内数据值的个数
len(l1)
5.统计元组中某个数据值出现的次数
l1.count()
6.统计元组指定数据值的索引值
l1.index(数据值)
7.元组内只有一个数据值,一定要加逗号
(11,)
8.元组内索引绑定的内存地址不能被修改(区别 可变与 不可变)
l1 = (11, 22, 33, 44, [22, 33, 44, 55]) # 元组能不能修改,但列表中是可以的
9.元组不能新增或删除
集合的内置方法
set(其他数据类型)
集合内数据必须是不可变类型(整型、字符串、浮点型、元组)
可变类型(列表、字典(k可变,v不可变)、集合_)
要用到集合的方法:
去重 把数据转为集合就能去重
数据运算 & | - ^
range方法
range(100),括号里的100是指包含0,不包含100,等于【0,100)
range(1,100,2) 2代表是等差值,一般是默认为1
在python2中,range产生的是列表,xrange产生的和python3的range一样是(0,100)
字符编码
编码
字符串.encode()
解码:
字符串.decode()
python2和python3 区别
python2默认的编码 ASCII
1.文件名
encode:utf8
2.字符串前面加U
u'你好啊‘
python3 默认的编码是utf系列
标签:总结,数据类型,元组,周末,字符串,l1,print,字典 From: https://www.cnblogs.com/zhanglanhua/p/16760653.html