下面是基礎(chǔ)語法篇的大雜燴剂碴,其中包括了基本數(shù)據(jù)類型的創(chuàng)建與使用,以及打印變量的內(nèi)容、類型贮勃,還有基本數(shù)據(jù)類型的轉(zhuǎn)換。
# 拼接字符串
temp = 42
print("now temp is" + ' 42')
# 縮進表示代碼塊苏章,保存縮進一致寂嘉,否則報錯
a = 1
if a == 2:
print("the result is true.")
print("!")
else:
print("It's error!")
# 自然字符串,r枫绅。r保證了""中的內(nèi)容都是字符泉孩,不會發(fā)生轉(zhuǎn)義
str1 = r"this is a nature string.\n"
print(str1)
# 處理unicode字符串
str2 = u"this is an unicode string."
print(str2)
# 同一行可顯示多條語句
import sys
x = 'runoob'
sys.stdout.write(x + '\n')
# 不換行輸出,就在輸出結(jié)尾加上 end = " "
print("don't newline", end=" ")
print("ok")
# import 和 from...import的區(qū)別
# import是將整個模塊導入并淋,包括模塊內(nèi)的所有函數(shù)
# form...import是從某個模塊導入某個函數(shù)或者某個成員變量
# 語法:from sys import argv,path;
''' 關(guān)于比較長的注釋寓搬,可以這樣來寫
這有些類似于OC和Java的文檔注釋
可以詳細注釋函數(shù)功能以及參數(shù)代表的含義和參數(shù)示例
'''
# help(max)
# 數(shù)據(jù)類型
# Python中有6種數(shù)據(jù)類型
# Number(數(shù)字), String(字符串), List(列表), Tuple(元組), Sets(集合), Dictionary(字典)
# Number類型
# 在Python3中,數(shù)字只有4種县耽,int, float, bool, complex
# 整數(shù)只有一種int類型句喷,取消了python2中的長整形(在值后面加個'L'镣典,現(xiàn)在再加'L'編譯器會報錯)
# 如果你想知道某個變量的類型,可以使用type()函數(shù)
i1 = 45
f1 = 3.3
b1 = True
c1 = 4 + 5j
print(type(i1), type(f1), type(b1), type(c1))
# 輸出結(jié)果為:<class 'int'> <class 'float'> <class 'bool'> <class 'complex'>
# 另外Python一共了一個判斷變量類型的函數(shù)
a = 111
isinstance(a, int)
# 但是這個isinstance方法在Python Shell中可以打印出結(jié)果脏嚷,在Sbulime Text 3中無法打印結(jié)果
# type()函數(shù) 和 isinstance()函數(shù) 的區(qū)別
# type()函數(shù)判斷類型時不識別類的繼承關(guān)系骆撇,也就是說用這個類型的父類判斷時返回False
# isinstance()函數(shù)會識別類的繼承關(guān)系,判斷是否是父類時仍然會返回 True
# 數(shù)字中有兩個特殊值父叙,True 和 False神郊。這兩個值在Python3.0之后的版本被定義為關(guān)鍵字,分別代表數(shù)字1 和 0
# 并且True 和 False 可以和數(shù)字類型的變量進行操作趾唱,比如加減乘除
# Del 刪除語句
var3 = 234
# del var3
print(var3)
# Del 關(guān)鍵字的作用就是刪除引用或者變量, 當你刪除了引用后又使用這個引用時就會報錯涌乳,原理應(yīng)該類似于OC中的野指針
# 加減乘除,除法取整//,求余%甜癞,乘方**
# 有一下幾點需要知道:
# 1.一個變量通過賦值可以指向不同的類型的對象
# 2.在混合計算時夕晓,Python會自動把結(jié)果改為Float類型(以免丟失精度)
# 最后一個數(shù)值類型,復(fù)數(shù)Complex, 比如表示 1+2j悠咱,有如下兩種方式:
var4 = complex(1, 2)
var5 = 1 + 2j
# String 字符串
# Python中用''或者""表示字符串蒸辆,用\表示轉(zhuǎn)義
# 截取字符串
# 索引從0開始,-1代表倒數(shù)第二個
str3 = "abcdefg"
print(str3)
print(str3[0:-1]) # 范圍選取
print(str3[2:]) # 輸出索引3開始之后的所有字符
print(str3[0]) # 單個選取
print(str3 * 2) # 連續(xù)輸出兩次(中間無空格或者制表符‘\t’)
# r代表原始字符串 ,在輸出時會忽略轉(zhuǎn)義字符\n\t等
print(r"\n fdafsf\t")
# 與C語言字符串不同的是析既,Python字符串不能改變躬贡,如果你想向某個字符串的索引位置賦值時,就會報錯
# Python字符串的索引有兩種方式眼坏,從左向右從0開始拂玻,從右向左從-1開始
# 最后,再說一遍宰译,Python中的字符串不能改變
# List 列表
# 在Python中檐蚜,List使用非常頻繁,可以完成大多數(shù)集合類的數(shù)據(jù)結(jié)構(gòu)的實現(xiàn)
# List中可以存放各種類型的數(shù)據(jù)沿侈,支持數(shù)字闯第,字符串,也可以包含列表(嵌套)
listLikeArray = ["abcd", 456, 7.89, 'unicode']
tinyList = [123, 'abc']
print(tinyList) # 列表也可以直接打印
print(listLikeArray[0]) # 列表中第一個元素
print(listLikeArray[1:3]) # 列表中從第2個到第3個元素(范圍是左閉右開肋坚,同Java)
print(tinyList * 2) # 輸出兩次列表
# 與String相比乡括,List中的元素是可以改變的
# 而且直接通過索引改變即可
tinyList[0] = 456
print(tinyList)
# List 同樣可以使用+操作符拼接
print(tinyList + listLikeArray)
# Tuple 元組
# Tuple 和 List相似,同樣可以存放多種類型數(shù)據(jù)智厌,元素之間用,隔開 ,寫在()中
tupleArray = ('abcde', 666, "yuioop", 8.887)
print(tupleArray) # 打印tupleArray
print(tupleArray[1]) # 按索引取元素
print(tupleArray[1:-1]) # 按索引區(qū)間取元素
# 在List中有的操作盲赊,在Tuple中基本都存在铣鹏,區(qū)別就在于Tuple中的元素的值不可改變
# 如果想要構(gòu)建一個空的元組 或者 只有一個元素的元組
tupleSingle = () # k空元組
tupleSingleElement = (667)
newTuple = (tupleSingleElement, 668) # 給元組添加元素
print(newTuple)
# 提示:String, List, Tuple都屬于Sequense(序列)
# Set 集合
# Python中的集合比較特殊,不同于C#和Java哀蘑,Python中的集合是一個不重復(fù)的元素序列
# 基本功能是成員關(guān)系測試诚卸、刪除重復(fù)元素
# 創(chuàng)建集合可以使用{}葵第,也可以使用set()函數(shù)
set1 = set('abcdeeeeefg')
set2 = {'tom', 'jack', 'william', 'tom', 'steven'}
# 但是如果你要創(chuàng)建一個非空的集合的話,只能使用set()函數(shù)
# 因為{}內(nèi)為空合溺,表示創(chuàng)建一個空字典
print(set1) # set1中重復(fù)的元素被自動去掉
set3 = set('tom')
# 成員測試
print('tom' in set2) # 只能判斷某個元素是否能在集合中
print(set3 in set2) # 不能這樣寫卒密,結(jié)果為False
# Set 既然是集合,也就意味著可以進行 ‘差棠赛,交哮奇,并’等基本運算
set4 = set('abcdef')
set5 = set('bcd')
print(set4 - set5) # 差集
print(set4 | set5) # 并集
print(set4 & set5) # 交集
print(set4 ^ set5) # 兩個集合不同時存在的元素
# Dictionary 字典
# Dictionary 和 List 有點類似,不同的是:List為有序的對象集合睛约,Dictionary為無需的對象集合
# 在取值賦值等操作也有不同鼎俘,List根據(jù)索引來操作,而Dictionary根據(jù)鍵(key)來操作
# 創(chuàng)建空字典
dic1 = {}
# 給空字典添加鍵值對
dic1['one'] = "第一個字符串"
dic1['two'] = "第二個字符串"
print(dic1) # 在Python sehll中可以打印辩涝,Sublime Text3 中不能打印字典的內(nèi)容
# 創(chuàng)建并初始化一個字典
dic2 = {'one': 'one\'s string', 'two': 'two\'s string', 'three': '3', 4: 4444}
print(dic2) # 大括號創(chuàng)建的字典在Sublime中可以打印出來
print(dic2['one']) # 根據(jù)key取Value
print(dic2[4]) # key可以是String贸伐,也可以是數(shù)值
print(dic2.keys()) # 輸出所有dic2的key 打印內(nèi)容:dict_keys(['one', 'two', 'three', 4])
print(dic2.values()) # 輸出所有dic2的value
# 使用構(gòu)造函數(shù)構(gòu)造字典,語法如下
dic3 = dict([('firefox', 1), ('Google', 2), ('Internet Explore11', 3)])
print(dic3)
# 字典還有一些其他內(nèi)置API怔揩,用到再說
# 最后再說一遍捉邢,key的值必須唯一,有重復(fù)會報錯商膊。
# Python數(shù)據(jù)轉(zhuǎn)換
var6 = int(66.89)
var7 = float(77)
var8 = str(99999)
print(var7, type(var8))
var10 = "666"
var9 = repr(var10) # 將對象x轉(zhuǎn)換為表達式字符串(repr函數(shù)中不支持字符串拼接伏伐、強轉(zhuǎn)等方式)
print(var9)
var11 = eval(var8) # 用來計算字符串在Python有效表達式,并返回一個對象
print(var11)
s = ['123', '456', '789']
var12 = tuple(s) # 把List(列表) 轉(zhuǎn)為 Tuple(元組)
print(var12)
s2 = set('aaaaaaaa')
var13 = tuple(s2) # 把Set(集合) 轉(zhuǎn)為 Tuple(元組)時翘狱,只能轉(zhuǎn)第一個字符
print(var13) # var13 = ('a',)
# 這樣的轉(zhuǎn)換還有很多秘案,等用到時可以寫的demo測試一下就明白了,不用一一學習潦匈,千篇一律