Python语言之python全栈开发-前方高能-函数
小标 2018-08-09 来源 : 阅读 1494 评论 0

摘要:本文主要向大家介绍了Python语言之python全栈开发-前方高能-函数,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助。

本文主要向大家介绍了Python语言之python全栈开发-前方高能-函数,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助。

一.今日主要内容
函数:
函数:对功能的封装
语法:
def 函数名(形参):
函数体
函数名(实参)
函数名:命名规则和变量一样

函数的返回值:
return, 函数执行完毕. 不会执行后面逻辑

如果函数中不写return返回None

只写return 返回None

return 返回值. 返回一个值

return 值1, 值2,... 返回多个值. 调用方接收到的是元组

参数:
在函数执行的时候给函数传递的信息
函数的参数的个数没有限制
1. 形参:

1. 位置参数.

2. 默认值参数. 当调用的时候不给传值使用默认值

3. 混合使用. 顺序: 1. 位置参数, 2, 默认值参数

2. 实参:

1.位置参数. 按照位置给形参赋值

2. 关键字参数. 按照名称给形参赋值

3. 混合参数. 先用位置参数, 再用关键字参数


09. 前⽅⾼能-初识函数 
本节内容: 

1. 什么是函数 
2. 函数定义, 函数名, 函数体以及函数的调⽤ 
3. 函数的返回值 
4. 函数的参数

⼀. 什么是函数我们可以先去定义⼀个事 情或者功能. 等到需要的时候直接去⽤就好了. 那么这⾥定义的东⻄就是⼀个函数.
函数: 对代码块和功能的封装和定义

执行流程:

三. 函数的返回 
执⾏完函数之后. 我们可以使⽤return来返回结果. 函数中return的使⽤:

返回值可以是多个结果:

总结⼀下: 
1. 遇到return. 此函数结束, 函数后⾯的东⻄将不会再执⾏ 
2. return 返回值 关于返回值: 如果return什么都不写 或者 ⼲脆不写return .那么返回的就是None 如果
return后⾯写了⼀个值. 则调⽤者可以接收⼀个结果 如果return后⾯写了多个结果, 则调⽤者可以接收
⼀个tuple, 调⽤者可以直接解构成多个变量 OK. 完美. 可以得到结果了. 但是我们的约的⽅式是不是有
点⼉问题呢?, 陌陌现在还能约到 么?约不到了吧. 该换探探了. 那过两天探探也死掉了呢? 是不是还会
有⼀个替代品. 那你想. 有⼀个替代的.你就需要去改⼀下代码. 是不是不太合适了. 最好的⽅式是不是想
⽤什么约就 ⽤什么约? ok. 我们可以通过函数的参数来给函数传递⼀些信息.
四. 函数的参数 参数, 函数在调⽤的时候指定具体的⼀个变量的值. 就是参数. 语法:

def fun():
    print("你无情,你残酷,你无理取闹!")
    print("我哪里无情,哪里残酷,哪里无理取闹!")
    print("你就是无情,就是残酷,就是无理取闹!")
    return "你才无情,你才残酷,你才无理取闹!","我没有无情,没有残酷,没有无理取闹!","ending"

a,b,c = fun()
print(a)
print(b)
print(c)

参数:在函数执行过程中给函数才传递的信息形参:在函数声明的位置,声明出来的变量实参:在函调用过程中,实际你给函数传递的值

game(Internet,games):#形参
    print("打开手机")
    print("连上%s" % Internet)
    print("打开%s" % games)
    print("玩到手机关机!")
#函数的参数的个数没有限制
game("数据","王者荣耀")#实参
game("WiFi","刺激战场

注意参数的顺序:

mation(id,name,age,sex):
    print("序号:%s\n姓名:%s\n年龄:%s\n性别:%s" % (id,name,age,sex))

information(1,"corn",21,"男")#位置参数
information(id = 2,name = "corn1",age = 22,sex = "女")#关键字参数

information(3,"corn2",age = 23,sex = "不详")#混合参数:注意顺序,位置参数在前,关键字参数在后

#默认值参数和为主参数的混合参数:位置参数在前,默认值参数在后

def regist(id,name,age,sex = "男"):#默认值参数
    print("序号:%s\n姓名:%s\n年龄:%s\n性别:%s" % (id,name,age,sex))
regist(1,"corn",21)
regist(2,"corn1",22)
regist(3,"corn3",23

注意, 必须先声明位置参数, 才能声明默认值参数
 
作业:
二.写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者。

def odd(lst):
    li = []
    for i in range(len(lst)):
        if i%2 != 0:
            li.append(lst[i])
    return li

a = odd([1,2,3,4,5,6,7,8,9])
print(a)

三.写函数,判断用户传入的对象(字符串、列表、元组)长度是否大于5。

def i(lst):
    if len(lst) > 5:
        return"长度大于5"
    else:
        return"长度不大于5"

a = i([1,2,3,4,5,6])
print(a)

四.写函数,检查传入列表的长度,如果大于2,将列表的前两项内容返回给调用者。

def i(lst):
    if len(lst) > 2:
        return lst[0],lst[1]
    else:
        return"列表长度不大于2"
a = i([1,2,3])
print(a)

五,写函数,计算传入函数的字符串中, 数字、字母、空格 以及其他内容的个数,并返回结果。

def time(l):
    num = 0
    zm = 0
    blank = 0
    other = 0
    for i in l:
        if i.isdigit() == True:
            num += 1
        elif i.isalpha() == True:
            zm += 1
        elif i == " ":
            blank += 1
        else:
            other += 1
    return "数字出现了%s次,字母出现了%s次,空格出现了%s次,其他出现了%s次" % (num,zm,blank,other)
a = time("1 2 3 4 5 6 a,b,c,d,e,f,")
print(a)

六,写函数,接收两个数字参数,返回比较大的那个数字。

def n(num,num1):
    if num > num1:
        return num
    elif num < num1:
        return num1
    else:
        return"两个数一样大"

a = n(32,34)
print(a)

七.写函数,检查传入字典的每一个value的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。PS:字典中的value只能是字符串或列表

dic = {"k1": "v1v1", "k2": [11,22,33,44]}
def zd(dic):
    for i in dic:
        if len(dic[i]) > 2:
            dic[i] = dic[i][0:2]
    return dic

a = zd({"1":"dasd","2":[1,2,3,4,5,6],"3":"你好!"})
print(a)

八,写函数,此函数只接收一个参数且此参数必须是列表数据类型,此函数完成的功能是返回给调用者一个字典,此字典的键值对为此列表的索引及对应的元素。例如传入的列表为:[11,22,33] 返回的字典为 {0:11,1:22,2:33}。

def d(lst):
    dic = {}
    for i in range(len(lst)):
        dic[i] = lst[i]
    return dic

a = d([11,22,33,44,55,66,77,88])
print(a)

九,写函数,函数接收四个参数分别是:姓名,性别,年龄,学历。用户通过输入这四个内容,然后将这四个内容传入到函数中,此函数接收到这四个内容,将内容追加到一个student_msg文件中。

def w(name,sex,age,edu):
    f = open("student_msg",mode='w',encoding="utf-8")
    f.write("姓名:%s\n性别:%s\n年龄:%s\n学历:%s" % (name,sex,age,edu))
    f.flush()
    f.close()

w("corn","男",21,"专科")

 十,对第9题升级:支持用户持续输入,Q或者q退出,性别默认为男,如果遇到女学生,则把性别输入女。

def w(sex = "男"):
    while True:
        name = input("姓名:")
        age = input("年龄:")
        edu = input("学历:")
        sex = input("性别:")
        f = open("student_msg",mode='a',encoding="utf-8")
        f.write("姓名:%s\n年龄:%s\n学历:%s\n性别:%s""\n" % (name,age,edu,sex))
        f.flush()
        f.close()
        q = input("按Q退出录入,其他键继续录入:")
        if q.strip().upper() == "Q":
            break

w()

十一,写函数,用户传入修改的文件名,与要修改的内容,执行函数,完成整个文件的批量修改操作(升级题)。

def mod(r,m,n):
    import  os
    with open(r,mode="r",encoding="utf-8")as f, \
            open("a1.txt",mode="w",encoding="utf-8")as f1:
        for line in f:
            s = line.replace(m,n)
            f1.write(s)
    os.remove(r)
    os.rename("a1.txt",r)

mod("a.txt","我不好!","我很好!")

十二,写一个函数完成三次登陆功能,再写一个函数完成注册功能(升级题)

def dl():
    count = 3
    while count > 0:
        account = input("请输入你的账号:")
        password = input("请输入你的密码:")
        count -= 1
        for i in dic:
            if account == i and password ==dic[i]:
                print("登录成功")
                return

        print('账号或者密码错误,请重新输入(还剩%s次机会):' % count)
        x = input("按Q返回上一菜单,其他键继续:")
        if x.upper().strip() == "Q":
            return


def login():
    while 1:
        account = input("请输入你注册的账号(6位以上):")
        password = input("请输入你的密码:")
        password1 = input("请重新输入一遍你的密码:")
        if len(account) <= 6 or account.isdigit() == False:
            print("账号不合法!请重新输入!")
        elif password == password1:
            dic[account] = password
            print("恭喜你,注册成功!")
            return
        else:
            print("你输入的两次密码不匹配,请重新输入")
            x = input("按Q返回上一菜单,其他键继续:")
            if x.upper().strip() == "Q":
                break
dic = {}
menus = ("1, 登录", "2, 注册", "3, 退出")
while 1:
    for item in menus:
        print(item)
    s = input('请输入您要选择的菜单项:')
    if s == '1':
        dl()
    elif s == "2":
        login()
    elif s == "3":
        break
    else:
        print("指令错误!")


本文由职坐标整理并发布,希望对同学们学习Python有所帮助,更多内容请关注职坐标编程语言Python频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 1 不喜欢 | 0
看完这篇文章有何感觉?已经有1人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程