本文是跟着鱼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 = '鱼C资源打包',请问如何提取出子字符串:'www.fishc.com'
答:
>>> str1 = '鱼C资源打包'
>>> str1[17:30]
'www.fishc.com'
4.如果使用负数作为索引值进行分片操作,按照第三题的要求你能够正确目测出结果吗?
答:
>>> str1 = '鱼C资源打包'
>>> 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"继续:')