Python基础介绍

最初是在coursera上看的Python讲课,后来在看Stanford Fei-fei Li的卷积神经网络时看到Python Numpy教程,觉得简洁明了,就当笔记记录下来了。本处主要介绍以下几个方面:

  • Python
    1、基本数据类型
    2、容器
    3、基本语句
    4、函数和类

Python

1、基本数据类型

python的基本数据类型包括:整型、浮点型、布尔值和字符串。这些数据类型的操作与大多数高级语言类似:

整型和浮点型:与一般高级语言类似。

x=3     # 无需定义数据类型
print type(x)   # 输出<type 'int'>
y=2.5
print type(y)   # 输出<type 'float'>

常见操作符:

操作符 结果 操作符 结果
x+y 求和 x-y 求差
x*y 求积 x/y 求商
x//y 商的整数 x%y 求余
-x 求反 abs(x) 绝对值
pow(x,y) xy x**y xy

Python基础介绍_第1张图片

注:Python常见操作中没有自加 ++ 和自减 符号


布尔型:Python包含了布尔型数据的常见操作,但是操作一般用英语单词表示,而不是常见的&&或||。

t = True
f = False
print type(t)   # 输出<type 'bool'>
print t and f   # 逻辑“与”; 输出"False"
print t or f    # 逻辑“或”; 输出"True"
print not t     # 逻辑“非”; 输出"False"
print t != f    # 逻辑“异或”;输出"True" 

Python基础介绍_第2张图片
在这里我们可以看到,其他语言中用的&&在Python中会报错,不适用。


字符串:Python有强大的字符串处理功能,这里简单介绍该数据类型。

hello = 'hello'     # 字符串可以使用单引号
world = "world"     # 也可以使用双引号,并不用事先规定变量的名字
print hello         # 输出"hello"
print len(hello)    # 字符串长度; 输出"5"
hw = hello + ' ' + world  # 字符串拼接
print hw    # 输出 "hello world"
hw12 = '%s %s %d' % (hello, world, 12)  #转换为字符串格式
print hw12      # 输出 "hello world 12"

Python基础介绍_第3张图片
由图可见,Python的字符串具有强大的内置函数,更方便自然语言处理。更多更有效的内置函数操作可以看这个文档。


2、容器

Python包含有多个内置的容器:列表、词典、集合和元组。

列表:Python中的列表是最具有灵活性的容器类型,定义与常见数组比较类似,[],不同之处是列表能够包含多种不同的数据类别。

xs = [3, 1, 2]   # 创建列表
print xs, xs[2]  # 输出 "[3, 1, 2] 2"
print xs[-1]     # 负下标指示列表最后一个元素;输出"2"
xs[2] = 'foo'    # 列表能够包含不同的数据类型
print xs         # 输出"[3, 1, 'foo']"
xs.append('bar') # 在列表后面增加新的数据
print xs         # 输出"[3, 1, 'foo','bar']"
x = xs.pop()     # 移除列表中最后的元素
print x, xs      # 输出 "bar [3, 1, 'foo']"

关于列表的详细内置函数可以参考之前的文档。,其中最常见的比较容易混淆的内置函数是append(L)和extend(L)。前者是将L作为整体加入到原列表中,而后者则是将L变量中的所有元素加入到原变量中,对比见下图:
Python基础介绍_第4张图片

除了基本的访问外,Python中的列表还提供了类似数组的访问方式:

nums = range(5)     # 随机产生一个包含5个整数的列表
print nums          # 输出"[0, 1, 2, 3, 4]"
print nums[2:4]     # 从2到4的索引(不包含4);输出"[2, 3]"
print nums[2:]      # 从2到最后的索引;输出"[2, 3, 4]"
print nums[:2]      # 从列表起始到2的索引(exclusive);输出"[0, 1]"
print nums[:]       #输出["0, 1, 2, 3, 4]"
nums[2:4] = [8, 9]  # 修改2-4(不包含4)的数据
print nums          # 输出"[0, 1, 8, 8, 4]"

字典:字典是一个存储关系(关键字:值),类似于C++中的map关联容器,定义的是键和值之间的一对一关系。

dict1 = {'name' : 'Lyndon', 'age' : 24, 'sex' : 'Male'} #创建字典
print type(dict1)                   #输出""
print dict1['name']                 #输出"lyndon"
dict1['Age']=24                     #创建新的字典元素
print dict1['Age']                  #输出"24"
del dict1['Age']                    #删除元素

Python基础介绍_第5张图片

字典本身也带有很多内置函数,具体可以查看文档。


集合(set):Python中的集合与C++类似,是一个无序不重复的元素集合,也可以包含各种不同的数据类型,用{}定义。

animals = {'cat', 'dog'}
print 'cat' in animals   # 检查元素'cat'是否在集合中;输出"True"
animals.add('fish')      # 增加元素到集合
print len(animals)       # 集合中元素的数目; 输出"3"
animals.add('cat')       # 已经存在的元素不会被添加
print len(animals)       # 输出"3"
animals.remove('cat')    # 从集合中移除元素
print len(animals)       # 输出"2"

Python基础介绍_第6张图片

集合也包含一些简单的内置操作函数,具体可以查看文档。


元组(tuples):元组与list的功能比较像,但是是不可以改变的,不可以增加删除元素,只能重新整体赋值。因此其相关内置函数比较少。

Python基础介绍_第7张图片
更多的资料参考文档。


3、基本语句

Python中的顺序结构、条件结构和循环结构与常见高级语言比较类似,还是比较容易理解。不过Python中一定要注意的就是整个结构的作用域是通过缩进实现的,所以在编写Python条件、循环等程序时,一定要注意缩进。

条件结构:即程序满足一定的结构时,程序后面的语句才会执行。

基本表达:

if x>0:
   print 'x is positive'    

(本处用ipython notebook实现,方便函数和结构语句的查看)
Python基础介绍_第8张图片
常见的比较符:>(大于),>=(大于等于),<(小于),<=(小于等于),==(等于),!=(不等于),and(与),or(或),not(非)
组合结构:

x=3
y=4
if x==y:
    print 'x and y are equal'
elif x>y:
    print 'x is greater than y'
else:
    print 'x is less than y'

输出:这里写图片描述
此外,再介绍一个比较好用的错误代码处理结构Try/Except

hours = raw_input("Enter Hours:")       #输入工作时间
rate = raw_input("Enter Rate:")         #输入单位时间工资
try:
    h = float(hours)                    #如果是数字转换成浮点型数据
    r = float(rate)
except:
    print 'Error. Invalid entry.'       #否则输出错误
    quit()                              #退出程序
print 'Pay:',h*r                        #如果都正确,输出工资  

这里写图片描述


循环结构:当条件满足时,反复执行循环语句中的语句。主要也是分为while和for循环两种。

while循环:注意缩进和终止条件。

n=5
while n>0:
    print n       #输出数据
    n = n-1       #条件减少

for 循环:for循环在Python中似乎更常用,可以和各种容器、数组等组合使用

nums = [5,4,3,2,1]
for i in range(len(nums)):                                        # 类似于C语言中的循环,i从0到4
    print nums[i]                                                       # 输出列表中数
print 'done!'
for i in nums:                                                           #直接输出列表
    print i 
squares = [i**2 for i in nums]                                  
print squares
# 列表
animals =['cat','dog','monkey']
for  animal in animals:
    print animal
#字典
d = {'person': 2, 'cat': 4, 'spider': 8}                               
for animal in d:                                                        #i是字典中的关键字
    legs = d[animal]
    print 'A %s has %d legs' % (animal, legs)

输出:Python基础介绍_第9张图片
此外循环中常见的两个关键字break和continue在Python中也具有相同的功能。break直接跳出循环,而continue则是跳出本次循环,继续循环的内容。我们可以将上面的关系融合成一个整体的小程序。

while True:
    hours = raw_input("Enter Hours:")             #输入工作时间
    rate = raw_input("Enter Rate:")               #输入单位时间工资
    if hours =='done' or rate =='done': 
        print "The program is done!"
        break                                     #如果输入“done”,表示程序结束,直接退出
    else:
        try:
            h = float(hours)                       #如果是数字转换成浮点型数据
            r = float(rate)
        except:
            print 'Error. Invalid entry.Please enter a number.'   #否则输出错误
            continue                            #退出本次循环,继续输入
        print 'Pay:',h*r                        #如果都正确,输出工资  

输入输出:Python基础介绍_第10张图片
当我们输入的不是数字时,程序转到except,输出”Error. Invalid entry.Please enter a number.”然后转到continue,跳出本次循环,继续输入。而当我们输入’done‘时,程序满足if语句的条件,先输出“The program is done!”,然后执行break,直接跳出循环。另外,如果有两个循环嵌套,而break在内层循环,则执行break时只能跳出内层循环。


4、函数和类

Python中函数的定义和使用与C++也比较像,要注意的基本也是缩进。下面来看一个简单的函数的例子:

def sign(x):
    if x > 0:
        return 'positive'
    elif x < 0:
        return 'negative'
    else:
        return 'zero'

for x in [-1, 0, 1]:
    print sign(x)

输出:这里写图片描述
先定义了函数sign(x),带参数。def是函数定义关键字。需要判断数字的正负时,直接调用该函数即可。在同一个文件中,函数可以直接在前面定义,然后在主函数中调用即可。但是,当调用别的文件中的函数时,不能直接调用,需要import,后面再介绍。

def Hello():                                    #子函数
    str="Hello world"                  
    print(str);   
if __name__=="__main__":                    #主函数
    print("main")   
    Hello()                                     #调用

输出: 这里写图片描述
这里只是简单介绍了Python中函数的结构,更详细内容,参考官方文档。


Python中类的定义很直接,相比于C++来说简单了很多(其实用多了python,会感觉很多方面都很容易上手)。

class Greeter:
    # 构造函数
    def __init__(self, name):
        self.name = name  # 创建实例变量
    # 函数实例
    def greet(self, loud=False):
        if loud:
            print 'HELLO, %s!' % self.name.upper()
        else:
            print 'Hello, %s' % self.name

    def Bye(self, loud=False):
        if loud:
            print 'GOOD BYE, %s!' % self.name.upper()
        else:
            print 'Good bye, %s' % self.name
g = Greeter('Fred')       # 构建类的实例
g.greet()                 # 调用函数
g.greet(loud=True)        # 调用函数
g.Bye()
g.Bye(loud=True)

输出:这里写图片描述
关于类更详细的介绍,可以参考文档。

你可能感兴趣的:(Python,python,函数,列表,词典,集合)