⑴ 利用python進行《野蠻時代》游戲數據分析
數據包含近229萬條記錄,109個欄位,以下取較重要的欄位進行說明。
欄位說明:user_id:用戶編碼,用戶唯一標識
bd_stronghold_level:要塞等級,相當於游戲賬號等級
wood_rece_value:木頭消耗數量
stone_rece_value:石頭消耗數量
ivory_rece_value:象牙消耗數量
meat_rece_value:肉消耗數量
magic_rece_value:魔法消耗數量
general_acceleration_rece_value:通用加速消耗數量
building_acceleration_rece_value:建築加速消耗數量
reaserch_acceleration_rece_value:科研加速消耗數量
training_acceleration_rece_value:訓練加速消耗數量
treatment_acceleration_rece_value:治療加速消耗數量
pvp_battle_count:玩家對玩家次數
pve_battle_count:玩家對機器次數
avg_online_minutes:日均在線時間
pay_price: 消費金額
pay_count:消費次數
分析思路:用戶注冊時間分布情況?
用戶的付費情況(付費率,ARPU,ARPPU)?
各等級用戶的付費情況?
用戶的消費習慣?
可視化數據
分析過程:
①導入數據
import numpy as np
import pandas as pd
from pandas import read_csv
from sklearn.cluster import KMeans
import matplotlib.pyplotas plt
import pylab as pl
from matplotlib.font_managerimport FontManager, FontProperties
pd.set_option('display.max_columns',None)
#為了數據安全,一份數據
df=df0
#檢查是否有空值
print(df.isnull().any().any())
#觀察數據構成
print(df.head())
②清洗數據
#以user_id為維度,刪除重復數據,並查看用戶總數
df=df.drop_plicates(subset='user_id')
print('用戶總數:',len(df['user_id']))
→用戶總數:2288007
③計算用戶注冊時間分布
#首先將注冊時間精確到天
register_date=[]
for i in df['register_time']:
date=i[5:10]
register_date.append(date)
df['register_time']=register_date
#計算每天的注冊人數
df_register=df.groupby('register_time').size()
df_register.columns=['日期','注冊人數']
print(df_register)
(可視化)
plt.plot(df_register)
plt.grid(True)
pl.xticks(rotation=90)
font=FontProperties(fname='/System/Library/Fonts/PingFang.ttc')
plt.title('用戶注冊分布圖',fontproperties=font)
plt.show()
△可以看出,用戶注冊數在2月19日有一次的大的高峰,其他時間也分別有幾次小高峰,且高峰的持續時間很短,可以推測是因為游戲推出一些獎勵活動或公司對游戲的推廣取得了效果進而使注冊用戶激增。
④用戶的付費情況(付費率,ARPU,ARPPU)
#付費率(付費人數/活躍人數)
df_pay_user=df[(df['pay_price']>0)]
pay_rate=df_pay_user['user_id'].count()/df_active_user['user_id'].count()
print('付費率:%.2f'%(pay_rate))
#ARPU(總付費金額/活躍人數)
arpu=df_pay_user['pay_price'].sum()/df_active_user['user_id'].count()
print('ARPU:%.2f'%(arpu))
#ARPPU(總付費金額/付費人數)
arppu=df_pay_user['pay_price'].sum()/df_pay_user['user_id'].count()
print('ARPPU:%.2f'%(arppu))
△目前盈利較好的手游的ARPU超過5元,一般手游在3~5元之間,盈利較差的低於3元,該游戲的ARPU為8.55元,說明盈利水平較高。
⑤不同等級用戶的付費情況
df_user=df[['user_id','bd_stronghold_level','pay_price','pay_count']]
df_table=pd.pivot_table(df_user,index=['bd_stronghold_level'],
values=['user_id','pay_price','pay_count'],
aggfunc={'user_id':'count','pay_price':'sum','pay_count':'sum'})
df_stronghold_pay=pd.DataFrame(df_table.to_records())
#各等級付費人數
df_stronghold_pay['pay_num']=df_user[(df_user['pay_price']>0)].groupby('bd_stronghold_level').user_id.count()
#各等級付費轉化率
df_stronghold_pay['pay_rate']=df_stronghold_pay['pay_num']/df_stronghold_pay['user_id']
#各等級平均付費金額
df_stronghold_pay['avg_pay_price']=df_stronghold_pay['pay_price']/df_stronghold_pay['user_id']
#各等級平均付費次數
df_stronghold_pay['avg_pay_count']=df_stronghold_pay['pay_count']/df_stronghold_pay['user_id']
#重命名列名
df_stronghold_pay.columns=['要塞等級','總付費次數','總付費金額','總人數',
'付費人數','付費轉化率','人均付費金額','人均付費次數']
df_stronghold_pay=df_stronghold_pay[['要塞等級','總人數','付費人數','付費轉化率',
'總付費金額','人均付費金額','總付費次數','人均付費次數']]
df_stronghold_pay=df_stronghold_pay.round(2)
print(df_stronghold_pay)
(可視化)
#要塞等級—付費轉化率
x=df_stronghold_pay['要塞等級']
y=df_stronghold_pay['付費轉化率']
plt.xticks(x,range(0,len(x),1))
plt.plot(x,y)
plt.grid(True)
plt.title('不同等級用戶付費轉化率',fontproperties=font)
plt.show()
#要塞等級-人均付費金額
x=df_stronghold_pay['要塞等級']
y=df_stronghold_pay['人均付費金額']
plt.xticks(x,range(0,len(x),1))
plt.plot(x,y)
plt.grid(True)
plt.title('不同等級用戶人均付費jine',fontproperties=font)
plt.show()
x=df_stronghold_pay['要塞等級']
y=df_stronghold_pay['人均付費金額']
plt.xticks(x,range(0,len(x),1))
plt.plot(x,y)
plt.grid(True)
plt.title('不同等級用戶人均付費jine',fontproperties=font)
plt.show()
#要塞等級-人均付費次數
x=df_stronghold_pay['要塞等級']
y=df_stronghold_pay['人均付費次數']
plt.xticks(x,range(0,len(x),1))
plt.plot(x,y)
plt.grid(True)
plt.title('不同等級用戶人均付費次數',fontproperties=font)
plt.show()
△用戶等級到達10級時,付費率接近60%,等級到達13級時,付費率接近100%,且人均付費金額和次數兩項指標也在用戶達到10級後增長迅速,因此可以認定10級以上用戶為游戲的核心用戶。
△但是觀察用戶等級分布,發現絕大部分用戶還是處在10級以下的水平,因此如何使用戶達到10級是游戲運營接下來需要考慮的事。
⑥不同玩家的消費習慣
該游戲充值主要可以獲得道具類(木頭、石頭、象牙、肉、魔法)和加速券類(通用、建築、科研、訓練、醫療)。根據用戶的充值金額大小,分別分析兩類消費品的消耗情況。
#將等級>=10級的玩家劃分為:消費>=500為高消費玩家,<500為普通玩家
df_eli_user=df[(df['pay_price']>=500)&(df['bd_stronghold_level']>=10)]
df_nor_user=df[(df['pay_price']<500)&(df['bd_stronghold_level']>10)]
#不同玩家的道具消耗情況
wood_avg=[df_eli_user['wood_rece_value'].mean(),df_nor_user['wood_rece_value'].mean()]
stone_avg=[df_eli_user['stone_rece_value'].mean(),df_nor_user['stone_rece_value'].mean()]
ivory_avg=[df_eli_user['ivory_rece_value'].mean(),df_nor_user['ivory_rece_value'].mean()]
meat_avg=[df_eli_user['meat_rece_value'].mean(),df_nor_user['meat_rece_value'].mean()]
magic_avg=[df_eli_user['magic_rece_value'].mean(),df_nor_user['magic_rece_value'].mean()]
props_data={'high_value_player':[wood_avg[0],stone_avg[0],ivory_avg[0],meat_avg[0],magic_avg[0]],
'normal_player':[wood_avg[1],stone_avg[1],ivory_avg[1],meat_avg[1],magic_avg[1]]}
df_props=pd.DataFrame(props_data,index=['wood','stone','ivory','meat','magic'])
df_props=df_props.round(2)
print(df_props)
#可視化
ax=df_props.plot(kind='bar',title='Props Rece',
grid=True,legend=True)
plt.show()
△普通玩家和高消費玩家對木頭、石頭、肉的消耗都較大,魔法的消耗都較小,而在象牙的消耗上,高消費玩家和普通玩家的消耗差距較大。
#不同玩家的加速券消耗情況
general_avg=[df_eli_user['general_acceleration_rece_value'].mean(),
df_nor_user['general_acceleration_rece_value'].mean()]
building_avg=[df_eli_user['building_acceleration_rece_value'].mean(),
df_nor_user['building_acceleration_rece_value'].mean()]
research_avg=[df_eli_user['reaserch_acceleration_rece_value'].mean(),
df_nor_user['reaserch_acceleration_rece_value'].mean()]
training_avg=[df_eli_user['training_acceleration_rece_value'].mean(),
df_nor_user['training_acceleration_rece_value'].mean()]
treatment_avg=[df_eli_user['treatment_acceleration_rece_value'].mean(),
df_nor_user['treatment_acceleration_rece_value'].mean()]
acceleration_data={'high_value_player':[general_avg[0],building_avg[0],research_avg[0],
training_avg[0],treatment_avg[0]],
'normal_player':[general_avg[1],building_avg[1],research_avg[1],
training_avg[1],treatment_avg[1]]}
df_acceleration=pd.DataFrame(acceleration_data,index=['general','building','researching','training','treatment'])
print(df_acceleration.round(2))
#可視化
ax=df_acceleration.plot(kind='bar',title='Acceleration Rece',
grid=True,legend=True)
plt.show()
△兩類玩家對對治療加速券消耗都很小,對通用加速券的消耗差異較大,其他三種加速券消耗差別不大。
結論:1.該游戲具有較大的用戶基數,且新用戶注冊受游戲活動、新版本等因素影響較大。
2.該游戲的ARPU為8.55,說明該游戲的盈利能力較高。
3.用戶等級達到10級後,付費意願明顯上升,且達到13級時付費率將近100%。但是絕大多數用戶仍然停留在10級以下,如何使用戶平滑升至10級尤為重要。
4.消費習慣上,高消費玩家對象牙和通用加速券的需求遠多於一般玩家。
⑵ python能做什麼游戲
Python是一門高級且有趣的編程語言,除了網路爬蟲、人工智慧、數據分析之外,Python還可以進行游戲開發,為大家介紹五個支持Python的2D、3D游戲開發庫。
1、Cocos2d:是一系列開源軟體框架,用於構建跨平台2D游戲和應用程序,由cocos2d-x、cocos2d-js、cocos2d-xna和cocos2d多種框架組成,像大魚賭場、城堡沖突等小游戲,就是用此框架開發出來的。
2、Panda3D:是由迪士尼開發的3D游戲引擎,一個用於Python和C++程序的3D渲染和游戲開發框架,並由卡內基梅隴娛樂技術中心負責維護,使用C++編寫的,針對Python進行了完全的封裝。
3、Pygame:它是一組Python模塊,用來編寫游戲,可支持Python3.7,游戲例子有:紙牌游戲、超級馬里奧、擊球等多種游戲。
4、Pyogre:ogre 3D渲染引擎的Python綁定,可以用來開發游戲和模擬程序等任何3D應用,它的API更加穩定,也非常快速靈活。
5、RenPy:一個視覺小說引擎,被世界各地的成千萬的創造者所使用,它可以幫助你使用文字、圖像和聲音來講述電腦和移動設備上的故事。RenPy是開放源碼的,可免費的商業用途,易於學習的腳本語言任何人都能有效地編寫大型視覺小說,它的Python腳本足以用來模擬游戲。
⑶ 用Python能做哪些事情
Python作為一門膠水語言,其實能做的事非常多,下面我簡單介紹一下,分為八個方面,主要內容如下:
數據處理
Python提供了大量用於數據處理和科學計算的庫,像numpy,scipy,pandas等,對於矩陣計算、線性代數等,numpy可以快速計算並得到結果,pandas內置的DataFrame類型可以快速處理各種常見的文件,像CSV,Excel,JSon等,是數據分析的利器,在數據處理中經常使用:
可視化
Python數據可視化庫也非常豐富,除了經常使用的matplotlib外,還有許多其他可視化庫,像seaborn,pyecharts等,繪制的圖形種類更豐富,更漂亮,代碼量也更少,非常容易學習,對於日常作圖製表來說,是一個非常不錯的選擇:
機器學習
現在機器學習正火,其實Python裡面也有現成的機器學習模塊可供學習—scikit-learn,對於常見的機器學習演算法,像分類、回歸、聚類、降維等,這個模塊都有現成的代碼可直接使用,非常方便,對於想入門機器學習的朋友來說,這是一個非常不錯的選擇:
神經網路
神經網路起源應該比較早了,目前在圖像領域應用比較廣泛,Python也有現成的神經網路模塊可供使用,比較有名的就是谷歌開源的tensorflow,可以快速構建神經網氏轎絡模型,並支持GPU計算,對於科研人員來說,是一個非常不錯的選擇,當然,除此之虛埋外,還有更高級的theano,keras等,使用也非常方便:
財經金融
對於想快速獲取股票財經數據的朋友來說,Python也有現成的模塊可供使用—tushare,一個免費、開源的財經數據介麵包,可以快速獲取國內股票數據,而且自動整合了數據爬取、清洗到加工的過程,使用起來非常不錯,對於金融分析人員來說,是一個非常不錯的工具:
爬蟲
Python非常適合做網頁爬蟲,像常見的urllib,bs4,requests,lxml等模塊,對於爬取大部分網頁來說非常容易,請求解析於一身,可以快速獲取到我們需要的數據,當然,為了提高開發效率,避免重復造輪子,Python也提供了一個非常受歡迎的爬蟲框架—scrapy,可定製性更高,用戶只需要添加少量代碼,便可快速啟動爬蟲:
游戲開發
對於游戲開發來差核螞說,Python也有一個專門的平台—pygame,專門用於游戲開發,對於開發小型游戲來說,這是一個非常不錯的選擇,擺脫了低級語言的束縛,代碼量更少也更易學習,對於游戲感興趣的朋友來說,這是一個非常不錯的選擇:
視頻下載
對於視頻下載來說,Python也有一個下載利器—you-get,可以免費快速的下載優酷、B站、美拍等網站視頻,不需要登錄,一鍵you-get就可以下載視頻到本地,還支持在線播放功能,除此之外,還可以下載圖片、音頻等文件,是一個非常實用的工具:
目前,就分享這8個方便吧,比較實用也比較有趣,當然,還有許多其他方面的,像Web開發、桌面GUI、測試、運維、樹莓派等,網上也有相關資料可供參考,感興趣的朋友可以自己搜一下,希望以上分享的內容能對你有所幫助吧
⑷ python猜拳游戲編程代碼背景意義
python猜拳游戲編程代碼背景意義是用面向對象的思想做一個游戲。用面向對象的思想玩家猜拳:1剪刀2石頭3布玩家輸入一個1-3的數字電腦出拳:隨機產生一個1-3的數字,提示電腦出拳結果老梁本局對戰結束,輸出誰贏,是否繼續輸出結果:玩家贏幾局電腦贏幾侍槐運局平局明賀幾次游戲結束。
⑸ python實驗報告游戲「羊了個羊」實踐目的怎麼寫
"羊了個羊"是一個經典的尺中游戲,它的目的耐困伍是讓玩家在有限的步數內通過合理的規劃,把所有的羊從左邊轉移到右邊,並且沒有任何一隻羊被狼吃掉。
在本次實驗中,我們將使用python編程語言,實現一個簡單的「羊了個羊」游戲。通過這個實驗,我們將學習到如何使用python語言,實現一個簡單的游戲。同時,也可以提高我們的編程能力和邏輯思維能力。
因此,本次實驗的目的包括:
學習python語言的基本語法和語言特性。
提高編程能力和邏輯思維能力。
實現一個簡單的游戲,從而了解游戲開發的基本流程。
了解「羊了個昌或羊」游戲的經典演算法,從而學習演算法設計的方法。
通過本次實驗,我們有望能夠更加熟練地掌握python語言,並且在編程中能夠更加高效,准確地完成任務。
⑹ python數據挖掘技術及應用論文怎麼寫
python數據挖掘技術及應用論文選題如下:
1、基於關鍵冊肆詞的文本知識型姿明的挖掘系統的設計與實現。
2、基於MapRece的氣候數據的分析。
3、基於概率圖模型的蛋白質功能預測。
4、基於第三方庫的人臉識別系統的設計與實現。
5、基於hbase搜卜告索引擎的設計與實現。
6、基於Spark-Streaming的黑名單實時過濾系統的設計與實現。
7、客戶潛在價值評估系統的設計與實現。
8、基於神經網路的文本分類的設計與實現。
⑺ Python實現消消樂小游戲
pre{overflow-x: auto} 實現 消消樂的構成主要包括三部分:游戲主體、計分器、計時器,下面來看一下具體實現。
先來看一下游戲所需 Python 庫。
import os import sys import time import pygame import random
定義一些常量,比如:窗口寬高、網格行列數等,代碼如下:
WIDTH = 400 HEIGHT = 400 NUMGRID = 8 GRIDSIZE = 36 XMARGIN = (WIDTH - GRIDSIZE * NUMGRID) // 2 YMARGIN = (HEIGHT - GRIDSIZE * NUMGRID) // 2 ROOTDIR = os.getcwd() FPS = 30
接著創建一個主窗口,代碼如下:
pygame.init() screen = pygame.display.set_mode((WIDTH, HEIGHT)) pygame.display.set_caption('消消樂')
看一下效果:
再接著在窗口中畫一個 8 x 8 的網格,代碼如下:
screen.fill((255, 255, 220)) # 游戲界面的網格繪制 def drawGrids(self): for x in range(NUMGRID): for y in range(NUMGRID): rect = pygame.Rect((XMARGIN+x*GRIDSIZE, YMARGIN+y*GRIDSIZE, GRIDSIZE, GRIDSIZE)) self.drawBlock(rect, color=(255, 165, 0), size=1 # 畫矩形 block 框 def drawBlock(self, block, color=(255, 0, 0), size=2): pygame.draw.rect(self.screen, color, block, size)
看一下效果:
再接著在網格中隨機放入各種拼圖塊,代碼如下:
while True: self.all_gems = [] self.gems_group = pygame.sprite.Group() for x in range(NUMGRID): self.all_gems.append([]) for y in range(NUMGRID): gem = Puzzle(img_path=random.choice(self.gem_imgs), size=(GRIDSIZE, GRIDSIZE), position=[XMARGIN+x*GRIDSIZE, YMARGIN+y*GRIDSIZE-NUMGRID*GRIDSIZE], downlen=NUMGRID*GRIDSIZE) self.all_gems[x].append(gem) self.gems_group.add(gem) if self.isMatch()[0] == 0: break
看一下效果:
再接著加入計分器和計時器,代碼如下:
# 顯示得分 def drawScore(self): score_render = self.font.render('分數:'+str(self.score), 1, (85, 65, 0)) rect = score_render.get_rect() rect.left, rect.top = (55, 15) self.screen.blit(score_render, rect) # 顯示加分 def drawAddScore(self, add_score): score_render = self.font.render('+'+str(add_score), 1, (255, 100, 100)) rect = score_render.get_rect() rect.left, rect.top = (250, 250) self.screen.blit(score_render, rect) # 顯示剩餘時間 def showRemainingTime(self): remaining_time_render = self.font.render('倒計時: %ss' % str(self.remaining_time), 1, (85, 65, 0)) rect = remaining_time_render.get_rect() rect.left, rect.top = (WIDTH-190, 15) self.screen.blit(remaining_time_render, rect)
看一下效果:
當設置的游戲時間用盡時,我們可以生成一些提示信息,代碼如下:
while True: for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() sys.exit() if event.type == pygame.KEYUP and event.key == pygame.K_r: flag = True if flag: break screen.fill((255, 255, 220)) text0 = '最終得分: %s' % score text1 = '按 R 鍵重新開始' y = 140 for idx, text in enumerate([text0, text1]): text_render = font.render(text, 1, (85, 65, 0)) rect = text_render.get_rect() if idx == 0: rect.left, rect.top = (100, y) elif idx == 1: rect.left, rect.top = (100, y) y += 60 screen.blit(text_render, rect) pygame.display.update()
看一下效果:
說完了游戲圖形化界面相關的部分,我們再看一下游戲的主要處理邏輯。
我們通過滑鼠來操縱拼圖塊,因此程序需要檢查有無拼圖塊被選中,代碼實現如下:
def checkSelected(self, position): for x in range(NUMGRID): for y in range(NUMGRID): if self.getGemByPos(x, y).rect.collidepoint(*position): return [x, y] return None
我們需要將滑鼠連續選擇的拼圖塊進行位置交換,代碼實現如下:
def swapGem(self, gem1_pos, gem2_pos): margin = gem1_pos[0] - gem2_pos[0] + gem1_pos[1] - gem2_pos[1] if abs(margin) != 1: return False gem1 = self.getGemByPos(*gem1_pos) gem2 = self.getGemByPos(*gem2_pos) if gem1_pos[0] - gem2_pos[0] == 1: gem1.direction = 'left' gem2.direction = 'right' elif gem1_pos[0] - gem2_pos[0] == -1: gem2.direction = 'left' gem1.direction = 'right' elif gem1_pos[1] - gem2_pos[1] == 1: gem1.direction = 'up' gem2.direction = 'down' elif gem1_pos[1] - gem2_pos[1] == -1: gem2.direction = 'up' gem1.direction = 'down' gem1.target_x = gem2.rect.left gem1.target_y = gem2.rect.top gem1.fixed = False gem2.target_x = gem1.rect.left gem2.target_y = gem1.rect.top gem2.fixed = False self.all_gems[gem2_pos[0]][gem2_pos[1]] = gem1 self.all_gems[gem1_pos[0]][gem1_pos[1]] = gem2 return True
每一次交換拼圖塊時,我們需要判斷是否有連續一樣的三個及以上拼圖塊,代碼實現如下:
def isMatch(self): for x in range(NUMGRID): for y in range(NUMGRID): if x + 2 -2: for each in [res_match[1], res_match[1]+1, res_match[1]+2]: gem = self.getGemByPos(*[each, start]) if start == res_match[2]: self.gems_group.remove(gem) self.all_gems[each][start] = None elif start >= 0: gem.target_y += GRIDSIZE gem.fixed = False gem.direction = 'down' self.all_gems[each][start+1] = gem else: gem = Puzzle(img_path=random.choice(self.gem_imgs), size=(GRIDSIZE, GRIDSIZE), position=[XMARGIN+each*GRIDSIZE, YMARGIN-GRIDSIZE], downlen=GRIDSIZE) self.gems_group.add(gem) self.all_gems[each][start+1] = gem start -= 1 elif res_match[0] == 2: start = res_match[2] while start > -4: if start == res_match[2]: for each in range(0, 3): gem = self.getGemByPos(*[res_match[1], start+each]) self.gems_group.remove(gem) self.all_gems[res_match[1]][start+each] = None elif start >= 0: gem = self.getGemByPos(*[res_match[1], start]) gem.target_y += GRIDSIZE * 3 gem.fixed = False gem.direction = 'down' self.all_gems[res_match[1]][start+3] = gem else: gem = Puzzle(img_path=random.choice(self.gem_imgs), size=(GRIDSIZE, GRIDSIZE), position=[XMARGIN+res_match[1]*GRIDSIZE, YMARGIN+start*GRIDSIZE], downlen=GRIDSIZE*3) self.gems_group.add(gem) self.all_gems[res_match[1]][start+3] = gem start -= 1
之後反復執行這個過程,直至耗盡游戲時間,游戲結束。
最後,我們動態看一下游戲效果。
總結
本文我們使用 Python 實現了一個簡單的消消樂游戲,有興趣的可以對游戲做進一步擴展,比如增加關卡等。
到此這篇關於Python實現消消樂小游戲的文章就介紹到這了,希望大家以後多多支持!
⑻ python編程應用:小游戲hangman
代碼分析:
1.import random導入模塊
導入random模塊,本程序主要是使用random.randint(0,3)方法生成一個0-3之間的隨機的隨機數。
2、HANGMAN_PICS常量
Python默認把定義的常量大寫,HANGMAN_PICS是一個字元列表常量,字母全部大些也提醒一次賦值之後不再改扒絕畢變,這就是常量的意思。
3、列表格式
animals=['frog','rabbit','owl','peacock'] 列表包含4個元素(item),每一個元素用逗號隔開,左邊方括弧和右邊的方括弧是列春芹表必須格式必須帶的。
4、列表訪問
用索引訪問元素animals[0],0就是索引號,以此類推還想訪問其他元素...animals[1],animals[2],animals[3],如果繼續訪問animals[4]就會造成索引越界報indexError的錯誤。
5、「 + 」連接符
「 + 」號 在程序中除了進行運算,還有就是連接字元串和列宏察表,例1:animals='frog',+'rabbit'就會得到animals = 'frograbbit'. 例2:animals = ['frog','rabbit']和river_animals = ['ck','snake']兩個列表通過 「+」連接符 就獲得['frog', 'rabbit', 'ck', 'snake']一個合成新列表。
6、用索引賦值來修改列表元素
animals[1] = 'swan' 生成一個新列表 animals = [ 'frog' , 'swan' ]
7、in操作符
in操作符告訴我們in左邊的值是否包含在右邊列表中,如果該值在列表中它將要返回True;如果該值不在列表中,返回值是False。例1:'dragonfly' in [ 'frog' , 'rabbit' ] 返回值是 False 例2 :'ck' in [ 'ck' , 'snake' ] 返回值是True 。例3: ' bee ' in ' sanke bee bird bear lion owl .'
8、調用方法(method)
8.1針對列表的方法 reverse( ) 和 append( )
reverse() 方法會把列表中的元素順序反轉,numbers = [ 1 , 2 , 3 , 4 , 5 ]然後 numbers.reverse( )會反轉列表元素 numbers = [ 5 , 4 , 3 , 2 , 1 ]
append()方法在列表的最後添加一個元素,numbers.append( 6 ) 得到 numbers = [ 1 , 2 , 3 ,4 , 5, 6]
8.2 字元串方法 split( )
程序的51行使用此方法,讓字元串 words 反饋一個words = [ 'ant', 'baboon', 'badger', 'bat', 'bear'........] 列表