专栏首页石开之旅小甲鱼《零基础学习Python》课后笔记(十四):字符串——各种奇葩的内置方法

小甲鱼《零基础学习Python》课后笔记(十四):字符串——各种奇葩的内置方法

测试题

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

>>> str1 = ('all'  
    'en')  
>>> str1  
'allen'  
>>> str4 = 'all\  
en'  
>>> str4  
'allen'  

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

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

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

会报错是因为在字符串中,我们约定“\t”和“\r”分别表示“横向制表符(TAB)”和“回车符”(详见:http://bbs.fishc.com/thread-39140-1-1.html),因此并不会按照我们计划的路径去打开文件。

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

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

有字符: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>'  
>>> str2 = str1.split('/')  
>>> str2  
['<a href="http:', '', 'www.fishc.com', 'dvd" target="_blank">鱼C资源打包<', 'a>']  
>>> str3[2]  
'www.fishc.com'  

第二种方法:

>>> str1[str1.find('w'):str1.find('m')+1]  
'www.fishc.com'  

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

>>> str1[str1.find('w') - len(str1):str1.find('m') + 1 - len(str1)]  
'www.fishc.com'  

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

>>> str1[20:-36]  

题目中语句和这句等同:

>>> str1[20:-36 + 61]  
'fishc'

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

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

切片,str2[::3]表示对整个str2字符串从头开始取第一个,索引加3取下一个,直至结尾,生成一个新字符串。

动动手

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

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

程序演示:

condition1 = '0123456789'  
condition2 = 'abcdefghilklmnopqrstuvwxyzABCDEFGHILKLMNOPQRSTUVWXYZ'  
condition3 = r'~!@#$%^&*()_=-/,.<>;:[]{}|\?'  
password = input('请输入需要检查的密码:')  
length = len(password)  
while password.isspace() and length == 0:  
    password = input('您输入的密码为空(或空格)请重新设置你的密码:')  
fisrt_password = password[0]  
if 0 < length <= 8:  
    length_flag = 1  
elif 8 < length  < 16:  
    length_flag = 2  
else:  
    length_flag = 3  
  
spec_flag = 0  
#判断是否含有数字  
for each in password:  
    if each in condition1:  
        spec_flag += 1  
        break  
  
#判断是否含有字母  
for each in password:  
    if each in condition2:  
        spec_flag += 1  
        break  
  
#判断是否含有特殊字符  
for each in password:  
    if each in condition3:  
        spec_flag += 1  
        break  
while 1:  
    print('你输入的密码安全等级为:',end = ' ')  
    if length_flag == 1 or spec_flag == 1:  
        print('低')  
    elif length_flag == 2 and spec_flag == 2:  
        print('中')  
    else:  
        print('高')  
        print('继续保持!')  
        break  
  
    print("请按以下方式提升您的密码安全级别:\n\  
    \t1. 密码必须由数字、字母及特殊字符三种组合\n\  
    \t2. 密码只能由字母开头\n\  
    \t3. 密码长度不能低于16位'")  
    break  

1. 请写下这一节课你学习到的内容:格式不限,回忆并复述是加强记忆的好方式!

本节课主要是字符串的各种方法。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 小甲鱼《零基础学习Python》课后笔记(六):Python之常用操作符

    0.Python的floor除法现在使用“//”实现,那3.0//2.0你目测会显示什么内容?

    小火柴棒
  • 小甲鱼《零基础学习Python》课后笔记(三十四):丰富的else语句及简洁的with语句

    测试题 0.在Python中,else语句能跟哪些语句进行搭配? a)if…else语句,“要么怎样。要么不怎样” b)while或for…else语句,...

    小火柴棒
  • SOP8 SPI FLASH短接下载程序的原理

    可以短接1,2脚;1,3脚;1,4脚......其原理就是让主控不能正常读FLASH,此时芯片内部的UBOOT就“误认”FLASH异常或不在线,从而启动US...

    小火柴棒
  • 论文阅读理解 - (Deeplab-V3)Rethinking Atrous Convolution for Semantic Image Segmentation

    这里主要回顾如何应用atrous convolution来提取紧凑的特征,以进行语义分割; 然后介绍在串行和并行中采用atrous convolution的模块...

    AIHGF
  • DeepLab V3

    好长一段时间没有和大家见面,但是在学习群里,大家每天都是非常活跃的进行着学术邻域的探讨,今天算是四月的初始,又是一个清爽明媚的季节,在这个样的季节中,大家一定都...

    计算机视觉研究院
  • 工具分享 | Pigat v2.0正式发布

    Pigat(Passive Intelligence Gathering Aggregation Tool)被动信息收集聚合工具,该工具通过爬取目标URL在第三...

    TeamsSix
  • 我不想看到阉割版的 Google

    昨天人民日报海外版的推文,着实引爆了互联网世界的 G 点,这么明显的故意勾搭 Google,还是头一次。

    sylan215
  • 掌握Python 装饰器,其实只需要一盏茶的功夫

    用户2176428
  • 产品资讯|关于 AI 的应用与实践,我们做了以下思考

    当警方通过人脸识别在明星演唱会现场抓捕逃犯时,当人们走进餐厅只用“靠脸吃饭”时,当凌晨 2:30 还有智能客服解答售后问题时,你是否会有这样的疑问:人脸识别在应...

    优图实验室
  • 【Java侵权案大逆转】Google哭了,要赔甲骨文88亿美金!

    从最早李开复跳槽谷歌被指违反竞业禁止协议,微软恐其恐泄露知识产权核心机密将谷歌告上法庭,到后来谷歌Waymo和Uber对簿公堂,指控其离职员工、Uber先进技术...

    IT派

扫码关注云+社区

领取腾讯云代金券