首页 > 其他分享 >Day 7.9 前七天总复习

Day 7.9 前七天总复习

时间:2024-10-08 19:49:03浏览次数:1  
标签:复习 name 运算符 l2 l1 print 7.9 Day 操作系统

时隔10天,我终于又再次拾起了我的狗屎python,今天主要是把前七天(当然我学的可不止七天)进行了一个总复习,最后是欠了个猜年龄游戏plus版,先欠着吧,下次再说,刚刚在图书馆无意间看到一本书,看书去了,继续努力!!!

目录

一 计算机之编程

1 什么是编程语言

编程语言是人与计算机交流的介质

2 什么是编程

通过使用编程语言编写的一个个的文件

3 为什么要编程

为了奴隶计算机,解放劳动力,为人们完成一个个具体的任务

二 计算机组成原理

1 计算机五大组成

1. CPU

  • 控制器:控制硬件

  • 运算器:进行逻辑运算+算术运算

2. 内存

临时储存数据的硬件

  • 优点:速度快
  • 缺点:临时存储,断电即消失

3. 外存

永久存储数据的硬件

  • 优点:永久存储
  • 缺点:速度慢

4. 输入设备

输入信息的硬件,如键盘/鼠标/u盘

5. 输出设备

输出信息的硬件,如显示器/打印机/u盘

6.I/O设备

既可输入信息,又可以输出信息的硬件,即为I/O设备

2 32位和64位

  • 32位:一次性能够读取32个二进制位的操作系统

  • 64位:一次性能够读取64个二进制位的操作系统

3 多核cpu

可以同时完成多件事的CPU,如4核CPU,一个大CPU集成了4个小的CPU

4 硬盘的工作原理

1. 机械硬盘工作原理

  • 机械手臂:寻找数据

  • 磁道:存储数据

  • 扇区:划分磁道

  • 平均寻道时间:由于工业水平的限制,为5ms

  • 平均延迟时间:以7200r/min的硬盘为例,为4.15ms

    • 7200r/min / 60 = 120r/s
    • 1/120r/s = 0.0083s = 8.3ms
    • 8.3ms / 2 = 4.15ms
  • 平均寻找数据的时间:5+4.15 = 9.15ms

2. 固态硬盘工作原理

基于算法和电存储的外存

三 计算机操作系统

1 文件是什么

操作系统提供的一个虚拟的单位

2 应用程序是什么

应用程序其实是一堆文件组成的,用于完成具体的某个任务

操作系统能干什么

接受应用程序/外部指令,然后控制硬件

3 计算机三大组成

1.应用程序

应用程序其实是一堆文件组成的,用于完成具体的某个任务,与人和操作系统交互

2.操作系统

接受应用程序/外部指令,然后控制硬件,与人/应用程序/硬件交互

3.硬件

最终的目的是用来存储数据的,与操作系统交互

3 应用程序的启动和操作系统的启动

1.应用程序的启动

  1. 双击qq(发送指令给操作系统)
  2. 操作系统接受指令,将指令转化为0和1发送给CPU
  3. CPU接受指令,发送给内存
  4. 内存从硬盘中取出qq的程序,执行,打开qq

2.操作系统的启动

  1. 按下开机键(启动一个临时操作系统)
  2. 临时操作系统唤醒真正的操作系统

四 编程语言分类

1 机器语言

  • 优点(较于汇编语言):执行效率高
  • 缺点(较于汇编语言):开发效率低

2 汇编语言

  • 优点(较于机器语言):开发效率高
  • 缺点(较于机器语言):执行效率低

3 高级语言

1.解释性语言

类似于同声传译,写一句翻译一句

  • 优点(编译性语言):开发效率高
  • 缺点(编译型语言):执行效率低

2 编译型语言

类似于谷歌翻译,写完所有的代码,编译后得到结果,并且结果可以保存,无法得到及时的报错反馈

  • 优点(解释性语言):执行效率高
  • 缺点(解释性语言):开发效率低

五 执行python的两种方式

1 交互式

在终端内(cmd)内输入python3,然后输入python代码

2 命令式

在终端内(cmd)输入python3的文本文件路径

六 执行python程序的两种IDE

1 pycharm

2 jupyter

七 变量

1 什么是变量?

用来描述世间万物变化的状态

2 变量的组成

变量名 = 变量值 变量名是用来接受变量值的

3 变量的定义规范

  • 具有某种意义
  • 由数字,字母,下划线组成,且不能由数字开头(也不能用下划线开头)
  • 不能用python关键字

4 定义变量的两种方式

  • 驼峰体:‘name of nick’
  • 下划线:‘name_of_nick'(推荐)

5 常量

常量是约定俗成的一种规范,常量名定义方式为全大写,实际上可以被修改

6.注释

1.单行注释

+注释的语句,#后面的字符不执行语法,即为普通字符,一般用于解释某一段代码

2.多行注释

三引号’‘’ 或三双引号”“”

7 引用计数

变量值的引用次数,

x = 257  # 257的引用计数为1
y = 257  # 257的引用计数为2
del x    # 257的引用计数为1

8 垃圾回收机制

当变量值的引用计数为0的时候,该变量值会被python自动回收他的内存占用

9 小整数池

[-5,256]之间的整数会在python解释器启动的时候,自动开辟一块内存存入这些整数,也就是说这些整数不会因为引用计数为0而被删除

八 与用户交互

input

input输入的都是字符串形式

九 格式化输出

1 占位符

  • %s 接受任意数据类型的数据
  • %d 接受数字类型的数据
name = 'sun'
'name is %s'%name

2 format格式化

{}接受任意数据类型的数据

name = 'sun'
'name is {}'.format(name)

3 f-string格式化

在字符串前面加上f或F,然后使用{}接受任意类型的数据

name = 'sun'
f'name is {name}'

十 基本运算符

1 算术运算符

+ - * / % //

2 逻辑运算符

and or not

3 比较运算符

> >= < <= == !=

4 赋值运算符

= += -= *= /= //= %=

5 身份运算符

is or is not

id相同的值一定相同,值相同的id不一定相同

6 运算符优先级(略)

如果需要某个运算符优先运算,则加个括号,

7 链式赋值

x = y = z = 10

8 交叉赋值

x = 10
y = 20
x,y = y,x
# or使用临时变量
x = 10
y = 20
temp = x
x = y
y = temp

9 解压缩

hobby_list = ['read','run','sleep','fishing','playing']
# 如果取第2,3,5个爱好
_,hobby2,hobby3,_,hobby5 = hobby_list
print(hobby2,hobby3,hobby5)

十一 控制

1 流程控制之if判断

1.if

if 条件:
	代码块

2.if else

if 条件:
	代码块
else:
	代码块

3.if ... elif ... elif... else

if 条件:
	代码块
elif 条件:
	代码块
elif 条件:
	代码块
...(可以写任意个) 
else:
	代码块

2 流程控制之while循环

1.while

while 条件:
	代码块

2.while + break

while 条件:
	代码块
	break #结束本层循环,跳出循环

3.while + continue

while 条件:
	代码块
  if 条件:
  	代码块
		continue #结束本层循环,不执行下面代码。继续循环
  代码块

4.while + else

while 条件:
	代码块
else:
	print('如果我没有被break,我就会被打印出来'

3 流程控制之for循环

1.for

for i in range/list/tuple/str/dict/set(可迭代对象):
	print(i)

2.for + break

for i in range/list/tuple/str/dict/set(可迭代对象):
	print(i)
	break # 结束本层循环

3.for + continue

for i in range/list/tuple/str/dict/set(可迭代对象):
	print(i)
  if 条件:
		continue  # 结束本次循环,不执行下面代码
	代码块

4.for + else

for i in range/list/tuple/str/dict/set(可迭代对象):
	print(i)
else:
  print('如果我没有被break,我就会被打印出来'

十二 数据类型内置方法

1 数字类型内置方法

1.整形

  • 作用:定义年龄/身高/id号
  • 定义方式: age = 18 or age = int('18')
  • 方法: + - * / % //
  • 多个值or一个值:一个值
  • 有序or无序:压根没有有序无序这一说
  • 可变or不可变:不可变
    • 可变:值变id不变
    • 不可变:值变if也变

2.浮点型

  • 作用:定义薪资/价格
  • 定义方式:salary = 3.2 or salary = float('3.2')
  • 方法: + - * / % //
  • 多个值or一个值:一个值
  • 有序or无序:压根没有有序无序这一说
  • 可变or不可变:不可变

2 字符串类型内置方法

  • 作用: 姓名
  • 定义方式: name = 'sun' name = "sun" name = '''sun''' (三引号可换行)
  • 方法:
    • 优先掌握
      • 索引取值
      • 切片
      • 长度
      • 切分 split
      • 除两端空白 strip
      • 成员元素 in not in
      • for循环
    • 需要掌握
      • lstrip rstrip
      • rsplit
      • upper/lower
      • join
      • replace
      • indigit
    • 了解
      • find/rfind/index/rindex/count
      • center/ljust/rjust/zfill
      • expantabs
      • capitalize/swapcase/title
      • is系列
  • 多个值or一个值:一个值
  • 有序or无序:有序
  • 可变or不可变:不可变

3 列表类型内置方法

  • 作用:多个女朋友
  • 定义方式:[]内用逗号隔开多个任意数据类型的元素
    • friends_list = ['sun','cheng','hao']
  • 方法:
    • 优先掌握:
      • 索引取值(即可取又可改)
      • 切片
      • 长度
      • append
      • 成员运算
      • for循环
    • 需要掌握
      • count
      • remove
      • reverse
      • pop
      • insert
      • sort
      • index
      • del
      • extend
      • clear
  • 多个值or一个值:多个值
  • 有序or无序:无序
  • 可变or不可变:可变

4 元组类型内置方法

  • 作用:类似于列表,可以取但不可以存
  • 定义方式:()内用逗号隔开多个任意数据类型的元素
    • friends_tuple = ('sun','cheng','hao')
    • tup = tuple('sunchenghao')
  • 方法:
    • 优先掌握
      • 索引取值(无法更改)
      • 切片
      • 长度
      • 成员运算
      • for循环
      • count
      • index
  • 多个值or一个值:多个值
  • 有序or无序:有序
  • 可变or不可变:无可变不可变这一说

5 字典类型内置方法

  • 作用:值太多列表存容易取麻烦时使用字典

  • 定义方式:

    • sun_dict = {
      'name':'sun',
      'height':'190',
      'weight':'200',
      'hobby_list':['playing','run','sleep','money']
      }
      for k,v in sun_dict.items():
        print(k,v)
      
  • 方法:

    • 优先掌握
      • 按键取值
      • 长度
      • keys/values/items
      • for 循环
      • 成员运算
    • 需要掌握
      • pop
      • fromkeys
      • setdefault
      • get
      • update
      • del
  • 多个值or一个值:多个值

  • 有序or无序:无序

  • 可变or不可变:可变

6 集合类型内置方法

  • 作用:存多个值,为了集合之间做运算

  • 定义方式:

    • s = set()  #定义空集合
      set = {1,2,3,4,5,2}
      
  • 方法:

    • 优先掌握
      • 去重
      • 并集 |
      • 交集 &
      • 差集 -
      • 对称差集 ^
      • 父集 > >=
      • 子集 < <=
      • ==
    • 需要掌握
      • add
      • difference_update
      • isdisjoint
      • remove #值不存在会报错
      • discard #不会报错
  • 多个值or一个值:多个值

  • 有序or无序:无序

  • 可变or不可变:可变

7 布尔类型

  • 作用:一般用于判断,除了 0/None/空/False 自带布尔值为false,其他数据类型自带布尔值为True

8 数据类型总结

一个值 多个值
整形/浮点型/字符串 列表/元组/字典/集合
有序 无序
字符串/列表/元组 字典/集合
可变 不可变
列表/字典/集合 整形/浮点型/字符串

9 拷贝

拷贝/浅拷贝/深拷贝都是针对可变数据类型而言的

l1 = ['a','b','c',['d','e','f']]
l2 = l1
l1.append('g')
print(l1)  #['a','b','c',['d','e','f'],'g']
print(l2)  #['a','b','c',['d','e','f'],'g']

如何l2是l1的拷贝对象,则l1内部的任何数据类型的元素变化,则l2内部的元素也会跟着改变,因为可变类型值变id不变

10 浅拷贝

import copy
l1 = ['a','b','c',['d','e','f']]
l2 = copy.copy(l1)
l1.append('g')
print(l1)  #['a','b','c',['d','e','f'],'g']
print(l2)  #['a','b','c',['d','e','f']]
l1[3].append('g')
print(l1)  #['a','b','c',['d','e','f','g'],'g']
print(l2)  #['a','b','c',['d','e','f','g']]

如果l2是l1的浅拷贝对象,则l1内的不可变元素发生了改变,l2不变;如果l1内的可变元素发生了改变,则l2会跟着改变

11 深拷贝

import copy
l1 = ['a','b','c',['d','e','f']]
l2 = copy.deepcopy(l1)
l1.append('g')
print(l1)  #['a','b','c',['d','e','f'],'g']
print(l2)  #['a','b','c',['d','e','f']]
l1[3].append('g')
print(l1)  #['a','b','c',['d','e','f','g'],'g']
print(l2)  #['a','b','c',['d','e','f']]

如果l2是l1的深拷贝对像,则l1内的不可变元素发生了改变,l2不变;如果l1内的可变元素发生了改变,l2也不会变;即无论l2永远不会因为l1的改变而改变

标签:复习,name,运算符,l2,l1,print,7.9,Day,操作系统
From: https://www.cnblogs.com/chsun12/p/18452373

相关文章

  • C++ day03(作用域限定符、this、static、const)
    目录【1】作用域限定符::1》名字空间2》类内声明,类外定义 【2】this关键字1》概念2》调用成员3》区分重名的成员变量与局部变量4》链式调用 【3】static关键字1》静态局部变量2》静态成员变量3》静态成员函数【4】const关键字1》修饰成员函数2》修饰对象 ......
  • Day 7.5 数据类型总结 + 拷贝 浅拷贝 深拷贝
    目录一.数据类型总结二.浅拷贝和深拷贝(只针对可变类型一.数据类型总结存一个之还是多个值:一个值:整形,浮点型,字符串多个值:列表,元组,字典,集合有序or无序有序:字符串。列表,元组无序:字典,集合可变or不可变可变:列表,字典,集合不可变:整形,浮点型,字符串二.浅......
  • Day1 备战CCF-CSP练习
    Day1201403-1问题描述有$N$个非零且各不相同的整数。请你编一个程序求出它们中有多少对相反数($a$和$-a$为一对相反数)。输入格式第一行包含一个正整数$N$。$(1≤N≤500)$。第二行为$N$个用单个空格隔开的非零整数,每个数的绝对值不超过$1000$,保证这些整数各......
  • leetcode 刷题day35动态规划Part04 背包问题(1049. 最后一块石头的重量 II 、494. 目标
    1049.最后一块石头的重量II思路:解题的难度在于如何转化为背包问题。本题的核心思路是让石头分成重量相同的两堆,相撞之后剩下的石头最小,这样就化解成01背包问题,和416.分割等和子集非常像了。首先,背包的容量target为sum/2向下取整,得到dp[target]就是分出来较小的一堆,用su......
  • leetcode 刷题day37动态规划Part06背包问题( 322. 零钱兑换、279.完全平方数、139.单词
    322.零钱兑换思路:每种硬币的数量是无限的,是典型的完全背包问题。但是题目要求等于目标值的最小硬币个数。所以这里需要对动规五部曲进行分析。动规五部曲:1、确定dp数组以及下标的含义dp[j]:凑足总额为j所需钱币的最少个数为dp[j]2、确定递推公式凑足总额为j-coins[i......
  • day02_基本的DOS命令
    电脑常用快捷键常用快捷键快捷键作用CTRL+c复制CTRL+v粘贴CTRL+x剪切CTRL+z撤销CTRL+s保存alt+f4关闭窗口del删除shift+del强制删除Windows+r打开“运行”窗口windows+e打开“我的文档”ctrl+alt+d......
  • java_day10_Object、Scanner、String
    1、Object类java中所有的类默认都有一个共同的父类:Object==比较:1、比较的是两个基本数据类型的话,比较两个数值是否相等2、比较的是两个引用数据类型的话,比较的是两个对象的地址值是否相等成员方法:inthashCode()返回对象的哈希码值。可以看作地址值的另外......
  • Day 29 动态规划part02| LeetCode 62.不同路径,63.不同路径II
    62.不同路径62.不同路径classSolution{publicintuniquePaths(intm,intn){int[][]dp=newint[m][n];//dp数组--dp[i][j]达到坐标(i,j)有几种路径//dp数值初始化--终点为:dp[m-1][n-1]for......
  • 代码随想录算法训练营day8|344.反转字符串 ● 541. 反转字符串II ● 卡码网:54.替换数
    学习资料:https://programmercarl.com/0344.反转字符串.html#算法公开课在python中字符串不可变,所以要增加空间lst=list(str)344.反转字符串(reverse库函数的基本代码)点击查看代码classSolution(object):defreverseString(self,s):""":types:List......
  • 网站的时间使用dayjs.js格式化
    1.为什么要使用dayjs在mysql数据库中,datetime字段从数据库读取后,在前台显示出来会带有TZ字母,这是格林尼治时间,如:2024-10-07T12:02:00Z,而我们一般需要2024-10-0712:02:00这种格式。另外,需要在不同地区显示本地时间,那么dayjs会将格林尼时间转换为本地时间。dayjs是一个轻量级的......