学习python已经有几天了,之前也接触过python,但是只知道这个名字,不知道其中的奥秘,现在开始python之旅,发现其简单而强大之处。希望能记录学习过程,之前两天看完《A Byte of Python》的中文版,名称叫《简明python》(相对英文版本有点老,但是没关系),强烈建议初学者能够先看完这本小册子,你会体会到很多乐趣,并且不会感到烦躁,因为很精简。你会翻到最后一页时,发出“这本书到结尾了?”的感慨!这本小册子里的学习心得就不写了,对于有其他语言基础的人来说,It is so easy!
本篇开始记录学习《Python核心编程 第二版》的心得或者学习笔记吧!希望能坚持看完和写完~
action
。。。
go
1、列表和元组的区别:
①列表元素由[]包裹,元素的个数和元素的值都可以改变;元组的元素由()包裹,不可以更改;
②元组可以看成只读的列表,可以通过切片运算得到子集。
列表操作:
>>>aList = [1, 2, 3, 4]
>>>aList
[1,2, 3, 4]
>>>aList[0]
1
>>>aList[2:]
[3,4]
>>>aList[:3]
[1,2, 3]
>>>aList[1] = 5
>>>aList
[1,5, 3, 4]
元组操作:
>>>aTuple = ('robots', 77, 93, 'try')
>>>aTuple
('robots',77, 93, 'try')
>>>aTuple[:3]
('robots',77, 93)
>>>aTuple[1] = 5
Traceback(innermost last):
File"<stdin>", line 1, in ?
TypeError:object doesn't support item assignment
2、print语句会在每一行最后添加一个换行符,如果想使用for循环print出来的文本都放在一行,只需要在print语句的最后添加一个“,”(逗号):
print'I like to use the Internet for:'
foritem in ['e-mail', 'net-surfing', 'homework', 'chat']:
printitem,
加一句:print会自动带一个换行符,而sys.stdout.write()如果想换行,需要显示的调用“\n”,如sys.stdout.write(“hello\n”)
3、直接在命令行输入python时,操作会提示:
>>>foo='abc'
>>>for i in range(len(foo)):
...print foo[i], '(%d)' % i
File "<stdin>", line 2
print foo[i], '(%d)' % i
^
IndentationError:expected an indented block
(当时认为print之前的那三个...已经为缩进了,所以没有按tab键,引起IndentationError错误)
下面是正确的执行:
>>>for i in range(len(foo)):
... print foo[i], '(%d)' %i
...
a(0)
b(1)
c(2)
4、列表解析:
>>>squared=[x**2 for x in range(4)]
>>>for i in squared:
... print i
...
0
1
4
9
再复杂点:
>>>squared=[x**2 for x in range(8) if not x%2 ]
>>>for i in squared:
... print i
...
0
4
16
36
说明:x**2,相当于x^2,如2^2=4,3^2=9
5、函数
函数定义格式:
deffunction_name([arguments]):#注意这个“:”一定要有
"optionaldocumentation string"
function_suite
由于python不想其他语言(c\c++\java)等,函数体是以{}包裹,而是以缩进(tab)确定的,所以一定要注意缩进!
6、类定义,暂时没有什么问题需要记录和说明
7、模块
导入模块:importmodule_name
这个个人理解类似于c++中的namespace,但是调用是不一样的
如何访问一个模块函数或者访问一个模块变量?可以通过下列方式:
module.function()
module.variable