python while true_人生苦短,我用python

952845edbd72730e0bd85b106ec8eb01.png

本文框架:

adefe361958859250124f4dc39118ae5.png

一、为什么要学习Python

不管使用哪种编程语言,使用的目的都是通过编程语言与计算机交流,让计算机干活,以此实现使用者的需求。

由于大数据、人工智能的出现,使得数据分析的需求非常紧俏,这直接导致了Python这种编程语言的流行。

全球流行编程语言排行榜:

HelloGitHub 2020年08月编程语言排行榜​hellogithub.com

二、快速学习Python的4个关键点

  • 数据
  • 条件判断
  • 循环结构
  • 函数

1. 数据

1.1 什么是数据?

数据是一切程序运行的原材料,有的数据来自于程序本身,有的数据来自于用户的输入。可以把数据看作是大型的数据加工厂,当给程序输入数据后,程序会对数据进行处理,之后程序再返回处理结果。

如:微信公众号就是个程序,用户可以对微信公众号发送数据,得到自己想要的结果。

7261939ce5c4384d4e073ad6dfd05f1e.png

1.2 程序中的数据放在哪里?

在代码里,用变量来存放数据,并用等号为变量赋值,变量的概念和方程变量的概念是一样的,只是在计算机程序中,变量不仅可以是数字,还可以是任意的数据类型。

比如:定义一个叫一个人的姓名为“马云”

ab4ea513c75f1f695f39fdee865dcde9.png

等号是赋值命令,等号的左边是变量名称,右边是给变量赋的值,上图的nameStr变量中存放的是姓名叫“马云”的人的数据。

1.3 如何给变量取名?

为了方便使用变量,优秀的编程人员给变量取名时,变量的名称的前半部分(name)要能代表数据的意义,后半部分(Str)要能代表数据的类型,这样当使用变量的时候,可以通过变量名称知道变量里面存放了什么数据,存放的数据是哪种数据类型。

比如上幅图中,变量nameStr的前半部分name代表人的姓名,而Str则代表变量nameStr的类型是字符串 .

变量的命名规则:

  1. 由字符,数字和下划线_组成
  2. 不能以数字开头
  3. 不能是关键字
  4. 变量名大小写敏感

1.4 如何注释代码?

注释代码,是为了让人更好地理解代码。在Python中注释代码有两种方法,如下图:

4aff01202b50aa76c86c7d6afc5640fb.png

1.5 Python中的数据类型

Python中的数据类型根据用途的不同分为:字符串(String)数值(Number)容器布尔空值(None)五大类型

(1)字符串(String)

【字符串合并】

字符串合并用+号 ,例如:

b2c83e964d90696736b516570bb07899.png

【字符串的%s格式化】

%s可将字符串格式化,例如:

b9d38e2db3f5427ca57eec44fe9810e0.png

(2)数值(Number)

数值类型分为三种:int(整数)float(浮点数)complex(复数),它们与数学中的概念相同,如:

1)int(整数)

age = 50即年龄为50

2)float(浮点数)

money = 3.53即钱为3.53元

(3)容器

Python中为了存放不同的数据有4种容器,分别是列表(List)元组(Tuple)集合(Sets)字典(Dictionary)

容器的4种操作:

增加、删除、修改、查询

5694b3b8cb87378816b95cd0bea967de.png

1)列表(List)

列表由一对中括号[]进行定义,元素与元素直接使用逗号隔开。如:

b18afe186aeea306b4a086d9b39ca546.png

15d1977be984e828c5063425dedc0d51.png

列表的增删改查:

b84de059867044c6ff68234284ac97e0.png

2)元组(Tuple)

元组通过一对小括号()进行定义,元组之间使用逗号隔开。

995b6c065784ac8d31b61434daeaba49.png

b684de537769620f502488a3aa48d4b0.png

元组的元素不能修改,增加、删除查询与列表的操作一致。

元组利用不可修改的特性,应用在多变量赋值和函数多返回值上。

3)集合(Sets)

python中集合类型与数学中的集合类型一致,用来表示无序、不重复元素的容器。

3f9dd8a765705030cd036d0988a2e975.png

集合的增删改查:

c9d4e357876e2376ff04d3931d05da19.png

4)字典(Dictionary)

python中的字典数据类型就是键值对的集合,使用一对大括号{}进行定义,键值对之间使用逗号,隔开,键和值使用冒号:分割。

字典中的键必须是不可变数据类型,且不会重复,值可以使任意数据类型。

键与值是映射关系,好比在医院中的病人编号(键)、病人姓名(值),医生根据病人编号找到对应的病人。

d0af5dcb0be7d69d907409b400b647c2.png

40e428ee397fd75e31e03985d78a61d7.png

字典的增删改查:

762ebd3edfb580857f32d4211c3b3da0.png

(4)布尔

条件表达式的运算结果返回布尔型,布尔型数据只有两个,非00TrueFalse表示

运算符:

比较运算符

4441127b583b6a592a9a8c74d3102ad5.png

逻辑运算符

c0ba483183fb0bb59ece400a5f48ab09.png

成员运算符

26c90633aaf7a8eaaf496556318bc47d.png

布尔型运算

布尔型数据可以和数值类型数据进行数学计算,这时True表示整数1, False表示整数0

282747abd991baca606f1587e399c7f9.png

布尔类型转换

任意数据都可以通过函数bool转换成布尔型。在python中,None, 0(整数),0.0(浮点数),0.0+0.0j(复数),""(空字符串),空列表,空元组,空字典,空集合的布尔值都为False,其他数值为True。如:

72b5b6d4c9091239292f2ad7998de7cb.png

(5)空值(None)

None是python中的特殊数据类型,它的值就是它本身None,表示空,表示不存在。

2. 条件判断

条件判断分为单分支、二分支、多分支条件判断

2.1 单分支条件判断

单分支结构通过if语句来实现,语法如下:

if <条件>:
    语句块
  • 注意条件语句结束后要紧跟冒号
  • 语句块是if条件满足后执行的一条或多条语句序列
  • 语句块中语句通过缩进与if语句所在行形成包含关系
  • 缩进按照规范为4个空格

6ed6f04ff323d2b8d3ad8b893eb7219f.png

案例:

a926ba57d34dbfe41c733fadd92b7e10.png

2.2 二分支条件判断

二分支结构通过if-else语句来实现的,语法格式如下:

if <条件>:
    <语句块1>
else:
    <语句块2>
  • <语句块1>是在if条件满足后执行的一个或多个语句序列
  • <语句块2>是if条件不满足后执行的语句序列
  • 注意缩进,<语句块2>通过缩进与else所在行形成包含关系

二分支语句用于区分<条件>的两种可能True或者False,分别形成执行路径

bcf91dde9e139981e1cec88b554e946d.png

案例:

b99d56ed8729ba6a32f9a73e562dc5f1.png

2.3 多分支条件判断

python 通过if - elif - else表示多分支结构,语法如下:

if <条件1>:
    <代码块1>
elif <条件2>:
    <代码块2>
...
else:
    <代码块3>

python依次执行判断条件,寻找第一个结果为True的条件,执行该条件下的代码块,同时结束后跳过整个if-elif-else结构,执行后面的语句。如果没有任何条件成立,则执行else下的代码块,且else语句是可选的,可以没有else语句。

8f9bd104aedf050dc419a9d94de5e218.png

案例:

ecc7bfc13ccaf7f2aa8968b2cb443f6c.png

3. 循环结构

python中循环结构有两种:

1. 条件循环,也叫while循环

2. 遍历循环,也叫for循环

3.1 条件循环

python中的条件循环通过while循环语句来实现,所以也叫while循环,语法格式如下:

while <条件>:
    代码块
  • while关键字空格后接条件表达式末尾加上冒号组成while语句
  • 代码块中的代码通过4个空格的缩进和while语句形成包含关系

while语句首先计算<条件>表达式,如果结果True,则执行对应代码块中的语句,执行结束后再次执行<条件>表达式,再次判断结果,如果为True则循环执行,直到<条件>表达式为False时跳出循环,执行和while语句相同缩进的下一条语句。

<条件>表达式恒为True时,形成无限循环,也叫死循环,需要小心使用。

12c29f43e328d6de4ed811aecaee2939.png

案例:

b7a7005af1977591e62a2f7e47bbdc48.png

3.2 遍历循环

python中使用关键字for来实现遍历循环,也叫for循环,也叫迭代循环,语法格式如下:

for <循环变量> in <容器>:
    代码块
  • 关键字for+空格+<循环变量>+关键字in+<容器>+冒号组成for语句
  • 代码块通过缩进和for语句形成包含关系

for 循环会依次取出遍历结构中的元素,然后赋值给循环变量,每次遍历都会执行代码块,只到取出遍历结构中的所有元素。

所有可迭代对象都可以作为遍历结构进行for循环。

基本数据类型中序列数据类型,散列数据类型都可以进行迭代。

案例:每天吃饭

c724ae67d462446fa87d742e668aa96a.png

案例:清洗GAFATA股票数据

20ca6c6bc3503b73b27146e2598ba765.png

continue用于跳出当前循环

1f64ed77814db563953848dddb5b492e.png

break用于退出整个循环

0ee15bc1e244b1a7c366a313cb5712ba.png

4. 函数

4.1 函数的定义与使用

函数是实现某个特定功能,可重复使用的代码块

89bd5f2ced5ce72f5f7989ea7f2e68c1.png

自定义函数示例:

a097ec7519595d9099ceed0710d010ec.png

使用自定义函数:

5fc9277e85eb629c1082d3d3dfae9025.png

56111c3d0e2506d6ceeda006de8553ad.png

4.2 函数的参数数据类型

(1)不可变数据类型

字符串、数字,元祖这3种是不可变数据类型,其他的都是可变数据类型

3ccbae3a46457476791da02bb7ca08da.png

(2)可变数据类型

字符串、数字,元祖这3种是不可变数据类型,其他的都是可变数据类型

9f9590df0a5516e9e04612ee274243ea.png

4.3 变量作用域

python中一个变量能够被访问的范围叫做作用域。根据作用域的大小简单的分为全局变量和局部变量。

(1)全局变量

python是解释型编程语言,解释器在运行一个python程序时会在计算机内存中申请一块内存用来运行这个程序。全局变量在这块内存空间中都可以被访问和修改。

直接定义在函数外的变量就是全局变量,在程序运行的全过程有效。

案例:

ac94d4c6ea09bf5ad659463e88b2fe06.png

在函数内部不能直接修改全局变量,案例:

b82b7f9100595f4e31aab717f0eb9ef8.png

在函数内部修改全局变量要使用globals关键字,案例:

d1995e8ede0abc4cfecdeac837075019.png

(2)局部变量

定义在函数里的变量就是局部变量,它只在它定义的函数里起作用,一旦函数执行完毕它就不存在了。

案例:

1ebcffcce6a74add5d18a02b42cbdcdd.png

三、模块与包

6434e07b3a5eafc87d1162cc87eeabdc.png

1. 模块

如果从Python解释器退出并再次进入,之前的定义(函数和变量)都会丢失。因此,如果想编写一个稍长些的程序,最好使用文本编辑器为解释器准备输入并将该文件作为输入运行。这被称作编写 脚本 。随着程序变得越来越长,把它拆分成几个文件,方便维护。也可以在不同的程序中使用一个便捷的函数, 而不必把这个函数复制到每一个程序中去。

1.1 概念

模块是一个包含Python定义和语句的文件。文件名就是模块名后跟文件后缀 .py

如何使用Python内置模块?

''''
Python内置模块
'''
#第1步:引入模块
import sys
#第2步:使用模块中的函数,属性
pathList=sys.path
print('Python 路径为:n', pathList)
sys.

46e6ec0bbd2d38de7d9ca5a4cb11d1bf.png

输入sys.后按下Tab键

df62354668fe232d7d1a4438334f53e2.png

1.2 导入模块

通过关键字import可以在代码中导入写好的模块,语法如下:

import 模块名   
# 模块名为脚本去掉.py时的文件名

使用模块:

import 模块名 
模块名.函数名.(...)

import语句有一个变体,它可以把模块中的名称(函数名,变量,类名)直接导入到当前模块的变量表里,语法如下:

from 模块名 import 名称
# 或
from 模块名 import *

如果模块名称之后带有 as,则跟在 as 之后的名称将直接绑定到所导入的模块。语法如下:

import 模块名称 as 新名称
from 模块名称 import 名称 as 新名称

1.3 第三方模块的使用

affb028fa61b85c9ba24606e4207df3f.png

2. 包

模块的问题解决了代码过长不便于维护问题,但是如果不同人编写的模块名相同怎么办?为了避免模块名冲突,python又引入了用目录来组织模块的方法,称为包。只要顶层包名不起冲突,模块就不会起冲突。

使用某个包中的某个模块的某个函数:

方法一:

import 包名.模块名
包名.模块名.函数名

方法二:

也可以通过结合from引用

from 包名 import 模块名
模块名.函数名 

方法三:

from 包名.模块名 import 函数名
函数名 

四、数据结构

915477e9a27dd91d0b37fce9244e4daf.png

介绍Python的collections包,了解常用的数据结构,官网使用操作文档:

https://docs.python.org/3.8/tutorial/datastructures.html#more-on-lists​docs.python.org

1. 队列(queue)

队列就像你去餐厅外婆家吃饭排队,新来的人在队列尾部加入,叫做入队。取完票的人从队列首部离开队列,叫做出队

9f954c11f373f4cc31ab62412243385f.png

010f75e558b95adeaab61019a4b341d3.png

1a76cccbca71a4bf9284ff02e5472022.png

cab855661d107b6086efed750ce51ebf.png

2. 栈(stack)

栈这种数据结构有点像像生活中的木桶。你往栈中加入新的元素,就是入栈,新的元素总是放在木桶的最上面。

e1b10fa2cb3d4f8620246901bea45aac.png

3. 排序字典(OrderedDict

e8751bd80d671bbea53f763c3f560826.png

beea5c9352caeb89d1d5efa3a32f3319.png

4. 计数器(Counter

计数器可对元素做出现次数做统计

5d82ceb0d968b50bdf0238b158035a7e.png

4fa304e100299b08cbfb564a3bc97ea5.png

菜鸟网站Python3资料:

Python3 教程 | 菜鸟教程​www.runoob.com
abc59eefd7bd573937efbcd35886b13d.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值