笨办法学python3-笨方法学Python3(21-44)
接着前天的总结
习题21:函数可以返回某些东西
定义函数的加减乘除,以及嵌套使用
习题22:回顾以前学的知识
习题23:字符串、字节串和字符编码
综合运用字符串、函数、文件读取等知识。详情如下:
from sys import argv
script, encoding, error = argv # 命令行参数处理
def main(language_file, encoding,errors):
line = language_file.readline() # 就是用readline()处理文本
if line: # 防止函数永远循环下去
print_line(line, encoding, errors)
return main(language_file, encoding, errors)
def print_line(line, encoding, errors): # 对languages.txt中的每一行进行编码
next_lang = line.strip() # 移除字符串头尾指定的字符(默认为空格或换行符)或字符序列
raw_bytes = next_lang.encode(encoding,errors = errors)
cooked_string = raw_bytes.decode(encoding, errors = errors)
print(raw_bytes, "<===>",cooked_string)
languages = open("language.txt",encoding = "utf-8")
main(languages, encoding, error)
习题24: 更多的练习
部分代码如下:
start_point = start_point / 10
print("We can also do that this way:")
formula = secret_formula(start_point)
# this is an easy way to apply a list to a format string
print("we'd have {} beans,{} jars, and {} crates.".format(*formula))
习题25:定义函数
习题26:回顾以前知识
习题27:
这一节 就是讲解逻辑关系 逻辑术语的
and or not != == >= <= True False
以及真值表详见P83
习题28:布尔表达式(跟C语言类似)
习题29:if语句
习题30: else 和 if 嵌套
# else if
people = 30
cars = 40
trucks = 15
if cars > people:
print("we should take the cars.")
elif cars < people:
print("We should not take the cars.")
else:
print("We can't decide.")
if trucks > cars:
print("That's too many trucks.")
elif trucks < cars:
print("Maybe we could take the trucks.")
else:
print("We still can't decide.")
if people > trucks:
print("Alright,let's just take the trucks.")
else:
print("Fine,let's stay home then.")
习题31:采用if-else语句编写问答式“小游戏”
练习使用嵌套判断语句
习题32:循环和列表
习题33:while循环
习题34:访问列表的元素
习题35:综合小练习,巩固前面所学知识
习题36:设计和调试
注:debug最佳方式就是 使用print在各个想要检查的关键点将变量打印出来,从而检查哪里是否有错!
习题37:复习各种符号
关键字
描述
示例
and
逻辑与
True and False == False
as
with-as 语句的某一部分
with X as Y: pass
assert
断言(确保)某东西为真
assert False, "Error!"
break
立即停止循环
while True: break
class
定义类
class Person(object)
continue
停止当前循环的后续步骤,再做一次循环
while True: continue
def
定义函数
def X(): pass
del
从字典中删除
del X[Y]
elif
else if条件
if: X; elif: Y; else: J
else
else条件
if: X; elif: Y; else: J
except
如果发生异常,运行此处代码
except ValueError, e: print(e)
exec
将字符串作为Python脚本运行
exec 'print("hello")'
finally
不管是否发生异常,都运行此处代码
finally: pass
for
针对物件集合执行循环
for X in Y: pass
from
从模块中导入特定部分
from X import Y
global
声明全局变量
global X
if
if 条件
if: X; elif: Y; /else: J
import
将模块导入当前文件以供使用
import os
in
for循环的一步分,也可以是否在Y中的条件判断
for X in Y: pass 以及 1 in [1] == True
is
类似于==,判断是否一样
1 is 1 == True
lambda
船舰短匿名函数
s = lambda y: y ** y; s(3)
not
逻辑非
not True == False
or
逻辑或
True or False == True
pass
表示空代码块
def empty(): pass
打印字符串
print('this string')
raise
出错后引发异常
raise ValueError("No")
return
返回值并推出函数
def X(): return Y
try
尝试执行代码,出错后转到except
try: pass
while
while循环
while X: pass
with
将表达式作为一个变量,然后执行代码块
with X as Y: pass
yield
暂停函数返回到调用函数的代码中
def X(): yield Y; X().next()
数据类型 和 字符串转义序列 等详见P110--113
习题38:列表的操作
习题39:字典
小结:1)字典和列表有何不同?
答:列表是一些项的有序排列,而字典是将一些项(键)对应到另外一些项(值)的数据结构。
2)字典能用在哪里?
答:各章需要通过某个值取查看另一个值的场合。只要知道索引就能查到对应的值了。
3)有没有办法弄一个可以排序的字典?
答:看看python里的collections.OrderedDict数据结构。上网搜一下其文档和用法。
习题40: 模块、类和对象
question:为什么创建__init__或者别的类函数时需要多加一个self变量?
answer:如果不加self, cheese = 'Frank'这样的代码就有歧义了。它指的既可能使实例的cheese属性,也可能是一个叫cheese的局部变量。有了self.cheese = 'Frank'就清楚地知道这指的是实例的属性self.cheese.
习题41:学习面向对象术语
截取部分代码(在线读取文本信息)
import random
from urllib.request import urlopen
import sys
WORD_URL = "http://learncodethehardway.org/words.txt"
WORDS = []
# load up the words from the website
for word in urlopen(WORD_URL).readlines():
WORDS.append(str(word.strip(),encoding="utf-8"))
习题42:对象、类及从属关系
question1:对象和类的区别?
answer1: 对象和类好比 小狗和动物。对象是类的实例,也就是种特例。 书本例举的 鱼和泥鳅的关系。”is-a“和"has-a"的关系,”is-a“指的是鱼和泥鳅的关系,而”has-a“指的是泥鳅和鳃的关系。
注:一般定义类时,在类名后面没加(object),那么就默认添加(object)
习题43:编写命令行的小游戏!
习题44:继承和组合
隐式继承
class Parent(object):
def implicit(self):
print("PARENT implicit()")
class Child(Parent):
pass
dad = Parent()
son = Child()
dad.implicit()
son.implicit()
输出如下所示:
PARENT implicit()
PARENT implicit()
显示覆盖
class Parent(object):
def override(self):
print("PARENT override()")
class Child(Parent):
def override(self):
print("CHILD override()")
dad = Parent()
son = Child()
dad.override()
son.override()
class Parent(object):
def altered(self):
print("PARENT altered()")
class Child(Parent):
def altered(self):
print("CHILD, BEFORE PARENT altered()")
super(Child, self).altered() # 采用super调用父类中的方法
print("CHILD, AFTER PARENT altered()")
dad = Parent()
son = Child()
dad.altered()
print("-----------------------------")
son.altered()
python支持多继承 要用super()
class SuperFun(Child, BadStuff):
pass
笨办法学python3-笨方法学Python3(21-44)相关推荐
- CDM计算机辅助,CDM方法学与CDM项目的.pdf
CDM方法学与CDM项目的 CDMCDM方法学与方法学与CDMCDM项目的项目的 识别与开发识别与开发 段茂盛 清华大学核能与新能源技术研究院 能源环境经济研究所 2008年7月31 日 山西晋中 内 ...
- 笨方法学python3-笨办法学python3 pdf下载|
笨办法学python pdf电子版可以帮助想学习python编程的同学入门,你可以从上面学习如何快捷编写python代码,以及运行过程,还有非常多的习题讲解,需要的朋友可以来当易网下载使用. 笨办法学 ...
- 《笨办法学python3》再笨的人都能学会python,附PDF,拿走不谢
<笨办法学python3>这本书的最终目标是让你起步python编程,虽然说是用"笨办法"学习写程序,但是其实并不是这样的. 所谓的"笨办法"就是指 ...
- [IT学习]Learn Python the Hard Way (Using Python 3)笨办法学Python3版本
黑客余弦先生在知道创宇的知道创宇研发技能表v3.1中提到了入门Python的一本好书<Learn Python the Hard Way(英文版链接)>.其中的代码全部是2.7版本. 如果 ...
- 读书笔记 笨办法学python3
读后评价 <笨办法学Python3>是一本适合Python3的初学者实用性书籍,以52个练习题为章节讲述了Python3的基础知识,包括基本语法.控制流程.列表.字典.元组.面向对象(类, ...
- 笨办法学python3在线阅读知乎_Python第三课——笨办法学Python
需要学习资料的请直接看文末 <笨办法学Python>(Learn Python The Hard Way,简称LPTHW)是Zed Shaw编写的一本Python入门书籍.适合对计算机了解 ...
- 《笨方法学python》_《笨办法学Python》 第46课手记
<笨办法学Python> 第46课手记 这节课制作了一个Python的项目骨架,花了我一个晚上和一个早上的时间,原因是我下载的pdf里面只有OX S的命令行,而没有win下的.我为此在知道 ...
- 笨办法学python__学习笔记
笨办法学python –20190307 之前开始学习python过多次,每次都以失败告终.其实我有计算机语言的基础,高中时在步步高词典上是basic写过小程序,大学时自学C.不过学C的时候不得要领, ...
- 笨办法学Python(第四版)最新版+Python爬虫开发与项目实战+Python网络数据采集+精通Scrapy网络爬虫
笨办法学Python(第四版)最新版+Python爬虫开发与项目实战+Python网络数据采集+精通Scrapy网络爬虫 本资料为最新整理高清带目录pdf,百度网盘下载~~~ 本资料为最新整理高清带目 ...
- 笨办法学python3_软件测试需要学什么(个人软件测试学习路线)
快转正啦,要写转正评审ppt,顺带就总结了下个人学习路线,仅供参考.初学者不要看晕了,学完基础就可以找实习啦,其他的慢慢来~ 先附上xmind,简洁明了 1.长期学习软件测试理论 其中包括测试方法熟练 ...
最新文章
- 数据预处理为什么使用独热编码one-hot
- 信阳农林技术学院经纬度_信阳农林学院全景-360度,720度,高清全景地图-expoon网展...
- Android笔记 Application对象的使用-数据传递以及内存泄漏问题
- 抢鲜体验.NET6 Preview1,配上Docker简直停不下来!
- vsphere平台windows虚拟机克隆的小插曲(无法登陆系统)
- 图像处理中的通信原理——冈萨雷斯读书笔记(一)
- 如何在Ubuntu 14.04上安装MySQL
- 苹果电脑 不能使用服务器发送邮件,解决Mac上无法使用的邮件问题的技术
- 调试器原理_调试器的工作原理
- Bootstrap表单
- linux 常用正则表达式,Linux中基本正则表达式
- 提升PPT逼格的利器!只需1招,让PPT页面化腐朽为神奇~
- 传统网络通信模式、RDMA技术、InfiniBand协议、IB卡(IB交换机)之间的关系?
- 程序设计的最基本的三种结构
- 请问王菲的<流年>歌词的含义
- 标准盒模型和怪异盒模型的区别
- 如何使用谷歌浏览器Chrome把整个网页保存成图片
- python需要多久才能学会_大家觉得自学python多久能学会?
- (转载)俞敏洪一分钟励志演讲
- python调用ironpython_在.NET中嵌入IronPython 交互