Python编写格式
注释
#单行注释以井号开头
'''
多行注释在三个单(双)引号内
'''
缩进
#同一个程序只用Tab或者只用空格缩进,不要混用
#一行代码后面有冒号:,下一行肯定需要缩进
拆分和合并
#一行程序太长可以使用反斜线\分成两行
a=10+10+10 \
+10
#a=40
#一行程序有()[]{}可以折成多行
print("abcd"
+"efgh")
#输出abcdefgh
#用;将多行合并为一行
a=1;b=2;c=3
Python基本语法
变量
命名规则
1第一个字符必须是字母或者下划线
2不可以使用Python的关键字或保留字来当作标识符名称
3不可以重名
3区分大小写,Age和age是两个不同的变量
赋值
Python采用动态类型,可以一个变量赋不同类型的值,可以同时赋值给多个变量,也可以用”,”或”;”以不同的赋值语句连续声明变量
a=b=c=10#a=10,b=10,c=10
a,b=10,20#a=10,b=20
a=10;b=20#a=10,b=20
通常交换需要第三个值充当暂存变量
x,y=10,20
t=x;x=y;y=t#交换x,y
不过对于python来说,可以轻松的完成两个变量的交换操作
x,y=10,20
x,y=y,x#交换x,y
eval函数可以获取连续输入的值
# 使用swap的概念,获取连续输入的值
numA, numB, numC = eval(
input('请输入3个值,以逗点隔开->'))
total = numA + numB + numC
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 |
import math #导入math模块
a = 1E309
print('a = 1E309, 输出', a)
# 输出True,表示它是NaN
print('为NaN?', math.isnan(float(a/a)))
b = -1E309
print('b = -1309, 输出', b)
# 输出True,表示它是Inf
print('为Inf?', math.isinf(float(-1E309)))
fromhex(s) | 将十六进制的浮点数转为十进制数 |
hex() | 以字符串返回十六进制的浮点数 |
in_integer() | 判断是否为整数,若小数位数为零,则返回True |
复数类型
fcomplex由实数和虚数组成,叙述的部分还得加上字符j或J
cpmplex(re,im)#re为real,表示实数,im为imag,表示序数
z.real#获取复数的实数部分
z.imag#获取复数的虚数部分
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()函数能提供帮助
divmod(x,y)
#参数X执行x//y运算
#参数y执行x%y运算
divmod(15,4)#15//3得3,15%3余3,所以输出(3,3)
还可以导入math模块进行数值运算
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 |