py_字符串的操作方法

一、整型(int)、布尔值(bool)、字符串(str)

int----->str----->bool三者之间的转换

二、字符串的常规操作及内置方法

1、字符串的操作方法:

 

s = 'python全栈脱产班20期'
# 用索引取值
print(s[-5])
print(s[10])
# 切片 0可以省略不写
print(s[0:10])
print(s[:10])
print(s[:])
print(s[:10:2]) # 加步长每隔2个取一个值
# 反向取值必须加步长, 最后一位的索引值为-1,
print(s[-1:-8])
print(s[-1:-8:-2])

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')
答案

 正数索引和负数索引可以混用。只要能指到正确的元素即可。

 

 

posted @ 2019-03-05 13:55  叫我大表哥  阅读(1760)  评论(0编辑  收藏  举报