第十一章 嵌套与可变循环

Python 3.X里 print()函数默认是自动换行的,所以本章代码会有很多问题,实际上 print()函数里有一个默认参数 end,

默认情况下: end= "\n"

把它换成 空字符 "",

print("*",end = "")即可实现不换行。

举例:

同理,在长字串中增加换行,只需添加\n即可。

11.1

嵌套并不复杂,但是每一层的循环语句末尾要写 冒号 :

从其它语言转Python的人来说,这是个比较容易忘的符号。

若循环体内的代码没有自动缩进,请检查是否忘记输入冒号

for multi in range(5, 8):

for i in range(1, 11):

print(i,"x",multi, "=", i* multi)

print () #这个print专门用来提供一个空行

11.2

可变循环,在这里指的是用 变量 来设置 循环的范围。

比如:for i in range( 0, num ) 在执行此句前 对num 进行赋值,以达到动态确定范围的目的。

实际上,循环的起点、终点都可以用变量来表示。

11.4

初学编程,在每一层循环的开始第一行,打印一下循环变量的值,可以帮助理解,最后可以用 # 号将代码变成注释,不影响最终输出效果。

11.6

对于较长的代码行,可以用 “\” 来表示分行,或者在多行的代码前后加“(”“)”总的括起来。

练习1

time.sleep(1) 起到的作用是让 程序暂停1秒种。

这里的time是Python命名空间的用法,在第15章将会看到。Python将很多概念进行了简化,这种不区分实例、类,不做变量类型设定 的做法,在理解上会有一些问题。

练习3

Python3重点:对换行进行精确控制。

range(i)代表了从0到i-1的范围,非常的方便。

结合可变循环概念,实现经典的9*9 乘法表:

第十二章 列表

C语言中称为数组,Python中称为列表,它相当于C#中的集合。C 系列语言的基因中,数组是长度不可变,数据类型不可变的,这大大限制了数组的可用性。Python中的数组用法非常灵活,实际上ActionScript等语言中都是这么灵活的在使用数组,这是很多人喜欢Python的一个理由。

12.1

列表的两种用法

1)先定义再使用:

family = []

family.append("Dad")

2)直接定义并填充,之后仍可添加数据。

family = ["Dad","Mom","Brother","Sister"]

12.6

从列表中获取元素是通过索引号来实现的,首个索引号为零。

print(family[0]) # 输出 Dad

12.7

Python特色功能,按两个索引位置读取数据:

print(family[1,3]) # 输出 Mom Brother

从索引 1 开始(实际上是第二个数据),至索引 3 之前结束(第四个数据之前)

输出的仍为列表,所以有中括号和引号,数据类型为list。

12.8—12.12

列表的各种花式操作,平时用的不会很多。

12.13

列表排序,同类型数据排序是比较有用的方法。

混合数据类型的排序是不被支持的。

练习4

nameList = []

for i in range(5):

name = input("请输入一个名字:")

nameList.append( name )

print("输入的名字有:", end =" ")

for j in nameList :

print(j, end =" ")

index = int( input("想替换哪个名字?(1-5):"))

newName = input("请输入新名字:")

nameList[index-1] = newName

print("新名单是:", end =" ")

for j in nameList :

print(j, end =" ")

上面的代码中未包含数据有效性检验,index的大小应该在列表的数据个数范围以内。

让用户指定第几个数据时,用户不知道是从零开始计数,所以代码里要对index–1,这样才是普通用户想指定的那个名字。

index未修正前的一个错误示范:

用户指定修改第3个名字,实际修改了第4个名字,将index-1后,就正常了。

提示:

1)对于需要多次输入的数据,可以放到循环语句中。

2)输入的数据,如果要做数学计算,记得 字符 转换成 数字。

3)列表的首个索引位置值为零,在统计个数、设定循环变量时,这个很重要,以后会慢慢习惯的。

第十三章 函数

13.1

定义函数时,函数名后面记得加 冒号。

即使是在同一个代码块里,也要先定义函数,再使用它。

注意缩进,别把执行函数的代码,变成了函数的一部分,如下面所示的那样:

13.5

函数的意义在于:根据给定的参数,用一段相同的代码,实现不同的输出。或者说,是对软件功能模块的一个划分,是段落式的代码组织方式。

13.6

从函数名开始,括号内的参数名,与外部的参数仅是对应关系。函数内的变量在执行完毕后,就会被清除掉。

函数外定义的变量是全局变量。全局变量在函数体内是可以访问的,但不会被改变。尝试在函数体内改变全局变量的做法,只相当于在函数体内增加了一个同名的局部变量。

为了在函数体内改变全局变量的内容,需要使用 global关键字。

练习1

猛然看到习题吓一跳,它明显超纲了啊,每个字母作一遍编码,再按行串起来,最后对输入的名字拆成字母,每个字母调用不同的函数,老鸟都得想半天啊。

初学者肯定做不到啊,肯定是自己想多了。所以想到应该是上图中的代码,练习题的重点是可以重复打印,怎么生成的图形不是重点。

第十四章 对象

能坚持到这一章,您已经超越C语言了。因为C语言里最复杂的数据类型是 结构(structure),没有“对象”的概念。到了C++才有了“对象”的概念,随之而来的是OOP概念(面向对象的编程)。Python淡化了概念之间的鸿沟,将 对象 理解为 函数 和 参数 的混合体就好了,它是比单纯的函数 更高级的一种数据、代码组织方式。

万事万物都是对象(object),将对象的描述 抽象成定义,就是 类(class)。

类 是 对象 的定义和描述。

对象 是 类 的一个个具体的实例。

可以把 对象 看做是程序运行中间才存在的数据实体。

存贮在电脑中的代码文件 看做是 类 的定义文件。

很多时候,口语习惯是混着说这两个词。

14.2

动态添加类属性。在对象的使用过程中,给它添加的属性,都属于动态添加的属性。

动态添加的属性,仅属于被添加的对象。通过 类定义 来生成的新对象不具备刚添加的属性。下面的代码就是这样的例子:

14.4

通过 __init__() 函数对类 进行初始设置。

通过 __str__() 函数来指定默认情况下的输出信息,通常用来显示内置属性的内容。

14.5

self 是普遍遵守的参数名设定,换成其它名字也是可以的。

14.6

len( self.condiments )>0

len 函数返回数组的长度

14.7

Python 通过“遵守规则”来简化数据的访问限制。尽量通过“方法”来访问属性,而不是直接去设置属性,因此,不再考虑类的访问限制(private私有 public公有 protect 受保护 在Python中统统不存在的)。

方法(Method)中可以添加对数据的校验的内容,从而避免无效数据(比如超范围的数据)进入到对象中。

14.8

“不同的类中具有同名的方法”这个不是传统意义上的多态。传统的多态 通常指的是“同一个”类中通过参数形式的变化,达到不同的效果。

第十五章 模块

模块是存贮代码时的一种策略,相当于将多个函数打包放在一起,使用时用import 命令导入。

几个常的模块:

import time

time.sleep(30) # 休眠30秒

import random

random.randint(0,100) # 产生一个0到100之间的整数

random.random( ) # 产生一个0到1之间的小数

精确导入函数的方法:

from random import randint

print(randint(0,100)) # 产生一个0到100之间的整数

练习3

通过增大重复次数,可看到,randint(1,20)函数的结果中包含1 和 20

相关软件网盘下载

easyGuihttps://pan.baidu.com/s/1lYFo7Jm4QEngQGc11w_XNA​pan.baidu.com

install Pygamehttps://pan.baidu.com/s/1rwPDiHBgMsuM6NscGeS0oA​pan.baidu.com

Pygame 64位https://pan.baidu.com/s/1ETyDYZWcW_JJJgZWCVR5fw​pan.baidu.com

Pygame 32位https://pan.baidu.com/s/1F_Vd07FW8k3jU9DyPaX-Jg​pan.baidu.com

Pyhton3.6 64位https://pan.baidu.com/s/11XWyLN8TlzZaegwcV91uuA​pan.baidu.com刘崇军:与孩子一起学编程(Python读书笔记 )​zhuanlan.zhihu.com刘崇军:与孩子一起学编程(Python读书笔记2)​zhuanlan.zhihu.com

与孩子一起学编程python_与孩子一起学编程(Python读书笔记3)相关推荐

  1. 21day学通python_铁乐学python_day21_面向对象编程3

    抽象类和接口类 以下内容大部分摘自博客http://www.cnblogs.com/Eva-J/ 继承有两种用途: 一:继承基类的方法,并且做出自己的改变或者扩展(代码重用) 二:声明某个子类兼容于某 ...

  2. java 并发 mobi_Java并发编程的艺术pdf txt mobi下载及读书笔记

    Java并发编程的艺术pdf txt mobi读书笔记 如何解决资源限制的问题:对于软件资源限制,可以考虑使用资源池将资源复用.比如使用连接池将数据库和Socket连接复用,或者在调用对方webser ...

  3. 在线学编程python_我跟爸爸学编程:从Python到C++

    领取成功 您已领取成功! 您可以进入Android/iOS/Kindle平台的多看阅读客户端,刷新个人中心的已购列表,即可下载图书,享受精品阅读时光啦! - | 回复不要太快哦~ 回复内容不能为空哦 ...

  4. 《Go语言精进之路,从新手到高手的编程思想、方法和技巧1》读书笔记和分享

    Go语言精进之路,从新手到高手的编程思想.方法和技巧 读书分享 1 本书定位 2 本书内容总览 3 选择本书的原因 4 小收获分享 第7-12条 真的不知道咋命名 第13-19条 能用--怎么用更好 ...

  5. 《Linux命令行与shell脚本编程大全》(第三版)读书笔记

    第一部分 Linux命令行 第三章.基本的bash shell命令 bash手册 man 命令 例子: man cat 空格翻页.回车下一行.左右键看右侧(左侧)内容.q退出 info info in ...

  6. 连接组学--神经科学的前沿 ------《连接组》读后感读书笔记

    我感到失望的一点是,有时候想出了一些让我自己引以为豪的想法,但不久之后会发现其实这个想法别人在很久之前就已经有了,并且做的更好.之前想过一种通过概念节点网络的模型来构建人的思维(具体就不展开了),看了 ...

  7. 《Unity3d脚本编程 使用C#语言开发跨平台游戏》读书笔记1

    1.4脚本编程的优势 ·易于学习,代码维护方便,适合快速开发 ·开发成本低(因易于学习,所以可以启用新人,同时开发速度快,这些都是降低成本的方法) 2.2.1以速度作为衡量语言级别的标准,那么语言从低 ...

  8. windows网络编程第二版 第三章 Internet Protocol 读书笔记

    1. 本章主要讲述IP方面的东西,解释了IPv4, IPv6.在后面的两个章节中,讲述了地址和名字的解析(Address and Name Resolution),以及如何书写一个IPv4, IPv6 ...

  9. 《Python 编程快速上手 — 让繁琐工作自动化》读书笔记之【第13章 处理PDF和Word文档(1)】

    PDF 和 Word 文档是二进制文件. 1.  PDF 文档 PDF表示Portable Document Format(可移植文档格式),使用.pdf文件扩展名.用于处理PDF的模块是PyPDF2 ...

最新文章

  1. 轻量级分布式 RPC 框架
  2. TVS參数具体解释及选型应用
  3. 利用__FILE__, __LINE__, __FUNCTION__跟踪调试程序
  4. USTC English Club Note20171015
  5. 【数据竞赛】从0梳理1场CV缺陷检测赛事!
  6. Android自定义属性 format详解
  7. OpenCV文字绘制函数putText()的使用
  8. 轮播图高度自适应_【2020顶会NIPS】用于交通预测的自适应图卷积循环网络
  9. Codeup1085: 阶乘的和
  10. Futter基础第9篇: 实现页面跳转、跳转传值(命名路由、命名路由传值)
  11. 反编译那些事儿(六)—所编译得.class文件带有$符号
  12. 【Python3之模块及包的导入】
  13. Javashop 7.0 支付成功以后库里面没有记录问题
  14. 微信搜一搜中的智能问答技术
  15. 敏捷开发思想之拥抱变化
  16. 一、微信小程序拼团项目简介
  17. Chrome (Google) 浏览器的快捷键大全
  18. maven 引用其他项目引用的包出现BOOT-INF问题
  19. 字节跳动的真实工作体验
  20. 马云希望下辈子做女人,而我们希望这辈子做马云

热门文章

  1. Docker学习总结(26)——Docker 管理工具的选择:Kubernetes 还是 Swarm?
  2. Docker学习总结(17)——学会使用Dockerfile
  3. Java Web学习总结(3)——Servlet详解
  4. iis php 开启gzip_IIS6.0 开启Gzip方法及PHP Gzip函数分享
  5. linux pxe服务器的配置,pxe http安装linux 配置
  6. 阿里影业宣布新战略:“新基础设施”赋能电影产业
  7. STM32 寄存器库和固件库
  8. 指定 年 周 星期 获取这周的开始日期和结束日期
  9. 发起图片请求的几种可能性(webkit内核)
  10. SWT学生成绩管理系统