python 《核心编程》 1,2章

#encoding=utf-8
print('hello %s,world %d') %("ytwang",1)

num = raw_input("enter a number:")
print 'doubling your number :%d' % (int(num)*2)

print -2*4+3**2
#

#运算符 快速注释ctrl+shift+/
print 2<4
2 == 4
2 > 4
6.2 <= 6
6.2 <= 6.2
6.2 <=6.3

#字符串
pystr = 'python'
iscool = 'is cool'
print pystr[0]
print pystr[2:5]
print iscool[:2]
print iscool[3:]
print pystr + iscool
print pystr * 2
pystr

#列表
alist = [1,2,3,4]
print alist
print alist[0]
alist[1] = 5
print alist
#元组
aTuple = ('ytwang',23,163,'female')
print aTuple
print aTuple[:2]

#字典
aDict = {'host':'ytwang'} #create dict
aDict['age'] = 23    #add to dict
print aDict
print aDict.keys()
for key in aDict:
    print key,aDict[key]


#代码块缩进对齐
x = raw_input();
if x < 0:
    print '"x" must be at least 0'
else:
    print '"x" > 0'

#while 
counter = 0
while counter <3:
    print '%d loop' %(counter)
    counter +=1

#print
what = 'hello'
print 'say %s' % ((what + ' ')*4)

for eachNum in [0,1,2]:
    print eachNum

#range()内建函数
for eachNum in range(4):
    print eachNum

foo = 'abdd'
for c in foo:
    print c
    print len(foo)
for c in range(4):
    print foo[c],'%d' % c

#enumerate()循环索引, 循环元素
for i,char in enumerate(foo):
    print char,'(%d)' % i

#列表解析,for循环挑选合适的值放入列表中
squared = [x ** 2 for x in range(4) if not x % 2]
for i in squared:
    print i

文件
filename = raw_input("enter file name:")
fobj = open(filename,'r')
for line in fobj:
    print line,        #循环一次取一行显示
print 'print all'
print line,        #一次读入文件所有行,一次性输出
print 'print all'
print line        #print , 抑制换行符,文本本来就有
fobj.close()

#异常
try:
    filename = raw_input("enter file name:")
    fobj = open(filename,'r')
    for eachLine in fobj:
        print eachLine, 
    fobj.close()
except IOError, e:
    print 'file open error:', e

函数 
def functionname(x,y,z):
    'discription can dont write'
    return (x + x) 

print functionname(4,5,6)

#
class FooClass(object):        #可以提供一个可选的父类或者说基类; 
                        #如果没有合适的基类,那就使用 object 作为基类。
#"my very first class: FooClass"
    version = 0.1 # class (data) attribute 静态变量被所有实例及四个方法共享
    
    #所有名字开始和结束都有两个下划线的方法都是特殊方法
    #当一个类实例被创建时, __init__() 方法会自动执行
    #在类实例创建完毕后执行,类似构造函数
    #它并不创建实例--它仅仅是你的对象创建后执行的第一个方法
    #的目的是执行一些该对象的必要的初始化工作。
    #通过创建自己的 __init__() 方法, 可以覆盖默认的 __init__()方法
    #(默认的方法什么也不做)
    def __init__(self, nm='John Doe'):
        'constructor'
        self.name = nm # class instance (data) attribute
        #初始化了一个名为 name的类实例属性(或者说成员)
        #这个变量仅在类实例中存在, 它并不是实际类本身的一部分。
        print 'Created a class instance for', nm

    #每个方法都有的一个参数, self
    #self ? 它是类实例自身的引用,类似C++的this
    def showname(self):
        """display instance attribute and class name"""
        print 'Your name is self.name', self.name
        print 'My name is self.__class__.__name__', self.__class__.__name__
    def showver(self):
        """display class(static) attribute"""
        print self.version # references FooClass.version
    def addMe2Me(self, x): # does not use 'self'
        """apply + operation to argument"""
        return x + x

#创建实例
fool = FooClass()
#当一个实例被创建,
#__init__()就会被自动调用。不管这个__int__()是自定义的还是默认的。
#方法调用
fool.showname()
#显示 self.__class__.__name__ 变量的值
#对一个实例来说, 这个变量表示实例化它的类的名字
#显示self.name创建类实例时我们并未传递
#名字参数, 因此默认参数 'John Doe' 就被自动使用

fool.showver()
print fool.addMe2Me(5)

foo2 = FooClass('jane Smith')
#指定一个参数。jane Smith被调用
foo2.showname()

 

posted @ 2016-07-29 13:59  zdmlcmepl  阅读(228)  评论(0编辑  收藏  举报