python簡介及基礎

一、介紹

python的創始人爲吉多·範羅蘇姆(Guido van Rossum)。1989年的聖誕節期間,吉多·範羅蘇姆爲了在阿姆斯特丹打發時間,決心開發一個新的腳本解釋程序,作爲ABC語言的一種繼承。 Python崇尚優美、清晰、簡單,是一個優秀並廣泛使用的語言。


二、Python安裝

  • windows
    1、下載安裝包
    https://www.python.org/downloads/
    2、安裝
    默認安裝路徑:C:\python27
    3、配置環境變量
    【右鍵計算機】--》【屬性】--》【高級系統設置】--》【高級】--》【環境變量】--》【在第二個內容框中找到 變量名爲Path 的一行,雙擊】 --> 【Python安裝目錄追加到變值值中,用 ; 分割】
    如:原來的值;C:\python27,切記前面有分號
  • linux
    無需安裝,原裝Python環境
    ps:如果自帶2.6,請更新至2.7
    如果要安裝3.0,yum安裝

三、Hello World程序

在linux 下創建一個文件叫hello.py,並輸入

[root@wangxian pylearn]# cat hello.py 
print("Hello World!")
[root@wangxian pylearn]# python hello.py 
Hello World!
  • 指定解釋器和字符編碼
    #!/usr/bin/env python
    #-- coding:utf-8 -- python2.x才需要

四、變量和註釋

name = "Wang Xuan"
聲明瞭一個變量name,值爲:"Wang Xuan"

  • 變量定義的規則
    變量名只能是 字母、數字或下劃線的任意組合
    變量名的第一個字符不能是數字
    以下關鍵字不能聲明爲變量名
    ['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']

  • 變量的賦值
    name = "Phone"
    name2 = name
    print(name,name2)
    name = "Jack"
    print("What is the value of name2 now?")
  • 註釋
    當行注視:# 被註釋內容
    多行註釋:""" 被註釋內容 """

五、用戶輸入

#!/usr/bin/env python
#-*- coding:utf-8 -*-

import getpass
username =input("username:")
password =getpass.getpass("password:")
print(username,password)

六、模塊

Python的強大之處在於他有非常豐富和強大的標準庫和第三方庫,幾乎你想實現的任何功能都有相應的Python庫支持

  • sys
#!/usr/bin/env python
#-*- coding: utf-8 -*-

import sys
print(sys.argv)
#輸出
$ python test.py helo world
['test.py', 'helo', 'world']  #把執行腳本時傳遞的參數獲取到了
  • os
#!/usr/bin/env python
#-*- coding: utf-8 -*-

import os 
os.system("df -h") #調用系統命令
  • 完全結合一下  

    import os,sys
    os.system(''.join(sys.argv[1:])) #把用戶的輸入的參數當作一條命令交給os.system來執行
  • python tab補全模塊
    #!/usr/bin/env python 
    #python startup file 
    import sys
    import readline
    import rlcompleter
    import atexit
    import os
    #tab completion 
    readline.parse_and_bind('tab: complete')
    #history file 
    histfile = os.path.join(os.environ['HOME'], '.pythonhistory')
    try:
    readline.read_history_file(histfile)
    except IOError:
    pass
    atexit.register(readline.write_history_file, histfile)
    del os, histfile, readline, rlcompleter

七、數據類型初識

1、數字

2 是一個整數的例子。
長整數 不過是大一些的整數。
3.23和52.3E-4是浮點數的例子。E標記表示10的冪。在這裏,52.3E-4表示52.3 * 10-4。
(-5+4j)和(2.3-4.6j)是複數的例子,其中-5,4爲實數,j爲虛數,數學中表示覆數是什麼?。
  • int(整型)
      在32位機器上,整數的位數爲32位,取值範圍爲-231~231-1,即-2147483648~2147483647
      在64位系統上,整數的位數爲64位,取值範圍爲-263~263-1,即-9223372036854775808~9223372036854775807
  • long(長整型)
      跟C語言不同,Python的長整數沒有指定位寬,即:Python沒有限制長整數數值的大小,但實際上由於機器內存有限,我們使用的長整數數值不可能無限大。
      注意,自從Python2.2起,如果整數發生溢出,Python會自動將整數數據轉換爲長整數,所以如今在長整數數據後面不加字母L也不會導致嚴重後果了。
    Python3之後已經不轉換了
  • float(浮點型)
    先掃盲 http://www.cnblogs.com/alex3714/articles/5895848.html
      浮點數用來處理實數,即帶有小數的數字。類似於C語言中的double類型,佔8個字節(64位),其中52位表示底,11位表示指數,剩下的一位表示符號。
    complex(複數)
      複數由實數部分和虛數部分組成,一般形式爲x+yj,其中的x是複數的實數部分,y是複數的虛數部分,這裏的x和y都是實數。
    注:Python中存在小數字池:-5 ~ 257

2、布爾值
  真或假
  1 或 0
3、字符串

"hello world"

萬惡的字符串拼接:
  python中的字符串在C語言中體現爲是一個字符數組,每次創建字符串時候需要在內存中開闢一塊連續的空,並且一旦需要修改字符串的話,就需要再次開闢空間,萬惡的+號每出現一次就會在內從中重新開闢一塊空間。
字符串格式化輸出
name = "alex"
print "i am %s " % name
#輸出: i am alex

PS: 字符串是 %s;整數 %d;浮點數%f
字符串常用功能:

移除空白
分割
長度
索引
切片

4、列表
創建列表:
name_list = ['alex', 'seven', 'eric']

name_list = list(['alex', 'seven', 'eric'])

基本操作:

索引
切片
追加
刪除
長度
切片
循環
包含

5、元組(不可變列表)
創建元組:
ages = (11, 22, 33, 44, 55)

ages = tuple((11, 22, 33, 44, 55))

6、字典(無序)
創建字典:
person = {"name": "mr.wu", 'age': 18}

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

常用操作:

索引
新增
刪除
鍵、值、鍵值對
循環
長度

八、數據運算

算數運算:
python簡介及基礎

比較運算:
python簡介及基礎
賦值運算:
python簡介及基礎
邏輯運算:
python簡介及基礎
成員運算:
python簡介及基礎
身份運算:
python簡介及基礎
位運算:
python簡介及基礎
運算符優先級:
python簡介及基礎


九、表達式if...else

例一

# 驗證用戶名和密碼
#     如果錯誤,則輸出用戶名或密碼錯誤
#     如果成功,則輸出 歡迎,XXX!
user = 'wangxian'
passwd = 'shajiba'
username = input("username:")
password = input("password:")

if user == username:
    print("username is correct...")
    if passwd == password:
        print("welcome login...")
    else:
        print("password is invalid")
else:
    print("username is invalid,get out!")

例二

#!/usr/bin/env python
# -*- coding:utf-8 -*-

age = 22
guess_num = int(input("input your guess num:"))
if guess_num ==age:
    print("congratulations,you got it.")
elif guess_num > age:
    print("think smaller!")
else:
    print("think big!")

外層變量,可以被內層代碼使用
內層變量,不應被外層代碼使用


十、for循環

最簡單的循環10次

#_*_coding:utf-8_*_

for i in range(10):
    print("count:", i )

輸出:

count: 0
count: 1
count: 2
count: 3
count: 4
count: 5
count: 6
count: 7
count: 8
count: 9

需求一:還是上面的程序,但是遇到小於5的循環次數就不走了,直接跳入下一次循環

for i in range(10):
    if i<5:
        continue #不往下走了,直接進入下一次count
    print("count:", i )

需求二:還是上面的程序,但是遇到大於5的循環次數就不走了,直接退出

for i in range(10):
    if i>5:
        break #不往下走了,直接跳出整個count
    print("count:", i )

十一、while循環

死循環

count = 0
while True:
    print("停不下來...",count)
    count +=1

上面的代碼循環100次就退出

count = 0
while True:
    print("停不下來...",count)
    count +=1
    if count == 100:
        print("給我停下來..")
        break

回到上面for 循環的例子,如何實現讓用戶不斷的猜年齡,但只給最多3次機會,再猜不對就退出程序。

#!/usr/bin/env python
# -*- coding: utf-8 -*-

my_age = 28

count = 0
while count < 3:
    user_input = int(input("input your guess num:"))

    if user_input == my_age:
        print("Congratulations, you got it !")
        break
    elif user_input < my_age:
        print("think bigger!")
    else:
        print("think smaller!")
    count += 1 #每次loop 計數器+1
print("猜這麼多次都不對,你個笨蛋.")

enumrate

爲可迭代的對象添加序號
li = [11,22,33]
for k,v in enumerate(li, 1):
print(k,v)

range和xrange

指定範圍,生成指定的數字
print range(1, 10)
#結果:[1, 2, 3, 4, 5, 6, 7, 8, 9]

print range(1, 10, 2)
#結果:[1, 3, 5, 7, 9]

print range(30, 0, -2)
#結果:[30, 28, 26, 24, 22, 20, 18, 16, 14, 12, 10, 8, 6, 4, 2]


補充

  • 三元運算

result = 值1 if 條件 else 值2

如果條件爲真:result = 值1
如果條件爲假:result = 值2

  • 進制

    二進制,01
    八進制,01234567
    十進制,0123456789
    十六進制,0123456789ABCDEF 二進制到16進制轉換http://jingyan.baidu.com/album/47a29f24292608c0142399cb.html?picindex=1

    計算機內存地址和爲什麼用16進制?
    爲什麼用16進制
    1、計算機硬件是0101二進制的,16進制剛好是2的倍數,更容易表達一個命令或者數據。十六進制更簡短,因爲換算的時候一位16進制數可以頂4位2進制數,也就是一個字節(8位進制可以用兩個16進製表示)
    2、最早規定ASCII字符集採用的就是8bit(後期擴展了,但是基礎單位還是8bit),8bit用2個16進制直接就能表達出來,不管閱讀還是存儲都比其他進制要方便
    3、計算機中CPU運算也是遵照ASCII字符集,以16、32、64的這樣的方式在發展,因此數據交換的時候16進制也顯得更好
    4、爲了統一規範,CPU、內存、硬盤我們看到都是採用的16進制計算

    16進制用在哪裏
    1、網絡編程,數據交換的時候需要對字節進行解析都是一個byte一個byte的處理,1個byte可以用0xFF兩個16進制來表達。通過網絡抓包,可以看到數據是通過16進制傳輸的。
    2、數據存儲,存儲到硬件中是0101的方式,存儲到系統中的表達方式都是byte方式

    3、一些常用值的定義,比如:我們經常用到的html中color表達,就是用的16進制方式,4個16進制位可以表達好幾百萬的顏色信息。

  • 一切皆對象
    對於Python,一切事物都是對象,對象基於類創建
    python簡介及基礎
    值都是對象,並且是根據不同的類生成的對象。
    python簡介及基礎
    python簡介及基礎
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章