
一、函数
(函数是以字母、数字和下划线组成的字符串,但是不能以数字开头)
函数是一段可以重复使用的代码,通过传递的参数返回不同的结果。例如:
语法:
def 函数名称():
代码块
Return [代表式]
def hello():
print ('你好')
print ('今天过的开心吗?')
hello()
hello()
hello()
hello()
hello()


1.无参函数
语法:[变量]=函数名称()
示例1:使用无参函数实现两数相加并输出二者之和。
代码如下:
vim def1.py
def add():
op1=10
op2=20
rt=op1+op2
print (op1,'+',op2,'=',rt)
return
add()

把上面的代码进行修改,用return返回结果值:
def add():
op1=10
op2=20
rt=op1+op2
return rt
i = add()
print ('结果是:',i)

示例2:输出九九乘法表
代码如下:
vim def2.py
def nine():
op1 = (1,2,3,4,5,6,7,8,9)
op2 = (1,2,3,4,5,6,7,8,9)
for i in op1:
for j in op2:
if j<=i:
print (j,'*',i,'=',j*i,end=' ')
print('')
return
nine()

使用函数时经常会犯一些错误,总结如下:
示例3:定义并调用函数,实现用户登录功能:
vim def3.py
user={}
def newuser():
prompt1 = 'login desired: '
while True:
name = input(prompt1)
if name in user:
prompt1 ='name taken,try another: '
continue
else:
break
pwd = input('password:' )
user[name] = pwd
def olduser():
name = input('login' )
pwd = input('password:' )
password = user.get(name)
if password == pwd:
print ('welcome back',name)
else:
print ('login incorrect')
def showmenu():
prompt = '''
(N)ew User Login
(E)ntering User Login
(Q)uit
Enter choice:'''
while True:
choice = input(prompt).strip()[0].lower()
print ('\\nYou picked : [%s]' % choice)
if choice not in 'neq':
print ('invalid option.try again')
else:
if choice=='n':
newuser()
elif choice=='e':
olduser()
else:
print ('quit')
break
if __name__=='__main__':
showmenu()
2.带参函数
语法:
def 函数名称 (形式参数列表):
代码块
return [表达式]
带参函数的调用语法:
[变量] = 函数名称(实际参数列表)
示例4:定义并调用带参函数完成两数相加的运算:(也叫位置参数)
vim def4.py
def add(x,y):
return x+y
print (add(1,2))

示例5:使用位置参数方式或关键字参数方式调用带参函数:
vim def4.py
def aa(x,y):
print (x,y)
aa(10,6)
aa(6,10)

vim def4.py
def aa(x,y):
print (x,y)
aa(x=10,y=6)
aa(y=6,x=10)

示例6:编码实现计算器功能:
vim def5.py
def operator(op1,op2,opFu):
if opFu not in '+-*/':
return -1
if opFu == '+':
result = op1+op2
elif opFu == '-':
result = op1-op2
elif opFu == '*':
result = op1*op2
elif opFu == '/':
if op2 == 0:
print ('错误,除数不能为 0! /n')
result = None
else:
result = op1 / op2
return result
def convert(op):
flag = True
for ch in op:
if ch not in '1234567890':
flag = False
break
if flag == True:
return int(op)
else:
return None
if __name__ == '__main__':
str1 = '请输入第 1 个数:\\n'
strFu = '请输入一个算术运算符:\\n'
str2 = '请输入第 2 个数:\\n'
while True:
print ('需要退出程序,请输入字母 q')
opp1 = input(str1)
ch = opp1.strip()[0].lower()
if ch =='q':
break
op1 = convert(opp1)
if op1 == None:
print ('输入错误,请输入整数!/n')
continue
while True:
opFu= input(strFu)
if opFu in '+-*/':
break
else:
print ('运算符输入错误')
continue
while True:
op2 = convert(input(str2))
if op2 == None:
print ("输入错误,请输入整数!\\n")
continue
else:
break
result = operator(op1,op2,opFu)
if result != None:
print ("计算%d %s %d = %d\\n" %(op1,opFu,op2,result) )
print ('程序退出了')

二、变量作用域
作用域是指变量在程序中的应用范围,而变量声明的位置决定它的作用域。Python按作用域区分有局部变量和全局变量。
(在同一个程序中,全局变量和局部变量同名时,局部变量具有更高的优先级。)
全局变量:是指在一个模块中最高级别的变量有全局作用域,除非被删除,否则存货到程序运行结束,所有函数都能访问全局变量。
局部变量:是指定义在函数内的变量有局部作用域,依赖于定义变量的函数现阶段是否处于活动状态。调用函数时,局部变量产生,暂时存在。一旦函数执行完,局部变量将会被释放
示例7:使用函数实现年龄的输出:
vim def6.py
def addAge(age):
age +=1
print ('addAge(): _age=%d age=%d' %(_age,age))
return age
_age = int(input('输入年龄: \\n'))
rt = addAge(_age)
print ('main(): _age =%d ' %_age)
print ('main(): rt=%d' %rt)

三、lambda函数
Lambda函数的作用时创建匿名函数,是一种声明函数的特殊方式。
语法:
lambda params:expr
示例7:编写一个普通函数和一个lambda函数:
vim def7.py
def sum1(x,y):
return x+y
sum2 = lambda x,y : x+y
print (sum1(3,4))
print (sum2(3,4))

四、内建函数
内建函数是自动加载的,Python的解释器可以识别。它不需要导入模块,不必做任何的操作,不需要引用就可以调用。
1.abs() 函数
abs()函数能够返回一个数字的绝对值,即正数。
语法:abs(x)

2.bool()函数
bool()函数返回值是True或False,它是Boolean(布尔值)的简写。
语法: bool( [ x ] )

3.float()函数
float()函数用于转换数据为float类型。
语法:float([ x ])

4.int()
(注意:不能为字符串)
Int()函数可以将数据转换为整数。
语法: int([ x [,base]])

5.range()
range()函数可以生成一个迭代对象。
语法:range([start],stop[,step])
(1)第一个参数 start 表示起始值,是可选参数,默认值是 0。
(2)第二个参数 stop 表示终止值。
(3)第三个参数表示步长,是可选参数,可以是正数或负数,默认值是 1。

6.sum()函数
sum()函数可以对列表中元素求和。
语法:sum(x[,start])

7.max()函数
max()函数可以返回列表、元组或字符串中最大的元素。
语法:max(x)

8.min()函数
min()函数返回列表、元组、或字符串中最小的元组。
语法:min(x)

9.dir()函数
dir()函数是可以返回关于任何值的相关信息,它可以用于任何对象,包括字符串、数字、函数、模块、对象和类。当想要快速查找帮助信息时非常有用。
语法:dir([ object ])

10.eval()函数
eval()函数可以计算表达式的值。
语法:eval(expression [,globals [,locals]])

11.len()函数
len()函数可以返回一个对象的长度。
语法:len(s)





