鱼C论坛

 找回密码
 立即注册
查看: 2117|回复: 11

《零基礎學Python》第14講 字符串:各種奇葩的內置方法

[复制链接]
回帖奖励 3 鱼币 回复本帖可获得 1 鱼币奖励! 每人限 1 次(中奖概率 50%)
发表于 2018-4-10 11:42:45 | 显示全部楼层 |阅读模式

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

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

x
password = input('請輸入需要檢查的密碼組合:')
character = "~!@#$%^&*()_=-/,.?<>;:[]{}\|"
while password != " ":
    if password in character and password. istitle() and password. isalnum() or len(password) > 16:
        print("您的密碼安全級別判定為 : 高")
        break
    elif password. isalnum() or len(password) <= 8:
        print("""您的密碼安全級別判定為 : 低
請按以下方式提升您的密碼安全級別:
        1. 密碼必須由數字、 字母及特殊字符三種組合
        2. 密碼只能由字母開頭
        3. 密碼長度不能低於16位""")
        break
    else:
        print("""您的密碼安全級別判定為 : 中
請按以下方式提升您的密碼安全級別:
        1. 密碼必須由數字、 字母及特殊字符三種組合
        2. 密碼只能由字母開頭
        3. 密碼長度不能低於16位""")
        break

####按照要求是可以得出結果,還能優化嗎?比如我單純輸入符號的時候程序是以長度作為判定標準的,這個咋弄,好糾結~~~
2018-04-10_113437.png
2018-04-10_113417.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-4-10 14:21:32 | 显示全部楼层
代碼改了下:
password = input('請輸入需要檢查的密碼組合:')
character = "~!@#$%^&*()_=-/,.?<>;:[]{}\|"
while password.isspace () or len(password) <= 0:
    password = input("您輸入的密碼為空(或空格), 請重新輸入:")
while password != " ":
    if password in character and password. istitle() and password. isalnum() or len(password) > 16:
        print("您的密碼安全級別判定為 : 高")
        print("請繼續保持")
        break
    elif password. isalnum() or 0 < len(password) <= 8:
        print("""您的密碼安全級別判定為 : 低
請按以下方式提升您的密碼安全級別:
        1. 密碼必須由數字、 字母及特殊字符三種組合
        2. 密碼只能由字母開頭
        3. 密碼長度不能低於16位""")
        break
    else:
        print("""您的密碼安全級別判定為 : 中
請按以下方式提升您的密碼安全級別:
        1. 密碼必須由數字、 字母及特殊字符三種組合
        2. 密碼只能由字母開頭
        3. 密碼長度不能低於16位""")
        break
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-10 15:15:55 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-4-10 23:52:03 | 显示全部楼层

回帖奖励 +1 鱼币

学习一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-20 12:54:36 | 显示全部楼层

回帖奖励 +1 鱼币

学习下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-22 11:06:04 | 显示全部楼层
学习学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-22 13:50:15 | 显示全部楼层

回帖奖励 +1 鱼币

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

使用道具 举报

发表于 2018-12-24 15:20:47 | 显示全部楼层
学习学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-24 16:32:26 | 显示全部楼层

回帖奖励 +1 鱼币

学习学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-22 14:57:03 | 显示全部楼层
只改了结构,判定方式需要你自己修改,可以参考答案:
1、只要不退出,可以重复使用
2、提高安全级别的那个代码,只写一遍就行了
while True :
    password = input('請輸入需要檢查的密碼組合(退出请输入:N):')
    if password == 'N':
        break
    character = "~!@#$%^&*()_=-/,.?<>;:[]{}\|"
    letter = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
    if password.isspace () or len(password) <= 0:
        password = input("您輸入的密碼為空(或空格), 請重新輸入:")
    else:
        if not password.isalnum() and password[0] in letter and len(password) > 16:  # 这个是不对的,需要更改
            print("您的密碼安全級別判定為 : 高")
            print("請繼續保持\n")
        elif len(password) > 8 :# 此处也需要更改补充
            print("""您的密碼安全級別判定為 : 低 \n""")
        else:
            print("""您的密碼安全級別判定為 : 低 \n""")
        print('''請按以下方式提升您的密碼安全級別:
1. 密碼必須由數字、 字母及特殊字符三種組合
2. 密碼只能由字母開頭
3. 密碼長度不能低於16位\n''')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-22 15:26:42 | 显示全部楼层
学习学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-23 10:13:34 | 显示全部楼层

回帖奖励 +1 鱼币

果然有够奇葩
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-24 02:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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