逗号代码+字符图网格

逗号代码
假定有下面这样的列表:

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

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

def string(listing):
    listing.insert(len(listing)-1,'and')
    st = ''
    """
    简单点
    for ls in listing[:len(listing)-1]:
        if ls != 'and':
            st += ls + ','
            pass
        else:
            st += ls + ' '
            pass
    st += listing[-1]
    """
    for ls in listing:
        if ls != 'and' and ls != listing[-1]:
            st += ls + ','
        elif ls == listing[-1]:
            st += ls
        else:
            st += ls + ' '
    return st

spam = ['apples','bananas','tofu','cats']
sm = string(spam)
print(sm)

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

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 坐标增加。
复制前面的网格值,编写代码用它打印出图像。

..OO.OO..
.OOOOOOO.
.OOOOOOO.
..OOOOO..
...OOO...
....O....

代码如下:

grid = [['.', '.', '.', '.', '.', '.'],
        ['.', '0', '0', '.', '.', '.'],
        ['0', '0', '0', '0', '.', '.'],
        ['0', '0', '0', '0', '0', '.'],
        ['.', '0', '0', '0', '0', '0'],
        ['0', '0', '0', '0', '0', '.'],
        ['0', '0', '0', '0', '.', '.'],
        ['.', '0', '0', '.', '.', '.'],
        ['.', '.', '.', '.', '.', '.']]
for x in range(len(grid[0])):
    for y in range(len(grid)):
        print(grid[y][x],end = '')
    print(end = "\n")
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值