python只有函数没有过程

函数有运行完了之后会有返回值、过程没有

def back():

  return 1,'gg',2    #会有返回值(1,'gg',2) #注意默认返回元祖

一、全局和局部变量

在函数里面想改变全局变量的值,需要加上:global XX列表或单一值

二、内嵌函数

def ee():

  print "123"

  def ww()

    print "456"

  ww()        #最后在调用一下  你就可以在命令行输入ee()  会有123 456输出

在外面调用ww() 是无法调用的

三、闭包

函数式编程的重要语法结构,函数式编程是一种编程方式,其最经典的一个编程语言就是lisp 主要用于绘图与人工智能,天才程序员才使用的语言

闭包概念:如果在一个内部函数里,对外部作用域(不是在全局变量的引用),那么内部函数就被认为闭包

def Funx():

  def FunY(y):

    return x * y

  return FunY

可以这样用:

i = FunX(8)

i(5)          #先赋值x 再赋值y 最后输出40

在内部函数中只能调用外部函数的局部变量,但不能修改

还有调用的注意,看下面的这个栗子:

x=10
def www():
  x *= x

  return x       #发现会报错,因为x=10是全局变量,而自定义函数里面的x是局部变量的x,

print www()         #跟外面的x是不一样的

同样下面的这种引用也会报错:

def Fun1():

  x = 5

  def Fun2():

    x *= x

    return x

  return Fun2()

现在输入Fun1()会报错,因为python会把Fun2()函数中的x当做内部函数的变量,不会引用外部函数的变量

避免这样的方法以前是这样做:

def Fun1():

  x = [5]

  def Fun2():

    x [0]*= x[0]

    return x[0]

  return Fun2()        #把数据的容器变一下,变为列表

python3现在不用那么麻烦,直接价加一个东西就好了:

def Fun1():

  x = 5

  def Fun2():

    nonlocal x        #变为非局部变量,就可以在内部函数里面使用外部函数的变量

    x *= x

    return x

  return Fun2()
#在函数中修改全局变量的值,使用global xx变量

#在嵌套的函数中,想在内部函数中修改外部函数的局部变量 使用nonlocal

##################################################################

四、匿名函数:lambda

python写一些执行脚本时,使用lambda就可以省下定义函数的过程,使得代码更简单,还可以避免重复,简化代码可读性

def ww(x):

  return x * x    #两行代码

lambda x : x*x     #几个字就解决   还可以 g = lambda x : x*x  就可以使用 g(x)来替代这个式子

五、介绍两个BIF

1、filter(函数,可迭代的对象列表元祖什么的)  #有两个参数,其返回结果会是使用函数在对象中的每个元素进行迭代

                     #并返回为TRUE的列表

list(filter(None,[1,0,Flase,True]))    #会返回[1,True]

list(filter((lambda x: x %2),range(10)))  #自定义一个函数:用x除以2 得到余数,范围是1到10

                      #用filter处理,并生成list

2、map()

map在语言里面是映射的意思。将序列的每一个元素作为函数的参数,并进行迭代加工

list(map(lambda x : x*2,range(10)))    #生成0,2,4,6,8,10,12,14,16,18

六、补充

def funOut():
  def funIn():
  print('宾果!你成功访问到我啦!')
return funIn

上面的函数怎么能访问funIn?

第一种方法:funOut()()

第二种方法:go = funOut()

      go()

下面介绍一个很好的方法,用于看有很多符号的字符串中的字母、数字

str1='''xxx'''          #str1可以很长很长,有许多你看不懂的¥#!@%&***¥#,其中夹杂着字母数字
for each in str1:
  if each not in list1:
    list1.append(each)    #输出的是单一的‘@’  ‘#’  ‘¥’  ‘%’  ‘……’  ‘&’  ‘&’  ‘*’
print (list1)            #情况一目了然

可以继续改良一下:

str1 = '''拷贝过来的字符串'''
list1 = []

for each in str1:
  if each not in list1:
    if each == '\n':
      print('\\n', str1.count(each))
    else:
    print(each, str1.count(each))
list1.append(each)

Python入门--12--函数与变量的更多相关文章

  1. Python入门篇-函数、参数及参数解构

    Python入门篇-函数.参数及参数解构 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.函数概述 1>.函数的作用即分类 函数 数学定义:y=f(x) ,y是x的函数,x ...

  2. Python入门学习:1.变量和简单的数据类型

    python入门学习:1.变量和简单的数据类型 关键点:变量.字符串.数字 1.1 变量的命名和使用1.2 字符串1.3 数字1.4 注释 1.1 变量的命名和使用   变量,顾名思义是一个可变的量, ...

  3. Python入门之 函数

    Python入门之 函数 1.初识函数 1.1 什么是函数? <1> 将某个功能封装到一个空间中就是一个函数 <2> 减少重复代码 1.2 定义函数 def -- python ...

  4. Python入门-初始函数

    今天让我们来初步认识一个在python中非常重要的组成部分:函数 首先,让我们来幻想这样一个场景: 比如说我们现在想要通过社交软件约一个妹子,步骤都有什么? print('打开手机 ') print( ...

  5. python基础(12):函数(二)

    1. 函数参数 之前我们说过了传参,如果我们需要给⼀个函数传参,⽽参数⼜是不确定的,或者我给⼀个函数传很多参数,我的形参就要写很多,很⿇烦,怎么办呢,我们可以考虑使⽤动态参数. 形参的第三种: 动态参 ...

  6. Python入门之函数的介绍/定义/定义类型/函数调用/Return

    本篇目录: 一. 函数的介绍 二. 函数的定义 三. 定义函数的三种类型 四. 函数调用的阶段 五. Return返回值 ======================================= ...

  7. python入门15 函数

    函数的主要作用是实现代码复用 1 python内置函数 2 匿名函数lambda 3 自定义函数 def functionname(arg):... #coding:utf-8 #/usr/bin/p ...

  8. Python中的函数与变量

    本节内容 函数的定义方法 函数功能 函数的返回值 函数的形参与实参 全局变量与局部变量 递归 函数的作用域 匿名函数lambda 函数式编程 常用内置函数 其他内置函数 函数 函数的定义方法 函数就相 ...

  9. python中的函数和变量

    本节内容 函数的定义方法 函数功能 函数的返回值 函数的形参与实参 全局变量与局部变量 递归 函数的作用域 匿名函数lambda 函数式编程 常用内置函数 其他内置函数 函数 函数的定义方法 函数就相 ...

随机推荐

  1. 快学UiAutomator UiDevice API 详解

    一.按键使用 返回值 方法名 说明 boolean pressBack() 模拟短按返回back键 boolean pressDPadCenter() 模拟按轨迹球中点按键 boolean press ...

  2. shell脚本,如何写进度条。

    [root@localhost ~]# cat jindutiao.sh #!/bin/bash #进度条 n=$((/)) N=$((/)) ` do sleep 0.01 [ $(($i%$n)) ...

  3. ios软件设计中注意点

    1.取消系统自带渲染效果 2.取消屏幕旋转 3.项目中搜索丢失文件

  4. Bluefruit LE Sniffer - Bluetooth Low Energy (BLE 4.0) - nRF51822 驱动安装及使用

    BLE Sniffer https://www.adafruit.com/product/2269 Bluefruit LE Sniffer - Bluetooth Low Energy (BLE 4 ...

  5. 五分钟入门 Dingo API

    基于 https://laravel-china.org/doc... 文档更简洁的描述Dingo,直戳重点,注重实践 Django-Book 概述 Dingo API帮助您轻松快速地构建自己的API ...

  6. day20-python之装饰器

    1.装饰器 #!/usr/bin/env python # -*- coding:utf-8 -*- import time def cal(l): start_time=time.time() re ...

  7. Flask 系列之 构建 Swagger UI 风格的 WebAPI

    说明 操作系统:Windows 10 Python 版本:3.7x 虚拟环境管理器:virtualenv 代码编辑器:VS Code 实验 环境初始化 # 创建项目目录 mkdir helloworl ...

  8. Verilog学习笔记基本语法篇(五)········ 条件语句

    条件语句可以分为if_else语句和case语句两张部分. A)if_else语句 三种表达形式 1) if(表达式)          2)if(表达式)               3)if(表达 ...

  9. git 打补丁,即git review之后需要二次修改并提交代码

    假如代码已经push上去了,可是当review时,发现有地方需要修改,你可以继续在本地修改你的文件,之后git status查看修改的文件,然后git add修改的文件,此时不能直接git commi ...

  10. js 加密混淆

    没有找到合适的加密算法就用的以下方式 拿webpack打包一遍,再拿uglify压缩一遍,再拿eval加密一遍 1. webpack ./init.js ./webpack/bundle.js -p ...