python之路:Day01,python之路day01
本節內容
1.Python介紹
2.發展史
3.變數
4.使用者輸入
5.運算式 if...else語句
6.運算式 for 迴圈
7.運算式 while 迴圈
8.模組初識
9.資料類型初識
10.資料運算
一、Pyhon介紹 一、編譯型與解釋型語言
編譯型語言是將來源程式翻譯成可執行檔目標代碼,翻譯與執行是分開的;而解釋型語言是對來源程式的翻譯與執行一次性完成,不產生可儲存的目標代 碼。這隻是表象,二者背後的最大區別是:對解釋型語言執行而言,程式運行時的控制權在解譯器而不在使用者程式;對編譯型語言執行而言,運行時的 控制權在使用者程式。
從字面上看,“編譯”和“解釋”的確都有“翻譯”的意思,它們的區別則在於翻譯的時機安排不大一樣。打個比方:假如你打算閱讀一本外文書,而你不知 道這門外語,那麼你可以找一名翻譯,給他足夠的時間讓他從頭到尾把整本書翻譯好,然後把書的母語版交給你閱讀;或者,你也立刻讓這名翻譯輔助 你閱讀,讓他一句一句給你翻譯,如果你想往回看某個章節,他也得重新給你翻譯。
兩種方式,前者就相當於我們剛才所說的編譯型:一次把所有的代碼轉換成機器語言,然後寫成可執行檔;而後者就相當於我們要說的解釋型。
二、靜態語言與動態語言
動態類型語言:動態類型語言是指在運行期間才去做資料類型檢查的語言,也就是說,在用動態類型的語言編程時,永遠也不用給任何變數指定資料類 型,該語言會在你第一次賦值給變數時,在內部將資料類型記錄下來。
靜態類型語言:靜態類型語言與動態類型語言剛好相反,它的資料類型是在編譯其間檢查的,也就是說在寫程式時要聲明所有變數的資料類型
綜合上述python是一門動態解釋型的語言。
二、Pyhon發展史
1991年,第一個Python編譯器誕生。它是用C語言實現的,並能夠調用C語言的庫檔案。從一出生,Python已經具有了:類,函數,異常處理,包含 表和詞典在內的核心資料類型,以及模組為基礎的拓展系統
Python 1.0 - January 1994 增加了 lambda, map, filter and reduce.
Python 2.0 - October 16, 2000,加入了記憶體回收機制,構成了現在Python語言架構的基礎
Python 2.4 - November 30, 2004, 同年目前最流行的WEB架構Django 誕生
Python 2.5 - September 19, 2006
Python 2.6 - October 1, 2008
Python 2.7 - July 3, 2010 python官方公布只支援到2020年
Python 3.0 - December 3, 2008
Python 3.1 - June 27, 2009
Python 3.2 - February 20, 2011
Python 3.3 - September 29, 2012
Python 3.4 - March 16, 2014
Python 3.5 - September 13, 2015
所以現在我所選擇用的是Python3.5,之後的所有代碼都是在這個環境下啟動並執行
三、變數 一、聲明變數
#!/usr/env python# -*- coding:utf-8 -*-name = "xiaoming"
上述代碼聲明了一個變數,變數名為:name, 變數name的值為:"xiaoming"
二、變數的賦值
name = "xiao ming" name2 = nameprint(name,name2) name = "xiao hua" print("What is the value of name2 now?"name,name2) 三、變數名的定義規則:
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']
注釋
當行注釋:# 被注釋的內容
多行注釋:''' 被注釋的內容 '''
四、使用者輸入
#!/usr/env python# -*- coding:utf-8 -*-name=input("請輸入你的名字:")print("Hello",name)
輸入密碼時,如果想要不可見,需要利用getpass 模組中的 getpass方法,即:
#!/usr/bin/env python# -*- coding: utf-8 -*- import getpasspwd = getpass.getpass("請輸入密碼:") # 列印輸入的內容print(pwd)
但是在windows中的PyCharm不好使
五、運算式 if...else 一、使用者登入驗證
# 提示輸入使用者名稱和密碼# 驗證使用者名稱和密碼# 如果錯誤,則輸出使用者名稱或密碼錯誤# 如果成功,則輸出 歡迎,XXX! #!/usr/bin/env python# -*- coding: encoding -*- name = "xiao gou"password = "123"username = input('請輸入使用者名稱:')pwd = input('請輸入密碼:') if name == username and password == pwd: print("歡迎",name)else: print("使用者名稱和密碼錯誤") 二、猜年齡
在程式裡設定好你的年齡,然後啟動程式讓使用者猜測,使用者輸入後,根據他的輸入提示使用者輸入的是否正確,如果錯誤,提示是猜大了還是小了
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 4 my_age = 28 5 6 user_input = int(input("請輸入一個數字:")) 7 8 if user_input == my_age: 9 print("恭喜你蒙對了!")10 elif user_input < my_age:11 print("你猜小了!")12 else:13 print("你猜大了!")猜年齡
六、運算式 for 最簡單的迴圈10次
#!/usr/bin/env python# -*- coding: encoding -*-for i in range(10): print("loop:", i ) 輸出:
loop: 0loop: 1loop: 2loop: 3loop: 4loop: 5loop: 6loop: 7loop: 8loop: 9
需求一:還是上面的程式,但是遇到小於5的迴圈次數就不走了,直接跳入下一次迴圈
for i in range(10): if i<5: continue #不往下走了,直接進入下一次loop print("loop:", i )
continue 是跳出本次迴圈
需求二:還是上面的程式,但是遇到大於5的迴圈次數就不走了,直接退出
for i in range(10): if i>5: break #不往下走了,直接跳出整個loop print("loop:", i )
break 是直接跳出整個迴圈,退出程式
七、運算式 while
有一種迴圈叫死迴圈,海枯石爛代碼
count = 0while True: print("你是風兒我是沙,纏纏綿綿到天涯...",count) count +=1
死迴圈還是少寫為好,上面代碼迴圈一百次就退出吧
count = 0while True: print("你是風兒我是沙,纏纏綿綿到天涯...",count) count +=1 if count == 100: print("到此為止吧!") break 八、模組初識 sys模組
#!/usr/env python# -*- coding:utf-8 -*-#Version:Python3.4import sysprint(sys.path) # 列印環境變數print(sys.argv) #輸出$ python test.py helo world['test.py', 'helo', 'world'] #把執行指令碼時傳遞的參數擷取到
os模組
#!/usr/bin/env python# -*- coding: utf-8 -*- import os os.system("dir") #調用系統命令 完全結合一下
import os,sys os.system(''.join(sys.argv[1:])) #把使用者的輸入的參數當作一條命令交給os.system來執行 九、資料類型初識 一、數字
1.int(整型)
在32位機器上,整數的位元為32位,取值範圍為-2**31~2**31-1,即-2147483648~2147483647
在64位系統上,整數的位元為64位,取值範圍為-2**63~2**63-1,即-9223372036854775808~9223372036854775807
2.long(長整型)
3.float(浮點型)
浮點數用來處理實數,即帶有小數的數字
二、布爾值
真或假
1或0
True 或 False
三、字串
"hello world"
萬惡的字串拼接: python中的字串在C語言中體現為是一個字元數組,每次建立字串時候需要在記憶體中開闢一塊連續的空,並且一旦需要修改字串的話,就需要再 次開闢空間,萬惡的+號每出現一次就會在內從中重新開闢一塊空間。
字串格式化輸出
name = "xiao ming"print "i am %s " % name #輸出: i am xiao ming
PS:字串是%s; 整數是%d; 浮點數是%f
字串常用操作:
移除空白
分割
長度
索引
切片
四、列表
建立列表:
name_list = ['alex', 'seven', 'eric']或name_list = list(['alex', '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})
常用操作:
索引
新增
刪除
鍵、值、索引值對
迴圈
長度
十、資料運算
算數運算:
比較運算:
賦值運算:
邏輯運算:
身份運算:
位元運算:
三元運算
result = 值1 if 條件 else 值2
如果條件為真:result = 值1
如果條件為假:result = 值2
a,b,c = 1,3,5d = a if a > b else cprint(d)# d = 5