Exercise_14

Exercise 14 : String

Test :

  1. Multi-line string :

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    >>> str1 = 'a\
    b\
    c2\
    d'
    >>> str1
    'abc2d'

    >>> str2 = '''a
    vfdsfbf'c
    sad'dadas
    ca'''
    >>> str2
    "a\nvfdsfbf'c\nsad'dadas\nca"

    >>> str3 =('add2'
    'adsd2'
    '8dajk'
    'weew')
    >>> str3
    'add2adsd28dajkweew'

    分别利用’’’进行开始和换行,还有(‘A’ 换行 ‘B’换行 ‘c’),以及’A\ b\ D\ ‘

  2. 三引号字符串在不赋值的情况下用作跨行注释

    单行注释利用 # 完成

  3. file1 = open(‘C:\windows\temp\readme.txt’, ‘r’)表示以只读方式打开指定位置文件,但语句会报错 :

    原因为在字符串中\为转义字符,\t和\r分别强制代表TAB和Enter,因此报错。

    我们采用在语句前加r从而避免这一问题,如 :

    file1 = open(r’C:\windows\temp\readme.txt’, ‘r’)

  4. 按要求对下字符串进行操作 :

    1
    >>> str1 = '<a href="xbchen1994.github.io" target="_blank">Aaron资源打包</a>'

    [1]提取xbchen1994.github.io(正索引)

    1
    2
    >>> str1[9:29]
    'xbchen1994.github.io'

    [2]提取xbchen1994.github.io(负索引)

    1
    2
    >>> str1[-51:-31]
    'xbchen1994.github.io'

    [3]正负索引一起时

    1
    2
    3
    4
    >>> str1[9:-31]
    'xbchen1994.github.io'
    >>> str1[-51:29]
    'xbchen1994.github.io'

    len(str1) = 60 因此正索引从左侧0开始数,负索引从右侧0开始数,从而得出的索引值即为最后结果。

    str1[::3]从index=0开始,每隔3索引组成新字符串

    str1[2::4]从index=2开始,每隔4索引组成新字符串

    str1[::-1]反向索引,可以反转字符串

Try :

  1. 写一个密码安全性检查的脚本代码 : check.py

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    #密码安全性检查代码  
    #
    # 低级密码要求:
    # 1. 密码由单纯的数字或字母组成
    # 2. 密码长度小于等于8位
    #
    # 中级密码要求:
    # 1. 密码必须由数字、字母或特殊字符(仅限:~!@#$%^&*()_=-/,.?<>;:[]{}|\)任意两种组合
    # 2. 密码长度不能低于8位
    #
    # 高级密码要求:
    # 1. 密码必须由数字、字母及特殊字符(仅限:~!@#$%^&*()_=-/,.?<>;:[]{}|\)三种组合
    # 2. 密码只能由字母开头
    # 3. 密码长度不能低于16位

    symbols = r'''\~!@#$%^&*()_=-/,.?<>;:[]{}|'''
    chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
    nums = '0123456789'

    password = input('Pls enter the password you need to check:')

    #判断长度
    length = len(password)

    while (password.isspace() or length == 0):
    password = input('You have entered the space, pls enter again.')

    if length <= 8:
    flag_len = 1
    elif 8 < length <16:
    flag_len = 2
    else:
    flag_len = 3

    flag_con = 0

    # 判断是否包含特殊字符
    for each in password:
    if each in symbols:
    flag_con += 1
    break

    # 判断是否包含字母
    for each in password:
    if each in chars:
    flag_con += 1
    break

    # 判断是否包含数字
    for each in password:
    if each in nums:
    flag_con += 1
    break

    # 打印结果
    while 1 :
    print("您的密码安全级别评定为:", end='')
    if flag_len == 1 or flag_con == 1 :
    print("低")
    elif flag_len == 2 or flag_con == 2 :
    print("中")
    else :
    print("高")
    print("请继续保持")
    break

    print("请按以下方式提升您的密码安全级别:\n\
    \t1. 密码必须由数字、字母及特殊字符三种组合\n\
    \t2. 密码只能由字母开头\n\
    \t3. 密码长度不能低于16位'")
    break

    注意字符串前’r’的使用方法


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!