认识Python
Python应用场景
Python基础语法
Python 是一种计算机程序设计语言。是一种动态的、面向对象的脚本语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的、大型项目的开发。
Python 的创始人为荷兰人吉多·范罗苏姆(Guido van Rossum)。1989 年圣诞节期间,在阿姆斯特丹,Guido 为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,作为ABC 语言的一种继承。之所以选中 Python(大蟒蛇的意思)作为该编程语言的名字,是取自英国 20 世纪 70 年代首播的电视喜剧《蒙提.派森干的飞行马戏团》(Monty Python's Flying Circus)。
ABC 是由 Guido 参加设计的一种教学语言。就 Guido 本人看来,ABC 这种语言非常优美和强大,是专门为非专业程序员设计的。但是 ABC 语言并没有成功,究其原因,Guido 认为是其非开放造成的。Guido 决心在 Python 中避免这一错误。同时,他还想实现在 ABC 中闪现过但未曾实现的东西。
就这样,Python 在 Guido 手中诞生了。可以说,Python 是从 ABC 发展起来。Python 已经成为最受欢迎的程序设计语言之一。自从 2004 年以后,python 的使用率呈线性增长。Python2 于 2000 年 10 月 16 日发布,稳定版本是 Python2.7 。Python3 于 2008年 12 月 3 日发布,不完全兼容Python2。2011年1月,它被 TIOBE 编程语言排行榜评为 2010 年度语言。
由于 Python 语言的简洁性、易读性以及可扩展性,在国外用 Python 做科学计算的研究机构日益增多,一些知名大学已经采用 Python 来教授程序设计课程。例如卡耐基梅隆大学的编程基础、麻省理工学院的计算机科学及编程导论就使用 Python 语言讲授。众多开源的科学计算软件包都提供了 Python 的调用接口,例如著名的计算机视觉库 OpenCV 、三维可视化库 VTK 、医学图像处理 库 ITK 。而 Python 专用的科学计算扩展库就更多了,例如:如下3个十分经典的科学计算扩展库:NumPy、SciPy 和 matplotlib,它们分别为 Python提供了快速数组处理、数值运算以及绘图功能。因此 Python 语言及其众多的扩展库所构成的开发环境十分适合工程技术、科研人员处理实验数据、制作图表,甚至开发科学计算应用程序。
1. Web应用开发
Python经常被用于Web开发。比如,通过mod_wsgi模块,Apache可以运行用Python编写的Web程序。Python定义了WSGI标准应用接口来协调Http服务器与基于Python的Web程序之间的通信。一些Web框架,如Django,TurboGears,web2py,Zope等,可以让程序员轻松地开发和管理复杂的Web程序。
2. 操作系统管理、服务器运维的自动化脚本
在很多操作系统里,Python是标准的系统组件。 大多数Linux发行版以及NetBSD、OpenBSD和Mac OS X都集成了Python,可以在终端下直接运行Python。有一些Linux发行版的安装器使用Python语言编写,比如Ubuntu的Ubiquity安装器,Red Hat Linux和Fedora的Anaconda安装器。Gentoo Linux使用Python来编写它的Portage包管理系统。Python标准库包含了多个调用操作系统功能的库。通过pywin32这个第三方软件 包,Python能够访问Windows的COM服务及其它Windows API。使用IronPython,Python程序能够直接调用.Net Framework。一般说来,Python编写的系统管理脚本在可读性、性能、代码重用度、扩展性几方面都优于普通的shell脚本。
3. 网络爬虫
Python有大量的HTTP请求处理库和HTML解析库,并且有成熟高效的爬虫框架Scrapy和分布式解决方案scrapy-redis,在爬虫的应用方面非常广泛。
4. 科学计算
NumPy、SciPy、Pandas、Matplotlib可以让Python程序员编写科学计算程序。
5. 桌面软件
PyQt、PySide、wxPython、PyGTK是Python快速开发桌面应用程序的利器。
6. 服务器软件(网络软件)
Python对于各种网络协议的支持很完善,因此经常被用于编写服务器软件、网络爬虫。第三方库Twisted支持异步网络编程和多数标准的网络协议(包含客户端和服务器),并且提供了多种工具,被广泛用于编写高性能的服务器软件。
7. 游戏
很多游戏使用C++编写图形显示等高性能模块,而使用Python或者Lua编写游戏的逻辑、服务器。相较于Python,Lua的功能更简单、体积更小;而Python则支持更多的特性和数据类型。
8. 构思实现,产品早期原型和迭代
Google、NASA、Facebook都在内部大量地使用Python。
1. 语法基础:注释
在程序中对某些代码进行标注说明,这就是注释的作用,能够大大增强程序的可读性。python 常用单行注释是 # ,常用多行注释是三对单引号 ''' '''
2. 语法基础:数据类型
3. 语法基础:关键字和标识符
关键字
python 一些具有特殊功能的标识符,这就是所谓的关键字。关键字,是 python 已经使用的了,所以不允许开发者自己定义和关键字相同的名字的标识符
那么 python 中关键字都有哪些呢?
['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
那么咱们如何去查询 python 中有哪些关键字呢?
# 在python中若想查询python中有哪些关键字可以先导入keyword模块
import keyword #导入关键字模块
print(keyword.kwlist) #查询所有关键字
实际操作
温馨提示:咱们在起变量名或者文件名时不能使用这些关键字名字哟,否则会报错.抛出异常~请大家注意哟。
标识符
祖国的花朵(开发人员)在程序中自定义的一些符号和名称。标示符是咱们自己定义的,如变量名、函数名、类名等。
标识符规则
定义这些标识符也有一定的规则:标识符由字母下划线和数字组成,但是不能以数字开头,可以使用下划线或字母开头,注意在 python 中,标识符是严格区分大小写的哟。 变量 Andy 不等于 变量 andy 这是两个变量。
标识符命名规则
命名规则,可以简单的理解为,咱们在起名字的时候是需要遵守相关规则的.主要是为了让别人一看就明白是什么意思,做什么用的.可以提高代码可读性。比如:名字 就定义为 name , 定义学生用 student。
驼峰命名法
同时呢,在需要多个单词进行组合时,咱们使用驼峰命名法:
小驼峰式命名法: 第一个单词以小写字母开始;第二个单词的首字母大写,例如:myName、aDog
大驼峰式命名法: 每一个单字的首字母都采用大写字母,例如:FirstName、LastName。不过在程序员中还有一种命名法比较流行,就是用下划线“_”来连接所有的单词,比如send_buf
名字和对象之间关系
我们可以用 = 等号,建立立定义的变量名字和对象之间的引用关系,也可以用使用 del 来解除这种引用关系。
# 举个例子
name = '天下第一帅' # 我将 天下第一帅 这个字符串赋值给了 name 这个变量名,可以理解为,下次我通过 name 名字可以联系到 天下第一帅 这个人.
实际操作
# del 解除引用关系
age = 17 # 永远17岁
del age # del 是 delete 的缩写,此行代码表示删除 age 和 17 之间的引用关系
print(age) # 因为已经删除引用关系,所以访问不到 17 这个数据,则抛出异常
实际操作
名字空间
当我们在定义了一些变量名,函数名,类名之后,会有一个空间来收纳这些名字和它们所对应的数据类型和数据内容。
# 举个栗子
height = '190CM' # 小编的理想身高.但是现实很残酷.
def func1():
pass
class Fun():
pass
实际操作
使用 %whos 查看名字空间,我们也可以使用 %reset 来清空这个空间,清空之后,我们就需要重新执行一次定义的过程,才能重新存储在名字空间内。
实际操作
4. 语法基础:输出
普通的输出
python中的输出
用 print() 在括号中加上字符串,就可以向屏幕上输出指定的文字。比如输出 '李铁柱',用代码实现如下:
name = '李铁柱'
print(name)
运行结果
print()也可以打印整数,或者计算结果
# 举个例子
print(300)
print(100 + 200)
实际操作
因此,我们可以把计算100 + 200 的结果打印得更漂亮一点:
print('100 + 200 = ', 100 + 200)
实际操作
注意,对于100 + 200,Python 解释器自动计算出结果 300,但是,'100 + 200 =' 是字符串而非数学公式,Python 把它视为字符串,直接进行打印输出。
5. 语法基础:格式化输出
格式化操作的目的,比如说有下列代码:
print('大家好,我叫 李铁柱,我今年 24 岁')
print('大家好,我叫 候德柱,我今年 25 岁')
print('大家好,我叫 候不柱,我今年 26 岁')
大家仔细观察一下,能够看到,我在 print 输出自我介绍的时候,用了很多的相同字体,就只有一些不同的字段,那么咱们能否简化一下程序呢?
age = 24
print("我今年%d岁" % age)
age += 25
print("我今年%d岁" % age)
age += 26
print("我今年%d岁" % age)
实际操作
在程序中,看到了 % 这样的操作符,这就是 Python 中格式化输出。
age = 18
name = "小岳岳"
print("我的姓名是%s, 年龄是%d" % (name, age))
运行结果
在这里咱们一次使用了两个格式化符号,分别是:%s 和 %d。
%s:表示格式化输出字符串
%d:表示格式化输出十进制整数
除了这两个格式化输出字符还有很多,往下看。
常用的格式化符号
6. 语法基础:输入
现在,你已经可以用 print() 输出你想要的结果了。但是,如果要让用户从电脑输入一些字符怎么办?Python 提供了一个 input(),可以让用户输入字符串,并存放到一个变量里。比如输入用户的名字:
name = input() # input()
当你输入name = input()并按下回车后,Python交互式命令行就在等待你的输入了。这时,你可以输入任意字符,然后按回车后完成输入。
输入完成后,不会有任何提示,Python 交互式命令行又回到就绪状态了。那我们刚才输入的内容到哪去了?答案是存放到 name 变量里了。可以直接输入 name 查看变量内容:
7. 语法基础:运算符
标准操作符
python 同大多数语言一样,也有自己的操作符,分别用来应对不同的工作内容。今天要讲的是 Python 中最常用的几种标准操作符:算术运算符、赋值运算符、比较运算符、逻辑运算符。
算数运算符
注意:混合运算时,优先级顺序为: ** 高于 * / % // 高于 + - ,为了避免歧义,建议使用 () 来处理运算符优先级。并且,不同类型的数字在进行混合运算时,整数将会转换成浮点数进行运算。
实际操作
a = 10
b = 20
print(a+b)
print(a-b)
print(a*b)
print(a/b)
赋值运算符
实际操作
a = 10 # 单个赋值
b = 20
c,d,e = 30,40,50 # 多个赋值 c = 30 , d = 40 , e = 50
print(a,b,c,d,e)
复合赋值运算符
实际操作
c = 40
a = 20
# print(c += a) # 直接 print() 是无法输出结果的哟
c += a
print(c)
c -= a
print(c)
c *= a
print(c)
c /= a
print(c)
c %= a
print(c)
(8)语法基础:常用的数据类型转换
数据类型转换
有时候,我们需要对数据内置的类型进行转换,数据类型的转换,你只需要将数据类型作为函数名即可。
以下几个内置的函数可以执行数据类型之间的转换。这些函数返回一个新的对象,表示转换的值。
类型转换
# 给小伙伴们举几个例子
# int(): 将数据转换为 int 类型
str1 = "10"
num1 = int(str1)
print(int)
# int() 处理浮点数,只留下整数部分,舍弃小数部分(并不是四舍五入操作)
num2 = int(3.74)
print(num2)
# float() 将数据转化为浮点数
str2 = "3.14"
f1 = float(str2)
print(type(f1))
# str() : 转换为 字符串类型
num1 = 10
f1 = 3.14
print(type(str(num1)))
# eval(): 将字符串形式的数据,转换为原本的类型
str1 = "3.14"
print(type(eval(str1)))
操作结果