鱼C论坛

 找回密码
 立即注册
查看: 925|回复: 21

[已解决]大家都是如何学习Python的呢?

[复制链接]
发表于 2020-4-9 19:50:21 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 焰珺晴 于 2020-4-9 19:53 编辑

今天学到了入门学习Python(旧版的第14课),小甲鱼给了一道题,感觉怀疑人生了。
# 密码安全性检查代码
#
# 低级密码要求:
#   1. 密码由单纯的数字或字母组成
#   2. 密码长度小于等于8位
#
# 中级密码要求:
#   1. 密码必须由数字、字母或特殊字符(仅限:~!@#$%^&*()_=-/,.?<>;:[]{}|\)任意两种组合
#   2. 密码长度不能低于8位
#
# 高级密码要求:
#   1. 密码必须由数字、字母及特殊字符(仅限:~!@#$%^&*()_=-/,.?<>;:[]{}|\)三种组合
#   2. 密码只能由字母开头
#   3. 密码长度不能低于16位
我的天,答案贼长,只会写出这样的
# 密码安全性检查代码
str1 = input("请输入需要检查的密码组合")
print("您的密码安全级别评级为:", end = ' ')
str1.sdigit()
while True
    str1.sdigit() = True
    print('低')
    break
还报错了
答案
# 密码安全性检查代码
#
# 低级密码要求:
#   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
看了答案感觉勉强看懂,自己做只能写几行。。。平时的课有认真听,有认真做笔记,每次的练习也有好好做(一般写一行两行的当节课讲了的会),但是从来让写完成一个任务的代码仍然感觉无处下手,之前做过的,也未必自己都会写了。让我怀疑自己的学习方法

之前觉得,直接往下进行,之前忘记的需要用的时候去查,但是现在有一点不知道去哪里查了55555.。。
最近除了休息,一天一到两课,我是不是应该停一个星期,把之前的吃透啊

求大佬解答,谢谢
最佳答案
2020-4-9 20:16:50
while 1:
    num = '0123456789'
    alpha = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
    extra = r'''~!@#$%^&*()_=-/,.?<>;:[]{}\|'''

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

    while (length == 0 or passwd.isspace()):
        passwd = input('输入密码为空,请重新输入:')
        length = len(passwd)

    if length <= 8:
        flag_len = 1
    elif length >= 16:
        flag_len = 3
    else:
        flag_len = 2

    flag_con = 0
    for each in passwd:
        if each in num:
            flag_con += 1
            break
    for each in passwd:
        if each in alpha:
            flag_con += 1
            break
    for each in passwd:
        if each in extra:
            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 alpha):
            print('高')
            print('请继续保持')
            break

        else:
            print('中')

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

while 1:
    num = '0123456789'
    alpha = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
    extra = r'''~!@#$%^&*()_=-/,.?<>;:[]{}\|'''

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

    while (length == 0 or passwd.isspace()):
        passwd = input('输入密码为空,请重新输入:')
        length = len(passwd)

    if length <= 8:
        flag_len = 1
    elif length >= 16:
        flag_len = 3
    else:
        flag_len = 2

    flag_con = 0
    for each in passwd:
        if each in num:
            flag_con += 1
            break
    for each in passwd:
        if each in alpha:
            flag_con += 1
            break
    for each in passwd:
        if each in extra:
            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 alpha):
            print('高')
            print('请继续保持')
            break

        else:
            print('中')

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


while 1:
    num = '0123456789'
    alpha = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
    extra = r'''~!@#$%^&*()_=-/,.?<>;:[]{}\|'''

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

    while (length == 0 or passwd.isspace()):
        passwd = input('输入密码为空,请重新输入:')
        length = len(passwd)

    if length <= 8:
        flag_len = 1
    elif length >= 16:
        flag_len = 3
    else:
        flag_len = 2

    flag_con = 0
    for each in passwd:
        if each in num:
            flag_con += 1
            break
    for each in passwd:
        if each in alpha:
            flag_con += 1
            break
    for each in passwd:
        if each in extra:
            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 alpha):
            print('高')
            print('请继续保持')
            break

        else:
            print('中')

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


while 1:
    num = '0123456789'
    alpha = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
    extra = r'''~!@#$%^&*()_=-/,.?<>;:[]{}\|'''

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

    while (length == 0 or passwd.isspace()):
        passwd = input('输入密码为空,请重新输入:')
        length = len(passwd)

    if length <= 8:
        flag_len = 1
    elif length >= 16:
        flag_len = 3
    else:
        flag_len = 2

    flag_con = 0
    for each in passwd:
        if each in num:
            flag_con += 1
            break
    for each in passwd:
        if each in alpha:
            flag_con += 1
            break
    for each in passwd:
        if each in extra:
            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 alpha):
            print('高')
            print('请继续保持')
            break

        else:
            print('中')

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


temp = input("按7退出")
guess = int(temp)

if guess == 7:
    print("掰掰")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-9 19:55:56 | 显示全部楼层
其实你这个情况 属于正常的 但是你要学会举一反三 编程可以锻炼自己的思维 你可以做完课后练习以后 把练习的题目改一下 自己给自己出题 做一下

多看一下 网上好的技术文章 可以学到不少  

不要机械式学习 要学会变通 找到编程的乐趣 比如你现在学习了检查密码强度 你可以自己写个简单的input输入账号密码的demo 检查输入的账号密码强度 这都是很好地练习

如果你学习了的东西忘了 也很正常 我学习了git好久不用 我也会忘 但是不懂的就百度查一下  找答案的地方很多
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-9 20:16:50 | 显示全部楼层    本楼为最佳答案   
while 1:
    num = '0123456789'
    alpha = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
    extra = r'''~!@#$%^&*()_=-/,.?<>;:[]{}\|'''

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

    while (length == 0 or passwd.isspace()):
        passwd = input('输入密码为空,请重新输入:')
        length = len(passwd)

    if length <= 8:
        flag_len = 1
    elif length >= 16:
        flag_len = 3
    else:
        flag_len = 2

    flag_con = 0
    for each in passwd:
        if each in num:
            flag_con += 1
            break
    for each in passwd:
        if each in alpha:
            flag_con += 1
            break
    for each in passwd:
        if each in extra:
            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 alpha):
            print('高')
            print('请继续保持')
            break

        else:
            print('中')

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

while 1:
    num = '0123456789'
    alpha = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
    extra = r'''~!@#$%^&*()_=-/,.?<>;:[]{}\|'''

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

    while (length == 0 or passwd.isspace()):
        passwd = input('输入密码为空,请重新输入:')
        length = len(passwd)

    if length <= 8:
        flag_len = 1
    elif length >= 16:
        flag_len = 3
    else:
        flag_len = 2

    flag_con = 0
    for each in passwd:
        if each in num:
            flag_con += 1
            break
    for each in passwd:
        if each in alpha:
            flag_con += 1
            break
    for each in passwd:
        if each in extra:
            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 alpha):
            print('高')
            print('请继续保持')
            break

        else:
            print('中')

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


while 1:
    num = '0123456789'
    alpha = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
    extra = r'''~!@#$%^&*()_=-/,.?<>;:[]{}\|'''

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

    while (length == 0 or passwd.isspace()):
        passwd = input('输入密码为空,请重新输入:')
        length = len(passwd)

    if length <= 8:
        flag_len = 1
    elif length >= 16:
        flag_len = 3
    else:
        flag_len = 2

    flag_con = 0
    for each in passwd:
        if each in num:
            flag_con += 1
            break
    for each in passwd:
        if each in alpha:
            flag_con += 1
            break
    for each in passwd:
        if each in extra:
            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 alpha):
            print('高')
            print('请继续保持')
            break

        else:
            print('中')

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


while 1:
    num = '0123456789'
    alpha = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
    extra = r'''~!@#$%^&*()_=-/,.?<>;:[]{}\|'''

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

    while (length == 0 or passwd.isspace()):
        passwd = input('输入密码为空,请重新输入:')
        length = len(passwd)

    if length <= 8:
        flag_len = 1
    elif length >= 16:
        flag_len = 3
    else:
        flag_len = 2

    flag_con = 0
    for each in passwd:
        if each in num:
            flag_con += 1
            break
    for each in passwd:
        if each in alpha:
            flag_con += 1
            break
    for each in passwd:
        if each in extra:
            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 alpha):
            print('高')
            print('请继续保持')
            break

        else:
            print('中')

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


temp = input("按7退出")
guess = int(temp)

if guess == 7:
    print("掰掰")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-9 20:50:16 From FishC Mobile | 显示全部楼层
兴趣很重要。对编程有兴趣的话,每学完一个知识点都会不由自主地想写段程序实战一下,搞不定的也会去Google或者百度,或者来论坛求助,知识面自然而然地越扩越广。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-9 21:03:05 | 显示全部楼层
我在学习一门语言的时候有时候也会出现你这样的情况,一般来说是正常的,但要解决它也只有你自己可以做到。

看得懂答案但是自己写不出来就跟着答案敲,敲一遍,两遍,理解答案中每一行代码的思路,不懂就发帖问别人,想着我一定要把这个问题克服,久而久之你就真的克服了。

编程最重要的是思维灵活,面对题时要有思路,这个是要锻炼出来的,你可以多多刷题,多多看大神们的代码,学习大神们的思路,久而久之你的思维就灵活起来了。

最重要的是兴趣,没人强迫你学习编程,你能靠的只有你自己,有兴趣了自然就会继续学下去,加油吧。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

发表于 2020-4-9 21:50:12 | 显示全部楼层
一天1~2课如果觉得应付不过来,可以改成一天1课
只要每节课学完后认真完成课后题就行了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-9 23:08:07 | 显示全部楼层
我感觉记笔记发到论坛上然后回答论坛上别人的问题还有自己主动提问题是个不错的途径!
第一点可以让自己被迫有了学习的动力,因为要把自己的笔记展示出来,在听课的时候也会更加仔细,记的也会很详细,这样在后面查找的时候很方便!
第二点可以让自己很有成就感,哈哈。在众多回答中,当提问者选择了你作为最佳答案的时候爽爆~,这也是我学习的动力之一吧!
第三点可以让自己更有代入感,而且与他人探讨的过程中也会遇到自己的技术空白,顺便也可以弥补!

以上三点我都有在做,甚至有种以论坛为家的感觉,哈哈!
这个是我的笔记
这是我的回答
这一个也是,哈哈
这个是我的提问
希望对你能有帮助~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-4-10 00:15:39 | 显示全部楼层
我现在也在从零开始学  其实这些题是要先思考理解的,虽然答案巨长,但是仔细研究后发现原来挺简单的 如果有些忘了前面的内容什么的也可以回看一两遍,我还做了很多笔记
想要快速掌握不简单,但是慢慢了解消化,进步还是不难的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-10 05:53:38 | 显示全部楼层
本帖最后由 珍珠是认真的 于 2020-4-10 05:54 编辑

Hello,我是小白,我经常结题思路没有很清晰,会有一两点很零散的思路,也是经常报错,感觉我的学习进度也是非常慢,课后练习就可以磕很久,大大打击我学习的信心,我觉得发帖问问题这个挺好的,可以看到其他鱼友的思路和感受到他们的学习热情。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-4-10 07:58:08 From FishC Mobile | 显示全部楼层
hrp 发表于 2020-4-9 20:50
兴趣很重要。对编程有兴趣的话,每学完一个知识点都会不由自主地想写段程序实战一下,搞不定的也会去Google ...

Google 就别想了,我访问不了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-10 07:59:55 From FishC Mobile | 显示全部楼层
学完了基础理论之后,你可以尝试看看 奇技淫巧 ,会告诉你很多你都不可能想到的用法
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-10 09:03:11 | 显示全部楼层
我上次看见你的时候,你还在看while循环,现在都研究这么长的东西了。我学习也停了一段时间了前面有些细节忘了,准备在复习一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-10 10:42:18 From FishC Mobile | 显示全部楼层
_2_ 发表于 2020-4-10 07:58
Google 就别想了,我访问不了

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

使用道具 举报

 楼主| 发表于 2020-4-10 11:11:33 | 显示全部楼层
yexing 发表于 2020-4-9 21:03
我在学习一门语言的时候有时候也会出现你这样的情况,一般来说是正常的,但要解决它也只有你自己可以做到。 ...

在哪里找题刷呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-10 11:13:51 From FishC Mobile | 显示全部楼层
hrp 发表于 2020-4-10 10:42
梯子自备

……给我梯子让我见见世面
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-10 11:15:09 From FishC Mobile | 显示全部楼层
焰珺晴 发表于 2020-4-10 11:11
在哪里找题刷呢?

https://www.leetcode-cn.com/
关于这个网站,我只想用一个表情描述
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-10 11:15:47 | 显示全部楼层

请问这个是?我上面代码的另一种方法吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-10 11:23:35 | 显示全部楼层
leon_xinxin 发表于 2020-4-9 23:08
我感觉记笔记发到论坛上然后回答论坛上别人的问题还有自己主动提问题是个不错的途径!
第一点可以让自己被 ...

你用的是OneNote做笔记吧,我也一样呢,你回答里面的那个方法太棒了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-10 11:28:23 | 显示全部楼层
珍珠是认真的 发表于 2020-4-10 05:53
Hello,我是小白,我经常结题思路没有很清晰,会有一两点很零散的思路,也是经常报错,感觉我的学习进度也 ...

一起加油!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-10 11:33:35 | 显示全部楼层
焰珺晴 发表于 2020-4-10 11:15
请问这个是?我上面代码的另一种方法吗?

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-26 05:56

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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