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