学习Python这么长时间了,今天感觉应该对所学的东西进行梳理与总结了。

    Python所能干的事很多,之前也学习和了解过其它编程语言,比如C、VB、PHP、Java,最早的时候还是在大学里学的C和VB,那时候上课也就是学的理论知识比较多,上机练习的机会比较少,所以也没怎么学起来。毕业工作后,第一次接触了PHP,因为公司所做的项目都是用PHP开发的,用了两年PHP,感觉相对来说挺好学的,掌握起来比较快。做开发期间也接触了不少测试和运维,偶然的机会了解到了Python,Python属于解释型的高级语言,能够做爬虫、自动化测试、自动化运维、大数据、人工智能等,容易上手又能干那么多事,所以来了兴趣,就开始自学起了Python。

    个人学的主要倾向于自动化测试和自动化运维及大数据,听起来挺高端的,不过,我觉得学的这些确实很有用又很好玩。根据个人所学的东西,我都一一的梳理出来,与大家分享,共同学习,共同进步。梳理的大体思路先从基础开始,然后再梳理高级的东西,接着再梳理Python所能干的,比如自动化测试、自动化运维和大数据方向的知识,当然最重要的是结合所做的项目经验都一一梳理出来与大家分享。本文主要先梳理基础知识,大约用2-3天的时间,希望能对大家有所帮助。多了不说,那就开始吧。

一、基础语法

    基础语法主要介绍下标识符、保留关键字、单行注释和多行注释和简单的输出。

1、标识符定义规范:

    1)第一个字符必须是字母或下划线_

    2)标识符的其它部分由字母、数字或下划线组成

    3)标识符对大小写敏感

2、保留字

    保留字即关键字,Python包含的保留字如下:

'False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield'

    保留字可以通过标准库提供的keyword模块进行输出,输入实例如下:

>>> import keyword
>>> keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

3、注释

    单行注释以#开头,实例如下:

# 第一个注释
print ("Hello, World!")

    多行注释可以用多个 # 号,或 ''' 和 """,实例如下:

# 第一个注释
# 第二个注释

'''
第三注释
第四注释
'''

4、打印输出

    输出函数print(),实例如下:

print ("Hello, World!")

二、数据类型

    Python的数据类型主要包含了六种标准的数据类型:

1)Number:数字

    数字类型包含整数、浮点数、复数和布尔类型

    int:例如1

    float:例如1.2

    complex:例如1.2j+2i

    bool:例如true

2)String:字符串

    字符串使用单引号和双引号完全相同;

    字符串截取语法格式为:变量[头下标:尾下标];

    字符串应用实例如下:

str='HelloWorld'
print(str)                 # 输出字符串
print(str[0:-1])           # 输出第一个到倒数第二个的所有字符
print(str[0])              # 输出字符串第一个字符
print(str[2:5])            # 输出从第三个开始到第五个的字符
print(str[2:])             # 输出从第三个开始的后的所有字符
print(str * 2)             # 输出字符串两次
print(str + '你好')        # 连接字符串
print('------------------------------')
print('hello\nrunoob')      # 使用反斜杠(\)+n转义特殊字符
print(r'hello\nrunoob')     # 在字符串前面添加一个 r,表示原始字符串,不会发生转义

3)List:列表

    应用实例如下:

list = [ 'abcd', 786 , 2.23, 'helloword', 70.2 ]
tinylist = [123, 'runoob']
print (list)            # 输出完整列表
print (list[0])         # 输出列表第一个元素
print (list[1:3])       # 从第二个开始输出到第三个元素
print (list[2:])        # 输出从第三个元素开始的所有元素
print (tinylist * 2)    # 输出两次列表
print (list + tinylist) # 连接列表


4)Tuple:元组

    应用实例如下:

tuple = ( 'abcd', 786 , 2.23, 'helloword', 70.2  )
tinytuple = (123, 'runoob')
print (tuple)             # 输出完整元组
print (tuple[0])          # 输出元组的第一个元素
print (tuple[1:3])        # 输出从第二个元素开始到第三个元素
print (tuple[2:])         # 输出从第三个元素开始的所有元素
print (tinytuple * 2)     # 输出两次元组
print (tuple + tinytuple) # 连接元组


5)Sets:集合

    集合(set)是一个无序不重复元素的序列。应用实例如下:

 student = {'Tom', 'Jim', 'Mary', 'Tom', 'Jack', 'Rose'} 
 print(student)   # 输出集合,重复的元素被自动去掉
 # 成员测试
 if('Rose' in student) :
     print('Rose 在集合中')
 else :
     print('Rose 不在集合中')
 
 # set可以进行集合运算
 a = set('abracadabra')
 b = set('alacazam')
 print(a)
 print(a - b)     # a和b的差集
 print(a | b)     # a和b的并集
 print(a & b)     # a和b的交集
 print(a ^ b)     # a和b中不同时存在的元素

6)Dictionary:字典

    字典(dictionary)是Python中另一个非常有用的内置数据类型。应用实例如下:

dict = {}
dict['one'] = "1 - 菜鸟教程"
dict[2]     = "2 - 菜鸟工具"
tinydict = {'name': 'helloword','code':1, 'site': 'www.helloword.com'} 
 
print (dict['one'])       # 输出键为 'one' 的值
print (dict[2])           # 输出键为 2 的值
print (tinydict)          # 输出完整的字典
print (tinydict.keys())   # 输出所有键
print (tinydict.values()) # 输出所有值

三、运算符

    Python支持的运算符如下:

  • 1)算术运算符

  • 运算符描述实例
    +加 - 两个对象相加a + b 输出结果 31
    -减 - 得到负数或是一个数减去另一个数a - b 输出结果 -11
    *乘 - 两个数相乘或是返回一个被重复若干次的字符串a * b 输出结果 210
    /除 - x 除以 yb / a 输出结果 2.1
    %取模 - 返回除法的余数b % a 输出结果 1
    **幂 - 返回x的y次幂a**b 为10的21次方
    //取整除 - 返回商的整数部分9//2 输出结果 4 , 9.0//2.0 输出结果 4.0
  • 2)比较(关系)运算符

  • 运算符描述实例
    ==等于 - 比较对象是否相等(a == b) 返回 False。
    !=不等于 - 比较两个对象是否不相等(a != b) 返回 True。
    >大于 - 返回x是否大于y(a > b) 返回 False。
    <小于 - 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。注意,这些变量名的大写。(a < b) 返回 True。
    >=大于等于 - 返回x是否大于等于y。(a >= b) 返回 False。
    <=小于等于 - 返回x是否小于等于y。(a <= b) 返回 True。
  • 3)赋值运算符

  • 运算符描述实例
    =简单的赋值运算符c = a + b 将 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
  • 4)逻辑运算符

  • 运算符逻辑表达式描述实例
    andx and y布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。(a and b) 返回 20。
    orx or y布尔"或" - 如果 x 是 True,它返回 x 的值,否则它返回 y 的计算值。(a or b) 返回 10。
    notnot x布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。not(a and b) 返回 False
  • 5)位运算符

  • 运算符描述实例
    &按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0(a & b) 输出结果 12 ,二进制解释: 0000 1100
    |按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。(a | b) 输出结果 61 ,二进制解释: 0011 1101
    ^按位异或运算符:当两对应的二进位相异时,结果为1(a ^ b) 输出结果 49 ,二进制解释: 0011 0001
    ~按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1。~x 类似于 -x-1(~a ) 输出结果 -61 ,二进制解释: 1100 0011, 在一个有符号二进制数的补码形式。
    <<左移动运算符:运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0。a << 2 输出结果 240 ,二进制解释: 1111 0000
    >>右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,">>"右边的数指定移动的位数a >> 2 输出结果 15 ,二进制解释: 0000 1111
  • 6)成员运算符

  • 运算符描述实例
    in如果在指定的序列中找到值返回 True,否则返回 False。x 在 y 序列中 , 如果 x 在 y 序列中返回 True。
    not in如果在指定的序列中没有找到值返回 True,否则返回 False。x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。
  • 7)身份运算符

  • 运算符描述实例
    isis 是判断两个标识符是不是引用自一个对象x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False
    is notis not 是判断两个标识符是不是引用自不同对象x is not y , 类似 id(a) != id(b)。如果引用的不是同一个对象则返回结果 True,否则返回 False。
  • 8)运算符优先级

  • 运算符描述
    **指数 (最高优先级)
    ~ + -按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@)
    * / % //乘,除,取模和取整除
    + -加法减法
    >> <<右移,左移运算符
    &位 'AND'
    ^ |位运算符
    <= < > >=比较运算符
    <> == !=等于运算符
    = %= /= //= -= += *= **=赋值运算符
    is is not身份运算符
    in not in成员运算符
    not or and逻辑运算符


四、条件控制

1、if语句

if condition_1:
    statement_block_1
elif condition_2:
    statement_block_2
else:    statement_block_3

实例如下:

var1 = 100
if var1:
    print ("1 - if 表达式条件为 true")
    print (var1)
var2 = 0
if var2:
    print ("2 - if 表达式条件为 true")
    print (var2)print ("Good bye!")


2、if嵌套

if 表达式1:
    语句
    if 表达式2:
        语句
    elif 表达式3:
        语句
    else:
        语句elif 表达式4:
    语句else:
    语句

实例如下:

num=int(input("输入一个数字:"))
if num%2==0:
    if num%3==0:
        print ("你输入的数字可以整除 2 和 3")
    else:
        print ("你输入的数字可以整除 2,但不能整除 3")
else:
    if num%3==0:
        print ("你输入的数字可以整除 3,但不能整除 2")
    else:
        print  ("你输入的数字不能整除 2 和 3")

五、循环语句

1、while循环

while 判断条件:
    语句

实例如下:

n = 100
sum = 0
counter = 1
while counter <= n:
    sum = sum + counter
    counter += 1
 print("1 到 %d 之和为: %d" % (n,sum))


2、for语句

for <variable> in <sequence>:
    <statements>
else:
    <statements>

实例如下:

sites = ["Baidu", "Google","Runoob","Taobao"]
for site in sites:
    if site == "Runoob":
        print("菜鸟教程!")
        break
    print("循环数据 " + site)
else:
    print("没有循环数据!")
print("完成循环!")

3、break和continue

    break 语句可以跳出 for 和 while 的循环体。如果你从 for 或 while 循环中终止,任何对应的循环 else 块将不执行。 实例如下:

for letter in 'Runoob':     # 第一个实例
   if letter == 'b':
      break
   print ('当前字母为 :', letter)
var = 10                    # 第二个实例
while var > 0:              
   print ('当期变量值为 :', var)
   var = var -1
   if var == 5:
      break
 print ("Good bye!")

六、相关软件下载

Python下载:

    V3.6.4(Windows)