• Python 函数 day3


    函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。

    函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数。


    定义一个函数

    你可以定义一个由自己想要功能的函数,以下是简单的规则:

    • 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()
    • 任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。
    • 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
    • 函数内容以冒号起始,并且缩进。
    • return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。

    语法

    Python 定义函数使用 def 关键字,一般格式如下:

    def 函数名(参数列表):
        函数体

    默认情况下,参数值和参数名称是按函数声明中定义的顺序匹配起来的。

    特性

    1、函数必须调用才会执行,调用函数需要写函数名及()

    2、函数的返回值,函数需要结果的时候要return

    3、函数里面只要遇到return,函数立即结束,后面代码不再执行

    4、形参:函数完成其工作所需的一项信息,如 def user(username),username为形参

    5、实参:调用函数时传递给函数的信息,我们调用函数时,要将函数使用的信息放在括号内,如 user('linda'),'linda'为实参;

    举例

    1、关于函数的例子:判断输入数字的是否是小数

    S =input("请输入数字:")
    def is_float(num):
        num = str(num)
        if num.count('.') == 1:
            left,right = num.split('.')
            if left.isdigit() and right.isdigit():
                print("是正小数")
            elif left.count('-') == 1 and left.startswith('-') and left[1:].isdigit():
           #left.count('-1')可以省略不写,因为后面的判断已经可以包含此情况
    print("是负小数") else: print("非法小数") else: print("不是小数") is_float(S) #调用函数 is_float(1.5) #是正小数 is_float(-23.2) #是负小数 is_float('-R.5')#非法小数 is_float('-1.3.2')#不是小数 is_float(35)#不是小数
    def is_float(num):
        num =str(num)
        if num.startswith('-') and num.count('-') == 1:#判断是否以负号开头
            num = num.replace('-','')#若是,则将负号替换为空
        if num.count('.') == 1 and num[:1]!='.' and num[-1:]!='.':#判断是否包含1个小数点,且开头结尾都不是小数点
            num =num.replace('.','')#若是,则将小数点替换为空
            if num.isdigit():#判断是否是整数
                print('xiaoshu')
                return True
        return False
    print(is_float(1.)) #打印结果为True
    print(is_float('1.'))#打印结果为False
    print(str(1.))#打印结果为1.0

     2、关于返回值的例子:

    #加法的例子
    def calc(a,b):
        result = a + b
        print("result:",result)
        return result
    calc(1,1) #打印结果为  result:2
    print("结果是:",calc(2,2))#打印结果为 result:4  结果是:4
    #判断输入的用户名是否在文件内
    def write_file(filename,content):
        with open(filename,'w',encoding='utf-8') as fw:
            fw.write(content)
    
    def read_file(filename):
        with open(filename,encoding='utf-8') as fr:
            return fr.read()
    
    write_file('smh','user1')
    print(read_file('smh'))
    user = input("username:")
    if user in read_file('smh'):
        print("exist")
    else:
        print("not exist")
    #判断是否为小数
    #return作用:1、把数据返回;2、结束函数
    def is_float(s):
        s = str(s)
        if  s.count('.') == 1:
            left,right =s.split('.') #1.74 ['1','74']
            if left.isdigit() and right.isdigit():
                return True
            elif left.startswith('-') and left[1:].isdigit() and right.isdigit():
                return True
        return False

    3、关于多个返回值的例子

    def more():
        name = 'xiaohei'
        age = 18
        score =37.5
        return name,age,score
    
    result = more()
    print(result)#返回的为元组,('xiaohei', 18, 37.5)
    print(type(more()))#<class 'tuple'>
    mingzi,nianling,chengji = more()#函数里定义里几个,就用几个来接收
    print(mingzi)#打印结果为:xiaohei
    print(nianling)#打印结果为18
    print(chengji)#打印结果为37.5

    4、关于默认值的例子

    #函数越短越好,一个函数只实现一个功能,比较直观
    def register(name,sex=''):
        print("[%s %s]写入数据库"%(name,sex))
    register('liela')#打印结果为:[liela 女]写入数据库
    register('london','')#打印结果为:[london 男]写入数据库
    
    def register1(name,sex=''):
        s = "[%s %s]写入数据库"%(name,sex)
        return s
    print(register1('Anglababy','lady'))#打印结果为:[Anglababy lady]写入数据库

     5、关于打开、读取文件的例子

    #一个既能读又能写文件的函数
    def op_file(file_name,content=None):
        if content: # 有content,写文件
            with open(file_name,'w',encoding='utf-8') as fw:
                fw.write(content)
        else:
            with open(file_name,encoding='utf-8') as fr:
                return fr.read()
    
    
    result = op_file('users')
    print(result)
    op_file('user2.txt','xiaoming')
    #操作json
    import json
    def op_file_json(file_name,dic=None):
        if dic: # 有content,写文件
            with open(file_name,'w',encoding='utf-8') as fw:
                json.dump(dic,fw)
        else:
            with open(file_name,encoding='utf-8') as fr:
                return json.load(fr)
  • 相关阅读:
    谁来催生国产中高档数控系统市场
    对于HBase的MapReduce性能提升方案之BulkLoad
    数据挖掘十大经典算法(9) 朴素贝叶斯分类器 Naive Bayes
    遇见程序猿男朋友
    理解class.forName()
    正则表达式
    java实现第七届蓝桥杯棋子换位
    java实现第七届蓝桥杯机器人塔
    java实现第七届蓝桥杯机器人塔
    java实现第七届蓝桥杯凑平方数
  • 原文地址:https://www.cnblogs.com/candysalty/p/10985098.html
Copyright © 2020-2023  润新知