1.python是什么
->pyhton是一种解释器
->python是一种解释型编程语言
2.Python的发展历史
python是由Guido van Rossum(吉多·范罗苏姆/人称龟叔)在八十年代末和九十年代初,在荷兰国家数学和计算机科学研究所设计出来的。
python本身也是由诸多其他语言发展而来的,这包括ABC、Modula-3、C、C++、Algol-68、SmallTalk、Unix shell和其他脚本语言等等。
python源代码同样遵循GPL(GNU General Public License)协议。
现在的python是由一个核心开发团队在维护,Guido Van Rossum仍然占据着至关重要的作用,指导其发展。
python2.7被确定为最后一个python2.x版本,它除了支持Python2.x语法外,还支持部分python3.1语法。
官方宣布,2020年1月1日,停止Python 2的更新。
Python 2.0于2000年10月16日发布,增加了实现完整的垃圾回收,并且支持 Unicode。
Python 3.0于2008年12月3日发布,此版不完全兼容之前的 Python源代码。不过,很多新特性后来也被移植到旧的Python 2.6/2.7版本。
Python 3.0版本,常被称为Python 3000,或简称Py3k。相对于Python的早期版本,这是一个较大的升级。
3.python特点
>易于学习:python有相对较少的关键字,结构简单,和一个明确定义的语法,学习起来更加简单。
>易于阅读:python代码定义的更清晰。
>易于维护:python的成功在于它的源代码是相当容易维护的。
>一个广泛的标准库:python的最大的优势之一是丰富的库,跨平台的,在UNIX,Windows和Macintosh兼容很好。
>互动模式:互动模式的支持,您可以从终端输入执行代码并获得结果的语言,互动的测试和调试代码片段。
>可移植:基于其开放源代码的特性,python已经被移植(也就是使其工作)到许多平台。
>可扩展:如果你需要一段运行很快的关键代码,或者是想要编写一些不愿开放的算法,你可以使用C或C++完成那部分程序,
然后从你的python程序中调用。
>数据库:python提供所有主要的商业数据库的接口。
>GUI编程:python支持GUI可以创建和移植到许多系统调用。
>可嵌入:可以将python嵌入到C/C++程序,让你的程序的用户获得“脚本化”的能力。
4.python的应用
->测试脚本(测试+运维)
->C++/Java(在此类工作中都会涉及到python)
->人工智能
->大数据、数据挖掘
->凡是跟人工智能相关的岗位都会涉及到python
5.python开发环境的搭建
->解释器
python解释器现阶段分为两个版本:
python2 最后一个版本 python2.7 一些古老的项目有用到
python3 目前的主流版本 一般人工智能接口只支持python3
解释器安装:
python 3.6.2
->安装路径:纯英文
->安装插件:
tk(tkinter)(GUI编程要用的包)
pip(第三方库的安装,卸载,查看的管理工具)
->add path(添加环境变量)
->install for all users(安装的python所有用户都能使用)
->编辑器
能够编辑文件的编辑器就行
notepad
notepad++
Sublime Text
VS code:下载相应的python插件,即可进行脚本的编程和运行(推荐)
->python解释器的使用:
打开终端(win键+R----->输入cmd),只要将python的路径配进环境变量PATH中,在任意目录下都能执行python解释器
python 回车:
打开python解释器,打开之后就可以输入python语句,输入一行,解释一行
退出:exit()
python中变量定义前面没有指定数据类型,数据类型由存储的数据决定。
而python中是存在数据类型的
如何查看python中变量的数据类型:
type(变量名)
python中的输入输出函数:
print():格式化输出
input():输入,输入的数据都是字符串
然而,我们真正的使用时,并不是一行一行的输入,一行一行的解释
大多数情况,为了避免重复的输入相同的python语句,我们可以将语句按照一定的逻辑写入一个文件,
让python解释器去解释该文件,并且文件的复用性较强。
我们把这样的文件称之为python脚本。
6.python脚本的编写和解释
->如何创建python脚本
打开一个编辑器,然后输入python语句,将文件存为以.py结尾的文件,就可以了。
->如何运行python脚本
python 带路径的脚本名
例如:python myf.py
->VS Code编辑器
离线配置python插件
extensions
--------> ...
--------->Install From VSIX...
使用VS Code:
->VS Code 一般当作一个工作站使用
->在自己文件系统中新建一个文件夹,作为自己的工作栈
->使用VS Code打开文件夹
->File--->open Folder...
->然后在Explore中就能看到自己打开的文件夹
新建文件 New File
新建文件夹 New Floder
->如何运行python脚本
->需要安装python插件
->选中该文件,右击,run python file in terminal
->想要重名/其他对于文件的移动,拷贝等操作
->选中文件右击去选择
图形化样例:
'''
from 包所在的位置 import 包名:这是python中导包的格式,类似于C语言中的导入库
tkinter:存储GUI包的文件夹
'''
from tkinter import *
#创建一个Tk()对象,名字叫root,Tk()就是一个窗体
root = Tk()
#设置窗体的标题
root.title("我的第一个python脚本")
"""
geometry:这个方法是设置窗体的大小
参数:是字符串类型("宽x高")
"""
root.geometry("400x300")
"""
Lable:是标签控件
text:是Lable标签的一个属性,用来设置Label显示的文本内容
bg:是Lable标签的一个属性,用来设置Label标签的背景颜色
都是字符串类型
可以是枚举的颜色字符串
可以是16进制的RGB颜色编码
"""
lb1 = Label(text="hello", bg="#a0cf00")
lb = Label(text="欢迎来到python世界",bg="blue")
#默认居中显示控件
lb1.pack()
'''
place:设置控件在窗体中位置,以及控件的大小
参数:
relx:显示的起始位置的x轴坐标(相对于窗体宽度的比例)
rely:显示的起始位置的y轴坐标(相对于窗体高度的比例)
relwidth:控件的宽度(相对于窗体宽的比例)
relheight:控件的高度(相对于窗体高的比例)
'''
lb.place(relx=0.01,rely=0.3,relwidth=0.4,relheight=0.1)
root.mainloop()#实现窗体永驻
7.python语法
python中的注释:
单行注释:
#注释内容
多行注释:
'''
注释内容
xxxxxxxx
xxxxxxxx
'''
或者:
"""
注释内容
xxxxxxxx
xxxxxxxx
"""
->python中的语句
python中的语句以换行为结束
如果一条语句太长,可以使用续航符 "\"
->python中的语句块
python没有用话括弧来标识语句块,而是使用严格的缩进来标识语句块。
如果缩进有问题,则报错。
缩进可以是Tab可以是空格。
->python中的语句构成:
同C语言,也是由表达式构成。
python中也存在变量,但是python中变量的定义从来不会指定变量的数据类型。
但是python是有数据类型的。
例如:
a = 5
print(type(a))
运行结果为:<class 'int'>
终端:
在路径输入& .\文件名----->在终端中运行python文件
在路径输入cls---->清空终端信息
8.python中支持的数据类型
Number类型(数字类型):存储数字(整数,实数,虚数,复数)
字符串
列表:类似与数组
元组:类似于不可更改的数组
字典:类似于键值对
集合:
不可修改的类型:数字、字符串、元组
可修改的类型:列表、字典、集合
Number:(不能修改)
a = 5
b = 6
print(a+b)
Number的操作:
+、-、*、/、//、%、**
加、减、乘、除、整除、取余数、幂
&、|、^、<<、>>、~
按位与、按位或、按位异或、左移、右移、按位取反
获取变量的地址: id(变量名)
int():类型转换为int
float():类型转换为float
例子:
a = 3
b = 2
c = a * b
d = a + b
e = a - b
#带小数点的除
f = a / b
g = a % b
#取a的3次幂
h = a ** 3
#end=",",即将print默认以\n结尾改为,结尾
print(c,d,e,f,g,h,end=",")
print(type(f))
print(id(a),id(b))
#整除
print(a // b)
类型转换的例子:
a = 3
b = 3.75
print(b,type(b))
c = int(b)
print(c, type(c))
d = float(a)
print(d, type(d))
->python中的字符串
字符串不能更改,用""/''引起来
例子:
#定义字符串
'''
字符串定义时,单引号和双引号都可以
'''
str1 = 'Tom'
str2 = "Jerry"
print(str1,type(str1))
print(str2,type(str2))
'''
下面的代码等价于print("str1 len:", len(str1))
'''
print("str1 len:",end=" ")
print(len(str1))
#格式化输出
print("str1 len:%d"%len(str1))
print(id(str1))
str1 += str2
print(str1)
print(id(str1))
求字符串长度/求变量的长度:
len(变量名)
字符串截取:
'''
python中字符串截取:
可以把字符串理解成一个元素类型相同列表,且不能修改
下标从0开始到size-1
字符串名[start:stop:step]
start:起始位置的下标,不给默认为0,-1:最后一个元素
stop:结束位置的下标,不包含结束位置
step:步长,默认为1,可以大于0,可以小于0
>0:向右
<0:向左
'''
左闭右开:包含start下标的元素,不包括stop下标的元素
字符串遍历:
a = "Tom is a cat!"
'''
for x in a:
print(x)
'''
for i in range(len(a)):
print(a[i],end="")
字符串操作函数:
endswith(子串):看字符串是否以子串为结尾,返回值为布尔类型
<class 'bool'>: True, False
startswith(子串):看字符串是否以子串为开头,返回值为布尔类型
split(分隔符):以分隔符分割字符串,返回值是列表,列表中存储每个子串
splitlines():以'\n'为分隔符进行分割
replace(oldstr,newstr,count):用newstr替换元字符中,从前往后数count个oldstr,如果不给count,默认全部替换
index(子串):子串在字符串中第一次出现的下标位置
find(子串):同index
rindex(子串):从后往前找
rfind(子串):从后往前找
capitalize():首字符大写(整个句子的第一个单词首字符)
title():所有单词的首字母大写
upper():所有字母大小
lower():所有字母小写
islower():字符串是否所有字母小写,返回值为bool类型。
->python中没有switch case
python中的三种基本结构:
顺序
循环
分支