Python学习笔记

本文详细介绍了Python的基础语法,包括标识符、保留字符、行和缩进、多行语句、引号、注释、空行的使用,以及等待用户输入、printf输出和多个语句构成代码组的方法。此外,还讲解了Python的变量类型,如数字、字符串、列表、元组和字典,以及变量赋值、数据类型转换、运算符、条件语句、循环语句和函数。最后,文章提到了Python中的模块、类和面向对象编程,以及正则表达式的基本用法。
摘要由CSDN通过智能技术生成

基础语法

  • 代码中包含中文:文件开头加# -\*- coding: UTF-8 -\*- 或者# coding=utf-8

Python标识符

  • 在 Python 里,标识符由字母、数字、下划线组成。

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

  • 以下划线开头的标识符是有特殊意义的。以单下划线开头 _foo 的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用 from xxx import * 而导入。

  • 以双下划线开头的__foo 代表类的私有成员,以双下划线开头和结尾的 __foo__ 代表 Python 里特殊方法专用的标识,如 __init__() 代表类的构造函数。

  • Python 可以同一行显示多条语句,方法是用分号 ; 分开

Python保留字符

  • 保留字不能用作常数或变数,或任何其他标识符名称。

    所有 Python 的关键字只包含小写字母。

行和缩进

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

多行语句

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

total = item_one + \
        item_two + \
        item_three
  • 语句中包含 [], {} 或 () 括号就不需要使用多行连接符

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

Python引号

  • Python 可以使用引号( ' )、双引号( " )、三引号( '''""" ) 来表示字符串,引号的开始与结束必须是相同类型的。

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

Python注释

  • python中单行注释采用 # 开头,python 中多行注释使用三个单引号(''')或三个双引号(""")(开头与结尾)。

Python空行

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

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

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

等待用户输入

  • 下面的程序执行后就会等待用户输入,按回车键后就会退出:

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    ​
    raw_input("按下 enter 键退出,其他任意键显示...\n")

    以上代码中 ,\n 实现换行。一旦用户按下 enter(回车) 键退出,其它键显示。

printf输出

  • print 默认输出是换行的,如果要实现不换行需要在变量末尾加上逗号 ,

多个语句构成代码组

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

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

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

Python变量类型

变量赋值

  • Python 中的变量赋值不需要类型声明。每个变量在内存中创建,都包括变量的标识,名称和数据这些信息。

  • 每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。等号 = 用来给变量赋值。等号 = 运算符左边是一个变量名,等号 = 运算符右边是存储在变量中的值。例如:

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
     
    counter = 100 # 赋值整型变量
    miles = 1000.0 # 浮点型
    name = "John" # 字符串

多个变量赋值

  • Python允许你同时为多个变量赋值。例如:

    a = b = c = 1

    以上实例,创建一个整型对象,值为1,三个变量被分配到相同的内存空间上。

    您也可以为多个对象指定多个变量。例如:

    a, b, c = 1, 2, "john"

标准数据类型:

Numbers(数字)

  • 数字数据类型用于存储数值。他们是不可改变的数据类型,这意味着改变数字数据类型会分配一个新的对象。当你指定一个值时,Number 对象就会被创建:

    var1 = 1
    var2 = 10

    您也可以使用del语句删除一些对象的引用。del语句的语法是:

    del var1[,var2[,var3[....,varN]]]

    您可以通过使用del语句删除单个或多个对象的引用。例如:

    del var
    del var_a, var_b

    Python支持四种不同的数字类型:

    • int(有符号整型)

    • long(长整型,也可以代表八进制和十六进制)

    • float(浮点型)

    • complex(复数)

    实例

    一些数值类型的实例:

    int long float complex
    10 51924361L 0.0 3.14j
    100 -0x19323L 15.20 45.j
    -786 0122L -21.9 9.322e-36j
    080 0xDEFABCECBDAECBFBAEl 32.3e+18 .876j
    -0490 535633629843L -90. -.6545+0j
    -0x260 -052318172735L -32.54e100 3e+26j
    • 长整型也可以使用小写 l,但是还是建议您使用大写 L,避免与数字 1 混淆。Python使用 L 来显示长整型。

    • Python 还支持复数,复数由实数部分和虚数部分构成,可以用 a + bj,或者 complex(a,b) 表示, 复数的实部 a 和虚部 b 都是浮点型。

String字符串

  • 字符串或串(String)是由数字、字母、下划线组成的一串字符。

  • 它是编程语言中表示文本的数据类型。

    python的字串列表有2种取值顺序:

    • 从左到右索引默认0开始的,最大范围是字符串长度少1

    • 从右到左索引默认-1开始的,最大范围是字符串开头

      img

  • 加号(+)是字符串连接运算符,星号(*)是重复操作

  • *\#!/usr/bin/python 
    # -*- coding: UTF-8 -*-  
    
    str = 'Hello World!'  
    print str           # 输出完整字符串 
    print str[0]        # 输出字符串中的第一个字符 
    print str[2:5]      # 输出字符串中第三个至第六个之间的字符串 
    print str[2:]       # 输出从第三个字符开始的字符串 
    print str * 2       # 输出字符串两次 
    print str + "TEST"  # 输出连接的字符串

    以上实例输出结果:

    Hello World!
    H
    llo
    llo World!
    Hello World!Hello World!
    Hello World!TEST

Python列表

  • List(列表) 是 Python 中使用最频繁的数据类型。

  • 列表可以完成大多数集合类的数据结构实现。它支持字符,数字,字符串甚至可以包含列表(即嵌套)。

  • 列表用 [ ] 标识,是 python 最通用的复合数据类型。

  • 列表中值的切割也可以用到变量 [头下标:尾下标] ,就可以截取相应的列表,从左到右索引默认 0 开始,从右到左索引默认 -1 开始,下标可以为空表示取到头或尾。

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
     
    list = [ 'runoob', 786 , 2.23, 'john', 70.2 ]
    tinylist = [123, 'john']
     
    print list               # 输出完整列表
    print list[0]            # 输出列表的第一个元素
    print list[1:3]          # 输出第二个至第三个元素 
    print list[2:]           # 输出从第三个开始至列表末尾的所有元素
    print tinylist * 2       # 输出列表两次
    print list + tinylist    # 打印组合的列表

    以上实例输出结果:

    ['runoob', 786, 2.23, 'john', 70.2]
    runoob
    [786, 2.23]
    [2.23, 'john', 70.2]
    [123, 'john', 123, 'john']
    ['runoob', 786, 2.23, 'john', 70.2, 123, 'john']

Python元组

  • 元组是另一个数据类型,类似于 List(列表)。

  • 元组用 () 标识。内部元素用逗号隔开。但是元组不能二次赋值,相当于只读列表。

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
     
    tuple = ( 'runoob', 786 , 2.23, 'john', 70.2 )
    tinytuple = (123, 'john')
     
    print tuple               # 输出完整元组
    print tuple[0]            # 输出元组的第一个元素
    print tuple[1:3]          # 输出第二个至第四个(不包含)的元素 
    print tuple[2:]           # 输出从第三个开始至列表末尾的所有元素
    print tinytuple * 2       # 输出元组两次
    print tuple + tinytuple   # 打印组合的元组

    以上实例输出结果:

    ('runoob', 786, 2.23, 'john', 70.2)
    runoob
    (786, 2.23)
    (2.23, 'john', 70.2)
    (123, 'john', 123, 'john')
    ('runoob', 786, 2.23, 'john', 70.2, 123, 'john')

    以下是元组无效的,因为元组是不允许更新的。而列表是允许更新的:

    \#!/usr/bin/python 
    # -*- coding: UTF-8 -*-  
    tuple = ( 'runoob', 786 , 2.23, 'john', 70.2 ) 
    list = [ 'runoob', 786 , 2.23, 'john', 70.2 ] 
    tuple[2] = 1000    # 元组中是非法应用 
    list[2] = 1000     # 列表中是合法应用

Python字典

  • 字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型。列表是有序的对象集合,字典是无序的对象集合。

  • 两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。

  • 字典用"{ }"标识。字典由索引(key)和它对应的值value组成。

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
     
    dict = {}
    dict['one'] = "This is one"
    dict[2] = "This is two"
     
    tinydict = {'name': 'runoob','code':6734, 'dept': 'sales'}
     
     
    print dict['one']          # 输出键为'one' 的值
    print dict[2]              # 输出键为 2 的值
    print tinydict             # 输出完整的字典
    print tinydict.keys()      # 输出所有键
    print tinydict.values()    # 输出所有值

    输出结果为:

    This is one
    This is two
    {'dept': 'sales', 'code': 6734, 'name': 'runoob'}
    ['dept', 'code', 'name']
    ['sales', 6734, 'runoob']

Python数据类型转换

  • 有时候,我们需要对数据内置的类型进行转换,数据类型的转换,你只需要将数据类型作为函数名即可。

    以下几个内置的函数可以执行数据类型之间的转换。这些函数返回一个新的对象,表示转换的值。

    函数 描述
    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 转换为一个列表
    set(s) 转换为可变集合
    dict(d) 创建一个字典。d 必须是一个序列 (key,value)元组。
    frozenset(s) 转换为不可变集合
    chr(x) 将一个整数转换为一个字符
    unichr(x) 将一个整数转换为Unicode字符
    ord(x) 将一个字符转换为它的整数值
    hex(x) 将一个整数转换为一个十六进制字符串
    oct(x) 将一个整数转换为一个八进制字符串

Python运算符

Python算术运算符

  • 运算符 描述
    + 加 ——两个对象相加
    - 减 —— 得到负数或是一个数减去另一个数
    * 乘 ——两个数相乘或是返回一个被重复若干次的字符串
    / 除 —— x除以y
    % 取模 —— 返回除法的余数
    ** 幂 —— 返回x的y次幂
    // 取整除 —— 返回商的整数部分(向下取整
  • 注:整数除整数,只能得出整数。如果要得到小数部分,把其中一个数改成浮点数即可。

Python比较运算符

运算符 描述
== 等于 ——比较对象是否相等
!= 不等于 —— 比较两个对象是否不相等
<> 不等于 —— 比较两个对象是否不相等。(python3 已废弃)
> 大于 —— 返回x是否大于y
< 小于 —— 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。
>= 大于等于 —— 返回x是否大于等于y。
<= 小于等于 —— 返回x是否小于等于y。

Python赋值运算符

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

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

    下表中变量 a 为 60,b 为 13(二进制下a=0011 1100,b=0000 1101)二进制格式如下:

运算符 描述 实例
& 按位与运算符:参与运算的两个值,如果两个相应位都为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
>> 右移动运算符࿱
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值