数据团Python_7. 函数

2017-04-06  本文已影响24人  00e6a8fd618f

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天
上一篇 下一篇

猜你喜欢

热点阅读