python基础

上一篇 / 下一篇  2013-10-15 15:49:34 / 个人分类:python

注明:其中的#号太多是由于在写文章时是在运行环境下,#是注释

#测试基础

# #表示注释
#\:表示连接两条语句,可以连接语句的还有()[]{} '''  '''
#\n表示换行
#  :表示头和体的分开
#   ;将多条语句写在一行

#1、变量赋值

#变量类型:int :2  float :3.33  long:2334545454524234L   bool :True False  complex:73.3-44.1j
anInt = 2
aString = 'avcd'
aFloat = -3.13+(0.5**2)
anotherString = 'shop' + 'ping'
aList = [3.13e10,'2nd elment of a list',8.88-4.78j]
#赋值操作符:
x = 1
# y = (x = x+ 1)  这是错误的方式,因为python的赋值语句不会有返回值,所以x = x+1结果算出来后不会赋值给y
y = x = x+1  #链式赋值可以成功
print y,x
#增量赋值:符号  += -= /= *= **= %= //= <<= >> ^= |=  &=
m =  12
m %= 7
print m
m **= 2   #求m的乘方
aList = [123,'xyz']
aList  += ['zmn']   #加一个list才是我们想要的情况,将zmn当做一个整体添加
print aList
aList  += 'zmn' #加一个字符串后的结果是将字符串分解为一个个字符天剑的
print aList
#多重赋值:一个对象赋给多个变量
x = y = z = 1
print x ,y , z 
#多元赋值:将多个对象赋值给多个数据。其实两边都是一个tupe(元组),第 x 个变量  =  第 x = 数据
x ,y ,z  = 'a',2 ,'string'
print x ,y ,z
(x ,y ,z)  = ('a',2 ,'string') #通常元组是用()括起来的,以便于查看
#python中的变量交换:不需要使用中间临时变量,直接进行交换
print x,y
x ,y = y ,x
print x,y


#2、标示符
#python标示符是由以下规则:1、标示符必须有字母或下划线_开头   2、组成:字母、数字和下划线_  3、大小写敏感
#标示符不推荐用python  的 build-in 内建标示符(保留字)的集合
#python 关键字:
    #if and as assert break class continue def del elif else except exec finally
    #for from global import in is lambda not or pass print raise return try while
    #with yield None
#专用下划线标示符:__xxx__ :系统定义名字   __xxx:不用from module import * 导入
                #__xxx:类中的私有变量名


#3、基本风格
#合理利用注释,便于以后查看所用,确保注释的准确性
#文档:python可以利用__doc__特别变量,动态获取文档字符串,该字符串是在模块、函数、类中第一个没有赋值的字符串,
      #一般使用'''xxx  x dfjsoijf   ''' 的格式写的
#缩进:一般使用4个空格。使用tab键分隔时要注意:不同的编辑器对tab键的设置是不一样的
#选择标示符名称:选择短而意义丰富的标示符
#python程序编写时合理布局:
    #起始行(unix
    #模块文档:如上所述的__doc__,可以通过module.__doc__来访问
    #模块导入:如import sys,os
    #变量定义:如:debug = Ture(全局的,global)
    #类定义  :如:class fooClass(object):pass    
    #函数定义:如def className():'''test function''';foo = fooClass():.......
    #主程序  :如:if __name__ == '__main__):test()'
#模块是用来被导入的,不是用来被执行的。所有的功能都应该封装在函数和类中。(不是说模块不能被执行)
#__name__:如果有模块被导入,__name__的值为模块的名称 ,如果没有导入,__name__的值为__main__
          #作用:判断一个模块是直接被运行还是被导入的
#在主程序中写测试代码:
    #将测试代码中放一个main()/test()的函数(自己命名),测试test()代码应该随着你的程序更新而更新。
    #坚持写测试代码,程序会变足够强壮
#内存管理:变量无需事先申明,变量无需指定类型,程序云无需关心内存管理,变量名会被’回收‘,del语句可以直接释放资源
         #在python中对象的类型和内存都是运行时确定的
  #内存释放时通过引用计数来的:增加计数,分配内存,减少计数,释放内存
  #引用计数增加情况:对象贵创建时:x=3.13  对象被再次引用时(赋给给的变量 y = x ,作为参数foo(x),成为容器对象 list = (x,'y'))
  #引用计数减少情况:对象被销毁:del x ,对象被赋其他值:x = 1, 函数结束 ,窗口对象呗销毁 del list 对象被移除:list.remove(x)
  #del:删除对象的一个引用:del y  :1、从现在的名称空间删除y  2、x 的计数器-1,当减值为0时,成为垃圾回收机制的回收对象

#创建一个python程序

#创建一个文件夹并输入内容
import os
ls = os.linesep   #分隔符
#get filename
while True:
    fname = raw_input('please enter a filename:') #输入的是一个文件路径+文件名:g://a.txt
    if os.path.exists(fname):
        print 'ERROR:"%s" already exists'%fname
    else:
        break
#get file content (text ) line
allContent = []
print '\n Enter line("." by itself to quit).\n'
#loop until user terminates input
while True:
    entry = raw_input('> ')
    if entry == '.':
        break
    else:
        allContent.append(entry)
#write lines to file with proper line-ending
fobj = open(fname,'w')
fobj.writelines('%s%s'%(x,ls)for x in allContent)
fobj.close()
print 'DONE'

#读取创建文件夹的内容:异常处理最合适用于没有合适的函数的情况下,这里最适合用os.path.exists(),检查文件是否存在
fname = raw_input('Enter a filename path:')
print fname
#try to open file to reading
try:
    fobj = open(fname,'r')
except IOError ,e:
    print '***file open error:',e
else:
    #display contents to the screen
    for eachline in fobj:
        print eachline,
    fobj.close()
























TAG:

 

评分:0

我来说两句

日历

« 2024-05-15  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 15493
  • 日志数: 25
  • 建立时间: 2013-07-27
  • 更新时间: 2013-10-22

RSS订阅

Open Toolbar