Python语言介绍
1.1 Python语言介绍
命名:原本是一个戏剧团的名称Python
1.2 Python能做什么
系统运维,目前在运维领域Python语言最牛逼;
网络编程(爬虫:从网上扒数据然后分类,服务器编程,搜索引擎);
科学计算;
教学;
AI、图像、游戏
1.3 Python特点
优点:纯面向对象、免费、移植性能好、可混合编程(胶水语言)、开发效率高
缺点:运行速度比较慢
1.4 Python版本问题
Python 2.x
Python 3.x
教学版本 >= 3.5
环境搭建
所需软件:
1.Python解释器(Python官网:www.python.org)
2.包安装器 pip,conda
3.Jupyter Notebook(www.jupyter.org):一个原本用于科学计算的python交互环境,支持Markdown
4.IDE(www.jetbrains.com):PyCharm 集成开发环境
5.虚拟环境(https://www.anaconda.com):一个虚拟出来的python解释器和相应的编程环境,即一个沙箱环境,防止多个项目的环境项目污染 Anaconda
平台:
windows环境安装:
1.cmd-python 查看是否安装成功python解释器
2.anaconda 程序-所有程序-anaconda3 能运行有就说明安装成功
3.PyCharm 如果PyCharm能运行,说明成功
linux环境安装
1.虚拟环境模拟软件:VMware
2.安装CentOS
3.安装python
MaxOs环境安装:
第一个Python程序
1.编写
-工具,用什么进行输入:记事本
-后缀:py,非必须
-格式:python是严格格式代码
2.运行
-命令行下运行:cmd+r
-交互环境下一行一行输入运行
3.代码组成
-导入第三方工具包
-程序代码:语句、函数、类、表达式、注释
Python语言基础
1.变量命名规则
1.1.变量名必须以字母、下划线、数字、汉字(不推荐)开头,不能使用python关键字和保留字
1.2.区分大小写 you不等于YOU
2.变量推荐命名法则
2.1.使用英文单词或者缩写
2.2.汉字、拼音不推荐
2.3.驼峰命名法:多个单词构成,除第一个其他首字母大写,例如myAge,myFirstName
2.4.大驼峰:所有单词首字母大写,例如MyAge
2.5.posix命名法:由单词构成,全部小写,单词间下划线连接,例如:my_age
3.Python基础数据类型
3.1数字类型
常量数字:直接表示出来的数字就是常量数
数字类型 | 数字举例
十进制 1,123,-21
浮点数 -0.988,2.21,4e-12,4.32e23
复数 3+56j,4.5+7.83j
二进制(0b开头) 0b1001
十六进制(0x开头) 0xfec
八进制(0o开头) 0o432
注:八进制在python2.x中可以以“0”或“0o”开头,python3.x中以"0o"开头
整数:通常指不带有小数部分的数,包括自然数,0,负数,在pyton中表示任意大的数字。例如23,-9,0
整数的进制:
十进制:逢10进1
二进制:逢2进1,由0,1组成,python中的二进制常量以"0b"开头
八进制:逢8进1,由0-7的数字组成,python中的二进制常量以"0o"开头
十六进制:逢16进1,由0-9,A,B,C,D,E,F表示0-15的数字,python中的二进制常量以"0x"开头
不同进制之间的转换:
十进制转二进制:bin()
十进制转八进制:oct()
十进制转十六进制:hex()
浮点数:即我们日常理解的小数。
表现的形式:
常见的小数,1.0,1.2,3.0
科学计数法:小数乘以10为底的指数,指数可以为负数 3.2222*10^5
复数:由实部和虚部组成,中间由‘+‘号链接,虚部后跟‘j’表示。
例如:3+4j
3.2 字符串类型
3.2.1 什么是字符串?
–即表示文本的一种形式。
例如:“我爱北京天安门。”
–排列有序
–在非注释中,凡是用引号引起来的部分是字符串
3.2.2 引号类型:
单引号:‘hello’
双引号:“hello”
三单引号:’’‘hello’’’
三双引号:""“hello”""
3.2.3 四种引号的区别
单引号和双引号没有区别
三单引号和三双引号没有区别
三引号被常用来表示多行字符串信息,或者在程序函数内部函数整体开头表示函数说明
–字符串中出现引号,需要使用转义字符或者其他的形式的引号
例如:想表示 let’s go
“let’s go” 或者 ‘’‘let’s go’’’ 或者""“let’s go”"" 或者 ‘let’s go’
3.2.4 常用转义字符:
单引号:’ 双引号:" 响铃:\a 反斜杠:\ 换行:\n 水平制表符:\t
3.2.5 String类型的API
API:applicationprogramminginterface 引用程序接口,我们只需要来调用就行了
1.一般函数:
startswith/endswith:判断是否以特定XXX字符串开头或者结尾
count:计算一个字符在一个字符串中出现的次数
find:查找字符串中子字符串出现的位置,并返回第一个查找的位置,返回结果大于等于0表示查到的位置,返回结果为-1表示查不到
2.判断字符串:
其一定判断功能的字符串
islower/isupper:判断字符串是小写还是大写
isdigit:判断字符串是否全部由数字字符组成
isalpha:判断字符串是否全部由字母组成
3.操作类函数:
lower/upper:转换大小写
strip/lstrip/rstrip:去掉空格/去掉左边空格/去掉右边空格
swapcase:字符串中字符交换大小写
3.2.6 字符串的格式化
把字符串按照一定的格式进行打印或者填充
格式化的分类:
1.使用%进行格式化
占位符的种类:
%s表示简单的字符串
%r表示字符串
%c表示整数转换为单个字符
%d表示一个整数
%u表示无符号整数
%o表示八进制
%x表示十六进制,字母为小写x
%X表示十六进制,字母为大写X
%e:浮点数,例如2.87e+12
%E:浮点数,例如2.87E+12
%.xf表示浮点小数,x表示几位小数
格式字符千出现整数表示此占位符所占位置的宽度
格式字符前面出现+表示右对齐,-表示左对齐
例如:“my name is %s,my age is %d,my height is %.2f” %(“xulutao”,25,175.234)
2.使用format函数
3.2.7 布尔变量
表示真假 true/false
*如果布尔值作为数字参与运算,所有非0的数字都为true,但是,反之如果true作为数字参与运算则为1,false为0
例如:false+8=8 true+8=9
if 32: #if后面只能跟布尔值,所以这里32作为布尔值为true,所有非0的数字都是true
print(“nihao”)
3.2.8 None
是一个特殊的常量,不表示任何类型,通常用来占位,或者变量绑定解除,None与任何其他类型进行比较永远返回false
作用:-占位
-变量绑定解除
例子:a=33 print(a) a= None print(a)
4.运算符
4.1算数运算符
+,-,,/,%,//
+ : 加法
- : 减法
/ :除法
在python3中两数相除,结果为浮点数
例:5/2=2.5 4/2=2.0 4/3=1.3333333333333333
// :地板除
两数相除,得到的结果取整,但是不意味着得到的结果一定是整数,
如两整数正好结果为整数,则得到整数,否则出现浮点数
例:4//2 = 2 4.0//2 = 2.0 25//3 = 8 25.0//3 = 8.0
% :表示取余
例:5/3 商1余2
*:表示幂指数
例:42 表示4的2次方 53表示5的3次方
4.2算数运算符优先级
三个等级:1.** 2.,/,%,// 3.+,-
有括号先计算括号内
4.3赋值运算符
=,+=,-=,=,/=,%=,**=,//=
a+=b就是a=a+b
a-=b就是a=a-b
为python变量提供赋值运算功能的符号
python中允许批量赋值,左边的数量必须和右边一样,用逗号分开
例:a,b,c = 10,20,30
python允许两个变量进行交换
例:a=100,b=200 a,b = b,a
4.4比较运算符
返回的结果为布尔值
<,>,>=,<=,==,!=
在python3中,不等于符号只有一个!=
4.5逻辑运算符
and:逻辑与 or:逻辑或 not:逻辑非
and 逻辑与,如果不能理解,可以把true看作1,false看作0,and就是乘号
例:True and False = False
or 逻辑或,如果不能理解,可以把true看作1,false看作0,or就是加号
例:False or True = True
not 逻辑非,如果不能理解,可以把true看作1,false看作0,not看作取反
例:not True = False not False = True not 3 > 4 = True
4.6特殊运算符
is,is not ,del
is:判断两个变量,对象是否为同一个
两个对象/变量是否是is的依据是,id值是否一样
例:a=7897 b=7897 a is b = False
在python中一些初级的,常用的对象,被放入内存中,供大家使用不用再创建,于是出现这样的情况
例:a=1 b=1 a is b = True
is not:跟is操作符正好相反
a is not b
del:用于删除变量,同时解除与对象的关联,如果可能则释放对象
例:b = 1
print(b)
del b
print(b) #报错,b没有定义
4.7基本输入输出
input:从标准输入设备上读取一个字符串,末尾的换行符会被自动删除
注意:input返回值永远是一个字符串
例:input(“请输入您的年龄,按回车键结束:”)
print:输出/打印信息到标准输出设备
age = input(“请输入您的年龄,按回车键结束:”)
print(“您的年龄为%s” % age)
4.8程序结构
程序可以由三种结构组成全部:程序结构=顺序+分支+循环
4.8.1 if语句
语法:
if (条件表达式) :
程序处理模块
例子:score = 89
if ( score >= 90)
print(“A”)
if( score >=80 and score <90 )
print(“B”)
python中用缩进来表示程序结构或代码的层级关系
注意:缩进可以用tab键或者空格,一个tab表示几个空格,在python2中只要空格数相同tab和空格键可以混用,但是在python3在不可以混用,推荐使用tab键
#pass语句:占位符号,不起任何作用,不执行任何语句
例:if(3>0) :
pass
4.8.2 if else语句
语法:
例:输入成绩,大于等于90输出A,否则判断是否大于等于60,大于输出及格否则输出不及格。
score = input(“请输入您的成绩,按回车键结束:”)
#input返回值都是str,需要转换为整数类型
score = int(score)
if (score >=90) :
print(“你的成绩为A”)
else :
if (score >= 60) :
print(“你的成绩为及格”)
else :
print(“你的成绩为不及格”)
4.8.3 三元操作符
元:操作数的意思,所谓三元,就是一个操作符带动三个操作数一起运算
语法: x if 条件 else y
例:如果1<3 返回43否则返回34 a = 43 if 1 < 3 else 34
4.8.4 循环预备知识
list
列表:用来盛放/表示一串性质相同或者相似的数据,这些数据组成有序的一种排列方式
#python中一个列表可以盛放:数字、字符串、列表、或者其他复杂结构
#列表定义
1.直接表示列表,需要用中括号括起来,中间用逗号隔开
L1 = [1,2,3,4,5
#range:一个函数,产生一个有规律的由数字组成的列表,使用时包含三个参数:range(start,end,step)
start:开始数字,生成的列表里的第一个数字,默认为0
end:结束数字,不包含在生成的列表里
step:步长,即每次增加多少,默认为1
4.8.5 For循环
#for循环特点:有一个清晰的循环次数,或者清晰的循环结束标志
#语法:for i in xxx :
循环语句模块
例:对于在L1中的每一个元素,我们给这个元素临时用变量idx表示,执行打印操作
L1 = [1,2,3,4,5,6,7]
for idx in L1 :
print(idx)
L2 = range(1,8)
for idx in L2 :
print(idx)
例:利用range函数和for循环对1-50的数求和
mySum = 0
L = range(1,51)
for idx in L :
mySum+=idx;
print(mySum)
4.8.6 while循环
#while循环特点:当满足一定条件时才循环,具体循环多少次数没有具体规定或者规划
#语法:while(循环条件) :
循环体
例:银行利息,本金10000,年息7%,多少年后本金会超过13000
year = 0
money = 13000
while(money<=13000):
money*=1.07
year+=1
print("%d年后会超过" % year)
例:1-50求和,while必须用
sum=0
n=1
while(n<51):
sum+=n
n+=1
print(sum)
4.8.7 break语句
无条件终止循环并跳出循环体,对于多重循环,break语句只跳出离他最近的一次循环
例:在50到100之间寻找第一个可以被整9除的数。
for idx in range(50,101) :
if idx%9==0:
print(idx)
break
4.8.7 continue语句
跳过这一轮循环,继续下一轮循环
例:累加求和,1-100累加求和,当数字为奇数时才累加。
suum = 0
for idx in range(1,101) :
if idx %2 == 0:
continue
suum+=idx
print(suum)
4.8.8 函数
#几个问题:
函数名/函数定义
参数
返回值
#函数定义:
def funcName() :
print(“这是我的第一个函数”)
#函数的调用:调用直接用函数的名称,有参数输入参数,没参数用空括号
funcName()
4.8.9 函数返回值return
函数的类型一般就是返回值的类型,不返回数据可以没有return,但不建议去掉
如果不返回值,则自动默认返回None
函数可以返回复杂类型,亦可以返回多个值
例:
#返回多个值,用逗号隔开;多个返回值函数只能是一个tuple类型或者相同数量变量
def func(one,two)
one+=100
two+=100
three=one+two
return one,two,three
#对多个返回值的调用,如果返回值放入一个变量中,则默认此变量为tuple类型,即多个返回值自动打包为tuple
res = func(1,2)
print(res)
#对多个返回值的调用,返回值放入多个变量中
r1,r2,r3 = func(1,2)
print(r1,r2,r3)
4.9 参数
在函数中,用来占位具有一定表示意义的变量名
分类:
形参:形式参数的名称 ,给实参用来占位
实参:实际参数的名称 ,实参用来参与具体运算
关键字参数:对参数进行别名设置,同时使参数具有了默认值形参用来定义
默认参数:参数在定义时带默认值
序列、字典参数:序列参数是指参数作为一个列表传入,字典参数是指参数作为一个字典传入
星号元组参数:允许
例:
#形参
def func01(name)
print(“My name is %s” % name )
#实参,在调用的时候它有了具体的含义
func01(“Tom”)
#关键字参数:忽略参数的顺序,调用时显示的效果一样
func01(name=“Tom”,food=“fish”)
func01(food=“fish”,name=“Tom”)
#默认参数
默认参数的定义:需要使用关键字参数,语法格式为arg=xxx,默认参数必须放在参数列表后面,且默认参数后不得再有普通参数
先定义一个函数,在需要默认参数的后面加上值,且后面不能再有普通参数
def func02(name,score=60) :
if(score >= 60):
print(“恭喜%s考了%d,不用重考” % (name,score))
else:
print(“很遗憾%s只考了%d,需要重考” %(name,score))
#序列、字典参数
例:
#序列参数怎么传入呢?
##定义一个函数
def myFunc(name1,name2,name3)
print(n1+n2+n3)
##把实参作为列表传入,序列的长度必须和形参个数相同
pl=[“one”,“two”,“three”]
##怎么调用,则需要特俗标识符"*“表示出来
myFunc1(*pl)
#字典参数怎么传入呢?
##尝试把所有参数放入一个字典,字典的长度必须和形参个数相同,字典的键必须对应形参,键作为字符串类型
d = {“a”:“tom”,“b”:“jerry”,“c”:“ketty”}
##怎么调用呢,则需要特俗标识符”**"表示出来
myFunc1(**d)
#星号元组参数
例:
##先定义星号元组参数函数
def func03(*arg) :
print(arg)
##怎么调用,如果不输入参数则函数认为你给了一个空列表,如果输入参数则函数自动打包把实参放入列表然后传入
func03(“tom”,“tim”,“jerry”,“jay”)
5.0 函数文档
函数文档是在函数开头起一定说明性的一段文字,通过查看_doc_属性可以查看函数定义的doc内容
例:
def func1(one) :
‘’‘么有实际意义,只是显示文档的位置
参数只有一个叫做one
哈哈哈哈,不用每一行都要#
‘’’
print(“The first func1”)
return one
#如何查看函数的文档内容呢
func1.doc