python基本语法

数据类型

python的变量赋值不需要声明类型,由解释器自动判断,python中有五种标准数据类型

数字

数值可以是整数,浮点数,复数

1
2
3
4
#变量名 = 数值
val1 = 1 #赋值为整数
val2 = 3.14 #赋值为浮点数
val3 = 3.14 + 3.14j 或 val3 = complex(3.14,3.14) #赋值为复数

字符串

  1. 赋值

    1
    2
    #用引号括起来
    string = "abcefg...e"
  2. 取值顺序

    python中字符串的取值顺序有两种:

    • 从左到右,索引默认从0开始,到 $(length-1)$ 结束
    • 从右到左,索引默认从-1开始,到 $(-length)$ 结束
      1
      2
      3
      4
      5
      s = "123456"
      print(s[0]) #输出1
      print(s[5]) #输出6
      print(s[-1]) #输出6
      print(s[-6]) #输出1
  3. 子串截取

    1
    2
    3
    4
    5
    6
    #字符串[头下标:尾下标] 返回从头下标到尾下标-1的字符串,头必须在尾前面
    s = "123456"
    s1 = s[1:5] #s1 = "2345"
    s2 = s[-5:5] #s2 = "2345"
    s3 = s[1:] #s3 = "23456"
    s4 = s[:-1] #s4 = "12345"
  4. 运算符

    字符串支持加法运算与乘法运算(重复)

    1
    2
    3
    4
    str1 = "hello"
    str2 = "hi"
    str3 = str1 + str2 #str3 = "hellohi"
    str4 = str2 * 2 #str4 = "hihi"
  5. 其他用法

    1
    2
    3
    s1 in s2 #判断s1是否在s2内
    s1.find(s2) #返回s1在s2中出现的位置
    s1.split(s2) #将s1按s2分割,返回分割后的列表

列表

列表用’[ ]’标识,列表中可以存储不同类型的数据,也可以进行列表的嵌套

列表的索引顺序与字符串相同

  1. 赋值

    1
    list = [12,"abc",'a','b,',3.14]
  2. 截取方式

    列表的截取方式与字符串相同,在此基础上可以多加一个参数设置截取的步长

    1
    2
    list2 = list[0:4:2] 
    #list2 = [12,'a']
  3. 列表的遍历

    1
    2
    for item in list
    #item依次读取列表的项
  4. 列表解析

    根据已有列表,高效创建新列表的方式。
    列表解析是Python迭代机制的一种应用,它常用于实现创建新的列表,因此用在[]中。
    语法: [expression for iter_val in iterable (if cond_expr)]

    1
    2
    List1 = [0 for i in range(n)] #创建初始值为0,长度为n的列表
    List2 = [[k for i in range(n)] for j in range(m)] #创建初始值为k的n*m的二维列表
  5. 其他用法

    1
    2
    3
    4
    5
    list.append(item) #将item添加到list的末尾
    list.pop(cur) #返回下标为cur的元素,并将该元素从列表中移除
    list.remove(item) #将item项从列表中移除
    list.join(str) #将列表用字串str连接,返回连接后的字符串
    item in list #若item项在list中则返回true否则返回false

元组

元组用'( )'标识,内部元素用逗号隔开,元组类似于列表,但不能够二次赋值.

字典

类似C语言里面的map,采用键值对的形式存储数据,采用’{}’标识

  1. 赋值

    1
    2
    3
    4
    dic = {}
    dic[2] = "ho"
    dic['a'] = 128
    dict = {'name':'alice','age':18}
  2. 其他用法

    1
    2
    3
    dict.keys() #返回字典中所有键组成的列表
    dict.values() #返回字典中所有值所组成的列表
    dict.items() #返回字典中所有键值对组成的元组的列表

数据类型转换

1
2
3
4
5
str(x) 将对象x转换为字符串
int(x) 将对象x转换为整型变量
hex(x) 将整形对象转化为十六进制数
list(x) 将元组对象转化为列表
tuple(x) 将列表对象转化为元组

数据结构

队列

1
import Queue

高级语法

装饰器 decorator

本质上decorator是一个返回函数的高阶函数,可实现动态增加函数的功能的效果

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#利用decorator实现函数运行过程中打印信息
def log(func):
def wrapper():
print("function start")
func()
print("function end")
return wrapper

@log
def hello():
print("hello world")
hello()


把@log语句放在hello()函数的定义处相当于调用了
hello = log(hello)