python的一些基礎知識
1.首先,我的python是在linux環境下編譯的,windows下的暫時沒弄,首先先看看linux下有python環境沒,不過一般的都是自帶的,沒有的話安裝python
1.使用包管理器:
作業系統為Debian Linux (一般都是這個系統)命令:apt-get install python
如果是Gentoo Linux 就用emerge python
2.從原始檔編譯
首先進入下載頁面,下載原始碼,下載的副檔名為.tgz的檔案,放入一個位置
然後用tar xzvf解壓包 解壓好後進入其目錄下cd Python-2.5(以2.5的為例)
然後./configure
make
make install
然後在終端裡直接輸入python進入python
python較比之c來說要簡潔的多,直接輸入就可以輸出的
#!/usr/bin/python
這個就是編譯python檔案的時候的頭(檔案都是以.py結尾的)
chmod +x *.py
寫完之後要給這個檔案賦予許可權,x代表可執行,也可以直接給777這種,還有就是a+x這種a代表所有的使用者和群組
./*.py
賦予許可權後就可以執行了,還可以python *.py這樣執行
互動式python直譯器可以當強大的計算器使用
python 可以處理非常大的數>>> 1-2 -1 >>> 1+2 3 >>> 3*3 9 >>> 1/2 0 >>> 1.0/2.0 0.5
>>> 100000000000000000000000
100000000000000000000000L
>>> 100000000000000000000000L
100000000000000000000000L
變數
這個和其他程式語言沒有任何不同,如果你從沒接觸過程式,相信你也很容易理解。
>>> x = 3
>>> x*2
>>> x = 5
>>> x * 2
把3 賦值給 x ,那麼x 變數現在的值就是3, x 乘以 2 結果是6 ,我又把5 賦值給了 x
定義變數規則:不能以數字開頭,可以包含字母、數字和下劃線。
語句
實際上最開始我們已經講了語句 print 就是列印輸出語句。
>>> 2*2
4
>>> print 2*2
4
行和縮排
學習Python與其他語言最大的區別就是,Python的程式碼塊不使用大括號({})來控制類,函式以及其他邏輯判斷。python最具特色的就是用縮排來寫模組。
縮排的空白數量是可變的,但是所有程式碼塊語句必須包含相同的縮排空白數量,這個必須嚴格執行。
if True:
print "True"
else:
print "False"
獲取使用者輸入
有使用程式執行的過程需要使用者輸入,根據使用者輸入的內容繼續執行。
>>>input
>>>a = input("input:")
input:123# 輸入整數
>>>raw_input(把輸入當作原始資料,然後將其放入字串中)要求使用者帶著引號輸入他們的名字的時候就可以用這個函式
列表和元組
元組通常由不同的資料,而列表是相同的資料佇列.元組表示的是結構,而列表表示的是順序.舉個例子來講:當你想記錄棋盤上一個子的座標時,應該使用元組;當你想記錄棋盤上所有的子的座標(一系列相同的資料)時,應該使用列表
list(分片函式)通過 list(seq) 函式把一個序列型別轉換成一個列表。
>>> list('hello')
['h', 'e', 'l', 'l', 'o']
del(刪除)
>>> names = ['Alice', 'Beth', 'Cecil', 'Dee-Dee', 'Earl']
>>> del names[2]
>>> names
['Alice', 'Beth', 'Dee-Dee', 'Earl']
append(追加單個) append方法用於在列表末尾追加新的物件
>>> lst = [1, 2, 3]
>>> lst.append(4)
>>> lst
[1, 2, 3, 4]
extend(追加多個)extend 方法可以在列表的末尾一次性追加另一個序列中的多個值。
>>> a = [1, 2, 3]
>>> b = [4, 5, 6]
>>> a.extend(b)
>>> a
[1, 2, 3, 4, 5, 6]
count(計數) count 方法統計某個元素在列表中出現的次數:
>>> ['to', 'be', 'or', 'not', 'to', 'be'].count('to')
2
>>> x = [[1,2], 1, 1, [2, 1, [1, 2]]]
>>> x.count(1)
2
>>> x.count([1,2])
1
index(索引位置)用於從列表中找出某個值第一個匹配項的索引位置:
>>> numbers = [1, 2, 3, 5, 6, 7]
>>> numbers.insert(3, 'four')
>>> numbers
[1, 2, 3, 'four', 5, 6, 7]
insert(插入)用於將物件插入到列表中:
>>> numbers = [1, 2, 3, 5, 6, 7]
>>> numbers.insert(3, 'four')
>>> numbers
[1, 2, 3, 'four', 5, 6, 7]
pop(移除函式(預設為最後一個))pop 方法會移除列表中的一個元素(預設是最後一個),並且返回該元素的值:
>>> x = [1, 2, 3]
>>> x.pop()
3
>>> x
[1, 2]
>>> x.pop(0)
1
>>> x
[2]
remove(移除) remove 方法用於移除列表中某個值的第一個匹配項:
>>> x = ['to', 'be', 'or', 'not', 'to', 'be']
>>> x.remove('be')
>>> x
['to', 'or', 'not', 'to', 'be']
>>> x.remove('bee')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: list.remove(x): x not in list
reverse(反向存放)reverse 方法將列表中的元素反向存放。
>>> x = [1, 2, 3]
>>> x.reverse()
>>> x
[3, 2, 1]
sort(排序)sort 方法用於在原位置對列表進行排序。
>>> x = [4, 6, 2, 1, 7, 9]
>>> x.sort()
>>> x
[1, 2, 4, 6, 7, 9]
tuple(轉換元組)tuple函式的功能與list函式基本上是一樣的:以一個序列作為引數並把它轉化為元組。
>>> tuple([1, 2, 3])
(1, 2, 3)
find(查詢 返回字串所在位置的最左端索引)
#查詢字串'dd'第一次出現的位置
>>> 'acddl123'.find('dd')
2
#查詢第一次出現空格的位置
>>> 'acdd l1 23'.find(' ')
4
#指定查詢的起始位置和結束位置
>>> 'acdd l1 23'.find(' ',3 ,6)
4
join(split的逆方法 將序列合成字串)
#!/usr/bin/python
str = "-";
seq = ("a", "b", "c"); # 字串序列
print str.join( seq );
以上例項輸出結果如下:
a-b-c
>>> a = ''
>>> a.join(['1','2','3'])
123
split(join的逆方法,將字串分割成序列)
#!/usr/bin/python
str = "Line1-abcdef \nLine2-abc \nLine4-abcd";
print str.split( );
print str.split(' ', 1 );
以上例項輸出結果如下:
['Line1-abcdef', 'Line2-abc', 'Line4-abcd']
['Line1-abcdef', '\nLine2-abc \nLine4-abcd']
lower(將大寫字母變成小寫字母)
>>>'Trondheim Hammer Dance',lower()
'trondheim hammer dance'
replace(替換字串)
>>>'This is a test'.replace('is','eez')
'Theez eez a test'
strip(除去兩邊的空格)
>>> a = ' 123 '
>>> a.strip()
'123'
translate(替換單個字元,可以多個替換)
#!/usr/bin/python
from string import maketrans # 引用 maketrans 函式。
intab = "aeiou"
outtab = "12345"
trantab = maketrans(intab, outtab)
str = "this is string example....wow!!!";
print str.translate(trantab);
以上例項輸出結果如下:
th3s 3s str3ng 2x1mpl2....w4w!!!
字典
clear(清除字典中所有的項)
#!/usr/bin/python
dict = {'Name': 'Zara', 'Age': 7};
print "Start Len : %d" % len(dict)
dict.clear()
print "End Len : %d" % len(dict)
以上例項輸出結果為:
Start Len : 2
End Len : 0
copy(shallow copy淺複製是原本)
#!/usr/bin/python
dict1 = {'Name': 'Zara', 'Age': 7};
dict2 = dict1.copy()
print "New Dictinary : %s" % str(dict2)
以上例項輸出結果為:
New Dictinary : {'Age': 7, 'Name': 'Zara'}
copy(deep copy深複製from copy import deepcopy)
#!/usr/bin/python
# -*- coding: UTF-8 -*-
dict1 = {'user':'runoob','num':[1,2,3]}
dict2 = dict1 # 淺拷貝: 引用物件
dict3 = dict1.copy() # 淺拷貝:深拷貝父物件(一級目錄),子物件(二級目錄)不拷貝,還是引用
# 修改 data 資料
dict1['user']='root'
dict1['num'].remove(1)
# 輸出結果
print(dict1)
print(dict2)
print(dict3)
例項中 dict2 其實是 dict1 的引用(別名),所以輸出結果都是一致的,dict3 父物件進行了深拷貝,不會隨dict1 修改而修改,子物件是淺拷貝所以隨 dict1 的修改而修改。
{'num': [2, 3], 'user': 'root'}
{'num': [2, 3], 'user': 'root'}
{'num': [2, 3], 'user': 'runoob'}
fromkeys(建立新的字典值為None)
#!/usr/bin/python
seq = ('name', 'age', 'sex')
dict = dict.fromkeys(seq)
print "New Dictionary : %s" % str(dict)
dict = dict.fromkeys(seq, 10)
print "New Dictionary : %s" % str(dict)
以上例項輸出結果為:
New Dictionary : {'age': None, 'name': None, 'sex': None}
New Dictionary : {'age': 10, 'name': 10, 'sex': 10}
get(訪問字典) get() 函式返回指定鍵的值,如果值不在字典中返回預設值。
#!/usr/bin/python
dict = {'Name': 'Zara', 'Age': 27}
print "Value : %s" % dict.get('Age')
print "Value : %s" % dict.get('Sex', "Never")
以上例項輸出結果為:
Value : 27
Value : Never
has_key(檢查是否有給出的鍵, 如果鍵在字典dict裡返回true,否則返回false)
#!/usr/bin/python
dict = {'Name': 'Zara', 'Age': 7}
print "Value : %s" % dict.has_key('Age')
print "Value : %s" % dict.has_key('Sex')
以上例項輸出結果為:
Value : True
Value : False
items(將所有的字典以列表方式返回)
#!/usr/bin/python
# coding=utf-8
dict = {'Google': 'www.google.com', 'Runoob': 'www.runoob.com', 'taobao': 'www.taobao.com'}
print "字典值 : %s" % dict.items()
# 遍歷字典列表
for key,values in dict.items():
print key,values
以上例項輸出結果為:
字典值 : [('Google', 'www.google.com'), ('taobao', 'www.taobao.com'), ('Runoob', 'www.runoob.com')]
Google www.google.com
taobao www.taobao.com
Runoob www.runoob.com
iteritems(返回一個迭代器)
keys(將字典中的鍵以列表的形式返回)
>>> x = {'title':'python web site','url':'www.iplaypy.com'}
>>> x.items()
[('url', 'www.iplaypy.com'), ('title', 'python web site')]
>>> a=x.items()
>>> a
[('url', 'www.iplaypy.com'), ('title', 'python web site')]
>>> type(a)
<type 'list'>
>>> f = x.iteritems()
>>> f
<dictionary-itemiterator object at 0xb74d5e3c>
>>> type(f)
<type 'dictionary-itemiterator'> #字典項的迭代器
iterkeys(返回針對鍵的迭代器)
pop(獲得對應的於給定鍵的值,然後移除鍵—值)
>>>a=[1,2,3,4]
>>>print a.pop()#預設刪除最後一個物件,並輸出
>>>print a
4
[1,2,3]
popitem(移除隨機的鍵—值)
#!/usr/bin/python3
site= {'name': '菜鳥教程', 'alexa': 10000, 'url': 'www.runoob.com'}
pop_obj=site.popitem()
print(pop_obj)
print(site)
輸出結果為:
('url', 'www.runoob.com')
{'name': '菜鳥教程', 'alexa': 10000}
setdefault(能獲得與給定鍵相關聯的值)
#!/usr/bin/python
# -*- coding: UTF-8 -*-
dict = {'runoob': '菜鳥教程', 'google': 'Google 搜尋'}
print "Value : %s" % dict.setdefault('runoob', None)
print "Value : %s" % dict.setdefault('Taobao', '淘寶')
以上例項輸出結果為:
Value : 菜鳥教程
Value : 淘寶
update(利用一個字典更新另一個字典)
#!/usr/bin/python
dict = {'Name': 'Zara', 'Age': 7}
dict2 = {'Sex': 'female' }
dict.update(dict2)
print "Value : %s" % dict
以上例項輸出結果為:
Value : {'Age': 7, 'Name': 'Zara', 'Sex': 'female'}
values(以列表的形式返回字典中的值)
#!/usr/bin/python
dict = {'Name': 'Zara', 'Age': 7}
print "Value : %s" % dict.values()
以上例項輸出結果為:
Value : [7, 'Zara']
itervalues(返回字典值的迭代器)
抽象
callable(用來判斷函式是否可呼叫)
def(建立函式)
現在就看了這麼多,先整理出來了,不喜勿噴