三、Python基础(1)

(一)Python简介

1、Python是一种解释型、交互式、面向对象、动态数据类型的高级程序设计语言。Python语言是由Guido Van Rossum于1989年开发的,于1991年发行第一个公开发行版。2020年1月1日,停止Python 2的更新。Python2.7被确定为最后一个Python 2.x版本。

2、Python应用:

(1)Python是用来编写应用程序的高级编程语言;且提供了非常完善的基础代码库,以及大量的第三方库,可直接调用;

(2)许多大型的网站用Python开发的,例如:国外的YouTube、国内的豆瓣等等。

(3)Python适合开发网络应用,包括网站、后台服务等等。

3、编程语言

(1)编译型语言,使用的转换工具称为编译器,要求必须提前将所有源代码一次性转换成二进制指令,生成一个可执行程序,比如C语言、C++、go等等;

(2)解释性语言,使用的转换工具称为解释器,边执行边转换,不会生成可执行程序,比如Python、JavaScript、PHP、Shell等等

(3)编译型语言和解释型语言执行图如下,摘自来源:http://c.biancheng.net/view/4136.html

 

(二)安装Python(建议安装Python+Pycharm专业版)

1、登录Python官网下载适合自己的版本型号:https://www.python.org/

2、登录pycharm官网进行下载:https://www.jetbrains.com/pycharm/download/#section=windows

3、Python和Pycharm的区别:

(1)Python是一种计算机程序设计语言,是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本,逐步的被用于独立的、大型项目的开发;

(2)Pycharm是Python的专用IDE,类似于Java的IDE Eclipse。功能齐全的集成开发环境同时提供社区版(免费版)和专业版(收费版)。

4、安装成功后,可以在菜单中看到安装好的Python,也可以在Windows命令cmd,输入命令“Python”,可以进入Python shell模式,如图所示:

 

 5、若提示:“Python”既不是内部命令,又不是外部命令,这时需要把Python的安装目录添加到系统变量Path中,操作如下:(例如:Windows 10)

右击桌面的“此电脑”,打开右键菜单,单击“属性”->高级系统设置->高级->环境变量,在系统变量中的Path添加:

变量名:Path

变量值:;C:\Python37

6、Windows机器上,通常安装在【C:\Python37】位置,若想把此目录添加到你的PATH环境变量中,可以cmd打开DOS窗口输入下面的命令执行:

set path=%path%;C:\python37

 7、在DOS窗口中输入文件结束符:

Unix系统为:Ctrl+D;Windows系统是:Ctrl+Z,若没有作用,通过输入quit()命令退出解释器。

(三)Python的不同打开方式

1、启动Python终端会话,提示符以>>>出现如图:

 

2、启动Python自带的IDLE运行交互式环境,如图:

 

3、启动pycharm版本,根据你自己安装的版本打开并创建自己的项目,如图:

 

(四)基本设置及操作

1、Git与SVN的区别

SVN是集中式版本控制系统,版本库是集中放在中央服务器的,协同工作的人们通过客户端连到这台服务器,取出最新的文件或者提交更新,管理者可以掌握每个开发者的权限,但只能通过联网才能工作,一旦服务器瘫痪,所有人都无法工作;

Git是分布式版本控制系统,没有中央服务器,客户端并不只提取最新版本的文件快照,而是把代码仓库完整的镜像下来。

补充:pycharm配置Git,方便代码上传到码云管理:需要下载Windows版本的Git,下载地址:https://desktop.github.com/

2、安装git,下载地址:https://git-scm.com/download/win因为下载Git客户端非常慢,最有效的解决方法:

(1)在Elements界面中,找到下载链接

 

 (2)复制下载链接到迅雷去下载:

 

 (3)安装git客户端

 (4)pycharm配置Git,File->Settings

 (5)Settings->Version Control->Git ->Path to Git executable,选择Git本地安装路径:

 

 

 

 (6)VCS->Check from Version Control->Git

 

 (7)克隆仓库,需填写Git仓库地址

 

3、Windows,如果要使用git拉代码,需要安装git客户端(如上面的截图操作)

Mac,需要在命令里面输入Git命令,如果没有会自动安装

4、输入输出

(1)输出,代码如下:

print()
# print("Hello world!")

 

 

(2)输入,可以让用户输入字符串,并存放一个变量里

input()

 

 

5、Python 2 和 Python 3 的区别

(1)使用print输出数据

Python 2.x 用print语句,如:

print"hello world"

Python 3.x 用print函数,如:

print("hello world")

(2)编码格式

Python 2.x 默认采用ASCII编码,Python 3.x默认使用UTF-8,可以支持中文或其它非英文字符。

(3)除法运算:/ 和 //

Python 2.x 使用运算符 / 进行除法运算,整数相除的结果是个整数,浮点数除法保留小数点部分;Python 3.x 使用运算符 / 除法运算,整数之间做除法运算,结果也是浮点数;

Python 2.x 和 python 3.x 使用运算符 // 输出结果不大于结果值的一个最大的整数(向下取整);

(4)异常处理

Python 2.x 所有类型的对象都是直接被抛出的,Python 3.x 只有继承BaseException 的对象才可以被抛出;

Python 2.x 捕获异常的语法是“except Exception, var:”,Python 3.x 引入了as关键字,捕获异常的语法变更为“except Exception as var:”

Python 3.x 处理异常“raise Exception(args)” 代替了 “raise Exception,args”

Python 3.x 取消了异常类的序列行为和 .message属性

(5)八进制字面量表示:python 3.x 表示八进制字面量的方式只有1中,必须写成“0o1000”这样的方式,之前的“01000”的方式不能用了

(6)不等于运算符:Python 2.x 不等于运算符有2中写法,分别为 != 和 <> ,Python 3.x 中只有 != 这种写法

(7)数据类型

Python 3.x 去除了long类型,只有整型 int 

Python 3.x 新增了bytes类型

Python 3.x 字典的keys()、items()和value()方法用返回迭代器,之前的iterms()key()等函数被废弃,去掉dic.has_key(),改为用 in 替代。

6、Python注释(多行注释和单行注释)

(1)单行注释,语法格式(说明多行代码的功能时,一般将注释放在代码的上一行;说明单行代码时一般将注释放在代码的右侧):

# 注释内容

(2)多行注释,使用三个连续的单引号'''或者三个连续的双引号"""注释多行内容:

'''
hello
hello
hello
'''

 

 

(五)Python操作符

1、数学操作符:

操作符 操作 例子 求值为
** 指数 2**3 8
% 取模|取余数 25%4 1
// 整除|商数取整 36//5 7
/ 除法 36/8 4.5
* 乘法 2*3 6
- 减法 5-3 2
+ 加法 1+2 3

2、数据类型:整型(int)、浮点型(float)、字符串(str)

数据类型 例子
整型(int) -2,-1,0,1,2,3,4,5,6,7,8,9
浮点型(float) -1.35,-1.0,0.0,0.5,1.0,1.75
字符串(str) 'a','aa','aaa','hello world'

3、字符串连接和复制

(1)在操作两个整形或浮点型值时,+是相加操作符;用于两个字符串时,+将两个字符串连接起来,成为“字符串连接”操作符;

(2)两个整型或浮点型值时,*表示乘法;*操作符用于一个字符串值和一个整型值时,变成了“字符串复制”操作符;

4、标识符和保留字符

(1)标识符:标识符由字母、数字、下划线组成,不能以数字开头,标识符区分大小写;

(2)保留字符不能用作常数或变数,或任何其他标识符名称,如表格所示:

and exec not
assert finally or
break for pass
class from print
continue global raise
def if return
del import try
elif in while
else is with
except lambda yield
as false nonlocal
None True  

 

 5、Python 3.x 中所有的内置函数,截图摘自:http://c.biancheng.net/view/4208.html

 

 (六)变量类型和运算符

1、变量:将数据放入变量的过程叫做赋值。Python使用等号 “=” 作为赋值运算符,name表示变量名,value表示值,格式为:

name = value

2、运算符

(1)整数类型(int)

(2)小数/浮点型(float)

(3)复数类型(complex):复数由实部(real)和虚部(imag)构成,a表示实部,b表示虚部,复数的格式为:

a + bj

例如:

 

 3、字符串:由双引号或单引号包围,双引号和单引号没有任何区别,格式为:

"nihao"
'hello'

4、布尔类型:表示真(对)或假(错),例如:

 

 5、格式化字符串:print()函数使用%开头的转换说明符对各种类型的数据进行格式化输出,摘自图:http://c.biancheng.net/view/2177.html

6、转义字符,截图摘自:http://c.biancheng.net/view/2176.html

 

 7、数据类型转换,截图摘自:http://c.biancheng.net/view/4243.html

 

 8、位运算符,截图摘自:http://c.biancheng.net/view/2184.html

 

 9、比较运算符,截图摘自:http://c.biancheng.net/view/4258.html

 

 10、逻辑运算符,截图摘自:http://c.biancheng.net/view/2186.html

 

 11、三目运算符(三元运算符),condition是判断条件,exp1和exp2是两个表达式,结果为真,执行exp1结果为假,执行exp2,格式:

exp1 if condition else exp2
max = a if a>b else b

 12、运算符优先级和结合性,截图摘自:http://c.biancheng.net/view/2190.html

(1)运算符优先级:

(2)运算符结合性:多个优先级相同的运算符,先执行左边的叫左结合性,先执行右边的叫右结合性。

 

(七)流程控制

1、if else条件语句:使用 if else 语句对条件进行判断,根据不同的结果执行不同的代码,称为选择结构或者分支结构。细分三种形式:if 、if else 、 if elif else 语句。

(1)if 语句形式,如图是 if 表达式代码块:

 实例1:

 

(2)if else语句,if else 表达式代码块如图所示:

 实例2:

 

 (3)if elif else 语句,if elif else 表达式代码块如图所示:

 

 实例3:

小明身高1.75,体重80.5kg。请根据BMI公式(体重除以身高的平方)帮助小明计算他的BMI,并根据BMI指数:
低于18.5:过轻
18.5-25:正常
25-28:过重
28-32:肥胖
高于32:严重肥胖

 

 (4)缩进的要求:Python是以缩进来标记代码块的,代码块一定要有缩进,但没有要求缩进量。建议1Tab键的位置或者4个空格。

 (5)if 语句嵌套

# 最简单的 if 语句中嵌套 if else 语句

if 表达式 1:
    if 表达式 2:
        代码块 1
    else:
        代码块 2

 

# if else 语句中嵌套 if else 语句

if 表达式 1:
    if 表达式 2:
        代码块 1
    else:
        代码块 2
else:
    if 表达式 3:
        代码块 3
    else:
        代码块 4

 

2、循环语句分为:while循环、for循环、嵌套循环(循环又叫迭代,遍历)

2.1 while 循环:判断条件为真时执行循环体,否则退出循环体(while循环需要定义计数器,每次循环计数器增加,否则就会变成死循环)

while 条件表达式
    代码块    # 循环体

实例:跑圈,计算心率和圈数

 

 

2.2 for 循环:重复执行语句

for 迭代变量 in 字符串| 列表 | 元组 | 字典 | 集合:
    代码块          # 循环体

实例:

 

2.3 break 语句

      break 语句 用来终止循环语句的,循环语句中遇到break循环立即结束。 

 

2.4 continue 语句:跳出本次循环,而break是跳出整个循环。

      continue 语句:结束本次循环,然后继续进行下一轮循环。

实例:

 

2.5 循环else用法,无论是while循环还是for循环,都可以紧跟着一个else代码块,当循环正常结束后,程序会执行else代码块中的代码。

实例:图例中本来需要循环10次,然后循环了10次,循环结束,这就是正常结束循环,会执行else代码块。

 

2.6 嵌套循环:嵌套就是一条语句中还有另外一条语句,例如for循环中有for循环,while循环中含有while循环,再或者是while循环中有for循环,for循环中还有while循环等等。

 实例:

 

 

2.7 pass语句:是空语句,为了保持程序结构的完整性。一般用做占位语句。

pass

实例:

 

 

2.8、assert语句:称为断言语句,用于判断某个表达式的值,如果为真,则程序继续往下执行,反之报AssertionError错误。通常用于检查用户的输入是否符合规定,经常用作程序初期和调试过程中的辅助工具。

assert 表达式
if 表达式 == True:
    程序继续执行
else:
    程序报AssertionError

实例:

 

2.9、zip函数

        zip() 可以将多个序列(列表、元组、字典、字符串以及range()区间构成的列表),“压缩”成一个Zip对象,就是将这些序列中对应位置的元素重新组合,生成一个个新的元组。

  zip()函数的语法格式为:

zip(iterable,...)

实例:

 

 

2.10、reverse函数:是Python内置函数,对于给定的序列(包括列表、元组、字符串以及range(n)区间),该函数可以返回一个逆序序列的迭代器(用于遍历该逆序序列)。

reversed(seq) # seq 可以是列表、元素、字符串以及range()生成的区间列表

实例:

 

 

2.11、sorted函数:作为Python内置函数之一,功能是对序列(列表、元组、字典、集合、还包括字符串)进行排序。

list = sorted(iterable,key=None,reverse=False)
# iterable表示指定的序列,key可以自定义排序规则,reverse参数指定以升序(False,默认)还是降序(True)进行排序。

实例:

 

 

2.12、range()函数:可以创建一个整数列表,一般在for 循环中

range(start, stop[, step])
# start:计数从start开始,默认是从0开始。
# stop:计数从stop结束
# step:步长,默认为1

实例:

 

 

(八)序列(sequence)是指按特定顺序依次排列的一组数据。序列类型包括:列表(list)、元组(tuple)、字典(dict)和集合(set),但集合和字典不支持索引、切片、相加和相乘操作。

1、列表 list

1.1 通过 type() 函数可以查看到数据是什么类型

1.2 使用 [ ] 创建列表后,一般使用 = 将它赋值给某个变量,具体格式如下:

listname = { element1, element2, element3,..., elementn}
# listname 表示变量名,element1 ~ elementn 表示列表元素。
number =[1,3,5,7,9,11]

创建列表,也可以一个元素都没有:

emplist[ ]

1.3 使用list()函数创建列表

# 将字符串转换成列表
list1 = list('hello')
print(list1)

#将元组转换成列表
tuple1 = ('Python', 'Java', 'C++', 'JavaScript')
list2 = list(tuple1)
print(list2)

#将字典转换成列表
dict1 = {'a':100, 'b':42, 'c':9}
list3 = list(dict1)
print(list3)

#将区间转换成列表
range1 = range(1, 6)
list4 = list(range1)
print(list4)

#创建空列表

print(list())

 1.4 访问列表元素:可以用索引(Index)访问列表中的某个元素(得到的是一个元素的值),也可以使用切片访问列表中的一组元素(得到的是新的子列表)

(1)使用切片访问列表元素的格式为:

listname[start : end : step]
# listname 表示列表名字,start 表示起始索引,end表示结束索引,step表示步长
students = ‘Mary, Jack, Amy’
# 数组、列表、list
students = [ ‘Mary, Jack, Amy’]
#                  0          1         2
# 编号、索引、下标、角标
print(students[1])
print(students)

1.5 删除列表:del 关键字删除

del listname

1.6 添加元素:append()方法

listname.append(obj)
students = [ ‘Mary, Jack, Amy’]
students.append('Helen')    # 在列表的末尾添加元素
print(students)

1.7 添加元素:extend() 方法 (extend与append不用的之处是,extend不会把列表或元组视为一个整体,而是把他们包含的元素逐个添加到列表中)

listname.extend(obj)
students = [ ‘Mary, Jack, Amy’]
students.extend('Nancy')

1.8 插入元素:insert() 方法

listname.insert(index,obj)
students = [ ‘Mary, Jack, Amy’]
students.insert(0,'Ted')

1.9 删除元素:del 关键字或者pop()方法、remove()方法、clear()方法

(1)del 关键字,执行删除操作,可以是整个列表,也可以是列表中的某些元素

del listname[index]  # 可以删除列表中的单个元素

del listname[start : end] # 可以删除中间一段连续的元素

(2)pop() :删除列表中指定索引处的元素

listname.pop(index)  
# listname表示列表名称,index表示索引值,默认删除列表中最后一个元素

(3)remove():根据元素值进行删除

nums = [40, 36, 89, 2, 36, 100, 7]
#第一次删除36
nums.remove(36)
print(nums)
#第二次删除36
nums.remove(36)
print(nums)

(4)clear() :删除列表所有的元素

list=[12,54,236,123]
list.clear()
print(list)

1.10 list 列表修改元素

(1)修改单个元素

nums = [40, 36, 89, 2, 36, 100, 7]
nums[2] = -26  #使用正数索引
nums[-3] = -66.2  #使用负数索引
print(nums)

(2)修改一组元素

nums = [40, 36, 89, 2, 36, 100, 7]
#修改第 1~4 个元素的值(不包括第4个元素)
nums[1: 4] = [45.25, -77, -52.5]
print(nums)

1.11 list 列表查找元素,用index()和count()方法,用来查找元素

(1)index()方法:用来查找某个元素在列表中出现的位置,若不存在报ValueError错误。

listname.index(obj, start, end)
# listname 为列表名称
# object 为要查找的元素
# start 表示起始位置
# end 表示结束位置

(2)count() 方法:用来统计某个元素在列表中出现的次数

listname.count(obj)

注意:若count() 返回0,说明列表中不存在该元素,count()也可以用来判断列表中的某个元素是否存在。

 

posted @ 2020-08-14 17:15  翔梦hong  阅读(283)  评论(0编辑  收藏  举报