Python是面向对象,高级语言,解释,动态和多用途编程语言Python易于学习,而且功能强大,功能多样的脚本语言使其对应用程序开发具有吸引力Python的语法和动态类型具有其解释性质,使其成为许多领域的脚本编写和快速应用程序开发的理想语言。
Python支持多种编程模式,包括面向对象编程,命令式和函数式编程或过程式编程Python几乎无所不能,一些常用的开发领域,如Web编程这就是为什么它被称为多用途,因为它可以用于网络,企业,3D CAD等软件和系统开发。
在Python中,不需要使用数据类型来声明变量,因为它是动态类型的,所以可以写一个如 a=10 来声明一个变量a中的值是一个整数类型Python使开发和调试快速,因为在python开发中没有包含编译步骤,并且编辑 测试 调试循环使用代码开发效率非常高。
这里多说一句,小编是一名python开发工程师,这里有我自己整理了一套最新的python系统学习教程,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等想要这些资料的可以关注小编,并私信“01”即可领取。
Python是一种高级,解释,交互和面向对象的脚本语言 Python被设计为高度可读性 它使用英语关键字,而其他语言使用标点符号它的语法结构比其他语言少Python是解释型语言 - Python代码在解释器中运行时处理,执行前不需要编译程序。
这与PERL和PHP类似Python是交动的 - 在Python提示符下面直接和解释器进行交互来编写程序Python是面向对象的 - Python支持面向对象的风格或编程技术,将代码封装在对象内Python是一门初学者的语言
- Python是初学者程序员的伟大语言,并支持从简单的文本处理到WWW浏览器到游戏的各种应用程序的开发第一节 Python 可以用来开发什么?Python作为一个整体可以用于任何软件开发领域下面来看看Python可以应用在哪些领域的开发。
如下所列 -1.基于控制台的应用程序Python可用于开发基于控制台的应用程序 例如:IPython2.基于音频或视频的应用程序Python在多媒体部分开发,证明是非常方便的 一些成功的应用是:TimPlayer
,cplay等3.3D CAD应用程序Fandango是一个真正使用Python编写的应用程序,提供CAD的全部功能4.Web应用程序Python也可以用于开发基于Web的应用程序 一些重要的开发案例是:。
PythonWikiEngines,Pocoo,PythonBlogSoftware等,如国内的成功应用案例有:豆瓣,知乎等5.企业级应用Python可用于创建可在企业或组织中使用的应用程序一些实时应用程序是:。
OpenErp,Tryton,Picalo等6.图像应用使用Python可以开发图像应用程序 开发的应用有:VPython,Gogh,imgSeek等第二节 Python安装和环境配置Python 3适用于Windows,Mac OS和大多数Linux操作系统。
即使Python 2目前可用于许多其他操作系统,有部分系统Python 3还没有提供支持或者支持了但被它们在系统上删除了,只保留旧的Python 2版本可参考我上一篇文章第三节 Python命令行参数Python提供了一个getopt模块,用于解析命令行选项和参数。
$ python test.py arg1 arg2 arg3 ShellPython sys模块通过sys.argv提供对任何命令行参数的访问主要有两个参数变量 -sys.argv是命令行参数的列表len(sys.argv)是命令行参数的数量。
这里sys.argv [0]是程序名称,即脚本的名称比如在上面示例代码中,sys.argv [0]的值就是 test.py示例看看以下脚本command_line_arguments.py的代码 -#!/usr/bin/python3
import sys print (Number of arguments:, len(sys.argv), arguments.) print (Argument List:, str(sys.argv)) Python
现在运行上面的脚本,这将产生以下结果 -F:\>python F:\worksp\python\command_line_arguments.py Number of arguments: 1 arguments. Argument
List: [F:\\worksp\\python\\command_line_arguments.py] F:\>python F:\worksp\python\command_line_arguments.py arg1 arg2 arg3 arg4 Number of
arguments: 5 arguments. Argument List: [F:\\worksp\\python\\command_line_arguments.py, arg1, arg2, arg3
, arg4] F:\> Python注意 - 如上所述,第一个参数始终是脚本名称,它也被计入参数的数量解析命令行参数Python提供了一个getopt模块,可用于解析命令行选项和参数该模块提供了两个功能和异常,以启用命令行参数解析。
getopt.getopt方法此方法解析命令行选项和参数列表以下是此方法的简单语法 -getopt.getopt(args, options, [long_options]) Pythongetopt.GetoptError异常。
当在参数列表中有一个无法识别的选项,或者当需要一个参数的选项不为任何参数时,会引发这个异常异常的参数是一个字符串,指示错误的原因 属性msg和opt给出错误消息和相关选项示例假设想通过命令行传递两个文件名,也想给出一个选项用来显示脚本的用法。
脚本的用法如下 -usage: file.py -i -o Shell以下是command_line_usage.py的以下脚本 -#!/usr/bin/python3
import sys, getopt defmain(argv): inputfile = outputfile = try: opts, args = getopt.getopt(argv,
"hi:o:",["ifile=","ofile="]) except getopt.GetoptError: print (GetoptError, usage: command_line_usage.py -i -o
) sys.exit(2) for opt, arg in opts: if opt == -h: print (usage: command_line_usage.py -i -o
) sys.exit() elif opt in ("-i", "--ifile"): inputfile = arg elif opt in
("-o", "--ofile"): outputfile = arg print (Input file is ", inputfile) print (Output file is "
, outputfile) if __name__ == "__main__": main(sys.argv[1:]) Python现在,使用以下几种方式运行来脚本,输出如下所示:F:\worksp
\python>pythoncommand_line_usage.py-husage: command_line_usage.py-i -o F:\worksp
\python>pythoncommand_line_usage.py-iinputfile.txt-oGetoptError, usage: command_line_usage.py-i
> -o F:\worksp\python>pythoncommand_line_usage.py-iinputfile.txt-ooutputfile.txtInputfile
is " inputfile.txtOutputfileis " outputfile.txtF:\worksp\python> Shell第四节 Python变量类型变量是保存存储值的内存位置也就是说,当创建一个变量时,可以在内存中保留一些空间。
基于变量的数据类型,解释器分配内存并决定可以存储在保留的存储器中的内容。 因此,通过为变量分配不同的数据类型,可以在这些变量中存储的数据类型为整数,小数或字符等等。
将值分配给变量在Python中,变量不需要明确的声明类型来保留内存空间当向变量分配值时,Python会自动发出声明 等号(=)用于为变量赋值=运算符左侧的操作数是变量的名称,而=运算符右侧的操作数是将在存储在变量中的值。
例如 -#!/usr/bin/python3 counter = 100 # 一个整型数 miles = 999.99 # 一个浮点数 name = "Maxsu"
# 一个字符串 site_url = "http://www.yiibai.com"# 一个字符串print (counter) print (miles) print (name) print (site_url) Python
这里,100,999.99和“Maxsu”分别是分配给counter,miles和name变量的值执行上面代码将产生以下结果 -100999.99Maxsuhttp://www.yiibai.comShell
多重赋值Python允许同时为多个变量分配单个值例如 -a = b = c = 1 Python这里,创建一个整数对象,其值为1,并且所有三个变量都分配给相同的内存位置还可以将多个对象分配给多个变量 例如 -。
a, b, c = 10, 20, "maxsu"Python这里,将两个值为10和20的整数对象分别分配给变量a和b,并将一个值为“maxsu”的字符串对象分配给变量c标准数据类型存储在内存中的数据可以是多种类型。
例如,一个人的年龄可存储为一个数字值,他的地址被存储为字母数字字符串 Python具有各种标准数据类型,用于定义可能的操作以及每个标准数据类型的存储方法Python有五种标准数据类型 -1.数字2.字符串
3.列表4.元组5.字典1.Python数字数字数据类型存储数字值当为其分配值时,将创建数字对象 例如 -var1 = 10 var2 = 20 Python可以使用del语句删除对数字对象的引用 del语句的语法是 -。
delvar1[,var2[,var3[....,varN]]]] Python可以使用del语句删除单个对象或多个对象例如 -delvardelvar_a, var_bPythonPython支持三种不同的数值类型 -。
int(有符号整数)float(浮点实值)complex(复数)Python3中的所有整数都表示为长整数 因此,长整数没有单独的数字类型例子以下是一些数字示例 -int float complex 10 0.0 3.14j 100 15.20 45.j -786 -21.9 9.322e-36j 080 32.3+e18 .876j -0490 -90. -.6545+0J -0x260 -32.54e100 3e+26J 0x69 70.2-E12 4.53e-7j。
复数是由x + yj表示的有序对的实数浮点数组成,其中x和y是实数,j是虚数单位2.Python字符串Python中的字符串被标识为在引号中表示的连续字符集Python允许双引号或双引号 可以使用片段运算符([]和[:])来获取字符串的子集(子字符串),其索引从字符串开始处的索引0开始,并且以-1表示字符串中的最后一个字符。
加号(+)是字符串连接运算符,星号(*)是重复运算符例如 -#!/usr/bin/python3#coding=utf-8# save file: variable_types_str1.py str = 。
yiibai.comprint (str = , str) # Prints complete stringprint (str[0] = ,str[0]) # Prints first character of the string
print (str[2:5] = ,str[2:5]) # Prints characters starting from 3rd to 5thprint (str[2:] = ,str[2:])
# Prints string starting from 3rd characterprint (str[-1] = ,str[-1]) # 最后一个字符,结果为:!print (str * 2 =
,str * 2) # Prints string two timesprint (str + "TEST" = ,str + "TEST") # Prints concatenated string
Python将上面代码保存到 variable_types_str1.py 文件中,执行将产生以下结果 -F:\worksp\python>python variable_types_str1.py
str = yiibai.com str[0] = y str[2:5] = iba str[2:] = ibai.com str[-1] = m str * 2 = yiibai.comyiibai.com
str + "TEST" = yiibai.comTEST F:\worksp\python> Shell2.Python列表列表是Python复合数据类型中最多功能的 一个列表包含用逗号分隔并括在方括号([])中的项目。
在某种程度上,列表类似于C语言中的数组它们之间的区别之一是Python列表的所有项可以是不同的数据类型,而C语言中的数组只能是同种类型存储在列表中的值可以使用切片运算符([]和[])来访问,索引从列表开头的0开始,并且以-1表示列表中的最后一个项目。
加号(+)是列表连接运算符,星号(*)是重复运算符例如 -#!/usr/bin/python3#coding=utf-8# save file: variable_types_str1.pylist = [
yes, no, 786 , 2.23, minsu, 70.2 ] tinylist = [100, maxsu] print (list = , list) # Prints complete list
print (list[0] = ,list[0]) # Prints first element of the listprint (list[1:3] = ,list[1:3])
# Prints elements starting from 2nd till 3rd print (list[2:] = ,list[2:]) # Prints elements starting from 3rd element
print (list[-3:-1] = ,list[-3:-1]) print (tinylist * 2 = ,tinylist * 2) # Prints list two timesprint
(list + tinylist = , list + tinylist) # Prints concatenated lists Python将上面代码保存到 variable_types_str1.py 文件中,执行将产生以下结果 -
F:\worksp\python>python variable_types_list.py list = [yes, no, 786, 2.23, minsu, 70.2] list[0] = yes
list[1:3] = [no, 786] list[2:] = [786, 2.23, minsu, 70.2] list[-3:-1] = [2.23, minsu] tinylist * 2
= [100, maxsu, 100, maxsu] list + tinylist = [yes, no, 786, 2.23, minsu, 70.2, 100, maxsu] F:\worksp\python> Shell
3.Python元组元组是与列表非常类似的另一个序列数据类型元组是由多个值以逗号分隔然而,与列表不同,元组被括在小括号内(())列表和元组之间的主要区别是 - 列表括在括号([])中,列表中的元素和大小可以更改,而元组括在括号(())中,无法更新。
元组可以被认为是只读列表 例如 -#!/usr/bin/python3#coding=utf-8# save file : variable_types_tuple.py tuple = ( maxsu。
, 786 , 2.23, yiibai, 70.2 ) tinytuple = (999.0, maxsu) # tuple[1] = new item value 不能这样赋值print (tuple =
, tuple) # Prints complete tupleprint (tuple[0] = , tuple[0]) # Prints first element of the tuple
print (tuple[1:3] = , tuple[1:3]) # Prints elements starting from 2nd till 3rd print (tuple[-3:-1] =
, tuple[-3:-1]) # 输出结果是什么?print (tuple[2:] = , tuple[2:]) # Prints elements starting from 3rd element
print (tinytuple * 2 = ,tinytuple * 2) # Prints tuple two timesprint (tuple + tinytuple = , tuple + tinytuple)
# Prints concatenated tuple Python将上面代码保存到 variable_types_tuple.py 文件中,执行将产生以下结果 -F:\worksp\python>python
variable_types_tuple.pytuple=(maxsu,786,2.23,yiibai,70.2)tuple[0]=maxsutuple[1:3]=(786,2.23)tuple[-3:-1]
=(2.23,yiibai)tuple[2:]=(2.23,yiibai,70.2)tinytuple*2=(999.0,maxsu,999.0,maxsu)tuple+tinytuple=(maxsu,
786,2.23,yiibai,70.2,999.0,maxsu)F:\worksp\python>Shell以下代码对于元组无效,因为尝试更新元组,但是元组是不允许更新的类似的情况可能与列表 -#!/usr/bin/python3。
tuple=(abcd,786,2.23,john,70.2)list=[abcd,786,2.23,john,70.2]tuple[2]=1000# 无法更新值,程序出错list[2]=1000# 有效的更新,合法
PythonPython字典Python的字典是一种哈希表类型它们像Perl中发现的关联数组或散列一样工作,由键值对组成字典键几乎可以是任何Python数据类型,但通常为了方便使用数字或字符串另一方面,值可以是任意任意的Python对象。
字典由大括号({})括起来,可以使用方括号([])分配和访问值例如 -#!/usr/bin/python3#coding=utf-8# save file : variable_types_dict.py。
dict = {} dict[one] = "This is one" dict[2] = "This is my" tinydict = {name: maxsu, code : 1024,
dept:IT Dev} print ("dict[one] = ", dict[one]) # Prints value for one keyprint (dict[2] = , dict[2])
# Prints value for 2 keyprint (tinydict = , tinydict) # Prints complete dictionaryprint (tinydict.keys() =
, tinydict.keys()) # Prints all the keysprint (tinydict.values() = , tinydict.values()) # Prints all the values
Python将上面代码保存到 variable_types_dict.py 文件中,执行将产生以下结果 -F:\worksp\python>python variable_types_dict.py dict[
one] = This is one dict[2] = This is my tinydict = {name: maxsu, code: 1024, dept: IT Dev} tinydict.keys() = dict_keys([
name, code, dept]) tinydict.values() = dict_values([maxsu, 1024, IT Dev]) Shell字典中的元素没有顺序的概念但是说这些元素是“乱序”是不正确的; 它们是无序的。
数据类型转换有时,可能需要在内置类型之间执行转换要在类型之间进行转换,只需使用类型名称作为函数即可有以下几种内置函数用于执行从一种数据类型到另一种数据类型的转换这些函数返回一个表示转换值的新对象它们分别如下所示 -。
编号 函数 描述 1 int(x [,base]) 将x转换为整数如果x是字符串,则要base指定基数 2 float(x) 将x转换为浮点数 3 complex(real [,imag]) 创建一个复数。
4 str(x) 将对象x转换为字符串表示形式 5 repr(x) 将对象x转换为表达式字符串 6 eval(str) 评估求值一个字符串并返回一个对象 7 tuple(s) 将s转换为元组 8 list(s) 将s转换为列表。
9 set(s) 将s转换为集合 10 dict(d) 创建一个字典,d必须是(key,value)元组的序列 11 frozenset(s) 将s转换为冻结集 12 chr(x) 将整数x转换为字符 13 unichr(x) 将整数x转换为Unicode字符。
14 ord(x) 将单个字符x转换为其整数值 15 hex(x) 将整数x转换为十六进制字符串 16 oct(x) 将整数x转换为八进制字符串第五节 Python基本运算符运算符是可以操纵操作数值的结构。
如下一个表达式:10 + 20 = 30这里,10和20称为操作数,+则被称为运算符运算符类型Python语言支持以下类型的运算符 -1.算术运算符2.比较(关系)运算符3.赋值运算符4.逻辑运算符5.按位运算符
6.成员运算符7.身份运算符下面让我们依次来看看所有的运算符1.算术运算符假设变量a的值是10,变量b的值是21,则 -运算符 描述 示例 + 加法运算,将运算符两边的操作数增加 a + b = 31 - 减法运算,将运算符左边的操作数减去右边的操作数。
a – b = -11 * 乘法运算,将运算符两边的操作数相乘 a * b = 210 / 除法运算,用右操作数除左操作数 b / a = 2.1 % 模运算,用右操作数除数左操作数并返回余数 b % a = 1 ** 对运算符进行指数(幂)计算 a ** b,表示10的21次幂 // 地板除 - 操作数的除法,其结果是删除小数点后的商数。
但如果其中一个操作数为负数,则结果将被保留,即从零(向负无穷大)舍去 9//2 = 4 , 9.0//2.0 = 4.0, -11//3 = -4, -11.0//3 = -4.02.比较(关系)运算符
比较(关系)运算符比较它们两边的值,并确定它们之间的关系它们也称为关系运算符假设变量a的值10,变量b的值是20,则 -运算符 描述 示例 == 如果两个操作数的值相等,则条件为真 (a == b)求值结果为 false != 如果两个操作数的值不相等,则条件为真。
(a != b)求值结果为 true > 如果左操作数的值大于右操作数的值,则条件成为真 (a > b)求值结果为 false < 如果左操作数的值小于右操作数的值,则条件成为真 (a = 如果左操作数的值大于或等于右操作数的值,则条件成为真。
(a >= b)求值结果为 false <= 如果左操作数的值小于或等于右操作数的值,则条件成为真 (a <= b)求值结果为 true3.赋值运算符假设变量a的值10,变量b的值是20,则 -运算符 描述 示例 = 将右侧操作数的值分配给左侧操作数 c = a + b表示将a + b的值分配给c += 将右操作数相加到左操作数,并将结果分配给左操作数 c + = a等价于c = c + a -= 从左操作数中减去右操作数,并将结果分配给左操作数 c -= a 等价于 c = c - a *= 将右操作数与左操作数相乘,并将结果分配给左操作数 c *= a 等价于 c = c * a /= 将左操作数除以右操作数,并将结果分配给左操作数 c /= a 等价于 c = c / a %= 将左操作数除以右操作数的模数,并将结果分配给左操作数 c %= a 等价于 c = c % a **= 执行指数(幂)计算,并将值分配给左操作数 c **= a 等价于 c = c ** a //= 运算符执行地板除运算,并将值分配给左操作数 c //= a 等价于 c = c // a
4.逻辑运算符Python语言支持以下逻辑运算符假设变量a的值为True,变量b的值为False,那么 -运算符 描述 示例 and 如果两个操作数都为真,则条件成立 (a and b)的结果为False or 如果两个操作数中的任何一个非零,则条件成为真。
(a or b)的结果为True not 用于反转操作数的逻辑状态 not(a and b) 的结果为True5.按位运算符按位运算符执行逐位运算 假设变量a = 60; 和变量b = 13; 现在以二进制格式,它们将如下 -。
a=00111100b=00001101-----------------a&b=00001100a|b=00111101a^b=00110001~a=11000011ShellPython的内置函数bin()可用于获取整数的二进制表示形式。
以下是Python语言支持位运算操作符 -运算符 描述 示例 & 如果它存在于两个操作数中,则操作符复制位到结果中 (a & b) 结果表示为 0000 1100如果它存在于任一操作数,则复制位 (ab) = 61 结果表示为 0011 1101 ^ 二进制异或。
如果它是一个操作数集合,但不是同时是两个操作数则将复制位 (a ^ b) = 49 (结果表示为 0011 0001) ~ 二进制补码,它是一元的,具有“翻转”的效果 (~a ) = -61有符号的二进制数,表示为1100 0011的补码形式。
<< 二进制左移,左操作数的值由右操作数指定的位数左移 a <> 二进制右移,左操作数的值由右操作数指定的位数右移 a >> 2 = 15(结果表示为0000 1111)。
6.成员运算符Python成员运算符测试给定值是否为序列中的成员,例如字符串,列表或元组 有两个成员运算符,如下所述 -运算符 描述 示例 in 如果在指定的序列中找到一个变量的值,则返回true,否则返回false。
- not in 如果在指定序列中找不到变量的值,则返回true,否则返回false -7.身份运算符身份运算符比较两个对象的内存位置常用的有两个身份运算符,如下所述 -运算符 描述 示例 is 如果运算符任一侧的变量指向相同的对象,则返回True,否则返回False。
is not 如果运算符任一侧的变量指向相同的对象,则返回True,否则返回False -8. 运算符优先级下表列出了从最高优先级到最低优先级的所有运算符,如下所示 -序号 运算符 描述 1 ** 指数(次幂)运算 2 ~ + - 补码,一元加减(最后两个的方法名称是+@和-@) 3 * / % // 乘法,除法,模数和地板除 4 + - 5 >> << 向右和向左位移 6 & 按位与 7 ^
按位异或和常规的“OR” 8 <= >= 比较运算符 9 <> == != 等于运算符 10 = %= /= //= -= += *= **= 赋值运算符 11 is is not 身份运算符 12 in not in 成员运算符 13 not or and 逻辑运算符
最后多说一句,小编是一名python开发工程师,这里有我自己整理了一套最新的python系统学习教程,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等想要这些资料的可以关注小编,并私信“01”领取。
亲爱的读者们,感谢您花时间阅读本文。如果您对本文有任何疑问或建议,请随时联系我。我非常乐意与您交流。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。