*本文内容仅针对Python 3.0 版本
1.数字类型
Python语言提供3种数字类型:整数类型(int)、浮点数类型(float)和复数类型(complex),分别对应数学中的整数、实数和复数。
在此举一个简单的例子:
202310 是一个整数类型
2023.66 是一个浮点数类型
20+ 23 j 是一个复数类型
1.1整数类型
2)八进制整型常量:须以0O或0o开头
3)十进制整型常量:数码为 0~9。
4)十六进制整型常量 前缀为0X或0x
1.2浮点数类型
<a>e<b> = a*10b
上例中,1.01e3值为1010.0;-1.01E-3值为0.00101。
浮点数类型的数值范围和小数精度受不同计算机系统的限制。除高精度科学计算外的绝大部分运算来说,浮点数类型的数值范围和小数精度足够“可靠”。
1.3复数类型
2.数值运算符
2.1算术运算符
以下为我认知的常见9个算术运算符
名称 | 运算符 | 说明 |
---|---|---|
加(和) | x + y | x与y之和 |
减(差) | x - y | x与y之差 |
乘(积) | x * y | x与y之积 |
除(商) | x / y | x与y之商 |
整除(整数商) | x // y | x与y之整数商 (即:不大于x与y之商的最大整数) |
取余(模运算) | x % y | x与y之商的余数 (即:模运算) |
负值 | -x | x的负值,即:x*(-1) |
本身 | +x | x本身 |
幂 | x**y | x的y次幂,即: |
2.2赋值运算符
上标所有二元运算操作符(“+”、“-”、“*”、“/”、“//”、“%”、“**”)都可以与等号(=)相连,形成增强赋值操作符(“+=”、“-=”、“*=”、“/=”、“//=”、“%=”、“**=”)。
名称 | 运算符 | 说明 |
---|---|---|
赋值 | = | c = a + b (把a+b的值赋给c) |
加法赋值 | += | c + a =a 等效于c = c + a |
减法赋值 | -= | c - a =a 等效于c = c - a |
乘法赋值 | *= | c * a =a 等效于c = c * a |
除法赋值 | /= | c / a =a 等效于c = c / a |
取整除赋值 | //= | c // a =a 等效于c = c // a |
取模赋值 | %= | c % a =a 等效于c = c % a |
幂赋值 | **= | c ** a =a 等效于c = c ** a |
其中数值运算可能改变结果的数据类型,类型的改变与运算符有关,有如下基本规则:
1)整数之间运算,产生结果类型与操作符相关,“/”运算的结果是浮点数;
2)整数和浮点数混合运算,输出结果是浮点数;
3)整数或浮点数与复数运算,输出结果是复数。
>>>1010/10 # 1). "/"运算的结果是浮点数
101.0
>>>1010.0//3 # 2). 浮点数与整数运算,产生结果是浮点数
336.0
>>>1010.0 % 3 # 2). 浮点数与整数运算,产生结果是浮点数
2.0
>>>10 - 1 + 1j # 3). 等价于 10 – (1 + 1j)
(9+2j) # 结果是复数
2.3位运算符
由于人类通常使用十进制运算符,而计算机使用二进制进行计算,这就需要进行位进制转换。依据运算结果,在计算机执行后转化为十进制返回给读者。按照书中示例,a为15(0000 1111),b为202(1100 1010),运算结果如下:
名称 | 运算符 | 位运算和表达式 | 二进制结果(十进制结果) |
---|---|---|---|
按位与 | & | a&b | 0000 1010 (10) |
按位或 | | | a|b | 1100 1111(207) |
按位异或 (相同取0,不同取1) | ^ | a^b | 1100 0101 (197) |
按位取反 | ~ | ~b | 0011 0101(35) |
左移位 | << | b<<2 | 0010 1011 (43) |
右移位 | >> | b>>2 | 0011 0010 (50) |
3.数值运算函数
3.1内置数值计算函数
内置函数是Python3.0语言固有的功能,可直接在程序使用。
函数 | 描述 |
---|---|
abs(x) | 返回x的绝对值 |
round (x) | 将x进行四舍五入并进行取整 |
max([x1,x2,……]) | 求最大值 |
min([x1,x2,……]) | 求最小值 |
sum([x1,x2,……]) | 求和 |
3.2随机数模块函数
函数 | 描述 |
---|---|
random() | 返回一个[0.0,1.0)的随机浮点数 |
4.布尔型
布尔型数据可用于条件、循环语句,根据条件判断的结果来决定程序流程和分支的走向,也可用于在逻辑运算中表示逻辑结果。其中,布尔型数据是布尔值,它有自己的运算符。使用比较运算符和判断运算符进行运算产生的结果是布尔值。
4.1布尔值
布尔值只有两个:真(True)和假(False)。
Python中的任何对象都可以判断其真假,在下列情况中对象的布尔值为False。
(1) None.
(2)数值中的0、0.0、0j(虚数)、Decimal(0)、Fraction(0, 1)。
(3)空字符串(')、空元组(())、空列表([])、空字典({})、空集合(set())。在其他情况中对象的布尔值默认为True,除非它使用了bool()方法且返回False或使用了len()方法且返回0。
4.2布尔运算
布尔运算包括非(not)、与(and)和或(or),优先级从高到低。布尔运算的规则如下。(1)非运算(not x):如果x为False,则结果为True,否则为False。
(2)与运算(x and y):如果x为False,则不用考虑y,结果为False;如果x为True,则结果取决于y为True还是False。
(3)或运算(x or y):如果x为False,则结果取决于y为True还是False:如果x为True,则结果为True,不用考虑y。
4.3.比较运算
Python中比较运算符用于比较运算,它们有相同的优先级,并且比布尔运算符的优先级高。比较运算符如下。
<:小于。
<=: 小于等于。
>:大于。
>=:大于等于。
==:等于。
!=:不等于。
is:是对象。
is not: 不是对象。
(1)数值型数据按数值比较大小;半角字符串从前到后逐个按对应字符的
ASCII值比较大小;其他字符(如汉字)按照其编码比较大小。
(2)进行大小比较的操作数必须是同类的,不能把一个字符串和一个数字进行
大小比较。
5.字符串
5.1字符串类型
字符串是字符的序列表示,根据字符串的内容多少分为单行字符串和多行字符串。其中,单行字符串可以由一对单引号(')或双引号(")作为边界来表示,单引号和双引号作用相同。多行字符串可以由一对三单引号(''')或三双引号(""")作为边界来表示,两者作用相同。
>>> print('这是"单行字符串"')
这是"单行字符串"
>>> print("这是'单行字符串'")
这是'单行字符串'
>>>print("""这是'多行字符串'的第一行
这是'多行字符串'的第二行
""")
这是'多行字符串'的第一行
这是'多行字符串'的第二行
>>>print('''这是"多行字符串"的第一行
这是"多行字符串"的第二行
''')
这是"多行字符串"的第一行
这是"多行字符串"的第二行
5.2转义字符
转义符:" \ " " \n " 表示换行、 " \\ "表示反斜杠、" \' "表示单引号、" \" "表示双引号、 " \t "表示制表符(TAB)。
>>>print("既需要'单引号'又需要\"双引号\"")
既需要'单引号'又需要"双引号"
5.3字符串的索引
字符串是一个字符序列:字符串最左端位置标记为0,依次增加。对字符串中某个字符的检索被称为索引。索引的使用方式如下:
<字符串或字符串变量>[序号]
如果字符串长度为L,正向递增需要以最左侧字符序号为0,向右依次递增,最右侧字符序号为L-1;反向递减序号以最右侧字符序号为-1,向左依次递减,最左侧字符序号为-L。
反向递减序号<-------------------------- | ||||||||
-9 | -8 | -7 | -6 | -5 | -4 | -3 | -2 | -1 |
L | i | k | e | y | o | u | ! | |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
正向递增序号---------------------------> |
>>>"青青子衿,悠悠我心。"[-5]
'悠'
>>>s = "青青子衿,悠悠我心。"
>>>s [5]
'悠'
5.4字符串的切片
对字符串中某个子串或区间的检索被称为切片。切片的使用方式如下:
<字符串或字符串变量>[N: M]
s[:]截取字符串的全部字符。s[0]:截取s字符串中第1个字符。
s[-1]:截取s字符串中倒数第1个字符。
s[1:4]:截取s字符串中第2~4个字符。
s[6:]:截取s字符串中第7个字符到结尾。
s[:-3]:截取 s 字符串从头开始到倒数第3个字符之前。
s[::-1]:获取与s字符串顺序相反的字符串。
s[-3:-1]:截取s字符串倒数第3位与倒数第1位之前的字符。
s[-3:]:截取s字符串倒数第3位到结尾。
>>>"青青子衿,悠悠我心。"[8:4]
''
>>>"青青子衿,悠悠我心。"[:4]
'青青子衿'
>>>"青青子衿,悠悠我心。"[5:]
'悠悠我心。'
>>>print("青青子衿,悠悠我心。"[5:])
悠悠我心。
5.5字符串大小写转换
字符串大小写转换方法如下。
字符串 .lower(): 将字符串转换为小形式。
字符串 .upper(): 将字符串转换为大写形式。
字符串 .capitalize(): 将字符串首字母转换为大写形式。
字符串 .title(): 将每个单词的首字母转换为大写形式。
字符串 .swapcase(): 转换字符大小写形式。
islower().isupper().isalpha().isalnum()、isspace()、istitle(): 判断字符串是否以纯小写字母、纯大写字母、字母(汉字)、字母和数字、空格和每个单词首字母大写组成。
字符串大小写转换的示例如下:
>>>s1="What time is it?"
>>> print(s1.lower(),'\n',s1.title(),'\n',s1.swapcase())
what time is it?
What Time Is It?
WHAT TIME IS IT?
5.6字符串处理函数
Python语言提供了一些对字符串处理的内置函数
函数 | 描述 |
len(x) | 返回字符串x的长度,也可返回其他组合数据类型的元素个数 |
str(x) | 返回任意类型x所对应的字符串形式 |
chr(x) | 返回Unicode编码x对应的单字符 |
ord(x) | 返回单字符x表示的Unicode编码 |
hex(x) | 返回整数x对应十六进制数的小写形式字符串 |
oct(x) | 返回整数x对应八进制数的小写形式字符串 |
>>>len("全国计算机等级考试Python语言科目")
19
>>>chr(10000)
'✐'
>>>hex(1010)
'0x3f2'
5.7数字类型转换
数值运算操作符可以隐式地转换输出结果的数字类型,例如,两个整数采用运算符“/”的除法将可能输出浮点数结果。此外,通过内置的数字类型转换函数可以显式地在数字类型之间进行转换。
函数 | 描述 |
int(x) | 将x转换为整数,x可以是浮点数或字符串 |
float(x) | 将x转换为浮点数,x可以是整数或字符串 |
str(x) | 将x转换为字符串,x可以是整数或浮点数 |
6. 元组
元组是一种不可变的有序集合,一旦创建就不能修改。
my_name = ("张**", True)
7. 字典
字典可以通过直接赋值的方式,将值赋入/更改字典里面,同理,也可以删除(.pop)字典里的元素。
dict 1 = {"name": "zhangweihan", "age": 20} #赋值dict 1字典
dict 1 ["city"] = "Fuzhou" #添加键“城市”,元素“福州”
dict 1 ["age"] = 21 #更改键“年龄”的元素为“21”
age = dict 1.pop("age") #删除键“年龄”
因为一个键对应一个元素,对于我们编程爱好者来说,调用键值,获取键是否存在/是否需要删除显得尤为重要。
dict 2 = {"name": "zhangweihan", "age": 21}
name = dict 2.get("name") # 获取name的值 "zhangweihan"
>>name = "John"
keys = dict 2.keys() # keys = ["name", "age"] # 获取字典dict 2中所有的键
>>"name", "age"
values = dict 2.values() # values = ["John", 30] # 获取字典dict 2所有的值
>>"John", 30
del dict 2["age"] # 删除指定键的元素
print(dict 2)
>>dict 2 = {"name": "zhangweihan"}
has_name = "name" in dict 2 # 判断name键在字典dict 2 里面吗?
>>True