运算符与分支结构
Posted wsdr95-
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了运算符与分支结构相关的知识,希望对你有一定的参考价值。
运算符
-
赋值运算符
-
用‘=‘表示,左边只能是变量。
-
-
算术运算符
-
+、-、*:加、减、乘
-
/:除法运算,结果是浮点数
-
//:除法运算,结果是整数
-
%:求余
-
**:求幂
-
-
复合运算符
-
+=、-=、*=、/=、//=、%=、**=
-
示例:
a += b
等价于a = a + b
-
-
关系运算符
-
>、>=、<、<=、==、!=
-
表达式:由操作数和运算符构成的式子
-
关系表达式:由操作数和关系运算符构成的式子
-
关系表达式是有值的:符合数学逻辑值为真(True)、不符合数学逻辑值为假(False)
-
-
逻辑运算符
-
与(and):两边的表达式同时为真,结果才为真。
a = 20
# 通用写法
# print(a>=10 and a<=100)
# 特有写法
print(10 <= a <= 100)
?
b = 10
print(b%3 == 0 and b%5 == 0)-
或(or):两边的表达式一个为真,结果就为真。
year = int(input(‘请输入一个年份:‘))
print((year % 4 == 0 and year % 100 != 0) or (year % 400 == 0))-
非(not):用于取反表达式,真变假,假变真。
-
经常伴随着隐式类型转换
-
使用not是为了简化书写
-
-
-
成员运算符
-
in、not in:判断一个值是否在另一个变量中
-
说明:通常用在字符串、列表、元组、集合、字典等成员的判断
-
示例:
lt = [1, 2, 3]
print(8 in lt)
print(8 not in lt)
d = {‘name‘: ‘ergou‘, ‘age‘: 18}
# 字典成员判断的是键
print(‘name‘ in d) -
-
位运算符(了解)
-
&:按位与,对应的数据位同时为1,结果上对应的位才为1
-
|:按位或,对应的数据位一个为1,结果上对应的位就为1
-
^:按位异或,对应的数据位相同时结果上的位为0,不同时结果上位为1
-
~:按位取反,数据的每一位,0变1,1变0
-
<<:按位左移,左移一位相当于乘以2
-
》:按位右移,右移一位相当于除以2
-
-
优先级与结合性
-
语法中没有明确规定运算符的优先级与结合性,即使明确说了你也不一定能记得住。
-
建议:使用时不用刻意记录优先级与结合性,当需要明确指定时添加括号即可。
-
流程控制
-
说明:
-
按照程序的执行流程,程序可以分为三种结构:顺序结构、分支结构、循环结构
-
顺序结构:代码按照从上到下的顺序依次执行,没有语法要求。
-
代码层次:python中的代码块不是通过大括号表示的,而是通过缩进来表示。
-
-
分支结构(if-else)
-
格式1:适合于生活中的条件执行问题
if 表达式:
语句块执行流程:当程序执行到if语句时,首先判断表达式的真假。若表达式的值为真,则指定缩进的语句块;若表达式的值为假,则跳过语句块执行后面的内容。
-
格式2:适合于解决生活非此即彼的问题
if 表达式:
语句块1
else:
语句块2执行流程:当程序执行到if-else语句时,首先判断表达式的值真假。若表达式的值为真,则执行语句块1;若表达式的值为假,则执行语句块2.
-
格式3:适合于解决生活中多种选择的问题
if 表达式1:
语句块1
elif 表达式2:
语句块2
elif 表达式n:
语句块n
else:
语句块-
elif的个数没有限制
-
else可以省略
-
所有的语句块最多只能执行一个
-
字符串格式化
-
示例:
name = ‘二狗‘
like = ‘王大花‘
age = 18
# 格式化
# %s:字符串
# %d:整数
# %f:浮点
# %c:字符
print(‘俺叫%s,暗恋%s,她今年%d岁‘ % (name, like, age))
?
# python特有的格式化方案,推荐使用
print(‘俺叫{},暗恋{},她今年{}岁‘.format(name, like, age))
print(‘俺叫{2},暗恋{1},她今年{0}岁‘.format(name, like, age))
print(‘俺叫{l},暗恋{n},她今年{a}岁‘.format(n=name, l=like, a=age))
ASCII
-
说明:美国信息交换标准代码,就是用一个数字代表一个字符的表示形式。
-
函数:
# 根据字符获取ASCII码
print(ord(‘A‘))
# 根据ASCII码的值获取字符
print(chr(97))
列表操作
-
示例:
lt = [1, 2, 3, 4, 5]
?
print(lt[0])
print(lt[-1])
print(lt[1:3])
print(len(lt))
?
# 修改
lt[0] = 100
?
# 追加,在列表的末尾添加
# lt.append(200)
# 整体作为一个元素添加
# lt.append([200, 300])
# 将可迭代对象中的每一个元素依次添加到列表
lt.extend([200, 300])
?
# 在指定位置插入元素
lt.insert(2, 250)
?
# 删除
# 根据下标删除元素
del lt[0]
# 根据值进行删除
lt.remove(250)
# 返回并删除执行下标的元素,默认最后一个
last = lt.pop(3)
print(last)
?
lt = [1, 2, 3, 4, 5, 1]
# 根据元素,查找下标(第一个)
print(lt.index(1))
# 统计元素出现的次数
print(lt.count(1))
?
# 逆序
lt.reverse()
print(lt)
?
lt = [5, 8, 3, 1, 9]
# 排序,默认升序,可以通过reverse参数指定倒序排
lt.sort(reverse=True)
print(lt)
集合操作
-
示例
s = {‘生辉‘, ‘学轩‘, ‘俊峰‘, ‘鹏基‘, ‘二狗‘}
?
# 添加元素
s.add(‘晓富‘)
?
# 删除
# s.remove(‘二狗‘)
# 删除不存在的元素时会报KeyError错
# s.remove(‘狗蛋‘)
# 有就删除,没有也不报错
# s.discard(‘狗蛋‘)
?
# 返回并删除
# print(s.pop())
?
# 清空元素
s.clear()
?
# print(s)
?
s1 = {‘小马‘, ‘小芳‘, ‘小敏‘}
s2 = {‘小杜‘, ‘小王‘, ‘小敏‘}
?
# 并集,捕获改变原集合
# print(s1.union(s2))
?
# 交集,不会改变原集合
# print(s1.intersection(s2))
# 交集,然后覆盖原集合
# s1.intersection_update(s2)
?
# 差集,不会改变原集合
# print(s1.difference(s2))
# 差集,然后覆盖原集合
# s1.difference_update(s2)
?
# print(s1)
?
# 判断是否没有交集
print(s1.isdisjoint(s2))
?
# 判断是否是另一集合的子集
print(s1.issubset(s2))
?
# 判断是否是另一集合的父集/超集
print(s1.issuperset(s2))
字典操作
-
示例
d = {‘name‘:‘ergou‘,‘age‘:18}
?
#获取成员
print(d.get(‘name‘,‘默认‘))
?
#修改元素
#元素存在直接更改
#d[‘name‘] = ‘二狗‘
#元素不存在则添加
#d[‘height‘] = 180
?
#更新,存在的覆盖,不存在的添加
#d.update({‘name‘:‘二狗‘,‘height‘: 180})
?
#删除
#del d[‘age‘]
#返回后删除
#print(d.pop(‘age‘))
?
#清空
#d.clear()
?
print(d)
以上是关于运算符与分支结构的主要内容,如果未能解决你的问题,请参考以下文章