函数:(方法、功能)
作用:1、提高代码的复用性,2、让代码更简洁
函数命名方法
 
函数不调用是不会被执行的
 
 
def calc(a,b): #形参
#位置参数,必填,否则报错
res = a * b
print('%s * %s = %s' %(a,b,res))
calc(7,8) #实参
 
def op_file(file_name,conent=None):
#默认值参数,默认conent=None,非必填,如果未传,则打印None
# print(file_name)
# print(conent)
f = open(file_name,'a+',encoding='utf-8')
f.seek(0)
if conent:
f.write(conent)
f.flush()
else:
print(f.read())
f.close()
op_file('a.txt','aaa')
op_file('a.txt')
 
#局部变量:只在函数里面使用
以上代码中,不能将读取的数据取出来。可用return返回出结果。
def op_file(file_name,conent=None):
#默认值参数,默认conent=None,非必填,如果未传,则打印None
# print(file_name)
# print(conent)
f = open(file_name,'a+',encoding='utf-8')
f.seek(0)
if conent:
f.write(conent)
f.flush()
else:
all_users = f.read()
return all_users #调用完函数之后,返回什么结果
f.close()
# op_file('a.txt','aaa')
res = op_file('a.txt') #将返回的函数写到res里面
print(res)
 
return的作用
1、把函数处理的结果返回回来
2、结束函数,函数里面遇到return,函数会立即结束。
3、如果return 后面不带参数,则返回None,用于结束函数
def haha():
for i in range(5):
print(i)
if i == 3:
return
res = haha()
print(res)
 
没有写return的时候,默认返回None
def check(pwd):
#长度6-11
#包含字母和数字
import string
if len(pwd) >5 and len(pwd)<12:
if set(pwd) & set(string.ascii_letters) and set(pwd ) & set(string.digits):
print('密码合法')
else:
print('密码不合法')
else:
print('密码不合法')
res = check('123') #没有写return的时候,默认返回None
print(res)
 
函数之间是可以互相调用的
 
常量:就是一个不变的值,一般,常量名全是大写字母
 
全局变量:公共的变量,都可以用的变量
如果要改全局变量的话,那你要先声明一下(global),修改的是全局变量
尽量少用全局变量,因为:
1、不安全,所有人都可以改,多个人写代码时可能互相影响。
2、全局变量会一直占着内存
 
函数传参方式,也可以指定形参传值,不用根据形参顺序依次传。
 
函数不固定参数
def syz(*args): #参数组,不确定参数数量,args只是一个变量名
print(args)
syz() #()
syz('aaa','bbb','ccc') #('aaa', 'bbb', 'ccc')
syz('dd') #('dd',)
syz(123) #(123,)
 
1、参数非必填
2、参数数量无限制
3、把传过来的参数放到元组中
 
也可以传一个形参,一个不固定参数。
def syz(a,*args):
pass
 
关键字参数
def syz2(**kwargs):
print(kwargs)
syz2() #{}
syz2(name = 'pzp',age = 38) #{'name': 'pzp', 'age': 38}
syz2(name = 'pzp',age = 38,addr = '回龙观',home = 'HZ') #{'name': 'pzp', 'age': 38, 'addr': '回龙观', 'home': 'HZ'}
syz2('nhy') #报错
 
1、参数非必填
2、参数数量无限制
3、把传过来的参数放到字典中,要采用k = v 的格式。
 
def syz2(time,**kwargs):
print(kwargs)
syz2('2018')
syz2(name = 'pzp',age = 38,time = '2018')
syz2('2018',name = 'pzp',age = 38,addr = '回龙观',home = 'HZ')
 
递归调用
函数自己调用自己,写代码时少用递归,效率没有循环高,而且最多递归999次,999次之后会报错。
def test1():
num = int(input('please enter a number:'))
if num%2 == 0:
return True #如果是偶数的话,程序就退出了,返回true
print('不是偶数请重新输入')
return test1() #如果不是偶数的话继续调用自己,输入值
print(test1()) #调用test1()
 
循环999次报错
i = 0
def test():
global i
i +=1
print(i)
test()
print(test())
test()
 
内置函数
python自带的一些函数,直接拿过来用
id() #
type()
print()
input()
list()
set()
str()
dict()
float()
print(all([1,2,3,4]))#判断可迭代的对象里面的值是否都为真
print(any([0,1,2,3,4]))#判断可迭代的对象里面的值是否有一个为真
print(bin(10).replace('0b',''))#十进制转二进制,
print(bool('s'))#把一个对象转换成布尔类型
print(chr(10))#打印数字对应的ascii
print(ord('b'))#打印字符串对应的ascii码
print(dir(1))#打印传入对象的可调用方法
print(exec('def a():pass'))#执行python代码 ipython Terminal
exec('def a():print("aaa")')
a = eval('[1,2,3,4]') #yeshi yonglai zhix python代码的,只能执行简单的代码,比如运算等’
print(a)
print(filter(lambda x:x>5,[12,3,12,2,1,2,35]))#把后面的迭代对象根据前面的方法筛选
print(map(lambda x:x>5,[1,2,3,4,5,6]))
print(max(111,12))#取最大值
print(min(111,12))#取最小值
print(abs(-111))#取绝对值
print(round(11.11,2))#取几位小数
print(sorted([2,31,34,6,1,23,4]))#排序
 
 
 

5. Python 函数的更多相关文章

  1. python 函数之day3

    一 函数的语法及特性 什么是函数? 定义:函数是一个功能通过一组语句的集合,由名字(函数名)将其封装起来的代码块,要想执行这个函数,只要调用其函数名即可. 特性: 减少重复代码 使程序变的可扩展 使程 ...

  2. Python函数作用域的查找顺序

    函数作用域的LEGB顺序 1.什么是LEGB? L:local 函数内部作用域 E:enclosing 函数内部与内嵌函数之间 G:global 全局作用域 B:build-in 内置作用域 2.它们 ...

  3. Python函数讲解

    Python函数

  4. Python函数信息

    Python函数func的信息可以通过func.func_*和func.func_code来获取 一.先看看它们的应用吧: 1.获取原函数名称: 1 >>> def yes():pa ...

  5. Python函数参数默认值的陷阱和原理深究"

    本文将介绍使用mutable对象作为Python函数参数默认值潜在的危害,以及其实现原理和设计目的 本博客已经迁移至: http://cenalulu.github.io/ 本篇博文已经迁移,阅读全文 ...

  6. Python开发【第四章】:Python函数剖析

    一.Python函数剖析 1.函数的调用顺序 #!/usr/bin/env python # -*- coding:utf-8 -*- #-Author-Lian #函数错误的调用方式 def fun ...

  7. Python函数解析

    对于Python的函数,我们需要记住的是: 1. 函数的默认返回值是None. 2. python是一个自上而下逐行解释并执行的语言.因此,函数的定义必须在函数被调用之前.同名的函数,后定义的会覆盖前 ...

  8. Python入门笔记(18):Python函数(1):基础部分

    一.什么是函数.方法.过程 推荐阅读:http://www.cnblogs.com/snandy/archive/2011/08/29/2153871.html 一般程序设计语言包含两种基本的抽象:过 ...

  9. Python函数1

    Python 函数命令的使用 想想我们之前数学中学到的函数,首先我们需要定义一个函数,例如f(x)=x, 当x输入任意数的时候,f(x)都能输出和x相等的数值. 那么在Python中是如何实现的呢? ...

  10. python函数传参是传值还是传引用?

    首先还是应该科普下函数参数传递机制,传值和传引用是什么意思? 函数参数传递机制问题在本质上是调用函数(过程)和被调用函数(过程)在调用发生时进行通信的方法问题.基本的参数传递机制有两种:值传递和引用传 ...

随机推荐

  1. AC和瘦AP组网

    ac和瘦ap组网 参考了这篇文章[Cisco Packet Tracer]WLC配置瘦AP指南_时间进行的小宇的博客-CSDN博客_思科瘦ap配置命令 服务器server-pt配置 先设置IP地址,随 ...

  2. vue table表格form表单校验输入内容,elment ui table内容校验 form表单input验证

    //html 部分<el-form :model="formObj" :rules="rules"> <el-table :data=&quo ...

  3. 软件开发流程-路飞项目需求- pip永久换源-虚拟环境-路飞项目前后端创建-包导入-后端项目调整目录

    目录 软件开发流程-路飞项目需求- pip永久换源-虚拟环境-路飞项目前后端创建-包导入-后端项目调整目录 今日内容概要 今日内容详细 1 软件开发流程 2 路飞项目需求 3 pip永久换源 4 虚拟 ...

  4. 集群activemq重启报错java.lang.OutOfMemoryError: GC overhead limit exceeded

    最近安全部门同事说我们环境有个弱密码漏洞,activemq后台的密码不够复杂,需要改为复杂密码. 我登录了他们扫出来的url,输入admin admin,果然进来了.不得不说上一位已离职同事的安全意识 ...

  5. nginx 反向代理 (websocket)后报 - 400 bad request

    nginx的反向代理. nginx.conf中的配置如下: location / {        proxy_http_version                1.1;         pro ...

  6. python学习——set集合,sorted函数

    题目: 输入a,b班的名单,并进行如下统计. 输入格式: 第1行::a班名单,一串字符串,每个字符代表一个学生,无空格,可能有重复字符.第2行::b班名单,一串字符串,每个学生名称以1个或多个空格分隔 ...

  7. docker简单实战

    1.为ubuntu镜像添加ssh服务 1.1查看可用的ubuntu版本 1)访问ubuntu镜像库地址:https://hub.docker.com/search?q=ubuntu&type= ...

  8. <string> <cstring> <string.h>

    <string>是C++标准库头文件,包含了拟容器class std::string的声明(不过class string事实上只是basic_string<char>的type ...

  9. python之目录结构01

    本文档主要是自己学习巩固以及复习之用,主要写些自己的学习体会! 以下为一个简要的目录构: Foo/ |-- bin/ | |-- foo | |-- foo/ | |-- tests/ | | |-- ...

  10. for in 和 for of 的区别(枚举解释)

    一.for....of 1.for-of是作为ES6新增的遍历方式,允许遍历一个含有iterator接口的数据结构(数组.对象等)并且返回各项的值,普通的对象用for-of遍历是会报错的. 2.for ...