python指令碼語言初步學習
不錯的參考:http://blog.csdn.net/hitlion2008/article/details/9285785
前言:python目前有2.0,3.0兩個版本,其中2.0版本用的比較多,兩個版本開發出的程式碼不一樣,比較常見的指令碼語言還有shell,perl等。指令碼語言主要是為了縮短傳統的編寫、編譯、連結、執行(c語言,java語言),指令碼語言不需要走這四個過程,只需要呼叫的時候解釋或編譯,指令碼語言一般都有簡單易學易用等特點,python程式碼字尾以py結尾。
接寫來進入python指令碼語言的初步學習:
首先進入master節點,建立一個python_test資料夾
#ls
#cd python_test
#python//進入python環境,其中>>>代表命令直譯器
//退出python直譯器用quit()或者Ctrl+D
#touch 1.py //在python_test下建立一個新的python檔案
#cat 1.py
#vim 1.py
1)字串的輸出,這是一個類似C語言printf和Java中的String.format()的操作符,它能格式化字串,整數,浮點等型別:語句是:
formats % (var1, var2,....)
它返回的是一個String.
#!/usr/bin/python //指定python直譯器在哪裡,指定目錄
print "hello world"
name='zhangsan'
#print "bigdata study!,my name is %s" %(name)
print "bigdata study!,my name is", name
Esc :wq Enter//儲存退出
#python 1.py //執行python 檔案
#cat 1.py
輸出結果為:
bigdata study!,my name is zhangsan
2)函式
如何定義函式
def function_name(args):
function_body;
呼叫函式的方式function_name(formal_args):
#!/usr/bin/python
def print_name(name):
print "bigdate study!your name is", name
print_name('hahaha')
print_name('pig')
輸出結果為:
bigdate study!your name is hahaha
bigdate study!your name is pig
3)常用的資料結構
在java中常用的有hashmap,array(陣列),set(集合)
在python中對應的分別為:
hashmap->dict->{}
array->list->[]
set->set->set()
①dict
相當於Java中的HashMap,用於以Key/Value方式儲存的容器.建立方式為{key1: value1, key2: value2, ….}, 更改方式為dict[key] = new_value;索引方式為dict[key]. dict.keys()方法以List形式返回容器中所有的Key;dict.values()以List方式返回容器中的所有的Value
#!/usr/bin/python
color={"red":0.2,"green":0.4,"black":0.9}
print color
print color["red"]
輸出結果為:
{‘black’: 0.90000000000000002, ‘green’: 0.40000000000000002, ‘red’: 0.20000000000000001}
0.2
②list
#!/usr/bin/python
color_list=['red','white','blue']
print color_list
print color_list[2]
輸出為:
[‘red’, ‘white’, ‘blue’]
blue
③set
#!/usr/bin/python
a_set=set()
a_set.add('a')
a_set.add('b')
print a_set
輸出結果為:
set([‘a’, ‘b’])
4)分支語句
其中邏輯表示式可以加上括號(),也可以不加.但如果表示式裡面比較混亂,還是要加上括號,以提高清晰.但整體的邏輯表示式是可以不加的
格式為:
if expression:
blocks;
elif expression2:
blocks;
else:
blocks;
#!/usr/local/bin
a=1
if a>0:
print 'a gt 0'
elif a==0:
print 'a et 0'
else:
print 'a lt 0'
輸出結果為:
a gt 0
5)for迴圈
與Java中的foreach語法一樣, 遍歷List:
for var in list:
blocks;
① list的for迴圈
#!/usr/local/bin
for_list=[]
for_list.append('111')
for_list.append('222')
for_list.append('333')
for_list.append('444')
for value in for_list:
print value
輸出結果為:
111
222
333
444
②dict的for迴圈
#!/usr/local/bin
for_dict={}
for_dict['aaa']=1
for_dict['bbb']=2
for_dict['ccc']=3
for value in for_dict:
print value
輸出結果為:
aaa
bbb
ccc
由輸出結果可見,上述只能輸出鍵而不能輸出值,如何輸出鍵和值呢,修改程式碼如下:
#!/usr/local/bin
for_dict={}
for_dict['aaa']=1
for_dict['bbb']=2
for_dict['ccc']=3
for_dict['eee']=4
for key,value in for_dict.items():
print key+'======>'+str(value)
輸出結果為(顯然輸出結果不是按照key值進行輸出的):
eee======>4
aaa======>1
bbb======>2
ccc======>3
③針對set的for迴圈
#!/usr/local/bin
for_set=set()
for_set.add('a')
for_set.add('b')
for_set.add('c')
for_set.add('d')
for_set.add('e')
for value in for_set:
print value
輸出結果為:
c
b
e
d
複雜點的for迴圈
#!/usr/local/bin
sum=0
for value in range(1,11):
sum=sum+value//sum+=value
print sum
輸出結果為:
55
6)while迴圈
#!/usr/python/bin
cnt=2
while cnt>0:
print 'I love python'
cnt-=1
輸出結果為:
I love python
I love python
#!/usr/python/bin
i=1
while i<10:
i+=1//python不支援i++
if i%2>0:
continue
print i
輸出結果為:
2
4
6
8
10
7)字串string
字串就是一個字元的陣列,List的操作都可以對String直接使用.
①len(str)和擷取字串
#!/usr/python/bin
str='abvdefg'
print len(str)
print str[3:5]
print str[3:7]
輸出結果為:
7
de
defg
②小寫轉大寫
#!/usr/python/bin
str='aBCFvdefg'
print str.lower()
輸出結果為:
abcfvdefg
8)異常處理Exception ,try….catch
#!/usr/python/bin
try:
a=6
b=a/0
except Exception ,e:
print Exception,":",e
輸出結果為:
<type 'exceptions.Exception'> : integer division or modulo by zero
IOError
#!/usr/python/bin
try:
print '1111'
fs=open('testFile','r')
except IOError,e:
print 'The File does not exist',e
else:
print 'The File exists'
fs.close()
輸出結果為:
1111
The File does not exist [Errno 2] No such file or directory: ‘testFile’
對於這個結果,那我們建立一個新檔案testFile//touch testFile
再執行以上程式碼輸出結果為:
1111
The File exists
9)import module
#!/usr/python/bin
import math
print math.pow(2,3)//2的3次方
print math.floor(4.9)//取整數
print round(4.9)//四捨五入
輸出結果為:
8.0
4.0
5.0
#!/usr/python/bin
import random
items=[1,2,3,4,5,6]
random.shuffle(items)
print items
輸出結果為:
[1, 4, 3, 2, 5, 6]
#!/usr/python/bin
import random
a=random.randint(0,3)
print a
輸出結果為:1
#!/usr/python/bin
import random
a_list=random.sample('abcdefg',3)//在abcdefg裡面隨機抽樣
print a_list
輸出結果為:[‘g’, ‘e’, ‘f’]