目录

python 入门代码

做一个笔记,记录一下python的入门代码

目录内容如下:

  1. 变量与类型
  2. 运算符
  3. 流程控制
  4. 函数与模块
  5. 容器
  6. 常用的库

1.变量与类型


Python 中的变量赋值不需要类型声明。每个变量在内存中创建,都包括变量的标识,名称和数据这些信息。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。 Python有五个标准的数据类型:

  • Numbers(数字)
    • int(有符号整型)
    • long(长整型[也可以代表八进制和十六进制]):python3已经移除
    • float(浮点型)
    • complex(复数)
  • String(字符串)
    • Python不支持单字符类型,单字符在 Python 中也是作为一个字符串使用。
    • python三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符。
  • List(列表)
  • Set (集合)
  • Tuple(元组)
  • Dictionary(字典)
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# 变量例子
# 数值类型和字符串类型
counter = 100 # 赋值整型变量
miles = 1000.0 # 浮点型
name = "John" # 字符串
# 多变量同时赋值,可以使用这种方法来进行两个数的交换
a, b, c = 1, 2, "john"
# 下面是list,tuple和dict的例子
l = list() # l = []
t = tuple() # t = ()
d = dict() # d = {}
# 类型的转换
# int(x [,base ])         将x转换为一个整数  
# long(x [,base ])        将x转换为一个长整数  
# float(x )               将x转换到一个浮点数  
# complex(real [,imag ])  创建一个复数  
# str(x )                 将对象 x 转换为字符串  
# repr(x )                将对象 x 转换为表达式字符串  
# eval(str )              用来计算在字符串中的有效Python表达式,并返回一个对象  
# tuple(s )               将序列 s 转换为一个元组  
# list(s )                将序列 s 转换为一个列表  
# chr(x )                 将一个整数转换为一个字符  
# unichr(x )              将一个整数转换为Unicode字符  
# ord(x )                 将一个字符转换为它的整数值  
# hex(x )                 将一个整数转换为一个十六进制字符串  
# oct(x )                 将一个整数转换为一个八进制字符串  
# # 字符串
# a = "Hello";b = "Python"
# a + b # 'HelloPython'
# a * 2 # 'HelloHello'
# a[1] # 'e'
# a[1:4] # 'ell'
# "H" in a # True
# "M" not in a # True

2.运算符

和其他语言一样,python也支持以下类型的运算符:

  • 算术运算符
  • 比较(关系)运算符
  • 赋值运算符
  • 逻辑运算符
  • 位运算符
  • 成员运算符
  • 身份运算符
  • 运算符优先级
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
## 算术运算符的例子
# a=10;b = 20
# a + b # 30
# a - b # -10
# a * b # 200
# b / a # 2
# # 取模
# b % a # 0
# # 乘方
# a**b # 100000000000000000000
## 比较运算符
# (a == b) # False。
# (a != b) # true.
# (a > b) # False。
# (a < b) # true。
# (a >= b) # False。
# (a <= b) # true。
# # 赋值运算符
# c = a + b # c
# c += a # c = c + a
# c -= a # c = c - a
# c *= a # c = c * a
# c /= a # c = c / a
# c %= a # c = c % a
# c **= a # c = c ** a
# c //= a # c = c // a
# # 位运算符
# a = 60;b = 13
# (a & b) # 12 ,二进制解释: 0000 1100
# (a | b) # 61 ,二进制解释: 0011 1101
# (a ^ b) # 49 ,二进制解释: 0011 0001
# (~a ) # -61 ,二进制解释: 1100 0011,在一个有符号二进制数的补码形式。
# a << 2 # 240 ,二进制解释: 1111 0000
# a >> 2 # 15 ,二进制解释: 0000 1111
# # 逻辑运算符,与或非
# a=20;b=10
# (a and b) # 20。
# (a or b) # 10。
# not(a and b) # False
# # 成员运算符,主要用于容器查询中
# # in  x 在 y 序列中返回 True。
# # not in   x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。
# # is  x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False
# # is not   x is not y , 类似 id(a) != id(b)。如果引用的不是同一个对象则返回结果 True,否则返回 False。
# a = 20;b = 20
# a is b # True
# b = 30 
# a is b # False

3.流程控制


流程控制:条件判断+循环语句
PS:没有switch

条件判断

  1. 第一种形式:

    ​```python
    

    if 判断条件: ​ 执行语句…… ​ else: ​ 执行语句…… ​ ​```

  2. 第二种形式:

    1
    2
    3
    4
    5
    6
    7
    8
    
      if 判断条件1:
             执行语句1……
      elif 判断条件2:
             执行语句2……
      elif 判断条件3:
             执行语句3……
      else:
             执行语句4……
    

循环语句

  1. while 循环

    1
    2
    
    while 判断条件
        执行语句……
    
  2. for 循环:

    1
    2
    
     for iterating_var in sequence:
          statements(s)  
    

循环条件控制

  1. break 语句 在语句块执行过程中终止循环,并且跳出整个循环
    2. continue 语句在语句块执行过程中终止当前循环,跳出该次循环,执行下一次循环。
    3. pass 语句pass是空语句,是为了保持程序结构的完整性。

4.函数与模块


函数定义的规则函数

  • 函数代码块以 def关键词开头,后接函数标识符名称和圆括号()。

  • 任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。

  • 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。

  • 函数内容以冒号起始,并且缩进。

  • return表达式结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回None

    1
    2
    3
    4
    
    def functionname( parameters ):
           "函数_文档字符串"
           function_suite
           return [expression]
    

参数传递

  • 调用函数时,默认参数的值如果没有传入,则被认为是默认值.注意:默认参数一定要放在后面

  • 不定长参数:加了星号(*)的变量名会存放所有未命名的变量参数

    1
    2
    3
    4
    
    def functionname([formal_args,] *var_args_tuple ):
           "函数_文档字符串"
           function_suite
           return [expression]
    
  • 匿名函数:

    1
    
     lambda [arg1 [,arg2,.....argn]]:expression
    

变量作用域

  • 定义在函数内部的变量拥有一个局部作用域,定义在函数外的拥有全局作用域。
  • 局部变量只能在其被声明的函数内部访问,而全局变量可以在整个程序范围内访问。调用函数时,所有在函数内声明的变量名称都将被加入到作用域中。
  • global关键字能在函数内使用全局变量,而不用先去初始化

模块 当你导入一个模块,Python 解析器对模块位置的搜索顺序是:
1、当前目录
2、如果不在当前目录,Python 则搜索在 shell 变量 PYTHONPATH 下的每个目录。
3、如果都找不到,Python会察看默认路径。UNIX下,默认路径一般为/usr/local/lib/python/。
模块搜索路径存储在 system 模块的 sys.path 变量中。变量里包含当前目录,PYTHONPATH和由安装过程决定的默认目录。

5.容器


在python中,提供了四种容器,分别是list,tuple,set,dict

5.1 list容器

列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。
列表的数据项不需要具有相同的类型

1
2
3
list2 = [1, 2, 3, 4, 5 ]  
list3 = ["a", "b", "c", "d"]```   
list的常用方法
  • append:尾部添加
  • inser:插入
  • del: 删除
  • pop: 删除最后一个
  • remove;删除指定元素

PS:非常重要的是list可以切片索引

5.2 tuple

元组与列表类似,不同之处在于元组的元素不能修改。换句话说:元组可以添加元素,但是不能修改和删除里面的元素,其他操作和list基本。

PS:元组中只包含一个元素时,需要在元素后面添加逗号

1
tup1 = (50,)
5.3 dict

字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割
键一般是唯一的,如果重复最后的一个键值对会替换前面的,值不需要唯一。 值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。
dict = {'a': 1, 'b': 2, 'b': '3'}

dict的特点:

  • 查找速度快。无论是10个还是10万个,速度都是一样的,但是代价是耗费的内存大。List相反,占用内存小,但是查找速度慢。这就好比是数组和链表的区别,数组并不知道要开辟多少空间,所以往往开始就会开辟一个大空间,但是直接通过下标查找速度快;而链表占用的空间小,但是查找的时候必须顺序的遍历导致速度很慢
  • 没有顺序。Dict是无顺序的,而List是有序的集合,所以不能用Dict来存储有序集合
  • Key不可变,Value可变。一旦一个键值对加入dict后,它对应的key就不能再变了,但是Value是可以变化的。所以List不可以当做Dict的Key
  • Key不可重复。
5.4 set

类似于一个List,但是里面的内容不能重复.
set也是无序的,也不能包含重复的元素。

6.常用的库


  1. os库 : os 模块提供了非常丰富的方法用来处理文件和目录
  2. time库 : time 模块下有很多函数可以转换常见日期格式
  3. math库:math 模块提供了各种的数学函数
  4. 除此之外还有很多优秀的库……

Python中的对象:

可更改(mutable)与不可更改(immutable)对象

在 python 中,strings, tuples, 和 numbers 是不可更改的对象,而 list,dict 等则是可以修改的对象。

  • 不可变类型:变量赋值 a=5 后再赋值 a=10,这里实际是新生成一个 int 值对象 10,再让 a 指向它,而 5 被丢弃,不是改变a的值,相当于新生成了a。
  • 可变类型:变量赋值 la=[1,2,3,4] 后再赋值 la[2]=5 则是将 list la 的第三个元素值更改,本身la没有动,只是其内部的一部分值被修改了。

python 函数的参数传递:

  • 不可变类型:类似 c++ 的值传递,如 整数、字符串、元组。如fun(a),传递的只是a的值,没有影响a对象本身。比如在 fun(a)内部修改 a 的值,只是修改另一个复制的对象,不会影响 a 本身。
  • 可变类型:类似 c++ 的引用传递,如 列表,字典。如 fun(la),则是将 la 真正的传过去,修改后fun外部的la也会受影响