## 格式化输出 用到的字典方式
dic = {'西游记':100,"新好声音":1567}
print("西游记 %(西游记)s 新好声音 %(新好声音)s" % dic ) # 西游记 100 新好声音 1567
print("西游记 %('西游记')s 新好声音 %('新好声音)'s" % dic ) # 报错,键名,不能加引号
## 格式化输出 用到的字典方式 dic = {'西游记':100,"新好声音":1567} print("西游记 %(西游记)s 新好声音 %(新好声音)s" % dic ) # 西游记 100 新好声音 1567 print("西游记 %('西游记')s 新好声音 %('新好声音)'s" % dic ) # 报错,键名,不能加引号
# 逻辑运算 # and not or # 优先级 () > not > and > or , 相同优先级,从左到右计算 # x or y , if x is True, return x ,othoerwise return y # 逻辑运算 有三种情况: # 情况一: 逻辑运算符,两边是 比较运算 result = 3 > 5 and 6 >5 print(result) # 情况二:逻辑运算符, 两边是 数值 print( 5 or 3 ) # 5 print( 0 or 8 ) # 8 print( 3 and 13) # 13 print( 0 and 13) # 0 # 情况三: 逻辑运算符,两边, 一边是数值,一边是比较运算 print( 5 or 6 > 3 ) # 5 print( 5 or 6 < 3 ) # 5 print( 0 or 6 > 3) # True print( 0 or 6 < 3) # False print( 6 > 3 or 15) # True print( 6 < 3 or 15) # False print( 6 > 3 and 15) # 15 print( 6 < 3 and 15) # False
# in, not in: # 判断子元素是否在原字符串( 字典,列表,集合)中: ls = [1,3,5,'alex'] print( 1 in ls ) # True print( 'alex' in ls ) # True print( 'aa' in ls ) # False dic = { 'name':'chris','job':'IT'} print( 'name' in dic ) # 对于字典,是判断 某一键,是否存在于字典中
切片是属于 浅拷贝
1.题 把列表中所有姓周的人的信息删掉(升级题 :此题有坑,请慎重): lst = [ '周老二','周星星','麻花藤','周扒皮' ] 结果:lst = ['麻花藤'] ''' # 方法一: # lst = [ '周老二','周星星','麻花藤','周扒皮' ] # tmp_lst = [] # for e in lst: # if '周' not in e: # tmp_lst.append(e) # lst = tmp_lst # print(lst) # 方法二: # lst = [ '周老二','周星星','麻花藤','周扒皮' ] # for i in range(len(lst)-1,-1,-1): # range()方法只会执行一次,谨记 # if '周' in lst[i]: # lst.pop(i) # print(lst) # 方法三: # lst = [ '周老二','周星星','麻花藤','周扒皮' ] # for i,e in enumerate(lst): # 用到了分别赋值 # if '周' in e: # lst[i] = 'delete' # for count in range( lst.count('delete')) : # lst.remove('delete') # print(lst) # 方法四: # for i in lst[:]: # 切片是浅拷贝 # if '周' == i.strip()[0]: # lst.remove(i) # print(lst)
判断一个 键 是否在字典中的语法?
dic = {0:'chris',1:'alex',2:'jiayong'} if 0 in dic: #判断一个键是否在字典的键中 print("has")
判断一个 元素 是否在列表中的语法?
lis = list(range(5)) print(lis) # if lis.index(5): # index() :没有找到就报错 # print(5) if lis.count(5): print(5) print(lis.count(5)) # 如果没有这个元素,返回值为0 if lis.count(4): print(4)
关于列表、字典 添加元素时的注意:
list = [] # list[0] = 1 # 对于列表,不能通过索引,直接添加元素 IndexError: list assignment index out of range dic = {} dic['name'] = 'chris' # 但是对于字典,可以通过key,直接增加键值对 print(dic) # {'name': 'chris'}
python也有三目运算,我们知道在java中为 x ? True : False
# pyhton的三元运算 # x if x> y else y 如果 x > y 为真,则返回x ,否则返回y ret = 3+5 if 5 > 3 else 9 ret2 = 3+6 if 5 < 3 else 10 print(ret) print(ret2) ret3 = 'abc' if 5 > 3 else [1,2,3] ret4 = 'abc' if 5 < 3 else [1,2,3] print(ret3) print(ret4)
关于切片,和代码块的补充:
if True: x = 15 print(x) print(x) # 可见 if 语句,不是一个代码块,因为代码块有独立的作用域,代码块结束时,会释放变量 l1 = [1,2,3,4] print(id(l1)) l2 =[1] print(id(l2)) def func4(li): return li[:2] # 如果能够切片,就返回一个新列表对象,不能切片,就返回原列表 ret1 = func4(l1) print(id(ret1)) ret2 = func4(l2) print(id(l2)) print(func4(l1)) print(func4(l2))
for 也有 else ,continue , break :
# 除了 while ... else ,还有 for ... else # # def register(): # while 1: # userName = input("please input your name:").strip() # with open('register',encoding='utf-8') as f1: # for line in f1: # name,password = line.strip().split("|") # if userName == name: # print(666) # break # else: # password = input("Please input passwrod:") # with open('register',encoding='utf-8',mode='a') as f2: # f2.write("\n{}|{}".format(userName,password)) # return "success" # register()