零基础学习Python 作业 第14章
0. 还记得如何定义一个跨越多行的字符串吗(请至少写出两种实现的方法)?
方法一:
>>> str1 = '''待我长发及腰,将军归来可好?
此身君子意逍遥,怎料山河萧萧。
天光乍破遇,暮雪白头老。
寒剑默听奔雷,长枪独守空壕。
醉卧沙场君莫笑,一夜吹彻画角。
江南晚来客,红绳结发梢。'''
方法二:
>>> str2 = '待卿长发及腰,我必凯旋回朝。\
昔日纵马任逍遥,俱是少年英豪。\
东都霞色好,西湖烟波渺。\
执枪血战八方,誓守山河多娇。\
应有得胜归来日,与卿共度良宵。\
盼携手终老,愿与子同袍。'
方法三:
>>> str3 = ('待卿长发及腰,我必凯旋回朝。'
'昔日纵马任逍遥,俱是少年英豪。'
'东都霞色好,西湖烟波渺。'
'执枪血战八方,誓守山河多娇。'
'应有得胜归来日,与卿共度良宵。'
'盼携手终老,愿与子同袍。')
1. 三引号字符串通常我们用于做什么使用?
三引号字符串不赋值的情况下,通常当作跨行注释使用,例如:
- '''这是一个三引号字符串用于注释的例子,
- 例子虽然只是简简单单的一句话,
- 却毫无遮掩地体现了作者用情至深,
- 所谓爱至深处情至简!'''
- print("I love FishC.com!")
2. file1 = open('C:\windows\temp\readme.txt', 'r') 表示以只读方式打开“C:\windows\temp\readme.txt”这个文本文件,
但事实上这个语句会报错,知道为什么吗?你会如何修改?
# method 1 file1 = open('C:\\windows\\temp\\readme.txt', 'r')
Python 为我们铺好了解决的道路,只需要使用原始字符串操作符(R或r)即可:
- >>> file1 = open(r'C:\windows\temp\readme.txt', 'r')
3. 有字符串:str1 = '<a href="http://www.fishc.com/dvd" target="_blank">鱼C资源打包</a>',请问如何提取出子字符串:'www.fishc.com'
- >>> str1[16:29]
4. 如果使用负数作为索引值进行分片操作,按照第三题的要求你能够正确目测出结果吗?
>>> str1[-50:-37]
'www.fishc.com'
>>>
5. 还是第三题那个字符串,请问下边语句会显示什么内容?
- >>> str1[20:-36]
- 'fishc.com/'
6 据说只有智商高于150的鱼油才能解开这个字符串
(还原为有意义的字符串):str1 = ‘i2sl54ovvvb4e3bferi32s56h;$c43.sfc67o0cm99’
‘i love fishc.com’, 好查找对应的字母,每隔三个及对应上
# 以步长为3进行整体切片,[start:end:step] str1[::3]
0 请写一个密码安全性检查的脚本代码:check.py
# 密码分级注释
# 密码安全性检查代码
#
# 低级密码要求:
# 1. 密码由单纯的数字或字母组成
# 2. 密码长度小于等于8位
#
# 中级密码要求:
# 1. 密码必须由数字、字母或特殊字符(仅限:~!@#$%^&*()_=-/,.?<>;:[]{}|\)任意两种组合
# 2. 密码长度不能低于8位
#
# 高级密码要求:
# 1. 密码必须由数字、字母及特殊字符(仅限:~!@#$%^&*()_=-/,.?<>;:[]{}|\)三种组合
# 2. 密码只能由字母开头
# 3. 密码长度不能低于16位
print('============ 密码组合复杂度分级测试系统 ============')
symbols = r'''`!@#$%^&*()_=-/,.?<>;:[]{}\|'''
chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
nums = '0123456789'
passwd = input('请输入需要检查的密码组合:')
length = len(passwd)
while length == 0 or passwd.isspace():
passwd = input('你输入的密码为空,请重新输入需要检查的密码组合:')
# 先判断长度范围
if length <= 8:
flag_len = 1
elif 8 < length < 16:
flag_len = 2
else:
flag_len = 3
# 再判断字母数字和特殊字符
# 先判断特殊字符
flag_con = 0
for each in passwd:
if each in symbols:
flag_con += 1
break
# 再判断字母
for each in passwd:
if each in chars:
flag_con += 1
break
# 最后判断数字
for each in passwd:
if each in nums:
flag_con += 1
break
while 1:
print('你的密码组合复杂度为:', end = ' ')
if flag_len == 1 or flag_con == 1:
print('低级')
elif flag_len == 2 or flag_con == 2:
print('中级')
else:
if passwd[0] in chars:
print('高级')
else:
print('中级')
print('建议使用以下方式对你的密码安全级别进行提升: \n\
\t1. 密码必须由数字、字母及特殊字符三种组合\n\
\t2. 密码只能由字母开头\n\
\t3. 密码长度不能低于16位')
break
print('建议使用以下方式对你的密码安全级别进行提升: \n\
\t1. 密码必须由数字、字母及特殊字符三种组合\n\
\t2. 密码只能由字母开头\n\
\t3. 密码长度不能低于16位')
break
存在一个缺陷:中等密码 数字,字母,特殊符号同时存在时 没有控制成功 仍提示是中等密码!(后续改进这个问题!)
#coding=UTF-8
class Password():
print('============ 密码组合复杂度分级测试系统 ============')
symbols = r'''`!@#$%^&*()_=-/,.?<>;:[]{}\|'''
chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
nums = '0123456789'
slt = '@1q'
passwd = raw_input('请输入需要检查的密码组合:')
length = len(passwd)
while length == 0 or passwd.isspace():
passwd =raw_input('你输入的密码为空,请重新输入需要检查的密码组合:')
#while not (passwd.isalpha() or passwd.isdigit()):
#passwd = raw_input('请输入需要检查的密码组合:')
def lower_level():
if length <= 8:
if passwd.isalpha() or passwd.isdigit():
print('低级别密码')
else:
print("密码不符合规则,请重新输入密码!")
def Mid_level():
if 8 < length < 16:
if passwd.isalpha() or passwd.isdigit():
print("密码不符合规则,请重新输入密码!")
elif passwd in symbols:
print("密码不符合规则,请重新输入密码!")
elif passwd in (symbols,chars,nums):
print("密码不符合规则,请重新输入密码!")
else:
print('中级别密码')
def high_level():
if 16 < length:
if not passwd[0].isalpha():
print("密码不符合规则,请重新输入密码!")
elif passwd.isalpha():
print("密码不符合规则,请重新输入密码!")
elif passwd.isalnum():
print("密码不符合规则,请重新输入密码!")
else:
print("高级别密码")
if __name__ == '__main__':
lower_level()
Mid_level()
high_level()
0. 根据说明填写相应的字符串格式化符号
|
符 号 |
说 明 |
|
% |
格式化字符及其ASCII码 |
|
% |
格式化字符串 |
|
% |
格式化整数 |
|
% |
格式化无符号八进制数 |
|
% |
格式化无符号十六进制数 |
|
% |
格式化无符号十六进制数(大写) |
|
% |
格式化定点数,可指定小数点后的精度 |
|
% |
用科学计数法格式化定点数 |
|
% |
根据值的大小决定使用%f或者%e |
|
% |
根据值的大小决定使用%F或者%E |
1. 请问以下这行代码会打印什么内容?
- >>> "{{1}}".format("不打印", "打印")
- '{1}'
2. 以下代码中,a, b, c是什么参数?
- >>> "{a} love {b}.{c}".format(a="I", b="FishC", c="com")
- 'I love FishC.com'
3. 以下代码中,{0}, {1}, {2}是什么参数?
- >>> "{0} love {1}.{2}".format("I", "FishC", "com")
- 'I love FishC.com'
4.如果想要显示Pi = 3.14,format前边的字符串应该怎么填写呢?
- >>> '{0}{1:.2f}'.format('Pi = ', 3.1415)
- 'Pi = 3.14'