4.11.1 逗号代码
编写一个函数,它以一个列表作值作为参数,返回一个字符串。该字符串包含所有表项,表项之间以逗号和空格分隔,并在最后一个表项之前插入and。
具体代码如下:
def listing(list):
str = ''
for i in range(len(list)):
if i == len(list)-2:
str += f'{list[i].title()} and '
elif i == len(list)-1:
str += f'{list[i].title()}'
else:
str += f'{list[i].title()}, '
return str
language = ['c++', 'c', 'python','java', 'javasprit', 'r']
message = listing(language)
print(message)
4.11.2 掷硬币的连胜
在本次练习中,我们将尝试做,一个实验。如果你掷硬币100次,并在每次正面时写下“H”,在每次反面时写下“T”,就会创建一个看起来像“TTTHHTHTTHHHH”这样的列表。如果你要求一个人进行100次随机掷硬币,你可能会得到正反交替的结果,例如“HHTTHTTTHHHT”。
编写一个程序,计算随机生成的正面和反列表中出现连续6个正面或者6个反面的频率。将程序分成两个部分:
第一部分,创建一个函数,生成随机选择的“正面”和“反面”值的列表。
第二部分,检查其中是否由连续6个正面或者反面。
将这些代码放入一个循环中,重复实验1000次,检查出现连续6个正面或者反面的实验次数,并计算出现的频率。
具体代码如下:
调用random.randint(0, 1)来模拟掷硬币的结果。
import random
number_f = 0
number_n = 0
f = 'FFFFFF'
n = 'NNNNNN'
def decision():
str = ''
for i in range(100):
number = random.randint(0, 1)
if number == 0:
str += 'N'
else:
str += 'F'
return str
for experimentNumber in range(1000):
experiment = decision()
if f in experiment:
number_f += 1
if n in experiment:
number_n += 1
print(f'The percentage of "FFFFFF" is {number_f / 10}%')
print(f'Tht percentage of "NNNNNN" is {number_n / 10}%')
4.11.3 字符图网格
假定有一个列表的列表,内层列表的每个值都是包含一个字符的字符串,像这样:
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坐标增加。
复制前面的网格值,编写代码用它输出图像:
. . 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 . . . .
具体代码如下:
(这是一个心型,看出来了吗?为了让这个心型更美观一些,我们可以用空格连接列表的值。)
def picture(test):
for j in range(len(test[0])):
for i in range(len(test)):
print(test[i][j], end=' ')
print()
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', '.', '.', '.'],
['.', '.', '.', '.', '.', '.']]
picture(grid)
创作不易,请大家给个三连哦!!!