测试题:
0. 还记得如何定义一个跨越多行的字符串吗(请至少写出两种实现的方法)?
1 #方法一:使用三个单引号
2 str = '''wqeyiwyyeri,wrqre3 qereqerqr4 rqrqereq5 qerqrqre6 '''
7 print(str)8
9 #方法二:在小括号中使用单引号或者双引号,后面用换行符“\n”
10 str1 =(11 'riuqiurieu\n'
12 'fhdjhfjdshk,\n'
13 "hfjkhsdjhfjskh\n"
14 )15 print(str1)
1. 三引号字符串通常我们用于做什么使用?
三引号字符串在不赋值的情况下,通常当作跨行注释使用,例如:
1 '''这个在打印的时候看不到,主要可以用在代码编写过程的注释的作用。2 这样说,应该差不多。3 嗯哼~4 '''
5 print(1)
2. file1 = open('C:\windows\temp\readme.txt', 'r') 表示以只读方式打开“C:\windows\temp\readme.txt”这个文本文件,但事实上这个语句会报错,知道为什么吗?你会如何修改?
会报错是因为在字符串中,约定“\t”和“\r”分别表示“横向制表符(TAB)”和“回车符”(详见:https://www.cnblogs.com/hcxy2007107708/articles/10010196.html),因此并不会按照我们计划的路径去打开文件。
我们只需要使用原始字符串操作符(R或r)即可:
1 #‘r’表示按照原始字符串进行查找即可。
2 file1 = open(r'C:\windows\temp\readme.txt', 'r')
3. 有字符串:str1 = '鱼C资源打包',请问如何提取出子字符串:'www.fishc.com'
使用分片的方法:
1 str1 = ''
2 #str1[16]=w,str1[28]=m
3 str2 = str1[16:29]4 print(str2)
4. 如果使用负数作为索引值进行分片操作,按照第三题的要求你能够正确目测出结果吗?
ok! try it .
1 str1 = ''
2 str2 = str1[16:29]3 lenght =len(str1)4 print(lenght)5 str3 = str1[16-51:29-51]6 print(str2)7 print(str3)
5. 还是第三题那个字符串,请问下边语句会显示什么内容?
>>> str1[20:-36]
复制代码
会显示:空
6. 据说只有智商高于150的鱼油才能解开这个字符串(还原为有意义的字符串):
str1 = 'i2sl54ovvvb4e3bferi32s56h;$c43.sfc67o0cm99'
我可能是个“傻子”
猜测肯定是哪个 i love fishc.com
动动手:0. 请写一个密码安全性检查的代码:check.py
# 密码安全性检查代码
#
# 低级密码要求:
# 1. 密码由单纯的数字或字母组成
# 2. 密码长度小于等于8位
#
# 中级密码要求:
# 1. 密码必须由数字、字母或特殊字符(仅限:~!@#$%^&*()_=-/,.?<>;:[]{}|\)任意两种组合
# 2. 密码长度不能低于8位
#
# 高级密码要求:
# 1. 密码必须由数字、字母及特殊字符(仅限:~!@#$%^&*()_=-/,.?<>;:[]{}|\)三种组合
# 2. 密码只能由字母开头
# 3. 密码长度不能低于16位
程序演示:
到目前为止,得到的最OK的代码,可能有点繁琐,也不知道应该怎样简化和完善,有看到的朋友可以给出自己的意见和想法哟~
1 #密码安全性检查 check.py
2 password = input("请输入需要检查的密码组合:")3 lenght =len(password)4 symbols = r'''~!@#$%^&*_=-/,.?<>;:[]{}|\()'''
5 alphabet = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
6 numbers = "0123456789"
7 temp1 = '''高级密码要求:8 1. 密码必须由数字、字母及特殊字符(仅限:~!@#$%^&*()_=-/,.?<>;:[]{}|\)三种组合9 2. 密码只能由字母开头10 3. 密码长度不能低于16位11 '''
12 temp2 = '''\t您的密码安全级别评定为:'''
13 temp3 ="请继续保持"
14 require = '''\t低级密码要求:由单纯的数字或字母组成,长度小于等于8位;15 中级密码要求:由数字、字母或特殊字符任意两种组合,密码长度不能低于8位16 高级密码要求:由数字、字母及特殊字符三种组合,密码只能由字母开头,密码长度不能低于16位17 '''
18 i=019 #检查password中组成元素:
20 while 1:21 for each inpassword:22 if each insymbols:23 i +=1
24 break
25 for each inpassword:26 if each inalphabet:27 i +=1
28 break
29 for each inpassword:30 if each innumbers:31 i +=1
32 break
33
34 deflow_password( ):35 result = temp2 +"低"
36 print(result)37 print(temp1)38 defmid_password( ):39 result = temp2 +"中"
40 print(result)41 print(temp1)42 defhigh_password( ):43 result = temp2 +"高"
44 print(result)45 print(temp3)46 while (password.isspace() or lenght ==0):47 password =input( "\t密码输入错误,原因:空格或未输入。\n\t重新输入要检查的密码组合:")48 lenght =len(password)49 break
50
51 while (i !=1 and lenght <= 8) :52 password =input( "\t密码输入不符合要求。"+"\n\t密码要求:\n"+require+"\n\t重新输入要检查的密码组合:")53 lenght =len(password)54 break
55 while (i ==1 and lenght >8):56 password =input( "\t密码输入不符合要求。"+"\n密码要求:\n"+require+"\n\t重新输入要检查的密码组合:")57 lenght =len(password)58 break
59 if lenght <=8 and i ==1:60 low_password()61 break
62 elif i==3 and lenght > 16 and password[0] inalphabet:63 high_password()64 break
65 else:66 mid_password()67 break
1. 请写下这一节课你学习到的内容:格式不限,回忆并复述是加强记忆的好方式!
遍历输入的代码;
如何验证密码的类型,以及简化逻辑语句;
特殊情况的处理,以及陷入循环,和break and continue的使用;
一轮检查结束后,进入下一轮的检查 不是直接结束
应该如何操作········
1.break
用break语句可以使流程跳出switch语句体,也可以用break语句在循环结构终止本层循环体,从而提前结束本层循环。
使用说明:
(1)只能在循环体内和switch语句体内使用break;
(2)当break出现在循环体中的switch语句体内时,起作用只是跳出该switch语句体,并不能终止循环体的执行。若想强行终止循环体的执行,可以在循环体中,但并不在switch语句中设置break语句,满足某种条件则跳出本层循环体。
2.continue
continue语句的作用是跳过本次循环体中余下尚未执行的语句,立即进行下一次的循环条件判定,可以理e799bee5baa6e997aee7ad94e58685e5aeb931333366303063解为仅结束本次循环。
注意:continue语句并没有使整个循环终止。