• 小甲鱼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语句并没有使整个循环终止。      

                  

  • 相关阅读:
    Springboot+shiro配置笔记+错误小结(转)
    Shiro的Filter机制详解---源码分析(转)
    最快最简单的部署本地Apache+PHP+MySQL神器USBWebserver(转)
    shiro简单配置(转)
    重写ajax方法实现异步请求session过期时跳转登录页面(转)
    jquery实现ajax提交form表单的方法总结(转)
    使用ajax提交form表单,包括ajax文件上传
    Spring Boot Freemarker特别篇之contextPath【从零开始学Spring Boot】(转)
    Uncaught SyntaxError: Unexpected token <
    Qt5.5.0在Windows下静态编译(VS2013修改参数以后才能支持XP)good
  • 原文地址:https://www.cnblogs.com/IT-NXXB/p/12879174.html
Copyright © 2020-2023  润新知