菊菊的Python第一課從這裡開始!
Python語言基礎第一課:
###一、 變數 ## 變數賦值格式: 變數名 = 值 name = "cheng" print(name) print("My name is",name) ## 變數定義的規則: # 1 變數名只能是字母、數字、下劃線的任意組合 # 2 變數名的第一個字元不能是數字 # 3 以下關鍵字不能宣告變數: # and,as, assert, break, class, continue, def, del, elif, else, except, exec, finally, for, from, # global, if, import, in, is, lambda, not, or, pass, print, raise, return, try, while, with, yield ## 嘗試改變變數對應的值 name = '小希' name2 = name print('my name is ',name,name2) #重新賦值 name = '小程' print(name,name2 ) #僅name值被替換,但是name2仍是指向的未變之前的值 ## 多個變數賦值相同 # 格式:變數1 = 變數2 = 變數3 = 值 xiaoming = xiangfang = xiaocheng = '180斤' print(xiaoming,xiangfang,xiaocheng) ## 多個變數使用同一個語句分別賦值 # 格式:變數1,變數2,變數3 = 值1,值2,值3 xiaoming,xiangfang,xiaocheng = '130斤','120斤','100斤' print(xiaoming,xiangfang,xiaocheng) ## 二、字元編碼與二進位制 # python直譯器在載入 .py 檔案中的程式碼時,會對內容進行編碼(預設ascill),主要用於顯示現代英語和其他西歐語言,其最多隻能用 8 位來表示(一個位元組),即:2**8 = 256-1,所以,ASCII碼最多隻能表示 255 個符號。 # Unicode 是為了解決傳統的字元編碼方案的侷限而產生的,它為每種語言中的每個字元設定了統一併且唯一的二進位制編碼,規定雖有的字元和符號最少由 16 位來表示(2個位元組),即:2 **16 = 65536, # UTF-8,是對Unicode編碼的壓縮和優化,他不再使用最少使用2個位元組,而是將所有的字元和符號進行分類:ascii碼中的內容用1個位元組儲存、歐洲的字元用2個位元組儲存,東亞的字元用3個位元組儲存... # 所以,python直譯器在載入 .py 檔案中的程式碼時,會對內容進行編碼(預設ascill),如果是python2,則要加上# -*- coding: utf-8 -*- ## 三、註釋 # 單行註釋用# # 多行註釋用''...'''或者"""...""" 注意''...'''還可以表示字串,比如: name = '小龍' msg = ''' name2 = name print('my name is',name,name2) ''' print(msg)
### 一、使用者輸入 # 格式:變數 = input('想要輸入的東西') 執行後待使用者輸入後回車即可 # username = input('username:') # password = input('password:') # print(username,password) # 輸入密碼時,如果想要不可見,需要利用getpass 模組中的 getpass方法,即: # import getpass # username = input('username:') # password = getpass.getpass('password:') # print(password) ## 使用者互動程式 ### 二、字串的拼接: # 1 原始寫法 name = input('name:') age = input('age:') job = input('job:') salary = input('salary:') info = ''' -----------info of '''+ name +'''------------ Name:'''+name+''' age:''' +age+''' job:'''+job+''' salary:'''+salary+''' ''' print(info) ## 2 常用的兩種方式:字串的拼接 # 第一種:字串%s與%(變數) name = input('name:') age = input('age:') job = input('job:') salary = input('salary:') info = ''' -----------info of %s------------ Name:%s Age:%s Job:%s Salary:%s '''%(name,name,age,job,salary) print(info) # 注意:%s表示的是字元型,%d表示的是數值型, # 我們可以通過print(type(age))來檢視該變數的型別。 #如果,我們一定要把age轉成數值型,那麼用age = int(input('age:')),相應的字串裡面的%s要變成%d name = input('name:') age = int(input('age:')) job = input('job:') salary = input('salary:') info = ''' -----------info of %s------------ Name:%s Age:%d Job:%s Salary:%s '''%(name,name,age,job,salary) print(info) # 第二種:大括號與 .format(變數) name = input('name:') age = input('age:') job = input('job:') salary = input('salary:') info2 = ''' -----------info of {_name}------------ Name:{_name} Age:{_age} Job:{_job} Salary:{_salary} '''.format(_name = name, _age = age, _job = job, _salary = salary) print(info2) #注意:加了下劃線只是為了和開始的變數名區分開而已 #注意,雖然不常用,但這種也是對的。.format的另外形式 name = input('name:') age = input('age:') job = input('job:') salary = input('salary:') info3 = ''' -----------info of {0}------------ Name:{0} Age:{1} Job:{2} Salary:{3} '''.format(name,age,job,salary) print(info3)
# python 的資料型別提供預設的6個標準資料型別: # 1.數值型別Number;2.字元(串)型別String;3.列表型別List;4.元組型別Tuple;5.字典型別Dict;6.集合型別Set
# 一、數字型別分為:整型、浮點型、布林型、複數、 # 1、數字 # 2 是一個整數的例子。長整數不過是大一些的整數。 # 3.23和52.3E-4 是浮點數的例子。E標記表示10的冪。在這裡,52.3E-4 表示52.3 * 10 - 4。 # (-5 + 4j)和(2.3 - 4.6j) 是複數的例子,其中 - 5, 4 為實數,j為虛數,數學中表示覆數是什麼?。
### int(整型):整型包含正整數,0,負整數 # 在32位機器上,整數的位數為32位,取值範圍為 - 2 ** 31~2 ** 31 - 1,即 - 2147483648~2147483647 # 在64位系統上,整數的位數為64位,取值範圍為 - 2 ** 63~2 ** 63 - 1,即 - 9223372036854775808~9223372036854775807 # 整型有4 種方式: # 二進位制: 變數 = 0b + 二進位制數 (注意是零) # 十進位制: 變數 = (0 ~ 9 的數) # 八進位制: 變數 = 0 + (0 ~ 7 的數) # 十六進位制: 變數= 0x + (0 ~ f 的數) # 例1 val = 250 #十進位制數 print(val) print(id(val)) #列印這個變數的id 標識 print(type(val)) #列印這個變數的資料型別 # 例2 var = 0b10010 # 二進位制 print(var) #執行出來為十進位制,因為計算機裡面儲存的都為十進位制數 # 例3 a = 0x13AF print(a) #執行出來為十進位制數5039 ### long(長整型) # 跟C語言不同,Python的長整數沒有指定位寬,即:Python沒有限制長整數數值的大小,但實際上由於機器記憶體有限,我們使用的長整數數值不可能無限大。 # 注意,自從Python2.2 起,如果整數發生溢位,Python會自動將整數資料轉換為長整數,所以如今在長整數資料後面不加字母L也不會導致嚴重後果了。
### float(浮點型) # 先掃盲 http: // www.cnblogs.com / alex3714 / articles / 5895848.html # 浮點數用來處理實數,即帶有小數的數字。類似於C語言中的double型別,佔8個位元組(64 位),其中52位表示底,11 位表示指數,剩下的一位表示符號。 # 浮點型有2種方式: # 小數方式:變數 = 3.1412 # 科學計數法:變數 = 314e2
### complex(複數) # 複數由實數部分和虛數部分組成,一般形式為x+yj,其中的x是複數的實數部分,y是複數的虛數部分,這裡的x和y都是實數。 # 注:Python中存在小數字池:-5 ~ 257 # 表達方式: 變數 = 實數 + 虛數 var = 3 + 2j # 特定功能: 變數 = complex(實數,虛數) var = complex(5,3) # 注意:在python中,虛數單位不是i,而是用j 表示,因為工程應用中使用的j
### 布林值 # 真或假 # 1 或 0
# 二、字串 # 宣告一個字串型別有三種: # 單引號: 變數 = '內容' # 內容中包含大量雙引號時適合使用單引號宣告 # 雙引號: 變數 = “內容” # 內容中包含大量單引號時適合使用雙引號宣告 # 三引號: 變數 = ''' 內容 ''' 或者 變數 = """ 內容 """ # 萬惡的字串拼接: # python中的字串在C語言中體現為是一個字元陣列,每次建立字串時候需要在記憶體中開闢一塊連續的空,並且一旦需要修改字串的話,就需要再次開闢空間,萬惡的 + 號每出現一次就會在記憶體中重新開闢一塊空間。 # 字串格式化輸出 name = "cheng" print("i am %s " % name) # 輸出: i am cheng # PS: 字串是 % s; 整數 % d; 浮點數 % f
# 字串常用功能: # 移除空白 # 分割 # 長度 # 索引 # 切片
# 三、列表:中括號 # 列表就是一些列資料的順序組合,並且組合之後可修改 # 建立列表: 格式:變數 = [值,值,值....] name_list = ['cheng', 'seven', 'eric'] # 或 name_list = list(['cheng', 'seven', 'eric']) # 基本操作: # 索引 # 切片 # 追加 # 刪除 # 長度 # 切片 # 迴圈 # 包含
# 四、元組(不可變列表): 小括號 # 元組即一些列資料的順序組合,並且組合之後不可修改 # 建立元組: 格式: 變數 = (值,值,值......) ages = (11, 22, 33, 44, 55) # 或 ages = tuple((11, 22, 33, 44, 55))
# 五、字典(無序): 大括號 # 字典就是具有鍵值對映關係的一組無序資料組合,可修改。 # 建立字典: 格式: 變數 = {鍵:值,鍵:值,......} person = {"name": "mr.wu", 'age': 18} # 或 person = dict({"name": "mr.wu", 'age': 18}) # 常用操作: # 索引 # 新增 # 刪除 # 鍵、值、鍵值對 # 迴圈 # 長度
# 六、集合: 大括號 # 集合就是一組特定資料的無序組合,所有資料不會重複。 # 格式: 變數 = { 值,值,值...}
# 七、資料型別的轉換 # int() # 1)數字整型轉化之後,還是原來的樣子 # 2)浮點型別轉化之後,捨去小數部分 # 3)布林值轉化之後,true為1,false為0 # 4)字串轉化,僅純整型字串可轉 # 5)複數不可轉
# float() # 1)數字整型轉化之後,後面加.0 # 2)浮點型別轉化之後,還是本身 # 3)布林值轉化之後,true為1.0,false為0.0 # 4)字串轉化,純整型字串和純浮點型字串可轉換,其他都不可以
# complex() # 1)數字整型轉化之後,變成(整型+0j) # 2)浮點型別轉化之後,變成(浮點型+0j) # 3)布林值轉化之後,true為(1+0j),false為(0j) # 4)字串轉化,純整型字串和純浮點型字串可轉換,其他都不可以 # 5)複數無需轉換
# bool():是將其它型別轉化為布林值 # 如果轉化為布林值 false 的情況 # 1) 整型 0 # 2)浮點型 0.0 # 3)複數 0+0j # 4)布林 false # 5) 字串 ' '空字串 # 6)列表 [ ] 空列表 # 7) 元組 ( )空元組 # 8)字典 { } 空字典 # 9)集合 set()空集合
# str( ) :所有轉換均改變為字串型別,表示方式依舊不變 # list( ):將其他型別轉化為列表型別,在python中有5種可迭代序列,可互相轉換,分別是:字串、列表、元組、字典、集合 # 注意:1)字串轉換時,每個字元變成列表中的一個值; # 2)字典型別轉換時,僅將字典的鍵部分轉換成列表,忽略值部分; #例4: var = ('張三','李四','王老五') newvar = list(var) print(newvar) # 列印的結果是['張三', '李四', '王老五']
# tuple( ):將其他型別轉化為元組型別 # 注意:1)字串轉換時,每個字元變成元組中的一個值; # 2)字典型別轉換時,僅將字典的鍵部分轉換成元組,忽略值部分; var = {'張三','李四','王老五'} newvar = tuple(var) print(newvar) # 列印的結果是('張三', '李四', '王老五')
# set( ):將其他型別轉化為集合 # 注意:1)字串轉換時,每個字元變成集合中的一個值; # 2)字典型別轉換時,僅將字典的鍵部分轉換成集合,忽略值部分; var = ['張三','李四','王老五'] newvar = list(var) print(newvar) # 列印的結果是{ '張三', '李四', '王老五'}
# dict( ):將其他型別轉化為字典 # 注意:將其他型別轉化為字典時,需按指定的格式才可轉化;(列表和元組的組合也可以),例如: [['cat','黑貓'],['mouse','一隻耳']] [('cat','黑貓'),('mouse','一隻耳')]