1. 程式人生 > 其它 >Python運維開發基礎01-語法基礎

Python運維開發基礎01-語法基礎

隨筆- 99 文章- 0 評論- 75 閱讀- 31萬

Python運維開發基礎01-語法基礎

標籤(空格分隔): Mr.chen之Python3.0執教筆記(QQ:215379068)

--僅供北大青鳥內部學習交流使用

開發不是看出來的,開發一定是練出來的;
想學好開發,沒有捷徑可走,只有不斷的練練練;
在運維的學習路線中,首看原理架構知識的掌握,次為實操部署;
在開發的學習路線中,首看邏輯思想,再看架構設計,還看編碼實操能力。
是的,在開發裡,沒有次看的,都要會,都要會。

開篇導語

  • 整個Python運維開發教學採用的是最新的3.5.2版,當遇到2.x和3.x版本的不同點時,會採取演示的方式,讓同學們瞭解。
  • 教學預計分為四大部分,Python開發基礎,Python開發進階,Python網頁程式設計,Python專案實戰
  • Python開發基礎分為語法基礎篇,檔案基礎篇,函式基礎篇,模組基礎篇
  • 語法基礎篇中,我著重希望訓練同學的是作為開發應該具備的一種邏輯思路。
  • 檔案基礎篇中,我們需要練習的是如何將資料永久性的儲存在硬碟上,提供讀,寫。
  • 函式基礎篇中,我重點是要引導同學們構建出整個程式碼架構的編寫設計模式。只有邏輯和架構完全成型同學們才算是從思想上真正進入開發領域的大門。
  • 模組基礎篇中,我們接觸很多常用的模組,比如裝飾器和生成器等。並通過這些模組來繼續完善優化我們對整個程式碼架構的設計能力。
  • 至此,我們Python開發基礎部分就結束了,大概60課時,15小節。

一,Python發展介紹

  1. 開啟網頁直接念百度百科
  2. 介紹下Python3.X優於Python2.7X的地方
  3. 企業Centos7.0將和Python3.0同步升級

二,Python的基礎環境構建

在編譯之前,我們先yum安裝一些支援程式

yum -y install gcc gcc-c++ make autoconf readline readline-devel

2.1 Centos6.5升級Python2.7和Python3.5程式

升級Python2.7.13

[root@localhost ~]# tar xf Python-2.7.13.tgz -C /usr/src/
[root@localhost ~]# tar xf Python-2.7.13.tgz -C /usr/src/
[root@localhost Python-2.7.13]# ./configure --prefix=/usr/local/python27
[root@localhost Python-2.7.13]# make && make install
[root@localhost python27]# cd /usr/local/python27/
[root@localhost python27]# python -V
Python 2.6.6
[root@localhost python27]# which python
/usr/bin/python
[root@localhost python27]# mv /usr/bin/python /usr/bin/python26
[root@localhost bin]# ln -s /usr/local/python27/bin/python /usr/bin/python 
[root@localhost bin]# python -V
Python 2.7.13

升級Python3.5.2

[root@localhost ~]# tar xf Python-3.5.2.tgz -C /usr/src/
[root@localhost ~]# cd /usr/src/Python-3.5.2/
[root@localhost Python-3.5.2]# ./configure --prefix=/usr/local/python35
[root@localhost Python-3.5.2]# make && make install
[root@localhost python35]# cd /usr/local/python35/bin/
[root@localhost bin]# ln -s /usr/local/python35/bin/python3 /usr/bin/python3
[root@localhost bin]# python3 -V
Python 3.5.2

修復yum倉庫的編譯錯誤

[root@localhost bin]# vim `which yum`
[root@localhost bin]# head -1 `which yum`
#!/usr/bin/python26 #修改這裡

2.2 建立Python的vim初始練習環境

在家目錄建立如下檔案和內容

[root@localhost ~]# cat ~/.vimrc 
set cursorline

set tabstop=4

set shiftwidth=4

set expandtab

function PythonHeader()
	call setline(1,"#!/usr/bin/env python3")
	call setline(2,"# -*- coding:utf-8 -*-")
	call setline(3,"# author:你的名字")
	normal G
	normal o
	normal o
endfunc

autocmd BufNewfile *.py call PythonHeader()

map <F5> :!clear ;python3 % <CR>    #用Python3 執行當前shell

三,初識Python

3.1 解析器的寫法

他們的區別?

#!/usr/bin/env python
#!/usr/bin/python

env是一個查詢器,它會自動幫我們去找python這個可執行檔案位置

3.2 第一個Python程式

在Linux下建立一個檔案叫做hello.py

print("hello world!")

然後執行命令:python hello.py

[root@localhost ~]# python3 hello.py 
hello world!

指定直譯器:

如果想用類似於shell指令碼一樣的方式執行python指令碼,例如:./hello.py,那麼就需要在hello.py檔案的頭部指定直譯器,如下:

#程式碼演示:

#!/usr/bin/env python3

print ("hello world!")

#輸出結果

[root@localhost ~]# ./hello.py 
hello world!

在互動器中執行程式碼

除了把程式寫在檔案中,還可以直接呼叫python自帶的互動器執行程式碼。

[root@localhost ~]# python3
Python 3.5.2 (default, Dec 20 2017, 01:15:07) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> print("Hello world!")
Hello world!

3.3 Python的變數

Python是一種強制編譯型語言,它不需要像類似C語言一樣提前宣告變數的型別,而是根據賦值的內容是什麼自動確定變數的型別

>>> name = 123  #直接賦值數字
>>> type(name)
<class 'int'>   #name為整型
>>> name = "hello world"    #賦值字串
>>> type(name)
<class 'str'>   #name為字串型別
>>> name = "123"    #給數字加雙引號
>>> type (name)
<class 'str'>       #也會被Python認為是字串
>>> name = hello world  #如果字母不加雙引號,Python會認為是數字,因此報錯
  File "<stdin>", line 1
    name = hello world
                     ^
SyntaxError: invalid syntax

變數定義規則:

  • 變數名只能是字母,數字或下劃線的任意組合
  • 變數名的第一個字元不能是數字
  • 以下關鍵字不能宣告為變數名
['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']

關鍵字是什麼?
類似Python程式預設的型別int,str還有系統環境變數等都是關鍵字

四,思考題與作業:利用Shell實現"模擬使用者登入程式"

4.1 shell知識補充

(1)break,continue,return,exit迴圈控制語句作用演示
(2)指令碼庫函式functions引用

[root@localhost yunjisuan]# cat test.sh 
#!/bin/bash

. /etc/rc.d/init.d/functions


action "服務執行成功!" /bin/true
action "服務執行失敗!" /bin/false
[root@localhost yunjisuan]# sh test.sh 
服務執行成功!                                             [確定]
服務執行失敗!                                             [失敗]

4.2 shell實現使用者登入驗證程式

[root@localhost yunjisuan]# cat login.sh 
#!/bin/bash
#user login

User="yunjisuan"
Passwd="666666"
User2="yunjisuan2"
Passwd2="123123"
Lock=""

function Title(){
cat<<KOF
	*************************
	*	1,登入使用者	        *
	*	2,退出		      *
	*************************
KOF
}

function Login(){
#使用者登入功能模組具體要求:
#0,先判斷使用者名稱是否被鎖定,如果被鎖定,禁止登陸。
#1,判斷使用者名稱是否正確,不正確重新輸入
#2,已知使用者名稱判斷密碼是否正確,如果不正確重新輸入密碼。
#3,密碼輸入3次如果全都錯誤,賬戶鎖定(將使用者名稱,放進變數Lock裡)
#4,如何放進變數裡:Lock="$Lock $user",通過grep -w精確匹配過濾.
#5,指令碼一直不退出。除非,使用者主動退出或者登陸成功!

}

while :
do
	clear
	Title
	read -p "請輸入你的選擇:" Num
	case $Num in
		1)
		Login
		;;
		2)
		exit
		;;
		*)
		echo "您的輸入有誤,請重新輸入!"	
		sleep 2
		;;
	esac
done

分類: 從零開始學Python理論 標籤: Python