python语言入门(一)

语言基础

1. 简介

对象是 Python 中最核心的一个概念,Python 与 PowerShell 的理念类似,一切都是对象。一个整数是一个对象,一个字符串是对象,一个类型也是一个对象。在面向对象理论中,Python的类和对象都是通过对象来实现的。

在 Python 中的,已经预先定义了一些内建类型的对象,提供了 Python 的基础数据类型。这些基础数据类型用来描述用户自定义的类的内容。

从 1989 年,Guido 在圣诞节揭开了 Python 的大幕,一直到现在,Python 经历了若干大版本的迭代,但是其实现语言都是 ANSI C。在 Python 中,创建对象的本质就是使用 C 中结构体在堆内存上申请一块内存。一般来说,对象是不能被静态初始化的,并且不能出现在栈空间上。唯一的例外就是类型也是对象的一种,Python 的内建类型都是被静态初始化的。

在 Python 中,一个对象一旦被创建,在内存中的大小就不能发生变化了,这就意味着那些可以变长度的数据需要维护一个指向一块可变大小的内存区域的指针。为什么要设定这样一条特殊的规则呢?因为遵循这样的规则可以让指针的维护工作变得简单。一旦允许对象在运行期可以改变大小,那么就需要维护对象大小变化以后得移动工作和指针重映射工作。

Python 作为一门强类型的动态语言,提供了丰富的抽象表达能力,并且提供了完善的脚本解释器。通过创建 Python 文件或者直接使用脚本解释器运行 Python 代码。当创建 Python 文件的时候需要在文件头部添加必要的描述:

#!/usr/bin/env python3
# -*- coding:utf-8 -*-

第一行指定了 Python 的解释器及其位置,第二行是因为 Python 中默认的编码格式是 ASCII 格式,在没修改编码格式时无法正确打印汉字,所以在读取中文时会报错。

2. 变量与数制

让我们从 HelloWorld 项目开始:

#!/usr/bin/env python3
# -*- coding:utf-8 -*-

if __name__ == "__main__":
    print("HelloWorld")

然后在命令行终端中执行:

python3 app.py

在 Python 中使用如下方式创建一个变量:

x = 1
x, y, z = 1, 2, 3  # 序列解包

根据上文所说,创建变量以后将会分配一个内存空间,可以通过 id 函数来查看:

id(x)

Python 会进行自动垃圾回收,但是也可以手动回收,使用 del 函数即可:

del(x)

在 Python 解释器中,可以使用 del 指令:

del x

刚才定义的变量是整型的,并且是十进制数字。Python 的数据类型是自动推导的,但是可以定义其他数制的数据:

数制表示法描述
十进制302常见的表示形式
八进制1070在数字末尾加 0
十六进制0xAF在数字头部加 0x
二进制0b110101在数字头部加 0b

在Python中,名称(标识符)只能由字母、数字和下划线(_)构成,且不能以数字开头。

Python 为提供数字类型,但是实际上 Python 内部将数字类型分为了整型、浮点型。此外,Python 还提供了字符串、元组、列表和字典类型。

3. 运算符

Python 提供了丰富的运算符供我们使用:算术运算符、关系运算符、赋值运算符、位运算符、成员运算符、身份运算符。

  • 算术运算符:参与数学运算

    运算符描述示例
    +两个对象相加1 + 1'a' + 'b'
    -相减1 - 1
    *相乘1 * 5
    /相除1 / 2
    %求余(取模)54 % 7
    **幂运算2**10
    //取整除(取商)3 // 5
  • 关系运算符:参与关系比较运算,通常用于条件分支

    运算符描述示例
    ==等于1 == 1
    !=不等于1 != 1
    <>不等于(Python3 已经废弃)1 <> 1
    >>=大于,大于等于1 > 24 >= 2
    <<=小于,小于等于2 < 33 <= 3
  • 赋值运算符:主要是为了简化运算

    运算符描述示例
    =将值赋值给变量x = 1
    +=原地加法运算x += 1,等价于 x = x + 1
    -=原地减法运算x -= 1,等价于 x = x - 1
    *=原地乘法运算x *= 1,等价于 x = x * 1
    /=原地除法运算x /= 1,等价于 x = x / 1
    %=原地取模运算x %= 1,等价于 x = x % 1
    **=原地幂运算x **= 1,等价于 x = x ** 1
    //=原地商运算x //= 1,等价于 x = x // 1
  • 位运算符:用于内部进行二进制运算

    运算符描述示例
    &按位与运算0b11011 & 0b10
    ¦按位或运算0b11011 ¦ 0b10
    ^按位异或运算0b1011 ^ 0b10
    ~按位取反运算~0b11100101
    <<左移动运算8 << 2
    >>右移动运算9 >> 1
  • 逻辑运算符:用户布尔运算

    运算符描述示例
    and逻辑与运算x and y
    or逻辑或运算x or y
    not逻辑取反运算not x
  • 成员运算符:用于对象与序列之间的运算

    运算符描述示例
    in判断指定的值是否在序列中x in seq
    not inin 的取反x not in seq
  • 身份运算符:用于对象与对象之间的运算

    运算符描述示例
    is判断两个标识符是不是引用自一个对象x is y
    is notis 的取反x is not y
  • 运算符优先级:

    运算符描述
    **指数 (最高优先级)
    ~ + -按位翻转, 一元加号和减号
    * / % //乘,除,取模和取整除
    + -加法减法
    >> <<右移,左移运算符
    &位 'AND'
    ^ ¦位运算符
    <= < > >=比较运算符
    <> == !=等于运算符
    = %= /= //= -= += *= **=赋值运算符
    is is not身份运算符
    in not in成员运算符
    not and or逻辑运算符
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值