第一章java
1.python簡介python
2.python安裝、配置程序員
3.HelloWorld儀式感爆棚編程
4.python解釋器安全
5.字符編碼和解碼app
6.變量ide
7.判斷之if....else...性能
8.Python循環之for、while循環優化
♣python簡介ui
1989年,世界上的兩件大事,python誕生了,我也來到這個世界上,Guido創造了python,.....2005年,Guido加入了Google,python在google內部獲得了普遍的應用,這些年推出了N個版本,2009年,Alex接觸到了python(或者更早),這個世界上就醞釀着一個大師級別的人物,Alex...,到2015年,最流行的工業版本是2.7,python爲何這麼火?它爲何就這麼火?
1.python語言優雅、易讀
2.可移植性強
3.可擴展性
4.開發效率高
5.可嵌入的高級語言
它畢竟就是一盤大蘿蔔.....
1.代碼不能加密
2.線程不能利用多cpu
3.運行速度慢
♣python安裝、配置
python安裝不細說,網上有不一樣的版本,安裝較簡單。
python須要配置環境變量,把python的安裝目錄放到環境變量的Path變量裏便可Path=...;D:\Python27;-Soeasy
♣HelloWorld儀式感爆棚
print("Hello World")
♣python解釋器
python解釋器包括CPython、IPython、PYPY.....,它們是幹什麼的呢?咱們在寫python腳本時,保存的是之後綴.py結尾的文本文件,想要它運行,就必須依靠python解釋器來解釋,python是邊解釋邊執行的語言,因此相對於其餘編譯型語言較慢,並不是絕對....
♣字符編碼
電腦的起源,剛開始只是和電路同樣只有斷開和接通,即只能是簡單的識別0和1,0和1,不一樣的交叉組合,能夠代替大量的數字,僅僅能表達數字並不是計算機的目的,爲了支持字母,程序員設計出了一套用數字替代字母或符號的對照表,稱之爲ASCII碼:
最多隻能用 8 位來表示(一個字節),即:2**8 = 256-1,因此,ASCII碼最多隻能表示 255 個符號,1-127被字母佔用,其餘位能夠代替中文,還有其餘語言也佔用。
爲了支持中文,因而程序員又發明了一個碼錶:GB2312,支持了大量的中文,可是仍是不能表示一些信息,後來又有了GBK支持了圖形符號,2000年,gb18030誕生了,支持了其餘少數民族文字藏文、蒙文,維吾爾文字等
各國之間都有本身的編碼規則,這樣不便於操做和管理,爲了統一,美國製定了一套大多數國家語言支持的完整的統一的字符編碼:Unicode,規定了每一個字符有16位來表示,即2個字節,可是仍是有必定的侷限性。UTF-8,是對Unicode編碼的壓縮和優化,他再也不使用最少使用2個字節,而是將全部的字符和符號進行分類:ascii碼中的內容用1個字節保存、歐洲的字符用2個字節保存,東亞的字符用3個字節保存...
如下代碼報錯,(默認ASCII不支持中文)
1 #!/user/bin/env python 2 3 print("你們一塊兒來happy!")
看看這個:
1 #! /user/bin/env python 2 #_-_coding:UTF-8_-_ #設置了字符編碼 3 print("你們一塊兒來happy!")
♣變量
變量就至關於生活中的菜籃子,可是每一個籃子中存放的是一種菜,計算機中,變量是存儲數據的量,以便於數據的使用、操做,python中在使用變量時,沒必要先聲明類型,能夠直接存放數據,這就是動態語言,態類型語言是指在運行期間纔去作數據類型檢查的語言
舉例:
python: name="Bernie"
java: string name= "Bernie"
python是強制類型語言,意思是,一旦被指定了一種數據類型,不通過強制轉換,它永遠就是這個數據類型了。下面引用定義:
動態語言和靜態語言
一般咱們所說的動態語言、靜態語言是指動態類型語言和靜態類型語言。
(1)動態類型語言:動態類型語言是指在運行期間纔去作數據類型檢查的語言,也就是說,在用動態類型的語言編程時,永遠 也不用給任何變量指定數據類型,該語言會在你第一次賦值給變量時,在內部將數據類型記錄下來。Python和Ruby就是一種典型的動態類型語言,其餘的 各類腳本語言如VBScript也多少屬於動態類型語言。
(2)靜態類型語言:靜態類型語言與動態類型語言恰好相反,它的數據類型是在編譯其間檢查的,也就是說在寫程序時要聲明全部變量的數據類型,C/C++是靜態類型語言的典型表明,其餘的靜態類型語言還有C#、JAVA等。
強類型定義語言和弱類型定義語言
(1)強類型定義語言:強制數據類型定義的語言。也就是說,一旦一個變量被指定了某個數據類型,若是不通過強制轉換,那麼它就永遠是這個數據類型了。舉個例子:若是你定義了一個整型變量a,那麼程序根本不可能將a看成字符串類型處理。強類型定義語言是類型安全的語言。
(2)弱類型定義語言:數據類型能夠被忽略的語言。它與強類型定義語言相反, 一個變量能夠賦不一樣數據類型的值。
強類型定義語言在速度上可能略遜色於弱類型定義語言,可是強類型定義語言帶來的嚴謹性可以有效的避免許多錯誤。另外,「這門語言是否是動態語言」與「這門語言是否類型安全」之間是徹底沒有聯繫的!
例如:Python是動態語言,是強類型定義語言(類型安全的語言); VBScript是動態語言,是弱類型定義語言(類型不安全的語言); JAVA是靜態語言,是強類型定義語言(類型安全的語言)。
♣if...else:判斷,直接上代碼
1 # Author:chen 2 #_-_coding:UTF-8_-_ 3 name="chen" 4 age="19" 5 job="IT" 6 7 name=input("my name=")#python3X版本,在2X版本中用raw_input(),而2x版本中的input(),須要先定義變量,否自報錯 8 age=input("my age=") 9 job=input("my job=") 10 msg='''==============info of {iname}=================== 11 name={iname} 12 age={iage} 13 job={ijob} 14 '''.format(iname=name,iage=age,ijob=job)#多行註釋+格式化輸出 15 print(msg) 16 17 msg2='''+++++++++++++++++info of %s++++++++++++++++++++ 18 name=%s 19 age=%s 20 job=%s 21 ''' % (name,name,age,job) 22 print(msg2) 23 msg3='''****************info of {0}******************** 24 name={0} 25 age={1} 26 job ={2} 27 '''.format(name,age,job) 28 print(msg3) 29 #多行註釋能夠是」「....」「」或‘’‘........’‘’ 30 #經常使用的格式化輸出的三種方式~
♣for、while循環經典案例
1 # Author:chen 2 #_-_coding:utf-8_-_ 3 myname="chenxuetao" 4 myage="15" 5 6 count=0 7 while count<3 : #注意True首字母要大寫,不知道爲何? 8 age = input("age=") 9 if myage>age : 10 print("你猜的年齡小了") 11 elif myage<age : 12 print("你猜的年紀大了") 13 else : 14 print("你猜對了") 15 break 16 count+=1
1 # Author:chen 2 # #_-_codingutf-8_-_ 3 myname="chenxuetao" 4 myage=15 5 count=0 6 while count<3 : #注意True首字母要大寫,不知道爲何? 7 age = int(input("age=")) 8 if myage>age : 9 print("你猜的年齡小了") 10 elif myage<age : 11 print("你猜的年紀大了") 12 else : 13 print("你猜對了") 14 break 15 count+=1 16 if count == 3: 17 guess=input("你還想繼續猜想麼?") 18 if guess !="n" : 19 count=0
1 # Author:chen 2 # #_-_coding:utf-8_-_ 3 myname="chenxuetao" 4 myage=15 5 count=0 6 for i in range (1,3): #注意True首字母要大寫,不知道爲何? 7 age = int(input("age=")) 8 if myage>age : 9 print("你猜的年齡小了") 10 elif myage<age : 11 print("你猜的年紀大了") 12 else : 13 print("你猜對了") 14 break
--while循環時,循環條件要知足才進行循環,當不知足條件時,退出循環,執行下邊的代碼。
格式是:while True : #True首字母要大寫
--for循環,一樣的在循環條件知足時執行循環體,for i in range(1,10) :
--當循環條件不知足時,循環跳出
--break,跳出當前執行的語句,能夠結束循環,跳出循環,continue,當條件不知足,結束本次循環,執行下一次循環
♣簡單的登陸接口實現(優化中...)
文件:
zhao 111 qian 111 sun 111 li 111 zhou 222 wu 222 zheng 222 wang 222
zhao
zhou
wu
1 1 #! /user/bin/evn python 2 2 #_-_coding: utf-8_-_ 3 3 import os,getpass,sys 4 4 5 5 lock_add=0 #記錄密碼輸入次數 6 6 acount_lock=0 # 7 7 8 8 lock_file='lock.txt' 9 9 acount_file='acount.txt' 10 10 while acount_lock<3 : 11 11 username=input("用戶名:").strip() #接收用戶輸入,去掉輸入空格 12 12 lock_add+=1 13 13 lock_check=open(lock_file) 14 14 for line in lock_check.readlines() : 15 15 if username ==line.strip() : 16 16 print("您的用戶被鎖定,請聯繫管理員") 17 17 sys.exit() 18 18 password=input("密碼:").strip() 19 19 flag=False 20 20 acount=open(acount_file) 21 21 for line in acount.readlines() : 22 22 name,passwd=line.strip("\n").split() 23 23 if name==username and passwd==password : 24 24 print("歡迎 %s 登錄成功" % name) 25 25 flag=True 26 26 sys.exit() 27 27 acount_lock+=1 28 28 if acount_lock==3 : 29 29 print("您的用戶被鎖定,請聯繫管理員") 30 30 rm=open(lock_file,'a') 31 31 rm.write(username) 32 32 rm.write("\n") 33 33 rm.close()
Version2.0
1 #! /user/bin/env python 2 #_-_coding:UTF-8_-_ 3 #Author:Bernie Chen 4 import os,sys,getpass 5 user_file='acount.txt' 6 lock_file='lock.txt' 7 try_time=0 8 try_limite=3 9 count=0 10 flag=False 11 while try_time<try_limite: 12 Username=raw_input("帳戶:") # 用戶輸入登陸帳號 13 Password=raw_input("密碼:") # 用戶輸入登陸密碼 14 Name=open(user_file) # 經過參數調用打開正經常使用戶文件 15 Lock=open(lock_file) # 經過參數調用打開鎖定用戶文件 16 for lock in Lock.readlines(): # 循環鎖定用戶文件。readlines()是一次性讀取全部行 17 usename=lock.strip("\n") # 去掉多餘的換行,精確取出用戶名 18 if usename==Username : 19 print("您的用戶被鎖定") 20 try_time += 100 #此處是隨意加了個值,若是知足則跳出循環 21 break 22 sys.exit(0) 23 if try_time<50: 24 for name in Name.readlines() : #循環鎖定用戶文件。readlines()是一次性讀取全部行,別用成readline() 25 username,password=name.strip('\n').split() #將用戶名和密碼分別賦值,split()是分割,此處是以空格分割,去掉多餘換行 26 if username==Username and Password==password : 27 print("用戶登錄成功") 28 try_time += 100 29 flag=True 30 break 31 sys.exit(0) 32 elif username!=Username: 33 count+=1 #每當用戶名取不到相同,count就增長 34 #print(count) 35 if count == len(open(user_file,'rU').readlines()): #判斷conut的值是否和文件的行數相同,若是相同,說明該用戶未註冊 36 print("您的帳戶未註冊,請註冊後登陸") 37 sys.exit(1) 38 if flag==False: 39 print("用戶名或密碼錯誤,您還有%d次機會" % int(2-try_time)) 40 try_time+=1 41 if try_time==3: 42 print("用戶已被鎖定") 43 locker=open(lock_file,"a") 44 locker.write(Username) 45 locker.write("\n") 46 locker.close()