基础【三】字符串的操作方法
py_字符串的操作方法
一、整型(int)、布尔值(bool)、字符串(str)
int----->str----->bool三者之间的转换
二、字符串的常规操作及内置方法
1、字符串的操作方法:
按 Ctrl+C 复制代码
按 Ctrl+C 复制代码
2、字符串的内置方法
# 大前提:对字符串的任何操作都是产生一个新的字符串,与原字符串没有关系
s = 'Wusirs22' t1 = s.count('a') # 在字符串中查找指定字符有多少个 t2 = s.upper() # 将字符串中的字符全部大写 t3 = s.lower() # 将字符串中的字符全部小写 t4 = s.title() # 非字母隔开的每个单词的首字母大写 t5 = s.find('a') # 通过元素获取其索引,找到第一个就返回,找不到会返回-1。 t6 = s.index('a') # 通过元素获取其索引,找到第一个就返回,找不到会报错。 t7 = s.capitalize() # 将字符串中的首字母大写 t8 = s.replace('a','nb',2) # 替换,由什么替换成什么,替换几次 t9 = s.startswith('w') # 判断以什么为开头 可以切片 t10 = s.startswith('i',3,) # 判断以什么为开头 可以切片,取索引3后面的所有字符 t11 = s.endswith('i',3) # 判断以什么结尾,可以切片,取索引3后面的所有字符 t12 = s.swapcase() # 大小写反转 t13 = s.isupper() # 判断字符串中所有字母是否为大写,返回布尔值 t14 = s.islower() # 判断字符串中所有字母是否为小写,返回布尔值 t15 = s.isdigit() # 字符串只由数字组成 t16 = s.isalpha() # 字符串只由字母组成 t17 = s.isalnum() # 字符串由字母或数字组成 --------------------------------------------------------------- t18 = s.strip('W') # 默认去除字符串两边的空格,换行符,制表符,只是去除左边-->lstrip()去除右边-->rstrip(),可设置去除的字符 t19 = s.split() # 默认按照空格分割, t20 = s.split('r') # 指定字符进行分割, t21 = s.split('s',2) # 指定字符进行分割,且指定分割次数 --------------------------------------------------------------- join 连接符 l1 = ['wusir', 'alex', 'taibai'] # 操作列表时,列表里面的内容必须全部是字符串类型 t22 = ''.join(l1) # 默认连接 t23 = '-'.join(l1) # 指定字符连接 --------------------------------------------------------------- 字符串的格式化输出 第一种情况 m = '姓名:{} 年龄:{} 性别:{}' w = m.format('烟雨江南',20,'男') print(w) 第二种情况 m = '姓名:{0} 年龄:{1} 性别:{2} 我永远{1}岁' w = m.format('烟雨江南',18,'男') print(w) 第三种情况 m = '姓名:{name} 年龄:{age} 性别:{sex} 我永远{age}岁' w = m.format(name = '烟雨江南',age = 18,sex = '男') print(w)
作业:
1、分别⽤while,for循环输出字符串s = input("你想输⼊的内容")的每⼀个字符。
2、实现⼀个整数加法计算器(两个数相加): 如:content = input("请输⼊内容:") ⽤户输⼊:5+9或5+ 9或5 + 9,然后进⾏分 割再进⾏计算;
3、计算⽤户输⼊的内容中有⼏个整数(以个位数为单位)。 如:content = input("请输⼊内容:") # 如fhdal234slfh98769fjdla
4、写代码:计算 1 - 2 + 3 ... + 99 中除了88以外所有数的总和?
5、输⼊⼀个字符串,要求判断在这个字符串中⼤写字⺟,⼩写字⺟,数字, 其它字符 共出现了多少次,并输出出来
6、使⽤for循环对s="abcdefg"进⾏循环,每次打印的内容是每个字符加上sb, 例如: asb, bsb,csb,...gsb
第一题: s = input('你想要输入的内容') for i in s: print(i) count = 0 while count < len(s): print(s[count]) count += 1 第二题: content = input("请输⼊内容:").split('+') s = 0 for i in content: s = s+ int(i) print(s) 第三题: content = input("请输⼊内容:").strip() # 如fhdal234slfh98769fjdla count = 0 for i in content: if i.isdigit(): count += 1 print(count) 第四题: count = 1 sum = 0 while count < 100: if count == 88: count += 1 continue if count % 2 == 0: sum = sum - count else: sum = sum + count count = count + 1 print(sum) 第五题: s = input("请输入一句话") upper_num = 0 lower_num = 0 num = 0 other = 0 for a in s: if a.isupper(): upper_num += 1 elif a.islower(): lower_num += 1 elif a.isdigit(): num += 1 else: other += 1 print("大写字母有%s个,小写字母有%s个,数字有%s个,其他有%s个" % (upper_num,lower_num,num,other)) 第六题: s="abcdefg" for i in s: print(i+'sb') 答案
正数索引和负数索引可以混用。只要能指到正确的元素即可。