ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Python学习日记(六)

2022-03-05 17:31:28  阅读:184  来源: 互联网

标签:Python 字母 学习 密码 length passwd input password 日记


格式化方法:

  • format()方法

格式化函数,可以将字符串以特定格式输出,参数用{}括起来

  • 位置参数
  • 关键字参数
  • 综合位置参数和关键字参数时需要注意位置参数应该在关键字参数之前
  • 参数后面的冒号表示格式化符号的开始
  • >>> "{0} love {1}.{2}".format("I", "FishC", "com")
    'I love FishC.com'
    >>> "{a} love {b}.{c}".format(a = "I", b = "FishC", c = "com")
    'I love FishC.com'
    >>> 

 

 

习题:

  • 要求编写一个密码安全性检查的脚本check.py
  • 需求:
       低级密码要求:
    #   1. 密码由单纯的数字或字母组成
    #   2. 密码长度小于等于8位
    
       中级密码要求:
    #   1. 密码必须由数字、字母或特殊字符(仅限:~!@#$%^&*()_=-/,.?<>;:[]{}|\)任意两种组合
    #   2. 密码长度不能低于8位
    
       高级密码要求:
    #   1. 密码必须由数字、字母及特殊字符(仅限:~!@#$%^&*()_=-/,.?<>;:[]{}|\)三种组合
    #   2. 密码只能由字母开头
    #   3. 密码长度不能低于16位
    
    代码一:
    symbols = "~!@#$%^&*()_=-/,.?<>;:[]{}\|"
    chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
    nums = '0123456789'
    t = 'y'
    while t == 'y':
        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 == 2 or flag_con == 2:
                print("中")
            else:
                print("高")
                print("请继续保持")
                break
            print("""请按以下方式提升您的密码安全级别:
        1.密码必须由数字、字母及特殊字符三种组合
        2.密码只能由字母开头
        3.密码长度不能低于16位""")
            break
        t = input("还要再测试么?(”y“继续,其他退出)")
    
    
    代码二:
    str1 = "~!@#$%^&*()_=-/,.?<>;:[]{}\|"
    has_str1 = 0
    has_num = 0
    has_alpha = 0
    t = 'y'
    while t == 'y':
            password = input("请输入需要检查的密码组合:")
            length = len(password)
            while(password.isspace() or length == 0):  # 有空格或者长度为零
                    password = input('您输入的密码为空(或空格),请重新输入:')
            for i in password:
                    if i in str1:
                            has_str1 = 1
                    if i.isdigit():  # 所有字符都是数字
                            has_num = 1
                    if i.isalpha():  # 所有字符都是字母
                            has_alpha = 1
            has =  has_str1 + has_num + has_alpha
            if length <= 8 or password.isalnum():
                    level = "低"
            if length > 8 and has ==2:
                    level = "中"
            if length >= 16 and has == 3 and password[0].isalnum():
                    level = "高"
            print("您的密码安全等级评定为:%s"%level)
            if level == "高":
                    print("请继续保持")
            else:
                    print("""请按以下方式提升您的密码安全级别:
            1.密码必须由数字、字母及特殊字符三种组合
            2.密码只能由字母开头
            3.密码长度不能低于16位""")
            t = input("还要再测试么?(”y“继续,其他退出)")

     

  • 总结:字符串内置方法总结

 

  • 字符串格式化符号

 

  • 格式化操作符辅助指令
  • >>> '%5.1f' % 27.678
    ' 27.7'
    >>> '%.2e' % 27.6789
    '2.77e+01'
    >>> '%10d' % 5
    '         5'
    >>> '%-10d' % 5
    '5         '
    >>> '%010d' % 5
    '0000000005'
    >>> '% # x' % 100
    '0x64'

     

  • 字符串转义字符含义

标签:Python,字母,学习,密码,length,passwd,input,password,日记
来源: https://www.cnblogs.com/feiyuyu/p/15968410.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有