Python概述
Python创始人是吉多.范罗苏姆。在1989年万圣节期间为打发时间而开发的。
目前Python在TIOBE排行榜第五位置
Python可以应用在众多的领域中:
数据分析、组建集成、网络服务、图像处理、数值计算和科学计算等领域。
Python应用的知名公司有:
Youtube、Dropbox、BT、知乎、豆瓣、谷歌、百度、腾讯、
汽车之家等。
Python可以做的工作有:
自动化运维、自动化测试、大数据分析、爬虫、Web等
Python与其他语言的异同:
C语言:代码编译===》机器码===》执行
其他语言:代码编译===》字节码===》机器码===》执行
python也是这样,在字节码===》机器码的过程会生成一个.pyc的文件,这个文件就是机器码的文件。
注视:python在执行过程中会先找有没有.pyc文件,然后与原py文件进行对比,如果没有变化,则直接执行.pyc文件;如果.py文件较新,则重新生产.pyc文件。然后执行。
Python环境
推荐使用2.7版本的
Windows:
1:下载安装包
https://www.python.org/ftp/python/2.7.10/python-2.7.10.msi
或者直接去官网下载你想要的版:https://www.python.org/downloads/
2:直接安装
默认的安装路径是:C:\Python27
3:配置环境变量
【右键计算机】--》【属性】--》【高级系统设置】--》【高级】--》【环境变量】--》【在第二个内容框中找到 变量名为Path 的一行,双击】 --> 【Python安装目录追加到变值值中,用 ; 分割】
例如:;C:\Python27 在最后面添加即可。
Linux:
1:linux都自带Python环境。推荐使用ubuntu。因为其自带比较新的版本。
Python入门
一:你好世界
创建hello.py
二:python程序的执行过程
三:编码格式
四:注释的方式
五:传参
上面已经说了,Python有大量的模块,从而使得开发很简洁,类库主要包含三种:
1:Python内部提供的模块
2:业内开源的模块
3:程序员自己开发的模块
Python内部提供一个sys的模块,其中的sys.argv就是用来捕获执行python脚本时传入的参数。
六:变量
1:声明变量
变量的名:name 变量的值:"曹小贱"
变量的作用:昵称,代指内存里某个地址中保存的内容。
变量定义的规则:
1:变量名只能是字母、数字或下划线的任意组合。
2:变量名不能以数字开头。
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']
2:变量的赋值
七:输入
八:流程控制和缩进
需求一:用户登录验证
需求二:根据用户输入内容输出其权限
注释:外层变量可以被内存变量调用,反之不行。
九:Python的基本类型
1:数字
int(整型)
在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647
在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807
long(长整型)
跟C语言不同,Python的长整数没有指定位宽,即:Python没有限制长整数数值的大小,但实际上由于机器内存有限,我们使用的长整数数值不可能无限大。
注意,自从Python2.2起,如果整数发生溢出,Python会自动将整数数据转换为长整数,所以如今在长整数数据后面不加字母L也不会导致严重后果了。
float(浮点型)
浮点数用来处理实数,即带有小数的数字。
complex(复数)
复数由实数部分和虚数部分组成,一般形式为x+yj,其中的x是复数的实数部分,y是复数的虚数部分,这里的x和y都是实数。
注:Python中存在小数字池:-5 ~ 257
2:布尔值(bool)
True False
真或假
1 或0
3:字符串
"Hello World"
万恶的字符串拼接:
python中的字符串在C语言中体现为是一个字符数组,每次创建字符串时候需要在内存中开辟一块连续的空,并且一旦需要修改字符串的话,就需要再次开辟空间,万恶的+号每出现一次就会在内从中重新开辟一块空间。
字符串格式化
>>> name = "曹小贱"
>>> print "i am %s " % name
i am 曹小贱
注释:字符串是%s;整数%d;浮点数%f
字符串的常用功能:
移除空白
strip
lstrip
rstrip
>>> name = " alex "
>>> import tab
>>> print name.strip()
alex
>>> print name.lstrip()
alex
>>> print name.rstrip()
alex
分割
>>> name = "a;b;c;d"
>>> name1 = name.split(';')
>>> name1
['a', 'b', 'c', 'd']
长度
>>> name
'a;b;c;d'
>>> len(name)
7
>>> name[len(name)-1]
'd'
索引
>>> name
'a;b;c;d'
>>> name[1]
';'
>>> name[2]
'b'
切片
>>> name = "alexd"
>>> name[0]
'a'
>>> name[0]
'a'
>>> name[1:2]
'l'
>>> name[1:4]
'lex'
>>> name[3:4]
'x'
>>> name[-3:]
'exd'
>>> name[0:]
'alexd'
4:列表
创建(第一种方式最终要调用第二种方式)
>>> name = ['ccc','ggg','ttt']
>>> name
['ccc', 'ggg', 'ttt']
>>> name = list(['ccc','ggg','ttt'])
>>> name
['ccc', 'ggg', 'ttt']
索引
>>> name[1]
'ggg'
切片
>>> name[1:3]
['ggg', 'ttt']
追加
>>> name.append('sss')
>>> name
['ccc', 'ggg', 'ttt', 'sss']
删除
>>> name
['ccc', 'ggg', 'ttt', 'sss']
>>> del name[2]
>>> name
['ccc', 'ggg', 'sss']
长度
>>> name
['ccc', 'ggg', 'sss']
>>> len(name)
3
循环
#!/usr/bin/env python
#coding:utf-8
name = ['ccc','ggg','ttt']
for i in name:
if i == "ccc":
print "找到了"
break
包含
>>> name
['ccc', 'ggg', 'sss']
>>> 'ccc' in name
True
>>> 'cgt' in name
False
5:元组(tuple)
创建元组
>>> name = ('ccc','ggg','ttt')
>>> name
('ccc', 'ggg', 'ttt')
>>> name1 = tuple(('aaa','bbb','ccc'))
>>> name1
('aaa', 'bbb', 'ccc')
上面的name的方式最终还是要调用下面的方式。
索引
>>> name1
('aaa', 'bbb', 'ccc')
>>> name1[2]
'ccc'
切片
>>> name1
('aaa', 'bbb', 'ccc')
>>> name[1:2]
('ggg',)
解释:顾头不顾尾
循环
#!/usr/bin/env python
#coding:utf-8
name = ('aaa', 'bbb', 'ccc')
for i in name:
if i == "ccc":
print "找到了"
break
包含
>>> name1
('aaa', 'bbb', 'ccc')
>>> 'bbb' in name1
True
>>> 'abc' in name1
False
6:字典(无序)
创建字典
>>> menu = {'name':'cgt','age':24,'job':'IT'}
>>> menu
{'job': 'IT', 'age': 24, 'name': 'cgt'}
>>> menu1 = {'name':'cgt1','age':2424,'job':'IT'}
>>> menu1
{'job': 'IT', 'age': 2424, 'name': 'cgt1'}
索引
>>> menu
{'job': 'IT', 'age': 24, 'name': 'cgt'}
>>> menu[1] #字典是一种键值对的方式,不能使用下标来获取,通过键值。原因是它是无序的
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 1
>>> menu['name']
'cgt'
新增
>>> menu['salary']=400000
>>> menu
{'job': 'IT', 'salary': 400000, 'age': 24, 'name': 'cgt'} #从这里也可以体现出他的无序
修改
>>> menu['salary']=400000
>>> menu
{'job': 'IT', 'salary': 400000, 'age': 24, 'name': 'cgt'}
>>> menu['salary']=1 #可以直接重新定义变量的值,进行修改
>>> menu
{'job': 'IT', 'salary': 1, 'age': 24, 'name': 'cgt'}
删除
>>> menu
{'job': 'IT', 'salary': 1, 'age': 24, 'name': 'cgt'}
>>> del menu['salary']
>>> menu
{'job': 'IT', 'age': 24, 'name': 'cgt'}
#通过pop来删除键,它的不同之处是再删除的同时,显示出值
>>> menu
{'job': 'IT', 'age': 24, 'name': 'cgt'}
>>> menu.pop('name')
'cgt'
>>> menu
{'job': 'IT', 'age': 24}
#清除所有的键
>>> menu1
{'job': 'IT', 'age': 2424, 'name': 'cgt1'}
>>> menu1.clear()
>>> menu1
{}
循环
#!/usr/bin/env python
#coding:utf-8
menu = {
'name':'曹小贱',
'age':24,
'job':'IT'
}
#开始遍历循环
for key in menu:
print key,'对应的值',menu[key]
结果: #这里呈现的结果打印出来也是无序的
job 对应的值 IT
age 对应的值 24
name 对应的值 曹小贱
#####################################################
#!/usr/bin/env python
#coding:utf-8
menu = {
'name':'曹小贱',
'age':24,
'job':'IT'
}
#开始遍历循环
for key,value in menu.items():
print key,'对应的值',value
结果:
job 对应的值 IT
age 对应的值 24
name 对应的值 曹小贱
PS:循环,range,continue 和 break
range在什么范围内
continue跳出本次循环,继续执行下次循环
break终止循环
长度
len(menu)
十:运算
运算符优先级
运算符 | 描述 |
---|---|
** | 指数(最高优先级) |
~+- | 按位翻转,一元加号和减号(最后两个方法名为:+@和-@) |
*/%// | 乘除取模取整除 |
+ - | 加法减法 |
左移右移 | |
& | 位 'AND' |
^ | | 位运算 |
<= <> >=s | 比较运算符 |
<> == != | 等于运算符 |
= %= /= //= -= += *= **= | 赋值运算符 |
is is not | 身份运算符 |
in not in | 成员运算符 |
not or and | 逻辑运算符 |
十一:对文件的基本操作
file = file("文件路径名称","模式")
f = file('文件名','模式') 打开一个文件, f = open('文件名','模式') 打开一个文件, f.read():是以字符串的形式读取出来 f.readline():是以列表的形式 f.name获取文件的名字 f.realines():全部一次性读取到内存中出来 f.xrealines():全部读取到内存中出来,但是一行一行的读取 f.flush():将内存中的内容刷到硬盘文件中 f.close():关闭文件. f.write():写入 f.seek(0): 回到文件开头 f.mode:文件打开的模式,读写等 f.truncate():加数字 截取多少字节
文件打开的模式
w 以写方式打开,
a 以追加模式打开 (从 EOF 开始, 必要时创建新文件)
r+ 以读写模式打开(一般使用r+)
w+ 以读写模式打开 (参见 w )
a+ 以读写模式打开 (参见 a )
rb 以二进制读模式打开
wb 以二进制写模式打开 (参见 w )
ab 以二进制追加模式打开 (参见 a )
rb+ 以二进制读写模式打开 (参见 r+ )
wb+ 以二进制读写模式打开 (参见 w+ )
ab+ 以二进制读写模式打开 (参见 a+ )