在上一个博客中,我们已经学到了习题31,接下去是习题32关于list的联系,感觉自己好像已经掌握,就想偷懒直接跳过去,往后扫了几眼教程,一路扫到了文末,结尾是这样的一句话:“你会编程。他们不会。这真他妈的酷。”。看得真叫人热血澎湃。所以自己为了能成为“真他妈酷”的人,还是乖乖学习,作者都这么牛逼了,自己是哪根葱,还不会走就想学着跑,要上天啊。于是默默地打开notepad,翻回习题32,扎扎实实,脚踏实地地去做。把这些记录下来也是为了让和我有一样想法的童鞋放弃这种走捷径的想法,努力让今天的自己比昨天的自己更好。可能也没人能看到这些,就当是自言自语,自说自话,自己监督自己吧。

习题32:循环和列表。乖乖贴代码。

the_count = [1,2,3,4,5]
fruits = ['apples', 'oranges', 'pears', 'apricots']
change = [1, 'pennies', 'dimes', 3, 'quarters']#this first kind of for-loop goes through a list
for number in the_count:print "This is count %d" %number#same as above
for fruit in fruits:print "A fruit of type: %s" %fruit#also we can go through mixed lists too
#notice we have to use %r since we don't know what's in items
for i in change:print "I got %r" %i#we can also build lists, first start with an empty one
elements = []#then use the range function to do 0 to 5 counts
for i in range(0,6):print "Adding %d to the list." %i#append is a function that lists understandelements.append(i)#noe we can print them out too
for i in elements:print "Element was:%d" %i

----------------------------------------------------------------------------------------------------------------------------------------------------------

加分习题1:

1. 注意一下 range 的用法。查一下 range 函数并理解它。

答:百度了一下,先贴引用的网址:http://blog.csdn.net/zhenyu5211314/article/details/19069567

以下内容是从该链接copy的:

函数原型:range(start, end, scan):

参数含义:start:计数从start开始。默认是从0开始。例如range(5)等价于range(0, 5);

end:技术到end结束,但不包括end.例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5

scan:每次跳跃的间距,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)

这个和matlab中的range有点像的,不过matlab中的是[]这种括号,也就是结束的那个数也能取到。在Python中是()括号,从零开始,end的数字是取不到的。还有就是在上面链接中贴了一个神奇的例子,如下

for i in range(5):  print i  i += 2  print i  print '一轮结束'

从结果中可以看出,尽管在代码块中对i进行了操作,但是在for语句中i仍然是从0开始,依次1、2、3、4,变化,并没有受到操作的影响。因此在设计的时候要考虑这一点,不然很容易出错。

2. 在第 22 行,你可以试试直接将 elements 赋值为 range(0,6),而无需使用 for 循环

答:确实是可以的。因为range(5)本身就是一个list,element定义是一个空的list,list之间是可以进行赋值操作的。如果将element=[0,2],然后element = range(5),结果也是一样,说明list之间是可以进行赋值操作的。

#-*- coding: utf-8 -*-
element = []
element = range(5)
print element
print range(5)

3. 在 Python 文档中找到关于列表的内容,仔细阅读以下,除了 append 以外列表还支持哪些操作?

答:http://www.runoob.com/python/python-lists.html

在这个链接中可以看到关于对list操作的方法和一些函数,等到要用的时候可以再仔细研究。

=======================================================================================

习题 33: While 循环

今天时间比较充足,连着学习了一上午,继续贴代码:

i = 0
numbers = []while i < 6:print "At the top i is %d" % inumbers.append(i)i = i+1print "Number now:", numbersprint "At the bottom i is %d" % iprint "The numbers:"for num in numbers:print num

书中说尽量少用while语句,因为容易死循环,能用for就用for循环。

加分习题1

1. 将这个 while 循环改成一个函数,将测试条件(i < 6)中的 6 换成一个变量。

答:这个简单。

def test_while(test_num):i = 0numbers = []while i < test_num:print "At the top i is %d" % inumbers.append(i)i = i+1print "Number now:", numbersprint "At the bottom i is %d" % iprint "The numbers:"for num in numbers:print numtest_while(7)

2. 使用这个函数重写你的脚本,并用不同的数字进行测试。

答:这个不贴图了,就是改变test_num的值就可以了。

3. 为函数添加另外一个参数,这个参数用来定义第 8 行的加值 + 1 ,这样你就可以让它任意加值了。

答:这个也简单,直接加个参数就行。

4. 再使用该函数重写一遍这个脚本。看看效果如何。

答:讲真,这道题,我没看懂、、、

5. 接下来使用 for-loop 和 range 把这个脚本再写一遍。你还需要中间的加值操作吗?如果你不去掉它,会有什么样的结果?

答:哦、、、知道了,用for和range试一遍。试了一下,发现i在循环的是是写死了必须按照range的安排一次改变,而不会按照循环中设置的改变走。这一点之前已经有所了解。

def test_while(test_num1,test_num2):i = 0numbers = []while i < test_num1:print "At the top i is %d" % inumbers.append(i)i = i+test_num2print "Number now:", numbersprint "At the bottom i is %d" % iprint "The numbers:"for num in numbers:print numdef test_for(test_num1,test_num2):i = 0numbers = []for i in range(test_num1):print inumbers.append(i)i = i + test_num2print "Number now:", numbersprint "At the bottom i is %d" %iprint "The numbers:", numberstest_while(7,2)
print "\n"
test_for(7,2)

=======================================================================================总结:这两个习题主要是练习循环语句的使用,包括if和while两种循环方法。这两种方法都可以实现循环的效果,但是在具体使用的过程需要注意if中循环角标是不会因为循环体中的改变而改变,这一特点有好处也有不好,在日后使用的过程需要加以注意。而while方法有可能陷入死循环,因此在使用的时候也要注意。

笨方法学Python笔记(6)相关推荐

  1. 笨方法学python笔记(4)

    这几天做了布尔逻辑值的习题,按照书中的方法一步步进行记忆训练.由于这一部分记忆的东西比较多,不适合记录在博客上.目前进展到习题29,继续在博客上记录学习过程. 习题29的主题是if语句,老规矩,先贴敲 ...

  2. 笨方法学Python笔记(9)

    距离上次写的博客,已经过去一个多礼拜了,这一个多礼拜主要是做了习题37--阅读别人的代码.在Github上搜了一个抢票软件,于是沉迷其中不可自拔.前段时间杰伦演唱会,闺蜜在永乐上想抢票却失败了,据说是 ...

  3. 笨方法学Python笔记(7)

    下班了,可是本宝宝还要学习,沉迷学习不能自拔. 习题35:分支和函数 这一个习题的代码好长啊,敲得我手酸... from sys import exitdef gold_room():print &q ...

  4. 笔记 | 笨方法学Python

    整理 | 阿司匹林 出品 | 人工智能头条(公众号ID:AI_Thinker) Python 有多好应该不用多说了,毕竟它是"钦定的"最接近 AI 的语言.(当然,PHP 才是最好 ...

  5. 《 笨方法学 Python 》_ 目录

    < 笨方法学 Python >(第 3 版)书中代码是 Python 2 版本,本着学习 Python 3 的目的,用 Python 3 完成本书的习题,代码也已上传到 Github. 作 ...

  6. 笨方法学Python(二)

    笨方法学Python,习题16 - 21 版本:3.8.0 编辑器:Visual Studio Code 习题16到21讲的是文件的读写和函数的基础,可以通过一个实例来同时练习他们.在下列情景中,我将 ...

  7. 笨方法学python 习题37

    还是在笨方法学python中... 本节的习题是看一下作者列出的python中的各种运算符,尝试来理解这些符号. 在这里,我只列出了一些自己不会的,通过查百度得到得答案,这里来列举一下. (另外有不怎 ...

  8. 笨方法学python 15章疑问

    ** 笨方法学python 15章疑问 在15张中教我们读取文件,但是当我测试能否打开我之前写的py格式的文本时出现了这一幕 文件打开后然后又出现了 File "15.py", l ...

  9. 《笨方法学python》_《笨办法学Python》 第46课手记

    <笨办法学Python> 第46课手记 这节课制作了一个Python的项目骨架,花了我一个晚上和一个早上的时间,原因是我下载的pdf里面只有OX S的命令行,而没有win下的.我为此在知道 ...

最新文章

  1. karyoploteR: 基因组数据可视化 R 包
  2. only one element tensors can be converted to Python scalars
  3. EditText的另类用法
  4. Community Server系列之二:页面之间的关系1[介绍]
  5. 进程句柄表初始化,扩展,插入删除句柄源码分析
  6. DockerCon 2016 深度解读: Citrix 服务发现解决方案 —— Nitrox
  7. 用Opengl实现骨骼系统
  8. WebSocket 的通信机制
  9. 2013年网络安全事件盘点
  10. 模拟 http connecttimeout_燃烧室数学模型模拟软件NPSS
  11. JS 取得当前时间日期
  12. 【百度地图API】如何批量转换为百度经纬度
  13. jupyter notebook 中添加 Julia kernel
  14. 如何在SQLite中检查表是否存在?
  15. linux下安装打字软件,linux系统指法练习与打字游戏软件
  16. 《基于运算放大器和模拟集成电路的电路设计》PDF云盘资源分享
  17. MyEclipse更换背景豆沙绿
  18. 哈尔滨理工大学第七届程序设计竞赛决赛(网络赛-高年级组)-D:数圈圈(数位DP)
  19. Android仿微信通讯录
  20. R语言威尔科克森符号秩和(Wilcoxon Signed Rank statistic)分布

热门文章

  1. 动态规划算法练习:蓝桥杯,洛谷的传纸条游戏的三种解法
  2. bandit(21-25)
  3. Dalvik--Android专属Java虚拟机
  4. 足球数据采集 php,世上最权威足球数据网站只爱梅西?
  5. 【深度学习】(11) 学习率衰减策略(余弦退火衰减,多项式衰减),附TensorFlow完整代码
  6. 漏刻有时数据可视化Echarts组件开发(27):盒须图(箱线图)前后端php交互的实战案例
  7. 创维YS代工E900V21E/TY1608-S905l3B-8822CS及7668无线通刷线刷包
  8. 少儿编程scratch一级考试试卷真题及讲解(一)
  9. C++(标准库):26---STL迭代器之(迭代器的5大种类(输出迭代器、输入迭代器、向前迭代器、双向迭代器、随机访问迭代器))
  10. 上海58同城区域小区请清单(数据)