Python基础(下)
阅读本文大概需要:8分钟
一、Python交互界面
在Python刚安装完的时候,有提供了一个Shell交互工具,在开始菜单里面可以找到。
打开后的界面是这样的。
这个界面可以在菜单栏中直接打开,也可以打开系统的命令提示符(开始 - 所有程序 - 附件 - 命令提示符)中输入python进入该界面。
在这个界面里,可以直接输入代码执行,比如
我们可以看到,它可以直接进行计算,也可以把数值赋值给a和b,再用a和b进行计算。而在进行比较的时候很明显a是小于b的,所有a>b的情况下会返回一个False,b>a则会返回一个True,这个就是布尔类型了。
在进行条件判断时候,当一个条件返回True的时候,就算执行该条件下的代码,当返回False的时候,就会跳过该代码。比如:
因为a=100,b=200,a>b是不成立的,根据之前讲的条件判断逻辑,所以跳过了第一个print,执行了第二个print。
在接下去的学习中,大部分内容都可以直接在这个交互界面中练习。
二、List和Tuple
1、list
List这是python内置的数据类型——列表。它是一种有序的集合。举个例子,列出几大球类名称,并赋值给balls。它的格式是这样子的
balls= ['足球','篮球','羽毛球','排球']
这里的变量balls就是一个集合,它包含了足球、篮球、羽毛球、排球这几个元素。在交互界面输入balls就会打印出它的元素来,如图:
我们也可以直接根据参数的位置来打印参数(计算机中,是从零开始计数的,所以第一个位置都是0,第二个位置是1)如图:
也可以倒数着来
在Python中list是可变的有序集合,可以通过Python内置的函数做如下一些操作
在list后面添加元素(使用append函数);
删除指定位置的元素(使用pop函数);
替换指定位置的元素(直接指定list某个位置的元素进行替换);
添加元素到指定位置(insert函数)。
可参照下图:
list很灵活,它的元素可以是多种类型(整型、字符串、布尔类型等等)的,甚至是另一个list。例如:
灵活的list
L=['b',123,True,['小明','小花']]
2、tuple
tuple也是有序的集合,基本和list相似,不同的是tuple是不可变的,一开始给定什么元素就是什么元素,无法像list那样进行操作。list是用[]括起来的,而tuple是用()括起来的。如
tuple
#tuple是用()的
balls=('足球','篮球')
#注:如果要定义只有一个元素的tuple,需要使用number2的写法。因为(1)在Python中就是1的意思,所有这里的number不是一个tuple,而是一个整数变量。
number
=(1)
number2=(1,)
#有一种定义可变的Tuple的方法,就是把Tuple的元素定义为list。这样只是list这个元素不能变,list自己的元素是可以变的。如:
t
=('a','b',['c','d'])
t[2][0]='f'#前面说过,元素位置是从0开始的,所以这里的list位置是2,list中第一个元素位置是0
t
[2][1]='g'
三、dict和set
1、dict
dict是dictionary的简称,字典的意思。是Python内置的,如果你了解过其他语言的话,它在其他语言中被称为map。是以(key-value)的形式保存数据的 ,查询的速度很快。
代码示例
#考试结束后,公布成绩,通过同学的名字查找对应的成绩,如果用list的话就需要两个list
names = ['小明', '小花', '大伟']
scores = [95, 75, 85]
#用dict的话是这样的,注意大括号
result = {'小明': 95, '小花': 75, '大伟': 85}
#查询小明成绩
result['小明']
在dict中,一个key只对应一个value,也就是说小明对应的就是95分。如果把95改为85,那么小明对应的就是85分。这这和现实情况是一样的。
新增一个key-value的话也很简单
#这样就会存入一个key是小虎,value是110的元素了。
result['小虎']=110
如果key不存在的话,是查不到的。在程序中直接查询一个不存在的key会导致程序出错。在python中有两种方法来判断一个key是否存在于一个dict中。
#有英语基础的话应该很好理解这个代码的含义,如果小明有在result中的话,程序会返回一个True,否则返回一个False
'小明'
inresult
# 用get的话,如果没有设置一个返回参数,那么key不存在时,就会返回None,如果设置了返回参数,如-1,则会不存在时会返回-1.
result
.get('小明')
result.get('小明',-1)
删除一个dict中的元素和list有点类似
#删除成功的话,会返回小明对应的value
result.pop('小明')
dict不是有序的,它存放元素的顺序和放入元素的顺序无关。
跟list比起来它插入速度和查询速度很快,不会随着元素的增加而变慢,而list会随着元素的增加而越来越慢。再一个就是dict相对会比较占用资源。
可以理解为,dict是用空间换取了时间。虽然占用更多内存资源,但是速度更快,节省了时间。
2、set
set和dict相似,区别在于它只有key,没有value。所以,它的key是不能有重复的。(在dict中输入同一个key,其实也是覆盖原有key的value),创建一个set,需要提供一个list为输入集合,如
s = set([1,22,333])
虽然传入的是一个list的元素,但是实际上它的长度是三个元素。如果传入的list有重复的元素,它会自动过滤掉重复的元素。
添加元素的话是用add函数,它支持添加重复元素,不过不起效果。
#添加4到s里
s.add(4)
删除元素是用remove函数。
s.remove(4)
set的元素也是无序的且没有重复。如果有两个set,我们也可以对它做交集、并集的操作进行元素过滤。如
s1 = set([1,2,3,4])
s2 = set([3,4,5,6])
#&和数学中的交集含义相似
s1 & s2
# | 和数学中并集含义相似
s1 | s2
至于执行结果什么样,在交互界面打印一下就知道了。
四、循环
1、for和while
在上面中,我们知道,如果直接输入balls会打印出balls中所有的元素。那么,如果我们想一个一个打印出来呢?那就得用到循环了。循环有两种写法:
#用for来写循环
balls=['a','b','c','d']
for ball in balls:
print(ball)
#用while来写循环,计算1+2+3+4;n++是指n=n+1
n=0
sum=0
whilen<5:
sum=sum+n
n++
print(sum)
2、break和continue
在循环中添加break的话,是指直接结束循环;而添加continue的话是指跳过本次循环进入下一次循环。
continue用法
n=0whilen<10:
n=n+1
ifn%2==0:# 如果n是偶数,执行continue语句
continue# continue语句会直接继续下一轮循环,后续的print()语句不会执行
print(n)
break用法
n=1while n<=100:
ifn>10:# 当n = 11时,条件满足,执行break语句
break# break语句会结束当前循环
print(n)
n=n+1
print('END')
长按下面按钮,关注本公众号,一起交流学习吧!