CHZ文件需要用什么软件看呀?

函数;自定义函数;函数的参数:不带参数,普通参数,默认参数,动态参数;返回值return;函数作用域;内置函数高阶函数:map,reduce,filter,sorted;lambda表达式;文件操作:打开文件,操作文件,with方法;冒泡算法和递归;;;;;;;;;;;;;;;;;;;;;;;

在学习函数之前,一直遵循:面向过程编程,即:根据业务逻辑从上到下实现功能,其往往用一长段代码来实现指定功能,开发过程中最常见的操作就是粘贴复制,也就是将之前实现的代码块复制到现需功能处,如下

上面的代码是就面向过程的编程,但是如果报警多了的话成百的代码需要添加如何操作呢?复制粘贴那会死人的!在看下下面的代码:

发送邮件('硬盘报警')
 发送邮件('内存报警')

第二次必然比第一次的重用性和可读性要好,其实这就是函数式编程和面向过程编程的区别:

  • 面向过程:根据需求一行一行垒代码!逻辑乱、并切代码重复、不易修改重用性差!
  • 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可
  • 面向对象:对函数进行分类和封装,让开发“更快更好更强...”

函数式编程最重要的是增强代码的重用性和可读性

函数的定义主要有如下要点:

  • def:表示函数的关键字
  • 函数名:函数的名称,日后根据函数名调用函数
  • 函数体:函数中进行一系列的逻辑计算,如:发送邮件、计算出 [11,22,38,888,2]中的最大数等...
  • 参数:为函数体提供数据
  • 返回值:当函数执行完毕后,可以给调用者返回数据。

函数是一个功能块,该功能到底执行成功与否,需要通过返回值来告知调用者。

# 每次执行发送短信函数,都会将返回值自动赋值给result
# 之后,可以根据result来写日志,或重发等操作 记录日志,短信发送失败...
return #除了返回值外,也用来函数的截至
print "Hello World" #所以当i=5的时候就直接跳出了函数了,这里是不会被打印出来了!不是循环!!!

return 一般写在函数的末尾,一般你想看函数的执行结果!然后判断后面的程序。看下面的例子

为什么要有参数?看下下面的例子:

如果不定义参数,用函数的话:(每个有相同功能的都写个函数,说好的代码简化呢?)

使用函数:(代码明显少了很多,把重复的内容改为参数调用!)

def 发送邮件(邮件内容)
 发送邮件("CPU报警了。")
 发送邮件("硬盘报警了。")
 发送邮件("内存报警了。")

函数的有三种不同的参数:

# name 叫做函数func的形式参数,简称:形参

但是普通参数有个问题!你在定义参数的时候定义了几个参数,你在调用的时候必须给他几个参数否则就报错!

在你没有给他指定参数的时候他就会使用默认的参数!

注:默认参数需要放在参数列表最后,要不就会报错!原因是:他的参数赋值是一个一个的赋值。如果提供了默认值的形参,你默认一定要往后排序为了就是你给那些没有陪默认值的参数 !

动态参数顾名思义就是可以动态的去扩展函数参数的数量!

例子:1 (多个单个变量,整合成元组)

#如果想输入的列表,不想让列表称谓元组里的仅一个元素而是让列表的元素成为元组的元素加*即可
3、序列,*,避免内部构造元组

例子:2(整合为字典变量)

print name # 这个能不能调用呢,不能,会报错!函数的作用域就是在函数里定义的变量不能被外面使用!

总结:函数的作用域就是在函数里定义的变量不能被外面使用!但是外部全局定义的全局变量在函数内是可以使用的。

举个例子来说:你在房子里可以看到屋内的东西和房子外的东西,但是你在房子外面就只能看到房子外的东西不能看到房子内的东西!

原因防止在函数调用的时候防止变量冲突!

问题:我在外面定义的全局变量在函数内可以改他吗?  #看下面的例子:

但我就是想在函数里改变全局变量是否可以呢?可以!

#但是我就想在函数内改掉这个变量怎么办呢?在函数内调用global参数!(提供这个功能,但是不建议用!你在局部变量改全局变量很容易引起混乱)

内置函数:(就是python把各个模块中常用的一些方法给拿出来方便使用)

常用的记住之后,要知道怎么去查:

是把字符串中符合python表达式的东西计算出来。意思就是:

range()函数的以下几点:

这个函数可以创建一个数字元素组成的列表。

这个函数最常用于for循环(关于for循环,马上就要涉及到了)

step默认值是1。如果不写,就是按照此值。

step不能等于零,如果等于零,就报错。

map()函数接收两个参数,一个是函数,一个是Iterablemap将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回。

reduce把一个函数作用在一个序列[x1, x2, x3, ...]上,这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累积计算,其效果就是:

map()类似,filter()也接收一个函数和一个序列。和map()不同的是,filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素。注意到filter()函数返回的是一个Iterator,也就是一个惰性序列,所以要强迫filter()完成计算结果,需要用list()函数获得所有结果并返回list。

sorted()函数也是一个高阶函数,它还可以接收一个key函数来实现自定义的排序,我们给sorted传入key函数,即可实现忽略大小写的排序:要进行反向排序,不必改动key函数,可以传入第三个参数reverse=True

1、sort()是可变对象(字典、列表)的方法,无参数,无返回值,sort()会改变可变对象,因此无需返回值;

2、sorted()是python的内置函数,并不是可变对象(列表、字典)的特有方法,sorted()函数需要一个参数(参数可以是列表、字典、元组、字符串),无论传递什么参数,都将返回一个以列表为容器的返回值,如果是字典将返回键的列表。

我要回帖

更多关于 打开dwg格式的软件 的文章

 

随机推荐