上一篇文章中我们介绍了 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,数据类型和控制流
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新动态
- DzintraErliha-Dreamscape(2024)[24Bit-96kHz]FLAC
- 群星.1999-上华世纪国语总冠军4CD【上华】【WAV+CUE】
- 叶丽仪.1992-仙鹤神针电视剧原声音乐专辑【星传真】【WAV+CUE】
- 陈柏宇.2011-QUINQUENNIUM【SONY】【WAV+CUE】
- 《51首热门当红歌曲 十大顶级发烧女声 3CD》[WAV+CUE][1.6GB]
- 《赵传 深受摇滚迷青睐的台湾音乐人 约定》[WAV+CUE][320MB]
- 《庄心妍 实力唱将 发烧音乐精选集》[WAV+CUE][380MB]
- [音展纪念碟]2006年《TAA台湾第十六届国际HI-ENDHI-FI音响展》2cd[WAV]
- 中国音乐地图之听见西藏山歌牧歌酒歌2020[WAV分轨]
- 王宏伟2017-永远的红飘带[太平洋影音][WAV+CUE]
- 费翔.1997-NOW现在【第一中国】【WAV+CUE】
- 新格合唱团.1981-我唱你和2辑(滚石新格民歌系列)【新格】【WAV+CUE】
- 陈柏宇.2011-QUINQUENNIUM【SONY】【WAV+CUE】
- 雨果唱片-《金唛系列-蔷薇依韵琼瑶》WAV
- 陈百强《凝望(2012华纳LPCD45限量版)[DMI]》[WAV整轨]