zoukankan      html  css  js  c++  java
  • python_day1

    一、编程与编程语言

          1、编程的目的?

              计算机的发展就是解放人力,机器是死的,所以人必须找到一种能够被机器识别的表达方式从而把自己的思想按照这个表达方式传递给机器,完成机器可以自发的工作。

          2、什么是编程语言?

              上面说的表达方式指的就是编程语言(关键字【if  while for and or】------>> 语法 -------->> 编程)

          3、什么是编程

              按照某种编程语言的语言风格写程序,程序在未执行前就是一堆普通文件。

      二、编程语言的分类

           1、机器语言:

               直接用二进制编程,直接操作硬件

               优点:执行效率快

               缺点:学习难度大,开发效率低

          2、汇编语言:

                用一些英文标签来代替一串特定的意义的二进制,还是直接操作硬件

                优点:执行效率快,不如机器语言

                缺点:学习难度大,开发效率低

            3、高级语言:

                 编译型:相当于百度翻译,翻译一次,拿着该翻译的结果去执行(eg:C语言要用gcc编译成一个二进制的可执行文件来运行)。调试麻烦

                    优点:执行效率高

                    缺点:开发效率低

                解释型:相当于同声传译,一边解释一边执行。调试简单,开发效率高,执行速度慢。(python)

                    优点:开发效率高

                    缺点:执行效率低

            4、三种语言比较

                  执行效率:从高到底

                  开发效率:从低到高

            学习难度:从难到易

    三、运行python代码的两种方式

          1、文件的方式

               python /tmp/test.py

          2、在python的交互式环境

    lvxingguodeMacBook-Pro:~ root# python3
    Python 3.6.2 (v3.6.2:5fd33b5926, Jul 16 2017, 20:11:06)
    [GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
    Type "help", "copyright", "credits" or "license" for more information.
    >>>
    >>>
    >>>
    >>> print("holle world")
    holle world
    >>>
    View Code

    四、变量

          什么是变量?

          变指的是“变化”,量指的反映某种状态

          如何定义变量?     

    name = 'xglv'
    password = 'xglv_123'
    View Code

          变量名的命名规则?

    #1. 变量名只能是 字母、数字或下划线的任意组合
    #2. 变量名的第一个字符不能是数字
    #3. 关键字不能声明为变量名['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']
    View Code

          定义的方式:

           1、驼峰式

               AgeXingguolv = 18

           2、下划线

              age_xingguolv = 18

           常量

           python里用全部大小的字母表示一个常量(eg:AGE_XINGGUOLV)但是python并没有规定定义的常量不能更改,知识人们统一预定的一中规范

    五、执行过程

          python3 /tmp/test.py

          1、先启动python3 

          2、把/tmp/test.py文件从硬盘读到内存

          3、解释执行文件内容(识别python语法)

    七、引用计数+垃圾回收机制    

    x = 'aaa'   #'aaa'这个值的引用计数为1
    y = x   #'aaa'这个值的引用计数为2
    pyton会定期启动垃圾回收线程。回收引用计数为零的数据。
    
    del x (解除x的绑定,并不是删除x变量的数据,删除数据是python解释器的任务)
    View Code

    八、产出一个变量的三要素

    name = 'xglv'
    #变量值:用来表示状态。用变量名取变量值
    print(name)
    #变量值的类型:表示不同的状态应该用不同类型的值去表示(数字、字符串等)
    print(type(name))
    #变量值的id号:
    print(id(name))
    >>> name1 = 'xglv'
    >>> name2 = 'xglv'
    >>> print(name1,type(name1),id(name1))
    xglv <class 'str'> 4339570872
    >>>
    >>>>>> name2 = 'xglv'
    >>> print(name2,type(name2),id(name2))
    xglv <class 'str'> 4339570872
    
    
    >>> name1 = 'xingguolv_for 123'
    >>> name2 = 'xingguolv_for 123'
    >>>
    >>> print(name1,type(name1),id(name1))
    xingguolv_for 123 <class 'str'> 4339592696
    >>> print(name2,type(name2),id(name2))
    xingguolv_for 123 <class 'str'> 4339592768
    
    #此时name1和name2 的id值不一样了,因为python不会对数据量比较小的#值重复开辟内存空间,而使用同一个表示。
    #注意两个符号
    #判断值是否相等:==
     #判断id是否相等:is
    eg:
    >>>
    >>> name1 = 'xingguolv_for 123'
    >>> name2 = 'xingguolv_for 123'
    >>>
    >>> name1 == name2
    True
    >>> name1 is name2
    False
    >>>
    View Code

    九、程序与用户交互

    >>>
    >>> name = input("please input name: ")
    please input name: xglv
    >>> name
    'xglv'
    >>> type(name)
    <class 'str'>
    >>> id(name)
    4339571096
    >>>
    >>>
    >>> age  = input("please input age: ")
    please input age: 18
    >>> type(age)
    <class 'str'>
    >>>
    #input 默认会把输入的内容都存成字符串类型
    View Code

    注:注释

    # 单行注释
    
    ''' '''' 或 """ """ 都行注释
    View Code

    文件头

    #!/usr/bin/evn python3
    # -*- coding:utf8 -*-
    View Code

    十、数据类型

    #!/usr/bin/env python3
    # -*- coding:utf8 -*-
    
    #数据类型
    
    """
    整型
    状态:等级,身份证号,年龄
    """
    level = 10 #level = int(10)
    print(type(level))
    ## <class 'int'>
    
    """
    浮点型
    状态:薪资,身高,体重
    """
    
    salary = 3000.3 # salary = float(30000.3)
    print(type(salary))
    #<class 'float'>
    
    """
    字符串:在引号(单引号、双引号,三引号)里定义的一堆字符
    状态:描述性的内容:比如名字,性别,国籍
    """
    
    gender = 'male'  #gender = str('male')
    print(type(gender))
    #<class 'str'>
    
    info = "my name is xglv i'm a student;"
    
    msg = """
    lll
    xxx
    ggg
    """
    print(msg)
    # lll
    # xxx
    # ggg
    
    x = 1
    y = 2.1
    res = x+y
    print(res)
    #3.1
    
    #字符串只能和字符串之间之间 + 或 *
    info1 = 'holle '
    info2 = 'word'
    res = info1 + info2
    print(res)
    #holle word
    #字符串+ * 之间拼接的效率低,因为它会在内存中开辟一块新的内存空间
    
    info = '=' * 10
    print(info)
    #==========
    
    """
    列表:在[]内,用逗号分隔开,存放多个任意类型的元素
    状态:有序存放多个值
    """
    
    info = ['egon',18,'male',['jinhui','finance',50]] #info = list(['egon',18,'male',['jinhui','finance',50]])
    print(info[0])
    #egon
    print(info[3][0])
    #jinhui
    
    """
    字典类型:定义在花括号内,用逗号分隔key:value,value可以是任意类型,但是key必须是不可变类型
    状态:存放多个值
    """
    info = {
        'name':'egon',
        'age':18,'sex':'male',
        'company':['jinhui','finance',50]
    }
    
    print(info,type(info),id(info))
    #{'name': 'egon', 'age': 18, 'sex': 'male', 'company': ['jinhui', 'finance', 50]} <class 'dict'> 4303182152
    print(info['name'])
    #egon
    print(info['company'][0])
    #jinhui
    
    """
    布尔:Ture,False
    状态:成立,不成立,用来做逻辑运算 ---->  判断
    """
    print(type(True))
    #<class 'bool'>
    a = 1
    print(a < 2)
    #True
    View Code

    注:可变类型与不可变类型

    #1、可变类型:在id不变的情况下value可变,则称为可变类型,如列表,字典
    a = [1,2,3]
    print(a,id(a))
    #[1, 2, 3] 4330911304
    a.append(4)
    print(a,id(a))
    #[1, 2, 3, 4] 4330911304
    
    #2、不可变类型: value -但改变,id也改变,则称为不可变类型,如整型,浮点型,字符串,布尔值
    a = 1
    print(a,id(a))
    #1 4297636896
    a = 2
    print(a,id(a))
    #1 4297636896
    View Code

    十一、格式化输出

    name = input('name>>: ')
    age = int(input('age>>: '))
    print("name is [%s] , age is [%s]" %(name,age))
    # name>>: xglv
    # age>>: 18
    # name is [xglv] , age is [18]
    print("name is [%s] , age is [%d]" %(name,age))
    # name>>: xglv
    # age>>: 18
    # name is [xglv] , age is [18]
    print("name is %s" %"xglv")
    #name is xglv
    # %s 接收的类型既可以接收字符串又可以接收数字,而 %d 只可以接收数字
    
    name = input('name>>: ')
    age = int(input('age>>: '))
    msg ='''
    ------ info of %s --------
     Name : %s
     age : %s
    -----------end -----------
    
    ''' %(name,name,age)
    
    print(msg)
    
    # ------ info of xglv --------
    #  Name : xglv
    #  age : 18
    # -----------end -----------
    View Code

    十二、基本运算符

    算数运算

        以下假设变量:a=10,b=20

    比较运算

        以下假设变量:a=10,b=20

     

     

        赋值运算

        以下假设变量:a=10,b=20

    #赋值
    a = 1
    b = 2
    #链式赋值
    a = b = 3
    print(a,b)
    #3 3
    #交叉赋值
    m = 1
    n = 2
    m,n = n,m
    print(m,n)
    #2 1
    m = 1
    n = 2
    m,n = n,m+n
    print(m,n)
    #2 3
    #解压
    l = [1,2,3,4]
    a,b,c,d = l
    print(a,b,c,d)
    #1 2 3 4
    a,_,__,b = l
    print(a,b)
    #1 4
    a,*_,b = l
    print(a,b)
    #1 4
    
    #赋值运算符
    level = 1
    level+=1
    print(level)
    #2
    level*=2
    print(level)
    #4
    level/=2
    print(level)
    #2.0
    View Code

        逻辑运算

    >>> True or Flase and False
    True
    >>> (True or Flase) and False
    False
    #执行顺序是从左到右在判断到结果后就不在执行
    
    #not只对紧挨着的条件取反
    View Code

        身份运算   

       is 比较的是id

       == 比较的是值

    十三、流程控制之if判断

    #if判断
    age = 19
    success = True
    is_pretty = True
    
    if age > 18 and age < 22 and is_pretty:
        if success:
            print("表白成功")
        else:
            print("去他妈的爱情")
    else:
        print("阿姨好")
    
    
    score = input(">>: ")
    #>=90:优秀
    #>=80 < 90 :良好
    #>=60 < 80 :合格
    #<60:滚犊子
    if score.isdigit():
        score = int(score)  # int只能把纯数字的字符串转换成int类型
    else:
        print("input is error")
        exit(1)
    
    if score >= 90:
        print("优秀")
    elif score >= 80:
        print("良好")
    elif score >= 60:
        print("合格")
    else:
        print("滚犊子")
    
    #只要条件满足就执行,并不在执行后面的代码 elif也是
    View Code

    十四、流程控制之while循环

    #条件循环
    """
    while 条件:
        代码1
        代码2
        代码3
    """
    count = 0
    while count <= 10:
        print(count)
        count+=1
    
    #while + break
    count = 0
    while count <= 10:
        if count == 7 or count == 9:
            break
        print(count)
        count+=1
    
    #while + coun
    count = 0
    while count <= 10:
        if count == 7 or count == 9:
            count+=1
            continue
        print(count)
        count+=1
    
    #嵌套循环
    count = 0
    
    while True:
        if count > 3:
            print('too many tries')
            break
        name = input("name>>: ")
        password = input("password>>: ")
        if name == "xglv" and password == '123':
            print("login successful")
            break
        else:
            print('user and password err')
        count+=1
    
    count = 0
    while count < 3:
        name = input("name>>: ")
        password = input("password>>: ")
        if name == "xglv" and password == '123':
            print("login successful")
            break
        else:
            print('user and password err')
        count+=1
    
    
    count = 0
    tag = True
    while tag: #while Ture:
        if count > 3:
            print("too many tries")
            break
        name = input("name>>: ")
        password = input("password>>: ")
        if name == "xglv" and password == "123":
            print("login successful")
            while tag:
                cmd = input("cmd: ")
                if cmd == "q":
                    #break
                    tag = False
                print("run %s" %cmd)
            #break
        else:
            print("user and password is err")
        count+=1
    
    #tag 为标志位法退出循环
    
    #while + else
    count = 0
    while count < 5:
        print(count)
        count+=1
    else:
        print("当while循环在运行过程中没有被break打断,则执行我")
    View Code


  • 相关阅读:
    thrift java first demo
    找工作的一些感悟——前端小菜的成长
    常见标签的默认属性值及相互作用——关于CSS reset的思考
    CSS清浮动处理(Clear与BFC)
    简单JavaScript模版引擎优化
    最简单的JavaScript模板引擎
    JavaScript正则表达式下——相关方法
    JavaScript 正则表达式上——基本语法
    node.js调试
    node.js module初步理解
  • 原文地址:https://www.cnblogs.com/xingguolv/p/7966300.html
Copyright © 2011-2022 走看看