——雁丘
关于Python
安装与环境变量配置请查看本专栏文章Python安装与环境变量配置傻瓜式教程(2023年9月)
关于Pycharm
的安装部署和基本使用请查看本专栏文章Python解释器和Pycharm的傻瓜式安装部署
适用面广、简单易学、开发效率高
支持面向对象、面向函数、函数式编程等多种编程方式,同时还是一种胶水语言,很容易与其他主流设计语言混合编程
3/4=0.75
而不是0,所有的字符串都是Unicode字符串等Python 开发环境通常包括两类:Python 编辑器和集成开发环境(integrated development environment.IDE)
常用的 Python 编辑器有 Sublime Text
和 Visual Studio Code
等,它们首先需要安装好基本的 Python 运行环境,一般都具有自动补全和智能提示等编辑和调试功能。
小巧,定制方便,但功能相对简单。
Python IDE 如 PyCharm
和Anaconda
等则功能更丰富,不仅包含基本的 Python 运行环境和编辑器,一般还具有项目管理和版本控制等功能,通常还预装了某些扩展库、文档和教程,可省去安装模块和寻找使用帮助的麻烦。
Anaconda
集成了大量流行的科学计算和数据分析第三方库,推荐新手和专供数据处理的人使用
IDLE是 Python 官方内置的一个简单小巧的 IDE。它包含了编辑器、交互式命令行和调试器等基本组件,可以应付大多数 Python 的简单应用开发。在 Python 官网提供了多个操作系统下的IDLE 安装包。
可以在 PyPI 页面上搜索和安装、发布 Python 第三方库(模块)
安装其中的第三方库官方推荐使用Python 库管理工具 pip
,只要将第三方库下载到本地然后进行安装即可。
举例
安装安卓自动测试库atx
,步骤为:
python get-pip. py
3 使用 pip 安装 atx 第三方库。
pip install atx
无论哪种方式,实质上都是解释执行,代码较短或较多交互操作优先 Shell 交互方式 ;代码较长优先文件执行方式
每输入一条命令就执行,常见于命令提示符和 Python 编辑器
创建一个扩展名为.py
的文件,每次保存后整体运行
变量、表达式和语句是 Python 程序的基本要素
Python 中的变量(variable)是用来标识对象或引用对象的。Python 作为一种面向对象的编程语言,它的实例、函数、方法、类都是对象。
所有的 Python 对象都拥有三个属性,即身份、类型和值。
id(指向对象的变量)
来得到这个身份标识。type()
查看Python 对象的类型。Python 中变量名的命名规则也与大多数程序设计语言一样遵循标识符命名规则:
Python 无需声明变量的类型,在第一次赋值由值自动确定变量的类型
对于内存中的对象 Python 会采用一种称为“引用计数”的方式进行管理
当对象被赋给某个变量时,该变量计数器+1
当计数器为0时,该对象的内存空间被回收
a = 1.2 ; b = 1.2 # 此时a ,b 的id不同
a = 1.2 ; b = a # 此时a ,b 的id相同
但注意,对于小整数[ -5 , 256 ]和仅包含数字、字母和下划线的常量字符串 Python 会缓存和重用,即上述两种情况id均相同
一个函数内部相同的不可变对象id也相同
for number in num
prog = prog * number
print ('the prog is:',prog)
;
隔开,或者换行\
1.+
、-
、*
、/
常规赋值
2. +=
、-=
、*=
、/=
、%=
、**=
、<<=
、>>=
、&=
、^=
、|=
增量赋值
m /= 5 # 相当 m = m / 5
b = a = a + 1 # 相当 a = a + 1 ,b = a
a , b =1 , 2
( a , b ) = ( 1 , 2 )
# 单行注释
'''
这是多行注释
'''
# ''' 多行注释'''
'''
# 单行注释
'''
变量没有类型,数据才有类型
如何查看数据类型,通过内置函数type()
type(变量名或数据)
Python 数据类型 | |||
---|---|---|---|
类型 | 描述 | 举例 | |
数字Number | 整型(Int) | 10,-10 | |
浮点型(Float) | 3.14159,-3.14159 | ||
复数型(Complex) | 5j,(6+3j) | ||
布尔型(Bool) | True,False | ||
序列Array | 字符串String | 用以存储文本 | 'yanqiu'、"ayu"、'''ahao''' |
列表List | 有序的可变序列 | [ 1 , 'yanqiu' , 4 ] | |
元组Tuple | 有序的不可变数列 | ( 1 , 'yanqiu' , 4 ) | |
对象Range | 有规律的整数数列 | range(1,11) | |
集合Set | 无序的不重复集合 | set_a = {'apple', 'banana', 'cherry'} | |
映射Mapping | 字典Dictionary | 无序Key-Value集合 | favorite_language = { 'jen': 'python', 'phil': 'python'} |
非二进制数的表示 | |
---|---|
进制 | 举例 |
二进制 | 0b10 |
八进制 | 0b10 |
十六进制 | 0x10 |
>>> a=3
>>>type(a)
<class'int'>
>>>type(-8)
<class'int'>
在 Python3之后,不再严格区分
int
和long
(长整型)
>>> a=True
>>>type(a)
<class'bool'>
>>>int(a)
1
>>>int(False)
0
bool
实质是用0、1存储的,True对应1,False对应0,可以用内置函数int()
返回布尔型变量的整型值
元素除了是 0、空、False、None外 都算 True;
>>> 3.22
3.22
>>>9.8e3
9800
>>> type(-0.48e-2)
<class'float'>
>>> 3+5j
(3+5j)
>>>4j
4j
>>> type(3+5j)
<class'complex'>
特别地,为了保证数是虚数,
0j
前的0不能省略
这里仅简单介绍,详细的使用方法参见本系列下篇
字符串(string)用引号引起来的字符集合。字符串创建后不可变,在 Python 中可以使用单引号、双引号、三引号表示字符串。例如:
>>> myStringl = 'Hello, World!'
>>> myString2 = "Hello, World!"
>>>> myString3 = '''Hello, World! ''' #用 print()函数输出这 3个字符串变量的结果都是
"Hello,World!"
"Hello,World!"
"Hello,World!"
单个元素通过索引来访问,索引值从0开始
多个字符通过切片操作来访问。
>>> myStringl[ 0]
'H'
列表是 Python 中有特色的经典数据类型。列表与字符串一样也是序列类型,但是列表是可变的容器。
与传统的数组相比,列表可以存储不同类型的数据对象
列表也同样支持索引和切片操作。
>>> aList = [ 1, 'Maths ', 88]
>>> aList
[1,'Maths',88]
>>> aList[2] = 90 # 改变了索引值为2的元素的值
>>>> aList
[1, ' Maths ',90]
元组和列表有很多相似的地方,它们都可以存储不同类型的数据对象,都支持索引和切片操作等。但元组是不可变的。
>>> aTuple = (1,'Maths',88)
>>> aTuple
(1,'Maths',88)
>>> aTuple[2] = 90 # 在元组中试图改变元素值会报错
Traceback ( most recent call last) :
File " " , line 1, in <module>
aTuple[2] = 90
TypeError: 'tuple' object does not support item assignmen
Python 中使用range()
函数生成一个不可变的 range 对象,一个有规律的整数序列。例如
>>> list( range( 1, 11) )
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
range()
函数常常用在 for 循环中
字典是 Python 中唯一的一种映射类型。字典中每一个元素都由一个键和一个值构成的键值对组成。
使用不可变对象作为键,常见的是使用字符串作为键去索引一个值
>>> aDict = {'sine ': ' sin ', ' cosine ': ' cos ', ' PI': 3. 14159}
字典通过键来访问值
>>> aDict[' sine ']
'sin '
# 通过键'sine'得到值'sin'。
数据类型之间,在特定的场景下,是可以相互转换的,如字符串转数字、数字转字符串等,由于 Python 是一种强类型的语言,所以在运算中变量类型不能自动转换
int(x) # 将x转换为一个整数
float(x) # 将x转换为一个浮点数
str(x) # 将x转换为字符串