Python编写格式

注释

  1. #单行注释以井号开头
  2. '''
  3. 多行注释在三个单(双)引号内
  4. '''

缩进

  1. #同一个程序只用Tab或者只用空格缩进,不要混用
  2. #一行代码后面有冒号:,下一行肯定需要缩进

拆分和合并

  1. #一行程序太长可以使用反斜线\分成两行
  2. a=10+10+10 \
  3. +10
  4. #a=40
  5. #一行程序有()[]{}可以折成多行
  6. print("abcd"
  7. +"efgh")
  8. #输出abcdefgh
  9. #用;将多行合并为一行
  10. a=1;b=2;c=3

Python基本语法

变量

命名规则

1第一个字符必须是字母或者下划线

2不可以使用Python的关键字或保留字来当作标识符名称

3不可以重名

3区分大小写,Age和age是两个不同的变量

赋值

Python采用动态类型,可以一个变量赋不同类型的值,可以同时赋值给多个变量,也可以用”,”或”;”以不同的赋值语句连续声明变量

  1. a=b=c=10#a=10,b=10,c=10
  2. a,b=10,20#a=10,b=20
  3. a=10;b=20#a=10,b=20

通常交换需要第三个值充当暂存变量

  1. x,y=10,20
  2. t=x;x=y;y=t#交换x,y

不过对于python来说,可以轻松的完成两个变量的交换操作

  1. x,y=10,20
  2. x,y=y,x#交换x,y

eval函数可以获取连续输入的值

  1. # 使用swap的概念,获取连续输入的值
  2. numA, numB, numC = eval(
  3. input('请输入3个值,以逗点隔开->'))
  4. total = numA + numB + numC
  5. print('合计:', total)

Python内置类型

1数值:int(整数),float(浮点数),complex(复数)

2序列类型:str(字符串),list(列表),tuple(元组)

3迭代类型:提供容器,使用for循环进行迭代操作

4集合类型:有set(可变集合)和frozenset(固定集合或不可变集合)

5映射类型:只有dict(字典)

整数类型

python内置的整数类型只有两个,整数(Integer)和布尔(Boolean),不含小数,不限精度,也可以用别的进制显示

内置函数 说明
bin(int) 将十进制数值转换为二进制数值,以0b为前缀
oct(int) 将十进制数值转换为八进制数值,以0o为前缀
hex(int) 将十进制数值转换为十六进制数值,以0x为前缀
int(s,base) 将字符串s根据base参数提供的进制数转换成十进制数值

布尔类型Bool(Boolean)为int的子类,可以使用bool()函数,只有True和False两个值

浮点数

float 由Python内置,储存倍精度浮点数,它会随作业平台来确认精确度范围,使用float()函式表示
complex 也是Python内置,处理复数数值数据,由实数和虚数组成
decimal 若数值要有精确的小数位数,得由标准函式库的decimal.Decimal类别所支持

如果需要使用浮点数来处理正无穷大(Infinity),负无穷大(Negative Infinity),或NaN(Not a Number,不是一个数字)时,可以使用float()函数

float(‘nan’) 输出nan(Nan,Not a number)表明不是数字
float(‘Infinity’) 正无穷大,输出inf
float(‘-inf’) 负无穷大,输出-inf
  1. import math #导入math模块
  2. a = 1E309
  3. print('a = 1E309, 输出', a)
  4. # 输出True,表示它是NaN
  5. print('为NaN?', math.isnan(float(a/a)))
  6. b = -1E309
  7. print('b = -1309, 输出', b)
  8. # 输出True,表示它是Inf
  9. print('为Inf?', math.isinf(float(-1E309)))
fromhex(s) 将十六进制的浮点数转为十进制数
hex() 以字符串返回十六进制的浮点数
in_integer() 判断是否为整数,若小数位数为零,则返回True

复数类型

fcomplex由实数和虚数组成,叙述的部分还得加上字符j或J

  1. cpmplex(re,im)#rereal,表示实数,imimag,表示序数
  2. z.real#获取复数的实数部分
  3. z.imag#获取复数的虚数部分
  4. z.conjugate()#获取共轭复数的方法

更精确的Decimal类型(日后补坑🕳)

分数(日后补坑🕳)

表达式

算数运算符

运算符 描述 实例
+ 加 - 两个对象相加 a + b 输出结果 31
- 减 - 得到负数或是一个数减去另一个数 a - b 输出结果 -11
* 乘 - 两个数相乘或是返回一个被重复若干次的字符串 a * b 输出结果 210
/ 除 - x 除以 y b / a 输出结果 2.1
% 取模 - 返回除法的余数 b % a 输出结果 1
** 幂 - 返回x的y次幂 a**b 为10的21次方
// 取整除 - 向下取接近商的整数 9//2 =4 -9//2 =-5

如果要获取两个数值相除之后的商和余数,BIF的divmod()函数能提供帮助

  1. divmod(x,y)
  2. #参数X执行x//y运算
  3. #参数y执行x%y运算
  4. divmod(15,4)#15//33,15%33,所以输出(3,3)

还可以导入math模块进行数值运算

  1. import math#导入math模块
ceil 取大于等于x的最小的整数值,如果x是一个整数,则返回x
copysign 把y的正负号加到x前面,可以使用0
cos 求x的余弦,x必须是弧度
degrees 把x从弧度转换成角度
e 表示一个常量
exp 返回math.e,也就是2.71828的x次方
expm1 返回math.e的x(其值为2.71828)次方的值减1
fabs 返回x的绝对值
factorial 取x的阶乘的值
floor 取小于等于x的最大的整数值,如果x是一个整数,则返回自身
fmod 得到x/y的余数,其值是一个浮点数
frexp 返回一个元组(m,e),其计算方式为:x分别除0.5和1,得到一个值的范围
fsum 对迭代器里的每个元素进行求和操作
gcd 返回x和y的最大公约数
hypot 如果x是不是无穷大的数字,则返回True,否则返回False
isfinite 如果x是正无穷大或负无穷大,则返回True,否则返回False
isinf 如果x是正无穷大或负无穷大,则返回True,否则返回False
isnan 如果x不是数字True,否则返回False
ldexp 返回x(2*i)的值
log 返回x的自然对数,默认以e为基数,base参数给定时,将x的对数返回给定的base,计算式为:log(x)/log(base)
log10 返回x的以10为底的对数
log1p 返回x+1的自然对数(基数为e)的值
log2 返回x的基2对数
modf 返回由x的小数部分和整数部分组成的元组
pi 数字常量,圆周率
pow 返回x的y次方,即x**y
radians 把角度x转换成弧度
sin 求x(x为弧度)的正弦值
sqrt 求x的平方根
tan 返回x(x为弧度)的正切值
trunc 返回x的整数部分

赋值运算符

运算符 描述 实例
= 简单的赋值运算符 c = a + b 将 a + b 的运算结果赋值为 c
+= 加法赋值运算符 c += a 等效于 c = c + a
-= 减法赋值运算符 c -= a 等效于 c = c - a
*= 乘法赋值运算符 c = a 等效于 c = c a
/= 除法赋值运算符 c /= a 等效于 c = c / a
%= 取模赋值运算符 c %= a 等效于 c = c % a
**= 幂赋值运算符 c = a 等效于 c = c a
//= 取整除赋值运算符 c //= a 等效于 c = c // a
:= 海象运算符,可在表达式内部为变量赋值。Python3.8 版本新增运算符 在这个示例中,赋值表达式可以避免调用 len() 两次:if (n := len(a)) > 10: print(f"List is too long ({n} elements, expected <= 10)")

比较运算符

运算符 描述 实例
== 等于 - 比较对象是否相等 (a == b) 返回 False。
!= 不等于 - 比较两个对象是否不相等 (a != b) 返回 True。
> 大于 - 返回x是否大于y (a > b) 返回 False。
< 小于 - 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。注意,这些变量名的大写。 (a < b) 返回 True。
>= 大于等于 - 返回x是否大于等于y。 (a >= b) 返回 False。
<= 小于等于 - 返回x是否小于等于y。 (a <= b) 返回 True。

逻辑运算符

运算符 逻辑表达式 描述 实例
and x and y 布尔”与” - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。 (a and b) 返回 20。
or x or y 布尔”或” - 如果 x 是 True,它返回 x 的值,否则它返回 y 的计算值。 (a or b) 返回 10。
not not x 布尔”非” - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 not(a and b) 返回 False

位运算符

运算符 描述 实例
& 按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0 (a & b) 输出结果 12 ,二进制解释: 0000 1100
| 按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。 (a | b) 输出结果 61 ,二进制解释: 0011 1101
^ 按位异或运算符:当两对应的二进位相异时,结果为1 (a ^ b) 输出结果 49 ,二进制解释: 0011 0001
~ 按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1。~x 类似于 -x-1 (~a ) 输出结果 -61 ,二进制解释: 1100 0011, 在一个有符号二进制数的补码形式。
<< 左移动运算符:运算数的各二进位全部左移若干位,由”<<”右边的数指定移动的位数,高位丢弃,低位补0。 a << 2 输出结果 240 ,二进制解释: 1111 0000
>> 右移动运算符:把”>>”左边的运算数的各二进位全部右移若干位,”>>”右边的数指定移动的位数 a >> 2 输出结果 15 ,二进制解释: 0000 1111