为什么要写这篇文章?
本人做过Objective-C开发,现在在用C#做WinForm开发。近段时间在学习Python入门基础知识时,发现有很多知识点和Objective-C的不一样。故想通过本文记录自己学习过程中,遇到的新知识点,也为了方便以后自己查找还没有掌握牢固的知识点。
特此声明:
本文非干货!
本文非干货!
本文非干货!
如果有同样想学习Python的网友,不小心跑到了这里来。或许你们可以考虑下从以下途径找Python的学习资料:
- 廖雪峰先生的Python学习网站(我最开始是在那里学的,纯文字代码学习资料)。
- 菜鸟教程网Python相关学习资料(纯文字代码资料)。
- 阿里云大学(有视频教学,对于我这种学习能力不够的人,看视频学更合适些,不过这个网站要注册)。
- 其它网上可搜索到的资料。
好了,接下来我要开始写我自己的笔记了。
1. Python中变量赋值时,并不需要声明数据类型。它可以根据赋值的数据类型来确定该变量的类型。故变量在创建时必须赋值。
2. Python中的运算符:
1)字符串和数字的乘法运算,它表示的是对字符串作复制操作。
2)"//"这个运算符表示整除。
3)"**"这个运算符表示幂运算。
4)Python中没有 i++ 的表示方式,但 i += 1 还是有的。
5)true和false在运算中分别表示为1和0。
3. Python中的关系运算:
1)关于字符串的关系运算,其比较的是字符串中单个字符的Unicode码的大小。例如:'ab' < 'b',因为'a'字符的Unicode码小于'b'字符的。
2)关系运算符可以连着用,如: result = 1 < 2 < 3
3)对象的关系比较中,"=="和"!="两个符号比较的是对象的值。"is"和"is not"两个符号比较的是对象的id值(即地址)。
4. Python中的逻辑运算符,用'or'表示'或',用'and'表示'与'。按位运算的符号和其它语言一样。
5. Python在判断或者循环流的代码块中,可以使用'pass'关键字表示站位,即表示该代码块的代码逻辑暂时结束。
6. Python中的序列有切片功能,这在Objective-C中没有,但C#中有,而且学起来也容易理解。
7. Python中,元祖(tuple)的概念,在Objective-C中并没有与之相对应的概念,所以学到这里就有些陌生,暂时记录几个简单的应用场景:
1)解包中值交换:a, b = (b, a)。另一种写法:a, b, *c = (1, 2, 3, 4, 5) (得到结果a=1, b=2,c=(3,4,5))。
2)字符串的格式化拼接:"%s:%d"%('你好',8)。
3)应用于函数中传入多个参数,或者返回多个返回值。
8. Python中的字典:
1)字典中的键不能重复,否则后边的会覆盖前边的。
2)字典的创建方式:
d = dict([('name', '孙悟空'), ('age', 10)]) d = dict(name = '孙悟空', age = 10)
9. Python中的集合只能存放不可变对象。如果在集合中放入列表对象,会报错:unhashable type。
10. Python中的函数参数:
1)可以设置默认值,且有位置参数和关键字参数的概念。
2)位置参数和关键字参数可以混合使用,但是,位置参数必须在关键字参数前面。
11. Python中的作用域:
1)可以用local函数来获取当前作用域的命名空间。且该函数返回一个字典,可以对该字典作key-value操作而改变作用域中的变量的值,但一般不这么做。
2)global函数可以查看全局变量的命名空间。
3)在函数的作用域中的变量,每当函数被调用一次,就产生一次新的。
4)在局部作用域中,如果要改变全局变量,可以用global关键字修饰该变量,如:
a = 20 def func(): global a a = 30 print('new a = %d'%d)
12. Python中可以用help函数来查询某个函数的用法。
13. Python中,给函数添加注释文档时,其格式如下所示:
def func(): ''' 这里可以写关于该函数的所有解释。 ''' some code.. pass
14. Python中,函数又被称为“第一类对象”(对这点知识我认为是基于Python中“万般皆对象”的特性而言的,具体了解不深,先记录)。其特征有如下:
1)在运行时创建。
2)能赋值给变量或者作为序列中的元素。
3)能作为参数传递。
4)能作为返回值。
15. Python中的高阶函数需要满足如下条件之一:
1)接收至少一个函数作为参数。
2)返回值为函数形式。