1.python入門_語法篇

下面是基礎語法篇的大雜燴,其中包括了基本數據類型的創建與使用,以及打印變量的內容、類型,還有基本數據類型的轉換。

# 拼接字符串
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保證了""中的內容都是字符,不會發生轉義
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')

# 不換行輸出,就在輸出結尾加上 end = " "
print("don't newline", end=" ")
print("ok")

# import 和 from...import的區別
# import是將整個模塊導入,包括模塊內的所有函數
# form...import是從某個模塊導入某個函數或者某個成員變量
# 語法:from sys import argv,path;

''' 關于比較長的注釋,可以這樣來寫
    這有些類似于OC和Java的文檔注釋
    可以詳細注釋函數功能以及參數代表的含義和參數示例
'''

# help(max)

# 數據類型
# Python中有6種數據類型
# Number(數字), String(字符串), List(列表), Tuple(元組), Sets(集合), Dictionary(字典)

# Number類型
# 在Python3中,數字只有4種,int, float, bool, complex
# 整數只有一種int類型,取消了python2中的長整形(在值后面加個'L',現在再加'L'編譯器會報錯)
# 如果你想知道某個變量的類型,可以使用type()函數
i1 = 45
f1 = 3.3
b1 = True
c1 = 4 + 5j
print(type(i1), type(f1), type(b1), type(c1))
# 輸出結果為:<class 'int'> <class 'float'> <class 'bool'> <class 'complex'>
# 另外Python一共了一個判斷變量類型的函數
a = 111
isinstance(a, int)
# 但是這個isinstance方法在Python Shell中可以打印出結果,在Sbulime Text 3中無法打印結果

# type()函數 和 isinstance()函數 的區別
# type()函數判斷類型時不識別類的繼承關系,也就是說用這個類型的父類判斷時返回False
# isinstance()函數會識別類的繼承關系,判斷是否是父類時仍然會返回 True

# 數字中有兩個特殊值,True 和 False。這兩個值在Python3.0之后的版本被定義為關鍵字,分別代表數字1 和 0
# 并且True 和 False 可以和數字類型的變量進行操作,比如加減乘除

# Del 刪除語句
var3 = 234
# del var3
print(var3)
# Del 關鍵字的作用就是刪除引用或者變量, 當你刪除了引用后又使用這個引用時就會報錯,原理應該類似于OC中的野指針

# 加減乘除,除法取整//,求余%,乘方**
# 有一下幾點需要知道:
# 1.一個變量通過賦值可以指向不同的類型的對象
# 2.在混合計算時,Python會自動把結果改為Float類型(以免丟失精度)

# 最后一個數值類型,復數Complex, 比如表示 1+2j,有如下兩種方式:
var4 = complex(1, 2)
var5 = 1 + 2j

# String  字符串
# Python中用''或者""表示字符串,用\表示轉義
# 截取字符串
# 索引從0開始,-1代表倒數第二個
str3 = "abcdefg"
print(str3)
print(str3[0:-1])  # 范圍選取
print(str3[2:])   # 輸出索引3開始之后的所有字符
print(str3[0])    # 單個選取
print(str3 * 2)   # 連續輸出兩次(中間無空格或者制表符‘\t’)
# r代表原始字符串 ,在輸出時會忽略轉義字符\n\t等
print(r"\n fdafsf\t")
# 與C語言字符串不同的是,Python字符串不能改變,如果你想向某個字符串的索引位置賦值時,就會報錯
# Python字符串的索引有兩種方式,從左向右從0開始,從右向左從-1開始
# 最后,再說一遍,Python中的字符串不能改變

# List 列表
# 在Python中,List使用非常頻繁,可以完成大多數集合類的數據結構的實現
# List中可以存放各種類型的數據,支持數字,字符串,也可以包含列表(嵌套)
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相似,同樣可以存放多種類型數據,元素之間用,隔開 ,寫在()中
tupleArray = ('abcde', 666, "yuioop", 8.887)
print(tupleArray)  # 打印tupleArray
print(tupleArray[1])  # 按索引取元素
print(tupleArray[1:-1])  # 按索引區間取元素
# 在List中有的操作,在Tuple中基本都存在,區別就在于Tuple中的元素的值不可改變

# 如果想要構建一個空的元組 或者 只有一個元素的元組
tupleSingle = ()  # k空元組
tupleSingleElement = (667)
newTuple = (tupleSingleElement, 668)  # 給元組添加元素
print(newTuple)

# 提示:String, List, Tuple都屬于Sequense(序列)

# Set 集合
# Python中的集合比較特殊,不同于C#和Java,Python中的集合是一個不重復的元素序列
# 基本功能是成員關系測試、刪除重復元素
# 創建集合可以使用{},也可以使用set()函數
set1 = set('abcdeeeeefg')
set2 = {'tom', 'jack', 'william', 'tom', 'steven'}
# 但是如果你要創建一個非空的集合的話,只能使用set()函數
# 因為{}內為空,表示創建一個空字典

print(set1)  # set1中重復的元素被自動去掉

set3 = set('tom')
# 成員測試
print('tom' in set2)  # 只能判斷某個元素是否能在集合中
print(set3 in set2)  # 不能這樣寫,結果為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根據索引來操作,而Dictionary根據鍵(key)來操作

# 創建空字典
dic1 = {}
# 給空字典添加鍵值對
dic1['one'] = "第一個字符串"
dic1['two'] = "第二個字符串"
print(dic1)  # 在Python sehll中可以打印,Sublime Text3 中不能打印字典的內容

# 創建并初始化一個字典
dic2 = {'one': 'one\'s string', 'two': 'two\'s string', 'three': '3', 4: 4444}
print(dic2)  # 大括號創建的字典在Sublime中可以打印出來
print(dic2['one'])  # 根據key取Value
print(dic2[4])      # key可以是String,也可以是數值
print(dic2.keys())  # 輸出所有dic2的key  打印內容:dict_keys(['one', 'two', 'three', 4])
print(dic2.values())  # 輸出所有dic2的value

# 使用構造函數構造字典,語法如下
dic3 = dict([('firefox', 1), ('Google', 2), ('Internet Explore11', 3)])
print(dic3)

# 字典還有一些其他內置API,用到再說
# 最后再說一遍,key的值必須唯一,有重復會報錯。

# Python數據轉換
var6 = int(66.89)
var7 = float(77)
var8 = str(99999)
print(var7, type(var8))
var10 = "666"
var9 = repr(var10)  # 將對象x轉換為表達式字符串(repr函數中不支持字符串拼接、強轉等方式)
print(var9)

var11 = eval(var8)  # 用來計算字符串在Python有效表達式,并返回一個對象
print(var11)

s = ['123', '456', '789']
var12 = tuple(s)    # 把List(列表) 轉為 Tuple(元組)
print(var12)

s2 = set('aaaaaaaa')
var13 = tuple(s2)  # 把Set(集合) 轉為 Tuple(元組)時,只能轉第一個字符
print(var13)        # var13 = ('a',)

# 這樣的轉換還有很多,等用到時可以寫的demo測試一下就明白了,不用一一學習,千篇一律

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容