python 基础介绍

 一、python介绍

  Python 的创始人为Guido van Rossum。Guido为了打发圣诞节的无趣,于1989年发明,在荷兰国家数学和计算机科学研究所设计出来的(作为ABC 语言的一种继承),之所以起名Python,是因他是Monty Python的喜剧团体的爱好者。Python第一个公开发行版发行于1991年。现在,全世界差不多有600多种编程语言,但流行的编程语言也就那么20来种。如果听说过TIOBE排行榜,那就一定可以知道编程语言的大致流行程度。下图是2017年最新发布的编程语言排行榜 TOP20 榜单,可以很明显的看出python已经越来越得到开发人员的认可。
python 基础介绍

  上图中排名前五的语言中,C、C++、C#都是编译型语言,python与java则都是解释型语言,那么什么是编译型语言,什么是解释型语言?

  编译型语言:程序在执行之前需要一个专门的编译过程,把程序编译成为机器语言的文件,运行时不需要重新翻译,直接使用编译的结果就行了。

        优点是只需要编译一次,运行时不需要编译,所以程序执行效率高,缺点相对就很明显,跨平台性差,要针对不同平台生成不同的执行文件。

  解释型语言:程序不需要编译,程序在运行时才翻译成机器语言,每执行一次都要翻译一次。

        优点是有良好的平台兼容性,直接修改代码后快速部署就可以直接运行,缺点是由于每次运行都需要编译一次,性能上相对编译型语言自然就会差一些。

 

 二、python的优缺点

  python的优点:

  1、简单:Python是一种代表简单主义思想的语言。阅读一个良好的Python程序就感觉像是在读英语一样。它使你能够专注于解决问题而不是去搞明白语言本身。
  2、易学:Python极其容易上手,因为Python有极其简单的说明文档。
  3、速度快:Python 的底层是用 C 语言写的,很多标准库和第三方库也都是用 C 写的,运行速度非常快。
  4、免费、开源:Python是FLOSS(*/开放源码软件)之一。使用者可以*地发布这个软件的拷贝、阅读它的源代码、对它做改动、把它的一部分用于新的*软件中。FLOSS是基于一个团体分享知识的概念。
  5、高层语言:用Python语言编写程序的时候无需考虑诸如如何管理你的程序使用的内存一类的底层细节。
  6、可移植性:由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工作在不同平台上)。
  7、解释性:一个用编译性语言比如C或C++写的程序可以从源文件(即C或C++语言)转换到一个你的计算机使用的语言(二进制代码,即0和1)。这个过程通过编译器和不同的标记、选项完成。
  8、面向对象:Python既支持面向过程的编程也支持面向对象的编程。
  9、可扩展性:如果需要一段关键代码运行得更快或者希望某些算法不公开,可以部分程序用C或C++编写,然后在Python程序中使用它们。
  10、可嵌入性:可以把Python嵌入C/C++程序,从而向程序用户提供脚本功能。
  11、规范的代码:Python采用强制缩进的方式使得代码具有较好可读性。而Python语言写的程序不需要编译成二进制代码。

  python的缺点:

  1、单行语句和命令行输出问题:很多时候不能将程序连写成一行,如import sys;for i in sys.path:print i。而perl和awk就无此限制,可以较为方便的在shell下完成简单程序,不需要如Python一样,必须将程序写入一个.py文件。
  2、运行速度慢:这里是指与C和C++相比。
  3、代码无法加密。

三、python2.7 or python3.x

  其实对于python的版本选择,由于以前工作的时候做的工作都是和python2.7打交道所以一直使用的是python2.7;选择3.x的原因主要有几点,首先2.7版本于2020年将停止更新服务,再者3.x的兼容性、编码等原因。

四、安装python

  windows下安装python

    下载安装包:

      https://www.python.org/downloads/

    安装:

      默认安装路径:

      C:PYTHON35

    配置环境变量:

      1. 右键计算机;
      2. 属性;
      3. 高级系统设置;
      4. 高级;
      5. 环境变量;
      6. 在第二个框中找到Path双击;
      7. 将python安装目录追加到值中,用;分隔。

五、Hello World!

  新建一个hello.py 文件,并输入:

1
print("Hello World")

  在命令行中执行命令:

1
python hello.py

  即可看到系统返回:

       E:>python hello.py
       Hello World!

 六、变量

  1、变量的作用:    

    变量是只不过保留的内存位置用来存储值。这意味着,当创建一个变量,那么它在内存中保留一些空间。

    根据一个变量的数据类型,解释器分配内存,并决定如何可以被存储在所保留的内存中。因此,通过分配不同的数据类型的变量,你可以存储整数,小数或字符在这些变量中。

  2、变量赋值:

    Python的变量不必显式地声明保留的存储器空间。当分配一个值给一个变量的声明将自动发生。等号(=)来赋值给变量。

    操作数=操作符的左边是变量,操作数=操作符的右侧的名称在变量中存储的值。例如:

1
2
3
counter = 100         
miles   = 1000.0      
name    = "John"  

  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']

八、数据类型:

  1、数字

    int(整型):

      在32位机器上,整数的位数为32位,取值的范围为-2**31 ~2**31-1,即-2147483648~2147483648

      在64位机器上,整数的位数为64位,取值的范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807

    long(长整型):

      和C语言不通,python的长整数没有指定位宽,即:Python没有限制长整数数值的大小,但实际上由于机器内存有限,我们使用的长整数数值不可能无限大。

      在Python2.2开始,如果整数发生溢出,Python会自动将整数数据转换为长整数,所以如今在长整数数字后面不加字母L也不会导致严重后果。

    float(浮点型):

      浮点数用于处理实数,也就是带有小数的数字,占用8个字节(64位),其中52位表示低,11位表示指数,剩下的一位表示符号。

    complex(复数):

      复数是由实数部分和虚数部分组成,一般形式为x+yj,其中x是复数的实数部分,y是复数的虚数部分,这里的x和y都是实数。

  2、布尔值

    真或假  True  False

  3、字符串

    Python中最常用的数据类型,可以使用引号('或“)来创建字符串。    

1
2
var1 = 'Hello World'
var2 = "Python"

下面介绍一下字符串常用的几个功能:

    (1)移除空白

    strip()方法可以移除字符串中头尾指定的字符,当括号中为空的时候默认为空格,如下所示:

1
2
3
>>> s = '   abc'
>>> s.strip()
'abc'

    也可以在括号中指定一个值,如下所示:

1
2
3
>>> str = "0000000this is string example....wow!!!0000000";
>>> str.strip('0')
'this is string example....wow!!!'

    (2)分割

    split()方法通过制定分隔符,对字符串进行切片,如果参数num有置顶值,则只分隔num个字符串

    split()的语法:

1
str.split(str="", num=string.count(str)).

    实例:

1
2
3
4
5
6
7
>>> str = "Line1-abcdef Line2-abc Line4-abcd"
>>>
>>> str.split()
['Line1-abcdef''Line2-abc''Line4-abcd']
>>>
>>> str.split(' ',1)
['Line1-abcdef'' Line2-abc Line4-abcd']

    (3)长度

    len()可以输出字符串的长度

1
2
3
>>> str = "Line1-abcdef Line2-abc Line4-abcd"
>>> len(str)
35

    (4)索引

    索引获取特定偏移的元素:

    字符串中第一个元素的偏移为0,字符串中最后一个元素的偏移为-1,str[0]获取第一个元素,str[-2]获取倒数第二个元素。

1
2
3
>>> str='abcd'
>>> str[0]
'a'  >>> str[-1]  'd'  >>> str[-2]  'c'

    (5)切片

    通常上边界不包括在提取字符串内,如果没有指定值,则分片的边界默认为0和序列的长度

    str[1:3]获取从偏移为1的字符一直到偏移为3的字符串,不包括偏移为3的字符串 “tr”
    str[1:] 获取从偏移为1的字符一直到字符串的最后一个字符(包括最后一个字符) “tring”
    str[:3] 获取从偏移为0的字符一直到偏移为3的字符串,不包括偏移为3的字符串 “str”
    str[:-1] 获取从偏移为0的字符一直到最后一个字符(不包括最后一个字符串) “strin”
    str[:] 获取字符串从开始到结尾的所有元素 “string”
    str[-3:-1] 获取偏移为-3到偏移为-1的字符,不包括偏移为-1的字符 “in”
    str[-1:-3]和str[2:0] 获取的为空字符,系统不提示错误 “”
    分片的时候还可以增加一个步长,str[::2] 输出的结果为 “srn”

    (6)格式化输出 

    1. 打印字符串

1
2
>>> print ("His name is %s"%("Aviad"))
His name is Aviad

    2.打印整数

1
2
>>> print ("He is %d years old"%(25))
He is 25 years old

    3.打印浮点数

1
2
>>> print ("His height is %f m"%(1.83))
His height is 1.830000 m

    4.打印浮点数(指定保留小数点位数)

1
2
>>> print ("His height is %.2f m"%(1.83))
His height is 1.83 m

    5.指定占位符宽度

1
2
>>> print ("Name:%10s Age:%8d Height:%8.2f"%("Aviad",25,1.83))
Name: Aviad Age: 25 Height: 1.83

     6.指定占位符宽度(左对齐)

1
2
>>> print ("Name:%-10s Age:%-8d Height:%-8.2f"%("Aviad",25,1.83))
Name:Aviad Age:25 Height:1.83

    7.指定占位符(只能用0当占位符?)

1
2
>>> print ("Name:%-10s Age:%08d Height:%08.2f"%("Aviad",25,1.83))
Name:Aviad Age:00000025 Height:00001.83

    8.科学计数法 

1
2
>>> format(0.0015,'.2e')
'1.50e-03'