1. 程式人生 > >菊菊的Python第一課從這裡開始!

菊菊的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','一隻耳')]