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

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
"办法"Python(第3版)是一本Python入门书籍,适合对计算机了解不多,没有过编程,但对编程感兴趣的读者习使用。这本书以习题的方式引导读者一步一步习编程,从简单的打印一直讲到完整项目的实现,让初者从基础的编程技术入手,最终体验到软件开发的基本过程。 本书结构非常简单,共包括52个习题,其中26个覆盖了输入/输出、变量和函数三个主题,另外26个覆盖了一些比较高级的话题,如条件判断、循环、类和对象、代码测试及项目的实现等。每一章的格式基本相同,以代码习题开始,按照说明编写代码,运行并检查结果,然后再做附加练习。 Zed Shaw完善了这个堪称世上最好的Python习系统。只要跟着习,你就会和迄今为止数十万Zed教过的 初者一样获得成功。 在这本书中,你将通过完成52个精心设计的习题来Python。阅读这些习题,把习题的代码精确地写出来(禁止复制和粘贴!),修正你的错误,观察程序的运行。在这个过程中,你将了解软件是如何工作的,好的程序看起来是什么样子,怎样阅读、编写、思考代码,以及如何用专业程序员的技巧来找出并修正错误。最重要的是,你将到下面这些编写优秀的Python软件必需的初始技能。 这本书会让你的每一分钟投入都有回报。Python是世界上最强大、最受欢迎的编程语言之一,很快你就会成为一名Python程序员。 "办法"Python(第3版)目录 习题0 准备工作 1 习题1 第一个程序 7 习题2 注释和#号 12 习题3 数字和数计算 14 习题4 变量和命名 17 习题5 更多的变量和打印 20 习题6 字符串和文本 23 习题7 更多打印 26 习题8 打印,打印 28 习题9 打印,打印,打印 30 习题10 那是什么 32 习题11 提问 35 习题12 提示别人 37 习题13 参数、解包和变量 39 习题14 提示和传递 42 习题15 读取文件 45 习题16 读写文件 48 习题17 更多文件操作 51 习题18 命名、变量、代码和函数 54 习题19 函数和变量 57 习题20 函数和文件 60 习题21 函数可以返回某些东西 63 习题22 到现在你到了哪些东西 66 习题23 阅读一些代码 67 习题24 更多练习 68 习题25 更多更多的实践 71 习题26 恭喜你,现在可以考试了! 75 习题27 记住逻辑关系 76 习题28 布尔表达式练习 79 习题29 if语句 82 习题30 else和if 84 习题31 作出决定 86 习题32 循环和列表 89 习题33 while循环 93 习题34 访问列表的元素 96 习题35 分支和函数 98 习题36 设计和调试 102 习题37 复习各种符号 104 习题38 列表的操作 109 习题39 字典,可爱的字典 113 习题40 模块、类和对象 118 习题41 习面向对象术语 124 习题442 对象、类及从属关系 129 习题43 基本的面向对象分析和设计 134 习题44 继承与合成 147 习题45 你来制作一个游戏 156 习题46 项目骨架 160 习题47 自动化测试 166 习题48 更复杂的用户输入 170 习题49 创建句子 175 习题50 你的第一个网站 180 习题51 从浏览器中获取输入 187 习题52 创建Web游戏 198

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值