zoukankan      html  css  js  c++  java
  • 路飞学城-Python开发集训-第1章

    学习体会:

      在参加这次集训之前我自己学过一段时间的Python,看过老男孩的免费视频,自我感觉还行,老师写的代码基本上都能看懂,但是实际呢?。。。。今天是集训第一次交作业的时间,突然发现看似简单升级需求,自己硬是一点思路没有,慢慢的想了想,有了点思路,但是发现想用列表时,却忘了有哪些方法,想到用文件存储用户信息,文件操作竟然也忘了,通过查找之前笔记和网上资料,最后终于磕磕绊绊把程序写完了,虽然写完了,但思路感觉还不太清晰,看来以后真的要多练了,光看不练真的不行。

      另外之前也记过一些笔记,之前有记漏或遗忘的,这次的集训笔记针对这些遗忘或遗漏的知识再做下记录。

    笔记

    编程语言的进化:

    机器语言:最底层的语言,由01组成,机器可以直接识别

    汇编语言:次底层语言,一般用在硬件编程上,如CPU编程

    高级语言:

      编译型:C、C++、  执行速度快,但开发效率低

      解释型:python、java、PHP  执行效率慢,但开发效率高,需要解释器

    python是吉多·范罗苏姆(Guido van Rossum) 在1989年编写的,在1991年发行第一个版本。

    变量和常量:

      变量的作用:(1)用来存储数据,方便调用

            (2)用来标识数据,方便阅读(变量名又称为标识符)

      变量命名基本规则:(1)变量名只能由字母、下划线、数字组成

               (2)不能以数字开头

               (3)变量名不能使用保留字符

      变量命名习惯:(1)驼峰式:AgeOfOldboy

             (2)下划线:age_of_oldboy (推荐)

      

      常量:在Python中使用变量名全为大写来表示常量(约定俗成)

      

    注释的作用:(1)让代码不执行

          (2)对代码做解释(解释使用中英文都可以)

    Python的数据类型:

    int整型包括负数。

    如果要多行打印,需要使用3引号。

    练习:

    1、优化猜年龄的游戏,允许用户最多猜3次,中间猜对了,直接跳出循环。

    _age = 26
    count=0
    
    while count<3:
        age=int(input("请输入年龄:"))
        if age==_age:
            print("你猜对了")
            break
        elif age < _age:
            print("try bigger")
        else:
            print("try smaller")
        count+=1

    2、优化猜年龄游戏,允许用户最多猜3次,猜了3次后,再问是否还想玩,如果用户选Y,则再允许猜3次,以次往复。。。

    _age = 26
    count=0
    
    while count<3:
        age=int(input("请输入年龄:"))
        if age==_age:
            print("你猜对了")
            break
        elif age < _age:
            print("try bigger")
        else:
            print("try smaller")
        count+=1
        if count == 3:
            choice = input("是否继续猜:(Y/N)")
            if choice == "Y":
                count = 0
            else:
                break

     作业

     看似简单的作业,用到的知识点还是蛮多的,而自己在做的时候由于很多用法或细节自己之前并没有在意,然后查笔记,问百度,花了很长时间算是勉强完成了需求。现将作用中遇到的问题记录一下:

    1、字符串和列表之间的转换:(由于需要把用户信息和登陆次数记录到文件中,而文件只能是字符串的格式,这就涉及到将文件中的字符串形式的列表转换成列表)

    #字符串转换成列表
    s="www.baidu.com"
    li=list(s)
    print(li)   #['w', 'w', 'w', '.', 'b', 'a', 'i', 'd', 'u', '.', 'c', 'o', 'm']
    #字符串中的每一个字符都做为一个列表元素,且每个列表元素也是字符串
    
    #如果不想让字符串每个字符都做为一个元素加入列表,怎么办?
    s="www.baidu.com"
    s2=s.split(".")
    print(s2)   #['www', 'baidu', 'com']
    #这个其实和列表没多大关系,使用的是字符串的split方法,只有过这种方法得到的结果本来就是一个列表而已,且每个列表元素也是字符串

    #将字符串转换成列表的终极办法:eval()函数 -------> li=eval(s)

    -------------------------------------------------------------------------------------- #列表转换成字符串 li=["abc",("name","alex"),2222,"age"] #把整个列表转换成字符串 s=str(li) print(s) #['abc', ('name', 'alex'), 2222, 'age'] #仅把所有元素拼成字符串 s="".join(li) print(s) #报错,要想把列表中的元素组成字符串的前提是这些元素要都是字符才行,数字,元组不行

    2、另外一个就是文件操作,由于登陆次数是经常变动的,所以文件要经常更新,但是如何对文件内容进行更新操作?

    这个在答疑课上找答案

    3、作业题目:

    '''
    基础需求:
    让用户输入用户名密码
    认证成功后显示欢迎信息
    输错三次后退出程序
    
    升级需求:
    可以支持多个用户登录 (提示,通过列表存多个账户信息)
    用户3次认证失败后,退出程序,再次启动程序尝试登录时,还是锁定状态(提示:需把用户锁定的状态存到文件里)
    '''

    (1)自己第一次交的作业

    ----------------------------lockstate.txt------------------------------
    
    ['aaa', 'b']
    
    -----------------------------userinfo.txt------------------------------
    
    [('alex', '123'), ('abc', 'aaa'), ('oldboy', '2a2')]
    
    -----------------------------登陆程序.py-------------------------------
    
    f=open("userinfo","r",encoding="utf8")
    userinfo=eval(f.read())
    f.close()
    flag=0
    
    t=open("lockstate","r",encoding="utf8")
    lockuser=eval(t.read())
    t.close()
    
    for i in range(3):
        username=input("请输入用户名:")
        password=input("请输入密码:")
        if username in lockuser:
            print("this account is locked")
            break
        else:
            for k in userinfo:
                if username==k[0] and password==k[1]:
                    flag=1
                    break
            if flag:
                print("欢迎%s回来!" % username)
                break
            else:
                if i <2:
                    print("invalid username or password")
                if i == 2:
                    lockuser.append(username)
                    m=open("lockstate","w",encoding="utf8")
                    m.write(str(lockuser))
                    m.close()
                    print("Your account is locked")
                    break
    View Code

      

      

  • 相关阅读:
    Spring 框架学些(二)Spring AOP
    Spring框架学习(一)
    java spring框架的HelloWord
    Windows下查看进程执行参数
    js的code标签显示插件
    初接触hbase数据库
    gpg加密使用
    .net core全球化配置、使用
    CSS添加本地字体
    2011年NOIP普及组复赛题解
  • 原文地址:https://www.cnblogs.com/sq5288/p/9039339.html
Copyright © 2011-2022 走看看