Python 基礎部分-1

 

http://www.cnblogs.com/wupeiqi/articles/4906230.htmlhtml

http://www.cnblogs.com/wupeiqi/articles/5433925.htmjava

 

電腦語言進化史python

 

機器語言(二進制)linux

0101010110101011010101101010110101010程序員

 

彙編 shell

A54 <===> 1010110101編程

 

C語言windows

 

JAVA, C#, PHP, PYTHON數組

虛擬機 分配內存ruby

print("Hello world!")
>>>Hello world!

 

http://coolshell.cn//wp-content/uploads/2010/10/EvolutionOfComputerlanguages.png

 

Python簡介

Python是著名的「龜叔」Guido van Rossum在1989年聖誕節期間,爲了打發無聊的聖誕節而編寫的一個編程語言。(祖師爺還真夠無聊的-_-!)

2016年1月計算機語言排行,Python排行第五

l

python種類

 

cPython

  • 使用C語言實現,使用最爲普遍,CPython實現會將源文件(py文件)轉換成字節碼文件(pyc文件),而後運行在Python虛擬機上

   程序員:掌握一種規則的cPython

 

jPython, ironPython, rubyPython

  • Jython會將Python代碼動態編譯成Java字節碼,而後在JVM上運行。
  • IronPython將Python代碼編譯成C#字節碼,而後在CLR上運行。

程序運行過程

  Pyhton > jPython > 中間代碼 > java虛擬機 > 機器碼 >計算機

 

pypy

  • 將Python的字節碼字節碼再編譯成機器碼

   pypy > 機器碼 >計算機

PyPy在兼容和效率都有很強大,有興趣能夠看看。

http://www.oschina.net/translate/why-are-there-so-many-pythons

 

python語言的缺點:

運行速度慢。話說是1.001秒和1.1秒的區別...

代碼不能加密。經濟共享時代,連google都共享代碼,這個就略去吧...

 

安裝Python

windows:

1、下載安裝包

    https://www.python.org/downloads/

2、安裝

    默認安裝路徑:C:\python27

3、配置環境變量

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

    如:原來的值;C:\python27,切記前面有分號 

 

 

 

Linux 更新Python

Linux和Mac系統已經自帶Python

 查看默認Python版本
 
 python -V
    
 1、安裝gcc,用於編譯Python源碼
 
     yum install gcc
 
 2、下載源碼包,https://www.python.org/ftp/python/
 
 3、解壓並進入源碼文件 tar -xvf file.tar
 
 4、編譯安裝
 
     ./configure
 
     make all
 
     make install
 
 5、查看版本
 
     /usr/local/bin/python2.7 -V
 
 6、修改默認Python版本
 
     mv /usr/bin/python /usr/bin/python2.7
 
     ln -s /usr/local/bin/python2.7 /usr/bin/python
 
 7、防止yum執行異常,修改yum使用的Python版本
 
     vi /usr/bin/yum
 
     將頭部 #!/usr/bin/python 修改成 #!/usr/bin/python2.7

 

編碼

 

最小的單元是位(bit),接着是字節(Byte),一個字節=8位,英語表示是1 byte=8 bits 。機器語言的單位Byte。1 KB=1024 Byte; 1 MB=1024 KB; 1 GB=1024 MB ; 1TB=1024 GB。

 

ASCII(American Standard Code for Information Interchange,美國信息互換標準代碼)

   8位:全部英文,字符,數值,ascii

    01001010==2**8 = 256

 

Unicode (Universal Multiple-Octet Coded Character Set) 通用多八位編碼字符集的簡稱,支持世界上超過650種語言的國際字符集。

  A=65= '000000000B1000001' 前8個零爲補齊

  最少用2個字節(16bit):

    1byte(字節) = 8bit =01010101

    2byte(字節) = 16bit = 0101010101010101 = 2**16

  gbk 漢字 (3字節):

     陳:

     3 byte (字節) = 

     010101010101010101010101

 

UTF -8    Unicode Translation Format,UTF-8是Unicode的其中一個使用方式, 即把Unicode轉作某種格式的意思。

  unicode加工:

    英文:8位

    歐洲:16位

    中文:24位

    ......

 

轉碼實例 python2.7

1 # -*- coding: -*-
2 
3 temp = "李傑" #utf-8
4 #解碼,須要指定原來的什麼編碼
5 temp_unicode = temp.decode('utf-8')
6 #先轉成unicode,再轉成gbk
7 temp_gbk = temp_unicode.encode("gbk")
8 print(temp_gbk)

 #-*- conding:utf-8 -*-  適用於 python 2.7 

 

轉碼實例 python 3.X  

1 #py3
2 #py3, 自動安裝 utf-8, unicode, gbk
3 #py3,移除了python的unicode類型
4 tmp = "李傑"
5 #自動轉換 utf-8, unicode, gbk
6 temp_gbk = temp.encode('gbk')

 

   unicode, gbk, utf -8 的轉換

 

    py2.7:以unicode爲中間互相轉碼

    utf-8 > unicode > gbk

    utf-8 解碼unicode編碼gbk

  

   py3.5:系統自帶編碼轉譯

    utf -8 > gbk

 

  window上輸出

    utf-8 > unicode

 

Python 入門

python內部執行過程以下:

 

簡單程序模板(Python2.7)

 

#!/usr/bin/env python #聲明執行python解釋器
# -*- coding: utf-8 -*- #聲明UTF-8編碼

"This a test module" #注析

import sys
import os  #模塊導入

debug = True #(全局)變量導入 局部變量可代替全局變量

class FooClass(object):
    "Foo class"
    pass

def test(): #函數定義
    "test function"  # modules, function執行
     foo = FooClass()
     if debug:
        print"run test()"

if __name__ == '__main__':     #主程序
    test()

 

linux 系統中

.py文件首行 #!/usr/bin/env python 編譯器的位置

Linux終端   ./h.py (須要首行註明 #!/usr/bin/env python)

      或 python h.py (啓動python執行程序)

 

註釋

  當行注視:# 被註釋內容

  

 

  多行註釋:""" 被註釋內容 """

  

 

內庫和導入

/python/lib/model.py 內庫文件

import model  #在內庫中找到lib.py,將內容替換

 

建立執行代碼

1. 建立XXX.py文件

    使用英文名字路徑

2. 寫代碼

    a. 頭部兩行

    b. 寫功能代碼

3.執行代碼

    a.打開終端

     功能鍵+R,CMD

    b. python代碼文件路徑

 

 變量

一、聲明變量

1 #!/usr/bin/env python
2 # -*- coding: utf-8 -*-
3 li = raw_input("Username") li 代指raw_input輸入的內容
4 name = "wupeiqi"

 

上述代碼聲明瞭一個變量,變量名爲: name,變量name的值爲:"wupeiqi"

變量的做用:暱稱,其代指內存裏某個地址中保存的內容

變量定義的規則:

  • 變量名只能是 字母、數字或下劃線__的任意組合
  • 變量名的第一個字符不能是數字
  • 如下關鍵字不能聲明爲變量名, 不能是python內部關鍵字
    ['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']

二、變量的賦值

 

name1 = "wupeiqi"
name2 = "alex"
 
name1 = "wupeiqi"
name2 = name1
 
根據內存地址ID,查看變量指向
 
查看內存地址:id(變量名) 
 
變量數值在-5~257內,地址相同
變量數值在-5~257外,地址不一樣
 
 
查看字符串、數組長度:len(字符串、數組)
 
 
8、輸入
 
raw_input 和 input 
 
1 >>> B = raw_input("raw_input: ")
2 raw_input: 123
3  >>> type(B)
4  <type 'str'> #‘raw_input’輸出的是字符串
5 >>> C = input("input: ")
6 input: 123
7 >>> type(C)
8 <type 'int'>#‘input’輸出的是整數
9 >>> 

 

1 #!/usr/bin/env python
2 # -*- coding: utf-8 -*-
3  
4 # 將用戶輸入的內容賦值給 name 變量
5 name = raw_input("請輸入用戶名:")#raw_input()只能在python2.x使用
6  
7 # 打印輸入的內容
8 print name

 

輸入密碼時,若是想要不可見,須要利用getpass 模塊中的 getpass方法,即:
 
 1 #!/usr/bin/env python
 2 # -*- coding: utf-8 -*-
 3  
 4 import getpass #導入getpass模塊  5  
 6 # 將用戶輸入的內容賦值給 pwd 變量
 7 pwd = getpass.getpass("請輸入密碼:")
 8  
 9 # 打印輸入的內容
10 print pwd

 

流程控制和縮進
 
if + 條件:
  執行內容一
  內容二
else:
  內容三  
  內容四
 
同一級別相同縮進  
 
條件語句

if 判斷條件:

   執行語句……

elif:

   執行語句……

else

   執行語句……

 
#賦值
name = "alex" #一個等號是賦值 #兩個等號的比較 if 1 == 1: print("11111")# 1 == 1爲True,執行本句 else: print("22222")


if 1 != 1:
  print("1111")
else:
  print("2222")# 1!= 1 爲False,執行本句
1 if True:
2     print("11111") # if爲True將執行本句
3 else:
4     print("22222")
5 
6 if False:
7     print("11111") 
8 else:
9     print("22222")# if爲False將執行本句
 1 inp = raw_input(">>>")
 2 
 3 if inp == "1":
 4     print('111')#條件一  5 
 6 elif inp == "2":
 7     print('222')#條件二  8 
 9 elif inp == "3": 
10     print('333')#條件三 11 
12 else:
13     print('...')#條件四

 

if 條件應用

用戶登錄驗證

1 # 提示輸入用戶名和密碼
2  
3 # 驗證用戶名和密碼
4 #     若是錯誤,則輸出用戶名或密碼錯誤
5 #     若是成功,則輸出 歡迎,XXX!
 #!/usr/bin/env python
 # -*- coding: encoding -*-
  
 import getpass
  
 name = raw_input('請輸入用戶名:')
 pwd = getpass.getpass('請輸入密碼:')
  
 if name == "alex" and pwd == "cmd":
     print "歡迎,alex!"
 else:
     print "用戶名和密碼錯誤"

name = raw_input("Username: ") 
pwd = raw_input('Password: ')

if name == "alex" and pwd == "123":#判斷用戶輸入name是否等於alex, pwd是否等於123;
    print ('yes')
else:
    print('no')

 

根據用戶輸入內容輸出其權限 

1 # 根據用戶輸入內容打印其權限
2  
3 # alex --> 超級管理員
4 # eric --> 普通管理員
5 # tony --> 業務主管
6 # 其餘 --> 普通用戶
 1 #!/usr/bin/env python
 2 # -*- coding: encoding -*-
 3  
 4 name = raw_input('請輸入用戶名:')
 5  
 6  
 7 if name == "alex":
 8     print "超級管理員"
 9 elif name == "eric":
10     print "普通管理員"
11 elif name == "tony":
12     print "業務主管"
13 else:
14     print "普通用戶"

 

外層變量,能夠被內層變量使用

內層變量,沒法被外層變量使用

 

條件 and 和 or

if name == 'alex' or name == 'eric':
    只要知足任何一個or的條件,進入當前代碼塊
 1 if 條件:
 2     代碼塊
 3 elif 條件:
 4     代碼塊
 5 else:
 6     代碼塊
 7 
 8 條件
 9 True     False
10 1>2      n1 > n2  n1 == n2
11 name == 'alex' or name == 'eric'
12 name != 'alex'
13 name == 'alex' and pwd == '123'
while 條件:  #條件成立,代碼會一直循環執行
    代碼塊

import time 

while True:
    print('1')
    time.sleep(1) #程序在while = True, print('1')一直循環

print('end')


n1= True 
while n1: #n1 = True程序進入循環,
    
    print('1') #代碼塊1
    time.sleep(1)
    n1 = False #n1= False程序跳出n1=True的循環執行下面代碼塊

print('end')

 

while循環

在某條件下,循環執行某段程序,以處理須要重複處理的相同任務。

while 條件:  #條件成立,代碼會一直循環執行
    代碼塊

import time 

while True:
    print('1')
    time.sleep(1) #程序在while = True, print('1')一直無限循環

print('end')


import time n1
= True while n1: #n1 = True程序進入循環, print('1') #代碼塊1 time.sleep(1) n1 = False #n1= False程序跳出n1=True的循環執行下面代碼塊 print('end')

1
end
>>>

 

break

用於跳出全部循環,而且break下面的代碼不在執行

 

break原理應用

flag =True, falg = False設定終止循環標示

 1 import time 
 2 
 3 begin = 1 #begin = 1 #7 begin = 2
 4 flag = True #2
 5 while flag: #3 
 6     print('begin')#4
 7     if begin == 10:#終止條件 
 8         flag = False # 跳出 flag = True; while循環,到print('end')
 9     begin += 1 #5(begin = 1+1)
10     time.sleep(1) #6
11 
12 print('end')       
1 begin = 1
2 
3 while True:
4     print('begin')
5     if begin == 10:
6         break #break跳出整個循環,而且不執行下面任何代碼
7     begin += 1

 

 continue

 終止當前循環,回到循環開始

continue實例

 1 while True:
 2     print('123')
 3     break
 4     print('456')
 5 
 6 >>>123 

8 while True: #1 #4 9 print('123') #2 #5 10 continue #3 #6 11 print('456') 12 13 >>>123 14 >>>123 15 >>>123 16 >>>123
#練習

#
輸出1-10之間的數字 不包含7 start = 1 while True: if start == 7: start += 1 #爲了跳出 start==7的循環無限continue,start+=1 = 8 continue #跳出本次循環,回到while True print(start) if start == 10 #當start == 10時 break #跳出程序循環 start += 1

i = 1
while i <= 10:
  if i != 7:
    print(i)
i += 1
 #練習

1
1 - 100相加(先循環獲取1-100的數,而後再設定) 2 3 (1) 獲取1-100的數字 4 start = 1 5 6 while True: 7 print(start) 8 if start == 100 9 break 10 start += 1 11 12 (213 sum = 0 14 start = 1 15 16 while True: 17 start = 1 18 19 while True: 20 print(start) 21 sum = sum +start 22 if start == 100 23 break 24 start += 1 25 #1+2+3+4+5+6...+100 26 print(sum)
相關文章
相關標籤/搜索