美文网首页人工智能微刊python自学Python语言与信息数据获取和机器学习
人工智能 | 轻松学习Python(二)一 Python 基础知

人工智能 | 轻松学习Python(二)一 Python 基础知

作者: hi_dhl | 来源:发表于2017-12-26 22:30 被阅读16次
    Python 基础知识汇总

    刚刚开始写文章没有多久,文笔不是很好,这篇文章适合和我一样的Python初学者,自己在写总结的时候,写下的这篇文章,便于自己以后回顾,另外希望能够帮助到更多的人

    知识点

    知识点大纲

    Pyhton2x 和 Python3x的区别

    上一篇文章中,简单的给大家介绍了一下Pyhton2x 和 Python3x的发展史,今天大家总结一下语法上的区别,Python2.7兼容2x的语法和3x的语法

    • 脚本的解释程序
    • print "Hello Python" 变成了 print("Hello Python")
    • 在Python2x中1/2=0,在Python3x中1/2=0.5
    • raw_input 没了,变成了 input
    • class Foo:写法不能用了,只能class Foo(object)

    脚本的解释程序

    在linux的一些bash的脚本,需在开头一行指定脚本的解释程序
    例如在Shell的脚本解释器

    #!/bin/bash
    

    在Python中也是一样的道理,安装不同版本的Python,会安装在不同的目录一下,所以也需要告诉Python解释器,用什么版本的去执行

    #!/usr/bin python
    #!/usr/bin/env python3
    

    第一种方式告诉Python解释器去寻找/usr/bin下python
    而第二种方式从系统的PATH目录中查找

    print "Hello Python" 变成了 print("Hello Python")

    在Python2x 输出语句是

    print "Hello Python";
    print "left is sort you use Python";
    

    在Python3中输出语句变更为

    print("Hello Python");
    print("left is sort you use Python");
    

    1/2等于0.5?

    在Python2x 中 1/2 的结果是0

    Python3

    而在Python3x 中 1/2的结果是 0.5

    Python3

    raw_input 没了,变成了 input

    Python3 Python3

    class Foo:写法不能用了,只能class Foo(object)

    这个在后续文章中在给大家介绍

    注释

    Python中单行注释以#开头

    #这是单行注释
    

    多行注释用三个单引号(''')或者三个双引号(""")将注释括起来。

    '''
    这是多行注释一
    '''
    
    """
    这是多行注释二
    """
    

    缩进

    Python 不像 Java,在Java中用大括号和分号这样明显的代码块控制符号

    Java代码

    int x =3;
    if(x==3){
        System.out.println("x==3");
    }else{
        System.out.println("x!=3");
    }
    

    但是在Python中一切的代码块都是通过缩进来区分,缩进的空格数是可变的,但是同一个代码块的语句必须包含相同的缩进空格数。

    Python代码

    x=3;
    if x==3 :
        print("x==3\n");
    else :
        print("x!=3\n");
    

    与用户交互(IO)

    输入是Input,输出是Output,因此,我们把输入输出统称为Input/Output,或者简写为IO。

    1. print()

    用print()括号中加上字符串,向屏幕中输出指定字符串

    print ("my name is jack");
    

    print()函数可以接受多个字符串,用逗号隔开

    print("my name is jack","l love python")
    
    1. input() 和 input("name")

    现在你会输出字符串了,那么如果想从键盘输入字符串怎么办?Python提供了input(),可以让用户输入字符串,并存在一个变量里

    >>> name = input();
    jack
    

    当输入完jack之后,字符串jack会存放在name里,用print可以输出name

    print (name);
    

    但是运行程序的时候,没有任何提示告诉用户,这样显得不是很友好,所以可以在input()括号中加入字符串来提示用户

    >>> name = input("please tell  me you name: ");
    please tell  me you name: jack
    
    1. 字符串格式化输出

    在Python中,采用的格式化方式和C语言是一致的,用%实现,有几个%?占位符,后面就跟几个变量或者值,顺序要对应好。如果只有一个%?,括号可以省略

    常见的占位符

    占位符 说明
    %d 整数
    %f 浮点数
    %s 字符串
    %x 十六进制整数
    name = "jack";
    print("you name is name %s" % (name));
    language = "python"
    print("you name is name %s , i love %s" % (name,language));
    

    基本数据类型

    在Python中,能够直接处理的数据类型整数、浮点数、字符串、布尔值、空值

    整数

    Python的整数没有大小限制,而某些语言的整数根据其存储长度是有大小限制的,例如Java对32位整数的范围限制在-2147483648-2147483647。

    在Python中整除除法永远是精确的,计算结果是浮点数

    num = 10/2;
    print(num);
    
    Python3

    还有一种除法是//,称为地板除,两个整数的除法仍然是整数

    >>> num = 10//2;
    >>> print(num);
    
    Python3

    还有另外一种运算符 % 余数运算,可以得到两个整数相除的余数

    >>> num = 10%3;
    >>> print(num);
    
    Python3

    浮点数

    Python的浮点数也没有大小限制,但是超出一定范围就直接表示为inf(无限大)。

    运算符 /、//、%的使用方法和整数一样,这里不在举例子,有兴趣的可以去试一下

    字符串

    字符串是以单引号'或双引号"括起来的任意文本,比如'abc',"xyz"等等
    如果字符串内部既包含'又包含"怎么办?可以用转义字符\来标识,比如

    print('he\'s so cool');
    

    如果字符串里面有很多字符都需要转义,Python还允许用r''表示''内部的字符串默认不转义

    num = r'I\'m jack ,she\'s beautiful, i Love her';
    print(num);
    
    Python3

    如果字符串内部有很多换行,用\n写在一行里不好阅读,为了简化,Python允许用'''...'''的格式表示多行内容

    print('''
        I am jack
        she is beautiful
        i love her
        ''')
    

    这里只做简单的介绍,后续会详细介绍字符串

    布尔值

    用True和False标示布尔值,可以进行and、or和not运算。
    注意:True和False,首字母是大写

    bool = True and True;
    print(bool);
    
    bool = True or False;
    print(bool);
    
    bool = False or True;
    print(bool);
    

    空值

    空值是Python里一个特殊的值,用None表示

    变量

    在Python中变量不仅可以是数字,还可以是任意数据类型,这种变量本身类型不固定的语言称之为动态语言

    在Java中定义变量时必须指定变量类型,如果赋值的时候类型不匹配,就会报错,这种变量本身类型固定的语言称之为静态语言

    下面是java代码,运行会报错

    int age = 20;
    age = "jack";
    

    下面是Python的代码

    age = 20;
    age = "jack";
    

    对比一下就知道了,静态语言比动态语言更灵活

    下面重点来了,变量在内存中引用的问题,例如下面的代码输出结果是什么呢

    x= "Python";
    y= x;
    x = "Java";
    print(y)
    

    上面代码的输出结果是long,为什么会这样呢?我们来一行一行代码分析一下,到底发生了什么事

    执行 x= "Python",创建了字符串'Python'和变量x,并把x指向'Python'

    x= "Python"

    执行 y= x,创建了变量y,并把y指向x指向的字符串'Python'

    y= x

    执行 x = "Java",创建了字符串'Java',并把x的指向改为'Java',但y并没有更改

    x = "Java"

    总结

    1. 在Python2x中1/2=0,和在Python3x中1/2=0.5
    2. 在Python2x中输入用raw_input,和在Python3x中输入用input
    3. 在Python中无论整数还是浮点数没有大小限制
    4. 对变量赋值x =y是把变量x指向真正的对象,该对象是变量y所指向的。随后对变量y的赋值不影响变量x的指向

    参考源码

    do_op.py

    相关文章

      网友评论

        本文标题:人工智能 | 轻松学习Python(二)一 Python 基础知

        本文链接:https://www.haomeiwen.com/subject/luzegxtx.html