Python知识总结
一、python简介
1、Python简介
Python是一种解释型、交互式、面向对象、是初学者的语言。
2、python特点
①易于学习
②易于阅读
③易于维护
④一个广泛的标准库
⑤互动模式
⑥便携式
⑦可扩展
⑧数据库
⑨GUI编程
⑩可扩展性
3、python支持tab补全功能:
>>> import readline,rlcompleter
>>> readline.parse_and_bind('tab: complete')
可以将上面两句写入一个py文件,直接import即可
ipython要想保存命令历史,必须安装sqlite-devel
4、python安装
#tar -jxvf Python-3.4.3.tar.bz2
#cd Python3.4.3
#./configure [--PRefix=/usr/local/python3]
#make && make install
注意:①python为系统依赖包,只能更新,不能删除,而且yum的版本必须 和python配套,升级python之后,必须给yum指定使用低版本的。相应操作如下:
#mv /usr/bin/python /usr/bin/python-2.6.bak 备份
#ln -s /usr/local/bin/python3.4 /usr/bin/python 创建软连接
#python –V 执行版本扫描
②修改yum配置文件,使其正常工作
#vim /usr/bin/yum
将其中的/usr/bin/python修改为/usr/bin/python2.6
③如果上述设置完毕还有报错,记得修改环境变量
#vim /etc/profile
5、python运行脚本
5.1、执行方式
#python
5.2、注意事项:
①在python3.0以上版本中,print变成了函数。所以必须使用print()格式执行,而以前版本不用括号
>>> print('hello man')
②在交互模式下使用python时注意:只能够输入python命令;在脚本中打印语句是必须的,而在交互脚本中可以自动打印表达式效果,不需要输入完成的打印语句
>>> print (2**10)
③在交互模式下,需要执行符合语句,需要加入":",代表语句没有执行完毕。而且必须用一个空行来代表结束符合语句
>>> for i in range(4):
... print(i)
...
0
1
2
3
4
④要保证缩进统一,否则出错
5.3、python脚本运行
①bash bang介绍
#!/usr/bin/python
#!/usr/bin/env python(建议使用这种格式,不容易出现python校本不能执行的问题)
二、python编程
1、变量的定义
1.1、变量的命名规则
①变量名只能用字母和下划线(_)开头
②变量名可以由字母、数字和下划线组成
③变量名大小写敏感,入lamp和LAMP不是同一个变量名
1.2、变量的赋值
①赋值操作
变量名 = 变量值
②给变量赋值字符串,需要用引号将字符串包含,否则报错
>>> name = wdd
Traceback (most recent call last):
File "
NameError: name 'wdd' is not defined
③增量赋值
>>> x = 1
>>> x = x+1
>>> x
2
④多重赋值
>>> x=y=z=2
>>> x
2
>>> y
2
>>> z
2
>>>
⑤"多元赋值"
>>> x,y,z=1,2,3
>>> x
1
>>> y
2
>>> z
3
2、数据类型
2.1、数值型
①整形
>>> 123+321
44
②浮点型
>>> 3.14*3
9.42
2.2、字符串型
①字符串定义
>>> name = 'wdd'
>>> name
'wdd'
>>> print(name)
wdd
>>> dir(name) #查看字符串支持的方法帮助
['__add__', '__class__', '__contains__', '__delattr__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__getslice__', '__gt__', '__hash__', '__init__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '_formatter_field_name_split', '_formatter_parser', 'capitalize', 'center', 'count', 'decode', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'index', 'isalnum', 'isalpha', 'isdigit', 'islower', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']
>>> name.replace('wdd','shuaige') #把wdd替换为shuaige
'shuaige'
>>> name.replace('w','cool') 把w替换为cool
'cooldd'
>>> help(name.replace) #查看具体的方法帮助
②字符串中单双引号
在字符串中单双引号一致,用于包含字符串
>>> persion = 'name','height'
>>> persion
('name', 'height')
>>> info="I'm a good man" #在双引号中嵌套单引号,不用转义符
>>> info
"I'm a good man"
>>> print(info)
I'm a good man
③在字符串中调用特殊字符
如果使用转义符\,将使特殊字符失去含义,系统中特殊的转义字符如下:
转义符 作用
\\ 保留反斜杠
\, 保留单引号
\b 退格
\n 换行
\t 水平制表符
\v 垂直制表符
>>> name = 'my\tname\tis\tjack'
>>> name #直接输出变量name,转义符无法识别
'my\tname\tis\tjack'
>>> print(name) #调用print函数,可以正常使用
my name is jack
④raw转义符抑制
在某些特定情况下可能不需要使用转义符,如在windows中使用系统文件
>>> path = 'c:\new\text.txt'
>>> print(path)
c:
ew ext.txt # 系统会把\n和\t识别为转义符,导致命令失败
>>> path = r'c:\new\text.txt'
>>> print(path) #使用raw字符串关闭转义机制
c:\new\text.txt
⑥三重引号编写多行字符串
>>> info = """my name is
... jack, I'm a honest
... man"""
>>> info #直接调用变量不能正确显示
"my name is\njack, I'm a honest\nman"
>>> print(info) #需要使用print函数显示
my name is
jack, I'm a honest
man
注意:不要和注释搞混,注释没有赋值
⑦、字符串的序列操作
变量中的值在索引中0保存第一个值,1保存第二个值
>>> name = 'jack'
>>> len(name)
4
>>> name[0]
'j'
>>> name[1]
'a'
>>> name[2]
'c'
>>> name[3]
'k'
索引也可以反向索引,就是-1代表最后一个值,-2代表倒数第二个值
>>> name[-1]
'k'
>>> name[-2]
'c'
字符串也支持分片操作,就是取出变量中的一部分内容
>>> name[1:3]
'ac' #取出变量中第一位到第三位结束(不包含第四位)的内容
>>> name[2:4]
'ck'
>>> name[1:] #取出变量从第一位到变量结束
'ack'
>>> name[:2] #取出变量从开头·到第一位结束(不包含第二位)
'ja'
3、列表
列表也是序列的一种,支持对序列的所有操作。列表于数组有些类似,但比数组强大得多。列表没有数据类型的限制,可以在一个列表中定义不同类型的对象。此外列表没有固定的大小,可以按照需要增加和减小列表的大小。并且列表中的值是可以改变的。
1、列表操作
表的定义
>>> info = ['jack','22','M']
>>> info
['jack', '22', 'M'] #此列表中的值既有字符串也有整型
>>> len(info) #查看列表长度
列表的序列操作
>>> info[0] #取出列表值第一位
'jack'
>>> info[:-1] #从列表开头取值到倒数第二位(不包含倒数第一位)
['jack', '22']
>>> info[0:] #从列表开头取到最后一位
['jack', '22', 'M']
表的特殊方法
列表中的值是可以改变的,并且列表的大小也是可以改变的
>>> info = ['jack','22','M']
>>> info[0]='mark' #改变列表中0的值
>>> info
['mark', '22', 'M']
>>> help(info) #查看列表可以使用的方法
>>> info.append('American') #追加
>>> info
['mark', '22', 'M', 'American']
>>> info.pop(1) #删除第一位的值
'22'
>>> info
['mark', 'M', 'American']
>>> info.insert(1,22) #在第一位插入新值22
>>> info
['mark', 22, 'M', 'American']
>>> digit=[1,3,2,5,4]
>>> digit
[1, 3, 2, 5, 4]
>>> digit.sort() #排序
>>> digit
[1, 2, 3, 4, 5]
>>> digit.reverse() #进行序列翻转
>>> digit
[5, 4, 3, 2, 1]
2、列表嵌套
列表有一个特性,支持任意的嵌套、能够以任意的组合对其进行嵌套,并可以多个层次进行嵌套。这个特性可以实现数据矩阵,或者多维数组
>>> m=[[1,2,3],[4,5,6],[7,8,9]]
>>> m
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
>>> m[1][2]
6
>>> m[1][2]=10 #查看第二个子列表中的第三个值
>>> m[1][2] #改变第二个子列表中的第三个值
10
4、元组(tuple)
元组可以看成是一个不可改变的列表,元组也可以支持序列操作。可以方便地存储与提取一组值
>>> information=('lusi',18,'F')
>>> information
('lusi', 18, 'F')
>>> information[0] #提取第一个值
'lusi'
>>> information[1] #提取第二个值
18
注意:元组中的值不能改变,只能给整个元组重新赋值(字符串也不能改变值,只能重新定义)
>>> id(information)
3073641204L #元组中的内存ID号
>>> information=("sdf","ahlk",67)
>>> info=(1,2,3) #给元组重新赋值之后,ID号会改变,代表是个新的元组出现
>>> id(info)
3074861852L
>>> a=(1,) #定义只有一个元素的元组时,需要加逗号,否则会被识别为整形
>>> type(a)
>>> b=(1)
print print(
>>> print(type(b))
>>> t=(1,2,3) #可以把元组中的值赋予多个变量(像变量的多元赋值)
>>> t
(1, 2, 3)
>>> a,b,c=t
>>> a
1
>>> b
2
>>> c
3
5、字典
字典编写在{}中,用"键:值"的方式进行赋值。字典中数据成对保存,适合保存二维数据,字典的值也可以改变。但是字典的顺序并不可靠,也就是我们建立字典时的顺序和我们输出字典时候的顺序不一定一致。
①字典的定义
>>> info={"name":"jack","age":20,"sex":"M"} #定义字典
>>> info #查看字典
{'age': 20, 'name': 'jack', 'sex': 'M'}
>>> info['name'] #查看字典某一个键的值
'jack'
>>> info['country']='American' #在字典中添加新的"键:值"
>>> info
{'country': 'American', 'age': 20, 'name': 'jack', 'sex': 'M'}
②字典中键的排序
字典的顺序并不可靠,也就是我们建立字典时的顺序和我们输出字典时的顺序不一定一致
>>> info={"name":"jack","age":20,"sex":"M"}
>>> info #字典输出的顺序并不一定
{'age': 20, 'name': 'jack', 'sex': 'M'}
>>> for key in sorted(info): #for循环,info中有几个值,循环几次
... print(key, 'is', info[key]) #sorted函数把info变成列表,并用sort排序,然后用for循环输出,注意缩进
...
('age', 'is', 20)
('name', 'is', 'jack')
('sex', 'is', 'M')
6、文件型
文件类型是python对电脑上外部文件的主要接口。如果要创建有一个文件对象,需要调用内置的open函数,以字符串的形式传递给它一个外部的文件名和一个处理模式的字符串。
>>> f = open('test','w')
#使用open函数,定义文件名和处理模式,会在linux当前目录中建立该文件
支持的模式:
'r' 默认以读形式打开
'w' 首先清除文件在打开进行写入
'x' 创建一个新文件并且打开他进行写入
'a' 打开写入,追加到一个存在的文件末尾
>>> dir(f) #查看该对象支持的方法
['__class__', '__delattr__', '__doc__', '__enter__', '__exit__', '__format__', '__getattribute__', '__hash__', '__init__', '__iter__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'close', 'closed', 'encoding', 'errors', 'fileno', 'flush', 'isatty', 'mode', 'name', 'newlines', 'next', 'read', 'readinto', 'readline', 'readlines', 'seek', 'softspace', 'tell', 'truncate', 'write', 'writelines', 'xreadlines']
>>> f.write('my name is jack\n') #通过write方法向文件中写入数据
>>> f.write('my age is 22\n')
>>> f.close() #关闭对文件的写操作
>>> f.close()
>>> t = open('test.txt', 'r') #使用r处理模式,打开文件
>>> test = t.read() #赋予变量
>>> test #直接调用变量不能正确查看内容
'my name is jack\nmy age is 22\n'
>>> print(test) #使用print函数显示内容
my name is jack
my age is 22
7、布尔值
就是判断表达式是否为真
>>> 1 == 2
False
>>> 1 < 2
True
>>> 1 > 2
False
>>> 1 <= 2
True
8、查看变量类型
>>> name = 'jack'
>>> age = 20
>>> type(name)
>>> type(age)
>>> age = '18' #加入引号,变成字符串
>>> type(age)
9、python的注释
①# 注释一句话
②'''
内容 #注释一段内容
'''
10、模块
每一个义扩展名py结尾的python源码文件都是一个模块,其它脚本可以通过导入这个模块,使用整个模块中的所有的内容。模块中国可以包含函数和其他的脚本内容。
模块的搜索路径
模块的搜索,先搜索本地位置,再按照sys.path的环境变量进行搜索
导入模块时,不需要写后缀名
>>> import myhello
需要把自己保存脚本的路径加入python的path路径,否则不能正确导入
# cd /usr/local/python27/lib/python2.7/site-packages/
# vim my.pth
/root #把自己的python脚本目录放入此目录中以.Pth结尾
取帮助
>>> help('modules')
#查询系统支持的所有模块,包含系统内置模块和用户导入模块
>>> help('sys') #查看模块具体帮助
>>> import math #引入数学计算模块
>>> dir(math) #查看此模块支持的函数
>>> help(math) #查看此模块具体的注释
>>> help(math.sin) #查看此模块中函数的注释
>>> math.pi #调用模块中一个函数
3.141592653589793
③python模块的导入方法
import 模块
import 模块名 as 新名 #给模块起一个别名
from 模块名 import 变量名
Reload模块
导入的模块在python中是直接运行的,但是导入比较耗费资源,所以只能执行一次(除非退出重新进入会话)
如果想要重复导入模块并执行,需要使用reload
>>> import imp #在python中,reload不再是内置函数,所以必须导入
>>> imp.reload(myhello) #在模块中,调用reload函数
或者
>>> from imp import reload #从模块中导入reload函数
>>> reload(myhello)
hello
Python知识总结

每天学习Python两个小时是否足够?这取决于你的目标和学习方法。1)制定清晰的学习计划,2)选择合适的学习资源和方法,3)动手实践和复习巩固,可以在这段时间内逐步掌握Python的基本知识和高级功能。

Python在Web开发中的关键应用包括使用Django和Flask框架、API开发、数据分析与可视化、机器学习与AI、以及性能优化。1.Django和Flask框架:Django适合快速开发复杂应用,Flask适用于小型或高度自定义项目。2.API开发:使用Flask或DjangoRESTFramework构建RESTfulAPI。3.数据分析与可视化:利用Python处理数据并通过Web界面展示。4.机器学习与AI:Python用于构建智能Web应用。5.性能优化:通过异步编程、缓存和代码优

Python在开发效率上优于C ,但C 在执行性能上更高。1.Python的简洁语法和丰富库提高开发效率。2.C 的编译型特性和硬件控制提升执行性能。选择时需根据项目需求权衡开发速度与执行效率。

Python在现实世界中的应用包括数据分析、Web开发、人工智能和自动化。1)在数据分析中,Python使用Pandas和Matplotlib处理和可视化数据。2)Web开发中,Django和Flask框架简化了Web应用的创建。3)人工智能领域,TensorFlow和PyTorch用于构建和训练模型。4)自动化方面,Python脚本可用于复制文件等任务。

Python在数据科学、Web开发和自动化脚本领域广泛应用。1)在数据科学中,Python通过NumPy、Pandas等库简化数据处理和分析。2)在Web开发中,Django和Flask框架使开发者能快速构建应用。3)在自动化脚本中,Python的简洁性和标准库使其成为理想选择。

Python的灵活性体现在多范式支持和动态类型系统,易用性则源于语法简洁和丰富的标准库。1.灵活性:支持面向对象、函数式和过程式编程,动态类型系统提高开发效率。2.易用性:语法接近自然语言,标准库涵盖广泛功能,简化开发过程。

Python因其简洁与强大而备受青睐,适用于从初学者到高级开发者的各种需求。其多功能性体现在:1)易学易用,语法简单;2)丰富的库和框架,如NumPy、Pandas等;3)跨平台支持,可在多种操作系统上运行;4)适合脚本和自动化任务,提升工作效率。

可以,在每天花费两个小时的时间内学会Python。1.制定合理的学习计划,2.选择合适的学习资源,3.通过实践巩固所学知识,这些步骤能帮助你在短时间内掌握Python。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

SublimeText3 Linux新版
SublimeText3 Linux最新版

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境