• day1


    变量:

    1.什么是变量?

      变量是用来临时存储数据的,它是保存在内存中的。通俗的来讲:变量就是用来存值的。

      

    1 name="alex li"
    2 name2=name
    3 name="JACK"
    4 print(name,name2)
    5 JACK alex li

      上面name是变量名,alex li 是变量值。大家看上面的代码,估计是一脸懵逼,没错,我也是,经常弄混。所以我们来画图分析一下:

      

      我们来讲解一下,上面所显示的图片是什么意思。首先,alex li ,JACK都是内存中开辟的2块内存空间,开始,name和name2的2个标签都是指向的是alex li,但是name又被重新赋值,所以其实是在内存中重新开辟了1块内存空间,再将name重新指向JACK,而原来的那块指向就不见了。(其实我觉得这个跟字符串不可变有关,你以为是覆盖了原来的,其实根本不是,就是重新开辟内存空间,再贴上标签)

      这里又涉及到Python里面的内存回收机制:

        当你在内存中不停的开辟空间的时候,我们是不需要像其他的语言考虑回收的问题的,因为Python本身就存在一个内存回收的机制。

        假设,我们把一栋大楼看成是一块内存,把我们为变量值开辟的空间,看成是大楼里面的一间间小房子,而变量名,就是房间里面的门牌号(其实相当于里面存的是变量内存的地址)。上面的alex li 相当于就是有2个门牌号指向这个房间,之后又将name指向JACK,就把指向alex li的门牌号给了JACK。那么内存回收机制就是一个楼管,看看,那个房间上面的没有门牌号,就将屋子里的东西清空。就相当于你都没有地址指向你,就没有人找你,当然就没有人用,楼管自然要将你清空了。

    变量的命名规则:

      1.要是描述性的语言(命名要有意义)

      2.数字,字母,下划线组成,不能包含关键字,空格,特殊字符

      3.不能以数字开头

      4.不能以中文命名

      5.最好不要用大写的命名(第一:Python里面的变量有种,一种是变量,一种是不变的变量;一般我们将不变的量用大写来区分)

      6.长的命名用_来区分,或者可以用驼峰式命名

    字符编码与二进制

    为什么会要有字符编码?

      首先计算机底层只认识 0101 二进制,因为底层电压,脉冲信号就只有高低高低的信号,高的就用1,低的就用0,电流,有就是1,没有就是0。那么问题来了,如何用我们人能识别的字母,符号来让计算机识别呢,这样就需要一个转换的过程,就是接下来的字符编码。

      128  64  32  16  8  4  2  1

      1   1     1   1          1       1       1        1

      这上面的8位的和2**8=255,有255个的数字。发明了ASCII表,外国人呢就用了127个,后面的就留给我们第三世界的国家。

      中国呢,由于中文博大精深,外国人不懂,所以留下的表格不够用,我么就自己弄了一张扩展表,你是找中文,就找ASCII表对应的中国用的地方,再通过映射,指向我们自己的表。

      ASCII表,英文占1bytes=8bit

        ------>gb2312 7000+  

           ------>gbk1.0 20000+ 95年

              ------>gb18030 27000+ 2000年

      国际标准组织就觉得不行,各个国家都搞自己的一套标准很乱,于是Unicode就诞生了,万国码,中文,英文都占2个字节,但是歪果仁就不干了,我用ASCII挺好的,就只占一个字节,干嘛要用你的Unicode啊?,于是Unicode的扩展集,可变长的,可伸缩的utf-8就出来了。英文还是以ASCII的形式,中文就占3bytes。

    1.asiic 8位表示一个字符 1字节(Bye) = 8字位 =8个二进制数,asiic码一般第一位都为0
      2,unicode(万国码)2个字节表示一个字符,改版后4个字节表示一个字符
      3,unicode升级版:UTF-8:最少用一个字节标识一个字符,UTF-16:最少用两个字节表示一个字符
        A:用一个字节标识一个字符
        欧洲文字:用两个字节表示一个字符
        亚洲文字:用三个字节表示一个字符

      4,gbk:国标,中国人自己使用,只包含英文与中文

        一个英文一个字节
        一个中文两个字节

    用户交互程序 

    用input与用户交互

    username=input("username:")
    password=input("password:")
    print(username,password)  

    注意:input接收的都是字符串类型

     if 条件:

      代码

    elif 条件:

      代码

    else:

      代码

    age_of_oldboy=56
    guess_age=int(input(">>>:"))
    if age_of_oldboy==guess_age:
        print("yes")
    elif age_of_oldboy<guess_age:
        print("think smaller")
    else:
        print("think bigger")

    这里面设计到,if.else的判断,python缩进

    python缩进都是python特带的,可以减少了代码,代码的格式很舒服

    格式化输出:

    msg="你好%s,我%d岁"%("小陈",18)

    name=input("name:")
    age=input("age:")
    job=input("job:")
    salary=input("salary:")
    msg='''
    -------info of '''+name+'''----
    name:'''+name+'''
    age:'''+age+'''
    job:'''+job+'''
    salary:'''+salary
    msg2='''
    ----------info of {_name}-------
    name:{_name}
    age={_age}
    job:{_job}
    salary:{_salary}
    '''.format(_name=name,_age=age,_job=job,_salary=salary)
    msg3='''
    ----------info of %s-------
    name:%s
    age=%s
    job:%s
    salary:%s
    '''%(name,name,age,job,salary)
    msg4='''
    ----------info of {0}-------
    name:{0}
    age:{1}
    job:{2}
    salary:{3}
    '''.format(name,age,job,salary)
    

      以上是字符串的几种格式化的字符串的方式,但是建议大家不要用字符串的拼接,其他几种都是在空间开辟一块内存就可以实现,但是字符串的拼接是开辟几块内存,再进行拼接的。上面的看不懂没有关系,后面我将继续更博。。。

       

  • 相关阅读:
    [LeetCode] Search for a Range
    [C++] extern关键字的作用
    [LeetCode] Sentence Similarity
    [LeetCode] Flood Fill
    [LeetCode] Can Place Flowers
    [LeetCode] Intersection of Two Linked Lists
    [LeetCode] My Calendar II
    [LeetCode] My Calendar I
    [LeetCode] Self Dividing Numbers
    [LeetCode] Range Sum Query
  • 原文地址:https://www.cnblogs.com/xiaojuanzi666/p/8709596.html
Copyright © 2020-2023  润新知