函数(def)

一、为什么要使用函数:

面向过程的编程在代码里有很多代码是可以重复利用的,如果使用面向过程编程会使代码显得纷繁复杂,不利于他人和自己日后的阅读。而在函数式编程里,则可以把每个可重复利用的功能封装在一个函数里,当用的时候可以直接调用这个函数,使代码更加的简洁、易读。

二、函数的定义方式:

1 def f1():
2     pass

1、def:函数关键字
2、f1:函数名

3、():形式参数(变量的作用)

三、执行函数:

1、方式:f1():

2、函数体执行完毕有return值,赋值给f1(),默认返回值为None。

3、函数在代码里不执行,只有在调用时才执行。

4、f1()代表的实际参数。

四、参数:

函数在传递参数时传递的是变量的引用而非再次创建新的内存。

1 def f1(a):
2     a.append(9)
3 li=[11,22,33,44]
4 f1(li)
5 print(li)

1、普通参数:有几个形式参数就传几个实际参数,默认按顺序一 一对应。

1 def f1(name,age):
2     print(name)
3     print(age)
4 f1("Guido",27)

2、默认参数:可以通过变量的形式指定参数,默认参数要放在参数列表的最后面。

1 1 def f1(name,age,who="you")
2 2     print(name,age,who)
3 3 f1("guido",27)                       #who="you"
4 4 f1("guido",27,"she")               #who=“she”

3、动态参数:

(1)多接收值的形式参数(*arges)输出形式为tuple:

    普通输入实际参数:传几个可按顺序接收几个。

    输入(*arges)的实际参数:会把arges所指向的内容做一个for循环,把每个元素分别传入形式参数。

(2)多接收值的形式参数(**kwarges)输出形式为dict:

    实际参数必须有key=value

    实际参数f1(**dic)把dic的内容整体以字典的形式传入(**kwarges)中

(3)万能参数:

    def f1(*arges,**kwarges)

4、format格式化:

1 S1="I am {0}, age {1}".format("Guido",27)
2 print(S1)
3 S2="I am {0}, age {1}".format(*["alex",18])
4 print(S2)
5 S3="I am {name},age {age}".format(age=27,name="Guido")
6 print(S3)
7 dic={"name":"Guido","age":27}
8 S4="I am {name},age {age}".format(**dic)
9 print(S4)

五、全局变量(所有作用域都可用):
1、函数体本身就是一个作用域,作用域内的变量只有本作用域内才可以使用。

2、局部变量优先在作用域内使用,没有再到全局变量里找到并使用。

3、在作用域内可以对全局变量不可重新赋值,但可以修改。

4、在作用域内若想修改全局变量,必须使用global。

1 NAME=("Guido")
2 def f1()
3     global name
4     name=("admirers")
5     print(name)
6 f1()
7 print(name)

5、全局变量要是用大写:NAME

六、三元(三目)运算:

三元运算又叫三目运算,其实就是if...else...的简写方式

1 if 1==1:
2     name=("Guido")
3 else:
4     name=("admirers")
5
6 三元运算表达式:
7 name=("Guido") if 1==1 else name=("admirers")

七、lambda表达式(可描述简单的函数):

1 def f1(a,b):
2     return a+100
3
4 f2=lambda a,b : a+100

八、实例:

1、登录注册

 1 def login(username,password):
 2 ‘‘‘
 3     用户登录
 4     username:用户输入用户名
 5     password:用户输入密码
 6     return:True登陆成功
 7             False登录失败
 8 ‘‘‘
 9     f=open("text","r")
10     for line in f:
11         line_list=line.strip().split("@")
12         if line_list[0]==username and line_list[1]==password:
13             return True
14     return False
15
16
17 def register(username,password):
18 ‘‘‘
19     用户注册
20     username:用户名
21     password:密码
22     return:None默认
23 ‘‘‘
24     f=open("text","a")
25     temp=(\n" + username + "@" + password)
26     f.write(temp)
27     f.close()
28
29
30 def main():
31     t=input("1:登陆;2:注册")
32     if t=="1":
33         user=input("请输入用户名:")
34         pwd=input("请输入密码:)
35         r=login(user,pwd)
36         if r:
37             print("登陆成功")
38         else:
39             print("登陆失败")
40     elif t=="2":
41         user=input("请输入用户名:")
42         pwd=input(”请输入密码:“)
43         register(user,pwd)

2、发邮件(武沛齐老师范例)

 1 import smtplib
 2 from email.mime.text import MIMEText
 3 from email.utils import formataddr
 4
 5
 6 msg = MIMEText(‘邮件内容‘, ‘plain‘, ‘utf-8‘)
 7 msg[‘From‘] = formataddr(["武沛齐",‘[email protected]‘])
 8 msg[‘To‘] = formataddr(["走人",‘[email protected]‘])
 9 msg[‘Subject‘] = "主题"
10
11 server = smtplib.SMTP("smtp.126.com", 25)
12 server.login("[email protected]", "邮箱密码")
13 server.sendmail(‘[email protected]‘, [‘[email protected]‘,], msg.as_string())
14 server.quit()
时间: 2024-10-10 21:47:49

函数(def)的相关文章

python函数def

#函数就是实现一个特定功能的程序块 #下面这个函数实现了打印helloworld的功能 def print_hello(): print('hello world!') #这是调用方法 print_hello() #下面的函数,实现了传入参数的功能 #在函数中可以嵌套使用其他函数 def print_name(name): print_hello() print('hello',name) #带参数的调用方法 print_name('jack')

基本用法:2《定义函数def、返回值return、元组tuple》

2 <定义函数def.返回值return.元组tuple>  [功能] 返回函数return ' '不需要立刻print,先存起来需要再print() (1)[局部变量]和[全局变量] 1 #(1)[局部变量]和[全部变量] 2 # A.[局部变量]函数内部定义,只能内部使用,外部不能使用 3 def egg(): 4 global a # 声明a是全局变量,print(a+2) 就不会报错了 5 a=108 6 print(a+1) 7 egg() 8 print(a+2) 9 10 # B

基本用法:6《学习模块.py :&lt;类class /函数def&gt;》

6 <学习模块.py :<类class /函数def>> 模块常用语句 import x(下面红色框内就是test.py模块,import就是在main.py里调用test.py) if __name__ == '__main__' 下的程序,指定 Python 模拟环境的程序入口(当前正在运行的.py文件),只在当前运行的.py文件生效, 不支持被导入其他.py文件中.Python 本身并没有规定这么写,这是一种程序员达成共识的编码习惯. (1)举例子 1 # 1.举例子 2 #

python 函数(function)、函数(def)、函数(return)

函数  function 什么是函数: 函数是可以重复执行的语句块,可以重复使用 函数是面向过程编程的最小单位 函数的作用: 1.用于封装语句块,提高代码的重用性 2.定义用户级别的函数 def 语句  (把编码打包) call(调用) 语法: def函数名(形参列表): 语句块(代码块) 说明: 1.函数的名字就是语句块的名称 2.函数名的命名规则与变是一名相同(函数名必须为标识符) 3.函数名是一个变量(不要轻易对其赋值) 4.函数有自己的名字空间,在函数外部不可以访问函数内部的变量(注意)

Oldboy tenth day . I love Python. Tenth day- second 初识函数def()

上一篇有福利哦 嘿嘿嘿! 一, 周五内容回顾: 文件操作: open(文件路径, mode) mode 里面所有带b的 都是字节操作, 带b 可以省略 encoding 绝对路径: 从磁盘根目录去寻找 相对路径: 相对于当前文件的位置 常用操作: seek() 移动光标 开头seek(0) 结尾seek(0,2) tell() 获取光标的位置 truncate() 截断文件二, 作业: 6题,待会从做一遍 ''' 6,文件a1.txt内容(升级题) 序号 部门 人数 平均年龄 备注 1 pyth

for python 字典和函数def

关于python中的函数的def def 的定义参数:形参和实际参数 例如下面中的songer和songname为形参而“alan warker,play crime,tobu为实际参数” 关于参数顺序如果没有特殊说明则按照顺序来 def love_song_message(songer,songname): "定义喜欢歌手的姓名和曲目" print("\ni love called ".title() + songer.title() + "!"

Python之路20-高阶函数

#高阶函数 #变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收 #另一个函数作为参数,这种函数成为高阶函数 def add(x,y,f):     return f(x) + f(y) res = add (-1,2,abs) print (res)

python基础之函数

python 函数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print().但你也可以自己创建函数,这被叫做用户自定义函数. 定义一个函数 在Python中,定义一个函数要使用def语句,依次写出函数名.括号.括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回. 函数式编程和面向过程编程的区别: 函数式:将某功能代码封装到函数中,日后便无需重复编

Python学习笔记-函数篇

定义 返回单值 def my_abs(x): if x >= 0: return x else: return -x 返回多值 返回多值就是返回一个tuple import math def move(x, y, step, angle=0): nx = x + step * math.cos(angle) ny = y - step * math.sin(angle) return nx, ny 空函数 def nop(): pass 指定默认参数 必选参数在前,默认参数在后.默认参数需指向不

python 中的高阶函数

函数名其实就是指向函数的变量 >>> abs(-1) 1 >>> abs <built-in function abs> >>> a=abs >>> a(-1) 1 高阶函数:能接收函数做变量的函数 >>> def abc(x,y,f): ... return f(x)+f(y) ... >>> abc(-2,3,abs) 5 python中的内置高阶函数 map()函数和reduce(