python字符串和切片操作1 .消除字符串中的所有空格2 .获取字符串中的汉字个数3 .将字母全部转换为大小写4 .根据标点符号换行5 .消除字符串数组中每个字符串的空格(循环) 6 7 .用户输入日期格式,例如“’2021/03/28”,并将输入的日期转换为“2021年-3月-28日”。 8 .接收用户输入的字符串,对其中的字符进行排序,并按相反顺序输出。 9 .用户输入一句英语,然后按反序输出其中的单词10。 用户输入一个句子,找到“嘿嘿”的所有位置11。 有存储10个书名的字符串排列,书名有长有短。 现在,对它们进行统一处理,如果长度大于10,则剪切出长度为8的子串,将统一处理的结果12 .用户输入一个句子。 找到所有“笨蛋”的位置13 .确定一个字符串是否是另一个字符串的子串14 .验证一个字符串的所有字符出现在另一个字符串中15 .生成无数字的字母字符串16 .随机生成数字和字母字符串19 .如果一个数据取回文数字20.l=[‘Adam’、‘Lisa’、‘Bart’、‘Paul’前三个元素21. range函数,就可以构造一个数列。 使用range (1,101 ) 22 )逆序切片对的最后10个5的倍数23。 请设计一个函数,它接收字符串并返回只有第一个字符是大写的字符串。 (str的strip ) )方法25 )使用切片操作实现trim ) )函数,以避免从键盘输入自己或同学的id号
1 .从字符串中删除所有空格
可以应用replace(m,n )方法以从字符串中删除空格
代码实现如下所示
//删除字符串中的所有空格s='thisisademo'print(s.replace )、'') )后的结果如下图所示
2 .获取字符串中汉字的个数首先要获取汉字,必须知道Unicode的字符编码。
u0020空间
(u0040 ) ) u005a大写字母a ((z ) ) ) ) ) ) )。
u0061 ~ u007A小写字母a~z
(u4e00 ) )中文字符
u0030 ~ u0039数字
了解这些字符编码后,可以使用isalpha (函数确定字符串中的汉字数。
代码实现如下所示
ch=0; string=input (forx instring 3360 ifx=' (u9fff ' andx=' u4e 00 ' : ch=1print ) ch )运行结果如下图所示
3 .要将所有字符转换为大小写将大小写转换为大小写(swapcase ) )函数
代码实现如下所示
str='thisisstringexample.wow!' print(str.swapcase ) )的执行结果如下图所示
4 .要根据标点符号拆分字符串,请使用split (函数
split ) )默认情况下用空格分隔,如果在其中添加逗号,则会用逗号分隔,如: split ),)
代码实现如下所示
str1='a、b、c、d'list1=str1.split (',') split ) )被划分为一个列表类型,因此//在一个列表中使用foreachinlist13360print
5 .删除字符串数组中每个字符串的空格(循环)代码
ls=[' hh 12 ','卧底是谁',' ayouok']ls1=[]forInrange(0,len(ls ) ]:ls1.append ) ls([I].replace )
6 .自由输入心中想到的书名,输出其字符串长度(len属性)代码实现
str=input (打印) len (str ) )的执行结果
7 .用户输入日期格式,如“”2021/03/28”,并将输入的日期转换为2021年-3月-28日代码
s='2021/03/28'a=s.split((/) a ) )0) )年) a(1) )月) a ) ) (a )2) )日)-. ) ) 65
8 .接收用户输入的字符串,对其中的字符进行排序,并按相反顺序输出。 例如acdefb - abcdef-fedcba
因为python没有字符数组的概念,所以可以将字符串保存到列表中,并按列表中的sort函数进行排序。
代码如下
s='ACdefb'll=list(s ) /将字符串存储在列表中的ll.sort ) ) ll.sort ) reverse=true ) /默认值按升序排序,re
verse = True参数实现降序排列,l2=''.join(ll)//把列表中的元素放在空串中print(l2)运行结果如下
例如:hello c sharp — sharp c hello
代码如下
运行结果如下
这题可以先建立一个空列表,然后再遍历字符串
如果找到"呵"就给空列表添加i的值。
代码如下
运行结果如下
代码如下
ls = ["我的世界冲冲冲啊冲啊啊","遥远的老天爷","红尘往市不在回首嘿嘿黑","活着","白鹿原之青青草原112"] //10个书名太多了,我只存了几个for i in range(0,len(ls)):s=ls[i]if(len(s)>10):s=s[0:9]ls=[i]=sprint(ls)运行结果如下
这题直接在第十题的基础上加一个判断条件就好了
代码如下
运行结果如下
13.如何判断一个字符串是否是另一个字符串的子串代码如下
s = input("请输入字符串A:")s1 = input("请输入需要判断的字符串B:")flag = Trueif s.find(s1) != -1: flag = Falseif flag: print("字符串B {}不在A {}内".format(s1,s))else: print("字符串B {}在A {}内".format(s1,s))运行结果如下
这题在上一题的基础上加一个循环判断每一个元素就好了
代码如下
运行结果如下
代码如下
import stringimport randoms = string.ascii_letters//前为生成字母,后为生成数字s1 = ""for i in range(1,20): s1 += random.choice(s)print(s1)运行结果如下
代码如下
import stringimport randoms = string.ascii_letters + string.digits//前为生成字母,后为生成数字s1 = ""for i in range(1,20): s1 += random.choice(s)print(s1)运行结果如下
代码如下
import strings = input("输入需要判断的字符串:")if (s.isalnum()and not s.isalpha()) and not s.isdigit(): print("字符串{}里包含数字和字母".format(s))else: print("字符串{}里并不是既包含字母又包含数字".format(s))运行结果如下
在Python中,数值(整型,浮点型),布尔型,字符串,元组属于值类型,本身不允许被修改(不可变类型),数值的修改实际上是让变量指向了一个新的对象(新创建的对象),所以不会发生共享内存问题。 这种方式同Java的不可变对象(String)实现方式相同。
a = 1b = aa = 2print(b) //输出的结果是1 修改值类型的值,只是让它指向一个新的内存地址,并不会改变变量b的值。 19.判断一个数是否是回文数字这题我们可以利用pyhton中的切片操作来判断
代码如下
运行结果如下
代码如下
L = ["Adam", "Lisa", "Bart", "Paul"] n=L[0:3] print(n)运行结果如下
[1, 2, 3, …, 100]
请利用切片,取出:
代码如下 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)
运行结果如下
代码如下
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=" ")运行结果如下
代码如下
def firstCharUpper(s): y=s.lower() y=y[0:1].upper()+y[1:] return yprint firstCharUpper(('hello'))print firstCharUpper(('sunday'))print firstCharUpper(('september'))运行结果如下
代码如下
def Trim(s):while s[:1]==' ':s=s[1:]while s[-1:]==' ':s=s[:-1]return sx=" hello "print(Trim(x))运行结果如下
代码如下
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))运行结果如下