一.Python介紹
python的創始人爲吉多·範羅蘇姆(Guido van Rossum)龜叔。1989年的聖誕節期間,吉多·範羅蘇姆爲了在阿姆斯特丹打發時間,決心開發一個新的腳本解釋程序,作爲ABC語言的一種繼承。
目前Python主要應用領域:
- 雲計算: 雲計算最火的語言, 典型應用OpenStack
- WEB開發: 衆多優秀的WEB框架,衆多大型網站均爲Python開發,Youtube, Dropbox, 豆瓣。。。, 典型WEB框架有Django
- 科學運算、人工智能: 典型庫NumPy, SciPy, Matplotlib, Enthought librarys,pandas
- 系統運維: 運維人員必備語言
- 金融:量化交易,金融分析,在金融工程領域,Python不但在用,且用的最多,而且重要性逐年提高。原因:作爲動態語言的Python,語言結構清晰簡單,庫豐富,成熟穩定,科學計算和統計分析都很牛逼,生產效率遠遠高於c,c++,java,尤其擅長策略回測
- 圖形GUI: PyQT, WxPython,TkInter
本文章以及後續都是python3的相關教程,不要問爲什麼。趨勢(python2官方在2020年後會停止更新)
二.安裝與使用
windos下安裝
1.安裝python3
下載地址:https://www.python.org/downloads/ 選擇相應的版本本文以windows10 64位爲例,下載好後安裝即可
配置環境變量:【右鍵計算機】-
-
》【屬性】
-
-
》【高級系統設置】
-
-
》【高級】
-
-
》【環境變量】
-
-
》【在第二個內容框中找到 變量名爲Path 的一行,雙擊】
-
-
> 【Python安裝目錄追加到變值值中,用 ; 分割】 如:原來的值;C:\python27(不一定是這個路徑,安裝的python3的路徑),切記前面有分號
2.pycharm的安裝(軟件開發工具)
下載地址:https://www.jetbrains.com/pycharm/download 分爲社區辦和專業版,看個人專業版;可以上淘寶上去買一個激活碼。
linux下安裝升級安裝python3
1.下載linux版本python3;地址上面有
2.安裝python3需要2的依賴包後進行編譯安裝
yum -y install gcc gcc-c++
yum -y install zlib*
yum -y install libffi-devel
tar -xf Python-3.7.3.tgz
cd Python-3.7.3
./configure
614 make && make install
2.做軟連接,python3默認安裝地址爲/usr/local/bin/
ln -s /usr/local/bin/python3 /usr/bin/python3
3.直接命令行執行python3即可
三.Hello World程序
打開pycharm在新建項目以後,新建一個python file取名爲helloword
代碼如下,點擊綠色的播放按鈕即可執行
#!/usr/bin/env python Linux裏面python的路徑申明
# -*- coding:utf-8 -*- 中文字符集(python3默認支持輸入中文,可寫可不寫)
# Author:jack ma
print("helloword!!!")
在上面的註釋行(#開頭)在pycharm裏可以設置默認輸出當下次新建的時候默認填寫;打開file--->settings(小扳手圖標),找到Editor--->File and Code Templates--->python Script 輸入即可
四.變量
# Author:jack ma
name = "jack ma" #變量賦值
sex = "boy"
print(name,sex) #調用多個變量時可以用 , 號隔開
print("哈哈")#python3裏面可以直接打印中文
五.循環、判斷
while 循環加判斷
# Author:jack ma
count = 0 #countf賦值爲0
while True: #當條件爲真的時候就循環
print("count:",count) #打印count
count+=1 #自加1
if count == 1000: #判斷與1000是否相等
break #跳出循環
for循環加判斷
for i in range(0,10,2): #默認從0開始的,2代表布長,每隔2位數就打印
if i < 3:
print("loop",i)
else:
continue #跳出本次循環繼續到下一次循環
print("hehe")
六.格式化拼接
1.
# Author:jack ma
name = input("name:")
age = input("age:")
print(type(age))
job = input("job:")
salary = input("salary:")
#字符格式化輸出拼接法(這種方法只能拼接str,效率較低一般不用)
info = '''--------------info of '''+ name +'''--------------
Name:'''+ name +'''
Age: '''+ age +'''
Job: '''+ job +'''
Salary: '''+ salary +'''
'''
print(info)
2.
# Author:jack ma
name = input("name:")
age = int(input("age:"))#將str類型轉化爲int
print(type(age))
job = input("job:")
salary = input("salary:")
#字符格式化輸出%法
info1 = '''
--------------info of %s--------------
Name:%s #str類型
Age:%d #data類型,python3默認的輸入是str類型,所以上面的age需要強制轉換爲int
Job:%s
Salary:%s
''' % (name,name,age,job,salary)
print(info1)
3.
# Author:jack ma
name = input("name:")
age = input("age:")
job = input("job:")
salary = input("salary:")
#字符格式化輸出.format法
info3 = '''--------------info of {0} --------------
Name:{0}
Age:{1}
Job:{2}
Salary:{3}
'''.format(name,age,job,salary)
print(info3)
七.編寫一個編寫登陸接口要求如下
- 輸入用戶名密碼
- 認證成功後顯示歡迎信息
- 輸錯三次後鎖定
# Author:jack ma
username = input("please login username:").strip() #括號裏面不寫默認去掉兩邊的空格
user_lockfile = open("lockfile.txt","r+")
user_file = open("user_file.txt","r+")
userlock_list = user_lockfile.readlines() #讀出文件裏面的內容,不清楚可以打印出來看結果
user_list = user_file.readlines()
for i in range(3):
if username in [j.strip() for j in userlock_list]:
print("Sorry, your account is locked!")
user_lockfile.close()
user_file.close()
exit(1)
else:
if username not in [k.split()[0] for k in user_list]:#split()默認以空分割以逗號的形式分組
print("your username not exist")
user_lockfile.close()
user_file.close()
exit(2)
else:
input_passwd = input("Please input your password:").rstrip()
input_record = username + ' ' + input_passwd
if input_record in [n.strip() for n in user_list]:
print("welcome user %s" %(username))
user_file.close()
user_lockfile.close()
exit(0)
else:
if i == 2: #當連續輸入錯誤3次提示鎖定並加入黑名單
user_lockfile.write(username + "\n")
print("Sorry, you'ar locked")
user_file.close()
user_lockfile.close()
exit(3)
else:
chance = 2-i #提示用戶密碼錯誤並剩餘下多少次機會
print("Wrong password! %s chance left"%(chance))
需要準備的文件名及內容
lockfile.txt
kevin
james
root
user_file.txt
wayne 123
root shroot123