从零开始的python自学之旅(四)
Day 4
-
else
示例:for i in range(3): key=input('请输入密码') if key=='8888': print('密码正确') break else: print('密码错误') else: print('错误3次,已被锁死')
这里的else可以还用于while语句,只要while语句中未执行break,就会执行else语句的内容。
在测试中,发现了几个值得注意的点:
print(2,'\n') print(5) #2与5之间隔了一行 print(2) print() print(5) #2与5之间隔了一行 print(2) print('\n') print(5) #2与5之间隔了两行
要想实现不换行,就需要添加end=
示例:for i in range(1,10): for j in range(1,i+1): print(i*j,end='\t') print()
-
列表
1.索引
列表除了像c语言可以正向索引(0表示第一个元素),也能依据负数进行反向索引(-1表示最后一个元素),示例如下:lst=['hello','world',98] print(lst[0],lst[-3]) #打印出来都是hello
如果想返回列表中某个元素的索引,以上述的hello为例:
print(lst.index('hello')
即可。另一种写法也呈现在这里:print(lst.index('world',1,3)) #表示在1,2索引之间搜索world的索引
2.获取列表的元素lst=[10,20,30,40,50,60,70,80] print(lst[1:6:1]) #将会打印出[20, 30, 40, 50, 60] print(lst[:6:2]) #打印出[10,30,50] print(lst[1::2]) #打印出[20,40,60,80] print(lst[::-1]) #逆序打印出[80,70,60....10] print(lst[6::-1]) #打印出[70,60,50,40...10] print(lst[6:0:-1]) # 逆序打印出[80,70,60....20] lst2=lst[1:6:1] #获得list的部分指定元素
3.列表元素的增加删减等操作
增加操作:
3.1 append()在末尾添加一个元素
3.2 extend()在末尾添加至少一个元素
3.3 insert()在列表的任意位置插入一个元素3.1 切片操作 在列表的任意位置插入至少一个元素,并覆盖掉位置后面所有的元素
下述为append()lst1=[10,20,30] lst1.append(100) print(lst1) #[10,20,30,100] lst2=[40,50,60] lst1.append(lst2) print(lst1) #打印出来的结果很诡异:[10, 20, 30, 100, [40, 50, 60]]
3.2 为了避免打印出上述的诡异数字,采用extend()
lst1=[10,20,30] lst1.append(100) print(lst1) #[10,20,30,100] lst2=[40,50,60] lst1.extend(lst2) print(lst1) #打印出来的结果是[10, 20, 30, 100, 40, 50, 60]
3.3 继续介绍insert()
lst=[10,20,30] lst.insert(1,90) print(lst) #打印出来的结果是[10,90,20,30]
3.4 接着是切片
lst=[10,20,30,40] lst2=[True,False] lst[1:]=lst2 #若改为lst[1:2] = lst2则与insert()无区别 print(lst) #结果为[10, True, False]
删除操作“:
3.5 remove()删除列表中的一个指定元素,若该元素有多个,则只删除第一个遇到的元素,不能移除不存在的函数
3.6 pop()删除一个指定索引位置上的元素,若不指定索引,则默认删除最后一个元素
3.7 切片,删除至少一个元素
3.8 clear()清除列表元素
3.9 del删除列表对象3.5 remove()函数示例
lst=[10,20,30,40,50,30] lst.remove(30) print(lst) #结果为[10,20,40,50,30]
3.6 pop()函数示例
lst=[10,20,30,40,50,60] lst.pop(1) print(lst) #结果为[10,30,40,50,60] lst.pop() print(lst) #结果为[10,30,40,50]
3.7 切片
lst=[10,20,30,40,50] new_list=lst[1:3] print(new_list) #结果为[20, 30] #若不想产生新的列表 lst[1:3]=[] print(lst) #结果为[10,40,50]
3.8和3.9 clear和del
lst1=[10,20,30] lst2=[10,20,30] lst1.clear() print(lst1) #结果为[] del lst2 #lst2已被删除,无法print(lst2)
修改操作
lst=[10,20,30] lst[1]=50 print(lst) #结果为[10,50,30]
排序操作
3.10 sort()排序不产生新的列表
3.11 sorted()排序产生新的列表3.10 sort
lst=[10,50,30,440,2,3] lst.sort() print(lst) #结果为[2, 3, 10, 30, 50, 440] lst.sort(reverse=True) print(lst) #结果为[440, 50, 30, 10, 3, 2]
3.11 sorted()
lst=[10,50,30,440,2,3] new_lst=sorted(lst) print(new_lst) #结果为[2, 3, 10, 30, 50, 440] NEW_lst=sorted(lst,reverse=True) print(NEW_lst) #结果为[440, 50, 30, 10, 3, 2]
4.列表生成式
语法格式为:[i*i for i in range(1,10)]lst=[i*i for i in range(1,10)] print(lst) #结果为[1, 4, 9, 16, 25, 36, 49, 64, 81]