初识Python(1)__Python基础
Python基础
一、 注释(#)
Python注释语句是用“#”字符开始,注释可以在一行的任何地方开始,解释器会忽略掉该行 # 之后的所有内容。
- 单行注释: 1 print ‘hello, world!’ #打印 hello,world
- 多行注释:多行注释用三引号’’’将需要注释的部分括起来,例如:
1 ’’’ 2 Hello ,world. 3 I’m Jay, and l like python. 4 ’’’
3. 中文注释:需要在文件头写上:
#coding=gbk 或者 #coding=utf-8
二、 继续(\)
如果一行语句过长,则可以使用反斜杠\ 来分解成几行,例如:
1 # check conditions 2 if (weather_is_hot == 1) and 3 (shark_warnings == 0): 4 send_goto_beach_mesg_to_pager()
另外,有两种例外情况一个语句不使用反斜线也可以跨行。在使用闭合操作符时,单一语句可以跨多行,例如:在含有小括号、中括号、花括号时可以多行书写。另外就是三引号包括下的字符串也可以跨行书写。
三、 多个语句构成代码组(:)
缩进相同的一组语句构成一个代码块,称之为代码组。像if、while、def 和class 这样
的复合语句,首行以关键字开始,以冒号( : )结束,该行之后的一行或多行代码构成代码组。我们将首行及后面的代码组称为一个子句(clause)。
四、 代码组由不同的缩进分隔
Python 使用缩进来分隔代码组。代码的层次关系是通过同样深度的空格或制表符缩进体现的。
建议:采用四个空格宽度的缩进宽度。不使用制表符作为缩进。
五、 同一行书写多个语句(;)
分号( ; )允许你将多个语句写在同一行上,语句之间用分号隔开,而这些语句也不能在这行开始一个新的代码块。
import sys; x = ‘foo‘; sys.stdout.write(x + ‘\n‘)
不建议这么写,会降低代码的可读性。保证一个语句一行代码。
六、 模块
模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py。模块可以被别的程序引入,以使用该模块中的函数等功能。这也是使用python标准库的方法。
每一个Python 脚本文件都可以被当成是一个模块。
模块可以包含直接运行的代码块、类定义、函数定义或这几者的组合。
使用import引用模块
#####################模块结构和布局 ######################################
1 /usr/bin/env python # 起始行 2 3 "this is a test module" # 模块文档:简要介绍模块功能及重要全局变量的含义,可通过module.__doc__访问 4 5 import sys # 模块导入: 导入所需要的模块 6 debug = True # 变量定义:此处定义为全局变量 7 class FooClass(object): # -----------| 8 "Foo class" # | # 类定义:当模块被导入时类就会被定义。类的文档变量时class.__doc__ 9 pass # -----------| 10 11 def test(): # 函数定义:此处定义的函数通过module.function()访问,函数文档变量是function.__doc__ 12 "test function" 13 foo = FooClass() 14 if debug: 15 print ‘ran test()‘ 16 if __name__ == ‘__main__‘: #主程序 17 18 test()
#################源于:http://www.cnblogs.com/NNUF/archive/2013/01/13/2858908.html###############################
七、 赋值
1.多元赋值:
>>>x,y,z = 1,2,’a string‘
可以看作:x = 1,y = 2,z = ‘a string’
采用这种方式赋值时, 等号两边的对象都是元组:
>>> (x, y, z) = (1, 2, ‘a string‘)
2.链接赋值:
>>> y = x = x + 1
>>> x, y
(2, 2)
大家可以看下,2个执行的结果是一样的。说明变量x和y都是存储了整数对象1的引用地址。
3.增量赋值:等号可以和一个算术运算符组合在一起, 将计算结果重新赋值给
左边的变量。
比如x = x + 1 我们可以改成x+=1
4.多重赋值:
>>> x = y = z = 1
注意:若需要交换两个变量的值,使用x,y = y,x 就可以了。不需要像C语言那样需要引进第三个变量。
/* C 语言中两个变量交换 */
tmp = x;
x = y;
y = tmp;
八、 标识符
标识符是电脑语言中允许作为名字的有效字符串集合。其中,有一部分是关键字,构成语
言的标识符。这样的标识符是不能做它用的标识符的,否则会引起语法错误
- 合法的Python标识符
Python 标识符字符串规则和其他大部分用C 编写的高级语言相似:
- ?? 第一个字符必须是字母或下划线(_)
- ?? 剩下的字符可以是字母和数字或下划线
- ?? 大小写敏感
标识符不能以数字开头;除了下划线符号,其他的符号都不允许使用。
- 关键字
关键字列表和iskeyword()函数都放入了keyword模块以便查阅。
- 专用下划线标识符
Python 用下划线作为变量前缀和后缀指定特殊变量。
?? _xxx 不用‘from module import *‘导入 单下划线
?? __xxx__系统定义名字
?? __xxx 类中的私有变量名
核心风格:避免用下划线作为变量名的开始
以单下划线开头(_foo)的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用“from xxx import *”而导入。以双下划线开头的(__foo)代表类的私有成员;以双下划线开头和结尾的(__foo__)代表python里特殊方法专用的标识,如 __init__()代表类的构造函数。
详细总结参考:http://www.chengxuyuans.com/Python/67370.html
九、 内衬管理
- 变量定义:在Python 中,无需此类显式变量声明语句,变量在第一次被赋值时自动声明。和其他大多数语言一样,变量只有被创建和赋值后才能被使用。
- 动态类型:不需要类型声明
- 内衬分配:不需要管,python解释器自行解决
- 引用计数:保持追踪内存中的对象,记录着所有使用中的对象各有多少引用(这个应该需要到python高阶才需要用到,暂时不学,参考:www.csdn1(###)23.com/html/itweb/20130717/7656_7657_7664.htm)
- 垃圾收集:垃圾收集器负责释放内存。垃圾收集器是一块独立代码, 它用来寻找引用计数为0 的对象。它也负责检查那些虽然引用计数大于0 但也应该被销毁的对象。 特定情形会导致循环引用。
十、 第一个程序
#!/usr/bin/env python ‘makeTextFile.py -- create text file‘ import os ls = os.linesep # get filename while True: fname = raw_input(‘Enter the filename:‘) if os.path.exists(fname): print "ERROR: ‘%s‘ already exists" % fname else: break # get file content (text) lines all = [] print "\nEnter lines (‘.‘ by itself to quit).\n" # loop until user terminates input while True: entry = raw_input(‘> ‘) if entry == ‘.‘: break else: all.append(entry) # write lines to file with proper line-ending fobj = open(fname, ‘w‘) fobj.writelines([‘%s%s‘ % (x, ls) for x in all]) fobj.close() print ‘DONE!‘
1 #!/usr/bin/env python 2 ‘readTextFile.py -- read and display text file‘ 3 4 #get filename 5 fname = raw_input(‘Enter filename: ‘) 6 print 7 8 #attempt to open file for reading 9 try: 10 fobj = open(fname,‘r‘) 11 except IOError,e: 12 print "*** file open error:",e 13 14 else: 15 # display contents to the screen 16 for eachLine in fobj: 17 print eachLine, 18 fobj.close()
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。