zoukankan      html  css  js  c++  java
  • 《笨办法学Python》 第25课手记

    《笨办法学Python》 第25课手记

    本节课内容较多,如果不理解可以先尝试做正确,然后再来理解。我们的学习已经由最初的简单向复杂转变了,希望你能咬牙坚持下来,只要能没有遗漏的学到最后,相信我们都能掌握好Python。同时通过这么长时间的学习,我理解了很多人喜欢Python的原因。因为相较与C家族,Python真的有一种简洁的美感,而且易懂。

    原代码如下:

    def break_words(stuff):
       """This function break up words for us."""
       words = stuff.split(' ')
       return words
    
    def sort_words(words):
       """sorts the words."""
       return sorted(words)
    
    def print_first_word(words):
       """prints the first word after popping it off."""
       word = words.pop(0)
       print word
    
    def print_last_word(words):
       """Prints the last word after popping it off."""
       word = words.pop(-1)
       print word
    
    def sort_sentence(sentence):
       """Takes in a full sentence and returns the sorted words."""
       words = break_words(sentence)
       return sort_words(words)
    
    def print_first_and_last(sentence):
       """Prints the first and last words of the sentence."""
       words = break_words(sentence)
       print_first_word(words)
       print_last_word(words)
    
    def print_first_and_last_sorted(sentence):
       """Sorted the words then prints the first and last one."""
       words = sort_sentence(sentence)
       print_first_word(words)
       print_last_word(words)

    这段代码定义了7个函数,里面用”“”括起来的英文解释了每个函数的功能。

    而且在命令行界面输入help(函数名)可以调出”“”里面的内容,因此可以看做是帮助文档。由此可以窥见预定义函数可能也是以该种形式定义的。

    这段代码涉及的新的用法:

    def sort_sentence(sentence):
       """Takes in a full sentence and returns the sorted words."""
       words = break_words(sentence)
       return sort_words(words)

    在一个函数的定义中调用了另一个函数,注意调用的函数必须是先前定义的,即遵循先定义再调用的顺序。这里不同于C语言可以先写一个函数声明,然后可以将函数定义写到后面的做法。

    这里的7个函数实际上组成了一个模组,这和我们过去使用sys模组类似,但sys是预先就定义好的,ex25这个模组,是我们自己手动定义的。是不是感觉很棒呢!你现在已经可以自己定义模组了呢!

    结果如下:
    这里写图片描述
    (>>>是你手动输入的内容,其他的是解释器输出的内容)

    在这里面有两处与书中给出的结果不一样的地方:

    1.
    这里写图片描述

    这是因为我将words打成了wrods而引起的错误,如果你是对的,则不会出现图片中的内容。

    2.
    这里写图片描述

    这里的^D是在键盘上按下Ctrl+D的意思,但这里出错是因为Windows Power Shell环境下退出是Ctrl+Z,所以^Z才是正确用法。当出现PS C:Users你电脑的用户名时,说明当前处于无任何操作状态,在这里表示成功退出。

    以该种方式运行之后,ex25.py所在文件夹会自动生成一个叫ex25.pyc的文件

    这里写图片描述

    本节课涉及的知识:

    1.stuff.split(’ ‘),以空格为标志分割字符串,默认全部分割,可以在括号里”后面指定参数以使解释器按规定次数分割。

    比如stuff.split(”,1)只分割一次,分割结果是’All’和’good things come to those who wait.’

    2.sorted(words),以字母表顺序为依据将words变量所包含的字符串中的英文单词进行排序,英文句号在该过程中将被舍弃。

    3.word = words.pop(0),弹出一个元素后关闭,括号内的参数表示弹出元素的位置。0代表第一个,-1代表最后一个。暂不清楚单位是不是之前类似的字节,之前碰到位置参数时,数字代表的是第几个字节数。请记住这种用法,也记住这个疑问。稍后再碰到一些具体的例子就能理解了。

    4.用法:先排序,在输出第一个或者最后一个,是求最值的常用方法,SQL语言中可以先将SC表中的Grade降序排序,然后输出第一个求最高分。也请记住这种用法。

  • 相关阅读:
    xls与csv文件的区别
    青音,经典爱情语录
    win7用户账户自动登录方法汇总
    How to using Procedure found Lead Blocker
    FTS(3) BSD 库函数手册 遍历文件夹(二)
    FTS(3) BSD 库函数手册 遍历文件夹(一)
    DisplayMetrics类 获取手机显示屏的基本信息 包括尺寸、密度、字体缩放等信息
    About App Distribution 关于应用发布
    FTS(3) 遍历文件夹实例
    OpenCV 2.1.0 with Visual Studio 2008
  • 原文地址:https://www.cnblogs.com/wanghongze95/p/13842698.html
Copyright © 2011-2022 走看看