型別系統是程式語言的基石。
PHP
的資料型別是隱式存在,不同的資料型別之間運算,部分可以自動完成轉型。java
,golang
都是強型別語言,型別需要顯性宣告,即便go型別推斷表現的像動態語言。
型別
python
從某種意義上來講,並非像PHP那樣完全動態,但使用 python
還是需要型別意識。
s="abc"
i=5
d={'Admin':28}
l=['a',23,('b','cc')]
print(s,i,d,l,sep="\n")
列印效果如下
abc
5
{'Admin': 28}
['a', 23, ('b', 'cc')]
你可能疑問,同樣是字串為什麼s變數列印引號沒有了,而組合型別列表,字典中的字串的引號仍然存在?
這是因為 print
具備多型的能力,會自行推斷變數的型別,採用不同的型別方式,對輸出的原始型別字串是不帶引號。
解包
s = [1,3,5]
print(s) # [1,3,5]
print(*s) # 1 3 5
同前文一樣的道理,下述等價
print('abc',123) #輸出 abc 123
print(*['abc',123]) #輸出 abc 123
問題
將下面字典資料進行指定的 print
輸出
x={'Admin':95,'Lisa':85,'Bart':59}
要求輸出結果為
Adam:95 Lisa:85 Brat:59
解決
方案1
利用for
迭代,print
型別推斷,格式,結合字典型別的items
方法返回 ItemsView[_KT, _VT]
for k,v in x.items():
print(k,":",v,sep="",end=" ")
方案2
使用列表生成式,%
字串格式化,外加解包知識,一行列印解決
print(*['%s:%d'%t for t in x.items()])