人生苦短,我用 Python —— Life is short,you need Python
Python零基础入门
- 一、Python 初识
- 1、Python 简介
- 2、Python 的优势?
- 1)学习成本低
- 2)开发成本低
- 3)语言生态丰富
- 1)新建 HelloPython.py文件
- 1、注释
- 1)语法规范
- 1)算数运算符
- 1)字符串的定义
- 1、if 条件判断语句
- 1)基本语法
一、Python 初识
1、Python 简介
Python是一种「基于C语言实现的」的,「开源」的,「面向对象」的,「动态数据类型」的「解释型」语言。
1989年圣诞节期间,Python的「创始人吉多·范罗苏姆」(Guido van Rossum)为了打发无聊的时间,开发出了一款解释型语言,命名为Python(蟒蛇),并于1991年公开发行。
2、Python 的优势?
1)学习成本低
Python的所有内容都是免费开源的,这意味着你不需要话一分钱就可以「免费使用」Python;Python的语法简单且优雅,相对于其他语言「学习难度较低」,入门非常快。
2)开发成本低
在互联网上流传着这么一个笑话,说同样一个功能, 「C语言」需要 100 行代码才能实现,「Java」需要 10 行代码就能实现,而「Python」只需要 1 行代码就能实现。
Python有丰富的「库」可以使用,这些库提供了大量的「基础实现」,在编码过程中,可以方便的使用这些库,从而避免了大量代码的编写过程。代码量的下降意为着「开发周期」的缩短,这在一定程度上减轻了程序员的开发负担,同时提高了开发的「效率」,正因如此,在Python领域流传着这样一句话:「人生苦短,我用Python」
3)语言生态丰富
由于开源的特性,Python具有丰富且强大的第三方库,这使得Python在web开发,数据分析等领域都有着广泛的应用,随着大数据和人工智能的发展,Python的上升趋势非常明显,甚至一度超过C语言和Java,首次成为「最受欢迎的程序语言」。
3、第一个 Python程序
1)新建 HelloPython.py文件
选择一个空旷的目录,在里面新建一个「文本文件」,文件名为 HelloPython.txt
2)编写代码
双击打开文件(或使用任意文本编辑器打开文件),在文件中输入以下内容
print('Hello Python')
按 Ctrl+s 保存文件,而后关闭文件。
3)运行文件
在当前目录下打开cmd (目录上方的地址栏中输入cmd,回车)
在打开的cmd中输入以下命令,执行 HelloPython.txt文件
python HelloPython.txt
我们可以看到,窗口中输出了 HelloPython,第一个Python程序完成了
4)修改文件扩展名
虽然普通的文本文件就可以执行Python代码,但为了提高辨识度,我们尽量将Python文件的「后缀名」写成
.py
右键文件选择重命名,将文件后缀名由
.txt
修改为
.py
,如果出现以下提示,点击是即可
修改后的文件是下面这样
接下来,在cmd中输入以下命令,运行 HelloPython.py文件
python HelloPython.py
修改文件名后,仍然可以正常输出 Hello Python
二、Python 基础
1、注释
Python中的代码都是用「英语」写的,对于母语不是英语的我们来说,「阅读」英语的代码,肯定没有阅读「汉字」那么方便。我之前做开发的时候就深有体会,上午才写完的代码,下午再去看,就已经看不太懂了(手动捂脸)。当然,这是我自己写的代码,从头到尾捋一遍还是能明白的。那么问题来了,自己写的代码就已经这么难看懂了,要是看别人写的代码,岂不是要读天书?这个时候我们就可以使用「注释」了,注释就是对代码的「理解」和「说明」,可以帮助开发者了解代码的含义
1)使用场景
比如我们刚写完了一行代码,为了防止下次再看的时候不知道这行代码是什么意思,就可以在代码上方写上一行注释。
# 这行代码的意思是定义一个变量name = '张三'
需要注意的是:注释后面的内容「不会被当做代码编译执行」,仅仅起到「辅助说明」的作用
2)语法规范
Python作为一款「优雅」的语言,对于代码的「语法格式」有着近乎「苛刻」的「规范」,这其中自然也包括注释
- Python注释通常以 # 开头
- 注释「单独一行」时, # 「左边」需要「顶格」写,不允许有空格; # 「右边」和注释内容之间需要有一个「空格」作为「间隔」,以增加代码的「可读性」
- 注释写在「代码后面」时, # 「左边」需要有「两个空格」, # 「右边」和注释内容之间需要有一个「空格」作为「间隔」
3)单行注释
单行注释是Python注释的一种使用方式,顾名思义,就是「只占一行」的注释,当行注释可以写在代码「上方」,也可以写在代码「右方」
案例1:在代码的上方编写注释
# 单行注释print('hello Python')
案例2:在代码的右方编写注释
print('hello Python') # 单行注释
4)多行注释
多行注释是Python注释的另一种使用方式,顾名思义,就是「占据多行」的注释,多行注释通常写在代码的上方用于解释代码的作用,同时可以间隔上下两段代码,增加代码的可读性。
案例3:在代码上方编写注释,解释整段代码的作用
# 这段代码的作用是# 作用一:***# 作用二:***print('假装是一段代码')
5)三重引号字符串
除了上面提到的单行注释和多行注释以外,Python中还提供了另一种注释来代替多行注释,也就是「三重引号字符串」,使用时只需要建立一个「没有名字」的三重引号字符串即可。顾名思义,三重引号字符串并不是严格意义上的注释,只能当做一种多行注释的书写方式。
三重引号字符串有两种书写方式:「单引号多行注释」和「双引号多行注释」
顾名思义,单引号多行注释就是用三个「单引号」包裹的三重引号字符串,双引号多行注释就是用三个「双引号」包裹的三重引号字符串
需要注意的是:无论是单引号多行注释还是双引号多行注释,引号都必须是「英文状态」下的引号,并且引号左侧需要「顶格」写
案例4:在代码段上方编写单引号多行注释,解释整段代码的作用
'''这段代码的作用是:作用一:***作用二:***'''print('假装是一段代码')
案例5:在代码段上方编写双引号多行注释,解释整段代码的作用
"""这段代码的作用是:作用一:***作用二:***"""print('假装是一段代码')
2、Python 变量
变量可以理解为一个「临时存储数据」的媒介,并且这个存储的数据是可以改变的。
举个栗子
比如,我的存款是100块钱,这个存款就可以理解为一个「变量」,存款有100块钱,就可以理解为变量中存储的「数据」数据为100,如果我把这个月的50块钱工资放到我的存款里,存款由100块钱变成了150块钱,相对应的,这个名为存款的变量也会发生「改变」,变量存储的数据由100变成了150。
接下来,我们用代码的方式来打开上面的栗子
# 我的存款是100块钱存款 = 100# 我将50块钱工资放到存款中存款 = 存款 + 50# 存款发生了变化,最终的存款是print(存款)
程序打印的存款结果如下:
1)语法规范
需要注意的是:上述的栗子中,我们的变量名使用的是「中文」的存款,目的是为了更好的理解变量的含义,而在实际情况中,尽量「不要使用中文作为变量名」,这是Python中对于变量的规定,除此之外,Python还对变量的语法做了以下规定:
- 变量不需要「声明」,变量的「赋值操作」即是变量声明和定义的过程
- 变量使用等号(=)赋值,变量被赋值以后才会被「创建」,未赋值的变量不能被使用
- 等号(=)左边是「变量名」变量名,右边是存储在变量的「值」,即
变量名 = 变量值
- 定义变量时,不需要指定「变量类型」,程序运行时,Python解释器会根据等号右侧的数据自动推导出数据类型
2)数据类型
大家上学的时候肯定都学过数学,数学中有整数、小数、分数、集合等各种各样类型的数据,同样的,在Python中也有不同的「数据类型」,Python中提供了种标准的数据类型:
- Numbers(数字)
- String(字符串)
- List(列表)
- Tuple(元组)
- Dictionary(字典)
3、Numbers
Python中使用Numbers来表示「数字类型」,数字类型包括「整数」和「小数」等多种类型,在Python中,整数用int来表示,小数用float来表示
1)算数运算符
算数运算符就是数学中的加减乘除,这个。。。不多说了,看图
2)整数(int)
「整数」就是没有小数位(小数位都是0)的数、能被1整除的数。为了方便数据类型的学习,这里先扩展一个函数:type(),type()函数可以用来「检查数据的类型」,并返回检查的结果。接下来我们通过几个案例来了解一下变量的使用
案例1:查看变量类型
定义一个整数类型的变量,用type()查看变量的类型,并将结果打印出来
代码实现
# 定义一个整数类型的变量number = 1# 判断变量类型result = type(number)# 打印变量类型print(result)
程序执行结果如下
案例2:苹果的价格
已知:苹果的单价是3元,张三要买2个苹果
请问:张三需要付多少钱?
代码实现
# 苹果单价是3元apple = 3# 苹果的数量是2number = 2# 总价 = 单价 * 数量money = apple * numberprint(money)
程序执行结果如下
3)浮点数(float)
浮点数就是小数
案例3:检查数据类型
定义一个小数类型的变量,使用type()查看变量的类型,并将结果输出
代码实现
# 定义一个小数类型的变量number = 1.5# 检查变量的类型result = type(number)# 打印变量类型print(result)
程序执行结果如下
案例4:苹果的价格
已知:苹果的单价是1.5元,张三需要购买3个苹果
请问:张三需要付多少钱?
代码实现
# 苹果的价格是1.5apple = 1.5# 苹果的数量是3number = 3# 总价 = 价格 * 数量result = apple * number# 打印结果print(result)
程序执行结果如下
4、String 初识
字符串是由「数字」、「字母」、「下划线」组成的一串字符,常用来表示文本,比如商品的描述信息或用户的评论。
1)字符串的定义
字符串有两种定义方式,一种是「单引号」包裹的字符串,一种是「双引号」包裹的字符串,需要注意的是:必须是英文状态下的引号。
str1 = '单引号字符串'str2 = "双引号字符串"
2)字符串拼接
加号(+)可以将两个或多个字符串「拼接」到一起
称号(*)可以将字符串「重复拼接」多次
接下来,我们通过几个案例来简单了解一下字符串的拼接情况
案例5:加号(+)拼接两个数字
定义两个数字类型的变量,使用加号(+)拼接两个「数字」类型的变量,观察拼接的结果
代码实现
# 定义一个数字number1 = 2# 定义第二个数字number2 = 3# 输出两个数字的拼接结果print(number1 + number2)
程序执行结果如下
由以上结果可知,使用加号(+)拼接两个数字类型的变量时,执行的操作是「相加」
案例6:加号(+)拼接两个字符串
定义两个「字符串」类型的变量,使用加号(+)拼接两个变量,观察拼接的结果
代码实现
# 定义一个字符串str1 = "abc"# 定义第二个字符串str2 = "def"# 输出两个字符串的拼接结果print(str1 + str2)
程序执行结果如下
由以上结果可知,使用加号(+)拼接两个字符串类型的变量时,执行的操作是「拼接」
案例7:使用加号(+)拼接字符串和数字
定义一个字符串类型的变量,定义一个数字类型的变量,使用加号(+)拼接这两个变量,观察拼接的结果
代码实现
# 定义一个字符串str1 = "abc"# 定义一个数字number = 2# 输出两个字符串的拼接结果print(str1 + number)
程序执行结果如下
报错了,说明字符串和数字之间不能使用加号(+)拼接
案例8:打印10个星号(*)
这里可以手动打印10个星号
*
,但如果题目改成打印1000个星号
*
呢,肯定不能用手动打印啊,这里我们可以利用星号
*
来「重复」打印字符串。
定义一个字符串,字符串的值是*,定义一个数字,数字的值是10,使用星号
*
拼接两个变量
代码实现
# 定义一个字符串str1 = '*'# 定义一个数字number = 10# 打印字符串和数字的拼接结果print(str1 * number)
程序执行结果如下
三、Python 流程控制语句
一个程序往往包含多条代码,流程控制就是控制这些代码的「执行顺序」和「执行机会」的规则
Python中提供了三种流程控制语句
- 顺序执行
- 分支执行
- 循环执行
顺序执行
顾名思义,就是按照从上往下的顺序「依次执行」代码,这是最常见的一种执行流程,也是程序「默认」的执行流程
分支执行
分支执行根据「判断条件」来决定代码的执行机会,只有满足条件的代码分支才会被执行,未满足条件的代码分支则不会被执行
循环执行
循环执行常用来「重复」执行某一段代码,从而提高程序员的开发效率
1、if 条件判断语句
灾难电影中经常会面临一些令人绝望的场景,比如:大船快要沉了,幸运的是,有一些小的救生艇,但救生艇的数量有限,只能送走一小部分人,这时候就会有人喊出一句响亮的口号:让老人和孩子先走!
这时候就需要制定一个判断「条件」,也就是老人和孩子,如果满足这个条件,就可以做救生艇逃走;否则就必须留下来。
这个场景用代码来表示可以是下面这样
if 老人和孩子:满足条件,做救生艇逃走else:不满足条件,留下来
1)基本语法
上面的栗子只是为了方便大家理解,if 条件判断语句的正确「语法」应该是下面这样的
if 判断条件:条件成立时,要做的事情else:条件不成立时,要做的事情
接下来,我们使用代码「还原」一下上面的场景
案例1:老人优先
轮船上的众人面临「沉船」的风险,现有救生艇若干
如果是老人,则可以乘坐救生艇「逃走」
否则就留下来面对「危险」
代码实现
# 定义人物属性man = '老人'# 判断是否是老人if man == '老人':print('老人快跑')else:print('年轻人,面对困难')
程序执行结果如下
2)if
if 条件判断语句并不是非得写成案例1的样子,最「简单」的语法格式是下面这样
if 条件判断:满足条件执行的代码
这种语法格式可以简单理解为:如果怎么样,就怎么样。接下来,我们通过一个案例来简单了解一下
案例2:判断成绩
张三考试回家把试卷交给爸爸,爸爸说:
如果考一百分,爸爸就「奖励」你一个棒棒糖
代码实现
# 定义张三的成绩zhangsan = 100# 判断成绩if zhangsan >= 100:print('棒棒糖x1')
代码执行结果如下
3)if else
if else 是if 条件判断语句的「常规」格式,可以简单理解为:如果怎么样,就怎么样,否则就怎么样。接下来,我们通过案例来简单了解一下
案例3:判断年龄
定义一个变量来存储「年龄」
如果年龄大于18岁,则可以去网吧玩「游戏」
否则就只能回家写「作业」
# 定义年龄age = 18# 判断年龄if age >= 18:print('去网吧玩游戏')else:print('滚回家写作业')
程序执行结果如下
4)if elif else
则是if 条件判断语句的第三种格式,适用于较「复杂」的判断情况,语法格式如下:
if 判断条件:条件成立时,要做的事情elif 判断条件:if条件不成立,但elif条件成立时,要做的事情else:条件都不成立时,要做的事情
接下来,我们通过案例来简单了解一下
案例4:判断成绩
张三考试回家把试卷扔给爸爸,爸爸说:
如果考一百分,就给你找个「女朋友」
如果没考一百分,但成绩大于90分,就给你买个「熊」
否则,我就不认你这个「儿子」
代码实现
# 定义张三的成绩zhangsan = 100# 判断成绩if zhangsan >= 100:print('女朋友x1')elif zhangsan >= 90:print('玩具熊x1')else:print('儿子-1')
程序执行结果如下
2、 while 循环语句
while 循环语句用于「循环」执行程序,即在条件「成立」的情况下,循环执行某段程序,常用来重复执行的相同任务。
1)基本语法
while 判断条件:条件满足时,做的事情1条件满足时,做的事情2...处理条件
可以简单理解为:如果满足条件,就做某件事,接下来我们通过几个案例来简单了解一下
案例1:打印1~5
i = 1while i <= 5:print(i)i += 1
案例2:打印小星星
在控制台连续输出五行*, 每一行星星的数量依次「递增」
i = 1while i <= 5:print('*' * i)i += 1
运行结果如下
2.2 列表
【列表 List】是Python中使用 最频繁 的数据类型,在其他语言中通常叫做 数组 ,列表用来存储 一串数据 ,数据和数据之间使用 逗号 分隔
列表的定义格式
names = [‘张三’, ‘李四’, ‘王五’]
列表的遍历
di = [11, 22, 33, 44]for di in ids:print('my id is %d' % di)
列表的常用函数
2.3 字典
字典是Python中除列表外, 最灵活的数据类型 ,使用键值对存储数据,其中键必须是唯一的,值可以是任意类型
基础格式
student = {‘name’: ‘小明’, ‘age’: 18, ‘id’: 1}
字典遍历
for key in student:print('%s : %s' % (key, student[key]))
常用函数