Python函数

函数(Function)也叫方法(Method)
内置函数:print() input() len()…
定义函数:

def 函数名(参数列表):
	函数体
	return 表达式

函数目的:把需要多次执行代码放在一起,方便调用。

函数规则说明:

  1. 函数代码块以def开头,后面紧跟函数名和圆括号"()"。
  2. 函数内容以冒号起始,并且缩进。
  3. 函数名的命名规则同变量的命名,只能是字母、数字和下划线组成,不能以数字开头,不允许有关键字。
    关于return(返回值)理解:
def add(a,b):
  res=a/b
  return res #当调用这个函数时便可接收该值
  return a/b #简写形式,意思一样
res = add(22,11)#两个res不影响 赋值输出
print(res)
print(add(22,11))#也可以直接输出
None NoneType 表示什么都没有 函数没有返回值 就会有None
def add(a,b):
  print(a+b)
res = add(3,2)
print(res)#就会显示None
#在知乎上看到了一个关于return(返回值)的比喻,函数是工序,参数是原材料,返回值是成品。

函数中的参数:

def test(name):#name—>形式参数:定义函数时
  print("hello "+name)
test('SKY')#SKY—>实际参数:调用函数时

位置参数:参数需位置对应,位置参数需在前(当有默认参数和关键字参数时)。

print('hello',end='')#关键字参数,不换行
print('word')#关键字参数  空字符"里面啥都没有" 空格字符"中间有个空格"
print('hello','word',sep='|')#sep=''引号里面指定参数之间分隔符号
#end sep 关键字参数,可以同时使用 不区分位置 通过关键字参数修改某个参数值
def dic(name,age):
  d = {'name':name , 'age':age}#创建字典
  return d
print(dic('lisi',20))
# 函数和字典使用:(这里就有点体现位置参数了,创建字典,你的名字、年龄。总不能颠倒吧!hhhh)

不定长参数:

def fun(hello,name,*tup,**dic):
  print(hello,end=' ')
  print(name)
  print(tup)#‘*’一个会构成元组
  print(dic)#‘**’会构成字典
fun("hello","lisi",'14岁','唱歌',sch = 'sky')
#加上*表示多个,可以传递0个元素也可以多个会把传递的这些元素构成元组或字典赋值给变量
#元组:当元组内只包含一个元素的话,需要在后边加上一个逗号,否则括号会被当做运算符使用。
#元组和字符串类似,下标索引从0开始,可以进行截取、组合等。元组中的元素是不允许进行修改

变量的局部作用域和全局作用域:
函数内是局部作用域;
函数内的变量局部变量,函数内的变量只在函数内生效。
函数外是全局作用域;
函数外是全局变量,可以在任何地方使用,要注意顺序。
当局部变量与全局变量重名的时候,局部作用域使用局部的,全局作用域使用全局的。
注意:使用global和nonlocal关键字时,用global修饰的变量之前可以不存在;而在使用nonlocal修饰的变量需要已经存在。

l = 'I love '
def txt():
	global l #用global关键字进行声明l这个局部变量。
	l += "you"
	print("想对你说:"+l)
txt()

创建模块并导入:
把函数定义在一个单独的文件中,成为一个模块,文件名就是模块名。
import xxx(.py省略,导入模块中的所有函数)
xxx.方法名(在模块文件中的名称)
注:1.保证模块文件与当前文件在同一个目录下;2.调用方法前面要加上模块名。
导入模块中某个方法:(模块中方法太多提高程序运行速度可以单独调用方法)
from 模块名 import 函数名,函数名
from 模块名 import 函数名 as new_XXX(出现重名或名字太长,可以加个as起别名,再调用)
同理: import 模块名 as new_XXX (模块也能如此 )
导入模块所有方法:
import 模块名
from 模块名 import *(慎用,出现重名,程序容易挂掉)
函数的递归调用:函数内部调用自身。

def f(n):
  if n == 1:
    return 1 #控制递归调用之后程序停止,不写这个会带负数计算和我们理想的不一样了
  he = f(n-1)+n#eg:f(3)=f(2)+3=f(1)+2+3=1+2+3 有点数学题的味道哈(^_^!!!)
  return he
print(f(100))#计算1+2+3+...+99+100的和
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值