python之程序结构

1、控制结构

if a>b: #注释  ,多行注释可以用 '''多行注释'''   
    result=a-b     
elif a<b:     
    result=b-a     
else:     
    result=0    
  
while a<100:
    if a==30:
        continue
    if a>50:
        break
    print(a)
    pass #nop
  
while a<100:  
    print(a)   
  
for eachnum in [1,2,3]:  
    print(eachnum)   
  
def add(a=1,b=2):     
    return (a+b)   

2、函数结构

def addnum (a,b=1,*c,**d): #位置参数,默认参数,元组参数,字典参数,顺序不能改变  
    print "a is "+str(a)+" b is "+str(b)  
    sum=a+b;  
  
    print "para in c"         
    for every_para in c:  
        print every_para  
        sum=sum+every_para  
  
    print "para in d"  
    for every_key in d.keys():  
        print every_key+" value "+str(d[every_key])  
        sum=sum+d[every_key]  
  
    return sum  
          
#print addnum(1,2,3,4,key1=5,key2=6)  
  
#单行函数可以用表达式表示  
mulnum=lambda a,b=2:a*b  
print mulnum(10)  

3、类组织

class person:  
    "this is a person" #类文档  
      
    country="china" #类属性  
  
    def __init__ (self,name,age=28): #构造函数,用默认参数来实现函数重载  
        self.name=name #实例属性不用预先定义,实际上可以随时添加 
        self.age=age  
      
    def sayhello (self):实例方法,注意有self参数  
        print "hello,i am a person"  
         
 
    @classmethod  
    def sayhello (cls):  
        print "hello word "+cls.country  
         
    @staticmethod  
    def sayhello ():  
        print "hi word"  
          
person1=person("justsong")  
  
  
class student(person):  
    def __init__ (self,name,age=28,grade=3):  
        person.__init__(self,name,age)  
        self.grade=grade  
          
student1=student("cy") #静态方法和类方法,属性都被继承  
student1.sayhello()  
      
  
#方法的查找顺序是 静态方法---类方法---实例方法  
#属性的查找顺序是 实例属性---类属性---基类属性 

4、模块组织

python的模块就是后缀为py或者pyc的python文件,python的包就是目录。

import sys  
import mod2 #一个模块对应着一个文件,mod2.py必须位于搜索路径中的一个  
#因为模块名和文件名相同,所以就依赖于文件系统来保证全局名称空间中模块名的唯一性  
from mod3 import mod3_b#引入名称空间  
import mod4 as m4 #模块别名,m4=mod4也可以  
from subdir import mod5 #导入一个包实际上是导入了__init__.py  
  
print "import path:"  
for import_path in sys.path:  
    print import_path  
  
print mod2.mod2_a  
print mod3_b #已经把mod3导入到当前模块的命名空间  
print m4.mod4_a  
print mod5.mod5_a  

5、异常处理

try:  
    #a=2/0  
    raise RuntimeError,"myfirsterror"  
  
except ZeroDivisionError,err:#err为错误信息,之前为错误类型  
    print ZeroDivisionError,err  
  
except RuntimeError,err:  
    print RuntimeError,err  
  
finally:  
    print "good!"  



发布了46 篇原创文章 · 获赞 7 · 访问量 8万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览