一、运算符
Python中的运算符主要分为七大类: 算术运算符、比较(关系)运算符、赋值运算符、逻辑运算符、位运算符、成员运算符和身份运算符。
1、算术运算符
Python中算术运算符共有7个,如下所示:
2、比较(关系)运算符
Python中比较(关系)运算符共有6个,如下:
a = 10
b = 15
print(a == b) # False
print(a != b) # True
print(a > b) # False
print(a < b) # True
print(a >= b) # False
print(a <= b) # True
3、赋值运算符
Python中赋值运算符共有8个,如下:
a = 10
b = 15
a+=b # 等价于 a=a+b , = 10+15
print(a) # 25
a-=b # 等价于 a=a-b ,= 25-15 ,(因为上面a被重新赋值了为25)
print(a) # 10
a*=b # 等价于 a=a*b ,=10*15
print(a) # 150
a/=b # 等价于 a=a/b ,=150/15 ,结果为浮点数
print(a) # 10.0
a%=b # 等价于 a=a%b ,= 10.0%15 ,返回两个对象相除的余数,10/15=0.6 ,余数为10
print(a) # 10.0
a**=b # 等价于 a=a**b , 10的15次方
print(a) # 1000000000000000.0
a = 5
b = 2
a//=b # 等价于 a=a//b ,=5//2 ,结果为向下取整的整数
print(a) # 2
4、逻辑运算符
Python中的逻辑运算符共有3个,如下:
a = True
b = False
print(a and b) # False , and 的逻辑是同为True时才为True,否则为False
print(a or b) # True ,or 的逻辑是有一个为 True 时就为 True
print(not(a and b)) # True ,加上not后是将and的逻辑反过来
5、位运算符
Python的位运算符共有6个,如下所示:
a = 55 # 0011 0111
b = 11 # 0000 1011
print(a&b) # 3 0000 0011 ,都为1时才为1,否则为0
print(a|b) # 63 0011 1111 ,有一个为1就为1
print(a^b) # 60 0011 1100 ,相异时为1,相同为0
print(~a) # -56 1100 1000 ,取反,即把1变为0 ,把0变为1
c = 50 # 0011 0010
print(c<<3) # 400 左移指定位数,高位丢弃,低位补0,110010000
print(c>>3) # 6 右移指定位数,0000 0110
6、成员运算符
成员运算符共有2个,如下:
a = 2
b = 3
c = [1, 2, 3, 4, 5]
print(a in c) # True
print(b not in c) # False
7、身份运算符
身份运算符共有2个,如下:
a = 12
b = 12
c = 20
print(a is b) # True
print(a is not b) # False
print(a is not c) # True
8、运算符的优先级
运算符的优先级,从高到低排列,如下:
二、Python语言基础问答
1、命名变量时有什么技巧及原则?
Python是一种非常灵活的语言,命名变量或其他标识符时并没有统一的规则。 普通全量名:全部使用小写字母,单词之间用单下划线 " _ " 分隔; 全局变量名:全部使用大写字母,单词之间用单下划线 " _ " 分隔; 实例变量名:以单下划线 “ _ " 开头,其他同普通变量; 私有实例变量:以双下划线 " __ " 开头,其他同普通变量; 专有变量:开头和结尾都是以双下划线 " __ "。
2、Python语句的每行不需要用分号 “ ; ” 结尾吗?
Python语言区分代码块主要是通过每行缩进情况判断,结尾有没有分号并不影响Python语句的正常运行。
三、案例任务
1、写出匹配国内11位手机号码的正则表达式
int1 = '18898763540'
pattern1 = r'1[0-9]{10}' # [0-9] 等价于 \d
pattern1 = r'1\d{10}' # {10} 代表匹配10次,{10,} 表示最少匹配10次,{10,11}表示最少匹配10次,最多匹配11次
mach1 = re.match(pattern1, int1)
if mach1:
print("匹配成功")
else:
print("匹配失败")
结果:匹配成功
2、写出匹配电子邮箱地址
解析:电子邮箱地址格式是 “用户名@域名” ,其中 “域名” 部分至少存在一个 “ . ” ,而用户名部分至少有一个合法字符,“ @ " 和 ” . " 之间应该有一个合法字符 ,“ . " 右侧至少应该有一个合法字符。
mail = 'huhh@dd.com'
mail1 = '128763@qq.com'
mail2 = 'dd1u478@gol.com.cn'
mail3 = 'Matl.cmb.info@gmail.com004'
mail4 = 'ETL_Identifier_TTL20201@ird.gov.hk001'
# \w 代表[0-9a-zA-Z_] 包括下划线的任何单词字符 ,+ 表示出现一次或多次, * 表示出现0次或多次,\. 表示转义 . 点号 。[] 代表范围
par1 = r'\w+\@\w+\.\w+' # 可以匹配 mail、mail1、mail2、mail4 类型的邮箱 ,但不能匹配 mail3类型的电邮
par2 = r'\w+([-+.]\w+)*\@\w+([-.]\w+)*\.\w+([-.]\w+)*' # mail、mail1、mail2、mail3、mail4 类型的邮箱都可以
mach2 = re.match(par2, mail4)
if mach2:
print("匹配成功")
else:
print("匹配失败")
|