第一章 Python基础知识概览

来源:互联网 发布:黄梅戏软件 编辑:程序博客网 时间:2024/05/20 11:35

1.1 Python基础知识

1.1.1 Python 对象类型

    Python中一切都是对象,Python内置对象有:

  • 布尔型:True、False;

  • 空型:None;

  • 数字:12、3+4j(复数,j表示);

  • 字符串:'sfc'、" I'm Ethan ";

  • 列表: ['a', 1 , ['cd', 235]];

  • 元组:(2, -5, 8);

  • 字典:{1: 'dd', 'key2': 253, '123': value3};

  • 集合:{'a', 'b', 'c'}、set('abc');

  • 文件:f = open('data.txt', 'r');

  • 编程单元类型:函数(def)、类(class);


1.1.2 Python变量

  • Python中允许多个变量指向同一个值

    例如:x =3    y=x    则  id(x) 和 id(y) 指向同一个内存地址,但注意当其中一个变量修改内容后,则其内存地址会变化,指向的是新变量值得内存地址,而不会影响另一个变量的内容和内存地址

  • 不能使用内置关键字作为变量名,导入keyword模块,使用print(keyword.kwlist)可打印出所有的Python关键字,如

import keywordprint(keyword.kwlist)
  • 通过print(dir(__builtins__))可查看所有内置模块、类型和函数,如

print(dir(__builtins__))


1.1.3 数字

    主要谈谈Python中的复数表示,

  • 例:a = 3+4j,注意用j/J表示虚部

  • a.real ,查看实部

  • a.imag,查看虚部

  • a.conjugate(),返回共轭复数


1.1.4 字符串

  • 字符串连接(或合并),例如:a = 'abc' + '123'

  • 其他类型对象格式化成字符串,注意‘%’

##### 实例1a = 3.6674print('%7.3f' %a)  #输出:'   3.667'##### 实例2print("%d:%c" %(65,65))  #输出:65:A
  • 字符串界定符前面加r或R,表示原始字符串,即特殊字符不会被转义,但最后一个字符不能是\字符;这种主要用于表示正则表达式、文件路径、url;


1.1.5 运算符和表达式

  • x/y 除法(真除法),x//y 求整商;

  • x**y 幂运算,

  • x in y ,x not in y 成员测试运算符

  • x is y,x is not y 对象实体同一性测试(地址)

  • @ 矩阵乘法

  • *运算符用于列表、字符串、元组表示对内容进行重复并返回重复后的新对象,如

### 实例1print('a'*5)    #输出:aaaaaprint([1, 2, 3]*3)    #输出:[1, 2, 3, 1, 2, 3, 1, 2, 3]print((1, 2, 3)*3)    #输出:(1, 2, 3, 1, 2, 3, 1, 2, 3)### 实例2a = [1, 2, 3]print(id(a), '---', id(a*3))#输出:1574886193352 --- 1574886192840  ,说明重复后的列表和原列表存在于不同内存地址,互不影响
  • +运算符用于列表、元组、字符串

print([1, 'a', ['12', 32]] + ['adf', 'dsf'])    #输出:[1, 'a', ['12', 32], 'adf', 'dsf']print((1, 'a', ('12', 32)) + ('adf', 'dsf'))    #输出:(1, 'a', ('12', 32), 'adf', 'dsf')print('df' + '12')    #输出:df12
  • ‘,’逗号不是运算符,只是分隔符

print('a' in 'b', 'a')    #输出:False aprint('a' in ('b', 'a'))    #输出:True


1.1.6 模块导入和使用

  • import 模块名 [ as 别名],以“模块名.对象名”的方式访问,如

import mathprint(math.sin(0.5))### 带别名import math as math_modprint(math_mod.sin(0.5))
  • form 模块名  import 对象名 [ as 别名],以“对象名”的方式访问,如

from math import sinprint(sin(0.5))### 带别名from math import sin as funcprint(func(0.5))###  导入模块所有对象from math import *    #不推荐,一旦多个模块中有同名的对象,这种方式会导致混乱
  • 导入模块时,Python首先在当前目录中查找需要导入的模块文件,如找不到,则从sys模块的path变量指定的目录中查找,如仍未找到,则提示模块不存在

import sysprint(type(sys.path))   #输出:<class 'list'> 说明path变量是存放路径的列表对象sys.path.append('d:\\modelPath')    #可以通过append()方法向path变量中添加自定义文件夹以扩展搜索路径print(sys.path)


1.1.7  Python代码编写规范

  • 注释

    • 单行用    #

    • 多行用    '''...'''   或者  """...""",注意多行注释中不能与任何代码同行,即该多行应全为注释

1.1.8 Python文件名

  • py:Python源文件,由Python解释器负责解释执行;

  • pyc(重点):Python字节码文件,对于Python模块,第一次被导入时将被编译成字节码形式,并在以后再次导入时优先使用pyc文件,以提高模块的加载和运行速度,对于非模块文件,执行执行时并不生成.pyc文件,但可以使用py_compile模块的compile()函数进行编译以提高加载和运行速度;


1.1.9 Python脚本的__name__属性

  • 每个Python脚本在运行时都有一个__name__属性,如果脚本作为模块被导入,则其__name__属性的值被自动设置为模块名;如果脚本独立运行,则其__name__属性值别自动设置为“__main__”,如

### 脚本独立运行,在test.py脚本中,只有print(__name__)print(__name__)    #输出:__main__(自动设置为“__main__”)###  test.py作为模块被其他文件导入#test.py中:   print(__name__)#test1.py中: import test    #输出:test(模块名)
  • 利用__name__属性可用来控制Python程序的运行方式,具体来说,如果编写一个包含大量函数的模块,而不希望该模块用于直接运行,只允许作为模块导入运行,则可做如下处理,

###  test.py代码如下,if __name__ == '__main__':    print('please use me as a module!')else:    print('success!')#运行test.py,则输出的是第一条信息,###  test1.py代码如下,import test#运行test1.py,则输出的是第二条信息


1.1.10 编写自己的包

    包可以看作是包含大量Python程序模块的文件夹。在包的每个目录中都必须包含一个__init__.py的文件;__init__.py文件的主要用途是设置__all__变量以及执行初始化包所需的代码,其中__all__变量中定义的对象可以在使用“from ... import * ”时全部被正确导入

原创粉丝点击