文章目录
list和truple
一、list
1、list的表示方法
classmates = ['Michael', 'Bob', 'Tracy']
classmates
2、list的长度
len(classmates)
3、取list中的值
classmates[1]
classmates[-1]
4、向列表中添加值
(1)添加到末尾
classmates.append('Adam')
(2)添加到指定位置
list.insert(1,8)#在列表索引为1的位置插入值
5、向列表中删除值
(1)删除末尾值
list.pop(')
(2)删除指定位置值
list.pop(3)#删除列表索引为3的位置值
6、修改值(赋值)
list[1]='lp'
需要注意的是列表中的元素类型可以不一样,可以是字符串、数值、另外一个列表
p = ['asp', 'php']
s = ['python', 'java', p, 'scheme']
p[1]
s[2][1]
二、truple
另一种有序列表叫元组:tuple。tuple和list非常类似,但是tuple一旦初始化就不能修改
1、truple的意义
不可变的tuple有什么意义?因为tuple不可变,所以代码更安全。如果可能,能用tuple代替list就尽量用tuple。
2、truple的表示方法
list=(1,2,3,4)#元组
list=[1,2,3,4]#列表
t = (1, 2)#多个字符
t=()#空元组
t=(1,)#只有一个字符时,因为(1)和1容易混淆,所以要使用这种方法来表示
3、可变的truple
t = ('a', 'b', ['A', 'B'])
t[2][0] = 'X'
t[2][1] = 'Y'
t
#显示结果:('a', 'b', ['X', 'Y'])
可变truple的不变指的是指向不变,可变的是元组中的列表
理解了“指向不变”后,要创建一个内容也不变的tuple怎么做?那就必须保证tuple的每一个元素本身也不能变。
程序语言的三种基本结构
一、顺序
略
二、条件
age=input('请输入你的年龄:')
if int(age)>=18: #input()返回的数据类型是str,str不能直接和整数比较,必须先把str转换成整数。Python提供了int()函数来完成这件事情
print('your age is',age)
print('成年人')
else:
print('your age is',age)
print('未成年人')
1、elif是else if的缩写,完全可以有多个elif,所以if语句的完整形式就是:
2、if判断条件还可以简写,比如写:
if x:
print('True')
只要x是非零数值、非空字符串、非空list等,就判断为True,否则为False。
练习题
bmi = weight/height
if bmi>32:
print('严重肥胖')
elif bmi<=32 and bmi>28:
print('肥胖')
elif bmi<=28 and bimi>25:
print('过重')
elif bmi<=25 and bimi>18.5:
print('正常')
elif bmi<=18.5:
print('过轻')
三、循环
for
依次把list或tuple中的每个元素迭代出来。循环就是把每个元素代入变量x,然后执行缩进块的语句。
sum = 0
list=list(range(101)) #提供一个range()函数,可以生成一个整数序列,再通过list()函数可以转换为list
for x in list:
sum = sum + x
print(sum)
while
只要条件满足,就不断循环,条件不满足时退出循环
break:跳出循环
continue:跳过该次循环
循环是让计算机做重复任务的有效的方法。
break语句可以在循环过程中直接退出循环,而continue语句可以提前结束本轮循环,并直接开始下一轮循环。这两个语句通常都必须配合if语句使用。
要特别注意,不要滥用break和continue语句。break和continue会造成代码执行逻辑分叉过多,容易出错。大多数循环并不需要用到break和continue语句,上面的两个例子,都可以通过改写循环条件或者修改循环逻辑,去掉break和continue语句。
有些时候,如果代码写得有问题,会让程序陷入“死循环”,也就是永远循环下去。这时可以用Ctrl+C退出程序,或者强制结束Python进程。
dict和set
一、dict
key-value存储方式
d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
1、查找
d['Michael']
2、增加
d['lp']=100
3、修改
d['Michael']=99
4、删除
d.pop('Bob')
5、如果key不存在,dict就会报错,有两种方式判断key的存在
(1) ‘Thomas’ in d
(2)通过dict提供的get()方法,如果key不存在,可以返回None,或者自己指定的value:
注意:返回None的时候Python的交互环境不显示结果。
请务必注意,dict内部存放的顺序和key放入的顺序是没有关系的。
6、dict和list区别
dict:快、占内存大
list:慢、占内存小、随着元素增多越来越慢
需要牢记的第一条就是dict的key必须是不可变对象。
这是因为dict根据key来计算value的存储位置,如果每次计算相同的key得出的结果不同,那dict内部就完全混乱了。这个通过key计算位置的算法称为哈希算法(Hash)。
要保证hash的正确性,作为key的对象就不能变。在Python中,字符串、整数等都是不可变的,因此,可以放心地作为key。而list是可变的,就不能作为key:
二、set
set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。
1、建立set
b=set([1,2,3])
注意,传入的参数[1, 2, 3]是一个list,而显示的{1, 2, 3}只是告诉你这个set内部有1,2,3这3个元素,显示的顺序也不表示set是有序的。。
(1)重复元素在set中自动被过滤:
2、增加元素
s.add('1')
3、删除
s.remove(1)
4、改
键不可以改!
5、交集和并集
set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集、并集等操作:
a=set([1,2,3,4])
b=set([3,4,5,6])
a&b
a|b
[1,2,3]# 列表
{1,2,3}# set
(1,2,3)# 元组
{'lp':123,'bob':11}#字典