7. 函数
7.1 函数概念及常用函数调用
函数,完成某个工作的代码块,由语句构成
函数组成:
- 函数名称
- 函数参数
- 函数内的算法
def f(x) : #函数名称f,参数x
y = x * x #算法
print(y)
- 内置函数
#数学函数
abs(a)
max(list)
min(list)
sum(list)
sorted(list)
len(list)
divmod(a,b):获取商和余数
pow(a,b):获取乘方数
round(a,b):获取指定位数的小数
range(a[,b]):生成一个a到b的数组左闭右开
#类型转换函数
int(str)
float(int/str)
str(int)
bool(int):转换为布尔值
list(itreable):转换为list
iter(iterable):返回一个可迭代对象
dict(iterable):转换为dict
enumerate(iterable):返回一个枚举对象
tuple(iterable):转换为tuple
set(iterable):转换set
hex(int):转换为16进制
oct(int):转换为8进制
bin(int):转换为2进制
chr(int):转换数字为相应ASCII码
ord(str):转换ASCII码为相应数字
#相关操作
eval():执行表达式
exec():执行Python语句
type():返回一个对象的类型
id():返回一个对象的唯一标识符
help():调用系统内置的帮助系统
isinstance():判断一个对象是否为该类的一个实例
issubclass():判断一个类是否为另一个类的子类
globals():返回当前全局变量的字典
reversed(sequence):生成一个反转序列的迭代器
7.2 自定义函数(重点)
#定义函数:def语句
def f() :
print('hello world')
f() #定义函数并不代表执行
def f(x) :
print(x)
f(20)
#小作业
def f(x) :
for i in x :
print(i)
a = input('输入一个字符串:')
f(a)
def f(x) :
if x >= 0:
return x
else :
return -x
n = float(input('请输入一个数字:'))
print(f(n))
def f(x, y, z) :
m = ((x + y) * (x - y)) ** z
return m
def f(x) :
y = 2 ** x
return y
print(f(5))
def f(x, n=2) : #默认参数
y = x ** n
return y
#可变参数*x Python默认把可变参数传入元祖
def ff(*x) :
print(x)
def f(*m) :
return sum(m)/len(m)
f(3, 4, 4, 3)
#矩形周长
def f():
l = float(input('请输入矩形长度:'))
w = float(input('请输入举行宽度:'))
area = l * w
zc = (l + w) * 2
print('矩形面积为%.2f'%area)
print('矩形周长为%.2f'%zc)
f()
#圆形面积
def f():
r = float(input('请输入圆形半径:'))
area = r ** 2 * 3.1415926
zc = 2 * r * 3.1415926
print('圆形面积为%.2f'%area)
print('圆形周长为%.2f'%zc)
f()
#计算
def f(a, r, n) :
s = 0
for i in range(n+1) :
s = s + a * r ** i
return s
x = float(input('a = '))
y = float(input('r = '))
z = int(input('n = '))
if y == 0 :
print('r不等于0')
else :
print(f(x, y, z))
#
def dic() :
st = input('请输入一串字符,以逗号隔开:')
k = st.split(',')
print(dict.fromkeys(k))
dic()
7.3 局部变量及全局变量
def f(m) :
m = '呵呵哒'
print(m)
#输入参数a的值,仅在函数内部变化
a = int(input('随便输入一个数字:'))
print(a)
f(a)
print('运行函数后,输出值为:' + str(a))
#通过global语句,把局部变量变为全局变量
def f():
global a
a = '呵呵哒'
print(a)
a = int(input('随便输入一个数字:'))
print(a)
f()
print('运行函数后,输出值为:' + str(a))
7.4 匿名函数lambda
#什么是匿名函数?Lambda和def的区别
#lambda的运用比较局限
#lambda作为匿名函数,不需要函数名
f = lambda a, b, c : a + b + c
print(f(1, 2, 3))
#lambda函数是一个可以接收任意多个参数(包括可选参数)
#返回单个表达式
>>> f = lambda x : print(x)
>>> f(100)
100
>>> (lambda x : x * 2) (6)
12
>>> f = lambda a : dict.keys(a)
>>> dic = {'a':1, 'b':2, 'c':3}
>>> list(f(dic))
['a', 'b', 'c']
>>> m = ['Tom', 'Marry', 'Jack', 'Damon']
>>> m1 = []
>>> for i in m:
(lambda s,t,q:s.append(t[q]))(m1, i, 0)
>>> print(m1)
['T', 'M', 'J', 'D']
7.5 花式创建函数
#对输入数字排序
def f():
x = input('请输入若干数字(以逗号隔开):')
n = x.split(',') #分开
m = []
for i in n:
m.append(float(i))
print(sorted(m))
f()
>>>
============= RESTART: C:\Users\Administrator\Desktop\script.py =============
请输入若干数字(以逗号隔开):5,6,96,32,3.6,0.2
[0.2, 3.6, 5.0, 6.0, 32.0, 96.0]
#对输入的成绩进行评级
def f():
s = float(input('请输入学生成绩:'))
if s >= 90:
print('学生成绩为:A')
elif s > 60:
print('学生成绩为:B')
else:
print('学生成绩为:C')
f()
>>>
============= RESTART: C:\Users\Administrator\Desktop\script.py =============
请输入学生成绩:50
学生成绩为:C
#统计输入字符中各种元素数量
def f():
s = input('随意输入一个字符:')
letters = 0
space = 0
digit = 0
for i in s:
if i.isalpha():
letters = letters + 1
elif i.isspace():
space+=1
elif i.isdigit():
digit+=1
print('字母有{}个,空格有{}个,数字有{}个'.format(letters, space, digit))
f()
>>>
============= RESTART: C:\Users\Administrator\Desktop\script.py =============
随意输入一个字符:fengxuan521
字母有8个,空格有0个,数字有3个
#根据年月日判断是第几天
y = int(input('年份是:\n'))
m = int(input('月份是:\n'))
d = int(input('天是:\n'))
months = (0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334)
def f():
s = months[m-1] + d
print('这一天是1年的第{}天'.format(s))
f()
>>>
============= RESTART: C:\Users\Administrator\Desktop\script.py =============
年份是:
2015
月份是:
5
天是:
26
这一天是1年的第146天
网友评论