python字符串和切片操作

python字符串和切片操作

  • 1.去掉字符串中所有的空格
  • 2. 获取字符串中汉字的个数
  • 3.将字母全部转换为大写和小写
  • 4.根据标点符号对字符串进行分行
  • 5. 去掉字符串数组中每个字符串的空格(循环)
  • 6.随意输入心中想到的一个书名,然后输出它的字符串长度(len属性)
  • 7.用户输入一个日期格式如‘’2021/03/28“,将输入的日期转换为”2021年-3月-28日“
  • 8.接收用户输入的字符串,将其中的字符进行排序,并以逆序输出。
  • 9.. 用户输入一句英文,将其中的单词以反序输出
  • 10. 用户输入一句话,找出所有”呵“的位置
  • 11.有个字符串数组,存储了10个书名,书名有长有短,现在将他们统一处理,若长度大于10,则截取长度为8的子串,将统一处理后的结果输出
  • 12.用户输入一句话,找出所有”呵呵“的位置
  • 13.如何判断一个字符串是否是另一个字符串的子串
  • 14.如何验证一个字符串中的每一个字符均在另一个字符串中出现
  • 15.如何生成无数字的全字母的字符串
  • 16.如何随机生成带数字和字母的字符串
  • 17.如何判定一个字符串中既有数字又有字母
  • 18.python中不可变对象有哪些?
  • 19.判断一个数是否是回文数字
  • 20. L = [‘Adam’, ‘Lisa’, ‘Bart’, ‘Paul’]取前三个元素
  • 21. range()函数可以创建一个数列:range(1, 101)
  • 22.利用倒序切片对 1 - 100 的数列取出:最后10个数;最后10个5的倍数
  • 23. 请设计一个函数,它接受一个字符串,然后返回一个仅首字母变成大写的字符串(切片upper())
  • 24.利用切片操作,实现一个trim()函数,去除字符串首尾的空格,注意不要调用str的strip()方法
  • 25.从键盘上输入自己或同学的身份证号,从中取出出生年份、月份、日期以及性别信息

1.去掉字符串中所有的空格

我们可以适用replace(m,n)方法来实现去掉字符串中的所以的空格
下面是代码实现

// 将字符串中所有的空格删除
s=' This is a demo '
print(s.replace(' ',''))

运行结果如下图所示
python字符串和切片操作_第1张图片

2. 获取字符串中汉字的个数

首先要获取汉字的话我们要了解Unicode里的字符编码,
\u0020 空格
\u0040 ~ \u005A  大写字母A~Z
\u0061 ~ \u007A  小写字母a~z
\u4E00 ~ \u9FFF  中文字符
\u0030 ~ \u0039   数字
了解了这些字符编码后我们就可以用isalpha()函数来判断字符串中的汉字个数了。
下面是代码实现

ch=0;
string = input()
for x in string:
	if x <='\u9fff' and x>='u4e00':
		ch+=1
print(ch)

运行结果如下图所示
python字符串和切片操作_第2张图片

3.将字母全部转换为大写和小写

将字母转换大小写我们可以用swapcase()函数来实现
下面是代码实现

str = "This Is String Example....Wow!!!"
print (str.swapcase())

运行结果如下图所示
在这里插入图片描述

4.根据标点符号对字符串进行分行

根据标点符号分割我们可以用split()函数
split() 默认是以空格进行分割,如果在其中添加 逗号,如: split(’,’) 则是以逗号进行分割
下面是代码实现

str1='a,b,c,d'
list1=str1.split(',')
//因为split()分割出来的是一个list类型,
//所以用一个list来装
for each in list1:
	print(each)

以下是运行结果
python字符串和切片操作_第3张图片

5. 去掉字符串数组中每个字符串的空格(循环)

代码如下

ls=[" hh 12 "," 卧底 是谁 " ,"A you ok"]
ls1=[]
for i in range(0,len(ls)):
	ls1.append(ls[i].replace(" ",""))
print(ls1)

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

6.随意输入心中想到的一个书名,然后输出它的字符串长度(len属性)

代码实现

str=input()
print(len(str))

运行结果
python字符串和切片操作_第4张图片

7.用户输入一个日期格式如‘’2021/03/28“,将输入的日期转换为”2021年-3月-28日“

代码如下

s="2021/03/28"
a=s.split('/')
a[0]=a[0]+"年"
a[1]=a[1]+"月"
a[2]=a[2]+"日"
'-'.join([a[0],a[1],a[2]])

运行结果如下
python字符串和切片操作_第5张图片

8.接收用户输入的字符串,将其中的字符进行排序,并以逆序输出。

例如:acdefb - abcdef-fedcba
由于python里没有字符数组这个概念,但我们可以用列表来存储我们的字符串并用列表里的sort函数来实现排序。
代码如下

s="acdefb"
ll=list(s)//将字符串存入列表中
ll.sort()
ll.sort(reverse=True)
//缺省为升序排序,通过reverse = True参数实现降序排列,
l2=''.join(ll)
//把列表中的元素放在空串中
print(l2)

运行结果如下
python字符串和切片操作_第6张图片

9… 用户输入一句英文,将其中的单词以反序输出

例如:hello c sharp — sharp c hello
代码如下

str=input()
s=str.split()//以空格来分开字符串
s.sort(reverse=True)//缺省为升序排序,通过reverse = True参数实现降序排列,
l2=' '.join(s)//把列表中的元素放在空串中,元素间用空格隔开
print(l2)

运行结果如下
python字符串和切片操作_第7张图片

10. 用户输入一句话,找出所有”呵“的位置

这题可以先建立一个空列表,然后再遍历字符串
如果找到"呵"就给空列表添加i的值。
代码如下

s = input("请输入一段话!")
ls = []
for i in range(0,len(s)):
    if s[i] == "呵":
        ls.append(i)

print("呵的位置是:{}".format(ls))

运行结果如下
python字符串和切片操作_第8张图片

11.有个字符串数组,存储了10个书名,书名有长有短,现在将他们统一处理,若长度大于10,则截取长度为8的子串,将统一处理后的结果输出

代码如下

ls = ["我的世界冲冲冲啊冲啊啊","遥远的老天爷","红尘往市不在回首嘿嘿黑","活着","白鹿原之青青草原112"] //10个书名太多了,我只存了几个
for i in range(0,len(ls)):
	s=ls[i]
	if(len(s)>10):
		s=s[0:9]
	ls=[i]=s
print(ls)

运行结果如下
python字符串和切片操作_第9张图片

12.用户输入一句话,找出所有”呵呵“的位置

这题直接在第十题的基础上加一个判断条件就好了
代码如下

s = input("请输入一段话!")
ls = []
for i in range(0,len(s)-1):
    if s[i] == "呵"and s[i+1] =="呵":
        ls.append(i)

print("呵的位置是:{}".format(ls))

运行结果如下

python字符串和切片操作_第10张图片

13.如何判断一个字符串是否是另一个字符串的子串

代码如下

s = input("请输入字符串A:")
s1 = input("请输入需要判断的字符串B:")
flag = True
if s.find(s1) != -1:
    flag = False
if flag:
    print("字符串B {}不在A {}内".format(s1,s))
else:
     print("字符串B {}在A {}内".format(s1,s))

运行结果如下
python字符串和切片操作_第11张图片

14.如何验证一个字符串中的每一个字符均在另一个字符串中出现

这题在上一题的基础上加一个循环判断每一个元素就好了
代码如下

s = input("请输入字符串A:")
s1 = input("请输入需要判断的字符串B:")
flag = True
for i in range(0,len(s1)):
    if s.find(s1[i]) == -1:
        flag = False
if flag:
    print("字符串B{}的所有元素在A{}内".format(s1,s))
else:
    print("字符串B{}不是所有元素都在A{}内".format(s1,s))

运行结果如下
python字符串和切片操作_第12张图片

15.如何生成无数字的全字母的字符串

代码如下

import string
import random
s = string.ascii_letters
//前为生成字母,后为生成数字
s1 = ""
for i in range(1,20):
    s1 += random.choice(s)
print(s1)

运行结果如下
python字符串和切片操作_第13张图片

16.如何随机生成带数字和字母的字符串

代码如下

import string
import random
s = string.ascii_letters + string.digits
//前为生成字母,后为生成数字
s1 = ""
for i in range(1,20):
    s1 += random.choice(s)
print(s1)

运行结果如下
python字符串和切片操作_第14张图片

17.如何判定一个字符串中既有数字又有字母

代码如下

import string
s = input("输入需要判断的字符串:")
if (s.isalnum()and not s.isalpha()) and not s.isdigit():
    print("字符串{}里包含数字和字母".format(s))
else:
    print("字符串{}里并不是既包含字母又包含数字".format(s))

运行结果如下
python字符串和切片操作_第15张图片

18.python中不可变对象有哪些?

在Python中,数值(整型,浮点型),布尔型,字符串,元组属于值类型,本身不允许被修改(不可变类型),数值的修改实际上是让变量指向了一个新的对象(新创建的对象),所以不会发生共享内存问题。 这种方式同Java的不可变对象(String)实现方式相同。

a = 1
b = a
a = 2
print(b)  //输出的结果是1 修改值类型的值,只是让它指向一个新的内存地址,并不会改变变量b的值。

19.判断一个数是否是回文数字

这题我们可以利用pyhton中的切片操作来判断
代码如下

n=input()
m=n[::-1]//将n倒序
if(n==m):
	print("yes")
else:
	print("no")

运行结果如下
python字符串和切片操作_第16张图片

20. L = [‘Adam’, ‘Lisa’, ‘Bart’, ‘Paul’]取前三个元素

代码如下

 L = ["Adam", "Lisa", "Bart", "Paul"]
 n=L[0:3]
 print(n)

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

21. range()函数可以创建一个数列:range(1, 101)

[1, 2, 3, …, 100]
请利用切片,取出:

  1. 前10个数;
  2. 3的倍数;
  3. 不大于50的5的倍数。
    代码如下
for i in range(1,101)[0:10]:
//前10个数
	print(i)
for i in range(1,101)[2::3]:
//3的倍数
	print(i)
for i in range(1,101)[4:50:5]:
//不大于50的5的倍数
	print(i)

运行结果如下
python字符串和切片操作_第17张图片
在这里插入图片描述
python字符串和切片操作_第18张图片

22.利用倒序切片对 1 - 100 的数列取出:最后10个数;最后10个5的倍数

代码如下

for i in range(1,101)[-10:]:
//最后10个数
	print(i,end=" ")
for i in range(1,101)[4::5][-10:]:
//最后10个5的倍数
	print(i,end=" ")

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

23. 请设计一个函数,它接受一个字符串,然后返回一个仅首字母变成大写的字符串(切片upper())

代码如下

def firstCharUpper(s):
    y=s.lower()
    y=y[0:1].upper()+y[1:]
    return y
print firstCharUpper(('hello'))
print firstCharUpper(('sunday'))
print firstCharUpper(('september'))

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

24.利用切片操作,实现一个trim()函数,去除字符串首尾的空格,注意不要调用str的strip()方法

代码如下

def Trim(s):
	while s[:1]==' ':
		s=s[1:]
	while s[-1:]==' ':
		s=s[:-1]
	return s
x="   hello   "
print(Trim(x))

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

25.从键盘上输入自己或同学的身份证号,从中取出出生年份、月份、日期以及性别信息

代码如下

a=input("请输入您的身份证号:")
year=a[6:10]
month=a[10:12]
day=a[12:14]
sex=a[16:17]
sex=int(sex)
if sex % 2:
	sex='男'
else:
	sex='女'
print("您是%s年%s月%s日出生的%s孩."%(year,month,day,sex))

运行结果如下

在这里插入图片描述

你可能感兴趣的:(python字符串和切片操作)