小甲鱼Python第014讲字符串:各种奇葩的内置方法 | 课后测试题及参考答案

测试题:
   
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. 还是第三题那个字符串,请问下边语句会显示什么内容?

  1. >>> 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语句并没有使整个循环终止。      

              

原文地址:https://www.cnblogs.com/IT-NXXB/p/12879174.html