python快速编程实验报告_《Python快速编程上手 - 让繁琐的工程自动化》_第四章_实践项目_一点思路...

对4.10.1的第二种想法:

回顾了一下之前的答案,发现原答案的思路是make a new box; then fill in the content of list[:-1];then add the last element.

现在的另一种思路是: insert "and" to the one before last one; then use For loop to print them out

def list_to_str(l):

l.insert(-2, "and")

for i in l:

print(i, end=", ")

spam = ["apple", "banana", "tofu", "cat"]

list_to_str(spam)

也算是两种不太一样的思路把。一种是creat a new box. 然后转移element的时候(在放最后一个元素之前),先把and 放进去,再把最后一个元素放入。另一种是在原来的box里面直接insert "and"

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

首先

最近在综合书,视频,github资源学习Python,碰巧遇到这本《Python快速编程上手 - 让繁琐的工程自动化》,觉得其理论讲解与课后练习结合很高,美中不足的是其课后习题中的实践项目未给出答案,搜了一些之后发现有些难,以下是对第4章的2道课后习题的个人见解

4.10.1

假定有下面这样的列表:

spam = ["apples", "bananas", "tofu", "cats"]

编写一个函数,它以一个列表值作为参数,返回一个字符串。该字符串包含所有表项,表项之间以逗号和空格分隔,并在最后一个表项之前插入and。例如,将前面的spam 列表传递给函数,将返回'apples, bananas, tofu, and cats'。但你的函数应该能够处理传递给它的任何列表。

解题思路首先观察给出的spam变量是个列表,而返回的是个str. 注意返回值是"apples, bananas, tofu, and cats" 而不是["apples", "bananas", "tofu", "and cats"]. 所以当使用操作符 + 时,注意变换list为str

此题思路大概是在function内先设定一个空str,然后使用for循环让空集拥有原list中除最后一个元素(注意此处加上一个逗号和逗号后的一个空格)的所有元素,即

def add_And(alist):

astring = ""

for e in range(len(alist) - 1):

astring += str(alist[e] + ", ")

3. 让拥有了出最后一个元素和逗号的astring再加上"and" 和原list中的最后一个元素

astring += "and " + str(alist[-1])

return astring

综上所述,该答案为

def add_And(alist):

astring = ""

for e in range(len(alist) - 1):

astring += str(alist[e] + ", ")

astring += "and " + str(alist[-1])

return astring

试验该答案

4.10.2

假定有一个列表的列表,内层列表的每个值都是包含一个字符的字符串,像这样:

grid = [['.', '.', '.', '.', '.', '.'],

['.', 'O', 'O', '.', '.', '.'],

['O', 'O', 'O', 'O', '.', '.'],

['O', 'O', 'O', 'O', 'O', '.'],

['.', 'O', 'O', 'O', 'O', 'O'],

['O', 'O', 'O', 'O', 'O', '.'],

['O', 'O', 'O', 'O', '.', '.'],

['.', 'O', 'O', '.', '.', '.'],

['.', '.', '.', '.', '.', '.']]

你可以认为grid[x][y]是一幅“图”在x、y 坐标处的字符,该图由文本字符组成。原点(0, 0)在左上角,向右x 坐标增加,向下y 坐标增加。

复制前面的网格值,编写代码用它打印出图像。

..00.00..

.000000.

.000000.

..00000..

...000...

....0....

解体思路

此题主要是观察,Ps知乎上添加代码块后此代码反而不易观察,我们可以稍微修改一下排版:

grid = [['.', '.', '.', '.', '.', '.'],

['.', 'O', 'O', '.', '.', '.'],

['O', 'O', 'O', 'O', '.', '.'],

['O', 'O', 'O', 'O', 'O', '.'],

['.', 'O', 'O', 'O', 'O', 'O'],

['O', 'O', 'O', 'O', 'O', '.'],

['O', 'O', 'O', 'O', '.', '.'],

['.', 'O', 'O', '.', '.', '.'],

['.', '.', '.', '.', '.', '.']]

这样就更容易看出些规律来首先我们发现输出的答案为6行,那么一级代码必然是

for i in range(6):

#此处需要填写一些代码

print()

大概的框架就是这样

2. 然后我们继续观察,发现每个答案均为9个字符,并且输出的第一个答案..00.00..其实是grid中竖着的第一列,即grid[0][0], grid[1][0], grid[2][0]一直到grid[9][0]。

同理第二个答案是grid[1][1], grid[2][1], grid[3][1]一直到grid[9][1]

所以内部的框架应该是

for j in range(8):

print(grid[j][i], end = "")

注意此处需要写明end = ""来保证这6个答案中的每个答案的9个字符是同一行输出

综上

for i in range(6):

for j in range(8):

print(grid[j][i], end = "")

print()

试验结果

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python编程快速上手可以帮助我们实现繁琐工作的自动化Python是一种简单易学的编程语言,能够简化我们的工作流程,提高工作效率。 首先,Python具有丰富的函数库和开源工具,使得编写自动化脚本变得更加容易。我们可以使用Python来编写脚本,通过调用不同的库函数来完成各种任务,例如文件操作、数据处理、网络请求等。这些库函数已经被开发者广泛使用和测试,可以为我们节省大量的时间和精力。 其次,Python编程语言具有简洁的语法和优雅的代码风格。相比其他的编程语言,Python的代码更易读、易理解,这使得我们可以更快地上手并编写出高效的自动化脚本。Python的语法结构简单明了,可以大大缩减代码量,提高编码效率。 此外,Python还有丰富的第三方库和工具,如TensorFlow、Pandas、Numpy等,可以方便地进行数据分析、人工智能、机器学习等领域的工作。这些工具以及其提供的函数和方法大大简化了复杂任务的处理,帮助我们快速解决实际问题。 总的来说,Python编程快速上手能够让我们更方便地进行繁琐工作的自动化。它的简单易学、优雅的代码风格以及丰富的函数库和工具使得我们能够高效地编写自动化脚本,提高工作效率,减少重复劳动,为我们节约时间和精力。无论是处理数据、完成文件操作,还是进行网络请求,Python都可以成为我们的得力助手。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值