字符串的操作习题
- 字符串解析,现有一字符串,“卡巴斯基#杀毒软件#免费版#俄罗斯#”,解析出每个元素。
str = "卡巴斯基#杀毒软件#免费版#俄罗斯#"
#截取到-1,-1不取
str = str[:-1]
#按照#分割
print(str.split("#"))
去最后一个#,然后再按照#分割,输出结果为:
['卡巴斯基', '杀毒软件', '免费版', '俄罗斯']
- 那车水马龙的人世间,那样地来 那样地去,太匆忙"最后一次出现"那"的位置。
str = "那车水马龙的人世间,那样地来 那样地去,太匆忙"
index = str.rfind("那")
print(index)
变量名.rfind()为从右侧开始查找,输出结果为:
15
- 判断输入的字符串是否是 .py 结束
str = input("请输入一个字符串:")
#判断后三个字符串是否为.py
if str[-3:] == ".py":
print(True)
else:
print(False)
或者使用:
str = input("请输入一个字符串:")
print(str.endswith(".py"))
进行判断。
4. 有一身份证号,判断此为男还是女,基于此方法,写一个算法,判断一个身份证号为男还是女。(身份证分15位和18位)
def is_man(idcard):
if len(idcard) == 18:
return True if int(idcard[-2])%2 != 0 else False
if len(idcard) == 15:
return True if int(idcard[-1])%2 != 0 else False
b = is_man("111111111111111111")
print(b)
- 有如下格式的字符串name-age-sex-address,解析出姓名,年龄等信息。
直接按照-分开。
str = "name-age-sex-address"
print(str.split("-"))
- 求出字符串中有多少种字符,以及每个字符的个数
s = "apple is a apple."
list = [str(i) for i in s]
list.sort()
count = 0
a = list[0]
for item in list:
if item == a:
count += 1
else:
print(a,":",count)
count = 1
a = item
print(a,":",count)
- 去掉字符串右边的空格
str = " fgh "
print(str.rstrip())
#print(str.repalce(" ",""))
- 定义一个方法,将str所指字符串的正序和反序进行连接
str = "hello"
print(str)
print(str[::-1])
#拼接
print(str + str[::-1])
#或者
import operator
print(operator.concat(str,str[::-1]))
- 字符串右移n位,例如 “hello world” 右移两位后ldhello wor
s = "hello word"
s1 = s[-3:]+s[:-3]
print(s1)
- 判断一个字符串是否是回文
s = "qwewq"
print(s[::-1] == s)
- 如下字符串,01#张三#20-02#李四#30-03#王五#40。。。。。。,解析每个人分数多少。样式如下:
#01 张三 20
#02 李四 30
#03 王五 40。并且计算总分。
s = "01#张三#20-02#李四#30-03#王五#40"
list1 = s.split("-")
list2 = [item.split("#") for item in list1]
sum = 0
for item in list2:
sum += int(item[2])
print(sum)