1. 程式人生 > >python實踐專案(二)

python實踐專案(二)

練習1:逗號程式碼

假定有下面這樣的列表:

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

       編寫一個函式,它以一個列表值作為引數,返回一個字串。該字串包含所有表項,表項之間以逗號和空格分隔,並在最後一個表項之前插入and。例如,將前面的 spam 列表傳遞給函式,將返回'apples, bananas, tofu, and cats'。但你的函式應該能夠處理傳遞給它的任何列表。

#-*-coding:utf-8-*-

#將列表各元素轉換為字串並以規定的形式連線返回
#例如輸入spam = ['apples', 'bananas', 'tofu', 'cats'
# 則返回值為:'apples, bananas, tofu, and cats'
def listToStr(inputList):
    ListLen=len(inputList)
    s=''
    if ListLen == 0:           #注意轉換為字串形式輸出
        return 'The input is empty'
    elif ListLen == 1 :
        return str(inputList[0])
    else:
        for i in range(ListLen-1):
            s = s + str(inputList[i]) + ','
        s = s + 'and ' + str(inputList[-1])
        return s

#考慮各種輸入的情況
# spam = ['apples','bananas','tofu','cats']
# spam = []
# spam = [1,2]
# spam = [1,2,3,4,5,6,7]

#輸入列表元素
spam = []
while True:
    print('please enter an element of List'   #依次輸入列表元素,以空格回車結束
          ' (Or enter nothing to stop):')      #注意考慮各種輸入情況
    name = input()
    if name == '':
        break
    spam +=  [name]

output = listToStr(spam)
print(output)

練習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]是一幅“圖” 在 xy 座標處的字元, 該圖由文字字元組:成。 原點(0, 0)在左上角, 向右 x 座標增加, 向下 y 座標增加。複製前面的網格值,編寫程式碼用它打印出影象。
..OO.OO..
.OOOOOOO.
.OOOOOOO.
..OOOOO..
...OOO...

....O....

提示:

你需要使用迴圈巢狀迴圈,打印出 grid[0][0],然後 grid[1][0],然後 grid[2][0],以此類推,直到 grid[8][0]。這就完成第一行,所以接下來列印換行。然後程式將打印出

grid[0][1],然後 grid[1][1],然後 grid[2][1],以此類推。程式最後將打印出 grid[8][5]而且,如果你不希望在每次 print()呼叫後都自動列印換行, 記得向 print()傳遞end 關鍵字引數。

#-*-coding:utf-8-*-

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', '.', '.', '.'],
        ['.', '.', '.', '.', '.', '.']]

ListRow = len(grid)
ListCol = len(grid[0])

for i in range(ListCol):
    for j in range(ListRow):
         print(grid[j][i],end='')
    print()