Python全栈开发【基础三】

时间:2022-09-30 09:24:13

Python全栈开发【基础三】

 本节内容:

  • 函数(全局与局部变量)
  • 递归
  • 内置函数
函数

一、定义和使用

函数最重要的是减少代码的重用性和增强代码可读性

 def 函数名(参数):

     ...
     函数体
     ...
     返回值

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

  • def:表示函数的关键字
  • 函数名:函数的名称,日后根据函数名调用函数
  • 函数体:函数中进行一系列的逻辑计算
  • 参数:为函数体提供数据
  • 返回值:当函数执行完毕后,可以给调用者返回数据。

总结使用函数的好处:

1.减少代码重用

2.保持一致性,易维护

3.可扩展性

返回值

 def 发送邮件():

     发送邮件的代码...

     if 发送成功:

         return True

     else:

         return False

 while True:

     # 每次执行发送邮件函数,都会将返回值自动赋值给result

     # 之后,可以根据result来写日志,或重发等操作

     result = 发送邮件()

     if result == False:

         记录日志,邮件发送失败...

二、参数

1.形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只在函数内部有效。函数调用结束返回主调用函数后则不能再使用该形参变量

2.实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参。因此应预先用赋值,输入等办法使参数获得确定值

 def calc(x,y)   #x,y即为形参
     res = x**y
     return res

 c = calc(2,3)  #2,3即为实参
 print(c)

3.位置参数和关键字(标准调用:实参与形参位置一一对应;关键字调用:位置无需固定)

注:位置参数必须在关键字参数前面

 def calc(x,y):
     res = x**y
     return res

 c = calc(y=2,x=3)  #关键字参数
 print(c)

 def calc(x,y):
     res = x**y
     return res

 c = calc(2,y=3)  #2为位置参数,y=3为关键字参数
 print(c)  

4.默认参数

 def calc(x,y=3):  #y=3为默认参数后面函数可不传值
     res = x**y
     return res

 c = calc(3) #可不传y值
 print(c)

5.参数组

 ###############列表*args

 def func(*args):
     print args

 # 执行方式一
 func(11,22,33,55,66)

 # 执行方式二
 li = [11,22,33,55,66]
 func(*li)

 ###############字典**kwargs

 def func(**kwargs):
     print kwargs

 # 执行方式一
 func(name='ocean',age=18)

 # 执行方式二
 li = {'name':'ocean', age:18, 'job':'python'}
 func(**li)

三、 局部变量与全局变量

全局变量在函数里可以随便调用,但要修改就必须用 global 声明

 ##########全局变量与局部变量########
 NAME = "aa"

 def cn():
     global NAME
     NAME = "mm"
     print(">>>>",name)
 print(name)   #输出aa
 cn()          #>>>mm
 print(name)   #mm

 ##########
 #本例重点是函数只有调用时才运行
 name = "aa"
 #全局变量一般为大写用于区*部变量,这里临时使用小写
 def aa():
     name = "bb"
     def bb():
         nonlocal name
         #nonlocal用来在函数或其他作用域中使用外层(非全局)变量
         name = "cc"
     bb()
     print(name)
 print(name)
 aa()
 print(name)    
递归

在函数内部,可以调用其他函数。如果一个函数在内部调用函数本身,这个函数就是递归函数。

递归特性:

1. 必须有一个明确的结束条件

2. 每次进入更深一层递归时,问题规模相比上次递归都应有所减少

3. 递归效率不高,递归层次过多会导致栈溢出,浪费内存

 def calc(n):
     print(n)
     if int(n/2) ==0:
         return n
     return calc(int(n/2))

 calc(10)

 输出:
 10
 5
 2
 1
内置函数

Python全栈开发【基础三】

 ###### 求绝对值 #######

 a = abs(-95)

 print(a)

 ###### 只有一个为假就为假 ########

 a = all([True,True,False])

 print(a)

 ###### 只有一个为真就为真 ########

 a = any([False,True,False])

 print(a)

 ####### 返回一个可打印的对象字符串方式表示 ########

 a = ascii('0x\10000')

 b = ascii('b\x19')

 print(a,b)

 ######### 将整数转换为二进制字符串 ############

 a = bin(95)

 print(a)

 ######### 将一个数字转化为8进制 ##############

 a = oct(95)

 print(a)

 ######### 将一个数字转化为10进制 #############

 a = int(95)

 print(a)

 ######### 将整数转换为16进制字符串 ##########

 a = hex(95)

 print(a)

 ######### 转换为布尔类型 ###########

 a = bool('')

 print(a)

 ######### 转换为bytes ########

 a = bytes('淡定',encoding='utf-8')

 print(a)

 ######## chr 返回一个字符串,其ASCII码是一个整型.比如chr(97)返回字符串'a'。参数i的范围在0-255之间。 #######

 a = chr(88)

 print(a)

 ######## ord 参数是一个ascii字符,返回值是对应的十进制整数 #######

 a = ord('X')

 print(a)

 ######## 创建数据字典 ########

 dict({'one': 2, 'two': 3})

 dict(zip(('one', 'two'), (2, 3)))

 dict([['two', 3], ['one', 2]])

 dict(one=2, two=3)

 ###### dir 列出某个类型的所有可用方法 ########

 a = dir(list)

 print(a)

 ###### help 查看帮助文档 #########

 help(list)

 ####### 分别取商和余数 ######

 a = divmod(9,5)

 print(a)

 ##### 计算表达式的值 #####

 a = eval('1+2*2')

 print(a)

 ###### exec 用来执行储存在字符串或文件中的Python语句 ######

 exec(print("Hi"))

 exec("print(\"hello, world\")")

 ####### filter 过滤 #######

 li = [1,2,3,4,5,6]

 a = filter(lambda x:x>3,li)

 for i in a:print(i)

 ##### float 浮点型 #####

 a = float(1)

 print(a)

 ###### 判断对象是不是属于int实例 #########

 a = 5

 b = isinstance(a,int)

 print(b)

 ######## globals 返回全局变量 ########

 ######## locals 返回当前局部变量 ######

 name = 'nick'

 def hi():

     a = 1

     print(locals())

 hi()

 print(globals())

 ########## map 遍历序列,对序列中每个元素进行操作,最终获取新的序列。 ##########

 li =  [11,22,33]

 def func1(arg):

     return arg + 1  #这里乘除都可以

 new_list = map(func1,li)  #这里map调用函数,函数的规则你可以自己指定,你函数定义成什么他就做什么操作!

 for i in new_list:print(i)

 ###### max 返回集合中的最大值 ######

 ###### min 返回集合中的最小值 ######

 a = [1,2,3,4,5]

 s = max(a)

 print(s)

 n = min(a)

 print(n)

 ####### pow 返回x的y次幂 ########

 a = pow(2,10)

 print(a)

 a = pow(2,10,100)   #等于2**10%100,取模

 print(a)

 ######## round 四舍五入 ########

 a = round(9.5)

 print(a)

 ######## sorted 队集合排序 ########

 char=[", "a","B","nick","c" ,"A", "_", "ᒲ",'a']

 new_chat = sorted(char)

 print(new_chat)

 for i in new_chat:

     print(bytes(i, encoding='utf-8'))

 ######## sum 求和的内容 ########

 a = sum([1,2,3,4,5])

 print(a)

 a = sum(range(6))

 print(a)

 ######## __import__ 通过字符串的形式,导入模块 ########

 # 通过字符串的形式,导入模块。起个别名ccas

 comm = input("Please:")

 ccas = __import__(comm)

 ccas.f1()

 # 需要做拼接时后加 fromlist=True

 m = __import__("lib."+comm, fromlist=True)

内置函数

匿名函数

Python全栈开发【基础三】的更多相关文章

  1. python全栈开发day38-css三种引入方式、基础选择器、高级选择器、补充选择器

    一.昨日内容回顾 div:分割整个网站,很多块 (1)排版标签 (2)块级标签 独占一行 可以设置高和宽,如果不设置宽高,默认是父盒子的宽 span: (1) 小区域 (2)文本标签 (3)在一行内显 ...

  2. Python全栈开发【基础四】

    Python全栈开发[基础四] 本节内容: 匿名函数(lambda) 函数式编程(map,filter,reduce) 文件处理 迭代器 三元表达式 列表解析与生成器表达式 生成器 匿名函数 lamb ...

  3. Python全栈开发【基础二】

    Python全栈开发[基础二] 本节内容: Python 运算符(算术运算.比较运算.赋值运算.逻辑运算.成员运算) 基本数据类型(数字.布尔值.字符串.列表.元组.字典) 其他(编码,range,f ...

  4. Python全栈开发【基础一】

    Python全栈开发[第一篇] 本节内容: Python 的种类 Python 的环境 Python 入门(解释器.编码.变量.input输入.if流程控制与缩进.while循环) if流程控制与wh ...

  5. python全栈开发中级班全程笔记(第二模块、第四章(三、re 正则表达式))

    python全栈开发笔记第二模块   第四章 :常用模块(第三部分) 一.正则表达式的作用与方法 正则表达式是什么呢?一个问题带来正则表达式的重要性和作用      有一个需求 : 从文件中读取所有联 ...

  6. python全栈开发中级班全程笔记(第二模块、第三章)(员工信息增删改查作业讲解)

    python全栈开发中级班全程笔记 第三章:员工信息增删改查作业代码 作业要求: 员工增删改查表用代码实现一个简单的员工信息增删改查表需求: 1.支持模糊查询,(1.find name ,age fo ...

  7. Python全栈开发【面向对象】

    Python全栈开发[面向对象] 本节内容: 三大编程范式 面向对象设计与面向对象编程 类和对象 静态属性.类方法.静态方法 类组合 继承 多态 封装 三大编程范式 三大编程范式: 1.面向过程编程 ...

  8. python 全栈开发之路 day1

    python 全栈开发之路 day1   本节内容 计算机发展介绍 计算机硬件组成 计算机基本原理 计算机 计算机(computer)俗称电脑,是一种用于高速计算的电子计算机器,可以进行数值计算,又可 ...

  9. python全栈开发中级班全程笔记(第二模块、第四章)(常用模块导入)

    python全栈开发笔记第二模块 第四章 :常用模块(第二部分)     一.os 模块的 详解 1.os.getcwd()    :得到当前工作目录,即当前python解释器所在目录路径 impor ...

随机推荐

  1. Microsoft.CompactFramework.CSharp.targets not found

    今天打开VS2008的智能设备项目,报以下错误,应该是文件找不到了. The imported project "C:\WINDOWS\Microsoft.NET\Framework\v3. ...

  2. php+mysql预查询prepare 与普通查询的性能对比

    prepare可以解决大访问量的网站给数据库服务器所带来的负载和开销,本文章通过实例向大家介绍预查询prepare与普通查询的性能对比,需要的朋友可以参考一下. 实例代码如下: <?php cl ...

  3. Python&lpar;迭代器 生成器 装饰器 递归 斐波那契数列&rpar;

    1.迭代器 迭代器是访问集合元素的一种方式.迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束.迭代器只能往前不会后退,不过这也没什么,因为人们很少在迭代途中往后退.另外,迭代器的一大优 ...

  4. Linux&lowbar;hadoop&lowbar;install

    1. Build Linux env my env is VM RedHat Linux 6.5 64bit    set fixed IP                  vim /etc/sys ...

  5. &OpenCurlyDoubleQuote;canvas画布仿window系统自带画图软件&quot&semi;项目的思考

    "canvas画布仿window系统自带画图软件"项目的思考 首先贴上DEMO图,并没有美化效果.对UI有要求的,请自带补脑技术. 思考一 在做项目的过程中,我发现"工具 ...

  6. 2017年11月Dyn365&sol;CRM用户社区活动报名

    UG是全球最大Dynamics的用户组织,由最终用户自发组织,由行业有经验的专家自愿贡献知识和经验的非营利机构,与会人员本着务实中立的态度,不进行推介产品,服务以及其他营销行为.在美国,微软Dynam ...

  7. Linux环境变量配置全攻略

    Linux环境变量配置 在自定义安装软件的时候,经常需要配置环境变量,下面列举出各种对环境变量的配置方法. 下面所有例子的环境说明如下: 系统:Ubuntu 14.0 用户名:uusama 需要配置M ...

  8. 19-05【icloud】照片备份

    icloud提供了免费的存储空间,5G,超过这个量需要单独购买空间:我用的是50G,每月6元. 如果在mac或者iphone上开启了本地的照片流,则会自动同步到icloud,同时各个设备的客户端(ip ...

  9. Spring Boot从入门到精通之:一、Spring Boot简介及快速入门

    Spring Boot Spring Boot 简介 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来 ...

  10. 2018年10月19 手记 - 身为开发者的我de窘境

    从10月1国庆过完节回来,那已经是7号了,之后便开始紧锣密鼓的筹划着接下来11月份的公司组织的对外活动,这边新来的产品对产品或者说对任务很是负责,并且策划了很多的方案,并且乐意站在我们开发的角度上去考 ...