当前位置:   article > 正文

《Python编程快速上手——让繁琐的工作自动化》(第二版)第四章实践项目_python编程快速上手让繁琐工作自动化(第2版) 实践项目 答案

python编程快速上手让繁琐工作自动化(第2版) 实践项目 答案

4.11.1 逗号代码

编写一个函数,它以一个列表作值作为参数,返回一个字符串。该字符串包含所有表项,表项之间以逗号和空格分隔,并在最后一个表项之前插入and。

具体代码如下:

  1. def listing(list):
  2. str = ''
  3. for i in range(len(list)):
  4. if i == len(list)-2:
  5. str += f'{list[i].title()} and '
  6. elif i == len(list)-1:
  7. str += f'{list[i].title()}'
  8. else:
  9. str += f'{list[i].title()}, '
  10. return str
  11. language = ['c++', 'c', 'python','java', 'javasprit', 'r']
  12. message = listing(language)
  13. print(message)

4.11.2 掷硬币的连胜

在本次练习中,我们将尝试做,一个实验。如果你掷硬币100次,并在每次正面时写下“H”,在每次反面时写下“T”,就会创建一个看起来像“TTTHHTHTTHHHH”这样的列表。如果你要求一个人进行100次随机掷硬币,你可能会得到正反交替的结果,例如“HHTTHTTTHHHT”。

编写一个程序,计算随机生成的正面和反列表中出现连续6个正面或者6个反面的频率。将程序分成两个部分:

第一部分,创建一个函数,生成随机选择的“正面”和“反面”值的列表。

第二部分,检查其中是否由连续6个正面或者反面。

将这些代码放入一个循环中,重复实验1000次,检查出现连续6个正面或者反面的实验次数,并计算出现的频率。

具体代码如下:

调用random.randint(0, 1)来模拟掷硬币的结果。

  1. import random
  2. number_f = 0
  3. number_n = 0
  4. f = 'FFFFFF'
  5. n = 'NNNNNN'
  6. def decision():
  7. str = ''
  8. for i in range(100):
  9. number = random.randint(0, 1)
  10. if number == 0:
  11. str += 'N'
  12. else:
  13. str += 'F'
  14. return str
  15. for experimentNumber in range(1000):
  16. experiment = decision()
  17. if f in experiment:
  18. number_f += 1
  19. if n in experiment:
  20. number_n += 1
  21. print(f'The percentage of "FFFFFF" is {number_f / 10}%')
  22. print(f'Tht percentage of "NNNNNN" is {number_n / 10}%')

4.11.3 字符图网格

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

  1. grid = [['.', '.', '.', '.', '.', '.'],
  2. ['.', 'O', 'O', '.', '.', '.'],
  3. ['O', 'O', 'O', 'O', '.', '.'],
  4. ['O', 'O', 'O', 'O', 'O', '.'],
  5. ['.', 'O', 'O', 'O', 'O', 'O'],
  6. ['O', 'O', 'O', 'O', 'O', '.'],
  7. ['O', 'O', 'O', 'O', '.', '.'],
  8. ['.', 'O', 'O', '.', '.', '.'],
  9. ['.', '.', '.', '.', '.', '.']]

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

复制前面的网格值,编写代码用它输出图像:

  1. . . O O . O O . .
  2. . O O O O O O O .
  3. . O O O O O O O .
  4. . . O O O O O . .
  5. . . . O O O . . .
  6. . . . . O . . . .

具体代码如下:

(这是一个心型,看出来了吗?为了让这个心型更美观一些,我们可以用空格连接列表的值。)

  1. def picture(test):
  2. for j in range(len(test[0])):
  3. for i in range(len(test)):
  4. print(test[i][j], end=' ')
  5. print()
  6. grid = [['.', '.', '.', '.', '.', '.'],
  7. ['.', 'O', 'O', '.', '.', '.'],
  8. ['O', 'O', 'O', 'O', '.', '.'],
  9. ['O', 'O', 'O', 'O', 'O', '.'],
  10. ['.', 'O', 'O', 'O', 'O', 'O'],
  11. ['O', 'O', 'O', 'O', 'O', '.'],
  12. ['O', 'O', 'O', 'O', '.', '.'],
  13. ['.', 'O', 'O', '.', '.', '.'],
  14. ['.', '.', '.', '.', '.', '.']]
  15. picture(grid)

创作不易,请大家给个三连哦!!!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/402531
推荐阅读
相关标签
  

闽ICP备14008679号