优秀的程序员Python培训分享Python系列中字符串的使用。类型(str)可以通过调用方法来操作,但是我们之前使用的数值类型(比如int,float)是没有可以调用的方法的。在Python中,数值类型是标量类型,这意味着该类型的变量没有可访问的内部结构;而字符串类型是结构化的非标量类型,所以有一系列的方法可以调用。如果你对这一点感到困惑,那么继续学习,学习了面向对象程序设计的知识,你就能找到这些问题的答案。下面我们通过一些案例来讲解函数和字符串的应用。部分案例例1:设计一个生成指定长度验证码的函数。注:验证码由数字和英文大小写字母组成。importrandomALL_CHARS='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'defgenerate_code(code_len=4):"""生成指定长度的验证码:paramcode_len:验证码的长度(默认4个字符):return:由大小写组成的随机字符串英文字母数字验证码字符串"""code=''for_inrange(code_len):#生成一个随机数,范围为0到字符串长度减1为索引index=random.randrange(0,len(ALL_CHARS))#Usetheindex操作从字符串中提取字符并拼接code+=ALL_CHARS[index]returncode我们使用以下代码生成10组随机验证码来测试上述功能。for_inrange(10):print(generate_code())上面这个函数其实还有更简单的写法,直接使用random模块的随机采样函数,从字符串中提取指定数量的字符,然后使用string的join方法将选定的字符连接在一起。此外,您还可以使用Python标准库中的string模块来获取数字和英文字母的字面量常量。importrandomimportstringALL_CHARS=string.digits+string.ascii_lettersdefgenerate_code(code_len=4):"""生成指定长度的验证码:paramcode_len:验证码的长度(默认4个字符):return:由大写字母组成以及小写英文字母和数字组成的随机验证码字符串"""return''.join(random.choices(ALL_CHARS,k=code_len))说明:random模块的sample和choices函数都可以实现随机抽样,sample实现无放回抽样。这意味着采样的字符不会重复;choices实现有替换采样,这意味着某些字符可能会被重复选择。这两个函数的第一个参数代表被抽样的总体,参数k代表样本的个数。示例2:设计一个函数来返回给定文件名的后缀。说明:文件名通常是一个字符串,文件扩展名是指文件名的最后一部分。后一部分,也称为文件扩展名,是一些操作系统用来标记文件类型的一种机制,例如在Windows系统上,后缀exe表示这是一个可执行程序,而后缀txt表示这是一个纯文本文件。需要注意的是,在Linux和macOS系统上,文件名可以以.开头,表示这是一个隐藏文件,比如.为了''。defget_suffix(filename):"""获取文件名的后缀:paramfilename:文件名:return:文件的后缀"""#从字符串中反向查找。出现的位置pos=filename.rfind('.')#通过切片从文件名中提取后缀returnfilename[pos+1:]ifpos>0else''可以用下面的代码做一个简单的测试以上功能。print(get_suffix('readme.txt'))#txtprint(get_suffix('readme.txt.md'))#mdprint(get_suffix('.readme'))#print(get_suffix('readme.'))#print(get_suffix('readme'))#上面的get_suffix函数还有一个更方便的实现方法,就是直接使用os.path模块的splitext函数。该函数会将文件名拆分为两个文件名,包括路径和扩展名部分,然后返回一个二元组(下节课讲元组),二元组中的第二个元素是文件扩展名(包括.),如果你想删除.在后缀中,可以做A字符串切片操作,代码如下。fromos.pathimportsplitextdefget_suffix(filename):returnsplitext(filename)[1][1:]示例3:在终端中显示选取框(滚动)文本。说明:实现跑马灯文字的原理很简单。将当前字符串的第一个字符放在输出内容的最后,从第二个字符开始的内容放在输出内容的前面。通过循环重复此操作,您可以看到滚动的文本。两次循环之间的间隔可以通过time模块的sleep函数实现,使用os模块的system函数调用系统清屏命令可以清除屏幕上之前的输出。importosimporttimecontent='北京欢迎你为你打开世界'whileTrue:#Windows清除屏幕上的输出#os.system('cls')#macOS清除屏幕上的输出os.system('clear')print(content)#休眠0.2秒(200毫秒)time.sleep(0.2)content=content[1:]+content[0]注意:我们建议您暂时使用VSCode编写Python代码,在“命令行提示符”或“终端”运行Python程序。如果你已经提前开始使用PyCharm,需要提醒一下:PyCharm的运行窗口并没有使用上面的方法来清屏。要查看以上代码的运行效果,建议在“命令行提示符”或“终端”中运行程序。小结在写代码的时候,尤其是开发商业项目的时候,一定要有意识地将相对独立、重复出现的功能封装成函数,这样无论是你还是团队其他成员,都可以通过调用函数来使用这些功能。字符串是非常重要的数据类型,需要掌握字符串的常用操作和方法,因为在一般的商业项目中,处理字符串的操作多于数字。
