python基础 循环,列表,切片,列表增删改查
for循环实现用户输入用户名密码,如输入错误3次结束循环。
1 # _author: Administrator 2 # date: 2018/10/11 3 _user = "admin" 4 _pass = "12345" 5 6 #flag_passed = False #标志位 7 for x in range(3): 8 username = input("username:") 9 password = input("password:") 10 if username == _user and password == _pass: 11 print("welcome %s loging" %_user) 12 #flag_passed = True 13 break # break 后for循环不会执行else 14 else: 15 print("密码输入不正确,请重新输入") 16 #if not flag_passed: #判断flag_passed不为真打印下列内容 17 else: # for循环不被打断,正常执行完毕就会执行else 18 print("输入的次数过多不要输入了")
while实现用户输入2次错误之后,提示用户是否继续输入,如继续输入循环继续,如不继续输入循环结束。
1 # _author: Administrator 2 # date: 2018/10/11 3 _user = "admin" 4 _pass = "12345" 5 6 count = 0 7 #for i in range(3): 8 while count < 2: 9 username = input("username:") 10 password = input("password:") 11 if username == _user and password == _pass: 12 print("welcome is %s loging" %username) 13 break 14 else: 15 print("Invalid username or password !") 16 # else: 17 # print("输入的次数过多,请不要继续尝试") 18 count += 1 19 print(count) 20 if count == 2: 21 count_ci = input("是否继续尝试,Y,继续,N,退出:") 22 if count_ci == "Y": 23 count = 0 24 print(count_ci) 25 else: 26 print("输入的次数过多,请不要继续尝试")
continue:代码实现(结束本次循环,继续下一次循环)
1 # _author: Administrator 2 # date: 2018/10/11 3 for i in range(1,10): 4 if i == 5: 5 continue 6 else: 7 print(i)
for 多循环break: 知识点:定义标志位
1 # _author: Administrator 2 # date: 2018/10/11 3 # for i in range(1,10): 4 # if i == 5: 5 # continue 6 # else: 7 # print(i) 8 exit_flag = False #定义标志位 9 for i in range(10): 10 if i < 5: 11 continue 12 print(i) 13 for j in range(10): 14 print("打印J:", j) 15 if j == 6: 16 exit_flag = True #退出第一层,将标识位改为True,满足该条件进行退出。 17 break 18 if exit_flag: #第二层退出判断标识位是否未True,如果未True进行退出。 19 break
- 列表 元组
- 整数
字符串
列表,元组
查
索引(下标) ,都是从0开始
切片
.count 查某个元素的出现次数
.index 根据内容找其对应的位置
"haidilao ge" in a
增加
a.append() 追加
a.insert(index, "内容")
a.extend 扩展
修改
a[index] = "新的值"
a[start:end] = [a,b,c]
删除
remove("内容")
pop(index)
del a, del a[index]
a.clear() 清空
排序
sort ()
reverse()
身份判断
>>> type(a) is list
True
>>>
列表:【】 msg= 【】
列表赋值:msg = ['sanpang','xiaohu','ligang','sanpang','dada','xiaoxiao']
列表取值:print(msg[2]) 取值的下标是从0开始的取的1的值就是xiaohu
- 增删改查:
- 切片:查
取中间值:print(msg[1:3]) 取中间值用:连接,1:3代表从1开始第3个值的前一个值结束,头的值包括尾的值不包括。所以取出来的值就是xiaohu,ligang
执行结果:
取开始只之后的所有:print(msg[1:])冒号:后边不加数字代表取1后的所有值
取最后值之前的一个值:print(msg[1:-1])1之后的最后一个值之前的都能取到
# _author: Administrator
# date: 2018/10/11
msg = ['sanpang','xiaohu','ligang','sanpang','dada','xiaoxiao']
print(msg[1]) #从0开始,取1的值
print(msg[1:3]) #从0开始,取1的值取,到第3个之前值的结束
print(msg[1:-1]) #从0开始,取1的值取,到最后一个值之前的值结束。
print(msg[1:]) #从0开始,取1的值取,到最后一个值结束。
print(msg[1:-1:2]) #从0开始,取1的值取,到最后一个值之前的值的值跳着取。
print(msg[1:-1:1]) #从0开始,取1的值取,到最后一个值之前的一个一个取。
print(msg[1::2]) #从0开始,取1的值取,到最后一个值,跳着取,隔一个一取。
print(msg[3::-2]) #从3开始,从右往左走sanpang开始隔一个取一个取到的值为xiaohu,所以结果为sanpang,xiaohu
1 # _author: Administrator 2 # date: 2018/10/11 3 # msg = ['sanpang','xiaohu','ligang','jinsanpang','dada','xiaoxiao'] 4 # print(msg[1]) #从0开始,取1的值 5 # print(msg[1:3]) #从0开始,取1的值取,到第3个之前值的结束 6 # print(msg[1:-1]) #从0开始,取1的值取,到最后一个值之前的值结束。 7 # print(msg[1:]) #从0开始,取1的值取,到最后一个值结束。 8 # print(msg[1:-1:2]) #从0开始,取1的值取,到最后一个值之前的值的值跳着取。 9 # print(msg[1:-1:1]) #从0开始,取1的值取,到最后一个值之前的一个一个取。 10 # print(msg[1::2]) #从0开始,取1的值取,到最后一个值,跳着取,隔一个一取。 11 # print(msg[3::-2]) #从3开始,从右往左走sanpang开始隔一个取一个取到的值为xiaohu,所以结果为sanpang,xiaohu 12 # print(msg[3]) 13 # print(msg[1:3]) 14 # print(msg[2:]) 15 # print(msg[2::2]) 16 # print(msg[2:-1]) 17 # print(msg[1:-1:1]) 18 # print(msg[4::-2]) 19 # msg.append('xuefeng') #默认插入到最后一个位置 20 # print(msg) 21 # msg.insert(1,'xuefeng') #insert 有位置查询的,要插入到哪就直接标注。 22 # print(msg) 23 24 # 修改: 25 # msg[1] = 'haidilao' #指定位置内容修改。 26 # print(msg) 27 # msg[1:-1:2] = ['fengshan','hulu'] #取多个值进行修改。 28 # print(msg) 29 30 #删除:remove(列表内置方法:直接删除内容,不可以直接删除下标) pop(通过索引值下标删除) del(什么都可以删除,既可以删除固定的内容,还可以把这个对象删除掉) 31 # msg.remove('dada') 32 # msg.remove(msg[0]) 33 # print(msg) 34 # b = msg.pop(1) #pop会返回一个你已经删除的这个下标的内容,用一个变量接受它可以接收到。 35 # print(msg) 36 # print(b) #返回给我的删除的内容 37 # del msg[1] 38 # print(msg) 39 # del msg #删除了msg这个对象 40 # print(msg) #打印会报错,提示没有这个对象了。 41 # 42 # count计算元素出现次数 43 # a = ['admin','desr','tttt','admin','rest'].count('admin') 44 # print(a) 45 # extend 将b列表的内容付给a列表。 46 # a = [1,2,3] 47 # b = [4,5,6] 48 # a.extend(b) # b列表的内容付给a 49 # print(a) 50 # print(b) # 只是给b列表的内容付给a列表,b列表中的内容并没有变。 51 # index 根据内容找位置 52 # msg = ['sanpang','xiaohu','ligang','jinsanpang','dada','ligang','xiaoxiao'] 53 # print(msg.index('ligang')) 54 # 列表中两个一样的内容,取第二个内容的操作用方法 55 # list_lg = msg.index('ligang') 56 # print("第一个ligang位置:",list_lg) 57 # list_lg_x = msg[list_lg+1:].index('ligang') 58 # print("小列表ligang位置:",list_lg_x) 59 # list_lg_d = list_lg+list_lg_x+1 60 # print("第二个ligang位置:",list_lg_d) 61 #将列表的内容倒序输出 62 # msg = ['sanpang','xiaohu','ligang','jinsanpang','dada','ligang','xiaoxiao'] 63 # msg.reverse() 64 # print(msg) 65 #sort 列表内容排序 66 msg = [1,5,6,3,3,2,9] 67 msg.sort(reverse=True) #倒序输出 68 print(msg)列表,切片
列表嵌套:
例:
1 a = [['a','b','c','d','e'],1,2,3,4,5,('ad','cd')] 2 print(a[0][1]) 3 #取出来的值是b 4 #分解: 5 b = a[0] 6 print(b[1])