美文网首页
零基础学Python 读《编程小白的第一本 Python 入门

零基础学Python 读《编程小白的第一本 Python 入门

作者: 像苏 | 来源:发表于2020-02-19 22:40 被阅读0次

    第四章 函数的魔法

    4.1重新认识函数

    print()、input()、len()、int()……这些都是Python中的函数叫内建函数

    Python 中所谓的使用函数,就是把你要处理的对象放到一个名字后面的括号里。简单来说,函数就是这么使用的,往里面塞东西就可以得到处理结果。

    4.1开始创建函数

    def fahrenheit_Converter(C):
        fahrenheit = C * 9 / 5 + 32
        return str(fahrenheit) + '°F'
    C2F = fahrenheit_Converter(37)
    print(C2F)
    
    • def开头,空格,函数的名称(你要干什么),括号里面是参数(你干什么时需要的东西),冒号要用英文书写,下一行4个空格后写怎么求出这个解,这个就是定义函数的过程

    • return后是告诉计算机给出这个函数的答案

    • 定义完函数以后我想用这个函数怎么办,这个叫调用函数,像之前我们用过的print(),len(),input()……这些都是已经定义好的函数,我们使用的过程就是调用函数的过程

    lyric_length = len('I cry out for magic!')
    print(lyric_length)
    

    上面我们定义了一个温度从摄氏度转换成华摄氏度的函数,调用看看有没有问题

    C2F = fahrenheit_Converter(100)
    print(C2F)
    

    得到的结果是212.0°F,没有问题

    练习题

    一、初级难度:设计一个重量转换器,输入以“g”为单位的数字后返回换算成“kg”的结果。

    我们来分析下这道题应该怎么做

    • (要干什么)重量转换器,
    • (干这个需要什么)需要g的数字
    • (怎么把g变成kg)计算过程
    • (答案)
    def weigth_Converter(g):
        kg = g / 1000
        return str(kg) + 'kg'
    
    
    g2kg = weigth_Converter(1000)
    print(g2kg)
    
    二、中级难度:设计一个求直角三角形斜边长的函数(两条直角边为参数,求最长边) 如果直角边边长分分别为3和4,那么返回的结果应该像这样:The right triangle third side's length is 5.0
    • 函数名:求直角三角形斜边长
    • 需要两条直角边的数字
    • 勾股定理
    • 返回答案 The right triangle third side's length is ?
    • (这里用到了平方42和开平方4(1/2)我觉的这里用分数表示比小数表示合适,开3次方的时候用1/3就可以了)
    def right_triangle_third_side_length(a, b):
        c = (a ** 2 + b ** 2) ** (1 / 2)
        return "The right triangle third side's length is " + str(c)
    
    
    print(right_triangle_third_side_length(3, 4))
    

    书上的答案

    def g2kg(g):
      return str(g / 1000) + 'kg'
    
    
    print(g2kg(2000))  # 调用函数并打印结果
    
    
    def Pythagorean_theorem(a, b):
      return 'The right triangle third side\'s length is {}'.format((a ** 2 + b ** 2) ** (1 / 2))
    
    
    print(Pythagorean_theorem(3, 4))  # 调用函数并打印结果
    

    4.3 传递参数与参数类型

    def trapezoid_area(base_up, base_down, height):
        return (base_up + base_down) * height * 1 / 2
    
    
    trapezoid_area(1, 2, 3)  # 1,2,3分别对应的是base_up,base_down,height,这种叫位置参数
    trapezoid_area(base_up=1, base_down=3, height=2)  # 像这种叫做关键词参数
    

    位置参数和关键词参数传入时可以混用,但只要有位置参数,参数的位置必须正确,关键词参数位置无所谓,这样说比较绕开,看看例子就清楚了

    trapezoid_area(height=3, base_down=2, base_up=1)   # RIGHT!
    trapezoid_area(height=3, base_down=2, 1)           # WRONG!,最后这个1的位置应该是height,但是height已经传参,会报错
    trapezoid_area(base_up=1, base_down=2, 3)          # RIGHT!
    trapezoid_area(1, 2, height=3)                     # RIGHT!
    

    给一个参数设定默认值非常简单,我们只需要在定义参数的时候给参数赋值即可

    4.4 设计自己的函数

    open的用法,只需要传入两个参数就可以正常运转了:文件的完整路径和名称,打开的方式
    write的用法,在这里我们就照抄第三章的 replace 用法来学着使用 write 方法

    file = open('/Users/su/Desktop/text.txt', 'w')
    file.write('Hello World')
    
    1. 设计我们的第一个函数,需求是这样的:传入参数 name 与 msg 就可以在桌面写入文件名称和内容的函数text_create,并且如果当桌面上没有这个可以写入的文件时,就要创建一个之后再写入。
    def text_create(name, msg):
        desktop_path = '/Users/su/Desktop/'
        full_path = desktop_path + name + ' .txt'
        file = open(full_path, 'w')
        file.write(msg)
        file.close()
        print('Done')
    
    
    text_create('hello', 'hello world')  #传入的参数为字符串
    
    1. 定义一个为函数 text_filter 的函数,传入参数 word,cencored_word 和 changed_word实现过滤,敏感词 cencored_word默认为‘lame’,替换词 changed_word 默认为‘Awesome’。
    def text_filter(word, cencored_word='lame', changed_word='Awesome'):
        return word.replace(cencored_word, changed_word)
    
    
    print(text_filter('Python is lame!'))
    
    1. 把两个函数进行合并:创建一个名为 text_censored_create 的函数,功能是在桌面上创建一个文本,可以在其中输入文字, 但是如果信息中含有敏感词的话将会被默认过滤后写入文件。其中文本的文件名参数为 name,信息参数为 msg
    def text_censored_create(name, msg):
        def text_filter(msg, cencored_word='lame', changed_word='Awesome'):
            new_msg = msg.replace(cencored_word, changed_word)
            return new_msg
    
        new_msg = text_filter(msg)
    
        desktop_path = '/Users/su/Desktop/'
        full_path = desktop_path + name + ' .txt'
        file = open(full_path, 'w')
    
        file.write(new_msg)
    
        file.close()
        print('Done')
    
    
    text_censored_create('hello', 'Python is lame!')
    

    先替换关键词,再写入
    这里参数名称一样,但是函数不同,容易混淆

    def text_create(name, msg):
        desktop_path = '/Users/su/Desktop/'
        full_path = desktop_path + name + ' .txt'
        file = open(full_path, 'w')
        file.write(msg)
        file.close()
        print('Done')
    
    
    def text_filter(word, cencored_word='lame', changed_word='Awesome'):
        return word.replace(cencored_word, changed_word)
    
    
    def text_cencored_create(name, msg):
        clean_msg = text_filter(msg)
        text_create(name, clean_msg)
    
    
    text_cencored_create('try', 'lame,lame')
    

    相关文章

      网友评论

          本文标题:零基础学Python 读《编程小白的第一本 Python 入门

          本文链接:https://www.haomeiwen.com/subject/zwdwfhtx.html