Python自动化课之Day2篇

第二部分:Python简介和入门

一、什么是python?

python是一种面向对象、解释型的计算机语言,它的特点是语法简洁、优雅、简单易学。

由荷兰人Guido van Rossum于1989年发明,第一个公开发行版发行于1991年。

Python是纯粹的自由软件。

Python语法简洁清晰,特色之一是强制用空白符(white space)作为语句缩进。

Python具有丰富和强大的库。它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。常见的一种应用情形是,使用Python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更合适的语言改写,比如3D游戏中的图形渲染模块,性能要求特别高,就可以用C/C++重写,而后封装为Python可以调用的扩展类库。需要注意的是在您使用扩展类库时可能需要考虑平台问题,某些可能不提供跨平台的实现。

二、解释型语言和编译型语言

计算机不能直接理解高级语言,只能直接理解机器语言,所以必须要把高级语言翻译成机器语言,计算机才能执行高级语言编写的程序。一个是编译,一个是解释。两种方式只是翻译的时间不同。

编译型语言就是先把写好的程序翻译成计算机语言然后执行,就是所谓的一次编译到处运行,比如c、c++就是编译型语言,这样的语言特点是运行速度快,但是需要事先把程序编译好才可以,程序执行效率高,依赖编译器,跨平台性差些。

解释型语言就是程序在运行的时候,通过一个解释器,把代码一句一句的翻译成计算机语言然后运行,也就是你写好代码之后直接就能运行,比如说python、shell、ruby、java、perl等等都是解释型语言,当然这样的语言由于原理不一样,执行速度并没有编译型语言快,效率比较低,依赖解释器,跨平台性好。

三、选择python2.x还是python3.x?

现在python有2.x版本和python3.x版本,在选择版本这个事情上,很多人都是比较纠结的。到底选择2还是3,因为2和3代码是不怎么兼容的,现在比较常用的是2.7版本,2.7版本其实是一个过渡版本,在2008年的时候推出了3.0版本,由于3.0版本改动比较大,和2.x的版本不兼容,很多用python2的公司dd重写代码太费劲了,所以在同年又发行了2.6过渡版本的python,加入了一些3.0的特性,在2010年的时候发行了2.7版本,也是一个过渡版本,在2014年的时候python官方宣布2.7支持到2020年,以后不会再发行2.8版本,尽快把程序迁移到3.x版本。python2的默认字符集是ASCII编码,写中文会报错,字符编码一直是让程序员头疼的一件事情,python2在处理中文的时候的确比较头疼,在python3.x版本中默认字符集是Unicode,省了很多事,so,还是推荐使用python3.x版本。

四、字符集

字符(Character)是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等。字符集(Character set)是多个字符的集合,字符集种类较多,每个字符集包含的字符个数不同,常见字符集名称:ASCII字符集、GB2312字符集、BIG5字符集、 GB18030字符集、Unicode字符集等。计算机要准确的处理各种字符集文字,需要进行字符编码,以便计算机能够识别和存储各种文字。中文文字数目大,而且还分为简体中文和繁体中文两种不同书写规则的文字,而计算机最初是按英语单字节字符设计的,因此,对中文字符进行编码,是中文信息交流的技术基础

2进制:二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”,由18世纪德国数理哲学大师莱布尼兹发现。当前的计算机系统使用的基本上是二进制系统,数据在计算机中主要是以补码的形式存储的。计算机中的二进制则是一个非常微小的开关,用“开”来表示1,“关”来表示0。

字节:字节是指一小组相邻的二进制数码。通常是8位作为一个字节。它是构成信息的一个小单位,并作为一个整体来参加操作。

ASCII码:ASCII 码使用指定的7 位或8 位二进制数组合来表示128 或256 种可能的字符。标准ASCII 码也叫基础ASCII码,使用7 位二进制数(剩下的1位二进制为0)来表示所有的大写和小写字母,数字0 到9、标点符号, 以及在美式英语中使用的特殊控制字符。

ASCII码表,http://www.96yx.com/tool/ASC2.htm。

汉字博大精深,还有什么少数民族的字,怎么办,我们也要用电脑啊!但是前面已经说了,一个字节最大存的数字是255,老美这帮哥们已经用了127个了,剩下的不够啊,汉字加上少数民族的文字最起码有好几万,这可怎么办呢,中国人就是聪明,那咱就少用点,取了127后面的一些数字,具体用的多少,我也记不得了,只要遇到这个区间的数字,就知道是中文,去另一个编码表里面找,这个里面存的都是中文,还有其他国家的文件,比如说日文,韩文等等,这个叫做gb2312编码,它收录了6000+个汉字,这样的话,就可以解决计算机不认识中文的问题了。但是中国文化,博大精深,岂止有6000+个汉字,然后又有了gbk、Unicode、UTF-8等等编码,Unicode编码也叫万国码,哪个国家的文字都适用,但是它不管你是一个英文字母,还是一个汉字都是占2个字节大小,原来ASCII码一个英文字母就占一个字节,这一下变大了,原来100G的东西,现在可能得200G才存的下,这可不行,然后就又出现了UTF-8字符集,它也属于Unicode,和Unicode的不一样的是,它对Unicode做了压缩,比如说英文字母的还是占一个字节,这样的话,就节省的很多的空间,这就是为啥现在大家都用utf8的原因。

五、python安装

想使用python命令需要把python的安装目录加到环境变量中,windows下还要把python安装目录下的scripts目录加入到环境变量中,因为一些python的可执行命令,比如说pip,是安装在这个目录下的,linux下因为默认带python了,如果要升级版本的,要先把系统自带的python改名或者卸载掉,再安装你要的python版本,centos下由于yum依赖自带的python2.6,所有不能卸载,修改下yum脚本里面的python环境变量位置即可。

六、Pycharm

1.Pycharm如何设置字体

File-->Settings-->Editor-->Colors&Fonts   选择Scheme-->Save as-->修改字体和大小。

2.新建new project

选择路径:

3.在Pycharm里直接把代码上传至GIT.

如何下载GIT项目到Pycharm上

上传代码至GIT

两种方式运行python命令:

1.在pycharm里,右键-》Run **.py.

2.在cmd里运行

右键点击**.py文件,

在路径里直接cmd,python **,py即可。

或者pycharm里的Terminal输入操作系统命令。

七、变量

变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念。变量可以通过变量名访问。说的简单点,就是存东西,供后面来用的。python中定义变量很简单,一个等号搞定,也不需要指定数据类型,直接定义就好,值得一提的是python变量里面存的是内存地址,也就是这个值存在内存里面的哪个地方,如果再把这个变量赋值给另一个变量的话,新的变量通过之前那个变量知道那个变量值的内存地址存起来,而不是指向的之前那个变量。

例:

name=‘LJ‘  (定义字符串必须要加‘’)age=20print(name)print(age)

变量的定义规则:

变量名要见名知意,不能瞎写,不要用拼音,更不要用中文当变量名,虽然python的确可以用中文当变量名!

变量名只能是 字母、数字或下划线的任意组合,变量名可以用字母或者下划线打头,但不能以数字打头。
变量名不能包含空格,但可以使用下划线来分隔其中的单词。
不要将python关键字和函数名用作变量名,即不要使用python保留用于特殊用途的单词,如print,and, as, continue, for , is, while, or, in ,else, def.............

变量名应既简短又具有描述性。

慎用小写字母l和大写字母O,因为它们可能被人错看成数字1和0.

八、python中的单引号、双引号和三引号(就是三个单引号)

python中定义变量的时候字符串都用用引号括起来,单引号和双引号没有区别,用啥都行,如果说这个字符串里面有单引号的话,那你外面就用双引号,里面有双引号的话,外面就用单引号,如果既有单又有双,那么用三引号,三引号也可以多行注释代码,单行注释,使用#。

例:

message=‘I told my friend,"Python is my favorite language"‘print(message)输出:I told my friend,"Python is my favorite language"

九、输入、输出

python接收用户输入,使用input函数;输出使用print。

例:

name=input(‘Please enter your name:‘) #把接收到的值赋给name变量print(name)   #输出接收到的输入

input在接收输入的时候,是可以看到你输入的值的,如果是输入密码这样的,不想让别人看到你的密码,就需要用到一个标准库,getpass,什么是标准库呢,就是不需要你再去安装,装完python就有的库,就是标准库,getpass就是一个标准库,导入进来之后,直接使用getpass.getpass方法就可以在输入的时候,不回显了,代码如下:

import getpassname=input(‘请输入你的名字:‘)passwd=getpass.getpass(‘请输入你的密码:‘)print(name)print(passwd)

Pycharm里不支持运行此代码,必须用Python **.py在terminal或者cmd里运行。

十、条件判断

1. python中条件判断使用if else来判断,多分支的话使用if elif ... else,也就是如果怎么怎么样就怎么怎么样,否则就怎么怎么这样

python中是以缩进来表示代码块的,这样看起来代码很有条理,比如说上面的例子,如果明天下雨,那么明天才会带伞,明天带伞就相当于if的儿子,所以也可以认为有缩进的都是有父子关系的,写个实际点的例子,如下:

name1=‘LJ‘name2=‘zhx‘name=input(‘please enter your name: ‘)if name==name1:    print(‘You are welcome‘)elif name==name2:    print(‘Welcome home! ‘)else:    print(‘Happy everyday~‘)

if判断判断的是两种类型,一种是真一种是假 (布尔类型)

t=True

f=False

例:

car=‘bmw‘car1=input(‘enter car name:‘)print(car1==car)输出: enter car name: bmw      Ture

条件判断:

==等于

!=不等于

>大于

<小于

>=大于等于

<=小于等于

注意,必须同类型的做比较运算,不同类型的会报错。

2.if ...and 和 if... or

print(type(变量))   #看变量是什么类型#

input()函数接收到的值,全部都是字符串类型的,如果要和int类型做比较的话,必须用int()把字符串转成int类型的,才能做比较。

强制类型转换: age=int(input(‘请输入你的年龄: ’)

例:

sex=input(‘请输入你的性别:‘)age=int(input(‘请输入你的年龄:‘))print(‘看age是什么类型的:‘, type(age))if sex==‘男‘ and age<20:    print(‘小鲜肉‘)elif sex==‘女‘ and age<20:    print(‘小鲜花‘)else:    print(‘老家伙‘)

if...or... 满足其中一个条件

#float类型是可以和int类型做比较,相加

s=‘呵呵呵‘    #字符串

a=18 #int类型,整型的

c=True #布尔型的,False

d=18.8 #小数类型, float

# print(1/2)
# print(1//2)#地板除,就是自动取整,不会四舍五入,直接把小数部分抹去

#在python2里面,这么运算print(1/2),结果是不正确的,因为在python2里面int和int类型运算会自动取整,在python3里面是没有任何问题的

#if判断时候,都是判断的真或者假,也就是True和False
#记住一句话,非0即真,非空即真

name=input(‘请输入你的名字:‘)if name:    print(name)else:    print(‘erro...‘)

十一、格式化输出

什么是格式化输出呢,就是说把你的输出都格式化成一个样子的,比如说登录的欢迎信息,都是welcome to login,Marry. 每个用户登录都是这样欢迎,但是每个用户的用户名都是一样的,你不能一个用户就写一行代码吧,这就需要用到格式化输出了,有三种方式,第一种是用“+”连接,直接把输出的字符串和变量连接起来就可以了;第二种是用占位符,占位符有常用的有三种,%s、%d和%f,%s是后面的值是一个字符串,%d是后面的值必须是一个整数,%f后面是小数;第三种是使用{}和fromat方法,这三种呢,官方推荐是使用format方法,不推荐使用第一种,第一种用加号的,会在内存里面开辟多个内存空间,而后面两种是只开辟一块内存空间,使用方式如下:

字符串格式化

 

name=input(‘请输入你的名字:‘)print(‘欢迎你‘+name)    #第一种用+连接,不推荐使用,效率不高

print(‘欢迎你‘,name)    #第二种用,连接
print(‘欢迎你%s‘%name)  #%s表示占位符,常用。

例:
name=input(‘请输入你的名字:‘)sex=input(‘请输入你的名字性别:‘)print(‘欢迎你【%s】,你的性别是【%s】‘%(name,sex))   #使用多个占位符

占位符:%d 代表后面的变量是整数      %f 代表后面跟的是小数,不指定位数默认保留6位,%.2f 保留几位小数,会四舍五入
例:age=int(input(‘请输入一个整数:‘))grade=float(input(‘请输入你的成绩:‘))print(‘你输入的整数是%d‘%age)print(‘你的成绩是%.2f‘%grade)

如果参数比较少的情况下, 用占位符比较简单如果参数多的情况下,用.format这种方式格式化更为直观例:
age=int(input(‘请输入一个整数:‘))grade=float(input(‘请输入你的成绩:‘))print(‘你的年纪是{your_age}‘,‘你的成绩是{your_grade}‘.format(your_age=age, your_grade=grade))

十二、循环

循环就是为你重复的去做事情,比如说你想建1000个文件夹,一个个建累死你, 这样就可以写段代码,使用循环给你创建1000个就省事了,python中有两种循环,while和for,两种循环的区别是,while循环之前,先判断一次,如果满足条件的话,再循环,for循环的时候必须有一个可迭代的对象,才能循环,比如说得有一个数组,值得一提的是,别的语言中,for循环的时候需要先定义一个计数器变量,然后从0开始加,直到这个计数器达到你预设的一个值,然后停止循环,取数据的时候也是通过数组的下标从0开始取,这样就很麻烦,python中for循环很简单,循环的是一个可迭代对象中的元素,你这个对象中有多少个元素,就循环多少次,比如说一个数组list,list = [‘a‘,‘b‘,‘c‘],在别的语言中要想获取到list中所有的值,必须得使用循环取下标这种方式去取数据,就得这样写list[x],list[x],list[x]这样,在Python里面就不需要直接循环就取的是这个list里面的值,循环里面还有两个比较重要的关键字,continue和break,continue的意思是,跳出本次循环,继续进行下一次循环,break的意思是停止循环,也就是说在continue和break下面的代码都是不执行的

循环,遍历,迭代python里面循环有两种:whilefor

1.while循环
count=int(input(‘请输入一个整数:‘)) #count是一个计数器while count<10:    print(‘you are good person‘)    count=count+1    #循环体else:    print(‘done!‘)

break 退出循环,break只能在循环里面用,如果在循环里遇到break,那么立即退出循环例:count=0while count<10:    print(‘sing a song!‘)    count=count+1    if count==5:        break
continue的用法,continue的作用是退出本次循环count=0while count<10:    count=count+1    if count==5:        continue    print(‘sing a song!%d‘%count)

2.for循环
for,continue用法例:for i in range(10):    if i==4:        continue    print(‘sing a song,%s‘ % i)
for count in range(1,10): #顾头不顾尾    print(count)
else:    print(‘over...‘)#for循环对应的else,只有当for循环正常结束才会执行
				
时间: 2024-10-08 15:32:15

Python自动化课之Day2篇的相关文章

Python自动化课之Day1篇 (未完)

开篇我其实想说,我是一个连接口是什么都需要百度来理解半天的百分百零基础技术渣,之前的十年工作除了穿插其中的几次项目管理经验,技术方面就是手机+黑盒+天天按照step点点点,一年的技术经验用了十年而已.虽然报名的时候助教说这是零基础python自动化班,可第一节课上下来发现其实大家还都是从事互联网相关行业的,所以可能都比我专业哈哈,只能尽自己最大的努力了.以下内容与其说是博客不如说是学习笔记了,希望有不对的地方有人给指出来~ Python自动化课Day1 第一阶段第一课:接口测试基础 目标:熟练掌

Python自动化基础【第一篇】:目录

本系列博文包含 Python基础.前端开发.Web框架.缓存以及队列等,希望可以给正在学习编程的童鞋提供一点帮助!!! Python自动化基础[第一篇]:目录 Python自动化基础[第二篇]:初识Python Python自动化基础[第三篇]:Python基本数据类型 Python自动化基础[第四篇]:Python基础之函数 Python自动化基础[第五篇]:Python基础之杂货铺 Python自动化基础[第六篇]:模块 Python自动化基础[第七篇]:面向对象 Python自动化基础[第

Python自动化 【第七篇】:Python基础-面向对象高级语法、异常处理、Scoket开发基础

本节内容: 1.     面向对象高级语法部分 1.1   静态方法.类方法.属性方法 1.2   类的特殊方法 1.3   反射 2.     异常处理 3.     Socket开发基础 1.     面向对象高级语法部分 1.1   静态方法.类方法.属性方法 1)   静态方法 通过@staticmethod装饰器即可把其装饰的方法变为一个静态方法.普通的方法,可以在实例化后直接调用,并且在方法里可以通过self.调用实例变量或类变量,但静态方法是不可以访问实例变量或类变量的,一个不能访

Python自动化 【第十一篇】:Python进阶-RabbitMQ队列/Memcached/Redis

 本节内容: RabbitMQ队列 Memcached Redis 1.  RabbitMQ 安装 http://www.rabbitmq.com/install-standalone-mac.html 安装python rabbitMQ module pip install pika or easy_install pika or 源码 https://pypi.python.org/pypi/pika 实现最简单的队列 send 端 received 端 1.1 Work Queues 在这

Python自动化 【第五篇】:Python基础-常用模块

目录 模块介绍 time和datetime模块 random os sys shutil json和pickle shelve xml处理 yaml处理 configparser hashlib re正则表达式 1.      模块介绍 1.1    定义 能够实现某个功能的代码集合(本质是py文件)  test.p的模块名是test包的定义:用来从逻辑上组织模块,本质就是一个目录(必须带有一个__init__.py文件) 1.2    导入方法 a) Import module b) Impo

Python自动化开发,Day2 - Python基础2

本章内容 holle word 变量 字符编码 用户输入 模块初始 数据类型 数据运算 if......else 一.第一个程序 holle word 1 #! /usr/bin/env python 2 # -*- coding:utf-8 -*- 3 #Author:Lyon 4 5 print("holle word") 在Python3.5.2环境下执行,执行结果如下: 1 Python 3.5.2 (v3.5.2:4def2a2901a5,Jun 25 2016, 22:18

Python自动化 【第六篇】:Python基础-面向对象

  目录: 面向过程VS面向对象 面向对象编程介绍 为什么要用面向对象进行开发 面向对象的特性:封装.继承.多态 面向过程 VS 面向对象 面向过程编程(Procedural Programming) 面向过程编程依赖一个procedure包含一组要被进行计算的步骤, 面向过程又被称为top-down languages, 就是程序从上到下一步步执行,一步步从上到下,从头到尾的解决问题 .基本设计思路就是程序一开始是要着手解决一个大的问题,然后把一个大问题分解成很多个小问题或子过程,这些子过程再

Python自动化 【第八篇】:Python基础-Socket编程进阶

本节内容: Socket语法及相关 SocketServer实现多并发 1. Socket语法及相关 sk = socket.socket(socket.AF_INET,socket.SOCK_STREAM,0) 参数一:地址簇 socket.AF_INET IPv4(默认) socket.AF_INET6 IPv6 socket.AF_UNIX 只能够用于单一的Unix系统进程间通信 参数二:类型 socket.SOCK_STREAM 流式socket , for TCP (默认) socke

python自动化测试报告(excel篇)

转:https://www.jianshu.com/p/6c5d328bf390 # -*- coding: utf-8 -*- import xlsxwriter def get_format(wd, option={}): return wd.add_format(option) # 设置居中 def get_format_center(wd,num=1): return wd.add_format({'align': 'center','valign': 'vcenter','border