zoukankan      html  css  js  c++  java
  • day9 初识函数

    1复习

    #序列
    '''在python中,序列类型包括字符串(普通字符串和unicode字符串)、列表和元组,
    所谓序列,即成员有序排列,并且可以通过下边偏移量访问到它的一个或者几个成员。
    '''
    
    #今日内容
    '''数据库 存储数据和信息用的 本质上和文件没有区别 增删改查更方便了
    流程控制:条件判断和各种循环
    为什么要有文件处理:内存---->硬盘
    '''
    #文件操作复习
    #文件处理
        #打开文件
            #open('路径','打开方式 mode=','指定编码方式 encoding=')
            #打开方式:r w a r+ w+ a+ rb r+b等
                #r+ 读写 注意先读后写 不然会覆盖
            #编码方式:utf-8
        #操作文件
            #
                #read 一次性读
                #readline 一行一行读
                    #不知道在哪儿结束 视频图片等必须按照字节读不能一行一行读
                #readlines一次性读按行切分放列表
                #for循环读文件最好:从头到尾内存只有一行文件内容
            #
                #write  
    可以换行(打印的还是换行符会换行不会打印出“
    ” 添加的时候会把‘
    ’添加进去
            #光标:文件指针
                #seek 按字节指定光标移到到某个位置
                #tell 获取光标当前的位置
                #truncate 按字符截取文件 返回字符数
            #关闭文件
                #close()
    #修改文件
        #open调用系统文件 windows系统默认gbk编码 如果不指定编码方式 因为python是utf-8会乱码
    # with open('小护士班主任',encoding='utf-8') as f,open('小护士班主任.bak','w',encoding='utf-8')as f2:
    #     for line in f:
    #         if "星儿" in line:
    #             line=line.replace('星儿','阿娇')
    #         #写文件
    #         f2.write(line)
    # import os
    # os.remove('小护士班主任')#删除文件
    # os.rename('小护士班主任.bak','小护士班主任')#重命名文件
    # s='alex'
    # s='_'.join(s)
    # print(s)

    2初识函数

    s='jjjjjj'
    def my_len(): #定义/声明一个函数
        i=0
        for k in s:
            i+=1
        print(i)
    length=my_len() #调用函数 带括号
    print(length)
    #定义了之后 可以在任何需要它的地方调用 没有返回长度 只是单纯打印
    
    <<<
    6
    None
    #return返回值的三种情况
        #没有返回值:返回None
            #不写return  只写return:return结束一个函数的继续 return None 相当于return
        #返回一个值
            #可以返回任何数据类型 只要返回就可以接收到  如果在一个程序中多个return,那么只执行第一个return
        #返回多个值
            #用一个或多个变量接收 得到一个元祖
    
    def func():
        l=['qq','ww']
        for i in l:
            print(i)
            if i=='qq':
                return
        print('*'*6)
    print(func())
    
    def func():
        return {'f':1}
    print(func())
    
    def func2():
        return 1,2,3 #相当于(1,2,3),所以可以一个或3个变量接收 元祖列表字典都能解包
    a,b,c=func2()
    print(a)
    
    def my_len(s):
        i=0
        for k in s :
            i+=1
        return i
    a=my_len('hhhhh')
    b=my_len([1,2,3,4,5,6])
    print(a,b)
    
    def f2(l1):
        f1(l1)
        for i in l1:
            print(i,end='')
    def f1(l1):
        for i in l1:
            print(i,end='')
    f2([1,2,3,4,5])
    
    def my_sum(a,b):
        # print(a,b)
        res=a+b
        return res
    ret=my_sum(1,2)
    print(ret)
    
    <<<
    qq
    None
    {'f': 1}
    1
    5 6
    12345123453

    传参

    #站在实参的角度上:按照位置传参 关键字传参 混着用的时候必须先位置传参然后关键字传参
    
    #站在形参的角度上:位置参数:必须传 有几个参数传几个值 默认参数:不传就用默认的 传了就用传的
    
    def classmates(name,gender=''):
        print('%s:%s'%(name,gender))
    classmates(111,'')
    
    <<<
    111:女

    动态参数以及形参顺序

    #动态参数:*args 接收所有位置参数 组织成一个元祖 **kwargs 接收所有关键字传参的值 组织成一个字典
    #形参的顺序:位置参数 *args 默认参数 **kwargs
    def sum(*args):
        i=0
        for k in args:
            i+=1
        return i
    print(sum(1,2,3,6))
    
    def func(**kwargs):
        print(kwargs)
        return kwargs
    print(func(a1_=1,b=2,c=3))
    
    def func(*args,default=1,**kwargs):
        print(args,default,kwargs)
    func(1,2,a=3,b=4)
    
    <<<
    4
    {'a1_': 1, 'b': 2, 'c': 3}
    {'a1_': 1, 'b': 2, 'c': 3}
    (1, 2) 1 {'a': 3, 'b': 4}

    动态参数的另一种传参方式

    #动态参数的另一种传参方式
    def func(*args):#站在形参角度上,给一个变量加上*,就是组合所有传来的值
        print(args)
    func(1,2,3)
    l=(1,2,3,4,4)
    func(l)
    func(*l) #站在实参角度上,给一个序列加上*,就是将这个序列按顺序打散
    d={'a':1,'b':2}
    func(*d)
    
    
    def func(**kwargs):
        print(kwargs)
    func(a=1,b=2)
    d={'a':1,'b':2}
    func(**d)
    
    <<<
    (1, 2, 3)
    ((1, 2, 3, 4, 4),)
    (1, 2, 3, 4, 4)
    ('a', 'b')
    {'a': 1, 'b': 2}
    {'a': 1, 'b': 2}

    函数的注释

    #函数的注释
    # def func():
    '''
        这个函数实现了什么功能
        参数1:
        参数2:
        return: 字符串或者。。。
        '''
        # pass
    '''
    文件的修改
    函数
    函数的定义
    函数的调用
    函数的返回值
    函数的参数
    形参:位置参数:必须传实参
          *args:可以接收任意多个位置参数
          默认参数:可以不传
          **kwargs:可以接受任意多个关键字参数
    实参:按照位置传参 按照关键字传参
    
    函数 :内置函数  自定义函数'''
    li=['alex','wusir','rain']
    print('*'.join(li))
    print('s s ssss'.split(' *'))
    <<<
    alex*wusir*rain
    ['s s ssss']
    #1-2+3...+99
    sum=0
    for i in range(1,100):
        if i%2==1:
            sum+=i
        else:
            sum-=i
    print(sum)
    
    for i in range(10,-1,-1):
        print(i,end='')
    
    <<<
    50
    109876543210
    #实现一个整数加法计算器 dic={'最终计算结果':结果}
    content=input('请输入内容:')
    content_list=content.split('+')
    print(content_list)
    sum=0
    for i in content_list:
        sum+=int(i) #int默认去空格
    print(sum)
    <<<
    请输入内容:2 +99
    ['2 ', '99']
    101
    #将大于66得数保存到字典的第一个key中 小于66的保存到第二个key中
    li=[11,22,33,44,55,77,88,90]
    result={}
    for i in li:
        if i>66:
            if 'key1'not in result:
                result['key1']=[]
            result['key1'].append(i)
        else:
            if 'key2'not in result:
                result={'key2':[]}
            result['key2'].append(i)
    print(result)
    
    
    li=[11,22,33,44,55,77,88,90]
    result={}
    for row in li:
        result.setdefault('key1',[])
        result.setdefault('key2',[])
        if row >66:
            result['key1'].append(row)
        else:
            result['key2'].append(row)
    print(result)
    <<<
    {'key2': [11, 22, 33, 44, 55], 'key1': [77, 88, 90]}
    {'key1': [77, 88, 90], 'key2': [11, 22, 33, 44, 55]}
    user_list=[{'username':'barry','password':1234},
    {'username':'alex','password':'asdf'}]
    board=['zs','lxs','wemz']
    while 1:
        username=input('<<<')
        if username.upper()=='Q':break
        password=input('<<<')
        for i in board:
            if i in username:
                username=username.replace(i,'*'*len(i))
    user_list.append({'username':username,'password':password})
    print({'username':username,'password':password})
    print(user_list)
    <<<hahaha
    <<<111
    <<<q
    {'username': 'q', 'password': '111'}
    [{'username': 'barry', 'password': 1234}, {'username': 'alex', 'password': 'asdf'}, {'username': 'q', 'password': '111'}]
  • 相关阅读:
    JavaScript 随机产生十个整数,放入数组中,对这个数组进行降序排序,并获取到这个数组的最大值和最小值
    JavaScript输出换行
    JavaScript超时调用、间歇调用
    JavaScript内置对象
    JavaScript事件列表
    JavaScript 中 for-in和 for-of 的区别
    JavaScript break指定标签打破多层循环示例
    初识JavaScript
    HTML + CSS CSS设置背景图片后图片没有铺满屏幕等
    设计模式之工厂模式
  • 原文地址:https://www.cnblogs.com/hi-python/p/10109676.html
Copyright © 2011-2022 走看看