Python中每个元素都是变量
变量命名规则
- 变量名必须以字母或下划线字符开头
- 变量名不能以数字开头
- 变量名称只能包含字母数字字符和下划线
- 变量名区分大小写
注释
什么是注释,注释相当于备注的信息,也可以在调试代码的时候隐藏执行代码
注释的方法有行注释和块注释。
行注释
行注释以 # 开头:
块注释
块注释可以用多个 # 、 三单引号或三双引号
基本数据:
- 整数常量:没有byte short long 之分 一律默认int
- 小数常量:没有float与double之分 默认float
- 字符串常量:字符串表示一段文本信息,程序会将文本信息原封不动的处理
- Python没有字符的数据,一律当成字符串处理,双引号和单引号都可以表示字符串
- 布尔值常量:Ture表示1 False表示0
- 复数常量:ai + bj
内置函数名/类名:内置函数就是Python自带的一些具有特殊功能的函数
使用内置函数时,不能更改其名称。
变量:
在Python当中 变量其实就是一个万能箱子 他可以存储任何数据
本质:变量它只存储数据在内存中的地址(引用类型变量)
数据转换:
- int():取整 从字符串中解析整数
- float():将其他的数据转为小数
- str():将其他数据转字符串
- bool():将型其他数据转布尔类
进制转换:
- bin():二进制转换符
- oct():八进制转换符
- hex():十六进制转换符
字符与ASCII码转换:
- ord():获取字符对应的ASCII码编号
- chr():根据给定的ASCII码编号获取对应的字符
- PS:a~z A~Z 0~9 他们在ASCII中的编号都是连续的
- a为97 A为65 0为48
数学函数:
[abs(x)] 返回数字的绝对值,如abs(-10) 返回 10
[ceil(x)] 返回数字的上入整数,如math.ceil(4.1) 返回 5
[cmp(x, y)] 如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1
[exp(x)] 返回e的x次幂(ex),如math.exp(1) 返回2.718281828459045
[fabs(x)] 返回数字的绝对值,如math.fabs(-10) 返回10.0
[floor(x)] 返回数字的下舍整数,如math.floor(4.9)返回 4
[log(x)] 如math.log(math.e)返回1.0,math.log(100,10)返回2.0
[log10(x)] 返回以10为基数的x的对数,如math.log10(100)返回 2.0
[max(x1, x2,…)] 返回给定参数的最大值,参数可以为序列。
[min(x1, x2,…)] 返回给定参数的最小值,参数可以为序列。
[modf(x)] 返回x的整数部分与小数部分,两部分的数值符号与x相同,整数部分以浮点型表示。
[pow(x, y)] x**y 运算后的值。
[round(x [,n])] 返回浮点数x的四舍五入值,如给出n值,则代表舍入到小数点后的位数。
[sqrt(x)]( 返回数字x的平方根
随机数函数:
随机数可以用于数学,游戏,安全等领域中,还经常被嵌入到算法中,用以提高算法效率,并提高程序的安全性。
Python包含以下常用随机数函数:
[choice(seq)] | 从序列的元素中随机挑选一个元素,比如random.choice(range(10)),从0到9中随机挑选一个整数。 |
[randrange ([start,] stop [,step])] | 从指定范围内,按指定基数递增的集合中获取一个随机数,基数默认值为 1 |
[random()] | 随机生成下一个实数,它在[0,1)范围内。 |
[seed([x])] | 改变随机数生成器的种子seed。如果你不了解其原理,你不必特别去设定seed,Python会帮你选择seed。 |
[shuffle(lst)] | 将序列的所有元素随机排序 |
[uniform(x, y)] | 随机生成下一个实数,它在[x,y]范围内。 |
三角函数:Python包括以下三角函数:
[acos(x)] 返回x的反余弦弧度值。
[asin(x)] 返回x的反正弦弧度值。
[atan(x)] 返回x的反正切弧度值。
[atan2(y, x)] 返回给定的 X 及 Y 坐标值的反正切值。
[cos(x)] 返回x的弧度的余弦值。
[hypot(x, y)] 返回欧几里德范数 sqrt(xx + yy)。
[sin(x)] 返回的x弧度的正弦值。
[tan(x)] 返回x弧度的正切值。
[degrees(x)] 将弧度转换为角度,如degrees(math.pi/2) , 返回90.0
[radians(x)] 将角度转换为弧度
pi | 数学常量 pi(圆周率,一般以π来表示) |
e | 数学常量 e,e即自然常数(自然常数) |
字符串格式化:
Python 支持格式化字符串的输出 。尽管这样可能会用到非常复杂的表达式,但最基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中。
python字符串格式化符号:
%c 格式化字符及其ASCII码
%s 格式化字符串
%d 格式化整数
%u 格式化无符号整型
%o 格式化无符号八进制数
%x 格式化无符号十六进制数
%X 格式化无符号十六进制数(大写)
%f 格式化浮点数字,可指定小数点后的精度
%e 用科学计数法格式化浮点数
%E 作用同%e,用科学计数法格式化浮点数
%g %f和%e的简写
%G %f 和 %E 的简写
%p 用十六进制数格式化变量的地址
输入与输出:
- print():可以输出数字,字符串 print("Hello World") print(1 + 2 + 3)
- 多数据输出,用空格分隔 print(1, 2, 3, "Hello World!")
- sep输出间隔 print(1, 2, 3, sep = "#")
- end输默认"\n" print(1, 2, 3, end = "!!!")
- %s 对应字符串 %d 对应整数 %f 对应小数 print("它叫%s,今年%d岁,身高%.2f米" % (name, age, height))
运算符:
算术运算符: 加法:数值相加,序列拼接
减法:数值相减
乘法:数值相乘,序列增倍
除法:小数除 /,整数除 //
幂运算:2 ** 3 ===> 二的三次幂
取余:10 / 3 = 3 ~ 1
布尔判断运算符:( 运算结果一律为布尔值 ):> < >= <= != ==
增强型赋值运算符:(在Python中 是不存在 ++ --这种自增运算符的!)+= -= *=
/= //= **= %=
逻辑运算符:与 或 非 = and or not (&& || !) 与:全真则真 有假则假
或:有真则真 全假则假
非:取反
位运算符:按位与 按位或 右移 左移 取反 异或
成员运算符:in 和 not in
从属/身份运算符:is 和 not is(比地址)
PS:i++流程
1. 开辟临时存储区
2. 将i的值复制到临时存储区内
3. i自身+1
4. 临时存储区的值等待被调用(输出 赋值 参与运算)
(Java中)
导入包(库)
- 在 python 用 import 或者 from…import 来导入相应的模块。
- 将整个模块(somemodule)导入,格式为: import somemodule
- 从某个模块中导入某个函数,格式为: from somemodule import somefunction
- 从某个模块中导入多个函数,格式为: from somemodule import firstfunc, secondfunc, thirdfunc
- 将某个模块中的全部函数导入,格式为: from somemodule import *
- 将某个模块改名(改为s),格式为:import somemodule as s
条件判断:
# 单if语句
if 条件语句:
条件为真时执行的内容
# if-else语句 if 条件语句:
条件为真时执行的内容
else:
条件为假时执行的内容
# if-elif语句 else if
if 条件语句1:
条件语句1为真时执行的内容
elif 条件语句2:
条件语句2为真时执行的内容
elif .... else:
所有条件都不满足时执行的内容
# 语句嵌套 if 条件1:
if 条件2:
执行内容(1和2都满足)
else:
执行内容(满足1不满足2)
else:
执行内容(1和2都不满足)
PS: 由于 python 并不支持 switch 语句,所以多个条件判断,只能用 elif 来实现,如果判断需要多个条件需同时判断时,可以使用 or (或),表示两个条件有一个成立时判断条件成功;使用 and (与)时,表示只有两个条件同时成立的情况下,判断条件才成功。
当if有多个条件时可使用括号来区分判断的先后顺序,括号中的判断优先执行,此外 and 和 or 的优先级低于>(大于)、<(小于)等判断符号,即大于和小于在没有括号的情况下会比与或要优先判断。
循环语句:
循环四要素:
- 循环的开始(从第1步开始;从第1步开始/从起点开始)
- 循环的继续条件(还没走到第10步;没有碰到墙/就是看距离)
- 循环体(走的每一步;走的每一步)
- 循环的步长/间隔/周期/进度(步数的统计;距离的统计
for i in range(11):
print(i)
range(n) : 取值范围是[0,n) 步长默认为1
range(a, b):取值范围[a, b) 步长默认1
range(a, b, c):取值范围[a, b) 步长默认2
range(a,b,c) 如果c > 0, a < b 才是有效范围 递增
如果c < 0, a > b 才是有效范围 递减
# 特殊的 结合序列去使用 遍历序列中每一个元素
for i in "abcdefg":
print(i)
数组列表:
序列:存储一堆数据的集合/容器
列表、字符串、元组、集合、字典
取值和取索引
>取值
print(name_list[2])
xzx
>取索引(若传递的数据不再列表中会报错)
print(name_list.index("wangwu"))
2
>修改
name_list[1] = "李四"
name_list = ["zhangsan","李四","wangwu"]
>列表指定的索引超出范围,程序会报错。
>增加
>append 方法可以向列表的末尾追加数据
name_list.append("王小二")
name_list = ["zhangsan","李四","老八","王小二"]
>insert 方法可以在列表的指定索引位置插入数据
name_list.insert(1,"老八")
name_list = ["zhangsan","老八","李四","wangwu","王小二"]
>extend 方法可以把其他列表中的完整内容追加到当前列表的末尾
temp_list = ["孙悟空","猪八戒","沙和尚"]
name_list.extend(temp_list)
name_list = ["zhangsan","李四","wangwu","王小二","孙悟空","猪八戒","沙和尚"]
> 删除
>remove 方法可以从列表中删除指定的数据;从列表中删除第一个出现的指定的数据
name_list.remove("wangwu")
print(name_list)
['zhangsan', '老八', '李四', '王小二', '刀哥9', '猪八戒', '沙和尚']
>pop方法默认可以把列表中最后一个元素删除
name_list.pop()
print(name_list)
['zhangsan', '小美眉', '李四', '王小二', '孙悟空', '猪八戒']
> clear方法可以清空列表
name_list.clear()
print(name_list)
[]
>使用del关键字删除列表元素
del 关键字本质上是用来将一个变量从内存中删除的。如果使用del关键字将变量从内存中删除,后序的代码就不能再使用这个变量了。
统计数据
> len 函数可以统计列表中元素的总数
name_list = ["张三","李四","王五","王小二","张三"]
list_len = len(name_list)
print("列表中包含 %d 个元素" % list_len)
列表中包含 5 个元素
> count 方法可以统计列表中某个数据出现的次数
count = name_list.count("张三")
print("张三出现了 %d 次" % count)
张三出现了 2 次
列表的排序和反转
>升序
name_list = ["zhangsan","lisi","wangwu","wangxiaoer"]
num_list = [6, 8, 4, 1, 10]
# 升序
name_list.sort()
num_list.sort()
['lisi', 'wangwu', 'wangxiaoer', 'zhangsan']
[1, 4, 6, 8, 10]
>降序
name_list.sort(reverse=True)
num_list.sort(reverse=True)
['zhangsan', 'wangxiaoer', 'wangwu', 'lisi']
[10, 8, 6, 4, 1]
>逆序(反转)
name_list.reverse()
num_list.reverse()
['wangxiaoer', 'wangwu', 'lisi', 'zhangsan']
[10, 1, 4, 8, 6]
>切片
就是获取序列中某一个连续子区间
序列名[a : b : c] 跟 range(a, b, c) 基本类似
>>> arr[2:] # 从角标2开始向尾遍历 步长为1 [3, 4, 5, 6, 7, 8, 9]
>>> arr[2::2] # 从角标2开始向尾遍历 步长为2 [3, 5, 7, 9]
>>> arr[:6] # 从头开始到角标6(不取) 步长为1 [1, 2, 3, 4, 5, 6]
>>> arr[:6:3] # 从头开始到角标6(不取) 步长为3 [1, 4]
>>> arr[:] # 从头到尾 [1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> arr[::] [1, 2, 3, 4, 5, 6, 7, 8, 9] >>> arr[::2] [1, 3, 5, 7, 9] =======================================特殊的
>>> arr[-1:-7] # 从尾到头 步长必须负数 []
>>> arr[-1:-7:-1] [9, 8, 7, 6, 5, 4]
>>> arr[-9:7] # 从头到尾 步长为正数 [1, 2, 3, 4, 5, 6, 7]
>>> arr[0:7] [1, 2, 3, 4, 5, 6, 7]
>>> arr[-9:-2] # 从头到尾 步长为正数 [1, 2, 3, 4, 5, 6, 7]
成员资格
>>> 1 in arr True
>>> 10 in arr False
长度与最值
>>> len(arr) # 获取序列的长度 9
>>> len(arr) 9
>>> max(arr) 9
>>> min(arr) 1
>>> s = "ABC"
>>> len(s) 3
>>> max(s) 'C'
>>> min(s) 'A'