鱼C论坛

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

[技术交流] 记录从2018/2/21学习到3/1的收获与困惑

[复制链接]
发表于 2018-3-1 11:36:01 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 ssjmhh56 于 2018-3-1 11:35 编辑

首先,得以从哔哩哔哩遇到小甲鱼可以称得上是幸运了,讲课风趣,课后还有对应的习题可供巩固和提高自己的水平.之前有玩过CodeCombat,但当时对Python也是一知半解,经过一周的学习,总算是有了些系统的了解.

        记得刚开始写代码的时候总是把print写成printf,每局后面也 总忍不住去加;,可恶的C.慢慢适应之后才开始觉得原来Python如此优雅,简约,简单的对齐就完成不简单的约束,不需要提前声明变量,没有字节大小的束缚,
name = input("请输入您的姓名:")
      只用一行代码便实现了提示输入与接收数据的功能.
#check.py  

nums = '1234567890'
alpha = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
special = '~!@#$%^&*()_=+-/,.?<>;:[]{}|\\'
way = '''请按以下方式提升您的密码安全级别:
                                                1.密码必须由数字、字母及特殊字符三种组合
                                                2.密码只能由字母开头
                                                3.密码长度不能低于16位
                                '''
i, j, k = 0, 0, 0

key = str(input('请输入需要检查的密码组合:'))
print('您的密码安全级别评定为 : ', end = '')

length = len(key)

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

for each in key:
    if each in nums:
        i = 1
        break #判定是否有数字
for each in key:
    if each in alpha:
        j = 1
        break #判定是否有字母
for each in key:
    if each in special:
        k = 3 
        break #判定是否有特殊字符
        
degree = i + j + k

if length <= 8 or degree == 1:
    print('低')
    print(way)
elif length > 16 and degree == 5 and (key[0] in alpha):
    print('高')
    print('请继续保持')
else:
    print('中')
    print(way)


当独立完成课后训练的那一刻,那种自己写的代码能跑起来的感受,不言而喻,本觉得自己写的很好,但和小甲鱼的参考答案一对比,总会挑出几个值得改进的地方,学无止境.

记忆点:
0.字符串中需要加'\'的时候有如下方法:r'\'或'\\'
1.短路逻辑如:if 1<2 or 2>3:# or 语句判断左右有一为真即可,短路逻辑便是当左边语句成立后不再去判定右边是否成立
2.int()将小数转换为整数是向下取整,但对于负数来说正好相反(5.5向上取整是6,向下取整是5)
3.int(5.4 + 0.5) == 5实现四舍五入
4.not 1 or 0 and 1 or 3 and 4 or 5 and 6 or 7 and 8 and 9可先按优先级加括号再计算
5.Python中 or and 的用法:0 or 3返回值是3, 4 and 5 返回值是5,并不是 1
6.提高代码效率:<1>将重复的代码赋给一个变量<2>条件语句中把概率高的放在前面
7.small = x if (x < y and x < z) else (y if y < z else z)三元操作符的使用
8.列表的拷贝:list2 = list1[:] 不可以直接list2 = list1这样修改list2,list1也会跟着变化
9.list1[::-1]可以将列表逆序输出
10.列表推导式:list1 = [(x, y) for x in range(10) for y in range(10) if x%2==0 if y%2!=0]
11.灵活使用列表索引用数据的一部分对数据进行处理:list3 = [name + ':' + slogan[2:] for slogan in list1 for name in list2 if slogan[0] == name[0]]
12.打开文件时,\t等会被看作转义字符,所以加 r 或者用 / 或者用 \\ .file1 = open(r'C:\windows\temp\readme.txt', 'r')
13.def MyFun((x, y), (a, b)): 这样定义是错误的,可以写成>>> def MyFun(x, y):\return x[0] * x[1] - y[0] * y[1]




以上就是这一周所学,希望可以越学越快乐.


本帖被以下淘专辑推荐:

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-24 04:08

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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