zoukankan      html  css  js  c++  java
  • Python命令 (if __name__=="__main__":)

    1. 语法

    1.以#号开头的语句是注释

    2.请务必注意,Python程序是大小写敏感的,如果写错了大小写,程序会报错。

    3.按照约定俗成的管理,应该始终坚持使用4个空格的缩进。

    4.当语句以冒号:结尾时,缩进的语句视为代码块。

    1.缩进方式,一般是4个空格,兼容tab键

    if a>=0;

        print(a)

    else:

        print(a)

    2.注释#

    3.Python 对大小写敏感

    2.基本数据类型

    1.空值 None

    2./n换行,/t tab键,// 表示/

    3.

    整数 -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="wuzhanwei@youku.com"
    receiver="wzhwei@126.com"
    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	%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('	',1)
        try:
            count=int(count)
        except Exception :
            continue
        if current_word==word:
            current_count+=count
        else:
            if current_word:
                print "%s	%s" %(current_word,current_count)
            current_count=count
            current_word=word
    if word==current_word:
        print "%s	%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	%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了

  • 相关阅读:
    linux安装vsftpd服务器
    安装Twisted
    py文件转换为exe文件
    Python实现批量新建SecureCRT Session
    常见的字符编码
    心得 : 面向对象和面向过程的区别
    Apache配置HTTPS的过程小记
    关于oracle的sequence和trigger。
    oracle在drop表时要注意
    mysql中整数类型后面的数字,是不是指定这个字段的长度?比如int(11),11代表11个字节吗?
  • 原文地址:https://www.cnblogs.com/chaoren399/p/4839513.html
Copyright © 2011-2022 走看看