详解python中的数据类型和控制流
上一篇文章中我们介绍了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。
条件判断
ifage>19: print("111") else: print("222")
上面代码中就会根据age的不同去执行不同的代码。当然如果你有多种条件,你可以使用elif。
ifage<8: print("儿童") elifage<18: print("少年") else: print("青年")
除此之外你还可以进行「if嵌套」:
ifage<8: ifheight>100: print("1") else: print("2") else: print("3")
循环语句
Python中的循环语句有for和while两种。
1.while语法:
while判断条件: 语句
例子:
a=1 whilea<10: print(a)
使用while时一定要注意判断条件,如果条件一直为真值,就会「无限循环」。
a=1 whilea: print(a)
此时程序就会一直执行下去,不会结束。此外我们还可以使用while...else语句执行判断条件为false时的情况。
a=1 whilea<10: print(a) a+=1 else: print('大于10')
2.for语法:
for循环它会遍历序列中的每一个项目
foriinrange(1,5): print(i) else: print('结束') list=[1,2,3,4] fortempinlist: print(temp)
break和continue
循环语句我们已经了解了,但是好像少点什么,比如我不想循环了怎么办?我想在满足一个条件之后把循环结束怎么办?紧紧只是掌握上面的知识显然我们无法做到。这时候就需要用到break和continue了。
- break语句:可以跳出for和while的循环体。后续代码将不会再执行。
- continue语句:仅跳过当前循环,然后继续进行下一轮循环。
list=[1,2,3,4] foriteminlist: ifitem==2: break print(item)
此时代码只会执行一次,当等于2时就会结束整个循环。
list=[1,2,3,4] foriteminlist: ifitem==2: continue print(item)
你会发现此时代码只有在等于2时不执行,其他都会执行。
练习打印99乘法表
i=1 whilei<10: j=1 whilej<=i: print("%s*%s=%s"%(j,i,i*j),end="") j+=1 print("") i+=1
效果如下。
1*1=1
1*2=22*2=4
1*3=32*3=63*3=9
1*4=42*4=83*4=124*4=16
1*5=52*5=103*5=154*5=205*5=25
1*6=62*6=123*6=184*6=245*6=306*6=36
1*7=72*7=143*7=214*7=285*7=356*7=427*7=49
1*8=82*8=163*8=244*8=325*8=406*8=487*8=568*8=64
1*9=92*9=183*9=274*9=365*9=456*9=547*9=638*9=729*9=81
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。