测试题:
0. 还记得如何定义一个跨越多行的字符串吗(请至少写出两种实现的方法)?
1 #方法一:使用三个单引号 2 str = '''wqeyiwyyeri,wrqre 3 qereqerqr 4 rqrqereq 5 qerqrqre 6 ''' 7 print(str) 8 9 #方法二:在小括号中使用单引号或者双引号,后面用换行符“ ” 10 str1 = ( 11 'riuqiurieu ' 12 'fhdjhfjdshk, ' 13 "hfjkhsdjhfjskh " 14 ) 15 print(str1)
1. 三引号字符串通常我们用于做什么使用?
三引号字符串在不赋值的情况下,通常当作跨行注释使用,例如:
1 '''这个在打印的时候看不到,主要可以用在代码编写过程的注释的作用。 2 这样说,应该差不多。 3 嗯哼~ 4 ''' 5 print(1)
2. file1 = open('C:windows emp
eadme.txt', 'r') 表示以只读方式打开“C:windows emp
eadme.txt”这个文本文件,但事实上这个语句会报错,知道为什么吗?你会如何修改?
会报错是因为在字符串中,约定“ ”和“
”分别表示“横向制表符(TAB)”和“回车符”(详见:https://www.cnblogs.com/hcxy2007107708/articles/10010196.html),因此并不会按照我们计划的路径去打开文件。
我们只需要使用原始字符串操作符(R或r)即可:
1 #‘r’表示按照原始字符串进行查找即可。 2 file1 = open(r'C:windows emp eadme.txt', 'r')
3. 有字符串:str1 = '<a href="http://www.fishc.com/dvd" target="_blank">鱼C资源打包</a>',请问如何提取出子字符串:'www.fishc.com'
使用分片的方法:
1 str1 = '<a href="http://www.fishc.com/dvd" target="_blank">' 2 #str1[16]=w,str1[28]=m 3 str2 = str1[16:29] 4 print(str2)
4. 如果使用负数作为索引值进行分片操作,按照第三题的要求你能够正确目测出结果吗?
ok! try it .
1 str1 = '<a href="http://www.fishc.com/dvd" target="_blank">' 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 = ''' 您的密码安全级别评定为:''' 13 temp3 ="请继续保持" 14 require = ''' 低级密码要求:由单纯的数字或字母组成,长度小于等于8位; 15 中级密码要求:由数字、字母或特殊字符任意两种组合,密码长度不能低于8位 16 高级密码要求:由数字、字母及特殊字符三种组合,密码只能由字母开头,密码长度不能低于16位 17 ''' 18 i=0 19 #检查password中组成元素: 20 while 1: 21 for each in password: 22 if each in symbols: 23 i +=1 24 break 25 for each in password: 26 if each in alphabet: 27 i +=1 28 break 29 for each in password: 30 if each in numbers: 31 i +=1 32 break 33 34 def low_password( ): 35 result = temp2 +"低" 36 print(result) 37 print(temp1) 38 def mid_password( ): 39 result = temp2 +"中" 40 print(result) 41 print(temp1) 42 def high_password( ): 43 result = temp2 +"高" 44 print(result) 45 print(temp3) 46 while (password.isspace() or lenght == 0): 47 password =input( " 密码输入错误,原因:空格或未输入。 重新输入要检查的密码组合:") 48 lenght = len(password) 49 break 50 51 while (i !=1 and lenght <= 8 ) : 52 password =input( " 密码输入不符合要求。"+" 密码要求: "+require+" 重新输入要检查的密码组合:") 53 lenght = len(password) 54 break 55 while (i ==1 and lenght >8): 56 password =input( " 密码输入不符合要求。"+" 密码要求: "+require+" 重新输入要检查的密码组合:") 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] in alphabet: 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语句并没有使整个循环终止。