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降序排序,然后输出第一个求最高分。也请记住这种用法。

  • 相关阅读:
    Ignite、Vertx
    Spring boot ConditionalOnClass原理解析
    SPI
    Redis (总结)
    Mysql 线程池 ===
    Mysql JDBC-mysql-Driver queryTimeout分析
    Java网关服务-AIO(三)
    Java网关服务-AIO(二)
    Java网关服务-AIO(一)
    Java nio Server端示例
  • 原文地址:https://www.cnblogs.com/wanghongze95/p/13842698.html
Copyright © 2011-2022 走看看