python 一、python的介绍 python 是一门面向对象,解释型,动态类型语言 面向对象:在python中 一切皆为对象 解释型语言:边解释,边执行, 动态类型:就是检查是在运行才做的。 动态类型语言:在一个文件中变量可以随时改变,使用 var="zhangsan" var="lisi" 静态类型语言:C,c++ var="zhangsan" 变量使用前先定义,定义后才能使用,而且变量定义后就不能修改 如果修改必须重新去编译 特点: 1、执行效率低,每次都要解释 2、目前市面上比较流行web应用,分布式部署,多语言多环境搭建,这种解释型语言更容易扩展,没有平台依赖性 (二)两种语言的区别:解释性语言和编译性语言都是翻译,翻译的时间不一样 2.1编译性语言代表:C,c++ ,pascal/object (1)只须编译一次就可以把源代码编译成机器语言,后面的执行无须重新编译,直接使用之前的编译结果就可以;因此其执行的效率比较高; (2)编译性语言代表:C、C++、Pascal/Object Pascal(Delphi); (3)程序执行效率比较高,但比较依赖编译器,因此跨平台性差一些; 2.2解释性语言 (1)源代码不能直接翻译成机器语言,而是先翻译成中间代码,再由解释器对中间代码进行解释运行; 源代码—>中间代码—>机器语言 (2)程序不需要编译,程序在运行时才翻译成机器语言,每执行一次都要翻译一次; (3)解释性语言代表:Python、JavaScript、Shell、Ruby、MATLAB等; (4)运行效率一般相对比较低,依赖解释器,跨平台性好; 两种语言类型的区别 (1)一般,编译性语言的运行效率比解释性语言更高;但是不能一概而论,部分解释性语言的解释器通过在运行时动态优化代码,甚至能使解释性语言的性能超过编译性语言; (2)编译性语言的跨平台特性比解释性语言差一些; java语言应是编译性-解释性语言,因为其同时具备编译性和解释性两种特性; 我们我要学习python语言 python的特点: 简单,易学,开源,免费,可移植,高级语言,夸平台行、丰富的第三方库 python 主要目的,学习一门语言,使用python语言做自动化,写自动化脚本 测试开发 职位 既测试又开发(写自动化脚本) python版本 python2x python2.7 维护到2020年 python3x python3.5 主流的python3.4;最高版本3.8 python2和python3版本中有很多编号,方法的添加和删除 学习python2.7的原因 我们自动化的框架是基于python2.7的版本开发的 支持的环境 linux CentOS7 默认安装python2.6 命令:python 显示python的版本 windows mac python的使用人群 1、测试爱好者 2、测试开发人员 3、运维人员 4、自动化测试人员 5、大数据 bigdata 6、区块链 blockchain python适用项目 1、人工智能 2、网页爬虫 3、雅虎的地图 4、谷歌中很多插件 5、大数据 bigdata 6、区块链 blockchain python环境搭建安装步骤 1、windows安装python 2、配置环境变量 3、在dos中使用python /pycharm工具写python代码,执行python文件 python环境变量配置 1、在系统环境变量中parth变量中添加python的安装路径 2、如何验证自己的python环境变量配置成功? 在dos中执行命令:python 会显示python版本,如果提示不是内部命令,说明python环境变量配置不正确 print 函数 作用输出 code0 执行成功 code1 执行失败k 二、python操作 1、python2.7最上面一行需要声明字符集格式为utf-8、固定的写法三种 1、1coding=utf-8 1.2coding:utf-8 1.3-*- coding:utf-8 -*- 1.2注释 '单行注释: shift+# , 多行注释 :Ctrl+/ 或 “ ” 或" " " " " " 或 ‘’‘ ‘’‘ 多行注释用''' 注释的内容为''' 文档注释用:"" 注意:单引号注释中不能包括单引号和三引号,但是可以包括双引号 双引号注释中不能包括双引号,但是可以包括单引号和三引号 三引号注释中不能包括三引号,但是可以包括单引号和双引号 反斜杠(\) 转义 例如: # test = 'dcs is '''number''' one' # test = "dcs is '''number''' one" # test = '''dcs is "number" one''' #文档内容的注释用单引号、双引号、三引号都可以 # def f(x): # ''' # 这是一个函数 # :param x: # :return: # ''' Python中的变量命名规则 1.1、字母,数字,下划线组成,但必须是字母或下划线开头,区分大小写 数字不能打头 _input="laowang" dcs="123" 12 ="laoxiao"# 报错 1.2、下划线开头的标识符有特殊意义: 1)、单下划线开头标识符_foo表示不能直接访问的类属性,相当于JAVAprotected类型,需要类提供的实例访问,也不能通过from xxx import *导入 2)、双下划线开头和结尾的标识符,一般为python中特殊的方法标识符,如__init__类的构造函数 1.3 、 python的默认打印方式print ,把结果打印到控制台 分为两种一种:一般输出 另一种:格式化输出 一般输出 # print 123 # print "hello dcs45" 1.4、定义一个变量,在把"hello dcs45"字符串赋值给到test这个变量 test = "hello dcs45" #把"hello dcs45"字符串赋值给到test这个变量 print test #打印test变量、输出结果到控制台 1个等于号是赋值 2个等于号是恒等 1.4 print之格式化输出:通过格式化符实现,常见格式化符如下: %s :字符串 (采用str()的显示) %r :字符串 (采用repr()的显示) %c :单个字符 %b:二进制整数 %d:十进制整数 %i :十进制整数 %o:八进制整数 %x:十六进制整数 %e:指数 (基底写为e) %E:指数 (基底写为E) %f:浮点数 %F:浮点数,与上相同 %% :字符"%" 请注意:字符串就是用单引号或者双引号引起来的 1.4.1%s 字符串可以为字母,数字,特殊字符,优先用str()函数进行字符串转换 test ='广州多测试' test1=123 print type(test) 输出的结果是:<type 'str'> print type(test1) 输出的结果是:<type 'int'> test = '*&^%$#@#$%^'(有疑问) 1.4.1.2将数值类型改成字符类型 print '结果为:%s'%test 输出结果:结果为:广州多测试 s='结果为:%s'%test1 print type(s) 输出结果: <type 'str'> 多个值输出: print "%s number %d" %('duoceshi1',1) print "%s number %d" %(2,'duoceshi2')使用合适的格式化输出 1.4.2 # # %c 单个字符 # test = '1' # print 'result is number %c'%test #result 结果 1.4.3 %d 十进制整数 test = 8 print '年化收益率为:%d'%test print '年化收益率为:%d%%'%test 结果是年化收益率为:8 结果是年化收益率为:8% 1.4.4 #对2位(test,num)进行格式化输出 # test = 'dcs' #字符串 # num = 1 #十进制数 # print '%s is number %d'%(test,num) 或 num =66 print "结果为""%d" %num 输出:结果为59 1.4.5 %i 十进制整数 num =59 print "结果为""%i" %num 输出:结果为59 1.4.6 %o 八进制整数 test = 12 print '结果为:%o'%test 输出:结果为14 1.4.7 %x 十六进制整数 test = 12 print '结果为:%x'%test 输出结果为:c 1.4.8 %e 指数 (基底写为e) test = 12 print '结果为:%e'%test 输出结果:1。200000e+01 1.4.9 E 指数 (基底写为E) 1.4.9 test = 12 print '结果为:%E'%test 输出结果:1。200000E+01 1.4.10 %f 转成浮点数 test = 12 print '结果为:%f'%test 显示:结果为:12.000000 1.4.11 %F 转成浮点数,与上相同 test = 12 print '结果为:%F'%test 显示:结果为:12.000000 1.4.12 %g 指数(e)或浮点数 (根据显示长度) test = 12 print '结果为:%g'%test 显示:结果为:12 1.4.13 %G 指数(E)或浮点数 (根据显示长度) test = 12 print '结果为:%G'%test 显示:结果为:12 1.4.14 %% 百分号标记 就是输出一个%(格式化字符串里面包括百分号,那么必须使用%%) test=12 print('年化收益率为: %d %%' % test) 显示:结果为:8% 1.5.1input语句: 输入用户输入什么数据类型,就会以什么类型保存,但是用户在输入时要符合我们的语法规则 user= raw_input('请输入您的用户名:') print user print type(user) #输入dcs45 结果: <type 'str'> 类型为string字符串 print type() #输入123 结果:<type 'str'> 类型为string字符串 注意:单引号和双引号没有区别 raw_input 语句( 转化格式打印) (1)改语句把所有用户的输入都以字符串形式保存,需要其他数据类似,则需要调用相应的函数进行转换 user=raw_input("账号:") print type(user) print user name=raw_input("账号:") #输入的值是显示字符类型 name1=int(name) #字符串转换成数值类型 print type(name) 结果:<type 'str'> print type(name1) 结果:<type 'int'> (2)同一格式的字符相加是拼接 输入8,从字符串转换数值类型 user=raw_input("账号:") sum =user + "1" #拼接要同一字符格式 , 赋值2进去,等到21,注意,不加“”就报错,不同类型无法操作 print sum 格式固定:以字符串格式输出 1.5.2把str字符串转换为int整型 通过int()函数进行转换 num = int(raw_input('请输入您的内容:')) sum=num+18 #加法运算 print num 输入12 ,显示:结果是30 print type(num) #<type 'int'> 数据类型为int整型 1.5.3 num = raw_input('请输入您的内容:') #将字符类型转成数据类型 print type(int(num)) #<type 'int'> 数据类型为int整型 1.5.4 name = input('请输入您的用户名:') print name #输入xiaowang NameError: name 'xiaowang' is not defined ( 报错 ) print name #输入"xiaowang" 显示结果:xiaowang 数据类型为<type 'str'> print name #输入123 显示结果:123 显示int类型; print type(name) #<type 'int'> 注意:(1)输入的值是数字且带引号,输出的就是字符串 (2)如果输入的是非数字字符,必须加上单引号和双引号 raw_input()和input()总结: # raw_input()该输入将用户所有的输入都转换成字符串存储, # 如果输入内容想要使用其他格式存储需要进行转换数据类型 # input()该输入根据用户输入什么类型值,就以什么类型值存储, # 但是输入时必须符合Python语法的规则 其实Python2.x中, # input()函数让我们明确我们输入的是数字格式还是字符格式, # 就是我们自己要知道我们想的是什么,数字格式直接输入,字符 # 格式必须加上单引号或者双引号,以确定我们输入的是字符串。 #raw_input()结合if条件判断语句 # name = raw_input('请输入您的用户:') #备注格式:二选一; # name = input('请输入您的用户:') # if name == 'admin': # print '登录成功' # else: # print '登录失败' 注意:格式和冒号 例题: user=input("账号: ") if user== 'admin': print "账号正确" else: print "账号错误" 注释方法: #文档内容的注释用单引号、双引号、三引号都可以 # test = 'dcs is '''number''' one' # test = "dcs is '''number''' one" # test = '''dcs is "number" one''' # print test 或 # def f(x): # ''' # 这是一个函数 # ''' 三、操作符 3.1(基础运算符) + - * / //(取整) %(取余) **(幂) 注意:+ 也可以将两个字符串“相加”在一起,这种我们叫做拼接字符串 ,但是不能把两个完全不同的东西拼接在一起。如:数字和文本 可直接写成 输出结果 print 2+2 4 加法 print 2-2 0 减法 print 10/3 3 (取整)# # /传统除法,也叫真除法 整数除整数,只能得出整数。 # # 如果要得到小数部分,把其中一个数改成浮点数即可