python注释
注释以#号开头,直至行尾。让#号后的字符不参与执行。
python程序的组成
程序由模块组成
模块由语句、函数、类等组成
语句包含表达式
表达式建立并处理对象
基本输出函数
print(值1, 值2, ...)
print("a=%d" % a)
print(value, sep='', end='\n')
退出交互式
exit()或者ctrl+d
变量
变量是关联一个对象的符号
变量名必须为字母或下划线开头,后跟字母、数字、下划线
变量不能使用python的关键字
变量名区分大小写
核心数据类型和内置对象
数字类型、字符串类型str、布尔类型bool、空值None
数字类型
整型int
浮点型float
复数complex
整型数
十进制
二进制(ob开头)
八进制(0o开头)
十六进制(0x开头)
浮点数
3.14、3.0、3.、.15
科学计数法:小数e/E十的n次幂
布尔类型
真:True。True的值是1
假:False。False的值是0
空值
None是一个特殊的常量,不表示任何类型
作用:通常用来绑定占位,变量解除绑定
空值和任何其它类型对象进行比较永远返回False
运算符
+ 加
- 减
* 乘
/ 除
// 地板除
% 求余
** 幂运算
小技巧:求一个五位数的每个位
个位:12345%10
十位:(12345//10)%10
百位:(12345//100)%10
赋值运算
变量 = 表达式
1.当没有此变量时,创建一个变量,同时将变量绑定到这个对象
2.当变量存在时,改变此变量关联的对象
3.用变量名访问此变量关联的对象
说明:两个变量可以同时绑定同一个对象
is / is not运算符
判断两个变量是否绑定同一个对象
del语句
解除变量和绑定对象的关系
复合赋值运算符
a += 1
关系运算符
< 小于
<= 小于等于
> 大于
>= 大于等于
== 等于
!= 不等于
说明:关系运算符返回布尔类型的值
生成对象的函数
float(obj)
int(x)
bool(x)
str(obj)
预置的数值型函数
abs(x) 取x的绝对值
round(number[,ndigits]) 四舍五入,ndigits是小数向右取整的位数
pow(x, y, z=None) 相当于x**y%z
表达式
将不同数据用运算符按一定规则连接起来的一种式子
语句
语句由一些表达式组成,通常一条语句可以独立执行完成一部分事情并形成结果
if语句
if 真值表达式:
语句1
elif 真值表达式:
语句2
else:
语句3
布尔运算
not and or
bin(x)函数
将x转换为二进制的字符串
条件表达式
表达式1 if 真值表达式 else 表达式2
while语句
while 真值表达式:
语句1
else:
语句2
for循环语句
用来遍历序列或可迭代对象的每一个元素
for 变量列表 in 可迭代对象:
语句1
可迭代对象
字符串str
列表list
元组tuple
字典dict
集合set
固定集合frozenset
迭代器
range函数(不包含stop)
range(start, stop[, step])
break语句
跳出当前循环
continue语句
不再执行本次循环continue之后的语句,重新开始新的循环
字符串常用方法
s.isdigit() 判断字符串是否全为数字
s.isalpha() 判断字符串是否全为英文字符
s.islower() 判断字符串是否全为小写
s.isupper() 判断字符串是否全为大写
s.isspace() 判断字符串是否为空白字符
s.isnumeric() 判断字符串是否为数字
s.center(width[,fill]) 将原字符串居中,左右默认填充空格
s.count(sub[,start[,end]]) 获取一个字符串中sub的个数
s.find(sub[,start[,end]]) 获取字符串中sub的索引,失败返回-1
s.strip() 去掉左右空白字符的字符串
s.lstrip() 去掉左边空格
s.rstrip() 去掉右边空格
s.title() 生成每个英文单词首字符大写的字符串
s.upper() 生成将英文转为大写的字符串
s.lower() 生成将英文转为小写的字符串
s.replace(old,new[,count]) 将原字符串old用new代替,生成一个新的字符串
列表
列表由一系列特定元素组成。元素之间可能没有任何类型,但他们之间有先后顺序关系
空列表
L = []
L = list()
创建非空列表
L = [1, 2, 3, 4]
L = ["Beijing", "Shanghai", "Shenzhen"]
L = [1, "two", 3.0, "four"]
L = [1, 2, [3.1, 3.2], 4]
列表的生成函数
list(iterable)
列表的运算
+列表拼接
*生成重复的列表
列表的常用方法
L.index(v[,begin[,end]])
L.insert(index, obj)
L.count()
L.remove()
L.copy()
L.append()
L.extend(lst)
L.clear()
L.sort(reverse=False) 排序,默认升序
L.reverse() 列表反转
L.pop([index]) 删除索引对应的元素,如果没有索引,则删除最后一个元素
浅拷贝
L = [20, 21, 22]
L1 = [10, L, 30]
L2 = L1.copy()
L[2] = 25
print(L1) # [10, [20, 21, 25], 30]
print(L2) # [10, [20, 21, 25], 30]
注意:切片复制也是浅拷贝
深拷贝
import copy
L = [20, 21, 22]
L1 = [10, L, 30]
L2 = copy.deepcopy(L1)
L[2] = 25
print(L1) # [10, [20, 21, 25], 30]
print(L2) # [10, [20, 21, 22], 30]
列表是可迭代对象
L = [2, 3, 5, 7]
for x in L:
print(x)
列表推导式
[表达式 for 变量 in 可迭代对象]
[表达式 for 变量 in 可迭代对象 if 条件表达式]
列表推导式的嵌套
x = [1, 2, 3, 4, 5, 6]
y = [10, 20, 30]
L = [i * j for i in x for j in y]
元组
元组是不可改变的序列,同list一样,元组可以存放任意的值
创建空元组
t = ()
t = tuple()
创建非空元组
t = (10,)
t = 10
t = (10, 20, 30)
字典
1.字典是一种可变的容器,可以存储任意类型的数据
2.字典中的每个数据都用键进行索引
3.字典中的数据没有先后关系,字典的存储是无序的
4.字典的数据以键值对的形式进行存储
5.字典的表示方式以{}括起来,用冒号分割键值对,各键值对之间用逗号分隔开
6.字典的键不能重复
字典的键必须是不可变类型
不可变类型:bool,int,float,complex,str,tuple,frozenset
可变类型:list,dict,set
字典的遍历
d = {1:100, 2:200, 3:300}
for k, v in d.items():
print(k, v)
添加/修改字典
d["name"] = "nick"
删除字典元素
del 字典[键]
字典的常用方法
d.clear()
d.pop()
d.copy()
d.update(d2) 将字典d2合并到d中,如果键相同,则此键的值取d2的值作为新值
d.get(key, default) 返回键对应的值,如果没有此键则返回default
d.keys()
d.values()
d.items() 返回可迭代的dict_items对象
字典推导式
{键表达式:值表达式 for 变量 in 可迭代对象 if 条件表达式}
集合
集合是可变的容器
集合内的数据对象都是唯一的
集合是无序的存储结构,集合中的数据没有先后关系
集合相当于只有键没有值的字典
集合内的元素必须是不可变对象
集合是可迭代的
生产空的集合
set()
生成非空集合
set(iterable)