详解python中的数据类型和控制流


Posted in Python onAugust 08, 2019

上一篇文章中我们介绍了 python 语言的几个特点,并在最后留了一个问题,python 除了上下执行以外有没有其他的执行方式。

今天我们就来介绍 python 中的数据类型和控制流。

数据类型

python 中包含六个标准数据类型分别为:

Number(数字)、String(字符串)、List(列表)、Tuple(元组)、Set(集合)、Dictionary(字典)。

不同的数据类型往往对应不同的用途。这个很好理解。比如你可以用一个字符串用来储存一个人的名字。

name = "六小登登"

但是想你存一个人的信息,比如姓名,年龄,身高等。这时候你用字符串就不合适了。此时字典是合适的。

person = {
  name: "六小登登",
  age: 18,
  height: 180
}

字典适合存一个人的信息,那如何有很多人怎么办?此时列表就会起到作用。

people = [{name: "二狗"},{name: "狗蛋"}]

你看就是这么简单,什么容器装什么类型的水。彼此相互协作。

其中它们又可分为「可变类型」和「不可变类型」:

不可变类型 3 种:Number、String、Tuple。
可变类型 3 种:List、Set、Dictionary。

可变类型与不可变类型的区别就是一个值是可以改变的,一个是不可以改变的。有的人可能就会疑惑,不对呀登哥,我明明声明了一个变量 age = 18,然后在后面把它改成 age = 20是已经修改的呀,怎么会是不可变的呢。

其实在计算机的内容空间中,变量和值是分开的,而变量只是保存了一个值的引用而已,而引用指向值。

如果你修改的不可变量类型的值,它会重新创建一个新的值,然后把这个变量指向这个值。比如:

age = 18
id(age)
4478947024 //引用
age = 20
id(age)
4478947088 //引用

所以你会发现当你修改不可变类型的值后,它引用是不同的。而可变类型的引用却是相同的。

list = [1,2]
id(list)
4481387656 //此时的引用
list[0]=2
print(list)
[2, 2]
id(list)
4481387656 //修改后的引用,依然相同

控制流

上篇文章中我们说了,程序默认是「上下执行」的,但是如果遇到一些特殊的情况怎么应对呢?此时就要说到 python 中的控制流了。

控制流有三种方式:

  • 顺序执行:就是我们说的上下执行
  • 选择执行:就是条件判断,通过 if...else语句选择不同的代码块执行。
  • 循环执行:就是反复执行一段代码,通过 for,while。

条件判断

if age>19:
  print("111")
else:
  print("222")

上面代码中就会根据 age 的不同去执行不同的代码。当然如果你有多种条件,你可以使用elif。

if age < 8:
  print("儿童")
elif age < 18:
  print("少年")
else:
  print("青年")

除此之外你还可以进行「if嵌套」:

if age<8:
  if height>100:
    print("1")
  else: 
    print("2")
else:
  print("3")

循环语句

Python中的循环语句有 for 和 while 两种。

1.while语法:

while 判断条件:
  语句

例子:

a = 1
while a<10:
  print(a)

使用 while 时一定要注意判断条件,如果条件一直为真值,就会「无限循环」。

a = 1
while a:
 print(a)

此时程序就会一直执行下去,不会结束。此外我们还可以使用 while...else语句执行判断条件为 false时的情况。

a = 1
while a < 10:
  print(a)
  a += 1
else:
  print('大于10')

2.for语法:

for 循环它会遍历序列中的每一个项目

for i in range(1, 5):
  print(i)
else:
  print('结束')
 
list = [1,2,3,4]
for temp in list:
  print(temp)

break 和 continue

循环语句我们已经了解了,但是好像少点什么,比如我不想循环了怎么办?我想在满足一个条件之后把循环结束怎么办?紧紧只是掌握上面的知识显然我们无法做到。这时候就需要用到 break 和 continue了。

  • break语句:可以跳出 for 和 while 的循环体。后续代码将不会再执行。
  • continue语句:仅跳过当前循环,然后继续进行下一轮循环。
list = [1, 2, 3, 4]
for item in list:
  if item == 2:
    break
  print(item)

此时代码只会执行一次,当等于 2 时就会结束整个循环。

list = [1, 2, 3, 4]
for item in list:
  if item == 2:
    continue
  print(item)

你会发现此时代码只有在等于 2 时不执行,其他都会执行。

练习打印 99乘法表

i = 1
while i<10:
 j =1
 while j<=i:
  print("%s*%s=%s" % (j,i, i*j), end=" ")
  j+=1
 print("")
 i+=1

效果如下。

1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
详解Python当中的字符串和编码
Apr 25 Python
Python3实现从文件中读取指定行的方法
May 22 Python
Python+Selenium自动化实现分页(pagination)处理
Mar 31 Python
Python基于ThreadingTCPServer创建多线程代理的方法示例
Jan 11 Python
Python用for循环实现九九乘法表
May 31 Python
python 公共方法汇总解析
Sep 16 Python
python读取配置文件方式(ini、yaml、xml)
Apr 09 Python
Tensorflow tf.nn.atrous_conv2d如何实现空洞卷积的
Apr 20 Python
pycharm无法安装第三方库的问题及解决方法以scrapy为例(图解)
May 09 Python
python实现学生管理系统开发
Jul 24 Python
Python如何读写字节数据
Aug 05 Python
python的变量和简单数字类型详解
Sep 15 Python
python爬虫selenium和phantomJs使用方法解析
Aug 08 #Python
Python2和3字符编码的区别知识点整理
Aug 08 #Python
Python编程中类与类的关系详解
Aug 08 #Python
python os.fork() 循环输出方法
Aug 08 #Python
对python中的os.getpid()和os.fork()函数详解
Aug 08 #Python
在Python中os.fork()产生子进程的例子
Aug 08 #Python
Python如何使用k-means方法将列表中相似的句子归类
Aug 08 #Python
You might like
php简单开启gzip压缩方法(zlib.output_compression)
2013/04/13 PHP
Javascript 两个窗体之间传值实现代码
2009/09/25 Javascript
Javascript级联下拉菜单以及AJAX数据验证核心代码
2013/05/10 Javascript
JS图片切换的具体方法(带缩略图版)
2013/11/12 Javascript
javascript:void(0)是什么意思示例介绍
2013/11/17 Javascript
在Firefox下js select标签点击无法弹出
2014/03/06 Javascript
php is_numberic函数造成的SQL注入漏洞
2014/03/10 Javascript
JavaScript表单通过正则表达式验证电话号码
2014/03/14 Javascript
Node.js插件安装图文教程
2016/05/06 Javascript
vue环境搭建简单教程
2017/11/07 Javascript
vue中SPA单页面应用程序详解
2017/11/07 Javascript
vue中接口域名配置为全局变量的实现方法
2018/09/20 Javascript
python控制台英汉汉英电子词典
2020/04/23 Python
wxPython窗口的继承机制实例分析
2014/09/28 Python
Python 爬虫学习笔记之多线程爬虫
2016/09/21 Python
Python快速查找list中相同部分的方法
2018/06/27 Python
设置python3为默认python的方法
2018/10/31 Python
解决pycharm下os.system执行命令返回有中文乱码的问题
2019/07/07 Python
Python传递参数的多种方式(小结)
2019/09/18 Python
利用keras使用神经网络预测销量操作
2020/07/07 Python
Web页面中八种创建多列等高(等高列布局)的实现技术
2012/12/24 HTML / CSS
HTML5新控件之日期和时间选择输入的实现代码
2018/09/13 HTML / CSS
HTML5页面音视频在微信和app下自动播放的实现方法
2016/10/20 HTML / CSS
html5实现滑块功能之type=&quot;range&quot;属性
2020/02/18 HTML / CSS
Europcar葡萄牙:葡萄牙汽车和货车租赁
2017/10/13 全球购物
添柏岚英国官方网站:Timberland英国
2019/11/28 全球购物
名词解释WEB SERVICE,SOAP,UDDI,WSDL,JAXP,JAXM;JSWDL开发包的介绍。
2012/10/27 面试题
WSDL的操作类型主要有几种
2013/07/19 面试题
汉语言文学专业自荐信
2014/06/11 职场文书
教师批评与自我批评总结
2014/10/16 职场文书
2015年大学生入党自荐书
2015/03/24 职场文书
大学生就业意向书
2015/05/11 职场文书
实施意见格式范本
2015/06/05 职场文书
2016年清明节寄语
2015/12/04 职场文书
小学语文的各类谚语(70首)
2019/08/15 职场文书
OpenCV实现普通阈值
2021/11/17 Java/Android