【零基础】Python3学习课后练习题(十二)

版权声明:未经授权请勿转载,否则需承担相应法律责任。 https://blog.csdn.net/RonyLance/article/details/82935558

本文是跟着鱼C论坛小甲鱼零基础学习Python3的视频学习的,课后题也是跟随每一课所附属的题目来做的,根据自己的理解和标准答案记录的笔记。

第十四课

测试题:

0.如何定义一个跨越多行的字符串吗(请至少写出两种实现的方法)?

答:

方法一:使用三引号 ''' ''' 

>>> str1 = '''鹅,鹅,鹅,
曲项向天歌。
白毛浮绿水,
红掌拨清波。'''
>>> str1
'鹅,鹅,鹅,\n曲项向天歌。\n白毛浮绿水,\n红掌拨清波。'
>>> print(str1)
鹅,鹅,鹅,
曲项向天歌。
白毛浮绿水,
红掌拨清波。

方法二:在每一句结尾处使用反斜杠(最后一句不需要加)

>>> str2 = '鹅,鹅,鹅,\
曲项向天歌。\
白毛浮绿水,\
红掌拨清波。'
>>> str2
'鹅,鹅,鹅,曲项向天歌。白毛浮绿水,红掌拨清波。'
>>> print(str2)
鹅,鹅,鹅,曲项向天歌。白毛浮绿水,红掌拨清波。
>>> 

方法三:每句话使用字符串定义然后用元组括起来

>>> str3 = ('鹅,鹅,鹅,'
'曲项向天歌。'
'白毛浮绿水,'
'红掌拨清波。')
>>> str3
'鹅,鹅,鹅,曲项向天歌。白毛浮绿水,红掌拨清波。'
>>> print(str3)
鹅,鹅,鹅,曲项向天歌。白毛浮绿水,红掌拨清波。
>>> 

1.三引号字符串通常我们用于做什么使用?

答:在没有进行赋值的情况下,三引号字符通常在做跨行解释的时候使用。

2. file1 = open(‘C:\windows\temp\readme.txt’, ‘r’) 表示以只读方式打开“C:\windows\temp\readme.txt”这个文本文件,但事实上这个语句会报错,知道为什么吗?你会如何修改?

答:因为字符串 'C:\windows\temp\readme.txt' 中包含有 \t 表示TAB \r 表示回车没有对其进行转义,所以才会报错。

修改方法有两种:

#在所有单反斜杠的地方增加一个反斜杠进行转义

'C:\\windows\\temp\\readme.txt'

#使用原始字符串命令对字符串进行整体转义

r'C:\windows\temp\readme.txt'

3. 有字符串:str1 = '<a href ="http://www.fishc.com/dvd"target="_blank">鱼C资源打包</a>',请问如何提取出子字符串:'www.fishc.com'

答:

>>> str1 = '<a href ="http://www.fishc.com/dvd"target="_blank">鱼C资源打包</a>'
>>> str1[17:30]
'www.fishc.com'

4.如果使用负数作为索引值进行分片操作,按照第三题的要求你能够正确目测出结果吗?

答:

>>> str1 = '<a href ="http://www.fishc.com/dvd"target="_blank">鱼C资源打包</a>'
>>> str1[-44:-31]
'www.fishc.com'

5.还是第三题那个字符串,请问下边语句会显示什么内容?

str1[21:-35]

答:‘fishc’

6.将下列字符串还原为有意义的字符串:

str1 = ‘i2sl54ovvvb4e3bferi32s56h;$c43.sfc67o0cm99’

答:str1[::3] 。

>>> str1 = 'i2sl54ovvvb4e3bferi32s56h;$c43.sfc67o0cm99'
>>> str1[::3]
'ilovefishc.com'
>>> 

动动手:

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

低级密码要求: 

# 1. 密码由单纯的数字或字母组成 

# 2. 密码长度小于等于8位

# 中级密码要求: 

# 1. 密码必须由数字、字母或特殊字符(仅限:~!@#$%^&*()_=-/,.?<>;:[]{}|\)任意两种组合 

# 2. 密码长度不能低于8位 

# 高级密码要求: 

# 1. 密码必须由数字、字母及特殊字符(仅限:~!@#$%^&*()_=-/,.?<>;:[]{}|\)三种组合 

# 2. 密码只能由字母开头

# 3. 密码长度不能低于16位

答:

spchars = '~!@#$%^&*()_=-/,\.?<>;:[]{}|'
numbers = '0123456789'
chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRST'
choose = 'y'
print('=======RonyLance密码安全级别检测=======')
#开启循环保障测试有循环运行选择
while choose == 'y':
    password = input('请输入您的密码进行检查:')
    length = len(password)
    #空白监测提示
    while password.isspace() or length == 0:
        password = input('您输入的密码为空(或空格),请重新输入:')
        length = len(password)
    #长度检测
    if length <= 8:
            flag_len = 1
    elif 8 < length < 16:
            flag_len = 2
    else:
            flag_len = 3
    #属性检测
    flag_each = 0
    for each in password:
        if each in spchars:
              flag_each += 1
              break
    for each in password:
        if each in numbers:
            flag_each += 1
            break
    for each in password:
        if each in chars:
            flag_each += 1
            break
    #级别测定
    while 1:
        print('您的密码安全级别为:', end='')
        if flag_len == 1 or flag_each == 1:
            print('低级')
        elif flag_len == 2 or flag_each == 2:
            print('中级')
        elif flag_len == 3 or flag_each == 3:
            print('高级')
        else:
            print('您的密码不符合规范,请按照标准重新设置密码。')
        break
    choose = input('如需继续进行测试请输入"y"继续:')

猜你喜欢

转载自blog.csdn.net/RonyLance/article/details/82935558