四、Python 字符串补充与运算符
1、对字符串的补充
1.1 字符串的操作
- len()字符串的长度
a = 'python'
print(len(a))
- max()min()字符串中最大值最小值
a = 'python'
# print(len(a))
print(max(a),min(a))
比较是通过ascll的大小来确定的
- split()分割字符串 (附:默认空格分隔,并存储于列表)
a = 'i love you'
print(a.split())
- jion()拼接字符串
a = 'i love you'
# print(a.split())
b = a.split()
print(b)
c = ' '.join(b)
print(c)
- find()查找字符串
a = 'python'
print(a.find('h'))
- replace()替换字符串
a = 'i love you'
print(a.replace('love','don\'t love'))
- partition()以指定字符串内容把字符串分割为指定内容,指定内容之前,指定内容之后三部分
a = 'i love you'
print(a.partition(' '))
print(a.partition('love'))
print(a.partition('you'))
- 去空格
- s.strip()去左右两边空格
- s.lstrip()去左边空格
- s.rstrip()去右边空格
a = ' i love you '
print(a.strip())
print(a.lstrip())
print(a.rstrip())
- 字符串大小写
- s.upper()全部大写
- s.lower()全部小写
- s.isupper()判断是不是大写
- s.islower()判断是不是小写
a = 'i love you'
b = a.upper()
print(b)
print(b.lower())
print(a.isupper())
print(b.isupper())
print(a.islower())
print(b.islower())
1.2 字符串的切片和索引
- 索引
一串数据的位置,顺序从0开始,逆序从-1开始
正序 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
---|---|---|---|---|---|---|---|---|---|
字符串 | a | b | c | d | e | f | g | h | i |
逆序 | -9 | -8 | -7 | -6 | -5 | -4 | -3 | -2 | -1 |
- 切片
在内存当中,数据是连续存储的数据类型,就可以切片
语法[起始位置:结束位置:步长]左闭右开,步长默认为1
a = 'abcdefghi'
print(a[2:6:1])#步长为1
print(a[2:6:2])#步长为2
print(a[::])#顺序打印
print(a[::-1])#逆序打印
print(a[-2::-1])#从倒数第二位开始逆序打印
print(a[-2:-5:-1])#从倒数第二位取到倒数第五位,不包括倒数第五位,逆序
print(a[-5:-2:1])#从倒数第五位取到倒数第二位,不包括倒数第二位,顺序
print(a[7:4:-1])#从第七位取到第四位,不包括第四位,逆序
print(a[4:7:1])#从第四位取到第七位,不包括第七位,顺序
2、运算符
2.1.字符串的概念
- 概念
运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算。例如:2+3,其操作数是2和3,而运算符则是“+” - 分类
算术运算符
赋值运算符
比较运算符(关系运算符)
逻辑运算符
条件运算符(三元运算符)
2.2.算术运算符
- 加法运算符 +
- 减法运算符 -
- 乘法运算符 *
- 除法运算符 /,结果是浮点数
- // 整除
- % 取模
- ** 幂运算
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 )
2.4. 比较运算符
- 比较运算符用来比较两个值之间的关系,总会返回一个布尔值.如果关系成立,返回True,否则返回False
• > 比较左侧值是否大于右侧值
• >= 比较左侧的值是否大于或等于右侧的值 - < 比较左侧值是否小于右侧值
- <= 比较左侧的值是否小于或等于右侧的值
- 特殊的比较方式
- == 比较两个对象的值是否相等
- != 比较两个对象的值是否不相等
- is 比较两个对象是否是同一个对象,比较的是对象的id
- is not 比较两个对象是否不是同一个对象,比较的是对象的id
2.5. 逻辑运算符
2.5.1 not 逻辑非
- not可以对符号右侧的值进行非运算,非运算会对其进行取反操作,True变False,False变True
- 0 空串‘’ None 还有一些表示空性的值会转换为False,其余剩下的所有的值都是True
2.5.2 and 逻辑与
- and可以对符号两侧的值进行与运算。 只有在符号两侧的值都为True时,才会返回True,只要有一个False就返回False
- 与运算是找False的,如果第一个值为False,则不再看第二个值
2.5.3 or 逻辑或
- 或运算两个值中只要有一个True,就会返回True
- 或运算是找True的
2.5.4 非布尔值的与或运算
-
当我们对非布尔值进行与或运算时,Python会将其当做布尔值运算,最终会返回原值
-
非布尔值与运算的规则
- 与运算是找False的,如果第一个值是False,则不看第二个值。如果第一个值是False,则直接返回第一个值,否则返回第二个值
- 非布尔值或运算的规则
- 或运算是找True的,如果第一个值是True,则不看第二个值,直接返回第一个值,否则返回第二个值
- 或运算是找True的,如果第一个值是True,则不看第二个值,直接返回第一个值,否则返回第二个值
2.6 条件运算符(三元运算符)
- 语法: 语句1 if 条件表达式 else 语句2
- 条件运算符在执行时,会先对条件表达式进行求值判断
- 如果判断结果为True,则执行语句1,并返回执行结果
- 如果判断结果为False,则执行语句2,并返回执行结果
第三讲作业
- 第2题:完成字符串的逆序以及统计设计一个程序,要求只能输入长度低于31的字符串,否则提示用户重新输入,打印出字符串长度使用切片逆序打印出字符串
在这里插入代码片a = input('请输入:')
if len(a) > 31:
print('请重新输入长度小于31的字符串:')
else:
print('字符串的长度位:%d' % len(a))
print('字符串的逆序打印为:{}'.format(a[::-1]))
第四讲作业
- 以4种格式化字符串的方式来实现 521 xxx 嫁给我好吗?
x = '521 '
y = 'honey '
z = '嫁给我好吗'
print(x + y + z) # 方法一
print('%s%s%s' % (x,y,z)) # 方法二
print(f'{x}{y}{z}') # 方法三
print('{}{}{}'.format(x,y,z)) # 方法四
- 现在有a b c三个变量,三个变量中分别保存有三个数值,请通过条件运算符获取三个值中的最大值
a = input('a:')
b = input('b:')
c = input('c:')
if a>b:
if a>c:
print('最大的数为a:%s' % a)
else:
print('最大的数为c:%s' % c)
else:
if b>c:
print('最大的数为b:%s' % b)
else:
print('最大的数为c:%s' % c)