目录
- 变量
- 字符串
- 字符串的基本操作
- 数字和运算符
- 算术运算符
- 整数
- 浮点数
- 复数
- 布尔
- 二进制
- 比较运算
- 赋值运算
- 数据类型转换
- 条件分支与循环
- `if`条件分支
- `while`循环
- `for`循环
- 循环控制语句
- 复杂条件及处理
变量
在Python语言中,变量在指定的同时,必须强制赋初值,否则编译器会报错。
- 多个变量赋值—Python允许同时为多个变量赋值:
one=two=three=10
或one,two,three=10,20,30
。one
、two
、three
三个变量在内存中指向同一个地址,获得同一个值10
。 - 变量值类型—Python语言变量值在赋值后才被隐性确定:
a=0
,a
就是整数类型;b=OK
,b
就是字符串类型;c=True
,c
就是布尔类型。 - Python语言的基本类型包括:字符串(String)、数字(Numeric)、列表(List)、元组(Tuple)、字典(Dictionary)五大类。
字符串
字符串由任意字节的字符组成,用单引号(''
)、双引号(""
)或三引号(''''''
)。三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符。
中文全角一个字符占两个字节。
字符串的基本操作
- 字符串值读取:
a. 存储方式与C++类似,可利用下标进行访问;
b. 也可利用切片进行访问name[0:6]
读取变量name
的下标从0
到6
的子串。列表、元组都可以进行切片(Slice,[左下标:右下标]
)操作,右下标的值需要比确定的下标的值多1,即可看作是左闭右开区间。
c. 带省略号的下标切片:[:右下标]
、[左下标:]
、[:]
d. 带步长的切片读取:[左下标:右下标:步长]
e. 负数的下标读取:用负数下标从右到左读取对应的字符串
f. 超出字符串的范围会报错 - 字符串值合并
对于不同的字符串可以使用+
号进行合并操作 - 字符串值修改
对字符串的修改师通过读取子字符串合并的方式实现,不能直接对字符串做如下修改:name[6]='C'
name='three cool cats!'
new_name=name[:11]+'dogs'
print(new_name)
- 字符串值删除
整个字符串的删除可以采用del(name)
的方式 - 其他操作
a. 获取字符串长度len(name)
:Python2.X把一个汉字看成两个长度,Python3.6.3版本看成一个长度
b.r/R
原始字符串控制符:将字符串中的转义字符忽略
c. 重复输出字符串:print('cat'*2)
d. 格式字符串(%):print('tom's name is %d'%(age))
,%d
转换为10进制
数字和运算符
Python语言的数字与数学分为整数(Integer)、浮点数(Float)、复数(Complex)和布尔(Boolean)。
算术运算符
符号 | 意义 |
| 加 |
| 减 |
| 乘 |
| 除 |
| 取余 |
| 取整 |
整数
Python语言里整数的长度不受限制,仅受可用(虚拟)内存的限制,因此可以实现无穷大/小的实现。
浮点数
由于计算机内存中存储浮点数的位数有限,所以超过指定长度后,末尾将采取近似值处理。
复数
由实部和虚部组成,1+2j
,通过.real
和.imag
实现实部和虚部的检索。
布尔
Python中布尔值用True
和False
表示,用于逻辑判断,也是一种特殊的整数类型,True
可以用1
替换,False
可以用0
替换。
布尔逻辑运算符包括:and
、or
、not
二进制
0b
为二进制,0o
为八进制,0x
为十六进制
运算符 | 名称 |
| 按位与 |
| 按位或 |
| 按位异或 |
| 按位取反 |
| 右移 |
| 左移 |
比较运算
比较运算符可以支持对字符串、整数、列表、元组、字典等进行比较。
Python3.6.3允许整数和字符串进行比较。
赋值运算
Python支持增量赋值,可以简化内存操作(由三个数字地址空间变成了两个地址空间),所以这种赋值方式也经常被使用。
数据类型转换
- 转化为整数的函数:
int(x)
,x
为数字或字符串型的数字,不支持复数 - 转化为浮点数的函数:
float(x)
,x
为数字或字符串型的数字,不支持复数 - 转化为复数的函数:
complex(x,y)
,x
、y
为整数、浮点数、布尔数;当只有x
参数时,y=0
,可以是字符串型整数、浮点数、布尔数。 - 转化为字符串的函数:
str(x)
- 转化为二进制的函数:
bin(x
),x
为非负整数 - 转化为八进制的函数:
oct(x)
,x
为非负整数 - 转化为十六进制的函数:
hex(x)
,x
为非负整数 - 把十进制数转化为ASCII字符:
chr(x)
,x
为十进制数 - 把ASCII字符转化为十进制数:
ord(x)
,x
为ASCII码字符
条件分支与循环
if
条件分支
- 格式一:单分支判断
if True:
print('ok')
- 格式二:双分支判断
if 5>6:
print('5>6')
else:
print('5<6')
- 格式三:多条件分支判断
if 5>6:
print('5>6')
elif 5==5:
print('5=5')
else:
print('5<6')
while
循环
while True:
print('true')
for
循环
- 自定义集合
for
循环
for item in items:
print(item)
- 内建分为函数
range
实现for
循环
for i in range(9):
print(i) #1 2 3 4 5 6 7 8 9
for i in rangr(1,5,2):
print(i) #1 3
循环控制语句
-
break
:可通过break
语句立刻种猪并跳出循环 -
continue
:继续循环,忽略continue
语句后的代码执行
复杂条件及处理
- 成员运算符(
in/not in
):对于具有集合概念的对象,可通过成员运算符进行快速判断。 - 身份运算符(
is/is not
):代码在内存中运行时会生成很多实体,通过身份运算符判断两个标识符是否引用自同一个地址。 - 运算符优先级