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. 上下文 xx

    上下文,就是指在程序中的某个位置,可以访问到的所有资源的总和. 具体说来,在程序中资源可能是一个变量.一个常量.一个类的引用等等.

  2. CSS3与弹性盒布局

    1.弹性盒布局对齐模式 1.1.弹性盒子 在规定弹性盒子之中的子级元素换行显示之前父级元素必须是弹性盒子模型,也就是设置 display 为 flex 代码如下: <!DOCTYPE html& ...

  3. Mac如何让调整窗口大小更简单

    在使用Mac的时候,你能把鼠标的光标悬停在任何程序的边缘,当光标自动变成箭头样式后,按住鼠标左键你将能随意拖动来改变程序窗口的大小.但是,这里有个问题,我们有时候很难控制把鼠标光标移动在正确的窗口边缘 ...

  4. k8s framework

    reference 1. k8s master framework master master 是k8s cluster运行着daemon服务:kube-apiserver, kube-schedul ...

  5. jpeg和jpg的区别是什么

    JPG是JPEG的简写,jpg是后缀名,jpeg既可作为后缀名,又能代表文件格式:JPG——JPEG文件格式. 我们在系统自带的画图程序里保存文件,在保存类型:JPEG(*.JPG,*.JPEG,*. ...

  6. prototype中的ajax异步加载

    jquery前台处理: var param = {a:a}; $.post("*.do",param,function(data) { var columHtml = " ...

  7. layui和jquery冲突:Syntax error, unrecognized expression: +

    问题 layui创建table数据表格,但点击第二页时控制台报错,错误信息如下: 解决方法 https://fly.layui.com/jie/24224/ http://www.layui.com/ ...

  8. java在线聊天项目0.2版本 制作客户端窗体,使用swing(用户界面开发工具包)和awt(抽象窗口工具包) BorderLayout布局与GridLayout布局不同之处 JPanel设置大小

    代码如下: package com.swift; import java.awt.BorderLayout; import java.awt.Color; import javax.swing.JBu ...

  9. 分享一个C++与Python开发的中小型通用游戏服务端框架(跨平台,开源,适合MMORPG游戏)

    在开发一款游戏项目时,在立项时我们往往会考虑或者纠结很多,比如: 1,对于开发来说:服务端和客户端应该选择什么语言?用什么协议通信才更效率?协议后期如何维护?Socket是用长连接还是短连接?TCP还 ...

  10. 【css】【动画】【转发】旋转动画

    <!DOCTYPE HTML> <html> <head>     <meta charset="utf-8">     <s ...