元組可以被看成是不能改變的列表。列表是動態(tài)的切平,你可以增添控妻,插入,刪除揭绑,更改列表元素弓候。有時我們需要這樣的操作,但是有些時候我們需要保證有些數(shù)據(jù)是不能被用戶或程序更改的他匪。這就是元組的作用菇存。
準確的說,列表是可變對象邦蜜,元組是不可變對象依鸥。
定義和訪問元組
元組的定義和列表相似,只是列表是用方括號定義悼沈,元組是用圓括號定義的贱迟。一旦定義好元組,你可以像訪問列表那樣訪問元組元素絮供,并且可以使用?for?循環(huán)衣吠。
更多學習資料,加Q群:313074041
colors? =? ('red',? 'green',? 'blue')
print("The first color is: " + colors[0])
print("\nThe available colors are:")
for color in colors:
? ? print("- " + color)
如果你嘗試向元組中添加元素壤靶,你會得到一個錯誤缚俏。
colors = ('red', 'green', 'blue')
colors.append('purple')
同樣的,其他操作也會導致錯誤。一旦定義好一個元組忧换,它就不會被改變恬惯。
元組生成字符串
我們知道混合英文字符和存儲字符串的變量是相當有用的,如下所示:
animal = 'dog'
print("I have a " + animal + ".")
當我們想要生成一系列的語句的時候亚茬,這種方式是不錯的生成方式酪耳。如下所示:
animals = ['dog', 'cat', 'bear']
for animal in animals:
? ? print("I have a " + animal + ".")
我們用加號來實現(xiàn),這種方法是符合直覺的刹缝,但不夠簡潔碗暗。使用占位符就能使代碼更簡潔。
Python 通常會忽略掉我們放進字符串的字符赞草,但是它會對少許字符格外注意讹堤。例如 "\t" 和 "\n"吆鹤。Python 同樣也會注意到 "%s" 和 "%d"厨疙。它們被稱為占位符。當 Python 看到了 "%s" 占位符疑务,它就會找到 % 后的第一個參數(shù)填充進占位符沾凄。如下所示:
animal = 'dog'
print("I have a %s." % animal)
這是一種相當簡潔的方法來生成包含變量的字符串。我們將句子寫進一條字符串中知允,然后告訴 Python 我們需要什么值嵌入到字符串的指定位置中撒蟀。
這種方法被稱為格式化字符串(string formatting)。如果你有不止一個數(shù)據(jù)要填充進字符串中温鸽,你需要將參數(shù)放進元組中保屯。如下所示:
animals = ['dog', 'cat', 'bear']
print("I have a %s, a %s, and a %s." % (animals[0], animals[1], animals[2]))
包含數(shù)字的格式化字符串
如果你想打印一個包含數(shù)字的字符串,如下所示:
number = 23
print("My favorite number is " + number)
上述代碼會報錯涤垫。Python 不知道你指的是值為23還是作為字符串的“23”姑尺。如果你想讓 Python 以字符串的形式對待這個變量,我們需要用到str()函數(shù)將數(shù)字轉(zhuǎn)為字符串蝠猬。如下所示:
number = 23
print("My favorite number is " + str(number) + ".")
如果要用格式化的字符串切蟋,"%d" 會幫助到我們。如下所示:
number = 23
print("My favorite number is %d." % number)
同理榆芦,你想嵌入多個數(shù)字柄粹,只需要將參數(shù)放進元組里。如下所示:
numbers = [7, 23, 42]
print("My favorite numbers are %d, %d, and %d." % (numbers[0], numbers[1], numbers[2]))
你也可以混合使用字符串和數(shù)字占位符匆绣。不再贅述驻右。
在 Python 3 中還有很多復雜的方法做字符串格式化。我們會留到以后再講崎淳。
動手試一試
Gymnast Scores
裁判給體操運動員打分旺入,1-10分。所有的分數(shù)都是整數(shù)。
把運動員可能得到的分數(shù)存儲到元組中茵瘾。
從元組中取出元素打印語句 “The lowest possible score is ___, and the highest possible score is ___.”
Revision with Tuples
使用格式化字符串打印 Gymnast Scores 中的語句礼华。
# Ex : Gymnast Scores
# put your code here
更多學習資料,加Q群:313074041
# Ex : Revision with Tuples
# put your code here