python学习

之前写了关于买房,保险的文章。不过,我是程序猿呀,还是写一点工作相关的文章吧。不要那么“不务正业”,哈哈。在麻瓜编程上学习了下python,写一下学习笔记。

一、字符串的连接

使用加号:print('asdf'+'13')输出asdf13

这点与PHP有所相同

二. 2.x版本与3.x版本的区别:

2.x:print 1/2 输出0

3.x:print(1/2)输出0.5,相对于其他编程语言,如C语言。这样有所不同,在一些情况下更为方便,其他时候容易造成混淆。

2.x版本要实现,可以写为:print(1.00/2)输出0.5

这里没有规定变量的数据类型。常量为默认的数据类型,如这里的1和2为整数型,1.00为浮点型,从而导致输出不同。

Python的设计者认为这么做不符合Python简单明了的特性,于是乎就在Python2.2以及以后的版本中增加了一个算术运算符" // "来表示整数除法,返回不大于结果的一个最大的整数,而" / " 则单纯的表示浮点数除法,但是,为了折中,所有2.X版本中,也是为了向后兼容,如果要使用" // ",就必须加上一条语句:

from __future__ import division

一看到这句," / "就表示 浮点数除法,返回浮点结果;" // "表示整数除法。

三、函数的默认参数

def trapezoid_area(base_up,base_down,height=3):

   return1/2*(base_up+base_down)*height

四、函数的默认参数的调用

默认参数

def trapezoid_area(base_up, base_down, height=3):

return1/2* (base_up + base_down) * height

print(trapezoid_area(1,2,4))

这样是可以的。

但是

print('a','aa','aaa',sep='\n')

print('a','aa','aaa','\n')

两者就是不同的,后一行语句中这里的'\n'会被当作普通的函数

defprint(self, *args, sep=' ', end='\n', file=None):# known special case of print

这是因为第二个参数是一个数组,无法判断结束

五、位置参数与关键词参数的混合传入调用

使用python 3.5.3测试的结果为:后面为关键词参数传入可以,但如果前面有关键词参数传入不可。

def trapezoid_area(base_up, base_down, height):

return1/2* (base_up + base_down) * height

print(trapezoid_area(base_up=1,2,3)) #不可,有错误

print(trapezoid_area(1,base_down=2,3))# 不可,有错误

print(trapezoid_area(1,2,height=3))# 可以

print(trapezoid_area(1,base_down=2,height=3))# 可以

六、判断:

print(1<2<3) #返回TRUE,感觉是(1< 2) && (2<3) 所得到的

print(1<2>3) #则返回FALSE

print('M' in "Magic") # 返回TRUE,字符串的包含

number =12;

print(number is 12) # 返回TRUE,等价与print(number ==12)

in是成员运算符;is是身份运算符;

in测试前者是否存在于in后面的集合中。

album=['Black Star','David Bowie',25,True] #列表或数组中可以包含不同的数据类型

album.append('new song')#向列表中添加元素

bool函数:判断是TRUE还是FALSE

bool(0)#False

bool([])#False

bool('')#False

bool(False)#False

bool(None)#False

七、循环

for every_letter in 'Hello world':

print(every_letter)

输出每个字符。使用了in关键词

for i in range(1,11):

print(str(i)+'+1=',i+1)

这与C语言语法不同,这里有range来表示连续的数字

八、数据结构

1. python有内置数据结构,有四种数据结构,分别是:列表、字典、元组、结合。

2. 列表:Weekday=['Monday','Tuesday','Wednesday','Thursday','Friday']

列表的特征:

(1. 列表中的每一个元素都是可变的;

(2. 列表中的元素是有序的,也就是说每一个元素都有一个位置;

(3. 列表可以容纳 Python 中的任何对象。

insert函数:在指定位置之前插入元素

3. 字典NASDAQ_code={'BIDU':'Baidu','SINA':'Sina','YOKU':'Youku'}

字典的特征总结如下:

(1. 字典中数据必须是以键值对的形式出现的;

(2. 逻辑上讲,键是不能重复的,而值可以重复;

(3. 字典中的键(key)是不可变的,也就是无法修改的;而值(value)是可变的,可修改的,可以是任何对象。

列表中插入多个元素是函数extend(),字典中插入多个元素是update()

4. 元组:letters=('a','b','c','d','e','f','g')

元组不可以修改,可以视为稳固版的列表

5. 集合不能被切片也不能被索引

a_set={1,2,3,4}

a_set.add(5) #集合的添加

a_set.discard(5) #集合的删除

6. enumerate 在字典上是枚举、列举的意思

7. strip函数

s.strip(rm)        删除s字符串中开头、结尾处,位于 rm删除序列的字符

s.lstrip(rm)       删除s字符串中开头处,位于 rm删除序列的字符

s.rstrip(rm)      删除s字符串中结尾处,位于 rm删除序列的字符

第二个参数为要删除的字符。调用的只能是一个字符串变量,而不能是列表或其他。如

words=['asdf    ','   aa']

words.strip()是错误的

扩展:with语句

上下文管理协议(Context Management Protocol):包含方法 __enter__() 和 __exit__(),支持该协议的对象要实现这两个方法。

上下文管理器(Context Manager):支持上下文管理协议的对象,这种对象实现了__enter__() 和 __exit__() 方法。上下文管理器定义执行 with 语句时要建立的运行时上下文,负责执行 with 语句块上下文中的进入与退出操作。通常使用 with 语句调用上下文管理器,也可以通过直接调用其方法来使用。

运行时上下文(runtime context):由上下文管理器创建,通过上下文管理器的 __enter__() 和__exit__() 方法实现,__enter__() 方法在语句体执行之前进入运行时上下文,__exit__() 在语句体执行完后从运行时上下文退出。with 语句支持运行时上下文这一概念。

上下文表达式(Context Expression):with 语句中跟在关键字 with 之后的表达式,该表达式要返回一个上下文管理器对象。

语句体(with-body):with 语句包裹起来的代码块,在执行语句体之前会调用上下文管理器的 __enter__() 方法,执行完语句体之后会执行 __exit__() 方法。

九、第三方库

当你想搭建网站时,可以选择功能全面的 Django、轻量的 Flask 等 web 框架;当你想写一个小游戏的时候,可以使用 PyGame 框架;当你想做一个爬虫时,可以使用 Scrapy 框架;当你想做数据统计分析时,可以使用 Pandas 数据框架

可以在awesome-python这个网站上按照分类去寻找,上面收录了比较全面的第三方库。

你可能感兴趣的:(python学习)