求大神解答,《Python程式設計從入門到實踐》第94-95頁,外星人入侵

這輩子都不可能學習的發表於2020-05-11

第一個程式碼塊:

print('*'25+'外星人入侵'+''*25) aliens = [ ] #定義一個空列表 for i in range(0,8,1): #生成8個外星人 dictionary8 = {'color': 'green', 'points': 5, "speed": "10"} #注意這裡,字典放在for迴圈內 aliens.append(dictionary8)

現在,aliens列表裡面有8個特徵一樣的外星人了

for alien in aliens[0:3]: #只改變前三個外星人的特徵 if alien['color'] == 'green': alien['color'] = 'red' alien['points'] = '6' alien['speed'] = '20' for aliens1 in aliens: #輸出aliens列表中的外星人 print(aliens1)

執行結果如下:

*********************外星人入侵********************* {'color': 'red', 'points': '6', 'speed': '20'} {'color': 'red', 'points': '6', 'speed': '20'} {'color': 'red', 'points': '6', 'speed': '20'} {'color': 'green', 'points': 5, 'speed': '10'} {'color': 'green', 'points': 5, 'speed': '10'} {'color': 'green', 'points': 5, 'speed': '10'} {'color': 'green', 'points': 5, 'speed': '10'} {'color': 'green', 'points': 5, 'speed': '10'}

執行正常無誤

現在,輕微修改一下第一個程式碼塊,將字典放到空列表下面,也就是放到for迴圈的上面:

print('*'25+'外星人入侵'+''*25) aliens = [ ] dictionary8 = {'color': 'green', 'points': 5, "speed": "10"} #注意這裡,字典放到了外面 for i in range(0,8,1): aliens.append(dictionary8) for alien in aliens[0:3]: #只修改前三個 if alien['color'] == 'green': alien['color'] = 'red' alien['points'] = '6' alien['speed'] = '20' for aliens1 in aliens: print(aliens1)

執行結果如下:

*********************外星人入侵********************* {'color': 'red', 'points': '6', 'speed': '20'} #原本只改前三個外星人,但是所有的外星人都被改了 {'color': 'red', 'points': '6', 'speed': '20'} {'color': 'red', 'points': '6', 'speed': '20'} {'color': 'red', 'points': '6', 'speed': '20'} {'color': 'red', 'points': '6', 'speed': '20'} {'color': 'red', 'points': '6', 'speed': '20'} {'color': 'red', 'points': '6', 'speed': '20'} {'color': 'red', 'points': '6', 'speed': '20'}

相關文章