一、标识符与关键字
标识符
定义
组成
命名规则
- 只要是Unicode编码的字母,都可以充当引导字符,包括ASCII字母、下划线以及大多数非英文语言的字母。后续字符可以是任意引导字符,或者Unicode编码认为是数字的任意字符,或者是加泰罗尼亚字符。
- 不能与关键字同名
标识符严格严格区分大小写!
约定
- 不要使用Python预定义的标识符名对自定义的标识符进行命名。
- 标识符的开头和结尾都使用下划线的情况,应当避免。(因为他们有特殊的用处)
下划线本身可以作为标识符,有特殊的约定
关键字
定义
特点
列表
二、数据类型
Integral类型
整数类型
定义
特点
- 整数的大小受限于内存的大小,自动根据整数的大小分配空间
表现形式
- 十进制:默认
- 二进制:0b\0B
- 八进制:0o\0O
- 十六进制:0x\0X
整数类型对象的创建方式
x = 14
x = int()
y = int(z)
p = int("A4",16)
布尔型
定义
特点
- int 和 bool之间存在对应关系。即0–>False,非0整数都表示True。
布尔类型对象的创建
t = True
t = bool()
m = bool(True)
q = bool(12)
三、浮点类型
- Python提供了三种浮点值:内置的float与complex类型,以及标准库的decimal.Decimal类型,它们都是固定的。
- 一般来说,浮点类型的数值是对十进制数值的近似表示(base的差异所致)
浮点数
定义
浮点类型对象的创建
x = 12.3
x = float()
y = float(9.3)
z = float(not_float)
复数
定义
组成
复数类型对象的创建
z = 4 + 0j
print(z.real,z.imag)
x = complex()
y = complex(4+j)
z = complex(not_complex)
十进制数字
定义
decimal.Decimal类型对象的创建
import decimal
a = decimal.Decimal(98)
b = decimal.Decimal("23.33")
特点
四、字符串
定义
字符串数据类型对象的创建
my_str = 'Hello World!'
my_str2 = "Hello World!"
my_str3 = """"Hello World!"""
x = str()
y = str(type_to_str)
引号使用的细节
- 当字符串中出现引号时,可以用不同于包含字符串两端的引号或者转义字符。
a = "Single 'quotes' are fine;\"double\" must be escaped."
- 在圆括号、方括号、花括号或者三引号中可以直接使用换行。
my_str = """中华人民共和国
万岁!"""
- 用r引导字符串,可以将所有字符按照字面意义理解
- 用引号连接换行的字符方法
text = "My name is" + \
"Jane"
Jane'
s = ('My name is'
'Jane') #s = My name is
Jane'
字符串的常用操作
字符串的分片与步距
- 存取操作符([])对字符串进行分片,由于str是固定序列,不能对其存储。
- 分片和原对象是两个对象。
- 格式:
- seq[start]
- seq[start:end] 默认:start = 0,end = len(seq)
- seq[start:end:step] 当step为负数时,star=-1,end = 0;反之,同上。
s = 'Light ray'
a = s[0]
b = s[:]
c = s[::-1]
- 切片的区间描述只要与方向一致即可,没有要求两端大小的关系。
- 切片具有“”顾头不顾尾”的特点。
字符串的常用操作方法
- s.join(seq) 返回序列seq中每一项连接起来的结果,并以s作为两项之间的分隔
''.join(['Alex','Dog','Pig'])
'-'.join(['Alex','Dog','Pig'])
- s.find(t,start,end) 返回t在s中的最左位置,如果没有找到,就返回-1;使用s.rfind()可以反向搜索。
- s.index(t,start,end) 返回t在s中的最左位置,如果没有找到,就产生ValueError。使用s.find()可以反向搜索。
s = 'Alex eku'
a = s.find('e')
b = s.find('c')
c = s.index('e')
d = s.index('z')
- s.replace(t,u,n) 返回s的 一个副本,其中每个(n可以指定)字符串t被u替换。
s = 'Alex eku'
s.replace('e','g',1)
s.replace('e','')
- s.split(t,n) 返回一个字符列表,要求在字符串t处分割n次,如果没有给定n,就分割最多次,如果t没有给定,就在空白处分割。s.rsplit()反向分割。
s = 'Alex eku'
s.split('e',1)
s.split()
字符串格式化
- s.format()返回一个新字符串,在新字符串中,原字符串的替换字段被适当格式化后的参数替代
s = "My name is '{0}',and {1}"
s.format('Alex',34)