鉴于半导体制造业进入了瓶颈,处于找不到工作的深深忧虑,故最近开始学习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