纸上得来终觉浅,绝知此事要躬行!
目录
Python程序可以分解成模块、语句、表达式以及对象:
程序由模块构成——模块包含语句——语句包含表达式——表达式建立并处理对象。
python核心数据类型
数字:
python的核心对象集合包括常规的数字类型:整数、浮点数、复数、有理数、集合、布尔值等。
可以使用基本四则运算、乘方等建立表达式处理数字:+、*、**等。除了表达式外,还可以使用数字模块,如math、random。
import math
import random
math.pi # 3.141592653589793
math.sqrt(34) # 5.830951894845301
random.random() # 0.7808789290518573
random.choice([1,2,3,4]) # 4
字符串:
字符串是字符的集合,是单个字符的字符串的序列,因此字符串具有序列的操作:索引、分片、合并。
S="Python"
len(S) # 6
S[0],S[5] # ('P', 'n')
S[-2] # 'o' (S[-i]=S[len(S)-i])
S[1:4] # 'yth'
S[1:4]*3 # 'ythythyth'
★字符串在Python中具有不可变性——在创建后不能就地改变。例如,不能通过对其某一位置进行赋值而改变字符串。在核心类型中,数字、字符串和元组是不可变的;列表和字典可以自由改变。
字符串类型的特定方法
find:子字符串查找方法(返回一个传入子字符串的偏移量或-1(没有找到的情况下));
replace:对全局进行搜索和替换;
split:通过分隔符将字符串拆分为子字符串;
upper、lower:大小写变换;
isalpha、isdigit,etc.:测试字符串的内容;
rstrip:去掉字符串后的空格字符;
格式化替代操作:
"%s,月,星,%s" %("日","辰") # '日,月,星,辰'
"{0}得来终觉浅,绝知此{1}事要躬行".format("纸上","事要")
# '纸上得来终觉浅,绝知此事要事要躬行'
列表
Python的列表与其它语言中的数组有些类似,但列表功能更加强大。列表没有固定类型的约束,也没有固定大小。
a=[123,"abc",3.21,["a","b"],""]
print(type(a))
# <class 'list'>
★列表是可变的,大多数列表的方法会就地改变列表对象,而不是创建一个新的列表。
append:扩充列表大小,在列表尾部插入一项;pop:移除给定偏移量的一项,同时让列表减小
insert:在指定位置插入元素;remove:按照值移除元素
虽然列表没有固定的大小,仍不能引用不存在的元素或对列表末尾范围之外赋值。
列表解析
列表解析表达式——List Comprehension Expression,是一种处理像矩阵这样结构的强大工具。通过对序列中的每一项运行一个表达式来创建一个新列表的方法,每次一个,从左至右。
arr=[[1,2,3],[4,5,6],[7,8,9]]
arr[1] # [4, 5, 6]
[row[1] for row in arr if row[2]%2 != 0] # [2,8]
字典
Python中的字典是一种映射(mapping):通过键而不是相对位置来存储对象的集合。键映射到值!
{"a":1,"b":2,"c":4}
元组
元组,tuple,基本上就像一个不可以改变的列表。元组用圆括号编写,而不是方括号。
元组一般用于需要完整性约束条件下的"序列"。
文件
文件对象是Python代码对电脑上外部文件的主要接口。文件是核心类型,但是没有特定的常量语法创建文件。
用户定义的类
类定义了新的对象类型,扩展了核心类型。