商务服务
在函数体中,修改可变对象中的元素,会影响到实参
2023-06-29 19:44

硬件

  • 输入设备

     
  • 输出设备

     
  • CPU

     

存储设备

  • 内存

     
  • 外存

     

完成一个功能,各个组成部分协同工作的结果。输入设备—存储设备(内存)–CPU–(运算器)—
存储设备(内存)–输出设备、外存

  • 软件

     

生活中的程序:完成一个任务而进行一系列有序的动作集
计算机中的程序:让计算机完成一个功能而编写的有序指令集
编程语言
机器语言:010100001111
速度快,可读性不好,维护性,扩展性
汇编语言:助记符 add a,b
可读性有改善,比较贴近硬件,速度相对快
程序冗长。对计算机的硬件组成要求高。
高级语言:贴近人类语言
可读性,维护性,扩展性都非常好。
速度相对慢。
CC#JavaPython
解释型语言:源代码–解释器–边解释边执行 Python ,Javascript—【即时编译】
编译型语言:源代码–编译器–可执行文件 C,Java —【文献翻译】

很受欢迎,简单,应用领域广(办公自动化,web,数据采集,数据分析,人工智能,科学计

三大方向的基础课。
Python发展历程
Python之父:Guido 吉多
推荐使用3.x版本

简单,优雅
跨平台,跨语言
强大的库
免费开源
解释型
应用广
交互型
支持面向对象:C#,Java,Python,Javascript
面向过程:C


安装Python解释器
IDE:PyCharm

 
 
 
 

我有20元钱,花了12元,问还剩多少钱
变量的本质:就是内存中的一块存储空间
变量的作用:存储数据
变量简单的理解为程序中其值可以发生可变的量
变量三要素
变量名:存储空间的名字,快速地找到其中的数据
数据类型:存储数据的类型,分配空间
变量值:存储数据
数据类型
基本数据类型
数值型
整型:int
浮点型:小数 float
布尔型
bool—boolean
真True 假False
字符串型
str:0~多个字符组成的串 ,放在单引号或双引号或者三引号之间
选择数据类型:是否有运算需求,有的话选数值类型,没就是字符型
举例:余额:1000,000,000—float 身份证号,电话号码,密码–str

 

复合数据类型/引用数据类型(后面讲到
数据类型之间的转换
str() 把其它类型的数据转换成str

 
 
 

float() 把其它类型的数据转换成float 非数值串不能转换成float

 

bool() 把其它类型的数据转换成bool

 

总结:字符串拼接的时候,需要把其它类型转换成字符串,使用str()
数值计算的时候,需要把其它类型转换成数值,使用int()或float()
逻辑判断的时候,需要把其它类型转换成布尔,使用bool() —使用较少,后面会直接使用变量
来判断 变量名
命名规范
1、可以使用字母、数字 和下划线(_,不能以数字开头
2、不能使用关键字或保留字(创建python语言时,已占用了某些单词,已具有特殊的含义
3、区分大小写 name Name
4、见名知意 name brand age price i
5、多个单词用_分隔 stu_name phone_price book_author
bookAuthor
输入输出
格式化输出
1、使用个数可变的位置参数
2、使用+连接符+的左右均为str类型
3、%占位符:’’%()
4、{0}占位符:’’.format()
5、f’{变量名}’
输入
变量 = input(‘提示语:’)

 
 
 
 

从右往左进行
支持链式赋值
解包赋值,左右两边个数要一致
复合赋值运算符:赋值+算术 += -= *= /= //= %=

 
 

表示两个变量之间的大小关系的

< >= <= == !=

 
 

主要是连接多个条件(布尔表达式–关系表达式、布尔变量
and 逻辑与:同真则真,遇假则假
or 有真则真,同假则假
not 取反

 
 

按位与 &
按位或 |
异或 ^
左移
右移

 
 

小括号>算术运算>位运算>关系运算>逻辑运算>赋值运算
先运算 ,再比较 ,再链接,最后赋值
建议大家,把优先高的放在小括号中,这样的代码可读性好

 
 
 

算法就是解决问题的步骤。
算法不唯一,但是有优劣。评价维度:时间复杂度,空间复杂度。
表示算法的方式有很多,最主要的一种就是流程图。
符号:圆角矩形 —程序的开始/结束
平行四边形–输入或输出
直角矩形–处理步骤(运算,赋值
菱形—判断(布尔表达式
流程线
计算机专家发现,不管多么简单或多么复杂的算法都可以由顺序结构,选择结构,循环结构组合而
成。

从左往右,从上往下依次执行
写出来的代码都会执行

场景:需要做出选择/做出判断,才知道如何执行
1、单分支结构

 

语法
1)条件:结果只要是布尔值就行,所以也叫布尔表达式。可以是变量,关系表达式,逻辑表达式
bool(变量)–0,0.0,空字符串、空字典,空集合,空列表等返回false,其它都返回true
2)代码块:可以是赋值,运算,流程结构等
3)python靠缩进表达代码的层次关系,缩进一般使用tab键
执行顺序: 先判断条件,如果条件为true,则执行代码块。否则不执行代码块
案例

 
 

2、双分支结构
语法

 

执行顺序:先判断条件,条件为true,则执行代码块1,否则执行代码块2
案例

 

简化写法:条件表达式

 

执行顺序:条件为true,表达式的结果就是表达式1,否则整个表达式的结果就是表达式2

 
 

3、多分支结构
3.1 多重if结构
语法

 

执行顺序:先判断条件1,如果条件1为true,则执行代码块1
否则判断条件2,如果条件2为true,则执行代码块2
否则判断条件3,如果条件3为true,则执行代码块3
场景:一个维度连续区间的多路分支
案例

 

:python中关系表达式允许连写0<score < 60
练习

 

3.2 嵌套if结构
语法

 

执行顺序
场景:多个维度的多路分支
案例

 

3.3 switch在python没有

场景:有重复做的事情(可以是一样的事情,也可以是有规律的事情
循环的特点
循环操作:重复在做的事情
循环条件:循环继续的条件,循环结束的条件
如果循环永不结束,就叫死循环。初学程序的时候,要避免死循环。
编码时,循环条件会借助循环变量来表达。
,计数器count=0(循环变量的初始化) count+=1(循环变量的更新) count<=10(循环条

5.3.1 while循环
语法
循环变量的初始化
while 循环条件:
循环操作
循环变量的更新
特点:先判断,再执行
如果循环条件一开始就不成立,循环操作可能一次都不执行
适合循环次数不固定的情况
案例

 

while适合循环次数不固定的情况

 

5.3.2 for in循环
语法

 

特点:循环次数固定,优先for;常用来遍历容器对象
可迭代对象:字符串、range对象
range()函数 可以生成整数序列
range(stop) 生成[0,stop)之间的整数序列,步长是1
range()函数只存储这start,stop,step个变量,节省内存

 
 

5.3.3 循环中的break、continue、else
break:中断指令,也使用在循环中,结束当前所在层的循环

 

continue:中断指令,也使用在循环中,结束本轮循环

 

else:和while/for-in搭配使用,不碰到break退出时才会执行到的代码

 

5.3.4 双重循环
一个循环嵌套在另一个循环中
外层循环执行一轮,内层循环执行一遍 —>双重循环要执行的次数

 

打印图形练习

 

5.3.4 循环作业
1、求两个数最大公约数
参考链接:https://www.cnblogs.com/schips/p/10658253.html

 

2、整数反转

 

3、1~10之间的整数相加,得到累加值大于20的当前数 1+2+3+4…加到几和超过20

 
 
 

变量-单一数据
容器-存储多个数据,提供了一些操作数据的方法

特点
元素的数据类型是不受限制的,可变长,有索引,有序,可重复
参考动态数组
创建:

 

获取元素

 

添加

 

修改

 

删除

 

其它

 

综合案例

 
 

特点
1 不可变的序列 特点:不可增删改,修改后,地址会发生改变
2 参考定长数组,
3 有索引
4 有序
5 元素不限制类型
创建

 

获取元素

 

不能做的事情

 
 

特点
1 不重复,无序
2 参考数学上的集合:不重复,无序
3 底层实现:哈希表
4 集合存储的对象都是不可变对象
5 没有索引
6 集合是没有value的字典

 

获取元素

 

增删改

 

其它操作

 

集合在数学方面的操作

 
 

特点
1、字典中的所有元素都是一个键值对,key不允许重复,value可以重复
2、无序
3、key必须是不可变对象
4、字典也可以根据需要动态地伸缩
5、字典会浪费较大的内存,是一种使用空间换时间的数据结构

创建

 

获取元素

 

增删改

 
 

列表:有序,可重复,可变长,有索引,任意类型数据 []
元组:有序,可重复,不可变,有索引,任意类型数据 ()
集合:无序,不重复,可变长,无索引,不可变数据, {}
字典:无序,key不重复,value可重复,可变长,无索引,有键,键值对(key不可变数据){}

 
 
 

什么是函数?函数就是完成特定功能的一段代码
为什么需要函数?复用代码、隐藏实现细节、提高可维护性、提高可读性
创建函数

 

函数调用:本质上就是在执行函数体

 
 

1)可选项
2)需要给调用者返回数据,使用return+数据
3)可返回多个数据,以元组返回—python独有的
4)如果不需要返回数据,可以return 语句。
5)函数体中可以根据条件判断,通过return提前结束函数

 
 

当完成特定功能,需要调用者提供数据的时候,可以给函数定义参数
函数定义的时候,参数叫形式参数,简称形参列表
函数调用的时候,参数叫实际参数,简称实参列表, 实参个数需和形参个数一致

 

参数传递

 

参数的类型
位置实参:实参按照顺序依次传递给形参

 

关键字实参:按照形参名传递,与顺序无关
可以与位置参数混用,但位置实参在前,关键字实参在后

 

默认值形参

 

可变个数的形参

 
 

递归是一种算法思想,就是函数自己调用自己
把一个大的复杂的问题,化简成一个跟他相似但规模更小的问题
递归的好处:想起来简单,编码也简单
递归的缺点:内存占用大,效率低
递归的编码
1、递归公式-- f(n)=f(n-1)+n
2、临界条件 f(1)=1

 

斐波那契数列、兔子数列
从第三项开始,每一项都是前面两项数字的和,如 1,1,2,3,5,8,13…

 

汉诺塔

 
 
 
 

参考链接
https://zhuanlan.zhihu.com/p/80960485
https://zhuanlan.zhihu.com/p/65485925
https://zhuanlan.zhihu.com/p/257851876

try…except…else…finally

 
 

10.1 面向过程与面向对象
面向过程:算法,1,2,3–围观上操作细节
面向对象:宏观上把控
面对过程和面向对象不是相互对立的,而是相辅相成的。
支持面向过程的语言:C、C++
支持面向对象的编程语言:C++,c#,Java,Python,Javascript

10.2 面向对象入门
面向对象
模拟现实世界
对象
万事万物皆对象。
对象就是一个真实的存在。
例如:张三
静态的特征:姓名,年龄,性别,身份证号,电话号码

现实世界,我们会自然而然地对事物进行归类。
具有相同静态特征和动态特征的对象,统称为类

类是抽象的,对象是具体的。
类是集合,对象是个体。
类和对象不是整体和局部的关系。牛-牛头
类可当作一种数据类型。由类创建出来的对象,叫实例。
面向对象编程的思路
1、抽象出类
2、抽象出跟业务相关的静态特征(属性:name,age,phone
抽象出跟业务相关的动态特征(方法:gotoClass() ,run()
3、创建对象–实例化对象
对象.属性
对象名.方法

 
 
 
 
 
 
 
 

封装的目的:保护数据的安全性
封装的含义
1)广义:类把属性和方法封装在了一起,方法把过程进行了封装
2)狭义:属性私有化,在方法内部操作属性,在类外部调用方法
我们一般强调的是狭义的封装
封装的实现
1)属性的私有化(加__
2)添加get、set方法
3)在方法中添加逻辑判断
:在Python中没有专门的修饰符用于属性的私有,如果该属性不希望在类对象外部被访问,前面
使用两个__。

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

11.1 模块
模块:1个py文件就是一个模块
包含的内容:类,函数,变量和语句
好处:避免类、函数、变量的重名
提高代码的可维护性
提高代码的可重用性
模块分类:1、系统内置模块 2、第三方模块 3、自定义模块
创建模块:新建.py文件
导入模块 :import
1)import 模块名 [as 别名]
使用时,模块名.类 模块名.函数 模块名.变量
2)from 模块 import 类/函数/变量
代码中直接使用类、函数、变量

 
 
 
 

类似目录 、管理一些功能的相似的模块
包和目录的区别:包中包含init.py文件
好处:避免模块的重名
导入其它包中的模块,需要:import 包.模块名

 
 

学习内置模块的方法
1)dir(模块名) 查看模块中的成员
2)help(模块名/方法名/类名) 查看对象的帮助文档
3)通过pycharm中的提示功能
4)点击查看源码注释

 
 
 
 

math:提供标准算术运算函数的标准库

 
 

time 时间相关的模块

 
 

os模块

 

os.path模块

 
 

文件内容的操作需要通过流来实现
流是有方向的。从内存->外存,叫输出Output,称写操作;从外存到内存,叫输入Input,称读操
作。
按每次读取的数据单元,也可将流分为字符流和字节流。一般文本文件建议以字符方式读写,二进
制文件采用字节方式读写。
文件IO操作步骤
1、创建流对象
2、读或者写
3、关闭流

 
 
 

乱码问题:编码格式

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
    以上就是本篇文章【在函数体中,修改可变对象中的元素,会影响到实参】的全部内容了,欢迎阅览 ! 文章地址:http://www.razcy.com/news/4419.html 
     资讯      企业新闻      行情      企业黄页      同类资讯      首页      网站地图      返回首页 月落星辰移动站 http://m.razcy.com/ , 查看更多   

点击拨打: