python介紹:java
python由Guido van Rossum(英文不知道叫什麼,大陸名字叫「龜叔」)於1989年發明,第一個公開發行版發行於1991年。python
python能作什麼:程序員
Python是一門綜合性的語言,你幾乎能在計算機上經過Python作任何事情,如下是Python應該最普遍的幾個方面:web
python特色:shell
1,Python「優雅」、「明確」、「簡單」,因此Python程序看上去老是簡單易懂,並且相比較其餘語言較容易入門。服務器
2,免費開源,開發效率很是高,可移植性,開發高效有豐富的庫,可嵌入性,高級語言你無需考慮諸如如何管理你的程序使用的內存一類的底層細節網絡
3,python具備豐富和強大的庫。他經常被稱爲膠水語言,可以把用其餘語言製做的各類模塊(尤爲是C/C++)很輕鬆的聯結在一塊兒。常見的一種應用情形是,使用python快速生成程序的原型(有的時候甚至是程序的最終頁面),而後對其中有特別要求的部分,用更合適的語言改寫,好比3D遊戲中的圖形渲染模塊,性能要求特別高,就能夠用C/C++重寫,而後封裝爲python能夠調用的擴展類庫。框架
python 安裝less
Linux: 運維
Linux的yum依賴自帶Python,爲防止錯誤,此處更新其實就是再安裝一個Python
查看默認Python版本 python -V 1、安裝gcc,用於編譯Python源碼 yum install gcc 二、下載源碼包,https://www.python.org/downloads/python/ 3、解壓並進入源碼文件 4、編譯安裝 ./configure make all make install 5、查看版本 /usr/local/bin/python2.7 -V 6、修改默認Python版本 mv /usr/bin/python /usr/bin/python2.6 ln -s /usr/local/bin/python2.7 /usr/bin/python 7、防止yum執行異常,修改yum使用的Python版本 vi /usr/bin/yum 將頭部 #!/usr/bin/python 修改成 #!/usr/bin/python2.6
Windows版:
python運行:
Linux中
新建一個hello.py文件,內容以下:
1 print("Hello,world")
執行python hello.py便可,這是明確指定用python解釋器執行的;
若是想要與shell同樣 ./hello.py 來執行,就須要在hello.py文件頭部來指定解釋器,以下:
#!/usr/bin/env python print "hello,world"
注:需給文件加上執行權限; chmod +x hello.py ,如此就能夠用./hello.py來執行
Python解釋器/種類:
CPython,原始、標準官方的實現方式,用C語言開發,
Jython,用於和Java語言集成的實現,把Python代碼直接編譯成java字節碼執行;
IPython,基於CPython之上的一個交互解釋器,交互上很是直觀,可是執行代碼功能和CPython徹底同樣;
IronPython,用於和.NET框架集成的實現,能夠直接把python代碼編譯成.Net的字節碼
PyPy,使用python語言實現的Python解釋器,是動態編譯器,是Psyco的後繼項目;可運行在Linux的3二、64位、MacOSX和Windows的32位平臺上
變量:
先聲明變量:
>>> name = "tianjie" >>> print(name) tianjie
變量的做用:暱稱(name),其代指內存裏某個地址中保存的內容(tianjie)
變量定義的規則:
# 將用戶輸入的內容賦值給 name 變量(python3寫法) name = input("pless your name:") #python2寫法 name= raw_input("please your name:") #而後打印這個輸入的內容 print(name)
輸入密碼時,若是想要不可見,須要利用getpass 模塊中的 getpass方法,即:
1 import getpass 2 3 # 將用戶輸入的內容賦值給 pwds 變量 4 pwds = getpass.getpass("請輸入密碼:") 5 6 # 打印輸入的內容 7 print pwds 8 9 注意:此方法在pycharm中不能使用
流程控制:
1、if...else:
1 輸入一個數字做比較,若是相等輸出「相等」 2 大了,提示小一點 3 小了提示大一點 4 5 6 number = 6 7 cai = int(input("My Lucky Number:")) 8 if cai > number: 9 print("please print smaller") 10 elif cai < number: 11 print("please print bigger") 12 else: 13 print("Congratulations, you got it")
二、判斷用戶輸入的用戶名和密碼是否正確,如正確就打印歡迎登錄,錯誤提示用戶名或密碼錯誤,結合getpass模塊:
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 4 import getpass 5 6 7 user = 'tianjie' 8 password = 'buzhidao' 9 10 input_user = input('Username?') 11 input_pass = getpass.getpass('Password?') 12 13 if input_user == user and input_pass == password: 14 print('歡迎登錄,%s' %(input_user)) 15 else: 16 print('用戶名或者密碼錯誤,請稍後再試')
2、while:
一、猜一個幸運數字直到猜對爲止:
1 number = 6 2 cai = -1 3 while number != cai: 4 cai = int(input("My Lucky Number:")) 5 if cai > number: 6 print("please print smaller") 7 elif cai < number: 8 print("please print bigger") 9 #else: 10 # print("Congratulations, you got it") 11 #break 12 print("Congratulations, you got it")
二、循環,知足條件進入循環:
仍是上面的需求,容許用戶輸入嘗試三次,若是連續三次失敗的話,退出程序,使用while循環來處理:
1 #!/usr/bin/env python 2 # -*- coding :utf-8 -*- 3 4 user="tianjie" 5 password="qweasd" 6 7 count=0 8 9 10 while True: 11 if count<3: 12 name=input("input your user:") 13 pasw=input("password:") 14 if name==user and password == pasw: 15 print("%s歡迎登錄"%(name)) 16 break 17 else: 18 print("用戶或密碼錯誤") 19 count+=1 20 else: 21 flag=input("輸入次數過可能是否繼續,y/n:") 22 if flag == "y": 23 count=0 24 elif flag == "n": 25 break
3,for.... in....
仍是上面的需求,只容許用戶輸錯10次,若是連續三次失敗的話,提示是否繼續,,使用for循環來處理:
1 #!/usr/bin/env python 2 # -*- coding :utf-8 -*- 3 4 user="tianjie" 5 password="qweasd" 6 7 count=0 8 for i in range(10): 9 if count<3: 10 name=input("input your user:") 11 pasw=input("password:") 12 if name==user and password == pasw: 13 print("%s歡迎登錄"%(name)) 14 break 15 else: 16 print("用戶或密碼錯誤") 17 18 else: 19 flag=input("輸入次數過可能是否繼續,y/n:") 20 if flag == "y": 21 count=0 22 continue 23 elif flag == "n": 24 break 25 26 count += 1
python模塊:
os模塊:是Python標準庫中用於訪問操做系統功能的模塊,很是NB 能夠調用操做系統的命令着實沒有想到!
1 >>> import os #先導入模塊 2 >>> help(os) #獲取os幫助信息
列出能夠用的模塊
1 1 >>> dir(os) 2 2 ['EX_CANTCREAT', 'EX_CONFIG', 'EX_DATAERR', 'EX_IOERR', 'EX_NOHOST', 'EX_NOINPUT', 'EX_NOPERM', 'EX_NOUSER', 'EX_OK', 'EX_OSERR', 'EX_OSFILE', 'EX_PROTOCOL', 'EX_SOFTWARE', 'EX_TEMPFAIL', 'EX_UNAVAILABLE', 'EX_USAGE', 'F_OK', 'NGROUPS_MAX', 'O_APPEND', 'O_ASYNC', 'O_CREAT', 'O_DIRECT', 'O_DIRECTORY', 'O_DSYNC', 'O_EXCL', 'O_LARGEFILE', 'O_NDELAY', 'O_NOATIME', 'O_NOCTTY', 'O_NOFOLLOW', 'O_NONBLOCK', 'O_RDONLY', 'O_RDWR', 'O_RSYNC', 'O_SYNC', 'O_TRUNC', 'O_WRONLY', 'P_NOWAIT', 'P_NOWAITO', 'P_WAIT', 'R_OK', 'SEEK_CUR', 'SEEK_END', 'SEEK_SET', 'ST_APPEND', 'ST_MANDLOCK', 'ST_NOATIME', 'ST_NODEV', 'ST_NODIRATIME', 'ST_NOEXEC', 'ST_NOSUID', 'ST_RDONLY', 'ST_RELATIME', 'ST_SYNCHRONOUS', 'ST_WRITE', 'TMP_MAX', 'UserDict', 'WCONTINUED', 'WCOREDUMP', 'WEXITSTATUS', 'WIFCONTINUED', 'WIFEXITED', 'WIFSIGNALED', 'WIFSTOPPED', 'WNOHANG', 'WSTOPSIG', 'WTERMSIG', 'WUNTRACED', 'W_OK', 'X_OK', '_Environ', '__all__', '__builtins__', '__doc__', '__file__', '__name__', '__package__', '_copy_reg', '_execvpe', '_exists', '_exit', '_get_exports_list', '_make_stat_result', '_make_statvfs_result', '_pickle_stat_result', '_pickle_statvfs_result', '_spawnvef', 'abort', 'access', 'altsep', 'chdir', 'chmod', 'chown', 'chroot', 'close', 'closerange', 'confstr', 'confstr_names', 'ctermid', 'curdir', 'defpath', 'devnull', 'dup', 'dup2', 'environ', 'errno', 'error', 'execl', 'execle', 'execlp', 'execlpe', 'execv', 'execve', 'execvp', 'execvpe', 'extsep', 'fchdir', 'fchmod', 'fchown', 'fdatasync', 'fdopen', 'fork', 'forkpty', 'fpathconf', 'fstat', 'fstatvfs', 'fsync', 'ftruncate', 'getcwd', 'getcwdu', 'getegid', 'getenv', 'geteuid', 'getgid', 'getgroups', 'getloadavg', 'getlogin', 'getpgid', 'getpgrp', 'getpid', 'getppid', 'getsid', 'getuid', 'isatty', 'kill', 'killpg', 'lchown', 'linesep', 'link', 'listdir', 'lseek', 'lstat', 'major', 'makedev', 'makedirs', 'minor', 'mkdir', 'mkfifo', 'mknod', 'name', 'nice', 'open', 'openpty', 'pardir', 'path', 'pathconf', 'pathconf_names', 'pathsep', 'pipe', 'popen', 'popen2', 'popen3', 'popen4', 'putenv', 'read', 'readlink', 'remove', 'removedirs', 'rename', 'renames', 'rmdir', 'sep', 'setegid', 'seteuid', 'setgid', 'setgroups', 'setpgid', 'setpgrp', 'setregid', 'setreuid', 'setsid', 'setuid', 'spawnl', 'spawnle', 'spawnlp', 'spawnlpe', 'spawnv', 'spawnve', 'spawnvp', 'spawnvpe', 'stat', 'stat_float_times', 'stat_result', 'statvfs', 'statvfs_result', 'strerror', 'symlink', 'sys', 'sysconf', 'sysconf_names', 'system', 'tcgetpgrp', 'tcsetpgrp', 'tempnam', 'times', 'tmpfile', 'tmpnam', 'ttyname', 'umask', 'uname', 'unlink', 'unsetenv', 'urandom', 'utime', 'wait', 'wait3', 'wait4', 'waitpid', 'walk', 'write']
os.system():調用本地命令:
1 如查看系統分區使用: 2 >>> os.system("fdisk -l") 3 4 Disk /dev/sda: 500.1 GB, 500107862016 bytes 5 255 heads, 63 sectors/track, 60801 cylinders 6 Units = cylinders of 16065 * 512 = 8225280 bytes 7 Sector size (logical/physical): 512 bytes / 4096 bytes 8 I/O size (minimum/optimal): 4096 bytes / 4096 bytes 9 Disk identifier: 0x148bf7a4 10 11 Device Boot Start End Blocks Id System 12 /dev/sda1 * 1 77 614400 83 Linux 13 Partition 1 does not end on cylinder boundary. 14 /dev/sda2 77 6451 51200000 83 Linux 15 /dev/sda3 6451 7471 8192000 82 Linux swap / Solaris 16 /dev/sda4 7471 60802 428379160 5 Extended 17 /dev/sda5 7471 60802 428378112 83 Linux 18 0 19 >>>
#若是賦予變量的話 ,只是把執行命令的狀態返回值賦予了變量,並無把執行結果打印出來 >>> a=os.system("fdisk -l") Device Boot Start End Blocks Id System /dev/sda1 * 1 77 614400 83 Linux Partition 1 does not end on cylinder boundary. /dev/sda2 77 6451 51200000 83 Linux /dev/sda3 6451 7471 8192000 82 Linux swap / Solaris /dev/sda4 7471 60802 428379160 5 Extended /dev/sda5 7471 60802 428378112 83 Linux >>> print(a) 0
popen 是把執行結果給保存,而後用read()打開 :
1 >>> a=os.popen 2 >>> a=os.popen("df -lh") 3 >>> print(a) 4 <open file 'df -lh', mode 'r' at 0x1f93270> 5 >>> print(a.read()) 6 Filesystem Size Used Avail Use% Mounted on 7 /dev/sda2 48G 11G 36G 23% / 8 tmpfs 934M 300K 934M 1% /dev/shm 9 /dev/sda1 575M 31M 514M 6% /boot 10 /dev/sda5 402G 6.1G 376G 2% /home 11 12 >>>