零基础学习Python 作业 第14章

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

方法一:

   

>>> str1 = '''待我长发及腰,将军归来可好?

此身君子意逍遥,怎料山河萧萧。

天光乍破遇,暮雪白头老。

寒剑默听奔雷,长枪独守空壕。

醉卧沙场君莫笑,一夜吹彻画角。

江南晚来客,红绳结发梢。'''

   

方法二:

   

>>> str2 = '待卿长发及腰,我必凯旋回朝。\

昔日纵马任逍遥,俱是少年英豪。\

东都霞色好,西湖烟波渺。\

执枪血战八方,誓守山河多娇。\

应有得胜归来日,与卿共度良宵。\

盼携手终老,愿与子同袍。'

   

方法三:

   

>>> str3 = ('待卿长发及腰,我必凯旋回朝。'

'昔日纵马任逍遥,俱是少年英豪。'

'东都霞色好,西湖烟波渺。'

'执枪血战八方,誓守山河多娇。'

'应有得胜归来日,与卿共度良宵。'

'盼携手终老,愿与子同袍。')

    

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

三引号字符串不赋值的情况下,通常当作跨行注释使用,例如:

  1. '''这是一个三引号字符串用于注释的例子,
  2. 例子虽然只是简简单单的一句话,
  3. 却毫无遮掩地体现了作者用情至深,
  4. 所谓爱至深处情至简!'''
  5.  
  6. print("I love FishC.com!")

2. file1 = open('C:\windows\temp\readme.txt', 'r') 表示以只读方式打开“C:\windows\temp\readme.txt”这个文本文件,

但事实上这个语句会报错,知道为什么吗?你会如何修改?

 

method 1 file1 = open('C:\\windows\\temp\\readme.txt', 'r')

 

Python 为我们铺好了解决的道路,只需要使用原始字符串操作符(R或r)即可:

  1. >>> file1 = open(r'C:\windows\temp\readme.txt', 'r')

 

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

  1. >>> str1[16:29]

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

>>> str1[-50:-37]
'www.fishc.com'
>>>

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

  1. >>> str1[20:-36]
  2. 'fishc.com/'

6 据说只有智商高于150的鱼油才能解开这个字符串 
(还原为有意义的字符串):str1 = ‘i2sl54ovvvb4e3bferi32s56h;$c43.sfc67o0cm99’

 ‘i love fishc.com’, 好查找对应的字母,每隔三个及对应上

# 以步长为3进行整体切片,[start:end:step] str1[::3]

 

 

 

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

# 密码分级注释
# 密码安全性检查代码
#
# 低级密码要求:
# 1. 密码由单纯的数字或字母组成
# 2. 密码长度小于等于8位
#
# 中级密码要求:
# 1. 密码必须由数字、字母或特殊字符(仅限:~!@#$%^&*()_=-/,.?<>;:[]{}|\)任意两种组合
# 2. 密码长度不能低于8位
#
# 高级密码要求:
# 1. 密码必须由数字、字母及特殊字符(仅限:~!@#$%^&*()_=-/,.?<>;:[]{}|\)三种组合
# 2. 密码只能由字母开头
# 3. 密码长度不能低于16位

print('============ 密码组合复杂度分级测试系统 ============')
symbols = r'''`!@#$%^&*()_=-/,.?<>;:[]{}\|'''
chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
nums = '0123456789'

passwd = input('请输入需要检查的密码组合:')
length = len(passwd)

while length == 0 or passwd.isspace():
passwd = input('你输入的密码为空,请重新输入需要检查的密码组合:')

# 先判断长度范围
if length <= 8:
flag_len = 1
elif 8 < length < 16:
flag_len = 2
else:
flag_len = 3

# 再判断字母数字和特殊字符
# 先判断特殊字符

flag_con = 0
for each in passwd:
if each in symbols:
flag_con += 1
break

# 再判断字母

for each in passwd:
if each in chars:
flag_con += 1
break

# 最后判断数字

for each in passwd:
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:
if passwd[0] in chars:
print('高级')
else:
print('中级')
print('建议使用以下方式对你的密码安全级别进行提升: \n\
\t1. 密码必须由数字、字母及特殊字符三种组合\n\
\t2. 密码只能由字母开头\n\
\t3. 密码长度不能低于16位')
break

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

 

存在一个缺陷:中等密码 数字,字母,特殊符号同时存在时 没有控制成功 仍提示是中等密码!(后续改进这个问题!)

#coding=UTF-8

class Password():
print('============ 密码组合复杂度分级测试系统 ============')
symbols = r'''`!@#$%^&*()_=-/,.?<>;:[]{}\|'''
chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
nums = '0123456789'
slt = '@1q'
passwd = raw_input('请输入需要检查的密码组合:')
length = len(passwd)
while length == 0 or passwd.isspace():
passwd =raw_input('你输入的密码为空,请重新输入需要检查的密码组合:')
#while not (passwd.isalpha() or passwd.isdigit()):
#passwd = raw_input('请输入需要检查的密码组合:')
def lower_level():
if length <= 8:
if passwd.isalpha() or passwd.isdigit():
print('低级别密码')
else:
print("密码不符合规则,请重新输入密码!")

def Mid_level():
if 8 < length < 16:
if passwd.isalpha() or passwd.isdigit():
print("密码不符合规则,请重新输入密码!")
elif passwd in symbols:
print("密码不符合规则,请重新输入密码!")
elif passwd in (symbols,chars,nums):
print("密码不符合规则,请重新输入密码!")
else:
print('中级别密码')

def high_level():
if 16 < length:
if not passwd[0].isalpha():
print("密码不符合规则,请重新输入密码!")
elif passwd.isalpha():
print("密码不符合规则,请重新输入密码!")
elif passwd.isalnum():
print("密码不符合规则,请重新输入密码!")
else:
print("高级别密码")

if __name__ == '__main__':
lower_level()
Mid_level()
high_level()

 

 

0. 根据说明填写相应的字符串格式化符号

   符   号

   说     明

     %

   格式化字符及其ASCII码

     %

   格式化字符串

     %

   格式化整数

     %

   格式化无符号八进制数

     %

   格式化无符号十六进制数

     %

   格式化无符号十六进制数(大写)

     %

   格式化定点数,可指定小数点后的精度

     %

   用科学计数法格式化定点数

     %

   根据值的大小决定使用%f或者%e

     %

   根据值的大小决定使用%F或者%E

 

 

1. 请问以下这行代码会打印什么内容?

  1. >>> "{{1}}".format("不打印", "打印")
  2. '{1}'

2. 以下代码中,a, b, c是什么参数?

  1. >>> "{a} love {b}.{c}".format(a="I", b="FishC", c="com")
  2. 'I love FishC.com'

3. 以下代码中,{0}, {1}, {2}是什么参数?

  1. >>> "{0} love {1}.{2}".format("I", "FishC", "com")
  2. 'I love FishC.com'

4.如果想要显示Pi = 3.14,format前边的字符串应该怎么填写呢?

    >>> '{0}{1:.2f}'.format('Pi = ', 3.1415)
    1. 'Pi = 3.14'
posted @ 2018-10-08 14:06  蘑菇慢慢  阅读(148)  评论(0)    收藏  举报