您的位置:首页 > 编程语言 > Python开发

【鱼C·零基础入门学习Python】课后习题答案 第14课

2017-09-15 13:53 691 查看
鉴于半导体制造业进入了瓶颈,处于找不到工作的深深忧虑,故最近开始学习Python。发现鱼C工作室的《零基础入门学习python》教程很不错,视频讲解生动,最主要的是他的课后练习很不错。以下是我自己做的习题答案,不一定对,大家如果看到问题请提出来,互帮互助共同进步!谢谢!

第14课

测试题:

还记得如何定义一个跨越多行的字符串吗(请至少写出两种实现的方法)?

答:

1. >>> str=”’

This is

the

answer 1

”’

单双引号都可以

2.采用\换行

str=”this is \

the \

answer 2”

三引号字符串通常我们用于做什么使用?

答:

用于字符串跨行或者注释跨行。

file1 = open(‘C:\windows\temp\readme.txt’, ‘r’) 表示以只读方式打开“C:\windows\temp\readme.txt”这个文本文件,但事实上这个语句会报错,知道为什么吗?你会如何修改?

答:

问题出在反斜杠上,因为反斜杠与后面的字母会构成转义,导致字符串的意义发生转变,所以路径无效,为了解决此问题,使用双斜杠使反斜杠保持本意即可。

file1 =open(‘C:\windows\temp\readme.txt’, ‘r’)

或者使用原始字符串操作符r或者R注明即可

file1 = open(r’C:\windows\temp\readme.txt’,’r’)

有字符串:str1 =’鱼C资源打包‘,请问如何提取出子字符串:’www.fishc.com’

答:>>> str1[16:29]

直接截取就好

如果使用负数作为索引值进行分片操作,按照第三题的要求你能够正确目测出结果吗?

答:

负索引值代表从后往前

所以

str1[-45:-32]

还是第三题那个字符串,请问下边语句会显示什么内容?

str1[20:-36]

复制代码

答:fishc

Python似乎可以同时识别正负索引值指向的位置,并获得子字符串,但前提是左边位置在右边的位置的左侧,否则输出为空

据说只有智商高于150的鱼油才能解开这个字符串(还原为有意义的字符串):str1 = ‘i2sl54ovvvb4e3bferi32s56h;$c43.sfc67o0cm99’

答:str1[::3]

注意几个字符串读取操作写法的区别

Str[1:3]:取[1:3)的元素

Str[:3]取从头到2的元素。空着代表到底

Str[::3]指每三个取一次元素,与上面不同!

注意,但是Str[3::]却与Str[3:]意义一致

7。动手题:题目和代码如下

# 密码安全性检查代码
#
# 低级密码要求:
#   1. 密码由单纯的数字或字母组成
#   2. 密码长度小于等于8位
#
# 中级密码要求:
#   1. 密码必须由数字、字母或特殊字符(仅限:~!@#$%^&*()_=-/,.?<>;:[]{}|\)任意两种组合
#   2. 密码长度不能低于8位
#
# 高级密码要求:
#   1. 密码必须由数字、字母及特殊字符(仅限:~!@#$%^&*()_=-/,.?<>;:[]{}|\)三种组合
#   2. 密码只能由字母开头
#   3. 密码长度不能低于16位
#################注释分行####################

symbols = r'''`!@#$%^&*()_+-=/*{}[]\|'";:/?,.<>'''
chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
nums = '0123456789'
#input password
passwd=input('please input your password for check:')
#check length
pswlen=len(passwd)
#false while null
while(passwd.isspace() or pswlen==0):
passwd=input('the password includes space or is Null,please re-enter:')

#判断长度
if pswlen <= 8:
flag_len=0
elif 8<pswlen and pswlen<16:
flag_len=1
else:
flag_len=2

flag_type=0
#判断含有几种组合
for each in passwd:
if each in nums:
flag_type+=1
break

for each in passwd:
if each in chars:
flag_type+=1
break

for each in passwd:
if each in symbols:
flag_type+=1
break
while 1:
print("your password security level is:")
if flag_len==0 or flag_type==1:
print("low\n")
elif flag_len==1 or flag_type==2:
print("medium\n")
else:
print("high\nIt is safe enough!")
break

print("请按以下方式提升您的密码安全级别:\n\
\t1. 密码必须由数字、字母及特殊字符三种组合\n\
\t2. 密码只能由字母开头\n\
\t3. 密码长度不能低于16位'")
break
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐