文章目录
Python是面向对象,高级语言,解释,动态和多用途编程语言。Python易于学习,而且功能强大,功能多样的脚本语言使其对应用程序开发具有吸引力。
Python的语法和动态类型具有其解释性质,使其成为许多领域的脚本编写和快速应用程序开发的理想语言。
Python支持多种编程模式,包括面向对象编程,命令式和函数式编程或过程式编程。
Python几乎无所不能,一些常用的开发领域,如Web编程。这就是为什么它被称为多用途,因为它可以用于网络,企业,3D CAD等软件和系统开发。
在Python中,不需要使用数据类型来声明变量,因为它是动态类型的,所以可以写一个如 a=10 来声明一个变量a中的值是一个整数类型。
Python使开发和调试快速,因为在python开发中没有包含编译步骤,并且编辑 <-> 测试 <-> 调试循环使用代码开发效率非常高。
这里多说一句,小编是一名python开发工程师,这里有我自己整理了一套最新的python系统学习教程,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等。想要这些资料的可以进裙930900780领取。
Python是一种高级,解释,交互和面向对象的脚本语言。 Python被设计为高度可读性。 它使用英语关键字,而其他语言使用标点符号。它的语法结构比其他语言少。
- Python是解释型语言 - Python代码在解释器中运行时处理,执行前不需要编译程序。 这与PERL和PHP类似。
- Python是交动的 - 在Python提示符下面直接和解释器进行交互来编写程序。
- Python是面向对象的 - Python支持面向对象的风格或编程技术,将代码封装在对象内。
- Python是一门初学者的语言 - Python是初学者程序员的伟大语言,并支持从简单的文本处理到WWW浏览器到游戏的各种应用程序的开发。
如果你也喜欢编程,想通过学习Python转行、做副业或者提升工作效率,这份【最新全套Python学习资料】 一定对你有用!
![](https://i-blog.csdnimg.cn/blog_migrate/d950fc27d7d12ecff17fbf952635a82f.png)
第一节 Python 可以用来开发什么?
Python作为一个整体可以用于任何软件开发领域。下面来看看Python可以应用在哪些领域的开发。如下所列 -
1、基于控制台的应用程序
Python可用于开发基于控制台的应用程序。 例如:IPython。
2、基于音频或视频的应用程序
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
Shell
Python sys模块通过sys.argv提供对任何命令行参数的访问。主要有两个参数变量 -
- sys.argv是命令行参数的列表。
- len(sys.argv)是命令行参数的数量。
这里sys.argv [0]是程序名称,即脚本的名称。比如在上面示例代码中,sys.argv [0]的值就是 test.py。
示例
看看以下脚本command_line_arguments.py的代码
#!/usr/bin/python3
import sysprint ('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提供了一个getopt模块,可用于解析命令行选项和参数。该模块提供了两个功能和异常,以启用命令行参数解析。
- getopt.getopt方法
此方法解析命令行选项和参数列表。以下是此方法的简单语法 -
getopt.getopt(args, options, [long_options])
- getopt.GetoptError异常
当在参数列表中有一个无法识别的选项,或者当需要一个参数的选项不为任何参数时,会引发这个异常。
异常的参数是一个字符串,指示错误的原因。 属性msg和opt给出错误消息和相关选项。
示例
假设想通过命令行传递两个文件名,也想给出一个选项用来显示脚本的用法。脚本的用法如下
usage: file.py -i <inputfile> -o <outputfile>
Shell
以下是command_line_usage.py的以下脚本 -
#!/usr/bin/python3
import sys, getoptdef main(argv): inputfile = ''
outputfile = ''
try: opts, args = getopt.getopt(argv,"hi:o:",["ifile=","ofile="])
except getopt.GetoptError: print ('GetoptError, usage: command_line_usage.py -i <inputfile> -o <outputfile>')
sys.exit(2)
for opt, arg in opts:
if opt == '-h':
print ('usage: command_line_usage.py -i <inputfile> -o <outputfile>')
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>python command_line_usage.py -h
usage: command_line_usage.py -i <inputfile> -o <outputfile>
F:\worksp\python>python command_line_usage.py -i inputfile.txt -o
GetoptError, usage: command_line_usage.py -i <inputfile> -o <outputfile>
F:\worksp\python>python command_line_usage.py -i inputfile.txt -o outputfile.txt
Input file is " inputfile.txt
Output file is " outputfile.txt
F:\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)
这里,100,999.99和“Maxsu”分别是分配给counter,miles和name变量的值。执行上面代码将产生以下结果 -
100
999.99
Maxsuhttp://www.yiibai.com
Shell
多重赋值
Python允许同时为多个变量分配单个值。
例如 -
a = b = c = 1
这里,创建一个整数对象,其值为1,并且所有三个变量都分配给相同的内存位置。还可以将多个对象分配给多个变量。 例如 -
a, b, c = 10, 20, "maxsu"
这里,将两个值为10和20的整数对象分别分配给变量a和b,并将一个值为“maxsu”的字符串对象分配给变量c。
标准数据类型
存储在内存中的数据可以是多种类型。 例如,一个人的年龄可存储为一个数字值,他的地址被存储为字母数字字符串。 Python具有各种标准数据类型,用于定义可能的操作以及每个标准数据类型的存储方法。
Python有五种标准数据类型:
- 数字
- 字符串
- 列表
- 元组
- 字典
1、Python数字
数字数据类型存储数字值。当为其分配值时,将创建数字对象。 例如 :
var1 = 10
var2 = 20
可以使用del语句删除对数字对象的引用。 del语句的语法是 -
del var1[,var2[,var3[....,varN]]]]
可以使用del语句删除单个对象或多个对象。
例如 -
del var
del var_a, var_bPython
Python支持三种不同的数值类型:
- 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.pystr = 'yiibai.com'
print ('str = ', str) # Prints complete string
print ('str[0] = ',str[0]) # Prints first character of the string
print ('str[2:5] = ',str[2:5]) # Prints characters starting from 3rd to 5th
print ('str[2:] = ',str[2:]) # Prints string starting from 3rd character
print ('str[-1] = ',str[-1]) # 最后一个字符,结果为:'!'
print ('str * 2 = ',str * 2) # Prints string two times
print ('str + "TEST" = ',str + "TEST") # Prints concatenated string
将上面代码保存到 variable_types_str1.py 文件中,执行将产生以下结果 -
F:\worksp\python>python variable_types_str1.py
str = yiibai.comstr[0] = ystr[2:5] = ibastr[2:] = ibai.comstr[-1] = mstr * 2 = yiibai.comyiibai.comstr + "TEST" = yiibai.comTEST
F:\worksp\python>Shell
3、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 list
print ('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 times
print ('list + tinylist = ', list + tinylist) # Prints concatenated lists
将上面代码保存到 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
4、Python元组
元组是与列表非常类似的另一个序列数据类型。元组是由多个值以逗号分隔。然而,与列表不同,元组被括在小括号内(())。
列表和元组之间的主要区别是 - 列表括在括号([])中,列表中的元素和大小可以更改,而元组括在括号(())中,无法更新。元组可以被认为是只读列表。 例如 -
#!/usr/bin/python3
#coding=utf-8
# save file : variable_types_tuple.pytuple = ( 'maxsu', 786 , 2.23, 'yiibai', 70.2 )
tinytuple = (999.0, 'maxsu')
# tuple[1] = 'new item value' 不能这样赋值
print ('tuple = ', tuple) # Prints complete tuple
print ('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 times
print ('tuple + tinytuple = ', tuple + tinytuple) # Prints concatenated tuple
将上面代码保存到 variable_types_tuple.py 文件中,执行将产生以下结果 -
F:\worksp\python>python variable_types_tuple.py
tuple = ('maxsu', 786, 2.23, 'yiibai', 70.2)
tuple[0] = maxsu
tuple[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 # 有效的更新,合法
5、Python字典
Python的字典是一种哈希表类型。它们像Perl中发现的关联数组或散列一样工作,由键值对组成。字典键几乎可以是任何Python数据类型,但通常为了方便使用数字或字符串。另一方面,值可以是任意任意的Python对象。
字典由大括号({})括起来,可以使用方括号([])分配和访问值。例如 -
#!/usr/bin/python3
#coding=utf-8
# save file : variable_types_dict.pydict = {}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' key
print ('dict[2] = ', dict[2]) # Prints value for 2 key
print ('tinydict = ', tinydict) # Prints complete dictionary
print ('tinydict.keys() = ', tinydict.keys()) # Prints all the keys
print ('tinydict.values() = ', tinydict.values()) # Prints all the values
将上面代码保存到 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
字典中的元素没有顺序的概念。但是说这些元素是“乱序”是不正确的; 它们是无序的。
数据类型转换
有时,可能需要在内置类型之间执行转换。要在类型之间进行转换,只需使用类型名称作为函数即可。
有以下几种内置函数用于执行从一种数据类型到另一种数据类型的转换。这些函数返回一个表示转换值的新对象。它们分别如下所示 :
函数 | 描述 |
---|---|
int(x [,base]) | 将x转换为整数。如果x是字符串,则要base指定基数 |
float(x) | 将x转换为浮点数 |
complex(real [,imag]) | 创建一个复数 |
str(x) | 将对象x转换为字符串表示形式 |
repr(x) | 将对象x转换为表达式字符串 |
eval(str) | 评估求值一个字符串并返回一个对象 |
tuple(s) | 将s转换为元组 |
list(s) | 将s转换为列表 |
set(s) | 将s转换为集合 |
dict(d) | 创建一个字典,d必须是(key,value)元组的序列 |
frozenset(s) | 将s转换为冻结集 |
chr(x) | 将整数x转换为字符 |
unichr(x) | 将整数x转换为Unicode字符 |
ord(x) | 将单个字符x转换为其整数值 |
hex(x) | 将整数x转换为十六进制字符串 |
oct(x) | 将整数x转换为八进制字符串 |
关于Python的学习指南
学好 Python 不论是就业、副业赚钱、还是提升学习、工作效率,都是非常不错的选择,但要学会 Python 还是要有一个学习规划。 最后,我整理了一份Python全套学习资料,包含视频、源码、课件,给那些想学习 Python 的小伙伴们一点帮助!
① Python所有方向的学习路线图,清楚各个方向要学什么东西
② 100多节Python课程视频,涵盖必备基础、爬虫和数据分析
③ 100多个Python实战案例,学习不再是只会理论
④ 华为出品独家Python漫画教程,手机也能学习
⑤ 历年互联网企业Python面试真题,复习时非常方便
上述这份完整版的Python全套学习资料已经上传CSDN官方,朋友们如果需要可以扫描下方二维码免费获取【保证100%免费】
![](https://i-blog.csdnimg.cn/blog_migrate/014159dac1df9d4fa8112be9be1323d5.png)
一、Python所有方向的学习路线
Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、学习软件
工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。
三、全套PDF电子书
书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。
四、入门学习视频
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。
五、实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
六、清华编程大佬出品《漫画看学Python》
用通俗易懂的漫画,来教你学习Python,让你更容易记住,并且不会枯燥乏味。
七、面试资料
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
这份完整版的Python全套学习资料已经上传至CSDN官方,朋友们如果需要可以点击下方链接或扫描下方二v码都可以免费获取【保证100%免费】
![](https://i-blog.csdnimg.cn/blog_migrate/014159dac1df9d4fa8112be9be1323d5.png)
以上全套资料已经为大家打包准备好了,希望对正在学习Python的你有所帮助!