4、python运算符——旺仔

在这里插入图片描述

1、运算符的概念

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

  • 运算符的分类
    • 算术运算符
    • 赋值运算符
    • 比较运算符(关系运算符)
    • 逻辑运算符
    • 条件运算符(三元运算符)

2、算术运算符

运算符表现形式
加法+
减法-
除法/
乘法*
整除//
取模%
幂运算**
  • 效果如图
    在这里插入图片描述

备注:需注意的为负数的取模%,例如:-10%3 = 2
在这里插入图片描述
解释:-10 = (-4 * 3)+ 2

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
运算符解释说明
>比较左侧值是否大于右侧值
>=比较左侧的值是否大于或等于右侧的值
<比较左侧值是否小于右侧值
<=比较左侧的值是否小于或等于右侧的值
==比较两个对象的值是否相等
!=比较两个对象的值是否不相等

5、逻辑运算符

5.1 not 逻辑非

  • not可以对符号右侧的值进行非运算,对于布尔值,非运算会对其进行取反操作,True变False,False变True,如图:
    在这里插入图片描述

5.2 and 逻辑与

  • and可以对符号两侧的值进行与运算。 只有在符号两侧的值都为True时,才会返回True,只要有一个False就返回False
  • 与运算是找False的,如果第一个值为False,则不再看第二个值
  • 如图:
    在这里插入图片描述

5.3 or 逻辑或

  • 或运算两个值中只要有一个True,就会返回True
  • 或运算是找True的
  • 如图:
    在这里插入图片描述

5.4 非布尔值的与或运算

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

非布尔值与运算的规则

  • 与运算是找False的,如果第一个值是False,则不看第二个值。如果第一个值是False,则直接返回第一个值,否则返回第二个值,如图:
    在这里插入图片描述

非布尔值或运算的规则

  • 或运算是找True的,如果第一个值是True,则不看第二个值。如果第一个值是True,则直接返回第一个值,否则返回第二个值,如图:
    在这里插入图片描述

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

语法: 语句1 if 条件表达式 else 语句2
条件运算符在执行时,会先对条件表达式进行求值判断

  • 如果判断结果为True,则执行语句1,并返回执行结果
  • 如果判断结果为False,则执行语句2,并返回执行结果
# 例如
a = 13
b = 15
print('a大于b') if a>b else print('b大于a')
# 运行结果 》》》 b大于a

7、成员运算符

  • 除了以上的一些运算符之外, Python还支持成员运算符,测试实例中包含了一系列的成员,包括字符串,列表或元组。
运算符描述
in如果在指定的序列中找到值返回True ,否则返回False。
not in如果在指定的序列中没有 找到值返回True,否则返回False。
a = '356365376462'
print('1' in a)
# 运行结果 》》》 False
b = '1356365376462'
print('1' in b)
# 运行结果 》》》 True

8、身份运算符

运算符描述
is比较两个对象是否是同一个对象,比较的是对象的id
is not比较两个对象是否不是同一个对象,比较的是对象的id
a = 123
b = 123
print(a is b)
# 运行结果 》》》 True

is运算符与==运算符的差别:
is比较对象的id地址,==比较对象的值,不能搞混了

9、运算符的优先级

运算符优先级参照表
在这里插入图片描述

10、对字符串的补充

10.1 字符串的操作

  • len() 字符串的长度
`a = 'python'
print(len(a))`
# 运行结果 》》》6
  • max() 最大值 (附:比较ascII的值)
a = 'python'
print(max(a))
# 运行结果 》》》y
  • min() 最小值
a = 'python'
print(min(a))
# 运行结果 》》》h
  • split()分割字符串 (附:默认空格分隔,并存储于列表)
a = 'i love python'
print(a.split())
# 运行结果 》》》['i', 'love', 'python']
  • join()拼接字符串
a = 'i love python'
b = a.split()
print(b)
# 运行结果 》》》['i', 'love', 'python']
# 开始拼接
c = ' '.join(b)
print(c)
# 运行结果 》》》i love python
  • find()查找字符串 (附:输出索引值)
a = 'python'
print(a.find('t'))
# 运行结果 》》》2
  • replace() 替换字符串
a = 'i love python'
print(a.replace('love','don\'t love'))
# 运行结果 》》》i don't love python
  • partition() 把字符串分割为三部分
a = 'i love python'
print(a.partition('love'))
# 运行结果 》》》('i ', 'love', ' python')
print(a.partition('i'))
# 运行结果 》》》('', 'i', ' love python')
  • 去空格
    • s.strip() 左右两边去空格
    • s.lstrip() 去左边空格
    • s.rstrip() 去右边空格
a = ' i love python '
print(a.strip())
# 运行结果 》》》 ‘i love python’
print(a.lstrip())
# 运行结果 》》》 ‘i love python ’
print(a.rstrip())
# 运行结果 》》》 ‘ i love python’
  • 字符串大小写
    • s.upper() 全部大写
    • s.lower() 全部小写
    • s.isupper() 判断是不是大写
    • s.islower() 判断是不是小写
a = 'i love python'
print(a.upper())
# 运行结果 》》》I LOVE PYTHON
print(a.lower())
# 运行结果 》》》 i love python
print(a.isupper())
# 运行结果 》》》 False
print(a.islower())
# 运行结果 》》》 True

10.2 字符串的切片

  • 索引

    序列就是名为容器的数据结构。序列(例如:列表,元组)和映射(例如:字典),序列中的每个元素都有一个编号,而映射中的每个元素都有一个名字(键),而集合既不是序列类型的容器也不是映射的类型。
    序列可以一些特殊的操作:索引,分片,加,乘,检查某个元素是否属于序列。除此之外python还可以计算序列的长度,找出最大函数和最小函数的内建函数。

字符串abcdefghi
编号(正序)012345678
编号(反序)-9-8-7-6-5-4-3-2-1
  • 切片

语法: 变量[起始位置:结束为止:步长] 左闭右开区间 取头不取尾 步长默认是1
[::] 起始位置默认从0开始,结束为止默认取到最后所有的数

a = 'abcdefghi'
print(a[2:6:2])
# 运行结果 》》》ce
# 字符串a从第2位c开始到第6位g,g不可取,步长为2

print(a[::])
# 运行结果 》》》abcdefghi
# 打印所有字符串

print(a[::-1])
# 运行结果 》》》ihgfedcba
# 逆序打印字符串

print(a[-1::-1])
# 运行结果 》》》ihgfedcba
#  逆序打印字符串

print(a[-1:-5:-1])
# 运行结果 》》》ihgf
# 从最后1位i取到倒数第5位e,e不可取,步长为-1

print(a[-5:-1:1])
# 运行结果 》》》efgh
# 从倒数第5位e取到最后1位i,i不可取,步长为1

print(a[-2:-6:-1])
# 运行结果 》》》hgfe
# 从倒数第2位h取到倒数第6位d,d不可取,步长为-1

11、课后作业

在这里插入图片描述
1、 以4种格式化字符串的方式来实现 521 xxx 嫁给我好吗?

# 以4种格式化字符串的方式来实现 521 xxx 嫁给我好吗?
a = '521'
b = 'my girl'
c = '嫁给我好吗?'
d = ' '
# 方法一 直接字符串链接
print(a+d+b+d+c)
# 方法二 %s占位符
print('521 my girl %s' %(c))
# 方法三 名称占位符
print('521 {a} {b}'.format(a='my girl',b='嫁给我好吗?'))
# 方法四 序号占位符
print("521 {0} {1}".format(b,c))
# 方法五 format混合使用
print('521 {0} {a}'.format(b,a='嫁给我好吗?'))
# 方法六 f-string
print(f'521 {b} {c}')

运行结果如图:
在这里插入图片描述

知识点总结:
方法一:
 运用+运算符,可直接将字符串进行链接
方法二:
 %s是一种字符串占位符,在使用时可以使用%s在目标字符串中占位,将需要的字符串替换到%s时则只需要在目标字符串后面添加%,例如:‘521 my girl %s’ %( c )
方法三
  format()名称占位符,在使用时可以使用自己起的名称在目标字符串中占位,将需要的字符串替换到所需位置,例如:‘521 {a} {b}’.format(a=‘my girl’,b=‘嫁给我好吗?’)
方法四
  format()序号占位符,在使用时可以使用序号(从0开始)在目标字符串中占位,将需要的字符串替换到所需位置,例如:“521 {0} {1}”.format(b,c)
方法五
  format()混合使用,将上述2种方法结合,例如:‘521 {0} {a}’.format(b,a=‘嫁给我好吗?’)
方法六:
 f-string是一个文字字符串,前缀为’f’,其中包含大括号内的表达式。表达式会将大括号中的内容替换为其值。例如:f’521 {b} {c}’

2、现在有a b c 三个变量,三个变量中分别保存有三个数值,请通过条件运算获取3个值中的最大值

# 现在有a b c 三个变量,三个变量中分别保存有三个数值,请通过条件运算获取3个值中的最大值
a = input('请输入一个数给你a:')
b = input('请输入一个数给你b:')
c = input('请输入一个数给你c:')
if a>b:
    if a>c:
        print('最大的数为a:' + a)
    else:
        print('最大的数为c:' + c)
else:
    if b>c:
        print('最大的数为b:' + b)
    else:
        print('最大的数为c:' + c)

分别给abc赋值,测试结果(这里尝试了3种赋值方式):
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

知识点总结:
 运用到if条件判断语句的嵌套。
if语句语法:
if 判断语句:
    pass
else:
    pass

此处需注意的地方就是缩进,缩进可以为一个tab键,也可以是4个空格

附加(个人思考)

在题二的基础上加上将数字排序显示,将之前将的字符串知识融会贯通使用。
代码如下:

a = input('请输入一个数给你a:')
b = input('请输入一个数给你b:')
c = input('请输入一个数给你c:')
d = '从大到小排序为:'
if a>b:
    if a>c:
        print('最大的数为a:' + a)
        d = d + ' a>'
        if b > c:
            d = d + 'b>c'
        else:
            d = d + 'c>b'
    else:
        print('最大的数为c:' + c)
        d = d + ' c>'
        if b > a:
            d = d + 'b>a'
        else:
            d = d + 'a>b'
else:
    if b>c:
        print('最大的数为b:' + b)
        d = d + ' b>'
        if a > c:
            d = d + 'a>c'
        else:
            d = d + 'c>a'
    else:
        print('最大的数为c:' + c)
        d = d + ' c>'
        if a > b:
            d = d + 'a>b'
        else:
            d = d + 'b>a'
print(d)
e = '从小到大排序为: ' + d[-1:-6:-1].replace('>','<')
print(e)

效果如图:
在这里插入图片描述
在这里插入图片描述

旺仔注:

心得体会:真正学一样东西,只要融入进去,时间就过得特别快,每次坐在电脑前,敲代码什么的,一弄可以弄半天,根本察觉不到时间的流逝,所以想要学习,兴趣才是最好的老师,只要对一件事感兴趣,自然就会去了解,去学习,使用。希望自己能够一直不忘初心,把这个学好,也希望各位读者也能万事如意,事事顺心。

在这里插入图片描述

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值