逗号代码和字符图网络

逗号代码-python3

假定有下面这样的列表:

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

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

代码如下:

import copy
def getstring(list2):
    list1 = copy.copy(list2)
    list1.insert(-1,'and')
    last1 = list1.pop()
    last2 = list1.pop()
    last12 = last2+' '+last1
    spam=list1[0]
    j=1
    for i in range(len(list1)):
        spam=spam+','+list1[j]
        j = j+1
        if j == len(list1):
            break
    print(spam+','+last12)
spam = ['apple','bananas','tofu','cats','grape']
getstring(spam)
验证代码:

字符图网格

假定有一个列表的列表,内层列表的每个值都是包含一个字符的字符串,像这样:
[plain] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. grid = [ ['.', '.', '.', '.', '.','.'],  
  2.          ['.', '0', '0', '.', '.','.'],  
  3.          ['0', '0', '0', '0', '.','.'],  
  4.          ['0', '0', '0', '0', '0','.'],  
  5.          ['.', '0', '0', '0', '0','0'],  
  6.          ['0', '0', '0', '0', '0','.'],  
  7.          ['0', '0', '0', '0', '.','.'],  
  8.          ['.', '0', '0', '.', '.','.'],  
  9.          ['.', '.', '.', '.', '.','.']]  

你可以认为grid[x][y]是一幅“图”在x,y坐标处的字符,该图由文本字符组成。原点(0,0)在左上角,向右x坐标增加,向下y坐标增加。
复制前面的网格值,编写代码用它打印图像。
[plain] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. ..OO.OO..  
  2. .OOOOOOO.  
  3. .OOOOOOO.  
  4. ..OOOOO..  
  5. ...OOO...  
  6. ....O....  
提示:你需要使用循环嵌套循环,打印出grid[0][0],然后grid[1][0],然后grid[2][1],以此类推,知道grid[8][0]。这就完成第一行,所以接下来打印换行。然后程序将打印出grid[0][1],然后grid[1][1],然后grid[2][1],以此类推。程序最后将打印出grid[8][5]。
而且,如果你不希望在每次print()调用后都自动打印换行,记得向print()传递end关键字参数。
代码如下:
def grid1(list1):
    for i in range(len(list1[0])):
        for j in range(len(list1)):
            print(list1[j][i],end=' ')
            if j ==len(list1)-1:
                print('\n')
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', '.', '.','.'],
         ['.', '.', '.', '.', '.','.']]
grid1(grid)
验证如下:
这次练习,总体上来说把列表的 所有功能都练习到了,len()函数,for循环,连接操作符和复制操作符,切片,下标取值,pop()方法,insert()方法,apend()方法。
还有print('error',end=' ')使用方法。
但是
print(list1[j][i],end=' ')这种写法在pycharm中认为错误,我至今也没有找到原因,还请各位大神能给指导出错误所在,以及如何改进。
posted @ 2017-02-22 18:28  Aaron帅  阅读(2918)  评论(1编辑  收藏  举报