详解python中的数据类型和控制流
作者:六小登登 发布时间:2022-08-11 14:32:50
上一篇文章中我们介绍了 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
来源:https://blog.csdn.net/qq_32135281/article/details/97620435
猜你喜欢
- 当存储一个CHAR值时, Mysql会除去尾随空间, 这个行为有点让人困惑, 用一个具体的例子来看一下: 首先 ,创建一个只有一个CHAR(
- Web Accessibility Initiative Accessible Rich Internet Applications认识AR
- 1. 关于上传图片失败的问题首先导入jar包 commons-fileupload-1.2.2.jar,ueditor.jar然后修改edi
- JS:$(".con").eq(0).show(); $(".btn span").cl
- 快捷键可以帮助我们有效提高效率,我们来看看网页设计软件FrontPage有哪些快捷键。相关文章:Dreamweaver快捷键大全、photo
- 在这篇入门教程中,我们假定你已经有了PHP语言程序、MySQL数据库、计算机网络通讯及XML语言基础。如果你还没有,那么请先学习相关知识。我
- 尽管有很多规范URL的标准,例如RFC 3987,但实际应用中却非常混乱。本文主要介绍浏览器发送URL到服务器的一些特性,作为开发和应用的参
- 在安装好MYSQL ODBD的驱动程序后,应如何建立ASP文件连接数据库?我们有两种方法:一种是在ODBC数据源中建立一个DSN。具体方法是
- 你是否对获得MySQL改变字符集的实际操作感到十分头疼?不用急,以下的文章将会给你正确的解答方案,以下的文章主要是介绍获得MySQL改变字符
- 1.基本函数介绍(1)标准类型函数[type()、str()和 cmp()] &n
- 月份转换到中文Function MonthToCH(TheMonth) Dim mm mm=split("一,
- 已经11月了,不知道还有没有人看华强买瓜。。。要把华强卖瓜做成字符视频,总共分为三步读取视频把每一帧转为字符画把字符画表现出来 读
- 本文实例为大家分享了python3实现基于用户协同过滤的具体代码,供大家参考,具体内容如下废话不多说,直接看代码。#!/usr/bin/py
- 声明定位元素:position属性值设置除默认值static以外的元素,包括relative,absolute,fixed。平台:win/I
- 数据库在运行中,会因为人为因素或一些不可抗力因素造成数据损坏。所以为了保护数据的安全和最小停机时间,我们需制定详细的备份/恢复计划,并定期对
- 在上一篇文章中,简单介绍了下闭包(closure)和原型链,现在继续来研究闭包的内部机制。对了,所有的东西都参考自这篇文章:Javascri
- 简介在php中,类型的继承使用extends关键字,而且最多只能继承一个父类,php不支持多继承。class MyClass {
- <% String st = ""; for(int i = 1; i <= 9;
- 好久没写技术相关的文章,这次写篇有意思的,关于一个有意思的游戏——QQ找茬,关于一种有意思的语言——Python,关于一个有意思的库——Qt
- /** 2 * 检索数组元素(原型扩展或重载) 3 * @param {o} 被检索的元素值 4 * @type int 5 * @retu