zoukankan      html  css  js  c++  java
  • 1、python 入门--简介 基础语法 运算符

    python 简介

      Python是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。

      Python的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。

    • Python 是一种解释型语言: 这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言。

    • Python 是交互式语言: 这意味着,您可以在一个Python提示符,直接互动执行写你的程序。

    • Python 是面向对象语言: 这意味着Python支持面向对象的风格或代码封装在对象的编程技术。

    • Python是初学者的语言:Python 对初级程序员而言,是一种伟大的语言,它支持广泛的应用程序开发,从简单的文字处理到 WWW 浏览器再到游戏 

    Python特点

      • 1.易于学习:Python有相对较少的关键字,结构简单,和一个明确定义的语法,学习起来更加简单。
      • 2.易于阅读:Python代码定义的更清晰。

      • 3.易于维护:Python的成功在于它的源代码是相当容易维护的。

      • 4.一个广泛的标准库:Python的最大的优势之一是丰富的库,跨平台的,在UNIX,Windows和Macintosh兼容很好。

      • 5.互动模式:互动模式的支持,您可以从终端输入并获得结果的语言,互动的测试和调试代码片断。

      • 6.便携式:Python可以运行在多种硬件平台和所有平台上都具有相同的接口。

      • 7.可扩展:可以添加低层次的模块到Python解释器。这些模块使程序员可以添加或定制自己的工具,更有效。

      • 8.数据库:Python提供所有主要的商业数据库的接口。

      • 9.GUI编程:Python支持GUI可以创建和移植到许多系统调用。

      • 10.可扩展性:相比 shell 脚本,Python 提供了一个更好的结构,且支持大型程序。

    Python 中文编码

      在python 2.X中,如果直接输出中文字符串,就有可能会碰到中文编码问题。如:

    print “你好,阿牧”

      则输出结果会是:

    File "test.py", line 2
    SyntaxError: Non-ASCII character 'xe4' in file test.py on line 2, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details

      解决办法是在文件开头加入 # -*- coding: UTF-8 -*- 或者 #coding=utf-8 就行了。

    #conding=utd-8
    print “你好,阿牧”

      则输出结果为:你好,阿牧

    注意:Python3.X 源码文件默认使用utf-8编码,所以可以正常解析中文,无需指定 UTF-8 编码。

    Python 基础语法

    标识符

    • 在python里,标识符有字母、数字、下划线组成。
    • 在python中,所有标识符可以包括英文、数字以及下划线(_),但不能以数字开头。
    • python中的标识符是区分大小写的。

    保留字符

      下面的列表显示了在Python中的保留字。这些保留字不能用作常数或变数,或任何其他标识符名称。所有Python的关键字只包含小写字母。

    and exec not
    assert finally or
    break for pass
    class from print
    continue global raise
    def if return
    del import try
    elif in while
    else is with
    except lambda yield

    行和缩进

      学习Python与其他语言最大的区别就是,Python的代码块不使用大括号({})来控制类,函数以及其他逻辑判断。python最具特色的就是用缩进来写模块。

      缩进的空白数量是可变的,但是所有代码块语句必须包含相同的缩进空白数量,这个必须严格执行。

    多行语句

      Python语句中一般以新行作为为语句的结束符。但是我们可以使用斜杠( )将一行的语句分为多行显示,如下所示:

    1 total = item_one +  
    2         item_two + 
    3         item_three

    语句中包含[], {} 或 () 括号就不需要使用多行连接符。如下实例:

    1 days = ['Monday', 'Tuesday', 'Wednesday',
    2         'Thursday', 'Friday']

    空行

      函数之间或类的方法之间用空行分隔,表示一段新的代码的开始。类和函数入口之间也用一行空行分隔,以突出函数入口的开始。

      空行与代码缩进不同,空行并不是 Python 语法的一部分。书写时不插入空行,Python 解释器运行也不会出错。但是空行的作用在于分隔两段不同功能或含义的代码,便于日后代码的维护或重构。

    记住:空行也是程序代码的一部分。

    引号

    Python 接收单引号(' ),双引号(" ),三引号(''' """) 来表示字符串,引号的开始与结束必须的相同类型的。

    其中三引号可以由多行组成,编写多行文本的快捷语法,常用语文档字符串,在文件的特定地点,被当做注释。

    word = 'word'
    sentence = "这是一个句子"
    paragraph = """这是一个段落
    包含了多个语句"""

    注释

      python中单行注释采用 # 开头。

    1 # -*- coding: UTF-8 -*-
    2 # 文件名:test.py
    3 
    4 # 第一个注释
    5 print "Hello, Python!";  # 第二个注释

      python 中多行注释使用三个单引号(''')或三个双引号(""")。

     1 # -*- coding: UTF-8 -*-
     2 # 文件名:test.py
     3 
     4 
     5 '''
     6 这是多行注释,使用单引号。
     7 这是多行注释,使用单引号。
     8 这是多行注释,使用单引号。
     9 '''
    10 
    11 """
    12 这是多行注释,使用双引号。
    13 这是多行注释,使用双引号。
    14 这是多行注释,使用双引号。
    15 """

    等待用户输入

    在python 2.x中有两个等待用户输入的函数:input和raw_input,两者的区别如下:

    raw_input()函会将从用户处接收到的数据转换为字符串返回,而input()函数会严格按转数据类型返回。

    raw_input()函数的使用:

    1 name=raw_input('输入姓名:')
    2 age=raw_input('输入年龄')

    输入时:

    1 输入姓名:许嵩
    2 输入年龄:31

    input()函数的使用:

    1 name=input('输入姓名:')
    2 age=input('输入年龄:')

    输入时:

    1 输入姓名:'许嵩'
    2 输入年龄:31

    而在python 3.x中,整合了这两个函数,只保留了input()函数。

    同一行写多条语句

    Python 可以在同一行中使用多条语句,语句之间使用分号;分割。

    1 import sys; x = 'hello world'; sys.stdout.write(x + '')

    多个语句构成代码组

    缩进相同的一组语句构成一个代码块,我们称之代码组。

    像if、while、def和class这样的复合语句,首行以关键字开始,以冒号( : )结束,该行之后的一行或多行代码构成代码组。

    我们将首行及后面的代码组称为一个子句(clause)。

    如下实例:

    1 if expression : 
    2    suite 
    3 elif expression :  
    4    suite  
    5 else :  
    6    suite 

    print 输出

    python 2.x与python 3.x中的print语句有些区别:

    python 2.x:

    print 默认输出是换行的,如果要实现不换行需要在末尾加上分号或别的非换行符字符串:

    print '123'  #默认换行
    print '123';  #不换行

    python 3.x

    print 默认输出是换行的,如果要实现不换行需要在变量末尾加上end=""或别的非换行符字符串:

    print('123') # 默认换行
    print('123', end = "") # 不换行

    import 与 from…import

    在 Python 用 import 或者 from...import 来导入相应的模块。

    将整个模块导入,格式为:import module_name

    从某个模块中导入某个函数,格式为:from module_name import func1

    从某个模块中导入多个函数,格式为:from module_name import func1, func2, func3

    将某个模块中的全部函数导入,格式为:from module_name import *

    Python 运算符

    算术运算符

    python算数运算符与高级语言C、C++的算术运算符是一致的。

    以下假设变量: a=10,b=20

    运算符描述实例
    + 加 - 两个对象相加 a + b 输出结果 30
    - 减 - 得到负数或是一个数减去另一个数 a - b 输出结果 -10
    * 乘 - 两个数相乘或是返回一个被重复若干次的字符串 a * b 输出结果 200
    / 除 - x除以y b / a 输出结果 2
    % 取模 - 返回除法的余数 b % a 输出结果 0
    ** 幂 - 返回x的y次幂 a**b 为10的20次方, 输出结果 100000000000000000000
    // 取整除 - 返回商的整数部分(向下取整 9//2 输出结果 4 , 9.0//2.0 输出结果 4.0

    比较运算符

    python算数运算符与高级语言C、C++的算术运算符基本一致的,但多了<>比较运算符。

    以下假设变量a为10,变量b为20:

    运算符描述实例
    == 等于 - 比较对象是否相等 (a == b) 返回 False。
    != 不等于 - 比较两个对象是否不相等 (a != b) 返回 true.
    <> 不等于 - 比较两个对象是否不相等 (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。

    赋值运算符

    以下假设变量a为10,变量b为20:

    运算符描述实例
    = 简单的赋值运算符 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

    位运算符

    按位运算符是把数字看作二进制来进行计算的。Python中的按位运算法则如下:

    下表中变量 a 为 60,b 为 13,二进制格式如下:

    运算符描述实例
    & 按位与运算符:参与运算的两个值,如果两个相应位都为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

    逻辑运算符

    Python语言支持逻辑运算符,以下假设变量 a 为 10, b为 20:

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

    成员运算符

    除了以上的一些运算符之外,Python还支持成员运算符,测试实例中包含了一系列的成员,包括字符串,列表或元组。

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

    身份运算符

    身份运算符用于比较两个对象的存储单元

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

    注: id() 函数用于获取对象内存地址。

    运算符优先级

    以下表格列出了从最高到最低优先级的所有运算符:

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

    具有相同优先级的运算符将从左至右的方式依次进行。用小括号()可以改变运算顺序。

  • 相关阅读:
    linux sed命令详解
    SQL注入基础知识
    DC-7
    DC-6
    DC-5
    DC-4
    DC-3
    DC-2
    pentestlabs
    任意文件读取和下载
  • 原文地址:https://www.cnblogs.com/Long-w/p/7417619.html
Copyright © 2011-2022 走看看