python-N02

第五课

1. 运算符

1.1 运算符的概念

  • 运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算。例如:2+3,其操作数是2和3,而运算符则是“+”

1.2 运算符的分类

  • 算术运算符
  • 赋值运算符
  • 比较运算符(关系运算符)
#特殊比较 ascⅡ值比较
result = '2' > '1'
print(result)
True

result = 'ab' > 'aa'
print(result)
True

== != 比较对象的值
is is not 比较对象的id

a = [1,2,3]
b = [1,2,3]
result = a is b 
print(id(a),id(b))
print(result)

3187287017544 3187286186184
False

  • 逻辑运算符
  • 条件运算符(三元运算符)

2. 算术运算符

  • 加法运算符 表现形式 +
  • 减法运算符 表现形式 -
  • 乘法运算符 表现形式 *
  • 除法运算符 表现形式 /
  • // 整除,只会保留计算后的整数位,总会返回一个整型
  • % 取模,求两个数相除的余数
  • ** 幂运算,求一个值的几次幂

3. 赋值运算符

复制运算符的特殊写法 x = x + 3 其实是和 x += 3 是一样的

  • += (x+= 3 相当于 x = x + 3 )
  • -= (x -= 3 相当于 x= x - 3 )
  • *= (x = 3 相当于 x = x 3 )
  • **= (x **= 3 相当于 x = x ** 3 )
  • /= (x /= 3 相当于 x = x/ 3 )
  • //= (x //= 3 相当于 x = x // 3 )
  • %= (x %= 3 相当于 x= x % 3 )

4. 比较运算符

  • 比较运算符用来比较两个值之间的关系,总会返回一个布尔值.如果关系成立,返回True,否则返回False

  • 比较左侧值是否大于右侧值

  • = 比较左侧的值是否大于或等于右侧的值

  • < 比较左侧值是否小于右侧值

  • <= 比较左侧的值是否小于或等于右侧的值

  • 特殊的比较方式

  • == 比较两个对象的值是否相等

  • != 比较两个对象的值是否不相等

  • is 比较两个对象是否是同一个对象,比较的是对象的id

  • is not 比较两个对象是否不是同一个对象,比较的是对象的id

5. 逻辑运算符

5.1 not 逻辑非

  • not可以对符号右侧的值进行非运算对于布尔值,非运算会对其进行取反操作,True变False,False变True
 #逻辑非 :可以对符号右侧值进行非运算
a = 1
a = not 1
print(a)
>>>False

5.2 and 逻辑与

  • and可以对符号两侧的值进行与运算。 只有在符号两侧的值都为True时,才会返回True,只要有一个False就返回False
  • 与运算是找False的,如果第一个值为False,则不再看第二个值
result1 = True and True
result2 = True and False
print(result1,result2)
>>>True False

5.3 or 逻辑或

  • 或运算两个值中只要有一个True,就会返回True
  • 或运算是找True的
result1 = True or True
result2 = True or False
print(result1,result2)
>>> True True

5.4 非布尔值的与或运算

  • 当我们对非布尔值进行与或运算时,Python会将其当做布尔值运算,最终会返回原值

  • 非布尔值与运算的规则

  • 与运算是找False的,如果第一个值是False,则不看第二个值。如果第一个值是False,则直接返回第一个值,否则返回第二个值

result = 1 and 2
result1 = 1 and 0
result2 = 0 and 2
result3 = None and 1
print(result,result1,result2,result3)
>>> 2 0 0 None
  • 非布尔值或运算的规则

  • 或运算是找True的,如果第一个值是True,则不看第二个值。如果第一个值是True,则直接返回第一个值,否则返回第二个值

result = 1 or 2
result1 = 1 or 0
result2 = 0 or 2
result3 = None or 1
print(result,result1,result2,result3)
>>>1 1 2 1

6. 条件运算符(三元运算符)

image.png

条件运算符在执行时,会先对条件表达式进行求值判断

如果判断结果为True,则执行语句1,并返回执行结果

如果判断结果为False,则执行语句2,并返回执行结果

语法: 语句1 if 条件表达式 else 语句2

a = 20
b = 30
print('a的值比较大') if a > b else print('b的值比较大')
>>>b的值比较大

a = 20
b = 30
m = a if a > b else b
print(m)
>>>30

7. 运算符的优先级

# 运输符优先级
b = 2 or 3 and 4
# and 的优先级比 or 高
print(b)
>>>2

运算符优先级参照表

运算符优先级别.png

8 字符串操作

# find
# 检测 str 是否包含在 A 中,如果是返回开始的索引值,否则返回-1
# mystr.find(str, start=0, end=len(mystr))
A = 'hello world itcast and itcastcpp'
a = A.find('itcast')
print(a)
b = A.find('itcast',0,10)
print(b)
c = A.find('itcast',0,19)
print(c)
12
-1
12
#index
#find()方法一样,只不过如果str不在 mystr中会报一个异常.
#mystr.index(str, start=0, end=len(mystr))
A = 'hello world itcast and itcastcpp'
a = A.index('itcast')
print(a)
>>>12
b = A.index('itcast',0,10)
print(b)
>>> b = A.index('itcast',0,10)
ValueError: substring not found
c = A.index('itcast',0,19)
print(c)
>>>12
# count
# 返回 str在start和end之间 在 mystr里面出现的次数
# mystr.count(str, start=0, end=len(mystr))
A = 'hello world itcast and itcastcpp'
m = A.count('itcast',0,len(A))
print(m)
>>>2
# replace
# 把 mystr 中的 str1 替换成 str2,如果 count 指定,则替换不超过 count 次.
# mystr.replace(str1, str2,  mystr.count(str1))
name = 'hello world ha ha'
a = name.replace('ha','HA')
b = name.replace('ha','HA',1)
print(a)
>>> hello world HA HA
print(b)
>>>hello world HA ha
# split
# 以 str 为分隔符切片 mystr,如果 maxsplit有指定值,则仅分隔 maxsplit 个子字符串
# mystr.split(str=" ", 2)
# 以” “ 切分
name = 'hello world ha ha'
s = name.split(' ')  
s1 = name.split(' ',2)
print(s)
['hello', 'world', 'ha', 'ha']
print(s1)
['hello', 'world', 'ha ha']
#以”a或者h“ 字符串中存在字符切分
name = 'hello world ha ha'
s = name.split('a')
s1 = name.split('h',2)
print(s)
>>>['hello world h', ' h', '']
print(s1)
>>>['', 'ello world ', 'a ha']
#以字符串中不存在字符切分
name = 'hello world ha ha'
s = name.split('n')
s1 = name.split('n',2)
print(s)
>>>['hello world ha ha']
print(s1)
>>>['hello world ha ha']
# capitalize
# 把字符串的第一个字符大写
# mystr.capitalize()
name = 'hello world ha ha'
a = name.capitalize()
print(a)
>>>Hello world ha ha
# <7>title
# 把字符串的每个单词首字母大写
a = "hello itcast"
b = a.title()
print(b)
>>>Hello Itcast
# startswith & endswith
# 检查字符串是否是以 hello 开头, 是则返回 True,否则返回 False
a = "hello itcast"
b = a.startswith('hello')
c = a.endswith('st')
print(b)
>>>True
print(c)
>>>True
# lower & upper 大小写转换
a = "Hello Itcast"
b = a.lower()
c = a.upper()
print(b,c)
>>>hello itcast HELLO ITCAST

9 作业

三个数比大小
a = input("a:")
b = input("b:")
c = input("c:")
num = max(int(a), int(b),int(c))
print(num)
a = float(input('请输入a值:'))
b = float(input('请输入b值:'))
c = float(input('请输入c值:'))
m = a if(a > b and a > c) else b if (b>c) else c
print(m)
a = float(input('请输入a值:'))
b = float(input('请输入b值:'))
c = float(input('请输入c值:'))
if a > b and a > c:
    print(a)
elif b > a and b > c:
    print(b)
else:
    print(c)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容