zoukankan      html  css  js  c++  java
  • Python学习笔记系列——函数

      今年下半年的计划主要是Python和Mysql了,公司不方便看书和视频,就照着廖雪峰的Python网站开始看了。以下纯为个人笔记记录,若是想系统学习的小伙伴还是看这里的好一些,毕竟系统。https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000

    # -*- coding: utf-8 -*-
    #调用函数
    a=str(hex(255))
    print(a)
    
    #空函数
    def nop():
        pass
    
    #绝对值函数
    def my_abs(x):
        if x >=0:
            return x
        else:
            return -x
    print(my_abs(int(input("请输入数字:"))))
    
    #位置参数
    def Idempotent(x,y):
        s=1
        while y>=0:
            s = s * x
            y = y - 1
        return s
    print(Idempotent(5,2))
    
    #默认参数
    #1、必选参数在前,默认参数在后。
    #2、使用默认参数最大的好处是能降低调用函数的难度。
    #3、默认参数必须指向不变的对象。
    def power(x,n=2):
        s=1
        while n>0:
            s=s*x
            n=n-1
        return s
    print(power(5))
    
    #可变参数
    def cale(*numbers): #&numbers 表示把numbers这个list的所有元素作为可变参数穿进去。
        sum = 0
        for i in numbers:
            sum = sum + i*i
        return sum
    print(cale(1,2,3))
    
    #关键字参数
    def person(name,age,**kw):
        print('name:',name,'age:',age,'other:',kw)
    person('zichuan',24,city='shanghai')
    ls ={'sex':'girl','city':'yongzhou','interest':'eat'}
    person('qinglian',18,**ls) #**ls表示把ls这个dict的所有k-v用关键字参数传入到函数的**kw参数,kw将获得一个dict,注意kw获得的dict是ls的一份拷贝,对kw的改动不会影响到函数外的ls
    
    #命名关键字参数(只接收city和job作为关键字参数)
    #和关键字参数**kw不同,命令关键字参数需要一个特殊分隔符*,*后面的参数被视为命名关键字参数。
    def person_1(name,age,*,city,job):
        print(name,age,city,job)
    person_1('zichuan',25,city='魔都',job='Testing')#命令关键字参数必须传入参数名。
    
    #递归函数(example:阶乘)
    #1、优点是定义简单,逻辑清晰。
    #2、使用时需要注意调用次数过多的话,会导致栈溢出,可使用尾递归的方式优化解决。
    def fact(n):
        if n==1:
            return 1
        return n*fact(n-1)
    print(fact(4))
  • 相关阅读:
    gitlab10+版本删除项目工程
    Ubuntu16.04上通过anaconda3离线安装Tensorflow2.0详细教程
    android中根据smartRefeshLayout自定义上下拉刷新效果
    android高德地图根据经纬度添加标注(Marker)
    android设置状态栏颜色
    android复制内容到剪贴板
    android拨打电话的两种方式
    java集合转String数组
    解决jenkins部署TomcatManagerException问题
    SpringCloud 微服务消费者之间相互调用的方式
  • 原文地址:https://www.cnblogs.com/zichuan/p/9361570.html
Copyright © 2011-2022 走看看