一、在linux下寫python腳本,開頭的解釋器宣告的寫法應該是#!/usr/bin/env pythonpython
定義變量name="XXX" age=21 全部使用引號引發的內容都是字符串linux
變量的意義是標示數據,因此變量名稱應該有意義windows
遇到複雜變量名是使用「_」分割多個單詞或單詞首字母大寫less
son_of_twins_brother_age = 2編碼
NameOfTwinsGf = "FengJie"orm
不可使用「-」鏈接單詞ip
不可使用數字開頭內存
不可使用特殊字符utf-8
變量名中不能夠有空格ssl
不可使用關鍵字做爲變量
在python2.X的時候默認支持ASCII編碼,若是須要中文須要明確指示編碼表,寫法爲:
#!/usr/bin/env python
#_*_ coding:utf-8 _*_
python3默認使用utf-8編碼,所以不須要特別宣示,僅須要
#!/usr/bin/env python用來宣示解釋器便可(linux運行)
python開發規範,每一行最大不該超過80個字符
註釋
#用於單行註釋
使用3個引號(先後各三個)用於多行註釋
'''
XXX
XXX
'''
打印用戶輸入的內容
在3.0中的寫法
user_input = input("input your name:")
print("user input msg:",user_input)
在2.7中的寫法
user_input = raw_input("input your name:")
print("user input msg:",user_input)
在2.7中input會認爲你輸入的不是字符串,而是變量名,所以若是要將輸入的內容付給變量,應該使用raw_input。不然會報錯
可是input若是是數字,就會認爲是數字。所以 在2.7中input能夠是數字,也能夠是變量名,若是是字符串則只能用raw_input
所以2.7中基本不用input
格式化字符串
#!/usr/bin/envpython
#_*_coding:utf-8_*_
Name=input("inputyourname:")
Age=input("inputyourage:")
Job=input("inputyourjob:")
msg='''
Informationforuser:%s
-----------------------
Name:%s
Age:%s
Job:%s
-----------END------------
'''%(Name,Name,Age,Job)# %先後均有空格
print(msg)
%s表明字符串,還能夠替換爲%d表明輸入的是數字
可是若是要使用%d,必需要確保這個變量爲數字類型,input輸入的內容都是字符串類型,所以Age變量不能直接使用%d,而要將輸入的內容轉爲int類型
即
Age=int(input("input your age: "))
Name=input("inputyourname:")
Age=int(input("inputyourage:"))
Job=input("inputyourjob:")
msg='''
Informationforuser:%s
-----------------------
Name:%s
Age:%d
Job:%s
-----------END------------
'''%(Name,Name,Age,Job)#%先後均有空格
print(msg)
格式化數據類型有3中
$s 字符串
$d 數字
$f 小數
導入模塊(導入的內容只能在windows的CMD或linux下使用,pycharm不能用)
import getpass #導入一個可使輸入變成密文的模塊
username = input("username: ")
password = getpass.getpass("password : ")
import os #導入系統命令模塊
os.system("df") #用於打印系統命令
os.mkdir("/root/123") #用於建立一個文件夾
os.system("df -h") 這個命令的輸出有2個,一個是實際的命令輸出,一個是輸出結果,命令輸出就是df的內容(系統存儲使用狀況),輸出結果就是0
若是咱們直接 cmd = os.system("df -h"),則cmd中只有輸出結果,若是要想將命令輸出複製則應該寫爲
cmd = os.popen("df -h").read(),先用popen將結果保存到內存中,再read一下
實際import 命令後面接的模塊就是一個python的腳本,可是不能帶.py後綴
但是這個腳本的位置須要注意,默認狀況下系統會到特定的路徑下尋找腳本,或者是當前路徑下。查找特定路徑的方法爲
import sys
print(sys.path)
>>> import sys
>>> print(sys.path)
['', '/usr/local/python3/lib/python35.zip', '/usr/local/python3/lib/python3.5', '/usr/local/python3/lib/python3.5/plat-linux', '/usr/local/python3/lib/python3.5/lib-dynload', '/usr/local/python3/lib/python3.5/site-packages']
從這裏能夠看出由於第一個位子的是'',所以說明當前路徑的優先級是最高的,所以若是在當前路徑下存在一個其餘路徑中的同名腳本,則當前路徑優先
咱們能夠本身寫一個模塊,就用以前的
import getpass
username = input("username: ")
password = getpass.getpass("password : ")
print(username,password)
保存爲pass.py,而後將其保存到上面的路徑中,以後就能夠在其餘的腳本中import pass來導入這個模塊了
if 判斷
python是一個有強烈格式的語言,其語法格式依照嚴格的縮進
user="XXX"
passwd="cisco,123"
username=input("inputyourusername;")
password=input("inputyourpassword:")
if user == username:
print("usernameiscorrect...")
if passwd == password:
print("Welcomelogin...")
else:
print("passwordisinvalid...")
else:
print("usernameisinvalid")
同時,if能夠多條件判斷
user="XXX"
passwd="cisco,123"
username=input("inputyourusername;")
password=input("inputyourpassword:")
if user==username and passwd==password:
print("Welcome login")
else:
print("usernameorpassworisinvalid")
循環
for i in range(10): range(10)表明0到9的10個數
循環10次,可是隻能猜3次,超過3次自動跳出
age=32
foriinrange(10):
ifi<3:
gage=int(input("inputage:"))
ifgage>age:
print("guessmorethanage")
elifgage<age:
print("guesslessthanage")
else:
print("yougotit")
break
else:
print("toomanytimes")
break
for i in range(10)
i=100
在上面的內容中,range(10)表明的是一個序列,所以在for的循環中每次i的值是這個序列中的值依次被賦值,即使下面從新將i賦值,只要仍在這個循環中,這個i仍然會被range覆蓋
跳出程序
一、跳出整個程序,break,設置完成後,當運行到break時,就會結束程序
二、跳出當次循環,continue,設置完成後,當運行到continue時,會結束當次循環,可是總體循環仍然還會有
做業一:博客
做業二:編寫登陸程序
輸入用戶名密碼
認證成功後顯示歡迎信息
輸錯三次後鎖定
做業三:多級菜單
1.北京
2.上海
>>input
1.東城
2.西城
>>input
1.沙河
>>input
同時輸入b返回上級菜單,q退出程序
流程圖 processon.com
readme:
SVN:
做業命名day1