python3基礎

簡介:

    Python可以應用於衆多領域,如:數據分析、組件集成、網絡服務、圖像處理、數值計算和科學計算等衆多領域。目前業內幾乎所有大中型互聯網企業都在使用Python,如:Youtube、Dropbox、BT、Quora(中國知乎)、豆瓣、知乎、Google、Yahoo!、Facebook、NASA、百度、騰訊、汽車之家、美團等。

編譯性語言

    編譯型語言寫的程序執行之前,需要一個專門的編譯過程,把程序編譯成爲機器語言的文件,比如exe文件,以後要運行的話就不用重新翻譯了,直接使用編譯的結果就行了(exe文件),因爲翻譯只做了一次,運行時不需要翻譯,所以編譯型語言的程序執行效率高。(C、C++、java)

解釋性語言
  解釋則不同,解釋性語言的程序不需要編譯,省了道工序,解釋性語言在運行程序的時候才翻譯,比如解釋性java語言,專門有一個解釋器能夠直接執行java程序,每個語句都是執行的時候才翻譯。這樣解釋性語言每執行一次就要翻譯一次,效率比較低。(java、php、perl、python)

腳本語言
   腳本語言是解釋性語言。腳本語言一般都有相應的腳本引擎來解釋執行。它們一般需要解釋器才能運行。所以只要系統上有相應語言的解釋程序就可以做到跨平臺。腳本語言是一種解釋性的語言,例如vbscript,javascript,installshield script等等,它不象c\c++等可以編譯成二進制代碼,以可執行文件的形式存在。(vbscript,javascript,installshield script)

動態語言和靜態語言
通常我們所說的動態語言、靜態語言是指動態類型語言和靜態類型語言。

(1)動態類型語言:動態類型語言是指在運行期間纔去做數據類型檢查的語言,也就是說,在用動態類型的語言編程時,永遠也不用給任何變量指定數據類型,該語言會在你第一次賦值給變量時,在內部將數據類型記錄下來。Python和Ruby就是一種典型的動態類型語言,其他的各種腳本語言如VBScript也多少屬於動態類型語言。

(2)靜態類型語言:靜態類型語言與動態類型語言剛好相反,它的數據類型是在編譯其間檢查的,也就是說在寫程序時要聲明所有變量的數據類型,C/C++是靜態類型語言的典型代表,其他的靜態類型語言還有C#、JAVA等。

強類型定義語言和弱類型定義語言

(1)強類型定義語言:強制數據類型定義的語言。也就是說,一旦一個變量被指定了某個數據類型,如果不經過強制轉換,那麼它就永遠是這個數據類型了。舉個例子:如果你定義了一個整型變量a,那麼程序根本不可能將a當作字符串類型處理。強類型定義語言是類型安全的語言。

(2)弱類型定義語言:數據類型可以被忽略的語言。它與強類型定義語言相反, 一個變量可以賦不同數據類型的值。

強類型定義語言在速度上可能略遜色於弱類型定義語言,但是強類型定義語言帶來的嚴謹性能夠有效的避免許多錯誤。另外,“這門語言是不是動態語言”與“這門語言是否類型安全”之間是完全沒有聯繫的!
例如:Python是動態語言,是強類型定義語言(類型安全的語言); VBScript是動態語言,是弱類型定義語言(類型不安全的語言); JAVA是靜態語言,是強類型定義語言(類型安全的語言)。

python是一門動態解釋性的強類型定義語言。

一、python3安裝

下載地址:https://www.python.org/

windows安裝方法

1. 下載下來之後雙擊安裝,安裝時一路下一步下一步即可(根據自定義路徑)

2. 配置環境變量

右鍵計算機 —> 屬性 —> 高級系統設置 —> 高級 —> 環境變量 —> 在第二個內容框中找到變量名爲Path的一行,雙擊 —> Python安裝目錄追加到變值值中,用;分割

centos7安裝升級方法

yum -y install readline-devel patch readline gcc
tar xvf Python-3.5.tgz
cd Python-3.5
./configure --prefix=/usr/local/python35
make && make install
mv /usr/bin/python /usr/bin/python_old
 ln -s /usr/local/python35/bin/python /usr/bin/
tar zxvf setuptools-1.6.2.tar.gz
cd setuptools-1.6.2
python setup.py build
python setup.py install
tar zxvf readline-7.2.4.1.tar.gz
cd readline-7.2.4.1
python setup.py build
python setup.py install
vi /usr/bin/yum
#!/usr/bin/python2.7

二、python入門

創建.py結尾文件並運行

[root@localhost ~]# cat hello.py 
#!/usr/bin/env python
print ("Hello World!")
[root@localhost ~]# python hello.py 
Hello World!

第一行#!/usr/bin/env python設置環境變量

第二行print ("Hello World!")以函數打印Hello World!

python2中使用print "Hello World!"爲語句輸出;

三、代碼流程

wKiom1efVaSC7xCMAABcdWB-Mbg336.png-wh_50

    Python先把代碼(.py文件)編譯成字節碼,交給字節碼虛擬機,然後虛擬機一條一條執行字節碼指令,從而完成程序的執行;字節碼在Python虛擬機程序裏對應的是PyCodeObject對象。

    .pyc文件是字節碼在磁盤上的表現形式;當python程序第二次運行時,首先程序會在硬盤中尋找pyc文件,如果找到,則直接載入,否則就重複上面的過程。

四、變量與字符編碼

變量定義的規則:

變量名只能是 字母、數字或下劃線的任意組合

變量名的第一個字符不能是數字

以下關鍵字不能聲明爲變量名
['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']

>>> work = "IT"
>>> work
'IT'

聲明瞭一個變量,定義一個變量名爲”work“,變量名的值爲:“IT”

字符編碼

python解釋器在加載 .py 文件中的代碼時,會對內容進行編碼(默認ascill)

ASCII(American Standard Code for Information Interchange,美國標準信息交換代碼)是基於拉丁字母的一套電腦編碼系統,主要用於顯示現代英語和其他西歐語言,其最多隻能用 8 位來表示(一個字節),即:2**8 = 256-1,所以,ASCII碼最多隻能表示 255 個符號。

wKiom1efWJqSXET8AAQ8-X74hdE290.png

python制定字符編碼的方式有多種,而編碼格式是要寫在解釋器的下面的,常用的如下面二種:

第一種

#!/usr/bin/env python

#coding:utf-8

第二種

#!/usr/bin/env python

# -*- coding:utf-8 -*-

代碼註釋

#單行註釋

多行註釋""" work test"""

五、數據類型

1.字符串

定義字符串類型是需要用單引號或者雙引號包起來

>>> name = 'patrick'
>>> print(type(name))
<class 'str'>

2.數字(直接跟數字,不要用雙引號包起來)

>>> year = 2016
>>> print(type(year))
<class 'int'>

3.布爾值(真or假 1或者0)

>>> if True:
...   print ("0")
... else:
...   print ("1")
... 
0

4.字符串常用操作

  1. 移除空白

  2. 分割

  3. 長度

  4. 索引

  5. 切片

5.列表

  1. 索引

  2. 切片

  3. 追加

  4. 刪除

  5. 長度

  6. 切片

  7. 循環

  8. 包含

6.元組(不可變列表)

>>> year = (2012,2013,2014,2015)
>>> year
(2012, 2013, 2014, 2015)

7.字典

person = {"name": "mr.wu", 'age': 18}

或者

person = dict({"name": "mr.wu", 'age': 18})

用操作:

  1. 索引

  2. 新增

  3. 刪除

  4. 鍵、值、鍵值對

  5. 循環

  6. 長度

八、數值運算

1.算數運算符

wKioL1efY3mySPkgAABUUniH0zM844.png-wh_50

2.比較運算符

wKioL1efY8XwirJdAABXY7e6deI814.png-wh_50

3.賦值運算符

wKioL1efY-vCaDtRAABUbq9ZIoI332.png-wh_50

4.位運算符

wKiom1efZD6xRdpgAACXTHSj-rU316.png-wh_50

5.邏輯運算符

wKioL1efZGXTQ8jGAAAxEQ8vKC4878.png-wh_50

6.成員運算符

wKiom1efZJXBpA2NAAAjYTDpA3M765.png-wh_50

7.身份運算符

wKioL1efZMOTZ9k3AAAn6aHPCm0081.png-wh_50

8.運算符優先級

wKioL1efZPLQA_DLAABW_FztedU447.png-wh_50

九、for、if、while使用

for循環列表使用

>>> data = [1,2,3,4,5,6]
>>> for i in data:
...   print(i,end='\n')
... 
1
2
3
4
5
6

if使用

#!/usr/bin/env python
#-*- coding:utf-8 -*-
# 該實例演示了數字猜謎遊戲
number = 7
guess = 0
print("數字猜謎遊戲!")
while guess != number:
    guess = int(input("請輸入你猜的數字:"))

    if guess == number:
        print("恭喜,你猜對了!")
    elif guess < number:
        print("猜的數字小了...")
    elif guess > number:
        print("猜的數字大了...")

while使用

#!/usr/bin/env python
#-*- coding:utf-8 -*-
#author patrick
import getpass
count = 3
flage = "True"
while flage:
	username = input("please input your name: ")
	passwd = getpass.getpass("please input your password: ")
	if username=="patrick" and passwd=="123":
		print("welcome to %s" % username)
		break
	else:
		if count == 1:
			flage = False
		else:
			count-=1
			print("you have %s chaces!" % (count))

break跳出當前循環體,下面代碼不再執行,繼續執行循環後面的代碼

continue 跳出本次循環,繼續下一次循環


python小練習(打印1+..+9)和

awk思路:

root@data:~# awk -vc=9 'BEGIN{for(i=1;i<=c;i++){s=s?s"+"i:i;t+=i;print (i==1)?"1":s"="t}}'
1
1+2=3
1+2+3=6
1+2+3+4=10
1+2+3+4+5=15
1+2+3+4+5+6=21
1+2+3+4+5+6+7=28
1+2+3+4+5+6+7+8=36
1+2+3+4+5+6+7+8+9=45

python思路

#!/usr/bin/python
__author__ = 'Patrick'
import sys

if __name__ == "__main__":
    print ('Please input a int:')
    n = int(input('> '))
    i = 1
    s = 0
    while i <= n:
        j = 1
        while j <= i:
            if j < i:
                sys.stdout.write(str(j)+'+')
            else:
                sys.stdout.write(str(j))
                s += j
                print (" " + '= {0}'.format(s))
            j += 1
        i += 1
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章