与孩子一起学编程python_与孩子一起学编程(Python读书笔记3)
第十一章 嵌套与可变循环
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_XNApan.baidu.com
install Pygamehttps://pan.baidu.com/s/1rwPDiHBgMsuM6NscGeS0oApan.baidu.com
Pygame 64位https://pan.baidu.com/s/1ETyDYZWcW_JJJgZWCVR5fwpan.baidu.com
Pygame 32位https://pan.baidu.com/s/1F_Vd07FW8k3jU9DyPaX-Jgpan.baidu.com
Pyhton3.6 64位https://pan.baidu.com/s/11XWyLN8TlzZaegwcV91uuApan.baidu.com刘崇军:与孩子一起学编程(Python读书笔记 )zhuanlan.zhihu.com刘崇军:与孩子一起学编程(Python读书笔记2)zhuanlan.zhihu.com
与孩子一起学编程python_与孩子一起学编程(Python读书笔记3)相关推荐
- 21day学通python_铁乐学python_day21_面向对象编程3
抽象类和接口类 以下内容大部分摘自博客http://www.cnblogs.com/Eva-J/ 继承有两种用途: 一:继承基类的方法,并且做出自己的改变或者扩展(代码重用) 二:声明某个子类兼容于某 ...
- java 并发 mobi_Java并发编程的艺术pdf txt mobi下载及读书笔记
Java并发编程的艺术pdf txt mobi读书笔记 如何解决资源限制的问题:对于软件资源限制,可以考虑使用资源池将资源复用.比如使用连接池将数据库和Socket连接复用,或者在调用对方webser ...
- 在线学编程python_我跟爸爸学编程:从Python到C++
领取成功 您已领取成功! 您可以进入Android/iOS/Kindle平台的多看阅读客户端,刷新个人中心的已购列表,即可下载图书,享受精品阅读时光啦! - | 回复不要太快哦~ 回复内容不能为空哦 ...
- 《Go语言精进之路,从新手到高手的编程思想、方法和技巧1》读书笔记和分享
Go语言精进之路,从新手到高手的编程思想.方法和技巧 读书分享 1 本书定位 2 本书内容总览 3 选择本书的原因 4 小收获分享 第7-12条 真的不知道咋命名 第13-19条 能用--怎么用更好 ...
- 《Linux命令行与shell脚本编程大全》(第三版)读书笔记
第一部分 Linux命令行 第三章.基本的bash shell命令 bash手册 man 命令 例子: man cat 空格翻页.回车下一行.左右键看右侧(左侧)内容.q退出 info info in ...
- 连接组学--神经科学的前沿 ------《连接组》读后感读书笔记
我感到失望的一点是,有时候想出了一些让我自己引以为豪的想法,但不久之后会发现其实这个想法别人在很久之前就已经有了,并且做的更好.之前想过一种通过概念节点网络的模型来构建人的思维(具体就不展开了),看了 ...
- 《Unity3d脚本编程 使用C#语言开发跨平台游戏》读书笔记1
1.4脚本编程的优势 ·易于学习,代码维护方便,适合快速开发 ·开发成本低(因易于学习,所以可以启用新人,同时开发速度快,这些都是降低成本的方法) 2.2.1以速度作为衡量语言级别的标准,那么语言从低 ...
- windows网络编程第二版 第三章 Internet Protocol 读书笔记
1. 本章主要讲述IP方面的东西,解释了IPv4, IPv6.在后面的两个章节中,讲述了地址和名字的解析(Address and Name Resolution),以及如何书写一个IPv4, IPv6 ...
- 《Python 编程快速上手 — 让繁琐工作自动化》读书笔记之【第13章 处理PDF和Word文档(1)】
PDF 和 Word 文档是二进制文件. 1. PDF 文档 PDF表示Portable Document Format(可移植文档格式),使用.pdf文件扩展名.用于处理PDF的模块是PyPDF2 ...
最新文章
- 轻量级分布式 RPC 框架
- TVS參数具体解释及选型应用
- 利用__FILE__, __LINE__, __FUNCTION__跟踪调试程序
- USTC English Club Note20171015
- 【数据竞赛】从0梳理1场CV缺陷检测赛事!
- Android自定义属性 format详解
- OpenCV文字绘制函数putText()的使用
- 轮播图高度自适应_【2020顶会NIPS】用于交通预测的自适应图卷积循环网络
- Codeup1085: 阶乘的和
- Futter基础第9篇: 实现页面跳转、跳转传值(命名路由、命名路由传值)
- 反编译那些事儿(六)—所编译得.class文件带有$符号
- 【Python3之模块及包的导入】
- Javashop 7.0 支付成功以后库里面没有记录问题
- 微信搜一搜中的智能问答技术
- 敏捷开发思想之拥抱变化
- 一、微信小程序拼团项目简介
- Chrome (Google) 浏览器的快捷键大全
- maven 引用其他项目引用的包出现BOOT-INF问题
- 字节跳动的真实工作体验
- 马云希望下辈子做女人,而我们希望这辈子做马云
热门文章
- Docker学习总结(26)——Docker 管理工具的选择:Kubernetes 还是 Swarm?
- Docker学习总结(17)——学会使用Dockerfile
- Java Web学习总结(3)——Servlet详解
- iis php 开启gzip_IIS6.0 开启Gzip方法及PHP Gzip函数分享
- linux pxe服务器的配置,pxe http安装linux 配置
- 阿里影业宣布新战略:“新基础设施”赋能电影产业
- STM32 寄存器库和固件库
- 指定 年 周 星期 获取这周的开始日期和结束日期
- 发起图片请求的几种可能性(webkit内核)
- SWT学生成绩管理系统