Python学习笔记1

Python学习 – 1


  1. Python优缺点:
    优点:简单易懂,优雅明确
    缺点:运行速度慢,代码不能加密。

  2. 安装Python
    Python是跨平台的。
    Python有两个版本,一个是2.x版,一个是3.x版。这两个版本是不兼容的。我们安装Python3.6版
    windows安装Python,地址64位安装程序32位安装程序.根据电脑的版本自行选择。
    下载完成后运行下载的exe安装包。
    Python学习笔记1
    安装完成后,打开cmd窗口,输入python
    Python学习笔记1
    看到上述提示说明安装成功。
    提示符 >>> 就表示我们已经在Python交互式环境中了,输入任何Python代码回车后就会得到执行结果。
    如果提示'Python'不是内部或外部命令...说明在安装时没有勾选添加到系统path的选项。需要手动把Python路径添加到系统path变量中,或者直接重新安装一遍。

    • 小结
      • 在Windows上运行Python时,先启动cmd窗口,在输入 Python 并回车进入Python交互式环境。
  3. Python解释器
    当我们编写Python代码时,我们得到的是包含Python代码的以 .py为拓展名的文本文件。要运行代码就需要Python解释器去执行.py文件。
    由于Python语言从规范到解释器都是开源的,所以理论上只要水平够高,任何人都可以编写Python解释器来执行Python代码。而且确实存在多种Python解释器
    - CPython
    官方版本的解释器,由C语言开发,是使用最广的Python解释器。
    - IPython
    是基于CPython之上的一个交互式解释器,也就是说IPython只是再交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的。CPython用 >>> 作为提示符,IPython用In [序号]:作为提示符
    - PyPy
    PyPy是另一个Python解释器,它的目标是执行速度,PyPy对Python代码进行动态编译(注意不是解释),所以可以显著提高Python代码的执行速度。绝大部分Python代码都可以在PyPy下运行,但是PyPy和CPython有一些是不同的,这就导致相同的Python代码在两种解释器下执行可能会有不同的结果。如果你的代码要放到PyPy下执行,就需要了解PyPy和CPython的不同点
    - Jython
    Jython是运行在Java平台上的Python解释器,可以直接把Python代码编译成Java字节码(.class)执行
    - IronPython
    IronPython和Jython类似,只不过IronPython是运行在微软.Net平台上的Python解释器,可以直接把Python代码编译成.Net的字节码。

    • 小结
      Python的解释器很多,但使用最广泛的还是CPython。如果要和Java或.Net平台交互,最好的办法不是用Jython或IronPython,而是通过网络调用来交互,确保各程序之间的独立性。
  4. 第一个Python程序
    • 在交互模式下输入任意数字的加减法,回车可直接得到运行结果
    • 如果想要打印某些东西就输入 比如print('hello,world'),回车就打印了。
    • 小结
      在Python交互模式下,可以直接输入代码然后回车执行并立刻得到结果。
      在命令行模式下,可以直接运行.py文件,然后输出该文件的最终执行结果。
      可以使用文本编辑器写Python程序(例如notepad++),然后保存为后缀为.py的文件,就可以用Python直接运行这个程序了。
  5. Python基础
    • 任何一种编程语言都有自己的一套语法,编译器或者解释器就是负责把符合语法的程序代码转换成CPU能够执行的机器码,然后执行。
    • Python的注释是以 # 开头的,其他每一行都是一个语句,当语句以:结尾时,缩进的语句视为代码块。
    • 如果字符串里面有很多字符都需要转义,就需要加很多\,为了简化 Python允许用r''表示''内部的字符串默认不转义。
    • 如果字符串内部有很多换行,用\n 写在一行里不好阅读。Python允许用'''...'''的格式表示多行内容。
    • Python用 None 表示空值。
    • Python变量使用大小写字母和数字的组合,且不能用数字开头。Python变量类型不固定,java定义变量必须制定类型。
    • Python常量一般用全大写字母表示,但Python没有任何机制保证常量的值不会被改变,所以全大写的常量只是人们的习惯。
    • Python的除法有两种。
      • 一种是/,这种除法不关心是不是整除,结果都是浮点数
      • 另一种是 //,这种除法的结果一定是整数。
    • Python整数没有大小限制,但是java对32位整数范围限制在 -2147483648 - 2147483647
    • Python的浮点数也没有大小限制,但是超出一定范围就直接表示为 inf (无限大)
    • Python的编码,对于单个字符的编码,Python提供了ord()函数获取字符的整数表示,chr()函数把编码转换为对应的字符:
      Python学习笔记1
    • Python对bytes类型的数据用带 b前缀的单引号或双引号表示 :x = b'ABC'
    • 通过encode()方法可以将 str转换为指定编码的bytes(函数中需要传入字符串格式的编码参数eg:'utf-8'):
      Python学习笔记1
      中文的编码超过ASCII码表的范围,所以含中文的字符无法使用 ASCII 编码,
    • bytes 转换为 str类型,就需要使用 decode()函数,同样需要传入字符串格式的编码参数:
      Python学习笔记1
      如果 bytes中只有一小部分无效的字节,可以传入 error='ignore' 忽略错误的字节:
      Python学习笔记1
    • len()函数可以计算 str中包含多少个字符,如果参数是bytes,那么 len()函数就计算字节数
    • Python中采用 %实现格式化 举例:
      >>> 'Hello, %s' % 'world'
      'Hello, world'
      >>> 'Hi, %s, you have $%d.' % ('Michael', 1000000)
      'Hi, Michael, you have $1000000.'
      %s 表示用字符串替换,%d表示用整数替换,%f表示用浮点数替换,%x用十六进制整数替换 有几个%?占位符,后面就传几个变量或者值,并且顺序要对应好。如果只有一个 %? 可以省略括号。 如果实在不确定用什么,那么就用 %s.它会把任何数据类型转换为字符串。
    • Python中的集合 list 定义语法 list = ['1','2']Python中的list要获取最后一个元素,除了使用长度-1外,还可以用-1做索引。也可以直接获取最后一个元素。以此类推可以获取倒数第二个,倒数第三个等等:list[-1].list可以追加元素到末尾:list.append('XX'),也可以死把元素插入到指定位置:list.insert(1,'XX'),要删除list末尾的元素,用pop() 方法:list.pop(),要删除指定位置的元素,用pop(i)方法,其中i是索引位置。要把某个元素替换成别的元素,可直接赋值给对应的索引位置。list里面的元素的数据类型也可以不同
    • Python中另一种有序列表叫元组:tuple,语法 t = ('1','2').tuple一旦初始化就不能修改。但是仍然可以获取里面的元素。因为tuple定义了元素之后就不能被修改。所以如果要定义长度为1的tuple时 不能这么定义:t=(1),而是要这样定义 t=(1,)
    • list和tuple是 Python内置的有序集合,一个可变一个不可变。根据需求来选择使用。
    • Python中的判断 语法: Python学习笔记1.
      elifelse if的缩写,if条件判断可以简写,比如:if x.这代表只要x为非零数值,非空字符串,非空集合等就判断为 True 否则为 False
      int()函数就是把字符串类型的数字转换为整数类型
    • Python的循环有两种语法。一种是 for…in循环,语法:
      Python学习笔记1
      Python提供了range() 函数,可以生成一个整数序列,再通过list()函数可以转换为list :
      Python学习笔记1
      另一种就是while循环,语法: Python学习笔记1
      break和跳出循环,continue可以跳过本次循环直接执行下次循环
    • Python中的dict (相当于java中的map)定义和取出语法:
      Python学习笔记1
      通过key来取值,如果key 不存在 dict就会报错,要避免key不存在的错误有两种办法,一是通过 in判断key是否存在:
      Thomas in d
      False
      二是通过dict提供的 get('key',[如果为none时替换的值])方法,如果key不存在,会返回None或者自己定义的值:
      Python学习笔记1
      删除一个key用pop(key)方法。
      set的语法:s = set(['1','2','3']).set是自动去除重复元素的。通过add(key)可以添加元素,remove(key)可以删除元素