鱼C论坛

 找回密码
 立即注册
查看: 2062|回复: 0

[技术交流] 《零基础入门学习python》第014讲个人学习笔记

[复制链接]
发表于 2017-8-16 08:36:46 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 Vermilion 于 2017-8-16 08:43 编辑

《零基础入门学习python》第014讲个人学习笔记--各种奇葩的内置方法(这一节里python2和3有点区别)
0.切片
>>>str1='I love fishC.com'
>>>str1[:6]
'I love'              #python没有字符,只有单个的字符串
>>>str1[5]
'e'                    #字符串同元祖一样定义很难改变
>>>str1[:6]+'插入的字符串'+str1[6:]
>>>str1
'I love 插入的字符串fishc.com'     #此时旧的字符串依旧存在

>>>str1=str1[:6]+'插入的字符串'+str1[6:]
>>>str1
'I love 插入的字符串fishc.com'
#此时指针指向已改变,但原来字符串'I love fishc.com'还在,只是如果没有变量指向它,过一会被垃圾处理器回收

str1[::3]代表每三个切一个出来

各种内置方法
1.
capitalize()  #将第一个字母大写
>>>str2='xiaoxie'
>>>st2.capitalize()
'Xiaoxie'

2.
casefold()  #将所有大写变小写
>>>str2='DAXIExiaoxie'
>>>str2.casefold()
'daxiexiaoxie'
>>>str2
'DAXIExiaoxie'

3.
center(width)   #将字符串居中,并使用空格至长度width的新字符串中
>>>str2.center(40)
'                    DAXIExiaoxie              '

4.
count(sub[,start[,end]])   #返回sub在字符串的出现次数,start和end参数表示范围,可选
>>>str2.count('xi')
2
>>>str2
'DAXIExiaoxie'

5.
endswith(sub[,start[,end]])  #检查字符串是否以sub子字符串结束,如果是,则返回true,否,则返回false。start和end参数表示范围,可选
>>>str2
'DAXIExiaoxie'
>>>str2.endswith('xi')
false
>>>str2.endswith('xie')
true

6.
expand tabs([tabsize=8])
把字符串中的tab函数(\t)转换为空格,如不指定参数,默认的空格数是8
>>>str3='I\tlove\tFishC.com!'
>>>str3.expandtabs()
'I       love    FishC.com!'
#如这里就是从I到l(包括I不包括l)8格,从l到F(包括l不包括F)8格

7.
find(sub[,start[,end]])
检测sub函数是否包含在字符串中,如果有则返回索引值,否则返回-1。start和end参数表示范围,可选
>>>str3.find('efc')
-1
>>>str3.fid('com')
13

还有三十个剩下来的字符串内置函数用法,只是课上没有具体例子,我在这里就不说了
要是想查去鱼神这里:
字符串的各种http://bbs.fishc.com/forum.php?mod=viewthread&tid=38992&extra=page%3D1%26filter%3Dtypeid%26typeid%3D403内置方法

注意的地方
0.
如何让字符串跨越多行?
一:
>>>str1='''待到啊饿哈后返额发挥
                   撒复垦烧饭吗和我色饭
                   三分了看法底稿涉农分。'''            #:(字是随便编的)
二:
>>>str2= '待到啊饿哈后返额发挥\
                  撒复垦烧饭吗和我色饭\
                  三分了看法底稿涉农分。'
三:
>>>str3=('待到啊饿哈后返额发挥'
                 '撒复垦烧饭吗和我色饭'
                 '三分了看法底稿涉农分。')

1.三引号字符还能用来跨行注释
''' salhgiearoifhiofh
   afoiefioheoihpaif'''

2.
file1=open('C:\Windows\temp\readme.txt','r')表示以只读方式打开"C:\Windows\temp\readme.txt"这个文本文件,这个语句会报错,因为在字符串中,“\t”和“\r”分别表示横向制表符和回车符
        只需要使用原始字符串操作“R”或“r”即可。
  >>> file1 = open(r'C:\windows\temp\readme.txt', 'r')

后面是课后作业最后一题答案,放在这里只是单纯自己复习的方便,要是真想看出门左拐小甲鱼课后作业,自己做自己想再看
3.
# 密码安全性检查代码
#
# 低级密码要求:
#   1. 密码由单纯的数字或字母组成
#   2. 密码长度小于等于8位
#
# 中级密码要求:
#   1. 密码必须由数字、字母或特殊字符(仅限:~!@#$%^&*()_=-/,.?<>;:[]{}|\)任意两种组合
#   2. 密码长度不能低于8位
#
# 高级密码要求:
#   1. 密码必须由数字、字母及特殊字符(仅限:~!@#$%^&*()_=-/,.?<>;:[]{}|\)三种组合
#   2. 密码只能由字母开头
#   3. 密码长度不能低于16位

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

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

# 判断长度
length = len(passwd)

while (passwd.isspace() or length == 0) :
    passwd = input("您输入的密码为空(或空格),请重新输入:")
    length = len(passwd)

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 == 3 and flag_con == 3 and (passwd[0] in chars):
        print("高")
        print("请继续保持")
        break
    else:
        print("中")

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

评分

参与人数 1鱼币 +4 收起 理由
小甲鱼 + 4

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-22 19:50

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表