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 > 2
,4 >= 2
<
,<=
小于,小于等于 2 < 3
,3 <= 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 in
in
的取反x not in seq
身份运算符:用于对象与对象之间的运算
运算符 描述 示例 is
判断两个标识符是不是引用自一个对象 x is y
is not
is
的取反x is not y
运算符优先级:
运算符 描述 **
指数 (最高优先级) ~ + -
按位翻转, 一元加号和减号 * / % //
乘,除,取模和取整除 + -
加法减法 >> <<
右移,左移运算符 &
位 'AND' ^ ¦
位运算符 <= < > >=
比较运算符 <> == !=
等于运算符 = %= /= //= -= += *= **=
赋值运算符 is is not
身份运算符 in not in
成员运算符 not and or
逻辑运算符
python语言入门(一)相关推荐
- python语言入门m-「数据挖掘入门系列」Python快速入门
Python环境搭建 本次入门系列将使用Python作为开发语言.要使用Python语言,我们先来搭建Python开发平台.我们将基于Python 2.7版本.以及Python的开发发行版本Anaco ...
- python语言编程基础-Python语言入门详解!快速学成Python!
原标题:Python语言入门详解!快速学成Python! 很多技能是被职场所需要的,但很可惜... 这些技能在大学中并学习不到. 大学和职场现实存在的横沟对大部分同学来说难以跨越或碰得头破血流... ...
- python语言入门pdf-Python语言入门.pdf
本书是国内第一本讲述Python语言的图书.Python是一种功能十分强大的面向对象编程语言,可以用于编写独立程序.快速脚本和复杂应用的原型.作为一种开源软件,Python可以自由获取,而且非常易学易 ...
- python语言入门n-python语言入门之字符串的一些用法
本篇教程探讨了python语言入门之字符串的一些用法,希望阅读本篇文章以后大家有所收获,帮助大家对相关内容的理解更加深入. < 一.字符串的拼接: a="123' b="ab ...
- python语言入门m-Python语言入门详解!快速学成Python!
今日主题 "Python语言入门详解" 近两年来,Python语言借着数据科学和人工智能的"东风"成为了最流行的编程语言--街头巷尾人们口口相传.同时,Pyth ...
- python语言入门pdf-python语言入门
python语言入门高清版是一本对python入门初学者的一本参考学习图书,该书详细的概述了Python语言的基本特点,讲解透彻好懂,有需要的来下载吧! 一款很不错的Python初学者使用书籍 pyt ...
- python人工智能pdf_800G人工智能学习资料:AI电子书+Python语言入门+教程+机器学习等限时免费领取!...
人工智能的热潮在今年再创高峰.无论是政策上还是资本市场上,抑或是我们日常生活中,关于人工智能的消息从未间断,逐渐占据我们每个人的视线.可以看出,人工智能得到了由上至下,国内国外的一致支持. 基于这股热 ...
- python语言入门-Python语言入门详解!快速学成Python!
原标题:Python语言入门详解!快速学成Python! 很多技能是被职场所需要的,但很可惜... 这些技能在大学中并学习不到. 大学和职场现实存在的横沟对大部分同学来说难以跨越或碰得头破血流... ...
- python语言入门-Python语言入门.pdf
本书是国内第一本讲述Python语言的图书.Python是一种功能十分强大的面向对象编程语言,可以用于编写独立程序.快速脚本和复杂应用的原型.作为一种开源软件,Python可以自由获取,而且非常易学易 ...
- python语言入门-python语言入门资料
PyQt5是基于Digia公司强大的图形程式框架Qt5的python接口,由一组python模块构成.PyQt5本身拥有超过620个类和6000函数及方法.在可以运行于多个平台.PyQt5拥有双重协议 ...
最新文章
- android 8.0的imei简书,Android 8.0通知栏渠道,渠道组的适配和使用
- linux vim编辑kconfig 无法wq,Linux-4.9.2内核在mini2440上的移植(三)——编译环境测试...
- 光纤收发器出现死机故障怎么解决
- 【HDU - 5922】Minimum’s Revenge(思维,最小生成树变形)
- C++中的声明和定义
- 【Proteus仿真8086】往8086 内存中写入数据
- 史上最全Java集合关系图
- hibernate中session 与JDBC中 connection分析
- 我的世界 java 种子,我的世界Java版优质种子分享
- 用java编写圆锥,java编写圆锥形体积
- Apple Pencil有必要买正版吗?Apple Pencil平替推荐
- 针对iPhone X和iPhone XS这些傻叉手机安全距离的设定
- 弹跳机器人 桌游_「桌游推荐」我的机器人哪有这么厉害
- #6279. 数列分块入门 3
- JavaScript混淆安全加固
- Java用“埃氏筛法”求素数
- 大厂卡你的学历,究竟是为了什么?
- 【ERP】ERP之薪资管理系统部分笔记
- AP计算机科学A和数学,A Level数学、IB数学及AP数学,三者有哪些具体区别?
- 蓝桥杯javaB组穿越雷区