内容正文:
项目4 创建和使用字符串
项目内容
判断密码强度
过滤敏感词
获取文本进度条
01
02
03
项目目标
知识目标
熟悉字符串的创建
熟悉字符串的格式化
熟悉字符串的常用操作
会创建字符串
会利用字符串的格式化方法完成输出
会利用字符串解决实际问题
技能目标
3
判断密码强度
01
字符串的定义
字符串是一种用来表示文本的数据类型,它是由符号或者数值组成的一个连续序列。
Python支持使用单引号、双引号和三引号定义字符串,其中单引号和双引号通常用于定义单行字符串,三引号通常用于定义多行字符串。
譬如:
'hello itcast'
"hello itcast"
"""my name is itcast
my name is itcast"""
定义字符串时单引号与双引号可以嵌套使用,需要注意的是,使用双引号表示的字符串中允许嵌套单引号,但不允许包含双引号,同样,使用单引号表示的字符串中不允许包含单引号。
譬如:‘He said “hello!goodmorning.”’
转义字符(P97)
转义字符是指控制字符和特殊含义的字符。
Python中允许使用以反斜杠“\”开头的转义字符来表示某些普通字符。
转义字符 含义 转义字符 含义
换行 \\ 字符串中“\”号本身
\t 制表符(Tab) \” 字符串中双引号本身
\r 回车 \ddd 3位八进制数对应的ASCII码字符
\’ 字符串中的单引号本身 \xhh 2位十六进制数对应的ASCII字符
>>> print('This is a function
Return a tuple.
')
This is a function
Return a tuple.
>>> '\123' #3位八进制数对应的ASCII字符S
'S'
>>> '\x2f' #2位十六进制数对应的ASCII字符“/“
'/'
>>> 'asdf\'hjk'
"asdf'hjk"
字符串编码
在Python 3中,字符的默认编码是UTF-8码,它是以Unicode码作为基础。它是以1字节表示英文字符,以3字节表示中文及其他语言。Unicode码是不同编码格式之间相互转换的基础,是统一码。
用户可以通过程序代码来查看自己的默认字符编码。
>>> import sys
>>> print(sys.getdefaultencoding())
utf-8
字符串编码
Python中内置的ord()函数可以返回一个字符所对应的整数;内置的chr()函数可以把整数编码转换为对应的字符。
>>> print(ord('A'))
65
>>> print(chr(65))
A
实例1:在键盘上创建任意一个字符串,编写程序,求该字符串的长度。
本实例运用循环结构对迭代对象的遍历即可求解。
len=0
st=input('请输入字符串:')
for word in st:
len+=1
print('字符串%s的长度是%d'%(st,len))
任务实践-判断密码强度
用户输入一个字符串作为密码,判断密码强度。规则为:密码长度小于8弱密码,密码长度大于等于8且包含至少两种字符为中等强度,密码包含三种字符为强,包含全部四种字符为极强。本实例要求编写程序,实现判断密码强度,密码强度的判断结果分四种:弱、中、强、极强。
在本任务中,可以将密码作为一个字符串定义、根据密码规则,分别为四种字符设定标识,然后利用多分支对输入的密封进行强度判断。
任务实践-判断密码强度
根据分析可整理出以下实现思路:
(1)定义密码字符串。
(2)根据密码规则设定各种不同字符的标识。
(3)使用多分支根据标识和长度判断密码的强弱等级。
代码如下:
# 判断密码强度
psw = input('请输入密码:')
upp,low,dig,oth = 0,0,0,0
for ch in psw:
if 'A'<=ch<='Z':
upp = 1
elif 'a' <= ch <= 'z':
low = 1
elif '0' <= ch <= '9':
dig = 1
else:
oth = 1
if len(psw) < 8:
print('弱')
else:
if upp+low+dig+oth == 4:
print('极强')
elif upp+low+dig+oth == 3:
print('强')
elif upp+low+dig+oth == 2:
print('中')
else:
print('弱')
$$