客官python包安装错误来这里
https://www.lfd.uci.edu/~gohlke/pythonlibs/
加快下载来这里
https://pypi.douban.com/simple
官方文档: https://docs.python.org
简介
1.动态、解释型号语言;开源
2.一切皆对象(即底层均为用对象实现,如内建函数的底层其实是通过对象实现的)。
3.强制缩进
技巧:1.双击Tab键可弹出对象非私有方法,如对象.+Tab两次;2.dir(对象)、vars(对象):查看对象的所有方法;3.help(对象.方法):方法的作用。
python的安装
Linux安装
说明:我的Centos6.8自带的python版本是2.6,原生python不支持自动补全,所以再安装一个ipython,ipython的版本和原生的python版本有对应
在线安装ipython:
先安安装出错提示No package pip available,Error: Nothing to do.先安装装扩展源:yum -y install epel-release
ip软件管理器(类似yum): yum install python-pip
安装ipython : pip install ipython==1.2.1
查看是否成功安装ipython: pip list | grep ipython
windows安装
安装python解析器和IDE环境PyCharm(社区版是免费的,但只提供python环境,没有Django等框架,专业版收费提供很多框架)
https://www.python.org/downloads/windows/
https://www.jetbrains.com/pycharm/
这里的python采用python3(因为一些新特性只在python上有,接下来也用3,2.7是过渡版本,向后向前兼容但最新的3版本特性2会慢慢不支持,2.7版本将支持到2020年)
2.x和3.x的区别
2.x的除法就是取整,3正常四舍五入了
print "hello world"变成了print ("hello world")
raw_input变成了input
class B:变成了class B():
3用Unicode编码,默认支持中文了
3的range就是2里的xrange
操作文件,3按字符,2按字节
......
python 文件类型
.py源码 经编译==> .pyc字节码 .pyp优化字节码
用python编译代码(便编译的好处:1保护源码;2二进制文件执行更快):
import py_compile
py_compile.compile('.py')
变量
python的赋值均按引用传递
变量名由字母、数字(不能为首字符)、下划线组成,不能使用关键字
以下关键字不能声明为变量名 ['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']
id(变量)取得变量的地址
type(变量)取得变量的类型(类对象的类型为instance),type(类)取得类所在的路径
del 删除一个变量
特殊变量列表:sys.argv[n]
__name__ :当前文件直接执行时的值为main,被调用时的值为模块名
相等性比较
由于python所有类型均为引用类型,因此可以直接比较,没有所谓的装箱拆箱操作
"==" 比较值(适用于所有类型) "is"(全等于) 同时比较值和地址(适用于所有类型)
用户交互
name = input("please input your name:")
print("i am %s" % name)
作用域
python和传统的C C++ JAVA C#等静态语言不同,区别在于前者采用的是函数作用域,后者采用的是括号作用域
注释
# 单行注释
''' ''' 或""" """多行注释
运算符
算数运算
比较运算
逻辑运算
赋值运算
成员运算
成员测试:in,not in
身份运算
同一性测试:is.is not
位运算
按位反翻转:~
基本数据类型
1.按所占内存大小是否可变区分,不可变(开始指向的内存的值不能修改,元素个数也不变)
2.按是否是序列(有下标,如l=[a,b,c]的b下标是2)区分,序列支持索引和切片
序列的基本操作:
len() 求序列的长度 + 连接两个序列 * 重复序列元素 in 判断是否存在序列 max() 最大值 min() 最小值 cmp(x,y) 比较两个序列是否相等