Python命令 (if __name__=="__main__":)

1. 語法

1.以#號開頭的語句是註釋

2.請務必注意,Python程序是大小寫敏感的,如果寫錯了大小寫,程序會報錯。

3.按照約定俗成的管理,應該始終堅持使用4個空格的縮進。

4.當語句以冒號:結尾時,縮進的語句視爲代碼塊。

1.縮進方式,一般是4個空格,兼容tab鍵


如果你對python感興趣,我這有個學習Python基地,裏面有很多學習資料,感興趣的+Q羣:688244617


if a>=0;

    print(a)

else:

    print(a)

2.註釋#

3.Python 對大小寫敏感

2.基本數據類型

1.空值 None

2./n換行,/t tab鍵,// 表示/

整數 -1,0,1 0xff00;
浮點數 1.23, -9.01, 1.23e9[1.23x109];
字符串 ‘hello’,“python”;
布爾值 True,False[布爾值可以用and、or和not運算];

3.List 列表 (有序集合)

1.list裏面的元素的數據類型也可以不同,list元素也可以是另一個list(s[2][1]) classmates = [‘Michael’, ‘Bob’, ‘Tracy’] L = [‘Apple’, 123, True]

2.classmates.append(‘a’)

classmates.insert(1,’jack’)

classmates.pop()刪除末尾

classmates.pop(i),刪除指定元素

classmates[1] = ‘sarah’

tuple 有序列表叫元祖;.與list 相似,但是tuple初始化後就不能修改。

遍歷List:


def iterList():
    list = ['name','address','name2','addres2','name3','adress3']
    for i,v in  enumerate(list):
        print i,v
   
    #dict = {"a":1,"b":"adf","c":"shide","d":"afda"}
   

3.1. tuple

元組

tup = ('wo','yao')
    for item in tup:
        print(item)

4.dict (like java’s hashmap)

d = {‘michal’:95,’bob’:75}

d[‘jack’]=90

獲取value方式:
1、d[‘Michael’]如果key不存在,map讀取value就會報錯;
2、d.get(‘Thomas’) 或者 d.get(‘Thomas’,0) 不存在時返回None或者預設值.
如果刪除一個key,用pop(key)方法,對應的value也會從dict中刪除 d.pop(‘Bob’)

遍歷dict :

def iterDict():
    dict={'id':123,"name":"afd","sex":"boy"}
    for item in dict:
        print(item)
    #for item in dict.values():
        #print(item)

    for i in enumerate(dict):
        print i

5.Set ( s = set([1, 2, 3]) )

s = set([1, 2, 3]) set中,沒有重複的key 重複元素在set中自動被過濾 s = set([1, 1, 2, 2, 3, 3])
add(key)方法可以添加元素到set中
remove(key)方法可以刪除元素:
set和dict的唯一區別僅在於沒有存儲對應的value,但是,set的原理和dict一樣,所以,同樣不可以放入可變對象,因爲無法判斷兩個可變對象是否相等,也就無法保證set內部“不會有重複元素”。
*不可變對象

遍歷Set:

def iterSet():
    s = set([1,2,3])
    for item in s:
        print(item)
        
    for i in enumerate(s):
        print (i)

6.判斷語句

age = 3
if age >= 18:
    print('adult')
elif age >= 6:
    print('teenager')
else:
    print(‘kid')

7.循環語句

def whileTest():
    list = ['name','address']
    for item in list:
        print(item)
        
    tup = ('wo','yao')
    for item in tup:
        print(item)
        
    click = 10
    while click > 0 :
        print (click)
        click -=1
        if click == 8 :
            #return
            continue
        if click < 5 :
            break   

8.函數

#函數聲明

def my_abs(x):
    if x >= 0:
        return x
    else:
        return -x
#默認值
def move(x,y,step,angle = 30):
    nx = x + step * math.cos(angle)
    ny = y - step * math.sin(angle)
    return nx,ny
#空函數
def nop():
    pass

#返回值
def showlist(list):
    return 1,1,2,3
**9.切片**

def iter():
    list = ['name','address','name2','addres2','name3','adress3']
    print(list[1:4])
    print (list[-3:-1])
    print(list[1:4:2])
    print(list[::2])
    print(list[::])
    print(list)
**10. 列表生成器:**

#列表生成器
def listGenerate():
    list = [x for x in range (1,3) ]
    print (list)
    print (type(range(1,11)))
    
    lists = [x*y for x in range(1,3) for y in range(1,3)] #笛卡爾積
    print(lists)
    
    listss = [x*y for x in range(1,11) for y in range(1,11) if x>y] #笛卡爾積
    print (listss)
    gen = (x*y for x in range(1,11) for y in range(1,11) if x>y)
    print (type(gen))
    print(gen.next()) #生成器用來遍歷較小的集合
**11.生成器:**

#生成器
def gen():
    listss = [x*y for x in range(1,3) for y in range(1,3) if x>y] #笛卡爾積
    
    gen = (x*y for x in range(1,3) for y in range(1,3) )
   
    print(gen.next()) #生成器用來遍歷較小的集合
    for g in gen:
        print(g)
        
    list = ['name','address','name2','addres2','name3','adress3']
    gen = (x+'1' for x in list if x == "name") 
    for g in gen :
        print (g)
        
    uv = {'id':12,'uv':3000,'id':13,'uv':30001,'id':14,'uv':30002}
    pv = {'id':12,'uv':3000,'id':13,'uv':30001,'id':14,'uv':30002}
    print(type(uv))
    
**12.異常處理:**

#異常處理
def exceptionTest():
    try:
         i = 10
         j = i/0
         print 'end try'
    except Exception,e:
        print e
        print 'error'
        
    finally:
        print 'finally'

13.讀取文件

14.讀取properties

ConfigParser 是用來讀取配置文件的包。配置文件的格式如下:中括號“[ ]”內包含的爲section。緊接着section 爲類似於key-value 的options 的配置內容。
ConfigParser 初始工作
cf = ConfigParser.ConfigParser()
cf.read(“配置文件名”)
獲取所有sections
s = cf.sections()
獲取指定section 的options。
o = cf.options(“db”)
獲取指定section 的配置信息
v = cf.items(“db”)
按照類型讀取指定section 的option 信息
db_host = cf.get(“db”, “db_host”)
db_port = cf.getint(“db”, “db_port”)
設置某個option 的值
cf.set(“db”, “db_pass”, “zhaowei”)
cf.write(open(“test.conf”, “w”))
添加一個section
cf.add_section(‘liuqing’)
cf.write(open(“test.conf”, “w”))
移除section 或者option
cf.remove_option(‘liuqing’,‘int’)
cf.remove_section(‘liuqing’)
cf.write(open(“test.conf”, “w”))

例子:

#pro
import ConfigParser

cp=ConfigParser.ConfigParser()
cp.read('demo.txt')

'''
print(cp.sections())

print(cp.options('db'))
print(cp.items('db'))

print(type(cp.get('prp','prp.hu')))
print(cp.getint('db','db.name'))
'''

#cp.add_section('dbnew')
#cp.set('dbnew','dbnew.ip','192.168.1.1')


#cp.remove_option('dbnew','dbnew.ip')
cp.remove_section('dbnew')

cp.write(open('demo.txt','w'))
print(cp.sections())
 

demo.txt

[ddshow]
ip = 10.100.1.1
db.name = zhangsan
db.pwd = lisi

[ddshow_stat]
ip = 10.100.1.2
db.name = zhangsan2
db.pwd = lisi2

15.發送郵件

#mail

import smtplib
from email.mime.text import MIMEText

sender="[email protected]"
receiver="[email protected]"
smptserver="mail.youku.com"

username="wuzhanwei"
password="WSWZW!!)2"

smtp=smtplib.SMTP()
smtp.connect(smptserver)
smtp.login(username,password)

##
msg=MIMEText('<html>hello</html>','html','utf-8')
msg['Subject']='sub'
##

smtp.sendmail(sender,receiver,msg.as_string())

smtp.quit()

16.訪問數據庫

17.Python編寫mapreduce

mapper:

import sys

for line in sys.stdin:
    line=line.strip()
    words=line.split()
    for word in words:
        print "%s\t%s" %(word,1)

reducer:

import sys
current_word=None
current_count=0
word=None
for line in sys.stdin:
    line=line.strip()
    word,count=line.split('\t',1)
    try:
        count=int(count)
    except Exception :
        continue
    if current_word==word:
        current_count+=count
    else:
        if current_word:
            print "%s\t%s" %(current_word,current_count)
        current_count=count
        current_word=word
if word==current_word:
    print "%s\t%s" %(current_word,current_count)

mr:

import sys
for line in sys.stdin:
    line =line.strip()
    words=line.split()
    for word in words:
        print '%s\t%s' %(word,1)
 

111.直接運行py 文件

#!/usr/bin/env python
name = raw_input()
print('hello,', name)

然後,通過命令給hello.py以執行權限:sudo chmod a+x hello.py
就可以直接運行hello.py了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章