• Python开发第一篇


    一、Python简介

    python的创始人与现在的发展情况

    python的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。 

    查看最新编程语言排行榜,2018年2月份最新排行榜Python排名第四

    Python目前分类:

      • Cpython
            Python的官方版本,使用C语言实现,使用最为广泛,CPython实现会将源文件(py文件)转换成字节码文件(pyc文件),然后运行在Python虚拟机上。
      • Jyhton
            Python的Java实现,Jython会将Python代码动态编译成Java字节码,然后在JVM上运行。
      • IronPython
            Python的C#实现,IronPython将Python代码编译成C#字节码,然后在CLR上运行。(与Jython类似)
      • PyPy(特殊)
            Python实现的Python,将Python的字节码字节码再编译成机器码。
      • RubyPython、Brython ...

    我觉得可能是因为Python的前景好,所以各个语言都争相做python吧。。

    这些版本的python其实语法规则都是一样的,只不过是最终的代码执行方式不一样。Cpython是直接转化成C语言然后运行,

    而其他版本的python则是转换成对应语言的字节码,然后在运行底层语言,所以Cpython在速度上会快一些。

    但是别的版本的python对比Cpython也有其他优点,比如Jython支持调用Java的类库,这样就比Cpython扩展性好一些。

    Cpython(我们常说的Python)版本:

    Python2和Python3

    不同于别的语言,python2与python3版本差距有点大,python3对python2进行了修改,省去 了很多,添加很多。

    据说到2020年,python2将不会得到更新。

    Python的运行方式:

    执行helloworld.py后,将会启动 Python 的解释器,然后将 helloworld.py 编译成一个字节码对象 PyCodeObject。在 Python 的世界中,

    一切都是对象,函数也是对象,类型也是对象,类也是对象(类属于自定义的类型,在 Python 2.2 之前,int, dict 这些内置类型与类是存在不同的,

    在之后才统一起来,全部继承自 object),甚至连编译出来的字节码也是对象,.pyc 文件是字节码对象(PyCodeObject)在硬盘上的表现形式。

    在运行期间,编译结果也就是 PyCodeObject 对象,只会存在于内存中,而当这个模块的 Python 代码执行完后,就会将编译结果保存到了 pyc 文件中,

    这样下次就不用编译,直接加载到内存中。pyc 文件只是 PyCodeObject 对象在硬盘上的表现形式。这个 PyCodeObject 对象包含了 Python 源代码中的字符串,常量值,

    以及通过语法解析后编译生成的字节码指令。PyCodeObject 对象还会存储这些字节码指令与原始代码行号的对应关系,这样当出现异常时,就能指明位于哪一行的代码。

    二、Python基础知识

    Python的变量:

    Python在声明变量时不需要指定变量类型。。因为Python是动态类型 的语言

    解释器在执行代码时会根据变量的值的类型来决定变量的类型

    比如声明一个name变量,值时sunqi

    name = 'sunqi'  那么此时name的类型就是str类型

    在上边的例子中我们继续定义一个变量,中文版的吧

    mingzi = 'sunqi',Python的变量都是引用,只是在内存中开辟了一个空间给字符串“sunqi”,然后name和mingzi两个变量分别指向那个地址。

    这个可以用id()方法查看。name和mingzi的地址是一样的都是 字符串“sunqi”在内存中的地址

    变量定义的规则

      • 变量名只能是 字母、数字或下划线的任意组合
      • 变量名的第一个字符不能是数字
      • 以下关键字不能声明为变量名
        ['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']

    Python的缩进规范

    python语言的代码比较简洁,可读性更强一些,。去掉了大括号和分号,但是更强调缩进。

    比如让你写一个if语句的时候C语言是这么写的:

    if (x==1){
    printf("x等于1");
    }
    else{
    printf("x不等于1");
    }
    

     我写的也不标准,python对比C语言来说在代码编写上就是要简单一下。

    if x == 1 :
        print("x等于1")
    else:
        print("x不等于1")
    

    对比一下是不是简单了不少

    Python正是利用不同的缩进来进行代码块的区分,一般标准是4个空格

    Python简单使用

    1、简单登录验证(if 语句的使用)

    user = input('请输入用户名:')
    passwd = input('请输入密码:')
    if user == 'root' and passwd == '123456':
        print('登陆成功')
    else:
        print("登录失败")
    

    2、循环输出1,2,3,4,5,6,8,9,10

    '''
    循环输出1,2,3,4,5,6 ,8,9,10
    '''
    n = 1
    while n <11:
        if n == 7:
            n = n+1
        else:
            print(n)
            n+=1
    

    3、输出1-100的所有奇数

    '''
    输出1-100的所有奇数
    '''
    n = 1
    while n < 101:
        if n%2==1:
            print(n)
            n+=1
        else:
            n+=1
    

    4、输出1-2+3-4...+99-100结果

    '''
    输出1-2+3-4...+99-100
    '''
    n = 1
    sum = 0
    while n < 100:
        if n%2==1:
            sum = sum+n
            n+=1
        else:
            sum = sum-n
            n+=1
    print(sum)
    

    5、用户登陆(三次机会重试)

    '''
    输入用户名和密码
    累计输入错误达到3次
    不能登陆。
    退出系统
    '''
    count = 0
    while count<=3:
        user = input('请输入用户名:')
        passwd = input('请输入密码:')
        if user=='root' and passwd=='123456':
            print('登录成功')
            break
        else:
            count+=1
            print('输入错误%s'%count)
            if count==3:
                print('累计输入错误三次,强制退出系统!')
                exit()
    

    break和continue的区别

    break:终止循环,也就是退出循环,然后进行循环下边的语句

    continue:终止本次循环,进行下一次循环

  • 相关阅读:
    【ML-9-1】支持向量机--软硬间隔与支持向量机
    【ML-8】感知机算法-传统和对偶形式
    【ML-7】聚类算法--K-means和k-mediods/密度聚类/层次聚类
    【ML-7】聚类算法-实例代码
    【ML-6-2】集成学习-boosting(Adaboost和GBDT )
    【ML-6-1】集成学习-bagging(随机森林)
    【ML-5】决策树算法
    【ML-4】逻辑回归--用于分类
    【ML-3.1】梯度下降于牛顿法实例
    树状数组
  • 原文地址:https://www.cnblogs.com/SunQi-Tony/p/8638964.html
Copyright © 2020-2023  润新知